]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
git-svn-id: http://svn.ipfire.org/svn/ipfire/IPFire/source@16 ea5c0bd1-69bd-2848...
authoripfire <ipfire@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Wed, 15 Feb 2006 21:15:54 +0000 (21:15 +0000)
committeripfire <ipfire@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Wed, 15 Feb 2006 21:15:54 +0000 (21:15 +0000)
1206 files changed:
.cvsignore [new file with mode: 0644]
config/CVS/Entries [new file with mode: 0644]
config/CVS/Repository [new file with mode: 0644]
config/CVS/Root [new file with mode: 0644]
config/CVS/Tag [new file with mode: 0644]
config/aboot/CVS/Entries [new file with mode: 0644]
config/aboot/CVS/Repository [new file with mode: 0644]
config/aboot/CVS/Root [new file with mode: 0644]
config/aboot/CVS/Tag [new file with mode: 0644]
config/aboot/aboot.conf [new file with mode: 0644]
config/aboot/scsiaboot.conf [new file with mode: 0644]
config/cdrom/CVS/Entries [new file with mode: 0644]
config/cdrom/CVS/Repository [new file with mode: 0644]
config/cdrom/CVS/Root [new file with mode: 0644]
config/cdrom/CVS/Tag [new file with mode: 0644]
config/cdrom/README.txt [new file with mode: 0644]
config/cfgroot/CVS/Entries [new file with mode: 0644]
config/cfgroot/CVS/Repository [new file with mode: 0644]
config/cfgroot/CVS/Root [new file with mode: 0644]
config/cfgroot/CVS/Tag [new file with mode: 0644]
config/cfgroot/advoptions-list [new file with mode: 0644]
config/cfgroot/backup-exclude [new file with mode: 0644]
config/cfgroot/backup-exclude.hardware [new file with mode: 0644]
config/cfgroot/backup-include [new file with mode: 0644]
config/cfgroot/countries.pl [new file with mode: 0644]
config/cfgroot/defaultservices [new file with mode: 0644]
config/cfgroot/general-functions.pl [new file with mode: 0644]
config/cfgroot/header-menu.pl [new file with mode: 0644]
config/cfgroot/header.pl [new file with mode: 0644]
config/cfgroot/icmptypes [new file with mode: 0644]
config/cfgroot/ipcop.gpg [new file with mode: 0644]
config/cfgroot/lang.pl [new file with mode: 0644]
config/cfgroot/logging-settings [new file with mode: 0644]
config/cfgroot/modem-defaults [new file with mode: 0644]
config/cfgroot/modem-settings [new file with mode: 0644]
config/cfgroot/oinkmaster.conf [new file with mode: 0644]
config/cfgroot/protocols.pl [new file with mode: 0644]
config/cfgroot/proxy-acl [new file with mode: 0644]
config/cfgroot/time-settings [new file with mode: 0644]
config/cfgroot/xtaccess-config [new file with mode: 0644]
config/cron/CVS/Entries [new file with mode: 0644]
config/cron/CVS/Repository [new file with mode: 0644]
config/cron/CVS/Root [new file with mode: 0644]
config/cron/CVS/Tag [new file with mode: 0644]
config/cron/crontab [new file with mode: 0644]
config/etc/CVS/Entries [new file with mode: 0644]
config/etc/CVS/Repository [new file with mode: 0644]
config/etc/CVS/Root [new file with mode: 0644]
config/etc/CVS/Tag [new file with mode: 0644]
config/etc/certparams [new file with mode: 0644]
config/etc/fstab [new file with mode: 0644]
config/etc/group [new file with mode: 0644]
config/etc/host.conf [new file with mode: 0644]
config/etc/inittab [new file with mode: 0644]
config/etc/inputrc [new file with mode: 0644]
config/etc/ld.so.conf [new file with mode: 0644]
config/etc/logrotate.conf [new file with mode: 0644]
config/etc/mime.types [new file with mode: 0644]
config/etc/modules.conf [new file with mode: 0644]
config/etc/nsswitch.conf [new file with mode: 0644]
config/etc/passwd [new file with mode: 0644]
config/etc/profile [new file with mode: 0644]
config/etc/resolv.conf [new file with mode: 0644]
config/etc/securetty [new file with mode: 0644]
config/etc/sysctl.conf [new file with mode: 0644]
config/etc/syslog.conf [new file with mode: 0644]
config/grub/CVS/Entries [new file with mode: 0644]
config/grub/CVS/Repository [new file with mode: 0644]
config/grub/CVS/Root [new file with mode: 0644]
config/grub/CVS/Tag [new file with mode: 0644]
config/grub/grub.conf [new file with mode: 0644]
config/grub/ipcop.xpm.gz [new file with mode: 0644]
config/grub/scsigrub.conf [new file with mode: 0644]
config/httpd/CVS/Entries [new file with mode: 0644]
config/httpd/CVS/Repository [new file with mode: 0644]
config/httpd/CVS/Root [new file with mode: 0644]
config/httpd/CVS/Tag [new file with mode: 0644]
config/httpd/httpd.conf [new file with mode: 0644]
config/install/CVS/Entries [new file with mode: 0644]
config/install/CVS/Repository [new file with mode: 0644]
config/install/CVS/Root [new file with mode: 0644]
config/install/CVS/Tag [new file with mode: 0644]
config/install/fstab [new file with mode: 0644]
config/install/group [new file with mode: 0644]
config/install/halt [new file with mode: 0644]
config/install/hosts [new file with mode: 0644]
config/install/inittab [new file with mode: 0644]
config/install/nsswitch.conf [new file with mode: 0644]
config/install/passwd [new file with mode: 0644]
config/install/profile [new file with mode: 0644]
config/install/rc [new file with mode: 0644]
config/install/shells [new file with mode: 0644]
config/ipac-ng/CVS/Entries [new file with mode: 0644]
config/ipac-ng/CVS/Repository [new file with mode: 0644]
config/ipac-ng/CVS/Root [new file with mode: 0644]
config/ipac-ng/CVS/Tag [new file with mode: 0644]
config/ipac-ng/ipac.conf [new file with mode: 0644]
config/ipac-ng/rules.conf [new file with mode: 0644]
config/kernel/CVS/Entries [new file with mode: 0644]
config/kernel/CVS/Repository [new file with mode: 0644]
config/kernel/CVS/Root [new file with mode: 0644]
config/kernel/CVS/Tag [new file with mode: 0644]
config/kernel/aboot.conf [new file with mode: 0644]
config/kernel/install-message [new file with mode: 0644]
config/kernel/kernel.config.alpha [new file with mode: 0644]
config/kernel/kernel.config.i386 [new file with mode: 0644]
config/kernel/kernel.config.i386.installer [new file with mode: 0644]
config/kernel/kernel.config.i386.original [new file with mode: 0644]
config/kernel/kernel.config.i386.smp [new file with mode: 0644]
config/kernel/syslinux.cfg [new file with mode: 0644]
config/snort/CVS/Entries [new file with mode: 0644]
config/snort/CVS/Repository [new file with mode: 0644]
config/snort/CVS/Root [new file with mode: 0644]
config/snort/CVS/Tag [new file with mode: 0644]
config/snort/snort.conf [new file with mode: 0644]
config/ssl/CVS/Entries [new file with mode: 0644]
config/ssl/CVS/Repository [new file with mode: 0644]
config/ssl/CVS/Root [new file with mode: 0644]
config/ssl/CVS/Tag [new file with mode: 0644]
config/ssl/openssl.cnf [new file with mode: 0644]
doc/.cvsignore [new file with mode: 0644]
doc/COPYING [new file with mode: 0644]
doc/CVS/Entries [new file with mode: 0644]
doc/CVS/Repository [new file with mode: 0644]
doc/CVS/Root [new file with mode: 0644]
doc/CVS/Tag [new file with mode: 0644]
doc/ChangeLog [new file with mode: 0644]
doc/How-to-make-update [new file with mode: 0644]
doc/README [new file with mode: 0644]
doc/make.sh-usage [new file with mode: 0644]
doc/packages-list.txt [new file with mode: 0644]
doc/updated-sources.txt_old [new file with mode: 0644]
html/CVS/Entries [new file with mode: 0644]
html/CVS/Repository [new file with mode: 0644]
html/CVS/Root [new file with mode: 0644]
html/CVS/Tag [new file with mode: 0644]
html/cgi-bin/CVS/Entries [new file with mode: 0644]
html/cgi-bin/CVS/Repository [new file with mode: 0644]
html/cgi-bin/CVS/Root [new file with mode: 0644]
html/cgi-bin/CVS/Tag [new file with mode: 0644]
html/cgi-bin/aliases.cgi [new file with mode: 0644]
html/cgi-bin/backup.cgi [new file with mode: 0644]
html/cgi-bin/base.cgi [new file with mode: 0644]
html/cgi-bin/changepw.cgi [new file with mode: 0644]
html/cgi-bin/connections.cgi [new file with mode: 0644]
html/cgi-bin/credits.cgi [new file with mode: 0644]
html/cgi-bin/ddns.cgi [new file with mode: 0644]
html/cgi-bin/dhcp.cgi [new file with mode: 0644]
html/cgi-bin/dial.cgi [new file with mode: 0644]
html/cgi-bin/dmzholes.cgi [new file with mode: 0644]
html/cgi-bin/graphs.cgi [new file with mode: 0644]
html/cgi-bin/gui.cgi [new file with mode: 0644]
html/cgi-bin/hosts.cgi [new file with mode: 0644]
html/cgi-bin/ids.cgi [new file with mode: 0644]
html/cgi-bin/index.cgi [new file with mode: 0644]
html/cgi-bin/ipinfo.cgi [new file with mode: 0644]
html/cgi-bin/logs.cgi/CVS/Entries [new file with mode: 0644]
html/cgi-bin/logs.cgi/CVS/Repository [new file with mode: 0644]
html/cgi-bin/logs.cgi/CVS/Root [new file with mode: 0644]
html/cgi-bin/logs.cgi/CVS/Tag [new file with mode: 0644]
html/cgi-bin/logs.cgi/config.dat [new file with mode: 0644]
html/cgi-bin/logs.cgi/firewalllog.dat [new file with mode: 0644]
html/cgi-bin/logs.cgi/ids.dat [new file with mode: 0644]
html/cgi-bin/logs.cgi/log.dat [new file with mode: 0644]
html/cgi-bin/logs.cgi/proxylog.dat [new file with mode: 0644]
html/cgi-bin/logs.cgi/summary.dat [new file with mode: 0644]
html/cgi-bin/modem.cgi [new file with mode: 0644]
html/cgi-bin/netstatus.cgi [new file with mode: 0644]
html/cgi-bin/networks.cgi [new file with mode: 0644]
html/cgi-bin/optionsfw.cgi [new file with mode: 0644]
html/cgi-bin/portfw.cgi [new file with mode: 0644]
html/cgi-bin/pppsetup.cgi [new file with mode: 0644]
html/cgi-bin/proxy.cgi [new file with mode: 0644]
html/cgi-bin/proxygraphs.cgi [new file with mode: 0644]
html/cgi-bin/remote.cgi [new file with mode: 0644]
html/cgi-bin/services.cgi [new file with mode: 0644]
html/cgi-bin/shaping.cgi [new file with mode: 0644]
html/cgi-bin/shutdown.cgi [new file with mode: 0644]
html/cgi-bin/status.cgi [new file with mode: 0644]
html/cgi-bin/time.cgi [new file with mode: 0644]
html/cgi-bin/updates.cgi [new file with mode: 0644]
html/cgi-bin/upload.cgi [new file with mode: 0644]
html/cgi-bin/vpnmain.cgi [new file with mode: 0644]
html/cgi-bin/wireless.cgi [new file with mode: 0644]
html/cgi-bin/xtaccess.cgi [new file with mode: 0644]
html/html/CVS/Entries [new file with mode: 0644]
html/html/CVS/Repository [new file with mode: 0644]
html/html/CVS/Root [new file with mode: 0644]
html/html/CVS/Tag [new file with mode: 0644]
html/html/blob.gif [new file with mode: 0644]
html/html/favicon.ico [new file with mode: 0644]
html/html/images/CVS/Entries [new file with mode: 0644]
html/html/images/CVS/Repository [new file with mode: 0644]
html/html/images/CVS/Root [new file with mode: 0644]
html/html/images/CVS/Tag [new file with mode: 0644]
html/html/images/add.gif [new file with mode: 0644]
html/html/images/addblue.gif [new file with mode: 0644]
html/html/images/bounceback.png [new file with mode: 0644]
html/html/images/boxbottom1.png [new file with mode: 0644]
html/html/images/boxbottom2.png [new file with mode: 0644]
html/html/images/boxbottom3.png [new file with mode: 0644]
html/html/images/boxleft.png [new file with mode: 0644]
html/html/images/boxright.png [new file with mode: 0644]
html/html/images/boxtop1.png [new file with mode: 0644]
html/html/images/boxtop2.png [new file with mode: 0644]
html/html/images/boxtop3.png [new file with mode: 0644]
html/html/images/clock.gif [new file with mode: 0644]
html/html/images/delete.gif [new file with mode: 0644]
html/html/images/download.png [new file with mode: 0644]
html/html/images/edit.gif [new file with mode: 0644]
html/html/images/floppy.gif [new file with mode: 0644]
html/html/images/forward.gif [new file with mode: 0644]
html/html/images/header.png [new file with mode: 0644]
html/html/images/info.gif [new file with mode: 0644]
html/html/images/null.gif [new file with mode: 0644]
html/html/images/off.gif [new file with mode: 0644]
html/html/images/on.gif [new file with mode: 0644]
html/html/images/reload.gif [new file with mode: 0644]
html/html/images/web-support.png [new file with mode: 0644]
html/html/include/CVS/Entries [new file with mode: 0644]
html/html/include/CVS/Repository [new file with mode: 0644]
html/html/include/CVS/Root [new file with mode: 0644]
html/html/include/CVS/Tag [new file with mode: 0644]
html/html/include/domMenu.js [new file with mode: 0644]
html/html/include/ipcop.css [new file with mode: 0644]
html/html/index.cgi [new file with mode: 0644]
html/html/ipcop_big.gif [new file with mode: 0644]
langs/CVS/Entries [new file with mode: 0644]
langs/CVS/Repository [new file with mode: 0644]
langs/CVS/Root [new file with mode: 0644]
langs/CVS/Tag [new file with mode: 0644]
langs/bz/CVS/Entries [new file with mode: 0644]
langs/bz/CVS/Repository [new file with mode: 0644]
langs/bz/CVS/Root [new file with mode: 0644]
langs/bz/CVS/Tag [new file with mode: 0644]
langs/bz/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/bz/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/bz/cgi-bin/CVS/Root [new file with mode: 0644]
langs/bz/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/bz/cgi-bin/bz.pl [new file with mode: 0644]
langs/bz/install/CVS/Entries [new file with mode: 0644]
langs/bz/install/CVS/Repository [new file with mode: 0644]
langs/bz/install/CVS/Root [new file with mode: 0644]
langs/bz/install/CVS/Tag [new file with mode: 0644]
langs/bz/install/lang_bz.c [new file with mode: 0644]
langs/cs/CVS/Entries [new file with mode: 0644]
langs/cs/CVS/Repository [new file with mode: 0644]
langs/cs/CVS/Root [new file with mode: 0644]
langs/cs/CVS/Tag [new file with mode: 0644]
langs/cs/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/cs/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/cs/cgi-bin/CVS/Root [new file with mode: 0644]
langs/cs/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/cs/cgi-bin/cs.pl [new file with mode: 0644]
langs/cs/install/CVS/Entries [new file with mode: 0644]
langs/cs/install/CVS/Repository [new file with mode: 0644]
langs/cs/install/CVS/Root [new file with mode: 0644]
langs/cs/install/CVS/Tag [new file with mode: 0644]
langs/cs/install/lang_cs.c [new file with mode: 0644]
langs/da/CVS/Entries [new file with mode: 0644]
langs/da/CVS/Repository [new file with mode: 0644]
langs/da/CVS/Root [new file with mode: 0644]
langs/da/CVS/Tag [new file with mode: 0644]
langs/da/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/da/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/da/cgi-bin/CVS/Root [new file with mode: 0644]
langs/da/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/da/cgi-bin/da.pl [new file with mode: 0644]
langs/da/install/CVS/Entries [new file with mode: 0644]
langs/da/install/CVS/Repository [new file with mode: 0644]
langs/da/install/CVS/Root [new file with mode: 0644]
langs/da/install/CVS/Tag [new file with mode: 0644]
langs/da/install/lang_da.c [new file with mode: 0644]
langs/de/CVS/Entries [new file with mode: 0644]
langs/de/CVS/Repository [new file with mode: 0644]
langs/de/CVS/Root [new file with mode: 0644]
langs/de/CVS/Tag [new file with mode: 0644]
langs/de/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/de/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/de/cgi-bin/CVS/Root [new file with mode: 0644]
langs/de/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/de/cgi-bin/de.pl [new file with mode: 0644]
langs/de/install/CVS/Entries [new file with mode: 0644]
langs/de/install/CVS/Repository [new file with mode: 0644]
langs/de/install/CVS/Root [new file with mode: 0644]
langs/de/install/CVS/Tag [new file with mode: 0644]
langs/de/install/lang_de.c [new file with mode: 0644]
langs/el/CVS/Entries [new file with mode: 0644]
langs/el/CVS/Repository [new file with mode: 0644]
langs/el/CVS/Root [new file with mode: 0644]
langs/el/CVS/Tag [new file with mode: 0644]
langs/el/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/el/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/el/cgi-bin/CVS/Root [new file with mode: 0644]
langs/el/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/el/cgi-bin/el.pl [new file with mode: 0644]
langs/el/install/CVS/Entries [new file with mode: 0644]
langs/el/install/CVS/Repository [new file with mode: 0644]
langs/el/install/CVS/Root [new file with mode: 0644]
langs/el/install/CVS/Tag [new file with mode: 0644]
langs/el/install/lang_el.c [new file with mode: 0644]
langs/en/CVS/Entries [new file with mode: 0644]
langs/en/CVS/Repository [new file with mode: 0644]
langs/en/CVS/Root [new file with mode: 0644]
langs/en/CVS/Tag [new file with mode: 0644]
langs/en/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/en/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/en/cgi-bin/CVS/Root [new file with mode: 0644]
langs/en/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/en/cgi-bin/en.pl [new file with mode: 0644]
langs/en/install/CVS/Entries [new file with mode: 0644]
langs/en/install/CVS/Repository [new file with mode: 0644]
langs/en/install/CVS/Root [new file with mode: 0644]
langs/en/install/CVS/Tag [new file with mode: 0644]
langs/en/install/lang_en.c [new file with mode: 0644]
langs/es/CVS/Entries [new file with mode: 0644]
langs/es/CVS/Repository [new file with mode: 0644]
langs/es/CVS/Root [new file with mode: 0644]
langs/es/CVS/Tag [new file with mode: 0644]
langs/es/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/es/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/es/cgi-bin/CVS/Root [new file with mode: 0644]
langs/es/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/es/cgi-bin/es.pl [new file with mode: 0644]
langs/es/install/CVS/Entries [new file with mode: 0644]
langs/es/install/CVS/Repository [new file with mode: 0644]
langs/es/install/CVS/Root [new file with mode: 0644]
langs/es/install/CVS/Tag [new file with mode: 0644]
langs/es/install/lang_es.c [new file with mode: 0644]
langs/fa/CVS/Entries [new file with mode: 0644]
langs/fa/CVS/Repository [new file with mode: 0644]
langs/fa/CVS/Root [new file with mode: 0644]
langs/fa/CVS/Tag [new file with mode: 0644]
langs/fa/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/fa/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/fa/cgi-bin/CVS/Root [new file with mode: 0644]
langs/fa/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/fa/cgi-bin/fa.pl [new file with mode: 0644]
langs/fi/CVS/Entries [new file with mode: 0644]
langs/fi/CVS/Repository [new file with mode: 0644]
langs/fi/CVS/Root [new file with mode: 0644]
langs/fi/CVS/Tag [new file with mode: 0644]
langs/fi/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/fi/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/fi/cgi-bin/CVS/Root [new file with mode: 0644]
langs/fi/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/fi/cgi-bin/fi.pl [new file with mode: 0644]
langs/fi/install/CVS/Entries [new file with mode: 0644]
langs/fi/install/CVS/Repository [new file with mode: 0644]
langs/fi/install/CVS/Root [new file with mode: 0644]
langs/fi/install/CVS/Tag [new file with mode: 0644]
langs/fi/install/lang_fi.c [new file with mode: 0644]
langs/fr/CVS/Entries [new file with mode: 0644]
langs/fr/CVS/Repository [new file with mode: 0644]
langs/fr/CVS/Root [new file with mode: 0644]
langs/fr/CVS/Tag [new file with mode: 0644]
langs/fr/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/fr/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/fr/cgi-bin/CVS/Root [new file with mode: 0644]
langs/fr/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/fr/cgi-bin/fr.pl [new file with mode: 0644]
langs/fr/install/CVS/Entries [new file with mode: 0644]
langs/fr/install/CVS/Repository [new file with mode: 0644]
langs/fr/install/CVS/Root [new file with mode: 0644]
langs/fr/install/CVS/Tag [new file with mode: 0644]
langs/fr/install/lang_fr.c [new file with mode: 0644]
langs/hu/CVS/Entries [new file with mode: 0644]
langs/hu/CVS/Repository [new file with mode: 0644]
langs/hu/CVS/Root [new file with mode: 0644]
langs/hu/CVS/Tag [new file with mode: 0644]
langs/hu/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/hu/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/hu/cgi-bin/CVS/Root [new file with mode: 0644]
langs/hu/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/hu/cgi-bin/hu.pl [new file with mode: 0644]
langs/hu/install/CVS/Entries [new file with mode: 0644]
langs/hu/install/CVS/Repository [new file with mode: 0644]
langs/hu/install/CVS/Root [new file with mode: 0644]
langs/hu/install/CVS/Tag [new file with mode: 0644]
langs/hu/install/lang_hu.c [new file with mode: 0644]
langs/it/CVS/Entries [new file with mode: 0644]
langs/it/CVS/Repository [new file with mode: 0644]
langs/it/CVS/Root [new file with mode: 0644]
langs/it/CVS/Tag [new file with mode: 0644]
langs/it/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/it/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/it/cgi-bin/CVS/Root [new file with mode: 0644]
langs/it/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/it/cgi-bin/it.pl [new file with mode: 0644]
langs/it/install/CVS/Entries [new file with mode: 0644]
langs/it/install/CVS/Repository [new file with mode: 0644]
langs/it/install/CVS/Root [new file with mode: 0644]
langs/it/install/CVS/Tag [new file with mode: 0644]
langs/it/install/lang_it.c [new file with mode: 0644]
langs/la/CVS/Entries [new file with mode: 0644]
langs/la/CVS/Repository [new file with mode: 0644]
langs/la/CVS/Root [new file with mode: 0644]
langs/la/CVS/Tag [new file with mode: 0644]
langs/la/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/la/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/la/cgi-bin/CVS/Root [new file with mode: 0644]
langs/la/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/la/cgi-bin/la.pl [new file with mode: 0644]
langs/la/install/CVS/Entries [new file with mode: 0644]
langs/la/install/CVS/Repository [new file with mode: 0644]
langs/la/install/CVS/Root [new file with mode: 0644]
langs/la/install/CVS/Tag [new file with mode: 0644]
langs/la/install/lang_la.c [new file with mode: 0644]
langs/list [new file with mode: 0644]
langs/lt/CVS/Entries [new file with mode: 0644]
langs/lt/CVS/Repository [new file with mode: 0644]
langs/lt/CVS/Root [new file with mode: 0644]
langs/lt/CVS/Tag [new file with mode: 0644]
langs/lt/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/lt/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/lt/cgi-bin/CVS/Root [new file with mode: 0644]
langs/lt/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/lt/cgi-bin/lt.pl [new file with mode: 0644]
langs/nl/CVS/Entries [new file with mode: 0644]
langs/nl/CVS/Repository [new file with mode: 0644]
langs/nl/CVS/Root [new file with mode: 0644]
langs/nl/CVS/Tag [new file with mode: 0644]
langs/nl/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/nl/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/nl/cgi-bin/CVS/Root [new file with mode: 0644]
langs/nl/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/nl/cgi-bin/nl.pl [new file with mode: 0644]
langs/nl/install/CVS/Entries [new file with mode: 0644]
langs/nl/install/CVS/Repository [new file with mode: 0644]
langs/nl/install/CVS/Root [new file with mode: 0644]
langs/nl/install/CVS/Tag [new file with mode: 0644]
langs/nl/install/lang_nl.c [new file with mode: 0644]
langs/no/CVS/Entries [new file with mode: 0644]
langs/no/CVS/Repository [new file with mode: 0644]
langs/no/CVS/Root [new file with mode: 0644]
langs/no/CVS/Tag [new file with mode: 0644]
langs/no/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/no/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/no/cgi-bin/CVS/Root [new file with mode: 0644]
langs/no/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/no/cgi-bin/no.pl [new file with mode: 0644]
langs/no/install/CVS/Entries [new file with mode: 0644]
langs/no/install/CVS/Repository [new file with mode: 0644]
langs/no/install/CVS/Root [new file with mode: 0644]
langs/no/install/CVS/Tag [new file with mode: 0644]
langs/no/install/lang_no.c [new file with mode: 0644]
langs/pl/CVS/Entries [new file with mode: 0644]
langs/pl/CVS/Repository [new file with mode: 0644]
langs/pl/CVS/Root [new file with mode: 0644]
langs/pl/CVS/Tag [new file with mode: 0644]
langs/pl/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/pl/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/pl/cgi-bin/CVS/Root [new file with mode: 0644]
langs/pl/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/pl/cgi-bin/pl.pl [new file with mode: 0644]
langs/pl/install/CVS/Entries [new file with mode: 0644]
langs/pl/install/CVS/Repository [new file with mode: 0644]
langs/pl/install/CVS/Root [new file with mode: 0644]
langs/pl/install/CVS/Tag [new file with mode: 0644]
langs/pl/install/lang_pl.c [new file with mode: 0644]
langs/pt/CVS/Entries [new file with mode: 0644]
langs/pt/CVS/Repository [new file with mode: 0644]
langs/pt/CVS/Root [new file with mode: 0644]
langs/pt/CVS/Tag [new file with mode: 0644]
langs/pt/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/pt/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/pt/cgi-bin/CVS/Root [new file with mode: 0644]
langs/pt/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/pt/cgi-bin/pt.pl [new file with mode: 0644]
langs/pt/install/CVS/Entries [new file with mode: 0644]
langs/pt/install/CVS/Repository [new file with mode: 0644]
langs/pt/install/CVS/Root [new file with mode: 0644]
langs/pt/install/CVS/Tag [new file with mode: 0644]
langs/pt/install/lang_pt.c [new file with mode: 0644]
langs/ro/CVS/Entries [new file with mode: 0644]
langs/ro/CVS/Repository [new file with mode: 0644]
langs/ro/CVS/Root [new file with mode: 0644]
langs/ro/CVS/Tag [new file with mode: 0644]
langs/ro/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/ro/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/ro/cgi-bin/CVS/Root [new file with mode: 0644]
langs/ro/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/ro/cgi-bin/ro.pl [new file with mode: 0644]
langs/ru/CVS/Entries [new file with mode: 0644]
langs/ru/CVS/Repository [new file with mode: 0644]
langs/ru/CVS/Root [new file with mode: 0644]
langs/ru/CVS/Tag [new file with mode: 0644]
langs/ru/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/ru/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/ru/cgi-bin/CVS/Root [new file with mode: 0644]
langs/ru/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/ru/cgi-bin/ru.pl [new file with mode: 0644]
langs/sk/CVS/Entries [new file with mode: 0644]
langs/sk/CVS/Repository [new file with mode: 0644]
langs/sk/CVS/Root [new file with mode: 0644]
langs/sk/CVS/Tag [new file with mode: 0644]
langs/sk/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/sk/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/sk/cgi-bin/CVS/Root [new file with mode: 0644]
langs/sk/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/sk/cgi-bin/sk.pl [new file with mode: 0644]
langs/sk/install/CVS/Entries [new file with mode: 0644]
langs/sk/install/CVS/Repository [new file with mode: 0644]
langs/sk/install/CVS/Root [new file with mode: 0644]
langs/sk/install/CVS/Tag [new file with mode: 0644]
langs/sk/install/lang_sk.c [new file with mode: 0644]
langs/sl/CVS/Entries [new file with mode: 0644]
langs/sl/CVS/Repository [new file with mode: 0644]
langs/sl/CVS/Root [new file with mode: 0644]
langs/sl/CVS/Tag [new file with mode: 0644]
langs/sl/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/sl/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/sl/cgi-bin/CVS/Root [new file with mode: 0644]
langs/sl/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/sl/cgi-bin/sl.pl [new file with mode: 0644]
langs/so/CVS/Entries [new file with mode: 0644]
langs/so/CVS/Repository [new file with mode: 0644]
langs/so/CVS/Root [new file with mode: 0644]
langs/so/CVS/Tag [new file with mode: 0644]
langs/so/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/so/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/so/cgi-bin/CVS/Root [new file with mode: 0644]
langs/so/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/so/cgi-bin/so.pl [new file with mode: 0644]
langs/so/install/CVS/Entries [new file with mode: 0644]
langs/so/install/CVS/Repository [new file with mode: 0644]
langs/so/install/CVS/Root [new file with mode: 0644]
langs/so/install/CVS/Tag [new file with mode: 0644]
langs/so/install/lang_so.c [new file with mode: 0644]
langs/sv/CVS/Entries [new file with mode: 0644]
langs/sv/CVS/Repository [new file with mode: 0644]
langs/sv/CVS/Root [new file with mode: 0644]
langs/sv/CVS/Tag [new file with mode: 0644]
langs/sv/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/sv/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/sv/cgi-bin/CVS/Root [new file with mode: 0644]
langs/sv/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/sv/cgi-bin/sv.pl [new file with mode: 0644]
langs/sv/install/CVS/Entries [new file with mode: 0644]
langs/sv/install/CVS/Repository [new file with mode: 0644]
langs/sv/install/CVS/Root [new file with mode: 0644]
langs/sv/install/CVS/Tag [new file with mode: 0644]
langs/sv/install/lang_sv.c [new file with mode: 0644]
langs/th/CVS/Entries [new file with mode: 0644]
langs/th/CVS/Repository [new file with mode: 0644]
langs/th/CVS/Root [new file with mode: 0644]
langs/th/CVS/Tag [new file with mode: 0644]
langs/th/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/th/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/th/cgi-bin/CVS/Root [new file with mode: 0644]
langs/th/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/th/cgi-bin/th.pl [new file with mode: 0644]
langs/tr/CVS/Entries [new file with mode: 0644]
langs/tr/CVS/Repository [new file with mode: 0644]
langs/tr/CVS/Root [new file with mode: 0644]
langs/tr/CVS/Tag [new file with mode: 0644]
langs/tr/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/tr/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/tr/cgi-bin/CVS/Root [new file with mode: 0644]
langs/tr/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/tr/cgi-bin/tr.pl [new file with mode: 0644]
langs/tr/install/CVS/Entries [new file with mode: 0644]
langs/tr/install/CVS/Repository [new file with mode: 0644]
langs/tr/install/CVS/Root [new file with mode: 0644]
langs/tr/install/CVS/Tag [new file with mode: 0644]
langs/tr/install/lang_tr.c [new file with mode: 0644]
langs/vi/CVS/Entries [new file with mode: 0644]
langs/vi/CVS/Repository [new file with mode: 0644]
langs/vi/CVS/Root [new file with mode: 0644]
langs/vi/CVS/Tag [new file with mode: 0644]
langs/vi/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/vi/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/vi/cgi-bin/CVS/Root [new file with mode: 0644]
langs/vi/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/vi/cgi-bin/vi.pl [new file with mode: 0644]
langs/vi/install/CVS/Entries [new file with mode: 0644]
langs/vi/install/CVS/Repository [new file with mode: 0644]
langs/vi/install/CVS/Root [new file with mode: 0644]
langs/vi/install/CVS/Tag [new file with mode: 0644]
langs/vi/install/lang_vi.c [new file with mode: 0644]
langs/zh/CVS/Entries [new file with mode: 0644]
langs/zh/CVS/Repository [new file with mode: 0644]
langs/zh/CVS/Root [new file with mode: 0644]
langs/zh/CVS/Tag [new file with mode: 0644]
langs/zh/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/zh/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/zh/cgi-bin/CVS/Root [new file with mode: 0644]
langs/zh/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/zh/cgi-bin/zh.pl [new file with mode: 0644]
langs/zt/CVS/Entries [new file with mode: 0644]
langs/zt/CVS/Repository [new file with mode: 0644]
langs/zt/CVS/Root [new file with mode: 0644]
langs/zt/CVS/Tag [new file with mode: 0644]
langs/zt/cgi-bin/CVS/Entries [new file with mode: 0644]
langs/zt/cgi-bin/CVS/Repository [new file with mode: 0644]
langs/zt/cgi-bin/CVS/Root [new file with mode: 0644]
langs/zt/cgi-bin/CVS/Tag [new file with mode: 0644]
langs/zt/cgi-bin/zt.pl [new file with mode: 0644]
lfs/3c5x9setup [new file with mode: 0644]
lfs/3cp4218 [new file with mode: 0644]
lfs/CVS/Entries [new file with mode: 0644]
lfs/CVS/Repository [new file with mode: 0644]
lfs/CVS/Root [new file with mode: 0644]
lfs/CVS/Tag [new file with mode: 0644]
lfs/Compress-Zlib [new file with mode: 0644]
lfs/Config [new file with mode: 0644]
lfs/Digest [new file with mode: 0644]
lfs/Digest-HMAC [new file with mode: 0644]
lfs/Digest-SHA1 [new file with mode: 0644]
lfs/GD [new file with mode: 0644]
lfs/HTML-Parser [new file with mode: 0644]
lfs/HTML-Tagset [new file with mode: 0644]
lfs/Net-DNS [new file with mode: 0644]
lfs/Net-IPv4Addr [new file with mode: 0644]
lfs/Net_SSLeay [new file with mode: 0644]
lfs/URI [new file with mode: 0644]
lfs/aboot [new file with mode: 0644]
lfs/amedyn [new file with mode: 0644]
lfs/apache [new file with mode: 0644]
lfs/arping [new file with mode: 0644]
lfs/as86 [new file with mode: 0644]
lfs/autoconf [new file with mode: 0644]
lfs/automake [new file with mode: 0644]
lfs/bash [new file with mode: 0644]
lfs/beep [new file with mode: 0644]
lfs/bind [new file with mode: 0644]
lfs/binutils [new file with mode: 0644]
lfs/bison [new file with mode: 0644]
lfs/boot.img [new file with mode: 0644]
lfs/busybox [new file with mode: 0644]
lfs/bzip2 [new file with mode: 0644]
lfs/capi4k-utils [new file with mode: 0644]
lfs/ccache [new file with mode: 0644]
lfs/cdrom [new file with mode: 0644]
lfs/cdrtools [new file with mode: 0644]
lfs/cnx_pci [new file with mode: 0644]
lfs/configroot [new file with mode: 0644]
lfs/coreutils [new file with mode: 0644]
lfs/cxacru [new file with mode: 0644]
lfs/dejagnu [new file with mode: 0644]
lfs/dhcp [new file with mode: 0644]
lfs/dhcpcd [new file with mode: 0644]
lfs/diffutils [new file with mode: 0644]
lfs/dnsmasq [new file with mode: 0644]
lfs/dosfstools [new file with mode: 0644]
lfs/driver.img [new file with mode: 0644]
lfs/e2fsprogs [new file with mode: 0644]
lfs/eagle [new file with mode: 0644]
lfs/eciadsl [new file with mode: 0644]
lfs/ed [new file with mode: 0644]
lfs/ethtool [new file with mode: 0644]
lfs/expat [new file with mode: 0644]
lfs/expect [new file with mode: 0644]
lfs/ez-ipupdate [new file with mode: 0644]
lfs/fcdsl [new file with mode: 0644]
lfs/fcdsl2 [new file with mode: 0644]
lfs/fcdslsl [new file with mode: 0644]
lfs/fcdslslusb [new file with mode: 0644]
lfs/fcdslusb [new file with mode: 0644]
lfs/fcron [new file with mode: 0644]
lfs/file [new file with mode: 0644]
lfs/findutils [new file with mode: 0644]
lfs/flex [new file with mode: 0644]
lfs/gawk [new file with mode: 0644]
lfs/gcc [new file with mode: 0644]
lfs/gdbm [new file with mode: 0644]
lfs/gettext [new file with mode: 0644]
lfs/glibc [new file with mode: 0644]
lfs/gmp [new file with mode: 0644]
lfs/gnupg [new file with mode: 0644]
lfs/grep [new file with mode: 0644]
lfs/groff [new file with mode: 0644]
lfs/grub [new file with mode: 0644]
lfs/gzip [new file with mode: 0644]
lfs/hdparm [new file with mode: 0644]
lfs/iana-etc [new file with mode: 0644]
lfs/ibod [new file with mode: 0644]
lfs/inetutils [new file with mode: 0644]
lfs/initrd [new file with mode: 0644]
lfs/initscripts [new file with mode: 0644]
lfs/installer [new file with mode: 0644]
lfs/ipac-ng [new file with mode: 0644]
lfs/ipaddr [new file with mode: 0644]
lfs/iproute2 [new file with mode: 0644]
lfs/iptables [new file with mode: 0644]
lfs/iptables_orig [new file with mode: 0644]
lfs/iptstate [new file with mode: 0644]
lfs/iputils [new file with mode: 0644]
lfs/isapnptools [new file with mode: 0644]
lfs/isdn4k-utils [new file with mode: 0644]
lfs/kbd [new file with mode: 0644]
lfs/kudzu [new file with mode: 0644]
lfs/less [new file with mode: 0644]
lfs/libcap [new file with mode: 0644]
lfs/libnet [new file with mode: 0644]
lfs/libpcap [new file with mode: 0644]
lfs/libpng [new file with mode: 0644]
lfs/libsafe [new file with mode: 0644]
lfs/libtool [new file with mode: 0644]
lfs/libusb [new file with mode: 0644]
lfs/libwww-perl [new file with mode: 0644]
lfs/linux [new file with mode: 0644]
lfs/linux-atm [new file with mode: 0644]
lfs/linux_orig [new file with mode: 0644]
lfs/logrotate [new file with mode: 0644]
lfs/logwatch [new file with mode: 0644]
lfs/lpd [new file with mode: 0644]
lfs/m4 [new file with mode: 0644]
lfs/make [new file with mode: 0644]
lfs/makedev [new file with mode: 0644]
lfs/man [new file with mode: 0644]
lfs/man-pages [new file with mode: 0644]
lfs/mbr [new file with mode: 0644]
lfs/mingetty [new file with mode: 0644]
lfs/misc-progs [new file with mode: 0644]
lfs/mktemp [new file with mode: 0644]
lfs/modutils [new file with mode: 0644]
lfs/mtools [new file with mode: 0644]
lfs/nano [new file with mode: 0644]
lfs/nash [new file with mode: 0644]
lfs/nasm [new file with mode: 0644]
lfs/ncurses [new file with mode: 0644]
lfs/ndiswrapper [new file with mode: 0644]
lfs/net-tools [new file with mode: 0644]
lfs/newt [new file with mode: 0644]
lfs/noip_updater [new file with mode: 0644]
lfs/ntp [new file with mode: 0644]
lfs/oinkmaster [new file with mode: 0644]
lfs/openssh [new file with mode: 0644]
lfs/openssl [new file with mode: 0644]
lfs/openswan [new file with mode: 0644]
lfs/pam [new file with mode: 0644]
lfs/patch [new file with mode: 0644]
lfs/pciutils [new file with mode: 0644]
lfs/pcmcia-cs [new file with mode: 0644]
lfs/pcre [new file with mode: 0644]
lfs/perl [new file with mode: 0644]
lfs/popt [new file with mode: 0644]
lfs/ppp [new file with mode: 0644]
lfs/pptpclient [new file with mode: 0644]
lfs/procinfo [new file with mode: 0644]
lfs/procps [new file with mode: 0644]
lfs/psmisc [new file with mode: 0644]
lfs/pulsar [new file with mode: 0644]
lfs/python [new file with mode: 0644]
lfs/rp-pppoe [new file with mode: 0644]
lfs/rrdtool [new file with mode: 0644]
lfs/scsi.img [new file with mode: 0644]
lfs/sed [new file with mode: 0644]
lfs/setserial [new file with mode: 0644]
lfs/setup [new file with mode: 0644]
lfs/shadow [new file with mode: 0644]
lfs/slang [new file with mode: 0644]
lfs/snort [new file with mode: 0644]
lfs/speedtouch [new file with mode: 0644]
lfs/speedycgi [new file with mode: 0644]
lfs/squid [new file with mode: 0644]
lfs/squid-graph [new file with mode: 0644]
lfs/stage2 [new file with mode: 0644]
lfs/stund [new file with mode: 0644]
lfs/sysklogd [new file with mode: 0644]
lfs/syslinux [new file with mode: 0644]
lfs/sysvinit [new file with mode: 0644]
lfs/tar [new file with mode: 0644]
lfs/tcl [new file with mode: 0644]
lfs/tcpdump [new file with mode: 0644]
lfs/texinfo [new file with mode: 0644]
lfs/traceroute [new file with mode: 0644]
lfs/uClibc [new file with mode: 0644]
lfs/unicorn [new file with mode: 0644]
lfs/unzip [new file with mode: 0644]
lfs/util-linux [new file with mode: 0644]
lfs/vim [new file with mode: 0644]
lfs/vlan [new file with mode: 0644]
lfs/wireless [new file with mode: 0644]
lfs/xampp [new file with mode: 0644]
lfs/zlib [new file with mode: 0644]
src/CVS/Entries [new file with mode: 0644]
src/CVS/Repository [new file with mode: 0644]
src/CVS/Root [new file with mode: 0644]
src/CVS/Tag [new file with mode: 0644]
src/ROOTFILES.alpha [new file with mode: 0644]
src/ROOTFILES.i386 [new file with mode: 0644]
src/ibod/CVS/Entries [new file with mode: 0644]
src/ibod/CVS/Repository [new file with mode: 0644]
src/ibod/CVS/Root [new file with mode: 0644]
src/ibod/CVS/Tag [new file with mode: 0644]
src/ibod/ibod.c [new file with mode: 0644]
src/ibod/ibod.cf [new file with mode: 0644]
src/ibod/ibod.h [new file with mode: 0644]
src/install+setup/CVS/Entries [new file with mode: 0644]
src/install+setup/CVS/Repository [new file with mode: 0644]
src/install+setup/CVS/Root [new file with mode: 0644]
src/install+setup/CVS/Tag [new file with mode: 0644]
src/install+setup/install/CVS/Entries [new file with mode: 0644]
src/install+setup/install/CVS/Repository [new file with mode: 0644]
src/install+setup/install/CVS/Root [new file with mode: 0644]
src/install+setup/install/CVS/Tag [new file with mode: 0644]
src/install+setup/install/Makefile [new file with mode: 0644]
src/install+setup/install/cdrom.c [new file with mode: 0644]
src/install+setup/install/config.c [new file with mode: 0644]
src/install+setup/install/grubbatch [new file with mode: 0644]
src/install+setup/install/ide.c [new file with mode: 0644]
src/install+setup/install/install.h [new file with mode: 0644]
src/install+setup/install/install2.c [new file with mode: 0644]
src/install+setup/install/main.c [new file with mode: 0644]
src/install+setup/install/net.c [new file with mode: 0644]
src/install+setup/install/nic.c [new file with mode: 0644]
src/install+setup/install/pcmcia.c [new file with mode: 0644]
src/install+setup/install/pcmcia.h [new file with mode: 0644]
src/install+setup/install/probescsi.sh [new file with mode: 0644]
src/install+setup/install/scsi.c [new file with mode: 0644]
src/install+setup/install/upgrade-v12-v13.c [new file with mode: 0644]
src/install+setup/install/upgrade-v130-v140.c [new file with mode: 0644]
src/install+setup/install/usb.c [new file with mode: 0644]
src/install+setup/libsmooth/CVS/Entries [new file with mode: 0644]
src/install+setup/libsmooth/CVS/Repository [new file with mode: 0644]
src/install+setup/libsmooth/CVS/Root [new file with mode: 0644]
src/install+setup/libsmooth/CVS/Tag [new file with mode: 0644]
src/install+setup/libsmooth/Makefile [new file with mode: 0644]
src/install+setup/libsmooth/langs.h.temp [new file with mode: 0644]
src/install+setup/libsmooth/libsmooth.h [new file with mode: 0644]
src/install+setup/libsmooth/main.c [new file with mode: 0644]
src/install+setup/libsmooth/makelangs.pl [new file with mode: 0644]
src/install+setup/libsmooth/netstuff.c [new file with mode: 0644]
src/install+setup/libsmooth/varval.c [new file with mode: 0644]
src/install+setup/setup/CVS/Entries [new file with mode: 0644]
src/install+setup/setup/CVS/Repository [new file with mode: 0644]
src/install+setup/setup/CVS/Root [new file with mode: 0644]
src/install+setup/setup/CVS/Tag [new file with mode: 0644]
src/install+setup/setup/Makefile [new file with mode: 0644]
src/install+setup/setup/dhcp.c [new file with mode: 0644]
src/install+setup/setup/domainname.c [new file with mode: 0644]
src/install+setup/setup/hostname.c [new file with mode: 0644]
src/install+setup/setup/isdn.c [new file with mode: 0644]
src/install+setup/setup/keymap.c [new file with mode: 0644]
src/install+setup/setup/main.c [new file with mode: 0644]
src/install+setup/setup/misc.c [new file with mode: 0644]
src/install+setup/setup/networking.c [new file with mode: 0644]
src/install+setup/setup/passwords.c [new file with mode: 0644]
src/install+setup/setup/setup.h [new file with mode: 0644]
src/install+setup/setup/timezone.c [new file with mode: 0644]
src/misc-progs/CVS/Entries [new file with mode: 0644]
src/misc-progs/CVS/Repository [new file with mode: 0644]
src/misc-progs/CVS/Root [new file with mode: 0644]
src/misc-progs/CVS/Tag [new file with mode: 0644]
src/misc-progs/Makefile [new file with mode: 0644]
src/misc-progs/installfcdsl.c [new file with mode: 0644]
src/misc-progs/installpackage.c [new file with mode: 0644]
src/misc-progs/iowrap.c [new file with mode: 0644]
src/misc-progs/ipcopbackup.c [new file with mode: 0644]
src/misc-progs/ipcopbkcfg.c [new file with mode: 0644]
src/misc-progs/ipcopdeath.c [new file with mode: 0644]
src/misc-progs/ipcoprebirth.c [new file with mode: 0644]
src/misc-progs/ipcopreboot.c [new file with mode: 0644]
src/misc-progs/ipcoprscfg.c [new file with mode: 0644]
src/misc-progs/ipsecctrl.c [new file with mode: 0644]
src/misc-progs/logwatch.c [new file with mode: 0644]
src/misc-progs/rebuildhosts.c [new file with mode: 0644]
src/misc-progs/restartdhcp.c [new file with mode: 0644]
src/misc-progs/restartntpd.c [new file with mode: 0644]
src/misc-progs/restartshaping.c [new file with mode: 0644]
src/misc-progs/restartsnort.c [new file with mode: 0644]
src/misc-progs/restartsquid.c [new file with mode: 0644]
src/misc-progs/restartssh.c [new file with mode: 0644]
src/misc-progs/restartsyslogd.c [new file with mode: 0644]
src/misc-progs/restartwireless.c [new file with mode: 0644]
src/misc-progs/setaliases.c [new file with mode: 0644]
src/misc-progs/setdate.c [new file with mode: 0644]
src/misc-progs/setdmzholes.c [new file with mode: 0644]
src/misc-progs/setfilters.c [new file with mode: 0644]
src/misc-progs/setportfw.c [new file with mode: 0644]
src/misc-progs/setuid.c [new file with mode: 0644]
src/misc-progs/setuid.h [new file with mode: 0644]
src/misc-progs/setxtaccess.c [new file with mode: 0644]
src/nash/CVS/Entries [new file with mode: 0644]
src/nash/CVS/Repository [new file with mode: 0644]
src/nash/CVS/Root [new file with mode: 0644]
src/nash/CVS/Tag [new file with mode: 0644]
src/nash/Makefile [new file with mode: 0644]
src/nash/linux_fs.h [new file with mode: 0644]
src/nash/mkinitrd [new file with mode: 0644]
src/nash/mount_by_label.c [new file with mode: 0644]
src/nash/mount_by_label.h [new file with mode: 0644]
src/nash/nash.8 [new file with mode: 0644]
src/nash/nash.c [new file with mode: 0644]
src/nash/sample-rc [new file with mode: 0644]
src/patches/CVS/Entries [new file with mode: 0644]
src/patches/CVS/Repository [new file with mode: 0644]
src/patches/CVS/Root [new file with mode: 0644]
src/patches/CVS/Tag [new file with mode: 0644]
src/patches/CnxADSL-cln-irqreturn.patch [new file with mode: 0644]
src/patches/busybox-0.60.5-config.patch [new file with mode: 0644]
src/patches/busybox-0.60.5-gzip.patch [new file with mode: 0644]
src/patches/busybox-0.60.5-insmod_gpl_symbols.patch [new file with mode: 0644]
src/patches/busybox-0.60.5-spider.patch [new file with mode: 0644]
src/patches/busybox-0.60.5-wget-unlink.patch [new file with mode: 0644]
src/patches/bzip2-1.0.2-chmod.patch [new file with mode: 0644]
src/patches/capi4k-utils-2004-10-06_ppp-2.4.3.patch [new file with mode: 0644]
src/patches/ccache-2.3.patch [new file with mode: 0644]
src/patches/cnx_pci_yukon.patch [new file with mode: 0644]
src/patches/dhcpcd-1.3.22-pl4_corrupt-packet.patch [new file with mode: 0644]
src/patches/e2fsprogs-1.35-install.patch [new file with mode: 0644]
src/patches/ez-ipupdate.formstring.patch [new file with mode: 0644]
src/patches/fcdsl-singlelock.patch [new file with mode: 0644]
src/patches/fcdslsl-singlelock.patch [new file with mode: 0644]
src/patches/fcdslslusb-singlelock.patch [new file with mode: 0644]
src/patches/fcdslx-irqreturn.patch [new file with mode: 0644]
src/patches/gcc-2.95.3-alpha.patch [new file with mode: 0644]
src/patches/glibc-2.3.3-ssp_frandom-2.patch [new file with mode: 0644]
src/patches/grub-0.90-append.patch [new file with mode: 0644]
src/patches/grub-0.90-symlinkmenulst.patch [new file with mode: 0644]
src/patches/grub-0.91-bootonce.patch [new file with mode: 0644]
src/patches/grub-0.91-splashimagehelp.patch [new file with mode: 0644]
src/patches/grub-0.93-configfile.patch [new file with mode: 0644]
src/patches/grub-0.93-endedit.patch [new file with mode: 0644]
src/patches/grub-0.93-graphics-bootterm.patch [new file with mode: 0644]
src/patches/grub-0.93-graphics.patch [new file with mode: 0644]
src/patches/grub-0.93-rtl8139.patch [new file with mode: 0644]
src/patches/grub-0.93-special-device-names.patch [new file with mode: 0644]
src/patches/grub-0.94-i2o.patch [new file with mode: 0644]
src/patches/gzip-1.3.3-window-size.patch [new file with mode: 0644]
src/patches/gzip-1.3.5-asm-execstack.patch [new file with mode: 0644]
src/patches/gzip-1.3.5-gunzip-dir.patch [new file with mode: 0644]
src/patches/gzip-1.3.5-perm.patch [new file with mode: 0644]
src/patches/inetutils-1.4.2-ping-1.patch [new file with mode: 0644]
src/patches/iproute2-2.4.7-netlink.patch [new file with mode: 0644]
src/patches/iproute2-includes.patch [new file with mode: 0644]
src/patches/iptables-1.2.11.patch [new file with mode: 0644]
src/patches/isdn4k-utils-v3.2p1-c89.patch [new file with mode: 0644]
src/patches/isdn4k-utils-v3.2p1-config.patch [new file with mode: 0644]
src/patches/kernel-2.4-layer7-2.1.patch [new file with mode: 0644]
src/patches/kudzu-0.99.50-pam.patch [new file with mode: 0644]
src/patches/kudzu-0.99.50-updfstab.conf.patch [new file with mode: 0644]
src/patches/libcap-1.10-shared.patch [new file with mode: 0644]
src/patches/libcap-1.10-syscall.patch [new file with mode: 0644]
src/patches/libpcap-0.8.3-ppp.patch [new file with mode: 0644]
src/patches/libpcap-0.8.3-shared.patch [new file with mode: 0644]
src/patches/libpng-1.2.8-link_to_proper_libs-1.patch [new file with mode: 0644]
src/patches/libsafe-alpha.diff [new file with mode: 0644]
src/patches/libsafe-functioncaching.diff [new file with mode: 0644]
src/patches/linux-2.4.23-olitec-isdn.patch [new file with mode: 0644]
src/patches/linux-2.4.26-proc-stat.patch [new file with mode: 0644]
src/patches/linux-2.4.26-scsi.patch [new file with mode: 0644]
src/patches/linux-2.4.27-frandom-2.patch [new file with mode: 0644]
src/patches/linux-2.4.27-ssp-1.patch [new file with mode: 0644]
src/patches/linux-2.4.28-imq2.diff [new file with mode: 0644]
src/patches/linux-2.4.29_r8169clone.patch [new file with mode: 0644]
src/patches/make_devices.patch [new file with mode: 0644]
src/patches/net-tools-1.60-cleanup-list-handling.patch [new file with mode: 0644]
src/patches/net-tools-1.60-get_name.patch [new file with mode: 0644]
src/patches/newt-0.50.17-colors.patch [new file with mode: 0644]
src/patches/newt-0.50.17-vaend.patch [new file with mode: 0644]
src/patches/ntp-4.2.0-linuxcaps.patch [new file with mode: 0644]
src/patches/openswan-1.0.1-plutoctl.patch [new file with mode: 0644]
src/patches/openswan-1.0.6-numif.patch [new file with mode: 0644]
src/patches/openswan-1.0.9-restart.patch [new file with mode: 0644]
src/patches/pam-0.99.3.0-hostname.patch [new file with mode: 0644]
src/patches/patch-o-matic-ng-20040621_03_2.4.29.patch [new file with mode: 0644]
src/patches/patch-o-matic-ng-20040621_pptp_2.4.29.patch [new file with mode: 0644]
src/patches/patch-o-matic-ng-raw_2.4.31.patch [new file with mode: 0644]
src/patches/pcre-4.5-CAN-2005-2491.patch [new file with mode: 0644]
src/patches/perl-5.8.5-perlio_debug_security.patch [new file with mode: 0644]
src/patches/perl-5.8.5-tempfiles.patch [new file with mode: 0644]
src/patches/perl.patch [new file with mode: 0644]
src/patches/pomng.fix [new file with mode: 0644]
src/patches/ppp-2.4.1-oedod.patch [new file with mode: 0644]
src/patches/ppp-2.4.2-close.patch [new file with mode: 0644]
src/patches/ppp-2.4.2-pppoatm-modprobe.patch [new file with mode: 0644]
src/patches/ppp-2.4.2-pppoatm-persist.patch [new file with mode: 0644]
src/patches/ppp-2.4.2-pppoatm.patch [new file with mode: 0644]
src/patches/ppp-2.4.2-printstats.patch [new file with mode: 0644]
src/patches/ppp-2.4.2-signal.patch [new file with mode: 0644]
src/patches/ppp_generic-ppp-2.4.3_multilink.patch [new file with mode: 0644]
src/patches/proc_net_conntrack-permissions.patch [new file with mode: 0644]
src/patches/speedtouch-1.2-isdn.patch [new file with mode: 0644]
src/patches/sysklogd-1.3-31-rh-ksyslog-nul.diff [new file with mode: 0644]
src/patches/sysklogd-1.4.1-caen-owl-klogd-drop-root.diff [new file with mode: 0644]
src/patches/sysklogd-1.4.1-caen-owl-syslogd-bind.diff [new file with mode: 0644]
src/patches/sysklogd-1.4.1-caen-owl-syslogd-drop-root.diff [new file with mode: 0644]
src/patches/sysklogd-1.4.1-owl-syslogd-crunch_list.diff [new file with mode: 0644]
src/patches/tcpdump-3.8.2-bgp-dos-2.patch [new file with mode: 0644]
src/patches/tcpdump-3.8.2-bgp-dos.patch [new file with mode: 0644]
src/patches/tcpdump-3.8.2-isis-dos.patch [new file with mode: 0644]
src/patches/tcpdump-3.8.2-ldp-dos.patch [new file with mode: 0644]
src/patches/tcpdump-3.8.2-rsvp-dos.patch [new file with mode: 0644]
src/patches/util-linux-2.12a-umount_CAN-2005-2876.patch [new file with mode: 0644]
src/patches/viscii10-8x16-new.psfu [new file with mode: 0644]
src/pcmcia/CVS/Entries [new file with mode: 0644]
src/pcmcia/CVS/Repository [new file with mode: 0644]
src/pcmcia/CVS/Root [new file with mode: 0644]
src/pcmcia/CVS/Tag [new file with mode: 0644]
src/pcmcia/isdnextra.conf [new file with mode: 0644]
src/pcmcia/netextra.conf [new file with mode: 0644]
src/ppp/CVS/Entries [new file with mode: 0644]
src/ppp/CVS/Repository [new file with mode: 0644]
src/ppp/CVS/Root [new file with mode: 0644]
src/ppp/CVS/Tag [new file with mode: 0644]
src/ppp/demonloginscript [new file with mode: 0644]
src/ppp/dialer [new file with mode: 0644]
src/ppp/ioptions [new file with mode: 0644]
src/ppp/ip-down [new file with mode: 0644]
src/ppp/ip-up [new file with mode: 0644]
src/ppp/options [new file with mode: 0644]
src/ppp/standardloginscript [new file with mode: 0644]
src/rc.d/CVS/Entries [new file with mode: 0644]
src/rc.d/CVS/Repository [new file with mode: 0644]
src/rc.d/CVS/Root [new file with mode: 0644]
src/rc.d/CVS/Tag [new file with mode: 0644]
src/rc.d/helper/CVS/Entries [new file with mode: 0644]
src/rc.d/helper/CVS/Repository [new file with mode: 0644]
src/rc.d/helper/CVS/Root [new file with mode: 0644]
src/rc.d/helper/CVS/Tag [new file with mode: 0644]
src/rc.d/helper/getdnsfromdhcpc.pl [new file with mode: 0644]
src/rc.d/helper/writeipac.pl [new file with mode: 0644]
src/rc.d/rc.3cp4218usbadsl [new file with mode: 0644]
src/rc.d/rc.alcatelusb [new file with mode: 0644]
src/rc.d/rc.alcatelusbk [new file with mode: 0644]
src/rc.d/rc.amedynusbadsl [new file with mode: 0644]
src/rc.d/rc.bewanadsl [new file with mode: 0644]
src/rc.d/rc.conexantpciadsl [new file with mode: 0644]
src/rc.d/rc.conexantusbadsl [new file with mode: 0644]
src/rc.d/rc.connectioncheck [new file with mode: 0644]
src/rc.d/rc.eagleusbadsl [new file with mode: 0644]
src/rc.d/rc.eciadsl [new file with mode: 0644]
src/rc.d/rc.firewall [new file with mode: 0644]
src/rc.d/rc.firewall.local [new file with mode: 0644]
src/rc.d/rc.flash.down [new file with mode: 0644]
src/rc.d/rc.flash.up [new file with mode: 0644]
src/rc.d/rc.fritzdsl [new file with mode: 0644]
src/rc.d/rc.halt [new file with mode: 0644]
src/rc.d/rc.isdn [new file with mode: 0644]
src/rc.d/rc.local [new file with mode: 0644]
src/rc.d/rc.netaddress.down [new file with mode: 0644]
src/rc.d/rc.netaddress.up [new file with mode: 0644]
src/rc.d/rc.network [new file with mode: 0644]
src/rc.d/rc.pulsardsl [new file with mode: 0644]
src/rc.d/rc.red [new file with mode: 0644]
src/rc.d/rc.sysinit [new file with mode: 0644]
src/rc.d/rc.updatered [new file with mode: 0644]
src/scripts/CVS/Entries [new file with mode: 0644]
src/scripts/CVS/Repository [new file with mode: 0644]
src/scripts/CVS/Root [new file with mode: 0644]
src/scripts/CVS/Tag [new file with mode: 0644]
src/scripts/httpscert [new file with mode: 0644]
src/scripts/makegraphs [new file with mode: 0644]
src/scripts/readhash [new file with mode: 0644]
src/scripts/resetusb [new file with mode: 0644]
src/scripts/setddns.pl [new file with mode: 0644]
src/scripts/setreservedports [new file with mode: 0644]
src/scripts/settime [new file with mode: 0644]
src/scripts/timecheck [new file with mode: 0644]
src/scripts/tunerrd.pl [new file with mode: 0644]
src/scripts/updatelists.pl [new file with mode: 0644]
src/scripts/updatesetup [new file with mode: 0644]
src/uClibc/CVS/Entries [new file with mode: 0644]
src/uClibc/CVS/Repository [new file with mode: 0644]
src/uClibc/CVS/Root [new file with mode: 0644]
src/uClibc/CVS/Tag [new file with mode: 0644]
src/uClibc/Makefile [new file with mode: 0644]
src/uClibc/make/CVS/Entries [new file with mode: 0644]
src/uClibc/make/CVS/Repository [new file with mode: 0644]
src/uClibc/make/CVS/Root [new file with mode: 0644]
src/uClibc/make/CVS/Tag [new file with mode: 0644]
src/uClibc/make/binutils.mk [new file with mode: 0644]
src/uClibc/make/gcc-3.3.mk [new file with mode: 0644]
src/uClibc/make/uclibc.mk [new file with mode: 0644]
src/uClibc/sources/CVS/Entries [new file with mode: 0644]
src/uClibc/sources/CVS/Repository [new file with mode: 0644]
src/uClibc/sources/CVS/Root [new file with mode: 0644]
src/uClibc/sources/CVS/Tag [new file with mode: 0644]
src/uClibc/sources/binutils-001-debian.patch [new file with mode: 0644]
src/uClibc/sources/binutils-002-uclibc.patch [new file with mode: 0644]
src/uClibc/sources/codesets.txt [new file with mode: 0644]
src/uClibc/sources/gcc-001-disable-mathf.patch [new file with mode: 0644]
src/uClibc/sources/gcc-006-include-search.patch [new file with mode: 0644]
src/uClibc/sources/gcc-810-libstd++-locale.patch [new file with mode: 0644]
src/uClibc/sources/gcc-830-nonhidden.patch [new file with mode: 0644]
src/uClibc/sources/gcc-840-abi_check.patch [new file with mode: 0644]
src/uClibc/sources/i386-gcc-soft-float.patch [new file with mode: 0644]
src/uClibc/sources/locales.txt [new file with mode: 0644]
src/uClibc/sources/patch-kernel.sh [new file with mode: 0644]
src/uClibc/sources/uClibc.config [new file with mode: 0644]
tools/CVS/Entries [new file with mode: 0644]
tools/CVS/Repository [new file with mode: 0644]
tools/CVS/Root [new file with mode: 0644]
tools/CVS/Tag [new file with mode: 0644]
tools/check_langs.sh [new file with mode: 0644]
tools/check_strings.pl [new file with mode: 0644]
tools/cvs2cl.pl [new file with mode: 0644]
tools/cvs2sql.pl [new file with mode: 0644]
tools/fetchlangs.pl [new file with mode: 0644]
tools/mkflash/CVS/Entries [new file with mode: 0644]
tools/mkflash/CVS/Repository [new file with mode: 0644]
tools/mkflash/CVS/Root [new file with mode: 0644]
tools/mkflash/CVS/Tag [new file with mode: 0644]
tools/mkflash/logrotate.conf [new file with mode: 0644]
tools/mkflash/mkflash [new file with mode: 0644]
tools/mkflash/settings.8139 [new file with mode: 0644]
tools/perfTest.sh [new file with mode: 0644]
updates/1.4.1/.cvsignore [new file with mode: 0644]
updates/1.4.1/CVS/Entries [new file with mode: 0644]
updates/1.4.1/CVS/Repository [new file with mode: 0644]
updates/1.4.1/CVS/Root [new file with mode: 0644]
updates/1.4.1/CVS/Tag [new file with mode: 0644]
updates/1.4.1/ROOTFILES.alpha-1.4.1 [new file with mode: 0644]
updates/1.4.1/ROOTFILES.i386-1.4.1 [new file with mode: 0644]
updates/1.4.1/information [new file with mode: 0644]
updates/1.4.1/setup [new file with mode: 0644]
updates/1.4.10/.cvsignore [new file with mode: 0644]
updates/1.4.10/CVS/Entries [new file with mode: 0644]
updates/1.4.10/CVS/Repository [new file with mode: 0644]
updates/1.4.10/CVS/Root [new file with mode: 0644]
updates/1.4.10/CVS/Tag [new file with mode: 0644]
updates/1.4.10/ROOTFILES.alpha-1.4.10 [new file with mode: 0644]
updates/1.4.10/ROOTFILES.i386-1.4.10 [new file with mode: 0644]
updates/1.4.10/fixbackups.sh [new file with mode: 0644]
updates/1.4.10/information [new file with mode: 0644]
updates/1.4.10/setup [new file with mode: 0644]
updates/1.4.11/.cvsignore [new file with mode: 0644]
updates/1.4.11/CVS/Entries [new file with mode: 0644]
updates/1.4.11/CVS/Repository [new file with mode: 0644]
updates/1.4.11/CVS/Root [new file with mode: 0644]
updates/1.4.11/CVS/Tag [new file with mode: 0644]
updates/1.4.11/ROOTFILES.alpha-1.4.11 [new file with mode: 0644]
updates/1.4.11/ROOTFILES.i386-1.4.11 [new file with mode: 0644]
updates/1.4.11/information [new file with mode: 0644]
updates/1.4.11/patch.tar.gz [new file with mode: 0644]
updates/1.4.11/setup [new file with mode: 0644]
updates/1.4.2/.cvsignore [new file with mode: 0644]
updates/1.4.2/CVS/Entries [new file with mode: 0644]
updates/1.4.2/CVS/Repository [new file with mode: 0644]
updates/1.4.2/CVS/Root [new file with mode: 0644]
updates/1.4.2/CVS/Tag [new file with mode: 0644]
updates/1.4.2/ROOTFILES.alpha-1.4.2 [new file with mode: 0644]
updates/1.4.2/ROOTFILES.i386-1.4.2 [new file with mode: 0644]
updates/1.4.2/information [new file with mode: 0644]
updates/1.4.2/setup [new file with mode: 0644]
updates/1.4.3/.cvsignore [new file with mode: 0644]
updates/1.4.3/CVS/Entries [new file with mode: 0644]
updates/1.4.3/CVS/Repository [new file with mode: 0644]
updates/1.4.3/CVS/Root [new file with mode: 0644]
updates/1.4.3/CVS/Tag [new file with mode: 0644]
updates/1.4.3/ROOTFILES.alpha-1.4.3 [new file with mode: 0644]
updates/1.4.3/ROOTFILES.i386-1.4.3 [new file with mode: 0644]
updates/1.4.3/information [new file with mode: 0644]
updates/1.4.3/setup [new file with mode: 0644]
updates/1.4.4/.cvsignore [new file with mode: 0644]
updates/1.4.4/CVS/Entries [new file with mode: 0644]
updates/1.4.4/CVS/Repository [new file with mode: 0644]
updates/1.4.4/CVS/Root [new file with mode: 0644]
updates/1.4.4/CVS/Tag [new file with mode: 0644]
updates/1.4.4/ROOTFILES.alpha-1.4.4 [new file with mode: 0644]
updates/1.4.4/ROOTFILES.i386-1.4.4 [new file with mode: 0644]
updates/1.4.4/information [new file with mode: 0644]
updates/1.4.4/setup [new file with mode: 0644]
updates/1.4.5/.cvsignore [new file with mode: 0644]
updates/1.4.5/CVS/Entries [new file with mode: 0644]
updates/1.4.5/CVS/Repository [new file with mode: 0644]
updates/1.4.5/CVS/Root [new file with mode: 0644]
updates/1.4.5/CVS/Tag [new file with mode: 0644]
updates/1.4.5/ROOTFILES.alpha-1.4.5 [new file with mode: 0644]
updates/1.4.5/ROOTFILES.i386-1.4.5 [new file with mode: 0644]
updates/1.4.5/information [new file with mode: 0644]
updates/1.4.5/setup [new file with mode: 0644]
updates/1.4.6/.cvsignore [new file with mode: 0644]
updates/1.4.6/CVS/Entries [new file with mode: 0644]
updates/1.4.6/CVS/Repository [new file with mode: 0644]
updates/1.4.6/CVS/Root [new file with mode: 0644]
updates/1.4.6/CVS/Tag [new file with mode: 0644]
updates/1.4.6/ROOTFILES.alpha-1.4.6 [new file with mode: 0644]
updates/1.4.6/ROOTFILES.i386-1.4.6 [new file with mode: 0644]
updates/1.4.6/information [new file with mode: 0644]
updates/1.4.6/setup [new file with mode: 0644]
updates/1.4.7/.cvsignore [new file with mode: 0644]
updates/1.4.7/CVS/Entries [new file with mode: 0644]
updates/1.4.7/CVS/Repository [new file with mode: 0644]
updates/1.4.7/CVS/Root [new file with mode: 0644]
updates/1.4.7/CVS/Tag [new file with mode: 0644]
updates/1.4.7/ROOTFILES.alpha-1.4.7 [new file with mode: 0644]
updates/1.4.7/ROOTFILES.i386-1.4.7 [new file with mode: 0644]
updates/1.4.7/information [new file with mode: 0644]
updates/1.4.7/setup [new file with mode: 0644]
updates/1.4.8/.cvsignore [new file with mode: 0644]
updates/1.4.8/CVS/Entries [new file with mode: 0644]
updates/1.4.8/CVS/Repository [new file with mode: 0644]
updates/1.4.8/CVS/Root [new file with mode: 0644]
updates/1.4.8/CVS/Tag [new file with mode: 0644]
updates/1.4.8/ROOTFILES.alpha-1.4.8 [new file with mode: 0644]
updates/1.4.8/ROOTFILES.i386-1.4.8 [new file with mode: 0644]
updates/1.4.8/information [new file with mode: 0644]
updates/1.4.8/setup [new file with mode: 0644]
updates/1.4.9/.cvsignore [new file with mode: 0644]
updates/1.4.9/CVS/Entries [new file with mode: 0644]
updates/1.4.9/CVS/Repository [new file with mode: 0644]
updates/1.4.9/CVS/Root [new file with mode: 0644]
updates/1.4.9/CVS/Tag [new file with mode: 0644]
updates/1.4.9/ROOTFILES.alpha-1.4.9 [new file with mode: 0644]
updates/1.4.9/ROOTFILES.i386-1.4.9 [new file with mode: 0644]
updates/1.4.9/header.pl.patch [new file with mode: 0644]
updates/1.4.9/information [new file with mode: 0644]
updates/1.4.9/setup [new file with mode: 0644]
updates/CVS/Entries [new file with mode: 0644]
updates/CVS/Repository [new file with mode: 0644]
updates/CVS/Root [new file with mode: 0644]
updates/CVS/Tag [new file with mode: 0644]

diff --git a/.cvsignore b/.cvsignore
new file mode 100644 (file)
index 0000000..60e864f
--- /dev/null
@@ -0,0 +1,8 @@
+build
+cache
+ccache
+log
+*.img
+*.iso
+*.tgz
+*.gpg
diff --git a/config/CVS/Entries b/config/CVS/Entries
new file mode 100644 (file)
index 0000000..5499ccc
--- /dev/null
@@ -0,0 +1,12 @@
+D/aboot////
+D/cdrom////
+D/cfgroot////
+D/cron////
+D/etc////
+D/grub////
+D/httpd////
+D/install////
+D/ipac-ng////
+D/kernel////
+D/snort////
+D/ssl////
diff --git a/config/CVS/Repository b/config/CVS/Repository
new file mode 100644 (file)
index 0000000..c239249
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config
diff --git a/config/CVS/Root b/config/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/CVS/Tag b/config/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/aboot/CVS/Entries b/config/aboot/CVS/Entries
new file mode 100644 (file)
index 0000000..fda2791
--- /dev/null
@@ -0,0 +1,3 @@
+/aboot.conf/1.1/Sun Feb  8 21:29:00 2004//TIPCOP_v1_4_0
+/scsiaboot.conf/1.1/Sun Feb  8 21:29:00 2004//TIPCOP_v1_4_0
+D
diff --git a/config/aboot/CVS/Repository b/config/aboot/CVS/Repository
new file mode 100644 (file)
index 0000000..7254313
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/aboot
diff --git a/config/aboot/CVS/Root b/config/aboot/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/aboot/CVS/Tag b/config/aboot/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/aboot/aboot.conf b/config/aboot/aboot.conf
new file mode 100644 (file)
index 0000000..f5697a8
--- /dev/null
@@ -0,0 +1 @@
+0:1/vmlinuz root=ROOT panic=10 ro
diff --git a/config/aboot/scsiaboot.conf b/config/aboot/scsiaboot.conf
new file mode 100644 (file)
index 0000000..b3f0fb3
--- /dev/null
@@ -0,0 +1 @@
+0:1/vmlinuz root=ROOT panic=10 initrd=ipcoprd.img init=/linuxrc rw
diff --git a/config/cdrom/CVS/Entries b/config/cdrom/CVS/Entries
new file mode 100644 (file)
index 0000000..33acf6f
--- /dev/null
@@ -0,0 +1,2 @@
+/README.txt/1.3/Thu Jan  8 20:02:38 2004//TIPCOP_v1_4_0
+D
diff --git a/config/cdrom/CVS/Repository b/config/cdrom/CVS/Repository
new file mode 100644 (file)
index 0000000..ac64887
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/cdrom
diff --git a/config/cdrom/CVS/Root b/config/cdrom/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/cdrom/CVS/Tag b/config/cdrom/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/cdrom/README.txt b/config/cdrom/README.txt
new file mode 100644 (file)
index 0000000..a6056ec
--- /dev/null
@@ -0,0 +1,42 @@
+IPCop - The Bad Packets Stop Here (VERSION)\r
+------------------------------------------\r
+\r
+Installation\r
+------------\r
+\r
+Please read the IPCop Installation PDF before installing the firewall.\r
+This document is located in the \doc directory on the cdrom.  It will\r
+guide you through the installation process and will help you make the\r
+necessary decisions during the installation process.\r
+\r
+\r
+DOS Image utility tools\r
+-----------------------\r
+\r
+The dosutils directory contains the following DOS and Windows applications,\r
+please use with caution and please can we draw your attention to the \r
+documentation on the IPCop CD or install image on your network drive. \r
+We also draw your attention to the disclaimer of Warranty below.\r
+\r
+rawrite.exe    - rawrite executable\r
+rawwritewin.exe - rawwrite for Windows\r
+diskio.dll     - this MUST be in the same directory as rawrite for Windows\r
+copying.txt    - text file\r
+\r
+\r
+License\r
+-------\r
+\r
+Please read the file COPYING for more information on the license.\r
+\r
+\r
+Disclaimer of Warranty\r
+----------------------\r
+\r
+Users of this software must accept this disclaimer of warranty:  "This\r
+software is supplied AS IS.  IPCop disclaims all warranties, expressed\r
+or implied, including, without limitation, the warranties of merchantability\r
+and of fitness for any purpose.  IPCop assumes no liability for\r
+damages, direct or consequential, which may result from the use of this\r
+software."\r
+\r
diff --git a/config/cfgroot/CVS/Entries b/config/cfgroot/CVS/Entries
new file mode 100644 (file)
index 0000000..5c502a8
--- /dev/null
@@ -0,0 +1,21 @@
+/advoptions-list/1.1.2.3/Sat May  7 13:01:32 2005//TIPCOP_v1_4_0
+/backup-exclude/1.3.2.6/Tue Nov  1 19:20:52 2005//TIPCOP_v1_4_0
+/backup-exclude.hardware/1.2/Thu Dec 11 11:15:33 2003//TIPCOP_v1_4_0
+/backup-include/1.4.2.1/Sun Apr 25 06:57:03 2004//TIPCOP_v1_4_0
+/countries.pl/1.2.2.1/Wed Jan 26 12:23:19 2005//TIPCOP_v1_4_0
+/defaultservices/1.2/Thu Dec 11 11:15:33 2003//TIPCOP_v1_4_0
+/general-functions.pl/1.1.2.26/Wed Jan  4 16:33:55 2006//TIPCOP_v1_4_0
+/header-menu.pl/1.1.2.2/Sat Nov 19 16:48:45 2005//TIPCOP_v1_4_0
+/header.pl/1.34.2.67/Mon Oct  3 20:01:05 2005//TIPCOP_v1_4_0
+/icmptypes/1.2/Thu Dec 11 11:15:33 2003//TIPCOP_v1_4_0
+/ipcop.gpg/1.2/Thu Dec 11 11:15:33 2003//TIPCOP_v1_4_0
+/lang.pl/1.1.2.11/Sat Sep 10 16:22:50 2005//TIPCOP_v1_4_0
+/logging-settings/1.2/Thu Dec 11 11:15:33 2003//TIPCOP_v1_4_0
+/modem-defaults/1.1.1.1.8.1/Sun Jan  2 10:01:00 2005//TIPCOP_v1_4_0
+/modem-settings/1.1.1.1.8.1/Sun Jan  2 10:01:01 2005//TIPCOP_v1_4_0
+/oinkmaster.conf/1.1.2.2/Mon May  2 17:11:58 2005//TIPCOP_v1_4_0
+/protocols.pl/1.2.2.1/Wed Jan 26 12:23:20 2005//TIPCOP_v1_4_0
+/proxy-acl/1.2.2.4/Thu Dec  1 20:19:12 2005//TIPCOP_v1_4_0
+/time-settings/1.2/Thu Dec 11 11:15:33 2003//TIPCOP_v1_4_0
+/xtaccess-config/1.2/Thu Dec 11 10:57:32 2003//TIPCOP_v1_4_0
+D
diff --git a/config/cfgroot/CVS/Repository b/config/cfgroot/CVS/Repository
new file mode 100644 (file)
index 0000000..3b2e70c
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/cfgroot
diff --git a/config/cfgroot/CVS/Root b/config/cfgroot/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/cfgroot/CVS/Tag b/config/cfgroot/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/cfgroot/advoptions-list b/config/cfgroot/advoptions-list
new file mode 100644 (file)
index 0000000..8a1e75e
--- /dev/null
@@ -0,0 +1,56 @@
+option all-subnets-local flag;
+option arp-cache-timeout uint32;
+option bootfile-name string;
+option boot-size uint16;
+option broadcast-address ip-address;
+option cookie-servers ip-address [, ip-address... ];
+option default-ip-ttl uint8;
+option default-tcp-ttl uint8;
+option dhcp-client-identifier data-string;
+option finger-server ip-address [, ip-address... ];
+option font-servers ip-address [, ip-address... ];
+option host-name string;
+option ieee802-3-encapsulation flag;
+option ien116-name-servers ip-address [, ip-address... ];
+option impress-servers ip-address [, ip-address... ];
+option interface-mtu uint16;
+option ip-forwarding flag;
+option irc-server ip-address [, ip-address... ];
+option log-servers ip-address [, ip-address... ];
+option lpr-servers ip-address [, ip-address... ];
+option mask-supplier flag;
+option max-dgram-reassembly uint16;
+option merit-dump string;
+option mobile-ip-home-agent ip-address [, ip-address... ];
+option netbios-dd-server ip-address [, ip-address... ];
+option netbios-node-type uint8;
+option netbios-scope string;
+option nis-domain string;
+option nisplus-domain string;
+option nisplus-servers ip-address [, ip-address... ];
+option nis-servers ip-address [, ip-address... ];
+option nntp-server ip-address [, ip-address... ];
+option non-local-source-routing flag;
+option ntp-servers ip-address [, ip-address... ];
+option path-mtu-aging-timeout uint32;
+option path-mtu-plateau-table uint16 [, uint16... ];
+option perform-mask-discovery flag;
+option policy-filter ip-address ip-address [, ip-address ip-address... ];
+option pop-server ip-address [, ip-address... ];
+option resource-location-servers ip-address [, ip-address... ];
+option root-path string;
+option router-discovery flag;
+option router-solicitation-address ip-address;
+option smtp-server ip-address [, ip-address... ];
+option static-routes ip-address ip-address [, ip-address ip-address... ];
+option streettalk-directory-assistance-server ip-address [, ip-address... ];
+option streettalk-server ip-address [, ip-address... ];
+option swap-server ip-address;
+option tcp-keepalive-garbage flag;
+option tcp-keepalive-interval uint32;
+option tftp-server-name string;
+option time-offset int32;
+option time-servers ip-address [, ip-address... ];
+option trailer-encapsulation flag;
+option www-server ip-address [, ip-address... ];
+option x-display-manager ip-address [, ip-address... ];
diff --git a/config/cfgroot/backup-exclude b/config/cfgroot/backup-exclude
new file mode 100644 (file)
index 0000000..e528590
--- /dev/null
@@ -0,0 +1,20 @@
+var/ipcop/backup/*.system
+var/ipcop/backup/backup.key
+var/ipcop/backup/sets
+var/ipcop/countries.pl
+var/ipcop/dhcpc
+var/ipcop/eciadsl/modems.db
+var/ipcop/eciadsl/firmware00.bin
+var/ipcop/header.pl
+var/ipcop/general-functions.pl
+var/ipcop/lang.pl
+var/ipcop/key
+var/ipcop/langs
+var/ipcop/patches
+var/ipcop/ppp/fake-resolv.conf
+var/ipcop/red
+var/ipcop/time/counter
+var/ipcop/firewall/protocols.pl
+var/ipcop/firewall/defaultservices
+var/ipcop/firewall/icmptypes
+var/ipcop/addon-lang
diff --git a/config/cfgroot/backup-exclude.hardware b/config/cfgroot/backup-exclude.hardware
new file mode 100644 (file)
index 0000000..d6bcd15
--- /dev/null
@@ -0,0 +1 @@
+var/ipcop/ethernet/settings
diff --git a/config/cfgroot/backup-include b/config/cfgroot/backup-include
new file mode 100644 (file)
index 0000000..c8d66bd
--- /dev/null
@@ -0,0 +1,16 @@
+/etc/passwd
+/etc/shadow
+/etc/hosts
+/etc/localtime
+/etc/httpd/server.crt
+/etc/httpd/server.csr
+/etc/httpd/server.key
+/etc/rc.d/rc.local
+/etc/rc.d/rc.firewall.local
+/etc/ssh/ssh_host_dsa_key
+/etc/ssh/ssh_host_dsa_key.pub
+/etc/ssh/ssh_host_key
+/etc/ssh/ssh_host_key.pub
+/etc/ssh/ssh_host_rsa_key
+/etc/ssh/ssh_host_rsa_key.pub
+/var/ipcop/
diff --git a/config/cfgroot/countries.pl b/config/cfgroot/countries.pl
new file mode 100644 (file)
index 0000000..6e364b4
--- /dev/null
@@ -0,0 +1,250 @@
+package Countries;\r
+\r
+%countries = (\r
+'Afghanistan' => 'AF',\r
+'Albania' => 'AL',\r
+'Algeria' => 'DZ',\r
+'American Samoa' => 'AS',\r
+'Andorra' => 'AD',\r
+'Angola' => 'AO',\r
+'Anguilla' => 'AI',\r
+'Antarctica' => 'AQ',\r
+'Antigua and Barbuda' => 'AG',\r
+'Argentina' => 'AR',\r
+'Armenia' => 'AM',\r
+'Aruba' => 'AW',\r
+'Australia' => 'AU',\r
+'Austria' => 'AT',\r
+'Azerbaijan' => 'AZ',\r
+'Bahamas' => 'BS',\r
+'Bahrain' => 'BH',\r
+'Bangladesh' => 'BD',\r
+'Barbados' => 'BB',\r
+'Belarus' => 'BY',\r
+'Belgium' => 'BE',\r
+'Belize' => 'BZ',\r
+'Benin' => 'BJ',\r
+'Bermuda' => 'BM',\r
+'Bhutan' => 'BT',\r
+'Bolivia' => 'BO',\r
+'Bosnia and Herzegovina' => 'BA',\r
+'Botswana' => 'BW',\r
+'Bouvet Island' => 'BV',\r
+'Brazil' => 'BR',\r
+'British Indian Ocean Territory' => 'IO',\r
+'Brunei Darussalam' => 'BN',\r
+'Bulgaria' => 'BG',\r
+'Burkina Faso' => 'BF',\r
+'Burundi' => 'BI',\r
+'Cambodia' => 'KH',\r
+'Cameroon' => 'CM',\r
+'Canada' => 'CA',\r
+'Cape Verde' => 'CV',\r
+'Cayman Islands' => 'KY',\r
+'Central African Republic' => 'CF',\r
+'Chad' => 'TD',\r
+'Chile' => 'CL',\r
+'China' => 'CN',\r
+'Christmas Island' => 'CX',\r
+'Cocos (Keeling) Islands' => 'CC',\r
+'Colombia' => 'CO',\r
+'Comoros' => 'KM',\r
+'Congo' => 'CG',\r
+'Cook Islands' => 'CK',\r
+'Costa Rica' => 'CR',\r
+'Cote D\'Ivoire (Ivory Coast)' => 'CI',\r
+'Croatia (Hrvatska)' => 'HR',\r
+'Cuba' => 'CU',\r
+'Cyprus' => 'CY',\r
+'Czech Republic' => 'CZ',\r
+'Czechoslovakia (former)' => 'CS',\r
+'Denmark' => 'DK',\r
+'Djibouti' => 'DJ',\r
+'Dominica' => 'DM',\r
+'Dominican Republic' => 'DO',\r
+'East Timor' => 'TP',\r
+'Ecuador' => 'EC',\r
+'Egypt' => 'EG',\r
+'El Salvador' => 'SV',\r
+'Equatorial Guinea' => 'GQ',\r
+'Eritrea' => 'ER',\r
+'Estonia' => 'EE',\r
+'Ethiopia' => 'ET',\r
+'Falkland Islands (Malvinas)' => 'FK',\r
+'Faroe Islands' => 'FO',\r
+'Fiji' => 'FJ',\r
+'Finland' => 'FI',\r
+'France' => 'FR',\r
+'France, Metropolitan' => 'FX',\r
+'French Guiana' => 'GF',\r
+'French Polynesia' => 'PF',\r
+'French Southern Territories' => 'TF',\r
+'Gabon' => 'GA',\r
+'Gambia' => 'GM',\r
+'Georgia' => 'GE',\r
+'Germany' => 'DE',\r
+'Ghana' => 'GH',\r
+'Gibraltar' => 'GI',\r
+'Great Britain (UK)' => 'GB',\r
+'Greece' => 'GR',\r
+'Greenland' => 'GL',\r
+'Grenada' => 'GD',\r
+'Guadeloupe' => 'GP',\r
+'Guam' => 'GU',\r
+'Guatemala' => 'GT',\r
+'Guinea' => 'GN',\r
+'Guinea-Bissau' => 'GW',\r
+'Guyana' => 'GY',\r
+'Haiti' => 'HT',\r
+'Heard and McDonald Islands' => 'HM',\r
+'Honduras' => 'HN',\r
+'Hong Kong' => 'HK',\r
+'Hungary' => 'HU',\r
+'Iceland' => 'IS',\r
+'India' => 'IN',\r
+'Indonesia' => 'ID',\r
+'Iran' => 'IR',\r
+'Iraq' => 'IQ',\r
+'Ireland' => 'IE',\r
+'Israel' => 'IL',\r
+'Italy' => 'IT',\r
+'Jamaica' => 'JM',\r
+'Japan' => 'JP',\r
+'Jordan' => 'JO',\r
+'Kazakhstan' => 'KZ',\r
+'Kenya' => 'KE',\r
+'Kiribati' => 'KI',\r
+'Korea (North)' => 'KP',\r
+'Korea (South)' => 'KR',\r
+'Kuwait' => 'KW',\r
+'Kyrgyzstan' => 'KG',\r
+'Laos' => 'LA',\r
+'Latvia' => 'LV',\r
+'Lebanon' => 'LB',\r
+'Lesotho' => 'LS',\r
+'Liberia' => 'LR',\r
+'Libya' => 'LY',\r
+'Liechtenstein' => 'LI',\r
+'Lithuania' => 'LT',\r
+'Luxembourg' => 'LU',\r
+'Macau' => 'MO',\r
+'Macedonia' => 'MK',\r
+'Madagascar' => 'MG',\r
+'Malawi' => 'MW',\r
+'Malaysia' => 'MY',\r
+'Maldives' => 'MV',\r
+'Mali' => 'ML',\r
+'Malta' => 'MT',\r
+'Marshall Islands' => 'MH',\r
+'Martinique' => 'MQ',\r
+'Mauritania' => 'MR',\r
+'Mauritius' => 'MU',\r
+'Mayotte' => 'YT',\r
+'Mexico' => 'MX',\r
+'Micronesia' => 'FM',\r
+'Moldova' => 'MD',\r
+'Monaco' => 'MC',\r
+'Mongolia' => 'MN',\r
+'Montserrat' => 'MS',\r
+'Morocco' => 'MA',\r
+'Mozambique' => 'MZ',\r
+'Myanmar' => 'MM',\r
+'Namibia' => 'NA',\r
+'Nauru' => 'NR',\r
+'Nepal' => 'NP',\r
+'Netherlands Antilles' => 'AN',\r
+'Netherlands' => 'NL',\r
+'Neutral Zone' => 'NT',\r
+'New Caledonia' => 'NC',\r
+'New Zealand (Aotearoa)' => 'NZ',\r
+'Nicaragua' => 'NI',\r
+'Niger' => 'NE',\r
+'Nigeria' => 'NG',\r
+'Niue' => 'NU',\r
+'Norfolk Island' => 'NF',\r
+'Northern Mariana Islands' => 'MP',\r
+'Norway' => 'NO',\r
+'Oman' => 'OM',\r
+'Pakistan' => 'PK',\r
+'Palau' => 'PW',\r
+'Panama' => 'PA',\r
+'Papua New Guinea' => 'PG',\r
+'Paraguay' => 'PY',\r
+'Peru' => 'PE',\r
+'Philippines' => 'PH',\r
+'Pitcairn' => 'PN',\r
+'Poland' => 'PL',\r
+'Portugal' => 'PT',\r
+'Puerto Rico' => 'PR',\r
+'Qatar' => 'QA',\r
+'Reunion' => 'RE',\r
+'Romania' => 'RO',\r
+'Russian Federation' => 'RU',\r
+'Rwanda' => 'RW',\r
+'S. Georgia and S. Sandwich Isls.' => 'GS',\r
+'Saint Kitts and Nevis' => 'KN',\r
+'Saint Lucia' => 'LC',\r
+'Saint Vincent and the Grenadines' => 'VC',\r
+'Samoa' => 'WS',\r
+'San Marino' => 'SM',\r
+'Sao Tome and Principe' => 'ST',\r
+'Saudi Arabia' => 'SA',\r
+'Senegal' => 'SN',\r
+'Seychelles' => 'SC',\r
+'Sierra Leone' => 'SL',\r
+'Singapore' => 'SG',\r
+'Slovak Republic' => 'SK',\r
+'Slovenia' => 'SI',\r
+'Solomon Islands' => 'Sb',\r
+'Somalia' => 'SO',\r
+'South Africa' => 'ZA',\r
+'Spain' => 'ES',\r
+'Sri Lanka' => 'LK',\r
+'St. Helena' => 'SH',\r
+'St. Pierre and Miquelon' => 'PM',\r
+'Sudan' => 'SD',\r
+'Suriname' => 'SR',\r
+'Svalbard and Jan Mayen Islands' => 'SJ',\r
+'Swaziland' => 'SZ',\r
+'Sweden' => 'SE',\r
+'Switzerland' => 'CH',\r
+'Syria' => 'SY',\r
+'Taiwan' => 'TW',\r
+'Tajikistan' => 'TJ',\r
+'Tanzania' => 'TZ',\r
+'Thailand' => 'TH',\r
+'Togo' => 'TG',\r
+'Tokelau' => 'TK',\r
+'Tonga' => 'TO',\r
+'Trinidad and Tobago' => 'TT',\r
+'Tunisia' => 'TN',\r
+'Turkey' => 'TR',\r
+'Turkmenistan' => 'TM',\r
+'Turks and Caicos Islands' => 'TC',\r
+'Tuvalu' => 'TV',\r
+'US Minor Outlying Islands' => 'UM',\r
+'USSR (former)' => 'SU',\r
+'Uganda' => 'UG',\r
+'Ukraine' => 'UA',\r
+'United Arab Emirates' => 'AE',\r
+'United Kingdom' => 'UK',\r
+'United States' => 'US',\r
+'Uruguay' => 'UY',\r
+'Uzbekistan' => 'UZ',\r
+'Vanuatu' => 'VU',\r
+'Vatican City State (Holy See)' => 'VA',\r
+'Venezuela' => 'VE',\r
+'Viet Nam' => 'VN',\r
+'Virgin Islands (British)' => 'VG',\r
+'Virgin Islands (U.S.)' => 'VI',\r
+'Wallis and Futuna Islands' => 'WF',\r
+'Western Sahara' => 'EH',\r
+'Yemen' => 'YE',\r
+'Yugoslavia' => 'YU',\r
+'Zaire' => 'ZR',\r
+'Zambia' => 'ZM',\r
+'Zimbabwe' => 'ZW',\r
+);\r
+\r
+1;\r
+\r
diff --git a/config/cfgroot/defaultservices b/config/cfgroot/defaultservices
new file mode 100644 (file)
index 0000000..7c20beb
--- /dev/null
@@ -0,0 +1,249 @@
+acap,674,tcpudp
+afbackup,2988,tcpudp
+afpovertcp,548,tcpudp
+afs3-bos,7007,tcpudp
+afs3-callback,7001,tcpudp
+afs3-errors,7006,tcpudp
+afs3-fileserver,7000,tcpudp
+afs3-kaserver,7004,tcpudp
+afs3-prserver,7002,tcpudp
+afs3-rmtsys,7009,tcpudp
+afs3-update,7008,tcpudp
+afs3-vlserver,7003,tcpudp
+afs3-volser,7005,tcpudp
+amanda,10080,tcpudp
+amandaidx,10082,tcp
+amidxtape,10083,tcp
+asp,27374,tcpudp
+at-echo,204,tcpudp
+at-nbp,202,tcpudp
+at-rtmp,201,tcpudp
+at-zis,206,tcpudp
+auth,113,tcpudp
+bgp,179,tcpudp
+biff,512,udp
+binkp,24554,tcpudp
+bootpc,68,tcpudp
+bootps,67,tcpudp
+canna,5680,tcp
+cfengine,5308,tcpudp
+cfinger,2003,tcp
+chargen,19,tcpudp
+cmip-agent,164,tcpudp
+cmip-man,163,tcpudp
+codaauth2,370,tcpudp
+codasrv,2432,tcpudp
+codasrv-se,2433,tcpudp
+conference,531,tcp
+corbaloc,2809,tcp
+courier,530,tcp
+csnet-ns,105,tcpudp
+cvspserver,2401,tcpudp
+cvsup,5999,tcpudp
+datametrics,1645,tcpudp
+daytime,13,tcpudp
+dhcpv6-client,546,tcpudp
+dhcpv6-server,547,tcpudp
+discard,9,tcpudp
+domain,53,tcpudp
+echo,4,ddp
+echo,7,tcpudp
+efs,520,tcp
+eklogin,2105,tcp
+exec,512,tcp
+fax,4557,tcp
+fido,60179,tcpudp
+finger,79,tcpudp
+fsp,21,udp
+ftp,21,tcpudp
+ftp-data,20,tcpudp
+gdomap,538,tcpudp
+gdp-port,1997,tcpudp
+gii,616,tcp
+gopher,70,tcpudp
+gss-http,488,tcpudp
+h323callsigalt,11720,tcpudp
+h323gatedisc,1718,tcpudp
+h323gatestat,1719,tcpudp
+h323hostcall,1720,tcpudp
+h323hostcallsc,1300,tcpudp
+ha-cluster,694,tcpudp
+hello,1789,tcpudp
+hmmp-ind,612,tcpudp
+hostmon,5355,tcpudp
+hostname,101,tcpudp
+hsrp,1985,tcpudp
+http,80,tcpudp
+http-alt,8008,tcpudp
+https,443,tcpudp
+hylafax,4559,tcp
+ica,1494,tcpudp
+icpv2,3130,tcpudp
+iiop,535,tcpudp
+imap,143,tcpudp
+imap3,220,tcpudp
+imaps,993,tcpudp
+ingreslock,1524,tcpudp
+ipx,213,tcpudp
+irc,194,tcpudp
+ircd,6667,tcpudp
+ircs,994,tcpudp
+isakmp,500,tcpudp
+isdnlog,20011,tcpudp
+iso-tsap,102,tcp
+jetdirect,9100,tcp
+kamanda,10081,tcpudp
+kerberos,88,tcpudp
+kerberos-adm,749,tcp
+kerberos-iv,750,udptcp
+kerberos_master,751,udptcp
+kermit,1649,tcpudp
+klogin,543,tcp
+knetd,2053,tcp
+kpasswd,464,tcpudp
+kpop,1109,tcp
+krb524,4444,tcpudp
+krb5_prop,754,tcp
+krbupdate,760,tcp
+kshell,544,tcp
+l2tp,1701,tcpudp
+ldap,389,tcpudp
+ldaps,636,tcpudp
+licensedaemon,1986,tcpudp
+link,245,tcpucp
+linuxconf,98,tcp
+login,513,tcp
+mailq,174,tcpudp
+mandelspawn,9359,udp
+microsoft-ds,445,tcpudp
+mobileip-agent,434,tcpudp
+mobilip-mn,435,tcpudp
+ms-sql-m,1434,tcpudp
+ms-sql-s,1433,tcpudp
+msp,18,tcpudp
+mtp,1911,tcpudp
+mysql,3306,tcpudp
+nameserver,42,tcpudp
+nbp,2,ddp
+netbios-dgm,138,tcpudp
+netbios-ns,137,tcpudp
+netbios-ssn,139,tcpudp
+netnews,532,tcp
+netrjs-1,71,tcpudp
+netrjs-2,72,tcpudp
+netrjs-3,73,tcpudp
+netrjs-4,74,tcpudp
+netstat,15,tcp
+netwall,533,udp
+nextstep,178,tcpudp
+nfs,2049,tcpudp
+nicname,43,tcpudp
+ninstall,2150,tcpudp
+nntp,119,tcpudp
+nntps,563,tcpudp
+noclog,5354,tcpudp
+npmp-gui,611,tcpudp
+npmp-local,610,tcpudp
+ntalk,518,udp
+ntp,123,tcpudp
+omirr,808,tcpudp
+passwd_server,752,udp
+pgpkeyserver,11371,tcpudp
+phonebook,767,tcpudp
+photuris,468,tcpudp
+pim-rp-disc,496,tcpudp
+pop2,109,tcpudp
+pop3,110,tcpudp
+pop3s,995,tcpudp
+poppassd,106,tcpudp
+postgres,5432,tcpudp
+printer,515,tcpudp
+prospero,191,tcpudp
+prospero-np,1525,tcpudp
+prsvp,3455,tcpudp
+qmtp,209,tcpudp
+qotd,17,tcpudp
+quake,26000,tcpudp
+radius,1812,tcpudp
+radius-acct,1813,tcpudp
+re-mail-ck,50,tcpudp
+remotefs,556,tcp
+rfe,5002,tcpudp
+ripng,521,tcpudp
+rje,5,tcpudp
+rlp,39,tcpudp
+rmtcfg,1236,tcp
+rndc,953,tcpudp
+router,520,udp
+rpc2portmap,369,tcpudp
+rsvp_tunnel,363,tcpudp
+rsync,873,tcpudp
+rtelnet,107,tcpudp
+rtmp,1,ddp
+rtsp,554,tcpudp
+rwhois,4321,tcpudp
+sa-msg-port,1646,tcpudp
+saft,487,tcpudp
+sd,9876,tcpudp
+sftp,115,tcpudp
+sgi-dgl,5232,tcpudp
+shell,514,tcp
+skkserv,1178,tcp
+smtp,25,tcpudp
+smtps,465,tcp
+smux,199,tcpudp
+snmp,161,tcpudp
+snmptrap,162,udp
+snpp,444,tcpudp
+socks,1080,tcpudp
+squid,3128,tcp
+ssh,22,tcpudp
+submission,587,tcpudp
+sunrpc,111,tcpudp
+supdup,95,tcpudp
+supfiledbg,1127,tcp
+supfilesrv,871,tcp
+support,1529,tcp
+svrloc,427,tcpudp
+swat,901,tcp
+syslog,514,udp
+systat,11,tcpudp
+tacacs,49,tcpudp
+talk,517,udp
+tcpmux,1,tcpudp
+telnet,23,tcpudp
+telnets,992,tcpudp
+tempo,526,tcp
+tfido,60177,tcpudp
+tftp,69,tcpudp
+tftp-mcast,1758,tcpudp
+time,37,tcpudp
+timed,525,tcpudp
+tircproxy,7666,tcp
+tproxy,8081,tcpudp
+traceroute,33434,tcpudp
+trnsprntproxy,3346,tcpudp
+ulistproc,372,tcpudp
+utime,519,tcpudp
+uucp,540,tcp
+uucp-path,117,tcpudp
+vboxd,20012,tcpudp
+venus,2430,tcpudp
+venus-se,2431,tcpudp
+webcache,8080,tcpudp
+webster,765,tcpudp
+who,513,udp
+whoami,565,tcpudp
+whois++,63,tcpudp
+wins,1512,tcpudp
+wnn6-ds,26208,tcpudp
+x11,6000,tcp
+x11-ssh-offset,6010,tcp
+xdmcp,177,tcpudp
+xfs,7100,tcp
+xtel,1313,tcp
+z39.50,210,tcpudp
+zephyr-clt,2103,tcpudp
+zephyr-hm,2104,tcpudp
+zephyr-srv,2102,tcpudp
+zip,6,ddp
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl
new file mode 100644 (file)
index 0000000..13021ca
--- /dev/null
@@ -0,0 +1,554 @@
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+# Copyright (C) 2002 Alex Hudson - getcgihash() rewrite\r
+# Copyright (C) 2002 Bob Grant <bob@cache.ucr.edu> - validmac()\r
+# Copyright (c) 2002/04/13 Steve Bootes - add alias section, helper functions\r
+# Copyright (c) 2002/08/23 Mark Wormgoor <mark@wormgoor.com> validfqdn()\r
+# Copyright (c) 2003/09/11 Darren Critchley <darrenc@telus.net> srtarray()\r
+#\r
+# $Id: general-functions.pl,v 1.1.2.26 2006/01/04 16:33:55 franck78 Exp $\r
+#\r
+\r
+package General;\r
+\r
+use strict;\r
+use Socket;\r
+use IO::Socket;\r
+\r
+$|=1; # line buffering\r
+\r
+$General::version = 'VERSION';\r
+$General::swroot = 'CONFIG_ROOT';\r
+$General::noipprefix = 'noipg-';\r
+$General::adminmanualurl = 'http://www.ipcop.org/1.4.0/en/admin/html';\r
+\r
+sub log\r
+{\r
+       my $logmessage = $_[0];\r
+       $logmessage =~ /([\w\W]*)/;\r
+       $logmessage = $1;\r
+       system('/usr/bin/logger', '-t', 'ipcop', $logmessage);\r
+}\r
+\r
+sub readhash\r
+{\r
+       my $filename = $_[0];\r
+       my $hash = $_[1];\r
+       my ($var, $val);\r
+       \r
+       \r
+       # Some ipcop code expects that readhash 'complete' the hash if new entries\r
+       # are presents. Not clear it !!!\r
+       #%$hash = ();\r
+\r
+       open(FILE, $filename) or die "Unable to read file $filename";\r
+       \r
+       while (<FILE>)\r
+       {\r
+               chop;\r
+               ($var, $val) = split /=/, $_, 2;\r
+               if ($var)\r
+               {\r
+                       $val =~ s/^\'//g;\r
+                       $val =~ s/\'$//g;\r
+\r
+                       # Untaint variables read from hash\r
+                       $var =~ /([A-Za-z0-9_-]*)/;        $var = $1;\r
+                       $val =~ /([\w\W]*)/; $val = $1;\r
+                       $hash->{$var} = $val;\r
+               }\r
+       }\r
+       close FILE;\r
+}\r
+\r
+\r
+sub writehash\r
+{\r
+       my $filename = $_[0];\r
+       my $hash = $_[1];\r
+       my ($var, $val);\r
+       \r
+       # write cgi vars to the file.\r
+       open(FILE, ">${filename}") or die "Unable to write file $filename";\r
+       flock FILE, 2;\r
+       foreach $var (keys %$hash) \r
+       {\r
+               $val = $hash->{$var};\r
+               # Darren Critchley Jan 17, 2003 added the following because when submitting with a graphic, the x and y\r
+               # location of the mouse are submitted as well, this was being written to the settings file causing\r
+               # some serious grief! This skips the variable.x and variable.y\r
+               if (!($var =~ /(.x|.y)$/)) {\r
+                       if ($val =~ / /) {\r
+                               $val = "\'$val\'"; }\r
+                       if (!($var =~ /^ACTION/)) {\r
+                               print FILE "${var}=${val}\n"; }\r
+               }\r
+       }\r
+       close FILE;\r
+}\r
+\r
+\r
+sub age\r
+{\r
+       my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,\r
+               $atime, $mtime, $ctime, $blksize, $blocks) = stat $_[0];\r
+       my $now = time;\r
+\r
+       my $totalsecs = $now - $mtime;\r
+       my $days = int($totalsecs / 86400);\r
+       my $totalhours = int($totalsecs / 3600);\r
+       my $hours = $totalhours % 24;\r
+       my $totalmins = int($totalsecs / 60);\r
+       my $mins = $totalmins % 60;\r
+       my $secs = $totalsecs % 60;\r
+\r
+       return "${days}d ${hours}h ${mins}m ${secs}s";\r
+}\r
+\r
+sub validip\r
+{\r
+       my $ip = $_[0];\r
+\r
+       if (!($ip =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/)) {\r
+               return 0; }\r
+       else \r
+       {\r
+               my @octets = ($1, $2, $3, $4);\r
+               foreach $_ (@octets)\r
+               {\r
+                       if (/^0./) {\r
+                               return 0; }\r
+                       if ($_ < 0 || $_ > 255) {\r
+                               return 0; }\r
+               }\r
+               return 1;\r
+       }\r
+}\r
+\r
+sub validmask\r
+{\r
+       my $mask = $_[0];\r
+\r
+       # secord part an ip?\r
+       if (&validip($mask)) {\r
+               return 1; }\r
+       # second part a number?\r
+       if (/^0/) {\r
+               return 0; }\r
+       if (!($mask =~ /^\d+$/)) {\r
+               return 0; }\r
+       if ($mask >= 0 && $mask <= 32) {\r
+               return 1; }\r
+       return 0;\r
+}\r
+\r
+sub validipormask\r
+{\r
+       my $ipormask = $_[0];\r
+\r
+       # see if it is a IP only.\r
+       if (&validip($ipormask)) {\r
+               return 1; }\r
+       # split it into number and mask.\r
+       if (!($ipormask =~ /^(.*?)\/(.*?)$/)) {\r
+               return 0; }\r
+       my $ip = $1;\r
+       my $mask = $2;\r
+       # first part not a ip?\r
+       if (!(&validip($ip))) {\r
+               return 0; }\r
+       return &validmask($mask);\r
+}\r
+\r
+sub validipandmask\r
+{\r
+       my $ipandmask = $_[0];\r
+\r
+       # split it into number and mask.\r
+       if (!($ipandmask =~ /^(.*?)\/(.*?)$/)) {\r
+               return 0; }\r
+       my $ip = $1;\r
+       my $mask = $2;\r
+       # first part not a ip?\r
+       if (!(&validip($ip))) {\r
+               return 0; }\r
+       return &validmask($mask);\r
+}\r
+\r
+sub validport\r
+{\r
+       $_ = $_[0];\r
+\r
+       if (!/^\d+$/) {\r
+               return 0; }\r
+       if (/^0./) {\r
+               return 0; }\r
+       if ($_ >= 1 && $_ <= 65535) {\r
+               return 1; }\r
+       return 0;\r
+}\r
+\r
+sub validmac\r
+{\r
+       my $checkmac = $_[0];\r
+       my $ot = '[0-9a-f]{2}'; # 2 Hex digits (one octet)\r
+       if ($checkmac !~ /^$ot:$ot:$ot:$ot:$ot:$ot$/i)\r
+       {\r
+               return 0;\r
+       }\r
+       return 1;\r
+}\r
+\r
+sub validhostname\r
+{\r
+       # Checks a hostname against RFC1035\r
+        my $hostname = $_[0];\r
+\r
+       # Each part should be at least two characters in length\r
+       # but no more than 63 characters\r
+       if (length ($hostname) < 1 || length ($hostname) > 63) {\r
+               return 0;}\r
+       # Only valid characters are a-z, A-Z, 0-9 and -\r
+       if ($hostname !~ /^[a-zA-Z0-9-]*$/) {\r
+               return 0;}\r
+       # First character can only be a letter or a digit\r
+       if (substr ($hostname, 0, 1) !~ /^[a-zA-Z0-9]*$/) {\r
+               return 0;}\r
+       # Last character can only be a letter or a digit\r
+       if (substr ($hostname, -1, 1) !~ /^[a-zA-Z0-9]*$/) {\r
+               return 0;}\r
+       return 1;\r
+}\r
+\r
+sub validdomainname\r
+{\r
+       my $part;\r
+\r
+       # Checks a domain name against RFC1035\r
+        my $domainname = $_[0];\r
+       my @parts = split (/\./, $domainname);  # Split hostname at the '.'\r
+\r
+       foreach $part (@parts) {\r
+               # Each part should be at least two characters in length\r
+               # but no more than 63 characters\r
+               if (length ($part) < 2 || length ($part) > 63) {\r
+                       return 0;}\r
+               # Only valid characters are a-z, A-Z, 0-9 and -\r
+               if ($part !~ /^[a-zA-Z0-9-]*$/) {\r
+                       return 0;}\r
+               # First character can only be a letter or a digit\r
+               if (substr ($part, 0, 1) !~ /^[a-zA-Z0-9]*$/) {\r
+                       return 0;}\r
+               # Last character can only be a letter or a digit\r
+               if (substr ($part, -1, 1) !~ /^[a-zA-Z0-9]*$/) {\r
+                       return 0;}\r
+       }\r
+       return 1;\r
+}\r
+\r
+sub validfqdn\r
+{\r
+       my $part;\r
+\r
+       # Checks a fully qualified domain name against RFC1035\r
+        my $fqdn = $_[0];\r
+       my @parts = split (/\./, $fqdn);        # Split hostname at the '.'\r
+       if (scalar(@parts) < 2) {               # At least two parts should\r
+               return 0;}                      # exist in a FQDN\r
+                                               # (i.e. hostname.domain)\r
+       foreach $part (@parts) {\r
+               # Each part should be at least one character in length\r
+               # but no more than 63 characters\r
+               if (length ($part) < 1 || length ($part) > 63) {\r
+                       return 0;}\r
+               # Only valid characters are a-z, A-Z, 0-9 and -\r
+               if ($part !~ /^[a-zA-Z0-9-]*$/) {\r
+                       return 0;}\r
+               # First character can only be a letter or a digit\r
+               if (substr ($part, 0, 1) !~ /^[a-zA-Z0-9]*$/) {\r
+                       return 0;}\r
+               # Last character can only be a letter or a digit\r
+               if (substr ($part, -1, 1) !~ /^[a-zA-Z0-9]*$/) {\r
+                       return 0;}\r
+       }\r
+       return 1;\r
+}\r
+\r
+sub validportrange # used to check a port range \r
+{\r
+       my $port = $_[0]; # port values\r
+       $port =~ tr/-/:/; # replace all - with colons just in case someone used -\r
+       my $srcdst = $_[1]; # is it a source or destination port\r
+\r
+       if (!($port =~ /^(\d+)\:(\d+)$/)) {\r
+       \r
+               if (!(&validport($port))) {      \r
+                       if ($srcdst eq 'src'){\r
+                               return $Lang::tr{'source port numbers'};\r
+                       } else  {\r
+                               return $Lang::tr{'destination port numbers'};\r
+                       } \r
+               }\r
+       }\r
+       else \r
+       {\r
+               my @ports = ($1, $2);\r
+               if ($1 >= $2){\r
+                       if ($srcdst eq 'src'){\r
+                               return $Lang::tr{'bad source range'};\r
+                       } else  {\r
+                               return $Lang::tr{'bad destination range'};\r
+                       } \r
+               }\r
+               foreach $_ (@ports)\r
+               {\r
+                       if (!(&validport($_))) {\r
+                               if ($srcdst eq 'src'){\r
+                                       return $Lang::tr{'source port numbers'}; \r
+                               } else  {\r
+                                       return $Lang::tr{'destination port numbers'};\r
+                               } \r
+                       }\r
+               }\r
+               return;\r
+       }\r
+}\r
+\r
+# Test if IP is within a subnet\r
+# Call: IpInSubnet (Addr, Subnet, Subnet Mask)\r
+#       Subnet can be an IP of the subnet: 10.0.0.0 or 10.0.0.1\r
+#       Everything in dottted notation\r
+# Return: TRUE/FALSE\r
+sub IpInSubnet\r
+{\r
+    my $ip = unpack('N', &Socket::inet_aton(shift));\r
+    my $start = unpack('N', &Socket::inet_aton(shift));\r
+    my $mask  = unpack('N', &Socket::inet_aton(shift));\r
+       $start &= $mask;  # base of subnet...\r
+    my $end   = $start + ~$mask;\r
+    return (($ip >= $start) && ($ip <= $end));\r
+}\r
+\r
+sub validemail {\r
+    my $mail = shift;\r
+    return 0 if ( $mail !~ /^[0-9a-zA-Z\.\-\_]+\@[0-9a-zA-Z\.\-]+$/ );\r
+    return 0 if ( $mail =~ /^[^0-9a-zA-Z]|[^0-9a-zA-Z]$/);\r
+    return 0 if ( $mail !~ /([0-9a-zA-Z]{1})\@./ );\r
+    return 0 if ( $mail !~ /.\@([0-9a-zA-Z]{1})/ );\r
+    return 0 if ( $mail =~ /.\.\-.|.\-\..|.\.\..|.\-\-./g );\r
+    return 0 if ( $mail =~ /.\.\_.|.\-\_.|.\_\..|.\_\-.|.\_\_./g );\r
+    return 0 if ( $mail !~ /\.([a-zA-Z]{2,4})$/ );\r
+    return 1;\r
+}\r
+\r
+sub readhasharray {\r
+    my ($filename, $hash) = @_;\r
+    %$hash = ();\r
+\r
+    open(FILE, $filename) or die "Unable to read file $filename";\r
+\r
+    while (<FILE>) {\r
+       my ($key, $rest, @temp);\r
+       chomp;\r
+       ($key, $rest) = split (/,/, $_, 2);\r
+       if ($key =~ /^[0-9]+$/ && $rest) {\r
+           @temp = split (/,/, $rest);\r
+           $hash->{$key} = \@temp;\r
+        }\r
+    }\r
+    close FILE;\r
+    return;\r
+}\r
+\r
+sub writehasharray {\r
+    my ($filename, $hash) = @_;\r
+    my ($key, @temp, $i);\r
+\r
+    open(FILE, ">$filename") or die "Unable to write to file $filename";\r
+\r
+    foreach $key (keys %$hash) {\r
+       if ( $hash->{$key} ) {\r
+           print FILE "$key";\r
+           foreach $i (0 .. $#{$hash->{$key}}) {\r
+               print FILE ",$hash->{$key}[$i]";\r
+           }\r
+       }\r
+       print FILE "\n";\r
+    }\r
+    close FILE;\r
+    return;\r
+}\r
+\r
+sub findhasharraykey {\r
+    foreach my $i (1 .. 1000000) {\r
+       if ( ! exists $_[0]{$i}) {\r
+            return $i;\r
+       }\r
+    }\r
+}\r
+\r
+sub srtarray \r
+# Darren Critchley - darrenc@telus.net - (c) 2003\r
+# &srtarray(SortOrder, AlphaNumeric, SortDirection, ArrayToBeSorted)\r
+# This subroutine will take the following parameters:\r
+#   ColumnNumber = the column which you want to sort on, starts at 1\r
+#   AlphaNumberic = a or n (lowercase) defines whether the sort should be alpha or numberic\r
+#   SortDirection = asc or dsc (lowercase) Ascending or Descending sort\r
+#   ArrayToBeSorted = the array that wants sorting\r
+#\r
+#   Returns an array that is sorted to your specs\r
+#\r
+#   If SortOrder is greater than the elements in array, then it defaults to the first element\r
+# \r
+{\r
+       my ($colno, $alpnum, $srtdir, @tobesorted) = @_;\r
+       my @tmparray;\r
+       my @srtedarray;\r
+       my $line;\r
+       my $newline;\r
+       my $ctr;\r
+       my $ttlitems = scalar @tobesorted; # want to know the number of rows in the passed array\r
+       if ($ttlitems < 1){ # if no items, don't waste our time lets leave\r
+               return (@tobesorted);\r
+       }\r
+       my @tmp = split(/\,/,$tobesorted[0]);\r
+       $ttlitems = scalar @tmp; # this should be the number of elements in each row of the passed in array\r
+\r
+       # Darren Critchley - validate parameters\r
+       if ($colno > $ttlitems){$colno = '1';}\r
+       $colno--; # remove one from colno to deal with arrays starting at 0\r
+       if($colno < 0){$colno = '0';}\r
+       if ($alpnum ne '') { $alpnum = lc($alpnum); } else { $alpnum = 'a'; }\r
+       if ($srtdir ne '') { $srtdir = lc($srtdir); } else { $srtdir = 'src'; }\r
+\r
+       foreach $line (@tobesorted)\r
+       {\r
+               chomp($line);\r
+               if ($line ne '') {\r
+                       my @temp = split(/\,/,$line);\r
+                       # Darren Critchley - juggle the fields so that the one we want to sort on is first\r
+                       my $tmpholder = $temp[0];\r
+                       $temp[0] = $temp[$colno];\r
+                       $temp[$colno] = $tmpholder;\r
+                       $newline = "";\r
+                       for ($ctr=0; $ctr < $ttlitems ; $ctr++) {\r
+                               $newline=$newline . $temp[$ctr] . ",";\r
+                       }\r
+                       chop($newline);\r
+                       push(@tmparray,$newline);\r
+               }\r
+       }\r
+       if ($alpnum eq 'n') {\r
+               @tmparray = sort {$a <=> $b} @tmparray;\r
+       } else {\r
+               @tmparray = (sort @tmparray);\r
+       }\r
+       foreach $line (@tmparray)\r
+       {\r
+               chomp($line);\r
+               if ($line ne '') {\r
+                       my @temp = split(/\,/,$line);\r
+                       my $tmpholder = $temp[0];\r
+                       $temp[0] = $temp[$colno];\r
+                       $temp[$colno] = $tmpholder;\r
+                       $newline = "";\r
+                       for ($ctr=0; $ctr < $ttlitems ; $ctr++){\r
+                               $newline=$newline . $temp[$ctr] . ",";\r
+                       }\r
+                       chop($newline);\r
+                       push(@srtedarray,$newline);\r
+               }\r
+       }\r
+\r
+       if ($srtdir eq 'dsc') {\r
+               @tmparray = reverse(@srtedarray);\r
+               return (@tmparray);\r
+       } else {\r
+               return (@srtedarray);\r
+       }\r
+}\r
+\r
+sub FetchPublicIp {\r
+    my %proxysettings;\r
+    &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+    if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+        my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+        Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );\r
+    }\r
+    my ($out, $response) = Net::SSLeay::get_http(  'checkip.dyndns.org',\r
+                                                   80,\r
+                                                   "/",\r
+                                                   Net::SSLeay::make_headers('User-Agent' => 'Ipcop' )\r
+                                               );\r
+    if ($response =~ m%HTTP/1\.. 200 OK%) {\r
+       $out =~ /Current IP Address: (\d+.\d+.\d+.\d+)/;\r
+       return $1;\r
+    }\r
+    return '';\r
+}\r
+\r
+#\r
+# Check if hostname.domain provided have IP provided\r
+# use gethostbyname to verify that\r
+# Params:\r
+#      IP\r
+#      hostname\r
+#      domain\r
+# Output \r
+#      1 IP matches host.domain\r
+#      0 not in sync\r
+#\r
+sub DyndnsServiceSync ($;$;$) {\r
\r
+    my ($ip,$hostName,$domain) = @_;\r
+    my @addresses;\r
+\r
+    #fix me no ip GROUP, what is the name ?\r
+    $hostName =~ s/$General::noipprefix//;\r
+    if ($hostName) { #may be empty\r
+       $hostName = "$hostName.$domain";\r
+       @addresses = gethostbyname($hostName);\r
+    }\r
+\r
+    if ($addresses[0] eq '') {                 # nothing returned ?\r
+       $hostName = $domain;                    # try resolving with domain only\r
+        @addresses = gethostbyname($hostName);\r
+    }\r
+\r
+    if ($addresses[0] ne '') {                         # got something ?\r
+       #&General::log("name:$addresses[0], alias:$addresses[1]");                          \r
+       # Build clear text list of IP\r
+       @addresses = map ( &Socket::inet_ntoa($_), @addresses[4..$#addresses]);\r
+       if (grep (/$ip/, @addresses)) {\r
+           return 1;\r
+       }\r
+    }\r
+    return 0;\r
+}\r
+#\r
+# This sub returns the red IP used to compare in DyndnsServiceSync\r
+#\r
+sub GetDyndnsRedIP {\r
+    my %settings;\r
+    &General::readhash("${General::swroot}/ddns/settings", \%settings);\r
+\r
+    open(IP, "${General::swroot}/red/local-ipaddress") or return 'unavailable';\r
+    my $ip = <IP>;\r
+    close(IP);\r
+    chomp $ip;\r
+\r
+    if (&General::IpInSubnet ($ip,'10.0.0.0','255.0.0.0') ||\r
+        &General::IpInSubnet ($ip,'172.16.0.0.','255.240.0.0') ||\r
+        &General::IpInSubnet ($ip,'192.168.0.0','255.255.0.0'))\r
+    {\r
+       if ($settings{'BEHINDROUTER'} eq 'FETCH_IP') {\r
+           my $RealIP = &General::FetchPublicIp;\r
+           $ip = (&General::validip ($RealIP) ?  $RealIP : 'unavailable');\r
+       }\r
+    }\r
+    return $ip;\r
+}\r
+1;\r
diff --git a/config/cfgroot/header-menu.pl b/config/cfgroot/header-menu.pl
new file mode 100644 (file)
index 0000000..b2151ea
--- /dev/null
@@ -0,0 +1,24 @@
+sub genmenu\r
+{\r
+    ... snip ...\r
+    if ( ! -e "${General::swroot}/proxy/enable" && ! -e "${General::swroot}/proxy/enable_blue" ) {\r
+       splice (@{$menu{'2.status'}{'subMenu'}}, 4, 1);\r
+       splice (@{$menu{'7.mainlogs'}{'subMenu'}}, 2, 1);\r
+    }\r
+\r
+    # Read additionnal menus entry\r
+    # this have to be hardened and accepted. To be extended.\r
+    opendir (DIR, "${General::swroot}/addon-menu");\r
+    while (my $menuitem = readdir (DIR)) {\r
+\r
+       if ( $menuitem =~ /^menu\.([1-6]\..*)\..*/) {  #model is "menu.(N.submenu).filename"\r
+           my $submenu = $1;\r
+           open (FILE,"${General::swroot}/addon-menu/$menuitem") or die;\r
+           while (my $text = <FILE>) {     # file may content many entry\r
+               splice (@{$menu{$submenu}{'subMenu'}} ,-1,0, [ eval($text) ] );\r
+           }\r
+           close (FILE);\r
+       }\r
+    }\r
+    closedir (DIR);\r
+}\r
diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl
new file mode 100644 (file)
index 0000000..c15187a
--- /dev/null
@@ -0,0 +1,823 @@
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+# Copyright (C) 2002 Alex Hudson - getcgihash() rewrite\r
+# Copyright (C) 2002 Bob Grant <bob@cache.ucr.edu> - validmac()\r
+# Copyright (c) 2002/04/13 Steve Bootes - add alias section, helper functions\r
+# Copyright (c) 2002/08/23 Mark Wormgoor <mark@wormgoor.com> validfqdn()\r
+# Copyright (c) 2003/09/11 Darren Critchley <darrenc@telus.net> srtarray()\r
+#\r
+# $Id: header.pl,v 1.34.2.67 2005/10/03 20:01:05 gespinasse Exp $\r
+#\r
+\r
+package Header;\r
+\r
+use strict;\r
+use CGI();\r
+use Time::Local;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+\r
+$Header::pagecolour = '#ffffff';       # never used, will be removed\r
+$Header::tablecolour = '#FFFFFF';      # never used, will be removed\r
+$Header::bigboxcolour = '#F6F4F4';     # never used, will be removed\r
+$Header::boxcolour = '#EAE9EE';                # only header.pl, ? move in css ?\r
+$Header::bordercolour = '#000000';     # never used, will be removed\r
+$Header::table1colour = '#C0C0C0';\r
+$Header::table2colour = '#F2F2F2';\r
+$Header::colourred = '#993333';\r
+$Header::colourorange = '#FF9933';\r
+$Header::colouryellow = '#FFFF00';\r
+$Header::colourgreen = '#339933';\r
+$Header::colourblue = '#333399';\r
+$Header::colourfw = '#000000';         # only connections.cgi\r
+$Header::colourvpn = '#990099';                # only connections.cgi\r
+$Header::colourerr = '#FF0000';                # only header.pl, many scripts use colourred for warnings messages\r
+$Header::viewsize = 150;\r
+my %menu = ();\r
+my $hostnameintitle = 0;\r
+our $javascript = 1;\r
+\r
+### Initialize menu\r
+sub genmenu\r
+{\r
+    ### Initialize environment\r
+    my %ethsettings = ();\r
+    &General::readhash("${General::swroot}/ethernet/settings", \%ethsettings);\r
+\r
+    %{$menu{'1.system'}}=(\r
+               'contents' =>  $Lang::tr{'alt system'},\r
+               'uri' => '',\r
+               'statusText' => "IPCop $Lang::tr{'alt system'}",\r
+               'subMenu' =>   [[ $Lang::tr{'alt home'} , '/cgi-bin/index.cgi', "IPCop $Lang::tr{'alt home'}" ],\r
+                               [ $Lang::tr{'updates'} , '/cgi-bin/updates.cgi', "IPCop $Lang::tr{'updates'}" ],\r
+                               [ $Lang::tr{'sspasswords'} , '/cgi-bin/changepw.cgi', "IPCop $Lang::tr{'sspasswords'}" ],\r
+                               [ $Lang::tr{'ssh access'} , '/cgi-bin/remote.cgi', "IPCop $Lang::tr{'ssh access'}" ],\r
+                               [ $Lang::tr{'gui settings'} , '/cgi-bin/gui.cgi', "IPCop $Lang::tr{'gui settings'}" ],\r
+                               [ $Lang::tr{'backup'} , '/cgi-bin/backup.cgi', "IPCop $Lang::tr{'backup'} / $Lang::tr{'restore'}" ],\r
+                               [ $Lang::tr{'shutdown'} , '/cgi-bin/shutdown.cgi', "IPCop $Lang::tr{'shutdown'} / $Lang::tr{'reboot'}" ],\r
+                               [ $Lang::tr{'credits'} , '/cgi-bin/credits.cgi', "IPCop $Lang::tr{'credits'}" ]]\r
+    );\r
+    %{$menu{'2.status'}}=(\r
+               'contents' =>  $Lang::tr{'status'},\r
+               'uri' => '',\r
+               'statusText' => "IPCop $Lang::tr{'status information'}",\r
+               'subMenu' =>   [[ $Lang::tr{'sssystem status'} , '/cgi-bin/status.cgi', "IPCop $Lang::tr{'system status information'}" ],\r
+                               [ $Lang::tr{'ssnetwork status'} , '/cgi-bin/netstatus.cgi', "IPCop $Lang::tr{'network status information'}" ],\r
+                               [ $Lang::tr{'system graphs'} , '/cgi-bin/graphs.cgi', "IPCop $Lang::tr{'system graphs'}" ],\r
+                               [ $Lang::tr{'sstraffic graphs'} , '/cgi-bin/graphs.cgi?graph=network', "IPCop $Lang::tr{'network traffic graphs'}" ],\r
+                               [ $Lang::tr{'ssproxy graphs'} , '/cgi-bin/proxygraphs.cgi', "IPCop $Lang::tr{'proxy access graphs'}" ],\r
+                               [ $Lang::tr{'connections'} , '/cgi-bin/connections.cgi', "IPCop $Lang::tr{'connections'}" ]]\r
+    );\r
+    %{$menu{'3.network'}}=(\r
+               'contents' =>  $Lang::tr{'network'},\r
+               'uri' => '',\r
+               'statusText' => "IPCop $Lang::tr{'network configuration'}",\r
+               'subMenu' =>   [[ $Lang::tr{'alt dialup'} , '/cgi-bin/pppsetup.cgi', "IPCop $Lang::tr{'dialup settings'}" ],\r
+                               [ $Lang::tr{'upload'} , '/cgi-bin/upload.cgi', $Lang::tr{'firmware upload'} ],\r
+                               [ $Lang::tr{'modem'} , '/cgi-bin/modem.cgi', "IPCop $Lang::tr{'modem configuration'}" ],\r
+                               [ $Lang::tr{'aliases'} , '/cgi-bin/aliases.cgi', "IPCop $Lang::tr{'external aliases configuration'}" ]]\r
+    );\r
+    %{$menu{'4.services'}}=(\r
+               'contents' =>  $Lang::tr{'alt services'},\r
+               'uri' => '',\r
+               'statusText' => "IPCop $Lang::tr{'alt services'}",\r
+               'subMenu' =>   [[ $Lang::tr{'proxy'} , '/cgi-bin/proxy.cgi', "IPCop $Lang::tr{'web proxy configuration'}" ],\r
+                               [ $Lang::tr{'dhcp server'} , '/cgi-bin/dhcp.cgi', "IPCop $Lang::tr{'dhcp configuration'}" ],\r
+                               [ $Lang::tr{'dynamic dns'} , '/cgi-bin/ddns.cgi', "IPCop $Lang::tr{'dynamic dns client'}" ],\r
+                               [ $Lang::tr{'edit hosts'} , '/cgi-bin/hosts.cgi', "IPCop $Lang::tr{'host configuration'}" ],\r
+                               [ $Lang::tr{'time server'} , '/cgi-bin/time.cgi', "IPCop $Lang::tr{'time server'}" ],\r
+                               [ $Lang::tr{'traffic shaping'} , '/cgi-bin/shaping.cgi', "IPCop $Lang::tr{'traffic shaping settings'}" ],\r
+                               [ $Lang::tr{'intrusion detection'} , '/cgi-bin/ids.cgi', "IPCop $Lang::tr{'intrusion detection system'} (Snort)" ]]\r
+    );\r
+    %{$menu{'5.firewall'}}=(\r
+               'contents' =>  $Lang::tr{'firewall'},\r
+               'uri' => '',\r
+               'statusText' => "IPCop $Lang::tr{'firewall'}",\r
+               'subMenu' =>   [[ $Lang::tr{'ssport forwarding'} , '/cgi-bin/portfw.cgi', "IPCop $Lang::tr{'port forwarding configuration'}" ],\r
+                               [ $Lang::tr{'external access'} , '/cgi-bin/xtaccess.cgi', "IPCop $Lang::tr{'external access configuration'}" ],\r
+                               [ $Lang::tr{'ssdmz pinholes'} , '/cgi-bin/dmzholes.cgi', "IPCop $Lang::tr{'dmz pinhole configuration'}" ],\r
+                               [ $Lang::tr{'blue access'} , '/cgi-bin/wireless.cgi', "IPCop $Lang::tr{'blue access'}" ]\r
+                               ,[ $Lang::tr{'options fw'} , '/cgi-bin/optionsfw.cgi', "IPCop $Lang::tr{'options fw'}" ]\r
+                              ]\r
+    );\r
+    %{$menu{'6.vpns'}}=(\r
+               'contents' =>  $Lang::tr{'alt vpn'},\r
+               'uri' => '',\r
+               'statusText' => "IPCop $Lang::tr{'virtual private networking'}",\r
+               'subMenu' =>   [[ $Lang::tr{'alt vpn'} , '/cgi-bin/vpnmain.cgi', "IPCop $Lang::tr{'virtual private networking'}"]]\r
+    );\r
+    %{$menu{'7.mainlogs'}}=(\r
+               'contents' =>  $Lang::tr{'alt logs'},\r
+               'uri' => '',\r
+               'statusText' => "IPCop $Lang::tr{'alt logs'}",\r
+               'subMenu' =>   [[ $Lang::tr{'log settings'} , '/cgi-bin/logs.cgi/config.dat', "IPCop $Lang::tr{'log settings'}" ],\r
+                               [ $Lang::tr{'log summary'} , '/cgi-bin/logs.cgi/summary.dat', "IPCop $Lang::tr{'log summary'}" ],\r
+                               [ $Lang::tr{'proxy logs'} , '/cgi-bin/logs.cgi/proxylog.dat', "IPCop $Lang::tr{'proxy log viewer'}" ],\r
+                               [ $Lang::tr{'firewall logs'} , '/cgi-bin/logs.cgi/firewalllog.dat', "IPCop $Lang::tr{'firewall log viewer'}" ],\r
+                               [ $Lang::tr{'ids logs'} , '/cgi-bin/logs.cgi/ids.dat', "IPCop $Lang::tr{'intrusion detection system log viewer'}" ],\r
+                               [ $Lang::tr{'system logs'} , '/cgi-bin/logs.cgi/log.dat', "IPCop $Lang::tr{'system log viewer'}" ]]\r
+    );\r
+    if (! $ethsettings{'BLUE_DEV'}) {\r
+       splice (@{$menu{'5.firewall'}{'subMenu'}}, 3, 1);\r
+    }\r
+    if (! $ethsettings{'BLUE_DEV'} && ! $ethsettings{'ORANGE_DEV'}) {\r
+       splice (@{$menu{'5.firewall'}{'subMenu'}}, 2, 1);\r
+    }\r
+    unless ( $ethsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $ethsettings{'RED_TYPE'} eq 'STATIC' ) {\r
+       splice (@{$menu{'3.network'}{'subMenu'}}, 3, 1);\r
+    }\r
+    if ( ! -e "${General::swroot}/snort/enable" && ! -e "${General::swroot}/snort/enable_blue" &&\r
+       ! -e "${General::swroot}/snort/enable_green" && ! -e "${General::swroot}/snort/enable_orange") {\r
+       splice (@{$menu{'7.mainlogs'}{'subMenu'}}, 4, 1);\r
+    }\r
+    if ( ! -e "${General::swroot}/proxy/enable" && ! -e "${General::swroot}/proxy/enable_blue" ) {\r
+       splice (@{$menu{'2.status'}{'subMenu'}}, 4, 1);\r
+       splice (@{$menu{'7.mainlogs'}{'subMenu'}}, 2, 1);\r
+    }\r
+}\r
+\r
+sub showhttpheaders\r
+{\r
+    ### Make sure this is an SSL request\r
+    if ($ENV{'SERVER_ADDR'} && $ENV{'HTTPS'} ne 'on') {\r
+       print "Status: 302 Moved\r\n";\r
+       print "Location: https://$ENV{'SERVER_ADDR'}:445/$ENV{'PATH_INFO'}\r\n\r\n";\r
+       exit 0;\r
+    } else {\r
+       print "Pragma: no-cache\n";\r
+       print "Cache-control: no-cache\n";\r
+       print "Connection: close\n";\r
+       print "Content-type: text/html\n\n";\r
+    }\r
+}\r
+\r
+sub showjsmenu\r
+{\r
+    my $c1 = 1;\r
+\r
+    print "    <script type='text/javascript'>\n";\r
+    print "    domMenu_data.setItem('domMenu_main', new domMenu_Hash(\n";\r
+\r
+    foreach my $k1 ( sort keys %menu ) {\r
+       my $c2 = 1;\r
+       if ($c1 > 1) {\r
+           print "    ),\n";\r
+       }\r
+       print "    $c1, new domMenu_Hash(\n";\r
+       print "\t'contents', '" . &cleanhtml($menu{$k1}{'contents'}) . "',\n";\r
+       print "\t'uri', '$menu{$k1}{'uri'}',\n";\r
+       $menu{$k1}{'statusText'} =~  s/'/\\\'/g;\r
+       print "\t'statusText', '$menu{$k1}{'statusText'}',\n";\r
+       foreach my $k2 ( @{$menu{$k1}{'subMenu'}} ) {\r
+           print "\t    $c2, new domMenu_Hash(\n";\r
+           print "\t\t'contents', '" . &cleanhtml(@{$k2}[0])  . "',\n";\r
+           print "\t\t'uri', '@{$k2}[1]',\n";\r
+           @{$k2}[2] =~ s/'/\\\'/g;\r
+           print "\t\t'statusText', '@{$k2}[2]'\n";\r
+           if ( $c2 <= $#{$menu{$k1}{'subMenu'}} ) {\r
+               print "\t    ),\n";\r
+           } else {\r
+               print "\t    )\n";\r
+           }\r
+           $c2++;\r
+       }\r
+       $c1++;\r
+    }\r
+    print "    )\n";\r
+    print "    ));\n\n";\r
+\r
+    print <<EOF\r
+    domMenu_settings.setItem('domMenu_main', new domMenu_Hash(\r
+       'menuBarWidth', '0%',\r
+       'menuBarClass', 'ipcop_menuBar',\r
+       'menuElementClass', 'ipcop_menuElement',\r
+       'menuElementHoverClass', 'ipcop_menuElementHover',\r
+       'menuElementActiveClass', 'ipcop_menuElementHover',\r
+       'subMenuBarClass', 'ipcop_subMenuBar',\r
+       'subMenuElementClass', 'ipcop_subMenuElement',\r
+       'subMenuElementHoverClass', 'ipcop_subMenuElementHover',\r
+       'subMenuElementActiveClass', 'ipcop_subMenuElementHover',\r
+       'subMenuMinWidth', 'auto',\r
+       'distributeSpace', false,\r
+       'openMouseoverMenuDelay', 0,\r
+       'openMousedownMenuDelay', 0,\r
+       'closeClickMenuDelay', 0,\r
+       'closeMouseoutMenuDelay', -1\r
+    ));\r
+    </script>\r
+EOF\r
+    ;\r
+}\r
+\r
+sub showmenu\r
+{\r
+    if ($javascript) {print "<noscript>";}\r
+    print "<table cellpadding='0' cellspacing='0' border='0'>\n";\r
+    print "<tr>\n";\r
+\r
+    foreach my $k1 ( sort keys %menu ) {\r
+       print "<td class='ipcop_menuElementTD'><a href='" . @{@{$menu{$k1}{'subMenu'}}[0]}[1] . "' class='ipcop_menuElementNoJS'>";\r
+       print $menu{$k1}{'contents'} . "</a></td>\n";\r
+    }\r
+    print "</tr></table>\n";\r
+    if ($javascript) {print "</noscript>";}\r
+}\r
+\r
+sub showsubsection\r
+{\r
+    my $location = $_[0];\r
+    my $c1 = 0;\r
+\r
+    if ($javascript) {print "<noscript>";}\r
+    print "<table width='100%' cellspacing='0' cellpadding='5' border='0'>\n";\r
+    print "<tr><td style='background-color: $Header::boxcolour;' width='53'><img src='/images/null.gif' width='43' height='1' alt='' /></td>\n";\r
+    print "<td style='background-color: $Header::boxcolour;' align='left' width='100%'>";\r
+    my @URI=split ('\?',  $ENV{'REQUEST_URI'} );\r
+\r
+    foreach my $k1 ( keys %menu ) {\r
+       \r
+       if ($menu{$k1}{'contents'} eq $location) {\r
+           foreach my $k2 ( @{$menu{$k1}{'subMenu'}} ) {\r
+               if ($c1 > 0) {\r
+                   print " | ";\r
+               }\r
+               if (@{$k2}[1] eq "$URI[0]\?$URI[1]" || (@{$k2}[1] eq $URI[0] && length($URI[1]) == 0)) {\r
+               #if (@{$k2}[1] eq "$URI[0]") {\r
+                   print "<b>@{$k2}[0]</b>";\r
+               } else {\r
+                   print "<a href='@{$k2}[1]'>@{$k2}[0]</a>";\r
+               }\r
+               $c1++;\r
+           }\r
+       }\r
+    }\r
+    print "</td></tr></table>\n";\r
+    if ($javascript) { print "</noscript>";}\r
+}\r
+\r
+sub openpage\r
+{\r
+    my $title = $_[0];\r
+    my $menu = $_[1];\r
+    my $extrahead = $_[2];\r
+\r
+    ### Initialize environment\r
+    my %settings = ();\r
+    &General::readhash("${General::swroot}/main/settings", \%settings);\r
+\r
+    if ($settings{'JAVASCRIPT'} eq 'off') {\r
+       $javascript = 0;\r
+    } else {\r
+       $javascript = 1;\r
+    }\r
+\r
+    if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') {\r
+        $hostnameintitle = 1;\r
+    } else {\r
+        $hostnameintitle = 0;\r
+    }\r
+\r
+    print <<END\r
+<!DOCTYPE html \r
+     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+\r
+<html><head>\r
+END\r
+    ;\r
+    print "    <title>";\r
+    if ($hostnameintitle) {\r
+        print "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; \r
+    } else {\r
+        print "IPCop - $title";\r
+    }\r
+    print "</title>\n";\r
+\r
+    print <<END\r
+    $extrahead\r
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
+    <link rel="shortcut icon" href="/favicon.ico" />\r
+    <style type="text/css">\@import url(/include/ipcop.css);</style>\r
+END\r
+    ;\r
+    if ($javascript) {\r
+       print "<script type='text/javascript' src='/include/domMenu.js'></script>\n";\r
+       &genmenu();\r
+       &showjsmenu();\r
+    } else {\r
+       &genmenu();\r
+    }\r
+\r
+    my $location = '';\r
+    my $sublocation = '';\r
+    my @URI=split ('\?',  $ENV{'REQUEST_URI'} );\r
+    foreach my $k1 ( keys %menu ) {\r
+       my $temp = $menu{$k1}{'contents'};\r
+       foreach my $k2 ( @{$menu{$k1}{'subMenu'}} ) {\r
+           if ( @{$k2}[1] eq $URI[0] ) {\r
+               $location = $temp;\r
+               $sublocation = @{$k2}[0];\r
+           }\r
+       }\r
+    }\r
+\r
+    my @cgigraphs = split(/graph=/,$ENV{'QUERY_STRING'});\r
+    if (defined ($cgigraphs[1])){ \r
+       if ($cgigraphs[1] =~ /(GREEN|BLUE|ORANGE|RED|network)/) {\r
+               $location = $Lang::tr{'status'};\r
+               $sublocation = $Lang::tr{'sstraffic graphs'};\r
+       }\r
+       if ($cgigraphs[1] =~ /(cpu|memory|swap|disk)/) {\r
+               $location = $Lang::tr{'status'};\r
+               $sublocation = $Lang::tr{'system graphs'};\r
+       }\r
+    }\r
+    if ($ENV{'QUERY_STRING'} =~ /(ip)/) {\r
+        $location = $Lang::tr{'alt logs'};\r
+       $sublocation = "WHOIS";\r
+    }\r
+\r
+    if ($javascript) {\r
+           print <<END\r
+           <script type="text/javascript">\r
+           document.onmouseup = function()\r
+           {\r
+               domMenu_deactivate('domMenu_main');\r
+           }\r
+           </script>\r
+           </head>\r
+\r
+           <body onload="domMenu_activate('domMenu_main');">\r
+END\r
+           ;\r
+    } else {\r
+       print "</head>\n\n<body>\n";\r
+    }\r
+\r
+    print <<END\r
+<!-- IPCOP HEADER -->\r
+    <table width='100%' cellpadding='0' cellspacing='0'>\r
+    <col width='53' />\r
+    <col />\r
+    <tr><td><img src='/images/null.gif' width='53' height='27' alt='' /></td>\r
+       <td valign='bottom'><table width='100%' cellspacing='0' border='0'>\r
+           <col width='5' />\r
+           <col width='175' />\r
+           <col />\r
+           <tr><td><img src='/images/null.gif' width='5' height='1' alt='' /></td>\r
+               <td class="ipcop_menuLocationMain" valign='bottom'>$location</td>\r
+               <td class="ipcop_menuLocationSub"  valign='bottom'>$sublocation</td>\r
+           </tr></table>\r
+       </td></tr>\r
+    <tr><td valign='bottom' class='ipcop_Version'>\r
+           <img src='/images/null.gif' width='1' height='29' alt='' />${General::version}</td>\r
+       <td valign='bottom'>\r
+END\r
+    ;\r
+    if ($menu == 1) {\r
+       if ($javascript) {\r
+           print "<div id='domMenu_main'></div>\n";\r
+       }\r
+       &showmenu();\r
+    }\r
+    print "    </td></tr></table>\n";\r
+    &showsubsection($location);\r
+    print "<!-- IPCOP CONTENT -->\n";\r
+}\r
+\r
+sub closepage\r
+{\r
+       print <<END\r
+<!-- IPCOP FOOTER -->\r
+    <table width='100%' border='0'>\r
+    <tr><td valign='bottom'><img src='/images/bounceback.png' width='248' height='80' alt='' /></td>\r
+       <td align='center' valign='bottom'>\r
+END\r
+       ;\r
+       my $status = &connectionstatus();\r
+       print "$status<br />\n"; \r
+       print `/usr/bin/uptime`;\r
+\r
+       print <<END\r
+       </td>\r
+       <td valign='bottom'><a href='http://sf.net/projects/ipcop/' target='_blank'><img src='/images/sflogo.png' width='88' height='31' alt='Sourceforge logo' /></a></td>\r
+    </tr></table>\r
+</body></html>\r
+END\r
+       ;\r
+}\r
+\r
+sub openbigbox\r
+{\r
+       my $width = $_[0];\r
+       my $align = $_[1];\r
+       my $sideimg = $_[2];\r
+        my $errormessage = $_[3];\r
+       my $bgcolor;\r
+\r
+       if ($errormessage) {\r
+               $bgcolor = "style='background-color: $Header::colourerr;'";\r
+       } else {\r
+               $bgcolor = '';\r
+       }\r
+\r
+       print "<table width='100%' border='0'>\n";\r
+       if ($sideimg) {\r
+           print "<tr><td valign='top'><img src='/images/$sideimg' width='65' height='345' alt='' /></td>\n";\r
+       } else {\r
+           print "<tr>\n";\r
+       }\r
+       print "<td valign='top' align='center'><table width='$width' $bgcolor cellspacing='0' cellpadding='10' border='0'>\n";\r
+        print "<tr><td><img src='/images/null.gif' width='1' height='365' alt='' /></td>\n";\r
+       print "<td align='$align' valign='top'>\n";\r
+}\r
+\r
+sub closebigbox\r
+{\r
+       print "</td></tr></table></td></tr></table>\n" \r
+}\r
+\r
+sub openbox\r
+{\r
+       my $width = $_[0];\r
+       my $align = $_[1];\r
+       my $caption = $_[2];\r
+\r
+       print <<END\r
+       <table cellspacing="0" cellpadding="0" width="$width" border="0">\r
+           <col width='12' />\r
+           <col width='18' />\r
+           <col width='100%' />\r
+           <col width='152' />\r
+           <col width='11' />\r
+       \r
+           <tr><td width='12'  ><img src='/images/null.gif' width='12'  height='1' alt='' /></td>\r
+               <td width='18'  ><img src='/images/null.gif' width='18'  height='1' alt='' /></td>\r
+               <td width='100%'><img src='/images/null.gif' width='400' height='1' alt='' /></td>\r
+               <td width='152' ><img src='/images/null.gif' width='152' height='1' alt='' /></td>\r
+               <td width='11'  ><img src='/images/null.gif' width='11'   height='1' alt='' /></td></tr>\r
+           <tr><td colspan='2' ><img src='/images/boxtop1.png' width='30' height='53' alt='' /></td>\r
+               <td style='background: url(/images/boxtop2.png);'>\r
+END\r
+       ;\r
+       if ($caption) { print "<b>$caption</b>\n"; } else { print "&nbsp;"; }\r
+       print <<END\r
+               </td>\r
+               <td colspan='2'><img src='/images/boxtop3.png' width='163' height='53' alt='' /></td></tr>\r
+           <tr><td style='background: url(/images/boxleft.png);'><img src='/images/null.gif' width='12' height='1' alt='' /></td>\r
+               <td colspan='3' style='background-color: $Header::boxcolour;'>\r
+               <table width='100%' cellpadding='5'><tr><td align="$align" valign='top'>\r
+END\r
+       ;\r
+}\r
+\r
+sub closebox\r
+{\r
+       print <<END\r
+               </td></tr></table></td>\r
+                <td style='background: url(/images/boxright.png);'><img src='/images/null.gif' width='11' height='1' alt='' /></td></tr>\r
+            <tr><td style='background: url(/images/boxbottom1.png);background-repeat:no-repeat;'><img src='/images/null.gif' width='12' height='14' alt='' /></td>\r
+                <td style='background: url(/images/boxbottom2.png);background-repeat:repeat-x;' colspan='3'><img src='/images/null.gif' width='1' height='14' alt='' /></td>\r
+                <td style='background: url(/images/boxbottom3.png);background-repeat:no-repeat;'><img src='/images/null.gif' width='11' height='14' alt='' /></td></tr>\r
+        </table>\r
+END\r
+       ;\r
+}\r
+\r
+sub getcgihash {\r
+       my ($hash, $params) = @_;\r
+       my $cgi = CGI->new ();\r
+       return if ($ENV{'REQUEST_METHOD'} ne 'POST');\r
+       if (!$params->{'wantfile'}) {\r
+               $CGI::DISABLE_UPLOADS = 1;\r
+               $CGI::POST_MAX        = 512 * 1024;\r
+       } else {\r
+               $CGI::POST_MAX = 10 * 1024 * 1024;\r
+       }\r
+\r
+       $cgi->referer() =~ m/^https?\:\/\/([^\/]+)/;\r
+       my $referer = $1;\r
+       $cgi->url() =~ m/^https?\:\/\/([^\/]+)/;\r
+       my $servername = $1;\r
+       return if ($referer ne $servername);\r
+\r
+       ### Modified for getting multi-vars, split by |\r
+       my %temp = $cgi->Vars();\r
+        foreach my $key (keys %temp) {\r
+               $hash->{$key} = $temp{$key};\r
+               $hash->{$key} =~ s/\0/|/g;\r
+               $hash->{$key} =~ s/^\s*(.*?)\s*$/$1/;\r
+        }\r
+\r
+       if (($params->{'wantfile'})&&($params->{'filevar'})) {\r
+               $hash->{$params->{'filevar'}} = $cgi->upload\r
+                                               ($params->{'filevar'});\r
+       }\r
+       return;\r
+}\r
+\r
+sub cleanhtml\r
+{\r
+       my $outstring =$_[0];\r
+       $outstring =~ tr/,/ / if not defined $_[1] or $_[1] ne 'y';\r
+       $outstring =~ s/&/&amp;/g;\r
+       $outstring =~ s/\'/&#039;/g;\r
+       $outstring =~ s/\"/&quot;/g;\r
+       $outstring =~ s/</&lt;/g;\r
+       $outstring =~ s/>/&gt;/g;\r
+       return $outstring;\r
+}\r
+\r
+sub connectionstatus\r
+{\r
+    my %pppsettings = ();\r
+    my %netsettings = ();\r
+    my $iface='';\r
+\r
+    $pppsettings{'PROFILENAME'} = 'None';\r
+    &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);\r
+    &General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+\r
+    my $profileused='';\r
+    if ( ! ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) {\r
+       $profileused="- $pppsettings{'PROFILENAME'}";\r
+    }\r
+\r
+    if ( ( $pppsettings{'METHOD'} eq 'DHCP' && $netsettings{'RED_TYPE'} ne 'PPTP') \r
+                                               || $netsettings{'RED_TYPE'} eq 'DHCP' ) {\r
+               if (open(IFACE, "${General::swroot}/red/iface")) {\r
+                       $iface = <IFACE>;\r
+                       close IFACE;\r
+                       chomp ($iface);\r
+                       $iface =~ /([a-zA-Z0-9]*)/; $iface = $1;\r
+               }\r
+    }\r
+\r
+    my ($timestr, $connstate);\r
+    if ($netsettings{'CONFIG_TYPE'} =~ /^(0|1|4|5)$/ &&  $pppsettings{'TYPE'} =~ /^isdn/) {\r
+       # Count ISDN channels\r
+       my ($idmap, $chmap, $drmap, $usage, $flags, $phone);\r
+       my @phonenumbers;\r
+       my $count=0;\r
+\r
+       open (FILE, "/dev/isdninfo");\r
+\r
+       $idmap = <FILE>; chop $idmap;\r
+       $chmap = <FILE>; chop $chmap;\r
+       $drmap = <FILE>; chop $drmap;\r
+       $usage = <FILE>; chop $usage;\r
+       $flags = <FILE>; chop $flags;\r
+       $phone = <FILE>; chop $phone;\r
+\r
+       $phone =~ s/^phone(\s*):(\s*)//;\r
+\r
+       @phonenumbers = split / /, $phone;\r
+\r
+       foreach (@phonenumbers) {\r
+               if ($_ ne '???') {\r
+                       $count++;\r
+               }\r
+       }\r
+       close (FILE);\r
+\r
+       ## Connection status\r
+       my $number;\r
+       if ($count == 0) {\r
+               $number = 'none!';\r
+       } elsif ($count == 1) {\r
+               $number = 'single';\r
+       } else {\r
+               $number = 'dual';\r
+       }\r
+\r
+       if (-e "${General::swroot}/red/active") {\r
+               $timestr = &General::age("${General::swroot}/red/active");\r
+               $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} - $number channel (<span class='ipcop_StatusBigRed'>$timestr</span>) $profileused</span>";\r
+       } else {\r
+               if ($count == 0) {\r
+                       if (-e "${General::swroot}/red/dial-on-demand") {\r
+                               $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'dod waiting'} $profileused</span>";\r
+                       } else {\r
+                               $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'idle'} $profileused</span>";\r
+                       }\r
+               } else {\r
+                       $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connecting'} $profileused</span>";\r
+               }\r
+       }\r
+    } elsif ($netsettings{'RED_TYPE'} eq "STATIC" || $pppsettings {'METHOD'} eq 'STATIC') {\r
+       if (-e "${General::swroot}/red/active") {\r
+               $timestr = &General::age("${General::swroot}/red/active");\r
+               $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} (<span class='ipcop_StatusBigRed'>$timestr</span>) $profileused</span>";\r
+       } else {\r
+               $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'idle'} $profileused</span>";\r
+       }\r
+    } elsif ( ( (-e "${General::swroot}/dhcpc/dhcpcd-$iface.pid") && $netsettings{'RED_TYPE'} ne 'PPTP' ) || \r
+       !system("/bin/ps -ef | /bin/grep -q '[p]ppd'") || !system("/bin/ps -ef | /bin/grep -q '[c]onnectioncheck'")) {\r
+       if (-e "${General::swroot}/red/active") {\r
+               $timestr = &General::age("${General::swroot}/red/active");\r
+               if ($pppsettings{'TYPE'} =~ /^(modem|bewanadsl|conexantpciadsl|eagleusbadsl)$/) {\r
+                       my $speed;\r
+                       if ($pppsettings{'TYPE'} eq 'modem') {\r
+                               open(CONNECTLOG, "/var/log/connect.log");\r
+                               while (<CONNECTLOG>) {\r
+                                       if (/CONNECT/) {\r
+                                               $speed = (split / /)[6];\r
+                                       }\r
+                               }\r
+                               close (CONNECTLOG);\r
+                       } elsif ($pppsettings{'TYPE'} eq 'bewanadsl') {\r
+                               $speed = `/usr/bin/unicorn_status | /bin/grep Rate | /usr/bin/cut -f2 -d ':'`;\r
+                       } elsif ($pppsettings{'TYPE'} eq 'conexantpciadsl') {\r
+                               $speed = `/bin/cat /proc/net/atm/CnxAdsl:* | /bin/grep 'Line Rates' | /bin/sed -e 's+Line Rates:   Receive+Rx+' -e 's+Transmit+Tx+'`;\r
+                       } elsif ($pppsettings{'TYPE'} eq 'eagleusbadsl') {\r
+                               $speed = `/usr/sbin/eaglestat | /bin/grep Rate`;\r
+                       }\r
+                       $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} (<span class='ipcop_StatusBigRed'>$timestr</span>) $profileused (\@$speed)</span>";\r
+               } else {\r
+                       $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} (<span class='ipcop_StatusBigRed'>$timestr</span>) $profileused</span>";\r
+               }\r
+       } else {\r
+               if (-e "${General::swroot}/red/dial-on-demand") {\r
+                   $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'dod waiting'} $profileused</span>";\r
+               } else {\r
+                   $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connecting'} $profileused</span>";\r
+               }\r
+       }\r
+    } else {\r
+       $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'idle'} $profileused</span>";\r
+    }\r
+    return $connstate;\r
+}\r
+\r
+sub speedtouchversion\r
+{\r
+       my $speedtouch;\r
+       if (-f "/proc/bus/usb/devices")\r
+       {\r
+               $speedtouch=`/bin/cat /proc/bus/usb/devices | /bin/grep 'Vendor=06b9 ProdID=4061' | /usr/bin/cut -d ' ' -f6`;\r
+               if ($speedtouch eq '') {\r
+                       $speedtouch= $Lang::tr{'connect the modem'};\r
+               }\r
+       } else {\r
+               $speedtouch='USB '.$Lang::tr{'not running'};\r
+       }\r
+       return $speedtouch\r
+}\r
+\r
+#Sorting of allocated leases\r
+sub CheckSortOrder {\r
+    my %dhcpsettings = ();\r
+    &General::readhash("${General::swroot}/dhcp/settings", \%dhcpsettings);\r
+\r
+    if ($ENV{'QUERY_STRING'} =~ /^IPADDR|^ETHER|^HOSTNAME|^ENDTIME/ ) {\r
+       my $newsort=$ENV{'QUERY_STRING'};\r
+        my $act=$dhcpsettings{'SORT_LEASELIST'};\r
+        #Default sort if unspecified \r
+        $act='IPADDRRev' if !defined ($act); \r
+        #Reverse actual ?\r
+        if ($act =~ $newsort) {\r
+            my $Rev='';\r
+            if ($act !~ 'Rev') {$Rev='Rev'};\r
+            $newsort.=$Rev\r
+        };\r
+\r
+        $dhcpsettings{'SORT_LEASELIST'}=$newsort;\r
+       &General::writehash("${General::swroot}/dhcp/settings", \%dhcpsettings);\r
+    }\r
+}\r
+\r
+sub PrintActualLeases\r
+{\r
+    our %dhcpsettings = ();\r
+    our %entries = ();    \r
+    \r
+    sub leasesort {\r
+       my $qs ='';\r
+       if (rindex ($dhcpsettings{'SORT_LEASELIST'},'Rev') != -1)\r
+       {\r
+           $qs=substr ($dhcpsettings{'SORT_LEASELIST'},0,length($dhcpsettings{'SORT_LEASELIST'})-3);\r
+           if ($qs eq 'IPADDR') {\r
+               my @a = split(/\./,$entries{$a}->{$qs});\r
+               my @b = split(/\./,$entries{$b}->{$qs});\r
+               ($b[0]<=>$a[0]) ||\r
+               ($b[1]<=>$a[1]) ||\r
+               ($b[2]<=>$a[2]) ||\r
+               ($b[3]<=>$a[3]);\r
+           }else {\r
+               $entries{$b}->{$qs} cmp $entries{$a}->{$qs};\r
+           }\r
+        }\r
+        else #not reverse\r
+        {\r
+           $qs=$dhcpsettings{'SORT_LEASELIST'};\r
+           if ($qs eq 'IPADDR') {\r
+               my @a = split(/\./,$entries{$a}->{$qs});\r
+               my @b = split(/\./,$entries{$b}->{$qs});\r
+               ($a[0]<=>$b[0]) ||\r
+               ($a[1]<=>$b[1]) ||\r
+               ($a[2]<=>$b[2]) ||\r
+               ($a[3]<=>$b[3]);\r
+           }else {\r
+               $entries{$a}->{$qs} cmp $entries{$b}->{$qs};\r
+           }\r
+       }\r
+    }\r
+\r
+    &Header::openbox('100%', 'left', $Lang::tr{'current dynamic leases'});\r
+    print <<END\r
+<table width='100%'>\r
+<tr>\r
+<td width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IPADDR'><b>$Lang::tr{'ip address'}</b></a></td>\r
+<td width='25%' align='center'><a href='$ENV{'SCRIPT_NAME'}?ETHER'><b>$Lang::tr{'mac address'}</b></a></td>\r
+<td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?HOSTNAME'><b>$Lang::tr{'hostname'}</b></a></td>\r
+<td width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?ENDTIME'><b>$Lang::tr{'lease expires'} (local time d/m/y)</b></a></td>\r
+</tr>\r
+END\r
+    ;\r
+\r
+    my ($ip, $endtime, $ether, $hostname, @record, $record);\r
+    open(LEASES,"/var/state/dhcp/dhcpd.leases") or die "Can't open dhcpd.leases";\r
+    while (my $line = <LEASES>) {\r
+       next if( $line =~ /^\s*#/ );\r
+       chomp($line);\r
+       my @temp = split (' ', $line);\r
+\r
+       if ($line =~ /^\s*lease/) {\r
+           $ip = $temp[1];\r
+           #All field are not necessarily read. Clear everything\r
+           $endtime = 0;\r
+           $ether = "";\r
+           $hostname = "";\r
+       } elsif ($line =~ /^\s*ends never;/) {\r
+           $endtime = 'never';\r
+       } elsif ($line =~ /^\s*ends/) {\r
+           $line =~ /(\d+)\/(\d+)\/(\d+) (\d+):(\d+):(\d+)/;\r
+           $endtime = timegm($6, $5, $4, $3, $2 - 1, $1 - 1900);\r
+       } elsif ($line =~ /^\s*hardware ethernet/) {\r
+           $ether = $temp[2];\r
+           $ether =~ s/;//g;\r
+       } elsif ($line =~ /^\s*client-hostname/) {\r
+           shift (@temp);\r
+           $hostname = join (' ',@temp);\r
+           $hostname =~ s/;//g;\r
+           $hostname =~ s/\"//g;\r
+       } elsif ($line eq "}") {\r
+           @record = ('IPADDR',$ip,'ENDTIME',$endtime,'ETHER',$ether,'HOSTNAME',$hostname);\r
+           $record = {};                                       # create a reference to empty hash\r
+           %{$record} = @record;                               # populate that hash with @record\r
+           $entries{$record->{'IPADDR'}} = $record;    # add this to a hash of hashes\r
+       } #unknown format line...\r
+    }\r
+    close(LEASES);\r
+\r
+    #Get sort method\r
+    $dhcpsettings{'SORT_LEASELIST'}='IPADDR';                                  #default\r
+    &General::readhash("${General::swroot}/dhcp/settings", \%dhcpsettings);    #or maybe saved !\r
+    my $id = 0;\r
+    foreach my $key (sort leasesort keys %entries) {\r
+\r
+       my $hostname = &Header::cleanhtml($entries{$key}->{HOSTNAME},"y");\r
+\r
+       if ($id % 2) {\r
+           print "<tr bgcolor='$Header::table1colour'>";\r
+       }\r
+       else {\r
+           print "<tr bgcolor='$Header::table2colour'>";\r
+       }\r
+\r
+       print <<END\r
+<td align='center'>$entries{$key}->{IPADDR}</td>\r
+<td align='center'>$entries{$key}->{ETHER}</td>\r
+<td align='center'>&nbsp;$hostname </td>\r
+<td align='center'>\r
+END\r
+       ;\r
+\r
+       if ($entries{$key}->{ENDTIME} eq 'never') {\r
+           print "$Lang::tr{'no time limit'}";\r
+       } else {\r
+           my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst);\r
+           ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst) = localtime ($entries{$key}->{ENDTIME});\r
+           my $enddate = sprintf ("%02d/%02d/%d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec);\r
+\r
+           if ($entries{$key}->{ENDTIME} < time() ){\r
+               print "<strike>$enddate</strike>";\r
+           } else {\r
+               print "$enddate";\r
+           }\r
+       }\r
+       print "</td></tr>";\r
+       $id++;\r
+    }\r
+\r
+    print "</table>";\r
+    &Header::closebox();\r
+}\r
+\r
+1;\r
diff --git a/config/cfgroot/icmptypes b/config/cfgroot/icmptypes
new file mode 100644 (file)
index 0000000..935324f
--- /dev/null
@@ -0,0 +1,61 @@
+# ICMP Data File
+#
+# This file is part of the IPCop Firewall.
+#
+# IPCop 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.
+#
+# IPCop 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 IPCop; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# (c) The IPCop Team
+#
+# $Id: icmptypes,v 1.2 2003/12/11 11:15:33 riddles Exp $
+#
+# Valid ICMP types obtained through the following command
+#      iptables -p icmp -h
+#
+echo-reply (pong)
+destination-unreachable
+network-unreachable
+host-unreachable
+protocol-unreachable
+port-unreachable
+fragmentation-needed
+source-route-failed
+network-unknown
+host-unknown
+network-prohibited
+host-prohibited
+TOS-network-unreachable
+TOS-host-unreachable
+communication-prohibited
+host-precedence-violation
+precedence-cutoff
+source-quench
+redirect
+network-redirect
+host-redirect
+TOS-network-redirect
+TOS-host-redirect
+echo-request (ping)
+router-advertisement
+router-solicitation
+time-exceeded (ttl-exceeded)
+ttl-zero-during-transit
+ttl-zero-during-reassembly
+parameter-problem
+ip-header-bad
+required-option-missing
+timestamp-request
+timestamp-reply
+address-mask-request
+address-mask-reply
diff --git a/config/cfgroot/ipcop.gpg b/config/cfgroot/ipcop.gpg
new file mode 100644 (file)
index 0000000..c3e93dd
--- /dev/null
@@ -0,0 +1,18 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.0.7 (GNU/Linux)
+
+mQGiBD99FiIRBADCqlOQU6VhBMHHpX9RRHF+yfAeMVtqlKryiPh/CaBwxMjZwfcD
+1vKOZo0/PLsNyOO6EBTvPrAKQXKlkpl+qR2e72QhUySurVP4Ia8mvCGxIY20H73U
+2X1Tu3iKs/QErtb85l3f10XVkNtdkFjJlilF1Tpen4ZWTG4Xph2Hw8pLJwCgtj1F
++Qw2oHtvgqMp3e6gtpPDNJUEAKuEQVqruNO1xoFDwvskOImBH2bLIPD+5Gw9JjGD
+z/AI9h+BqNwmKrKqRH5m2QZVCPXBhA3zeCMYyMUr81jgSIbAxYz5uNKmJ+YjJ5n2
+ykKX5v5OeyjC6sfH19hV3R/dTDymLeR/Wv4gH7/RcbileqbJMkzVpKZe3PY8sb3y
+u8GbBACDj6bbgFJ5egNDtovU1UiMXyz9sX+/ZiyZeXsn5aH4Z/aBuucxKorPNUiz
+NoHqMrfvi9EfObAY5YLzZPG47XRKIOh0Ss/qFpOXMI7y7+5sM9D74u7sUUpNSEAf
+xY5GvTs0vAccNaqZ1dlhhzLpDuhAF9SWlWXaqfiKfP/tkOjk77RTSVBDb3AgRGV2
+ZWxvcG1lbnQgR3JvdXAgKGh0dHA6Ly93d3cuaXBjb3Aub3JnLykgPGlwY29wLWRl
+dmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD6IWQQTEQIAGQUCP30WIgQLBwMCAxUC
+AwMWAgECHgECF4AACgkQWpntmEo7/Z6dAwCgqXmL3xxiA4J/AIvZDYy9Qx4V34kA
+mgOLo6OaYw5vAlF5z6T3gNCpiAK7
+=/LRw
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/config/cfgroot/lang.pl b/config/cfgroot/lang.pl
new file mode 100644 (file)
index 0000000..8d2be61
--- /dev/null
@@ -0,0 +1,160 @@
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+# Copyright (c) 2002/08/23 Mark Wormgoor <mark@wormgoor.com> Split from header.pl\r
+#\r
+# $Id: lang.pl,v 1.1.2.11 2005/09/10 16:22:50 eoberlander Exp $\r
+#\r
+\r
+package Lang;\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+use strict;\r
+\r
+### A cache file to avoid long recalculation\r
+$Lang::CacheLang = '/var/run/cache-lang.pl';\r
+\r
+# When you want to add your own language strings/entries to the ipcop language file,\r
+# you should create a file with <PREFIX>.<LANG>.pl into CONFIG_ROOT/addon-lang dir\r
+#      <PREFIX> is free choosable but should be significant. An Example might be "myAddnName"\r
+#      <LANG> is a mnemonic of the used language like en, de, it, nl etc.\r
+#              You can find a detailed list of possible mnemonic's in the file CONFIG_ROOT/langs/list\r
+# A file could be named "VirtualHttpd.en.pl" for example.\r
+#\r
+# The file content has to start with (of course without the leading #):\r
+# --------- CODE ---------\r
+#%tr = (%tr,\r
+# 'key1' => 'value',                           # add all your entries key/values here \r
+# 'key2' => 'value'                            # and end with (of course without the leading #):\r
+#);\r
+# --------- CODE END---------\r
+#\r
+# After you have copied all your files to CONFIG_ROOT/add-lang you have to run the\r
+# script compilation:\r
+# perl -e "require '/CONFIG_ROOT/lang.pl'; &Lang::BuildCacheLang"\r
+\r
+\r
+### Initialize language\r
+%Lang::tr = ();\r
+my %settings = ();\r
+&General::readhash("${General::swroot}/main/settings", \%settings);\r
+reload($settings{'LANGUAGE'});\r
+\r
+# language variable used by makegraphs script\r
+our $language;\r
+$language = $settings{'LANGUAGE'};\r
+\r
+#\r
+# Load requested language file from cachefile. If cachefile doesn't exist, build on the fly.\r
+# (it is a developper options)\r
+#\r
+sub reload {\r
+\r
+    my ($LG) = @_;\r
+    %Lang::tr = ();    # start with a clean array\r
+\r
+    # Use CacheLang if present & not empty.\r
+    if (-s "$Lang::CacheLang.$LG" ) {\r
+       ##fix: need to put a lock_shared on it in case rebuild is active ?\r
+       do "$Lang::CacheLang.$LG";\r
+        #&General::log ("cachelang file used [$LG]");  \r
+       return;\r
+    }\r
+    \r
+    #&General::log("Building on the fly cachelang file for [$LG]");\r
+    do "${General::swroot}/langs/en.pl";\r
+    do "${General::swroot}/langs/$LG.pl" if ($LG ne 'en');\r
+\r
+    my $AddonDir = ${General::swroot}.'/addon-lang';\r
+\r
+    opendir (DIR, $AddonDir);\r
+    my @files = readdir (DIR);\r
+    closedir (DIR);\r
+\r
+    # default is to load english first\r
+    foreach my $file ( grep (/.*\.en.pl$/,@files)) {\r
+       do "$AddonDir/$file";\r
+    }\r
+\r
+    # read again, overwriting 'en' with choosed lang\r
+    if ($LG ne 'en') {\r
+       foreach my $file (grep (/.*\.$LG\.pl$/,@files) ) {\r
+           do "$AddonDir/$file";\r
+       }\r
+    }\r
+}\r
+\r
+#\r
+# Assume this procedure is called with enough privileges.\r
+# Merge ipcop langage file + all other extension found in addon-lang\r
+# to build a 'cachefile' for selected language\r
+#\r
+sub BuildUniqueCacheLang {\r
+\r
+    my ($LG) = @_;\r
+    \r
+    # Make CacheLang empty so that it won't be used by Lang::reload\r
+    open (FILE, ">$Lang::CacheLang.$LG") or return 1;\r
+    flock (FILE, 2) or return 1;\r
+    close (FILE);\r
+\r
+    # Load languages files\r
+    &Lang::reload ($LG);\r
+    \r
+    # Write the unique %tr=('key'=>'value') array\r
+    open (FILE, ">$Lang::CacheLang.$LG") or return 1;\r
+    flock (FILE, 2) or return 1;\r
+    print FILE '%tr=(';\r
+    foreach my $k ( keys %Lang::tr ){\r
+       $Lang::tr{$k} =~ s/\'/\\\'/g;                   # quote ' => \'\r
+       print FILE "'$k' => '$Lang::tr{$k}',";          # key => value,\r
+    }\r
+    print FILE ');';\r
+    close (FILE);\r
+    \r
+    # Make nobody:nobody file's owner\r
+    # Will work when called by root/rc.sysinit\r
+    chown (0,0,"$Lang::CacheLang.$LG");\r
+    chmod (0004,"$Lang::CacheLang.$LG");\r
+    return 0;\r
+}\r
+\r
+#\r
+# Switch Ipcop Language for each lang then call build cachelang\r
+#\r
+sub BuildCacheLang {\r
+\r
+    my $AddonDir = ${General::swroot}.'/addon-lang';\r
+    \r
+    # Correct permission in case addon-installer did not do it\r
+    opendir (DIR, $AddonDir);\r
+    my @files = readdir (DIR);\r
+    foreach my $file (@files) {\r
+       next if (($file eq '..') || ($file eq '.'));\r
+       chown (0,0,"$AddonDir/$file");\r
+       chmod (0004,"$AddonDir/$file");\r
+    }\r
+    closedir (DIR);\r
+\r
+    my $selected = '';;\r
+    my $missed = '';\r
+    my $error = 0;\r
+    \r
+    open (LANGS, "${General::swroot}/langs/list");\r
+    while (<LANGS>) {\r
+       ($selected) = split (':');\r
+       if (BuildUniqueCacheLang ($selected) == 1) {\r
+           $missed = $selected; # will try latter. Can only be the current cachelang file locked\r
+       };\r
+    }\r
+    close (LANGS);\r
+\r
+    if ($missed) { # collision with current cache lang being used ?\r
+       $error = &BuildUniqueCacheLang ($missed);\r
+    }\r
+    \r
+    &General::log ("WARNING: cannot build cachelang file for [$missed].") if ($error);\r
+    return $error;\r
+}\r
+1;\r
diff --git a/config/cfgroot/logging-settings b/config/cfgroot/logging-settings
new file mode 100644 (file)
index 0000000..e5ca09e
--- /dev/null
@@ -0,0 +1,5 @@
+LOGVIEW_REVERSE=off
+REMOTELOG_ADDR=
+ENABLE_REMOTELOG=off
+LOGWATCH_LEVEL=Low
+LOGWATCH_KEEP=56
diff --git a/config/cfgroot/modem-defaults b/config/cfgroot/modem-defaults
new file mode 100644 (file)
index 0000000..aa91b09
--- /dev/null
@@ -0,0 +1,8 @@
+VALID=yes
+PULSE_DIAL=ATDP
+HANGUP=ATH0
+INIT=+++ATZ
+SPEAKER_OFF=ATM0
+TIMEOUT=45
+SPEAKER_ON=ATM1
+TONE_DIAL=ATDT
diff --git a/config/cfgroot/modem-settings b/config/cfgroot/modem-settings
new file mode 100644 (file)
index 0000000..aa91b09
--- /dev/null
@@ -0,0 +1,8 @@
+VALID=yes
+PULSE_DIAL=ATDP
+HANGUP=ATH0
+INIT=+++ATZ
+SPEAKER_OFF=ATM0
+TIMEOUT=45
+SPEAKER_ON=ATM1
+TONE_DIAL=ATDT
diff --git a/config/cfgroot/oinkmaster.conf b/config/cfgroot/oinkmaster.conf
new file mode 100644 (file)
index 0000000..e52d89d
--- /dev/null
@@ -0,0 +1,292 @@
+# $Id: oinkmaster.conf,v 1.1.2.2 2005/05/02 17:11:58 franck78 Exp $ #
+
+# Oinkmaster is a tool to update snort rules, which allow to conserve
+# a particular setting even after a rules update.
+# This file is a customised version for IPCop.
+# Disabling/enabling a particular rule should be made in this file.
+# In case you want to use some of the rules files commented out in 
+# standard ipcop /etc/snort/snort.conf :
+# -comment out the corresponding skipfile in this oinkmaster.conf
+# -uncomment the corresponding include in /etc/snort.conf
+# -save snort settings to restart snort
+
+
+################################################
+#    General options you may want to change    #
+################################################
+
+
+
+# The PATH to use during execution. If you prefer to use external 
+# binaries (i.e. use_external_bins=1, see below), tar and gzip must be 
+# found, and also wget if downloading via ftp, http or https. All with 
+# optional .exe suffix. If you're on Cygwin, make sure that the path 
+# contains the Cygwin binaries and not the native Win32 binaries or 
+# you will get problems.
+# Assume UNIX style by default:
+#path = /bin:/usr/bin:/usr/local/bin
+path = /bin
+
+# Files in the archive(s) matching this regular expression will be 
+# checked for changes, and then updated or added if needed.
+# All other files will be ignored. You can then choose to skip
+# individual files by specifying the "skipfile" keyword below.
+# Normally you shouldn't need to change this one.
+update_files = \.rules$|\.config$|\.conf$|\.txt$|\.map$
+
+
+# Regexp of keywords that starts a snort rule.
+# May be useful if you create your own ruletypes and want those
+# lines to be regarded as rules as well.
+# rule_actions = alert|drop|log|pass|reject|sdrop|activate|dynamic
+
+
+#######################################################################
+# Files to totally skip (i.e. never update or check for changes)      #
+#                                                                     #
+# Syntax: skipfile filename                                           #
+# or:     skipfile filename1, filename2, filename3, ...               #
+#######################################################################
+
+# Ignore local.rules from the rules archive by default since we might 
+# have put some local rules in our own local.rules and we don't want it 
+# to get overwritten by the empty one from the archive after each 
+# update.
+skipfile local.rules
+
+# The file deleted.rules contains rules that have been deleted from 
+# other files, so there is usually no point in updating it.
+skipfile deleted.rules
+
+# Also skip snort.conf by default since we don't want to overwrite our 
+# own snort.conf if we have it in the same directory as the rules. If 
+# you have your own production copy of snort.conf in another directory, 
+# it may be really nice to check for changes in this file though, 
+# especially since variables are sometimes added or modified and 
+# new/old files are included/excluded.
+skipfile snort.conf
+
+# You may want to consider ignoring threshold.conf for the same reasons 
+# as for snort.conf, i.e. if you customize it locally and don't want it 
+# to become overwritten by the default one. It may be better to put 
+# local thresholding/suppressing in some local file and still update 
+# and use the official one though, in case important stuff is added to 
+# it some day. We do update it by default, but it's your call.
+# skipfile threshold.conf
+
+# If you update from multiple URLs at the same time you must ignore
+# the sid-msg.map (and generate it yourself if you need one) as it's
+# usually included in each rules tarball. See the FAQ for more info.
+# skipfile sid-msg.map
+skipfile web-attacks.rules
+skipfile backdoor.rules
+skipfile shellcode.rules
+skipfile policy.rules
+skipfile porn.rules
+skipfile info.rules
+skipfile icmp-info.rules
+skipfile virus.rules
+skipfile chat.rules
+skipfile multimedia.rules
+skipfile p2p.rules
+skipfile experimental.rules
+
+
+##########################################################################
+# SIDs to modify after each update (only for the skilled/stupid/brave).  #
+# Don't use it unless you have to. There is nothing that stops you from  #
+# modifying rules in such ways that they become invalid or generally     #
+# break things. You have been warned.                                    #
+# If you just want to disable SIDs, please skip this section and have a  #
+# look at the "disablesid" keyword below.                                #
+#                                                                        #
+# You may specify multiple modifysid directives for the same SID (they   #
+# will be processed in order of appearance), and you may also specify a  #
+# list of SIDs on which the substitution should be applied.              #
+# If the argument is in the form something.something it is regarded      #
+# as a filename and the substitution will apply on all rules in that     #
+# file. The wildcard ("*") can be used to apply the substitution on all  #
+# rules regardless of the SID or file. Please avoid using #comments      #
+# at the end of modifysid lines, they may confuse the parser in some     #
+# situations.                                                            #
+#                                                                        #
+# Syntax:                                                                #
+#   modifysid SID "replacethis" | "withthis"                             #    
+# or:                                                                    #
+#   modifysid SID1, SID2, SID3, ... "replacethis" | "withthis"           #
+# or:                                                                    #
+#   modifysid file "replacethis" | "withthis"                            #    
+# or:                                                                    #
+#   modifysid * "replacethis" | "withthis"                               #
+#                                                                        #
+# The strings within the quotes will simply be passed to a               #
+# s/replacethis/withthis/ statement in Perl, so they must be valid       #
+# regular expressions. The strings are case-sensitive and only the first #
+# occurrence will be replaced. If there are multiple occurrences you     #
+# want to replace, simply repeat the same modifysid line.                #
+#                                                                        #
+# If you specify a modifysid statement for a multi-line rule, Oinkmaster #
+# will first translate the rule into a single-line version and then      #
+# perform the substitution, so you don't have to care about the trailing #
+# backslashes and newlines.                                              #
+#                                                                        #
+# If you use variables in the substitution expression, it is strongly    #
+# recommended to always specify them like ${varname} instead of          #
+# $varname (like ${1} instead of $1 for example) to avoid parsing        #
+# confusion in some situations. Note that modifysid statements           #
+# will process both active and inactive (disabled) rules.                #
+#                                                                        #
+# You may want to check out README.templates and template-examples.conf  #
+# to find how you can simplify the modifysid usage by using templates.   #
+##########################################################################
+
+# Example to enable a rule (in this case SID 1325) that is disabled by
+# default, by simply replacing leading "#alert" with "alert".
+# (You should really use 'enablesid' for this though.)
+# Oinkmaster removes whitespaces next to the leading "#" so you don't
+# have to worry about that, but be careful about possible whitespace in
+# other places when writing the regexps.
+# modifysid 1325 "^#alert" | "alert"
+
+# You could also do this to enable it no matter what type of rule it is 
+# (alert, log, pass, etc).
+# modifysid 1325 "^#" | ""
+
+# Example to add "tag" stuff to SID 1325.
+# modifysid 1325 "sid:1325;" | "sid:1325; tag: host, src, 300, seconds;"
+
+# Example to make SID 1378 a 'drop' rule (valid if you're running 
+# Snort_inline).
+# modifysid 1378 "^alert" | "drop"
+
+# Example to replace first occurrence of $EXTERNAL_NET with $HOME_NET 
+# in SID 302. Remember that the strings are regular expressions, so you 
+# must escape special characters like $.
+# modifysid 302 "\$EXTERNAL_NET" | "\$HOME_NET"
+
+# You can also specify that a substitution should apply on multiple SIDs.
+# modifysid 302,429,1821 "\$EXTERNAL_NET" | "\$HOME_NET"
+
+# You can take advantage of the fact that it's regular expressions and
+# do more complex stuff. This example (for Snort_inline) adds a 'replace'
+# statement to SID 1324 that replaces "/bin/sh" with "/foo/sh".
+# modifysid 1324 "(content\s*:\s*"\/bin\/sh"\s*;)" | \
+#                "${1} replace:"\/foo\/sh";"
+
+# If you for some reason would like to add a comment inside the actual 
+# rules file, like the reason why you disabled this rule, you can do 
+# like this (you would normally add such comments in oinkmaster.conf 
+# though).
+# modifysid 1324 "(.+)" | "# 20020101: disabled this rule just for fun:\n#${1}"
+
+# Here is an example that is actually useful. Let's say you don't care 
+# about incoming welchia pings (detected by SID 483 at the time of 
+# writing) but you want to know when infected hosts on your network 
+# scans hosts on the outside. (Remember that watching for outgoing 
+# malicious packets is often just as important as watching for incoming 
+# ones, especially in this case.) The rule currently looks like
+# "alert icmp $EXTERNAL_NET any -> $HOME_NET any ..."
+# but we want to switch that so it becomes
+# "alert icmp $HOME_NET any -> $EXTERNAL_NET any ...".
+# Here is how it could be done.
+# modifysid 483 \
+# "(.+) \$EXTERNAL_NET (.+) \$HOME_NET (.+)" | \
+# "${1} \$HOME_NET ${2} \$EXTERNAL_NET ${3}"
+
+# The wildcard (modifysid * ...) can be used to do all kinds of 
+# interesting things. The substitution expression will be applied on all 
+# matching rules. First, a silly example to replace "foo" with "bar" in 
+# all rules (that have the string "foo" in them, that is.) 
+# modifysid * "foo" | "bar"
+
+# If you for some reason don't want to use the stream preprocessor to 
+# match established streams, you may want to replace the 'flow' 
+# statement with 'flags:A+;' in all those rules.
+# modifysid * "flow:[a-z,_ ]+;" | "flags:A+;"
+
+# Example to convert all rules of classtype attempted-admin to 'drop' 
+# rules (for Snort_inline only, obviously).
+# modifysid * "^alert (.*classtype\s*:\s*attempted-admin)" | "drop ${1}"
+
+# This one will append some text to the 'msg' string for all rules that 
+# have the 'tag' keyword in them.
+# modifysid * "(.*msg:\s*".+?)"(\s*;.+;\s*tag:.*)" | \
+#             "${1}, going to tag this baby"${2}"
+
+# There may be times when you want to replace multiple occurrences of a 
+# certain keyword/string in a rule and not just the first one. To 
+# replace the first two occurrences of "foo" with "bar" in SID 100, 
+# simply repeat the modifysid statement:
+# modifysid 100 "foo" | "bar"
+# modifysid 100 "foo" | "bar"
+# Or you can even specify a SID list but repeat the same SID as many 
+# times as required, like:
+# modifysid 100,100,100 "foo" | "bar"
+
+# Enable all rules in the file exploit.rules.
+# modifysid exploit.rules "^#" | ""
+
+# Enable all rules in exploit.rules, icmp-info.rules and also SID 1171.
+# modifysid exploit.rules, snmp.rules, 1171 "^#" | ""
+
+
+
+########################################################################
+# SIDs that we don't want to update.                                   #
+# If you for some reason don't want a specific rule to be updated      #
+# (e.g. you made local modifications to it and you never want to       #
+# update it and don't care about changes in the official version), you #
+# can specify a "localsid" statement for it. This means that the old   #
+# version of the rule (i.e. the one in the rules file on your          #
+# harddrive) is always kept, regardless if the official version has    #
+# been updated. Please do not use this feature unless in special       #
+# cases as it's easy to end up with many signatures that aren't        #
+# maintained anymore. See the FAQ for details about this and hints     #
+# about better solutions regarding customization of rules.             #
+#                                                                      #
+# Syntax:  localsid SID                                                #
+# or:      localsid SID1, SID2, SID3, ...                              #
+########################################################################
+
+# Example to never update SID 1325.
+# localsid 1325
+
+
+
+########################################################################
+# SIDs to enable after each update.                                    #
+# Will simply remove all the leading '#' for a specified SID (if it's  #
+# a multi-line rule, the leading '#' for all lines are removed.)       #
+# These will be processed after all the modifysid and disablesid       #
+# statements. Using 'enablesid' on a rule that is not disabled is a    #
+# NOOP.                                                                #
+#                                                                      #
+# Syntax:  enablesid SID                                               #
+# or:      enablesid SID1, SID2, SID3, ...                             #
+########################################################################
+
+# Example to enable SID 1325.
+# enablesid 1325
+
+
+
+########################################################################
+# SIDs to comment out, i.e. disable, after each update by placing a    #
+# '#' in front of the rule (if it's a multi-line rule, it will be put  #
+# in front of all lines).                                              #
+#                                                                      #
+# Syntax:  disablesid SID                                              #
+# or:      disablesid SID1, SID2, SID3, ...                            #
+########################################################################
+
+# You can specify one SID per line.
+# disablesid 1
+# disablesid 2
+# disablesid 3
+
+# And also as comma-separated lists.
+# disablesid 4,5,6
+
+# It's a good idea to also add comment about why you disable the sid:
+# disablesid 1324    # 20020101: disabled this SID just because I can
diff --git a/config/cfgroot/protocols.pl b/config/cfgroot/protocols.pl
new file mode 100644 (file)
index 0000000..d7ed2db
--- /dev/null
@@ -0,0 +1,162 @@
+# Protocols Data File\r
+#\r
+# This file is part of the IPCop Firewall.\r
+#\r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+#\r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+#\r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+#\r
+# (c) The IPCop Team\r
+#\r
+# $Id: protocols.pl,v 1.2.2.1 2005/01/26 12:23:20 riddles Exp $\r
+#\r
+# Generated from /etc/protocols using:\r
+# cat /etc/protocols | grep -ve "^#" | grep -v "^$" | \\r
+#    awk '{ print "\""  $1  "\" => \"" $2 "\","}'\r
+#\r
+# Code supplied by Mark Wormgroor\r
+#\r
+\r
+package Protocols;\r
+\r
+%protocols = (\r
+"ip" => "0",\r
+"icmp" => "1",\r
+"igmp" => "2",\r
+"ggp" => "3",\r
+"ipencap" => "4",\r
+"st" => "5",\r
+"tcp" => "6",\r
+"cbt" => "7",\r
+"egp" => "8",\r
+"igp" => "9",\r
+"bbn-rcc" => "10",\r
+"nvp" => "11",\r
+"pup" => "12",\r
+"argus" => "13",\r
+"emcon" => "14",\r
+"xnet" => "15",\r
+"chaos" => "16",\r
+"udp" => "17",\r
+"mux" => "18",\r
+"dcn" => "19",\r
+"hmp" => "20",\r
+"prm" => "21",\r
+"xns-idp" => "22",\r
+"trunk-1" => "23",\r
+"trunk-2" => "24",\r
+"leaf-1" => "25",\r
+"leaf-2" => "26",\r
+"rdp" => "27",\r
+"irtp" => "28",\r
+"iso-tp4" => "29",\r
+"netblt" => "30",\r
+"mfe-nsp" => "31",\r
+"merit-inp" => "32",\r
+"sep" => "33",\r
+"3pc" => "34",\r
+"idpr" => "35",\r
+"xtp" => "36",\r
+"ddp" => "37",\r
+"idpr-cmtp" => "38",\r
+"tp++" => "39",\r
+"il" => "40",\r
+"ipv6" => "41",\r
+"sdrp" => "42",\r
+"ipv6-route" => "43",\r
+"ipv6-frag" => "44",\r
+"idrp" => "45",\r
+"rsvp" => "46",\r
+"gre" => "47",\r
+"mhrp" => "48",\r
+"bna" => "49",\r
+"ipv6-crypt" => "50",\r
+"ipv6-auth" => "51",\r
+"i-nlsp" => "52",\r
+"swipe" => "53",\r
+"narp" => "54",\r
+"mobile" => "55",\r
+"tlsp" => "56",\r
+"skip" => "57",\r
+"ipv6-icmp" => "58",\r
+"ipv6-nonxt" => "59",\r
+"ipv6-opts" => "60",\r
+"cftp" => "62",\r
+"sat-expak" => "64",\r
+"kryptolan" => "65",\r
+"rvd" => "66",\r
+"ippc" => "67",\r
+"sat-mon" => "69",\r
+"visa" => "70",\r
+"ipcv" => "71",\r
+"cpnx" => "72",\r
+"cphb" => "73",\r
+"wsn" => "74",\r
+"pvp" => "75",\r
+"br-sat-mon" => "76",\r
+"sun-nd" => "77",\r
+"wb-mon" => "78",\r
+"wb-expak" => "79",\r
+"iso-ip" => "80",\r
+"vmtp" => "81",\r
+"secure-vmtp" => "82",\r
+"vines" => "83",\r
+"ttp" => "84",\r
+"nsfnet-igp" => "85",\r
+"dgp" => "86",\r
+"tcf" => "87",\r
+"eigrp" => "88",\r
+"ospf" => "89",\r
+"sprite-rpc" => "90",\r
+"larp" => "91",\r
+"mtp" => "92",\r
+"ax.25" => "93",\r
+"ipip" => "94",\r
+"micp" => "95",\r
+"scc-sp" => "96",\r
+"etherip" => "97",\r
+"encap" => "98",\r
+"gmtp" => "100",\r
+"ifmp" => "101",\r
+"pnni" => "102",\r
+"pim" => "103",\r
+"aris" => "104",\r
+"scps" => "105",\r
+"qnx" => "106",\r
+"a/n" => "107",\r
+"ipcomp" => "108",\r
+"snp" => "109",\r
+"compaq-peer" => "110",\r
+"ipx-in-ip" => "111",\r
+"vrrp" => "112",\r
+"pgm" => "113",\r
+"l2tp" => "115",\r
+"ddx" => "116",\r
+"iatp" => "117",\r
+"stp" => "118",\r
+"srp" => "119",\r
+"uti" => "120",\r
+"smp" => "121",\r
+"sm" => "122",\r
+"ptp" => "123",\r
+"isis" => "124",\r
+"fire" => "125",\r
+"crtp" => "126",\r
+"crdup" => "127",\r
+"sscopmce" => "128",\r
+"iplt" => "129",\r
+"sps" => "130",\r
+"pipe" => "131",\r
+"sctp" => "132",\r
+"fc" => "133",\r
+);\r
diff --git a/config/cfgroot/proxy-acl b/config/cfgroot/proxy-acl
new file mode 100644 (file)
index 0000000..ca1ccdf
--- /dev/null
@@ -0,0 +1,49 @@
+# Do not modify '/var/ipcop/proxy/squid.conf' directly since any changes
+# you make will be overwritten whenever you resave proxy settings using the
+# web interface! Instead, modify the file '/var/ipcop/proxy/acl' and then
+# restart squid using the web interface. Changes made to the 'acl' file
+# will propagate to the 'squid.conf' file at that time.
+# [Scott Tregear, 22 Feb 2005]
+
+# Uncomment the following line to enable logging of User-Agent header:
+#useragent_log      /var/log/squid/user_agent.log
+
+# Uncomment the following line to enable logging of Referer header:
+#referer_log        /var/log/squid/referer.log
+
+acl all src 0.0.0.0/0.0.0.0
+acl localhost src 127.0.0.1/255.255.255.255
+acl SSL_ports port 443 563 
+acl Safe_ports port 80 # http 
+acl Safe_ports port 21 # ftp 
+acl Safe_ports port 443 563 # https, snews 
+acl Safe_ports port 70 # gopher 
+acl Safe_ports port 210 # wais 
+acl Safe_ports port 1025-65535 # unregistered ports 
+acl Safe_ports port 280 # http-mgmt 
+acl Safe_ports port 488 # gss-http 
+acl Safe_ports port 591 # filemaker 
+acl Safe_ports port 777 # multiling http 
+acl Safe_ports port __PROXY_PORT__ # Squid port (for icons) 
+
+acl IPCop_http  port 81
+acl IPCop_https port 445
+acl IPCop_ips  dst __GREEN_IP__ __BLUE_IP__
+acl IPCop_networks src __GREEN_NET__ __BLUE_NET__
+acl CONNECT method CONNECT 
+
+##Access to squid:
+#local machine, no restriction
+http_access allow         localhost
+
+#GUI admin if local machine connects
+http_access allow         IPCop_ips IPCop_networks IPCop_http
+http_access allow CONNECT IPCop_ips IPCop_networks IPCop_https
+
+#Deny not web services
+http_access deny          !Safe_ports
+http_access deny  CONNECT !SSL_ports
+
+#Finally allow IPCop_networks clients
+http_access allow         IPCop_networks
+http_access deny          all
diff --git a/config/cfgroot/time-settings b/config/cfgroot/time-settings
new file mode 100644 (file)
index 0000000..2f74f9c
--- /dev/null
@@ -0,0 +1,7 @@
+NTP_ADDR_2=pool.ntp.org
+UPDATE_PERIOD=daily
+UPDATE_VALUE=1
+UPDATE_METHOD=manually
+ENABLENTP=off
+NTP_ADDR_1=pool.ntp.org
+VALID=yes
diff --git a/config/cfgroot/xtaccess-config b/config/cfgroot/xtaccess-config
new file mode 100644 (file)
index 0000000..74019ef
--- /dev/null
@@ -0,0 +1 @@
+tcp,0.0.0.0/0,113,on,0.0.0.0
diff --git a/config/cron/CVS/Entries b/config/cron/CVS/Entries
new file mode 100644 (file)
index 0000000..66dcc4b
--- /dev/null
@@ -0,0 +1,2 @@
+/crontab/1.9.2.5/Tue Aug 16 05:39:23 2005//TIPCOP_v1_4_0
+D
diff --git a/config/cron/CVS/Repository b/config/cron/CVS/Repository
new file mode 100644 (file)
index 0000000..6569308
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/cron
diff --git a/config/cron/CVS/Root b/config/cron/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/cron/CVS/Tag b/config/cron/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/cron/crontab b/config/cron/crontab
new file mode 100644 (file)
index 0000000..2fe0eb5
--- /dev/null
@@ -0,0 +1,36 @@
+#
+# $Id: crontab,v 1.9.2.5 2005/08/16 05:39:23 gespinasse Exp $
+#
+SHELL=/bin/bash
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+MAILTO=root
+HOME=/
+
+# Log rotation
+01 * * * *     /usr/sbin/logrotate /etc/logrotate.conf
+
+# Backup logs to flashdisk
+01 * * * *     [ -f "/etc/FLASH" ] && /etc/rc.d/rc.flash.down
+
+# Set time
+*/5 * * * *    /usr/local/bin/timecheck > /dev/null 2>&1
+
+# Summarize ip accounting info:
+2 1 * * *      /usr/sbin/ipacsum -r -H `/bin/hostname` -t "the day 2 days ago" >/dev/null
+3 1 * * 0      /usr/sbin/ipacsum -r -H `/bin/hostname` -t "the week 4 weeks ago" >/dev/null
+4 1 1 2 *      /usr/sbin/ipacsum -r -H `/bin/hostname` -t "the year 2 years ago" >/dev/null
+
+# Make some nice graphs
+*/5 * * * *    /usr/local/bin/makegraphs >/dev/null
+
+# Force update the dynamic dns registration once a week
+# Force update even if IP has not changed once a month if 'minimize update' selected in GUI
+# to avoid account declared as dead
+*/5 * * * *    [ -f "/var/ipcop/red/active" ] && /usr/local/bin/setddns.pl
+9 2 * * 0      [ -f "/var/ipcop/red/active" ] && /usr/local/bin/setddns.pl -f
+3 2 1 * *      [ -f "/var/ipcop/red/active" ] && /usr/local/bin/setddns.pl -f -m
+
+# Logwatch
+01 0 * * *     /usr/local/bin/logwatch > /var/log/logwatch/`date -I -d yesterday`; \
+               LOGWATCH_KEEP=$(sed -ne 's/^LOGWATCH_KEEP=\([0-9]\+\)$/\1/p' /var/ipcop/logging/settings); \
+               find /var/log/logwatch/ -ctime +${LOGWATCH_KEEP=56} -exec rm -f '{}' ';'
diff --git a/config/etc/CVS/Entries b/config/etc/CVS/Entries
new file mode 100644 (file)
index 0000000..bbfe741
--- /dev/null
@@ -0,0 +1,18 @@
+/certparams/1.3/Thu Dec 11 11:15:33 2003//TIPCOP_v1_4_0
+/fstab/1.4/Mon Mar  1 17:23:47 2004//TIPCOP_v1_4_0
+/group/1.1.2.1/Sun Jun 20 14:57:21 2004//TIPCOP_v1_4_0
+/host.conf/1.1/Thu Dec 11 11:15:34 2003//TIPCOP_v1_4_0
+/inittab/1.6.2.1/Tue Jan 24 15:25:35 2006//TIPCOP_v1_4_0
+/inputrc/1.1/Thu Dec 11 11:15:34 2003//TIPCOP_v1_4_0
+/ld.so.conf/1.2/Sun Dec 28 19:54:21 2003//TIPCOP_v1_4_0
+/logrotate.conf/1.4.2.4/Sun Oct 16 12:36:14 2005//TIPCOP_v1_4_0
+/mime.types/1.1.1.1/Tue Nov 27 08:09:53 2001//TIPCOP_v1_4_0
+/modules.conf/1.6.2.1/Fri Mar 19 07:34:38 2004//TIPCOP_v1_4_0
+/nsswitch.conf/1.1/Thu Dec 11 11:15:34 2003//TIPCOP_v1_4_0
+/passwd/1.3.2.1/Sun Jun 20 14:57:21 2004//TIPCOP_v1_4_0
+/profile/1.3.2.1/Tue Mar  9 19:19:58 2004//TIPCOP_v1_4_0
+/resolv.conf/1.1.1.1/Tue Nov 27 08:09:52 2001//TIPCOP_v1_4_0
+/securetty/1.1.1.1/Tue Nov 27 08:09:52 2001//TIPCOP_v1_4_0
+/sysctl.conf/1.2.2.1/Mon May 10 08:06:25 2004//TIPCOP_v1_4_0
+/syslog.conf/1.3.2.2/Thu Aug 12 22:48:53 2004//TIPCOP_v1_4_0
+D
diff --git a/config/etc/CVS/Repository b/config/etc/CVS/Repository
new file mode 100644 (file)
index 0000000..8a34a49
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/etc
diff --git a/config/etc/CVS/Root b/config/etc/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/etc/CVS/Tag b/config/etc/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/etc/certparams b/config/etc/certparams
new file mode 100644 (file)
index 0000000..9b25cda
--- /dev/null
@@ -0,0 +1,9 @@
+.
+.
+.
+.
+.
+HOSTNAME
+.
+
+
diff --git a/config/etc/fstab b/config/etc/fstab
new file mode 100644 (file)
index 0000000..ba5a7f3
--- /dev/null
@@ -0,0 +1,8 @@
+#
+# $Id: fstab,v 1.4 2006/02/11 15:42 ms Exp $
+#
+/dev/harddisk1         /boot                   ext3    nodev,nosuid,noatime,data=journal               1 2
+/dev/harddisk2         /var/log                ext3    nodev,nosuid,noatime,data=journal               1 2
+/dev/harddisk4          /                       ext3    noatime                1 1
+none                    /proc                   proc    defaults        0 0
+none                   /dev/pts                devpts  gid=5,mode=620  0 0
diff --git a/config/etc/group b/config/etc/group
new file mode 100644 (file)
index 0000000..65a9136
--- /dev/null
@@ -0,0 +1,30 @@
+root:x:0:root
+bin:x:1:root,bin,daemon
+daemon:x:2:root,bin,daemon
+sys:x:3:root,bin
+tty:x:5:
+disk:x:6:root
+lp:x:7:daemon
+mem:x:8:
+kmem:x:9:
+wheel:x:10:root
+mail:x:12:mail
+uucp:x:14:
+dialout:x:16:
+floppy:x:19:
+tape:x:20:
+utmp:x:22:
+squid:x:23:
+ntp:x:38:
+dip:x:40:
+lock:x:54:
+sshd:x:74:
+pcap:x:77:
+nobody:x:99:
+users:x:100:
+snort:x:101:
+logwatch:x:102:
+dnsmasq:x:103:
+cron:x:104:
+syslogd:x:105:
+klogd:x:106:
diff --git a/config/etc/host.conf b/config/etc/host.conf
new file mode 100644 (file)
index 0000000..5cdde5e
--- /dev/null
@@ -0,0 +1 @@
+order hosts,bind
diff --git a/config/etc/inittab b/config/etc/inittab
new file mode 100644 (file)
index 0000000..dfa8945
--- /dev/null
@@ -0,0 +1,23 @@
+#
+# $Id: inittab,v 1.6.2.1 2006/01/24 15:25:35 franck78 Exp $
+#
+id:3:initdefault:
+
+l0:0:wait:/etc/rc.d/rc.halt halt
+l6:6:wait:/etc/rc.d/rc.halt reboot
+
+si::sysinit:/etc/rc.d/rc.sysinit
+
+# Trap CTRL-ALT-DELETE
+ca::ctrlaltdel:/sbin/shutdown -r now
+
+# Run gettys in standard runlevels
+1:2345:respawn:/sbin/mingetty tty1
+2:2345:respawn:/sbin/mingetty tty2
+3:2345:respawn:/sbin/mingetty tty3
+4:2345:respawn:/sbin/mingetty tty4
+5:2345:respawn:/sbin/mingetty tty5
+6:2345:respawn:/sbin/mingetty tty6
+
+# Going single user mode for maintenance
+xx:S1:respawn:/bin/bash
diff --git a/config/etc/inputrc b/config/etc/inputrc
new file mode 100644 (file)
index 0000000..f286926
--- /dev/null
@@ -0,0 +1,33 @@
+# do not bell on tab-completion
+#set bell-style none
+
+set meta-flag on
+set input-meta on
+set convert-meta off
+set output-meta on
+
+$if mode=emacs
+
+# for linux console and RH/Debian xterm
+"\e[1~": beginning-of-line
+"\e[4~": end-of-line
+"\e[5~": beginning-of-history
+"\e[6~": end-of-history
+"\e[3~": delete-char
+"\e[2~": quoted-insert
+"\e[5C": forward-word
+"\e[5D": backward-word
+"\e\e[C": forward-word
+"\e\e[D": backward-word
+
+# for rxvt
+"\e[8~": end-of-line
+
+# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
+"\eOH": beginning-of-line
+"\eOF": end-of-line
+
+# for freebsd console
+"\e[H": beginning-of-line
+"\e[F": end-of-line
+$endif
diff --git a/config/etc/ld.so.conf b/config/etc/ld.so.conf
new file mode 100644 (file)
index 0000000..7545143
--- /dev/null
@@ -0,0 +1,3 @@
+# Begin /etc/ld.so.conf
+
+# End /etc/ld.so.conf
diff --git a/config/etc/logrotate.conf b/config/etc/logrotate.conf
new file mode 100644 (file)
index 0000000..d420936
--- /dev/null
@@ -0,0 +1,75 @@
+# rotate log files weekly
+weekly
+
+# keep 52 weeks worth of backlogs
+rotate 52
+
+# create new (empty) log files after rotating old ones
+create
+
+# uncomment this if you want your log files compressed
+compress
+
+# wtmp
+/var/log/wtmp {
+    weekly
+    create 0664 root utmp
+    rotate 1
+}
+
+/var/log/httpd/access_log /var/log/httpd/error_log /var/log/httpd/ssl_request_log /var/log/httpd/ssl_engine_log {
+    missingok
+    sharedscripts
+    postrotate
+       /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
+    endscript
+}
+
+/var/log/snort/alert  {
+    weekly
+    copytruncate
+    compress
+    ifempty
+    missingok
+    postrotate
+       /usr/bin/find /var/log/snort -path '/var/log/snort/[0-9]*' -prune -exec /bin/rm -rf {} \;
+       /usr/bin/find /var/log/snort -name 'snort.log.*' -mtime +28 -exec /bin/rm -rf {} \;
+       /usr/local/bin/restartsnort
+    endscript
+}
+
+/var/log/squid/access.log /var/log/squid/user_agent.log /var/log/squid/referer.log {
+    weekly
+    copytruncate
+    ifempty
+    missingok
+}
+
+/var/log/squid/cache.log {
+    weekly
+    rotate 3
+    copytruncate
+    compress
+    missingok
+}
+
+/var/log/squid/store.log {
+    weekly
+    rotate 3
+    copytruncate
+    compress
+    missingok
+    postrotate
+       /bin/chmod -R ugo+rX /var/log/squid
+       /usr/sbin/squid -k rotate
+    endscript
+}
+
+/var/log/messages /var/log/boot.log /var/log/dhcpcd.log {
+    create 664 root syslogd
+    sharedscripts
+    ifempty
+    postrotate
+       /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
+    endscript
+}
diff --git a/config/etc/mime.types b/config/etc/mime.types
new file mode 100644 (file)
index 0000000..bf088b0
--- /dev/null
@@ -0,0 +1,277 @@
+# This is the default mime.types file from the Apache web server distribution
+
+# This file controls what Internet media types are sent to the client for
+# given file extension(s).  Sending the correct media type to the client
+# is important so they know how to handle the content of the file.
+# Extra types can either be added here or by using an AddType directive
+# in your config files. For more information about Internet media types,
+# please read RFC 2045, 2046, 2047, 2048, and 2077.  The Internet media type
+# registry is at <ftp://ftp.iana.org/in-notes/iana/assignments/media-types/>.
+
+# MIME type                    Extension
+application/EDI-Consent
+application/EDI-X12
+application/EDIFACT
+application/activemessage
+application/andrew-inset       ez
+application/applefile
+application/atomicmail
+application/cals-1840
+application/commonground
+application/cybercash
+application/dca-rft
+application/dec-dx
+application/eshop
+application/hyperstudio
+application/iges
+application/mac-binhex40       hqx
+application/mac-compactpro     cpt
+application/macwriteii
+application/marc
+application/mathematica
+application/msword             doc
+application/news-message-id
+application/news-transmission
+application/octet-stream       bin dms lha lzh exe class
+application/oda                        oda
+application/pdf                        pdf
+application/pgp-encrypted
+application/pgp-keys
+application/pgp-signature
+application/pkcs10
+application/pkcs7-mime
+application/pkcs7-signature
+application/postscript         ai eps ps
+application/prs.alvestrand.titrax-sheet
+application/prs.cww
+application/prs.nprend
+application/remote-printing
+application/riscos
+application/rtf                        rtf
+application/set-payment
+application/set-payment-initiation
+application/set-registration
+application/set-registration-initiation
+application/sgml
+application/sgml-open-catalog
+application/slate
+application/smil               smi smil
+application/vemmi
+application/vnd.3M.Post-it-Notes
+application/vnd.FloGraphIt
+application/vnd.acucobol
+application/vnd.anser-web-certificate-issue-initiation
+application/vnd.anser-web-funds-transfer-initiation
+application/vnd.audiograph
+application/vnd.businessobjects
+application/vnd.claymore
+application/vnd.comsocaller
+application/vnd.dna
+application/vnd.dxr
+application/vnd.ecdis-update
+application/vnd.ecowin.chart
+application/vnd.ecowin.filerequest
+application/vnd.ecowin.fileupdate
+application/vnd.ecowin.series
+application/vnd.ecowin.seriesrequest
+application/vnd.ecowin.seriesupdate
+application/vnd.enliven
+application/vnd.epson.salt
+application/vnd.fdf
+application/vnd.ffsns
+application/vnd.framemaker
+application/vnd.fujitsu.oasys
+application/vnd.fujitsu.oasys2
+application/vnd.fujitsu.oasys3
+application/vnd.fujitsu.oasysgp
+application/vnd.fujitsu.oasysprs
+application/vnd.fujixerox.docuworks
+application/vnd.hp-HPGL
+application/vnd.hp-PCL
+application/vnd.hp-PCLXL
+application/vnd.hp-hps
+application/vnd.ibm.MiniPay
+application/vnd.ibm.modcap
+application/vnd.intercon.formnet
+application/vnd.intertrust.digibox
+application/vnd.intertrust.nncp
+application/vnd.is-xpr
+application/vnd.japannet-directory-service
+application/vnd.japannet-jpnstore-wakeup
+application/vnd.japannet-payment-wakeup
+application/vnd.japannet-registration
+application/vnd.japannet-registration-wakeup
+application/vnd.japannet-setstore-wakeup
+application/vnd.japannet-verification
+application/vnd.japannet-verification-wakeup
+application/vnd.koan
+application/vnd.lotus-1-2-3
+application/vnd.lotus-approach
+application/vnd.lotus-freelance
+application/vnd.lotus-organizer
+application/vnd.lotus-screencam
+application/vnd.lotus-wordpro
+application/vnd.meridian-slingshot
+application/vnd.mif            mif
+application/vnd.minisoft-hp3000-save
+application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.ms-artgalry
+application/vnd.ms-asf
+application/vnd.ms-excel
+application/vnd.ms-powerpoint  ppt
+application/vnd.ms-project
+application/vnd.ms-tnef
+application/vnd.ms-works
+application/vnd.music-niff
+application/vnd.musician
+application/vnd.netfpx
+application/vnd.noblenet-directory
+application/vnd.noblenet-sealer
+application/vnd.noblenet-web
+application/vnd.novadigm.EDM
+application/vnd.novadigm.EDX
+application/vnd.novadigm.EXT
+application/vnd.osa.netdeploy
+application/vnd.powerbuilder6
+application/vnd.powerbuilder6-s
+application/vnd.rapid
+application/vnd.seemail
+application/vnd.shana.informed.formtemplate
+application/vnd.shana.informed.interchange
+application/vnd.shana.informed.package
+application/vnd.street-stream
+application/vnd.svd
+application/vnd.swiftview-ics
+application/vnd.truedoc
+application/vnd.visio
+application/vnd.webturbo
+application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf
+application/vnd.xara
+application/vnd.yellowriver-custom-menu
+application/wita
+application/wordperfect5.1
+application/x-bcpio            bcpio
+application/x-bzip2            bz2
+application/x-cdlink           vcd
+application/x-chess-pgn                pgn
+application/x-compress
+application/x-cpio             cpio
+application/x-csh              csh
+application/x-director         dcr dir dxr
+application/x-dvi              dvi
+application/x-futuresplash     spl
+application/x-gtar             gtar
+application/x-gzip             gz tgz
+application/x-hdf              hdf
+application/x-javascript       js
+application/x-koan             skp skd skt skm
+application/x-latex            latex
+application/x-netcdf           nc cdf
+# The standard is that rpm is audio/x-pn-realaudio-plugin... oh well...
+application/x-rpm              rpm
+application/x-sh               sh
+application/x-shar             shar
+application/x-shockwave-flash  swf
+application/x-stuffit          sit
+application/x-sv4cpio          sv4cpio
+application/x-sv4crc           sv4crc
+application/x-tar              tar
+application/x-tcl              tcl
+application/x-tex              tex
+application/x-texinfo          texinfo texi
+application/x-troff            t tr roff
+application/x-troff-man                man
+application/x-troff-me         me
+application/x-troff-ms         ms
+application/x-ustar            ustar
+application/x-wais-source      src
+application/x400-bp
+application/xml
+application/zip                        zip
+audio/32kadpcm
+audio/basic                    au snd
+audio/midi                     mid midi kar
+audio/mpeg                     mpga mp2 mp3
+audio/vnd.qcelp
+audio/x-aiff                   aif aiff aifc
+audio/x-pn-realaudio           ram rm
+audio/x-realaudio              ra
+audio/x-wav                    wav
+chemical/x-pdb                 pdb xyz
+image/cgm
+image/g3fax
+image/gif                      gif
+image/ief                      ief
+image/jpeg                     jpeg jpg jpe
+image/naplps
+image/png                      png
+image/prs.btif
+image/tiff                     tiff tif
+image/vnd.dwg
+image/vnd.dxf
+image/vnd.fpx
+image/vnd.net-fpx
+image/vnd.svf
+image/vnd.xiff
+image/x-cmu-raster             ras
+image/x-portable-anymap                pnm
+image/x-portable-bitmap                pbm
+image/x-portable-graymap       pgm
+image/x-portable-pixmap                ppm
+image/x-rgb                    rgb
+image/x-xbitmap                        xbm
+image/x-xpixmap                        xpm
+image/x-xwindowdump            xwd
+message/delivery-status
+message/disposition-notification
+message/external-body
+message/http
+message/news
+message/partial
+message/rfc822
+model/iges                     igs iges
+model/mesh                     msh mesh silo
+model/vnd.dwf
+model/vrml                     wrl vrml
+multipart/alternative
+multipart/appledouble
+multipart/byteranges
+multipart/digest
+multipart/encrypted
+multipart/form-data
+multipart/header-set
+multipart/mixed
+multipart/parallel
+multipart/related
+multipart/report
+multipart/signed
+multipart/voice-message
+text/css                       css
+text/directory
+text/enriched
+text/plain                     asc txt
+text/prs.lines.tag
+text/rfc822-headers
+text/richtext                  rtx
+text/rtf                       rtf
+text/sgml                      sgml sgm
+text/tab-separated-values      tsv
+text/uri-list
+text/vnd.abc
+text/vnd.flatland.3dml
+text/vnd.fmi.flexstor
+text/vnd.in3d.3dml
+text/vnd.in3d.spot
+text/vnd.latex-z
+text/x-setext                  etx
+text/xml                       xml
+video/mpeg                     mpeg mpg mpe
+video/quicktime                        qt mov
+video/vnd.motorola.video
+video/vnd.motorola.videop
+video/vnd.vivo
+video/x-msvideo                        avi
+video/x-sgi-movie              movie
+x-conference/x-cooltalk                ice
+text/html                      html htm
diff --git a/config/etc/modules.conf b/config/etc/modules.conf
new file mode 100644 (file)
index 0000000..ebf07eb
--- /dev/null
@@ -0,0 +1,24 @@
+# USB HID Settings
+above hid keybdev
+
+# ISDN Settings
+alias char-major-43    hisax
+alias char-major-44    hisax
+alias char-major-45    hisax
+alias ippp0            off
+alias ippp1            off
+
+# PPP Settings
+alias char-major-108   ppp_generic
+alias /dev/ppp         ppp_generic
+alias tty-ldisc-3      ppp_async
+alias tty-ldisc-13     n_hdlc
+alias tty-ldisc-14     ppp_synctty
+alias ppp-compress-21  bsd_comp
+alias ppp-compress-24  ppp_deflate
+alias ppp-compress-26  ppp_deflate
+alias net-pf-8         atm
+alias net-pf-24                pppoe
+alias char-major-144   pppox
+alias char-major-166   acm
+
diff --git a/config/etc/nsswitch.conf b/config/etc/nsswitch.conf
new file mode 100644 (file)
index 0000000..7d86691
--- /dev/null
@@ -0,0 +1,19 @@
+# Begin /etc/nsswitch.conf
+
+passwd: files
+group: files
+shadow: files
+
+publickey: files
+
+hosts: files dns
+networks: files
+
+protocols: db files
+services: db files
+ethers: db files
+rpc: db files
+
+netgroup: db files
+
+# End /etc/nsswitch.conf
diff --git a/config/etc/passwd b/config/etc/passwd
new file mode 100644 (file)
index 0000000..b570f33
--- /dev/null
@@ -0,0 +1,14 @@
+root:x:0:0:root:/root:/bin/bash
+bin:x:1:1:bin:/bin:/bin/false
+daemon:x:2:2:daemon:/sbin:/bin/false
+mail:x:8:12:mail:/var/spool/mail:/bin/false
+squid:x:23:23:ftp:/var/spool/squid:/bin/false
+ntp:x:38:38::/etc/ntp:/bin/false
+sshd:x:74:74:sshd:/var/empty:/bin/false
+nobody:x:99:99:Nobody:/home/nobody:/bin/false
+snort:x:100:101:ftp:/var/log/snort:/bin/false
+logwatch:x:102:102::/var/log/logwatch:/bin/false
+dnsmasq:x:103:103::/:/bin/false
+cron:x:104:104::/:/bin/false
+syslogd:x:105:105:/var/empty:/bin/false
+klogd:x:106:106:/var/empty:/bin/false
diff --git a/config/etc/profile b/config/etc/profile
new file mode 100644 (file)
index 0000000..0066845
--- /dev/null
@@ -0,0 +1,47 @@
+# /etc/bashrc
+
+umask 022
+unset i
+
+# are we an interactive shell?
+if [ "$PS1" ]; then
+    if [ -x /usr/bin/tput ]; then
+      if [ "x`tput kbs`" != "x" ]; then # We can't do this with "dumb" terminal
+        stty erase `tput kbs`
+      elif [ -x /usr/bin/wc ]; then
+        if [ "`tput kbs|wc -c `" -gt 0 ]; then # We can't do this with "dumb" terminal
+          stty erase `tput kbs`
+        fi
+      fi
+    fi
+fi
+
+# Path manipulation
+PATH="/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin"
+
+# No core files by default
+ulimit -S -c 0 > /dev/null 2>&1
+
+USER=`id -un`
+LOGNAME=$USER
+
+HOSTNAME=`/bin/hostname`
+HISTSIZE=250
+
+if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
+    INPUTRC=/etc/inputrc
+fi
+
+export PATH USER LOGNAME HOSTNAME HISTSIZE INPUTRC 
+
+# LS Colors
+alias dir='ls'
+alias ll='ls -l --color=tty'
+alias ls='ls --color=tty'
+
+# IPCop language settings
+LANG=en_US.utf8
+PS1='\[\033[1;33m\]\u\[\033[1;37m\]@\[\033[1;32m\]\h\[\033[1;37m\]:\[\033[1;31m\]\w \[\033[1;36m\]\$ \[\033[0m\]'
+echo -n -e '\033%G'
+
+export LANG PS1
diff --git a/config/etc/resolv.conf b/config/etc/resolv.conf
new file mode 100644 (file)
index 0000000..bbc8559
--- /dev/null
@@ -0,0 +1 @@
+nameserver 127.0.0.1
diff --git a/config/etc/securetty b/config/etc/securetty
new file mode 100644 (file)
index 0000000..f176d04
--- /dev/null
@@ -0,0 +1,22 @@
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+ttyp0
+ttyp1
+ttyp2
+ttyp3
+ttyp4
+ttyp5
+ttyp6
+ttyp7
+ttyp8
+ttyp9
+ttypa
+ttypb
+ttypc
+ttypd
+ttype
+ttypf
diff --git a/config/etc/sysctl.conf b/config/etc/sysctl.conf
new file mode 100644 (file)
index 0000000..bcf90e8
--- /dev/null
@@ -0,0 +1,24 @@
+net.ipv4.ip_forward = 1
+net.ipv4.ip_dynaddr = 1
+net.ipv4.icmp_echo_ignore_broadcasts = 1
+net.ipv4.icmp_ignore_bogus_error_responses = 1
+
+net.ipv4.tcp_sack = 0
+net.ipv4.tcp_timestamps = 0
+net.ipv4.tcp_syncookies = 1
+net.ipv4.tcp_fin_timeout = 30
+net.ipv4.tcp_window_scaling = 0
+net.ipv4.tcp_syn_retries = 3
+net.ipv4.tcp_synack_retries = 3
+
+net.ipv4.conf.default.rp_filter = 0
+net.ipv4.conf.default.accept_redirects = 0
+net.ipv4.conf.default.accept_source_route = 0
+net.ipv4.conf.default.log_martians = 1
+
+net.ipv4.conf.all.rp_filter = 0
+net.ipv4.conf.all.accept_redirects = 0
+net.ipv4.conf.all.accept_source_route = 0
+net.ipv4.conf.all.log_martians = 1
+
+kernel.printk = 1 4 1 7
diff --git a/config/etc/syslog.conf b/config/etc/syslog.conf
new file mode 100644 (file)
index 0000000..6ff6506
--- /dev/null
@@ -0,0 +1,20 @@
+# Log all kernel messages to the console.
+# Logging much else clutters up the screen.
+#kern.*                                                        /dev/console
+
+# Log anything (except mail) of level info or higher.
+# Don't log private authentication messages!
+# local0.* any dhcpcd log (even debug) in messages
+daemon.*;local0.*;local2.*;*.info;mail.none;authpriv.*;cron.*  /var/log/messages
+
+# Everybody gets emergency messages
+*.emerg                                                        *
+
+# Save boot messages also to boot.log
+local7.*                                               /var/log/boot.log
+
+# Display logs on tty12
+*.*                                                    /dev/tty12
+
+# Optionally log to a remote host
+#*.*                                                   @hostname.domain
diff --git a/config/grub/CVS/Entries b/config/grub/CVS/Entries
new file mode 100644 (file)
index 0000000..2973b9a
--- /dev/null
@@ -0,0 +1,4 @@
+/grub.conf/1.5.2.5/Fri Aug 27 09:59:56 2004//TIPCOP_v1_4_0
+/ipcop.xpm.gz/1.4/Fri Feb  6 20:58:18 2004//TIPCOP_v1_4_0
+/scsigrub.conf/1.5.2.5/Fri Aug 27 09:59:56 2004//TIPCOP_v1_4_0
+D
diff --git a/config/grub/CVS/Repository b/config/grub/CVS/Repository
new file mode 100644 (file)
index 0000000..84852ce
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/grub
diff --git a/config/grub/CVS/Root b/config/grub/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/grub/CVS/Tag b/config/grub/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/grub/grub.conf b/config/grub/grub.conf
new file mode 100644 (file)
index 0000000..7f2d177
--- /dev/null
@@ -0,0 +1,21 @@
+timeout 5
+default saved
+foreground = 16064e
+background = ffffff
+splashimage (hd0,0)/grub/ipcop.xpm.gz
+title IPFire
+  root (hd0,0)
+  kernel /vmlinuz root=ROOT panic=10 acpi=off ro
+  savedefault
+title IPFire SMP
+  root (hd0,0)
+  kernel /vmlinuz-smp root=ROOT panic=10 acpi=off ro
+  savedefault
+title IPFire (ACPI enabled)
+  root (hd0,0)
+  kernel /vmlinuz root=ROOT panic=10 ro
+  savedefault
+title IPFire SMP (ACPI HT enabled)
+  root (hd0,0)
+  kernel /vmlinuz-smp root=ROOT panic=10 acpi=ht ro
+  savedefault
diff --git a/config/grub/ipcop.xpm.gz b/config/grub/ipcop.xpm.gz
new file mode 100644 (file)
index 0000000..4fab531
Binary files /dev/null and b/config/grub/ipcop.xpm.gz differ
diff --git a/config/grub/scsigrub.conf b/config/grub/scsigrub.conf
new file mode 100644 (file)
index 0000000..d58e781
--- /dev/null
@@ -0,0 +1,25 @@
+timeout 5
+default saved
+foreground = 16064e
+background = ffffff
+splashimage (hd0,0)/grub/ipcop.xpm.gz
+title IPCop
+  root (hd0,0)
+  kernel /vmlinuz root=ROOT panic=10 init=/linuxrc acpi=off rw
+  initrd /ipcoprd.img
+  savedefault
+title IPCop SMP
+  root (hd0,0)
+  kernel /vmlinuz-smp root=ROOT panic=10 init=/linuxrc acpi=off rw
+  initrd /ipcoprd-smp.img
+  savedefault
+title IPCop (ACPI enabled)
+  root (hd0,0)
+  kernel /vmlinuz root=ROOT panic=10 init=/linuxrc rw
+  initrd /ipcoprd.img
+  savedefault
+title IPCop SMP (ACPI HT enabled)
+  root (hd0,0)
+  kernel /vmlinuz-smp root=ROOT panic=10 init=/linuxrc acpi=ht rw
+  initrd /ipcoprd-smp.img
+  savedefault
diff --git a/config/httpd/CVS/Entries b/config/httpd/CVS/Entries
new file mode 100644 (file)
index 0000000..b169d7c
--- /dev/null
@@ -0,0 +1,2 @@
+/httpd.conf/1.15.2.7/Sat Apr 16 11:40:15 2005//TIPCOP_v1_4_0
+D
diff --git a/config/httpd/CVS/Repository b/config/httpd/CVS/Repository
new file mode 100644 (file)
index 0000000..4d16dc6
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/httpd
diff --git a/config/httpd/CVS/Root b/config/httpd/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/httpd/CVS/Tag b/config/httpd/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/httpd/httpd.conf b/config/httpd/httpd.conf
new file mode 100644 (file)
index 0000000..ad54da9
--- /dev/null
@@ -0,0 +1,149 @@
+##
+## httpd.conf -- Apache HTTP server configuration file
+##
+## $Id: httpd.conf,v 1.15.2.7 2005/04/16 11:40:15 rkerr Exp $
+##
+ServerType standalone
+ServerRoot /etc/httpd
+
+LockFile /var/lock/httpd.lock
+PidFile /var/run/httpd.pid
+ScoreBoardFile /var/run/httpd.scoreboard
+Timeout 900
+KeepAlive On
+MaxKeepAliveRequests 100
+KeepAliveTimeout 15
+MinSpareServers 1
+MaxSpareServers 2
+StartServers 2
+MaxClients 10
+MaxRequestsPerChild 100
+Port 81
+Listen 81
+Listen 445
+User nobody
+Group nobody
+ServerAdmin root@localhost
+ServerTokens Prod
+DocumentRoot /home/httpd/html
+# Limit track/trace requests
+RewriteEngine on
+RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
+RewriteRule .* - [F]
+
+<Directory />
+    Options None
+    AllowOverride None
+</Directory>
+<Directory /home/httpd/html>
+    Options ExecCGI
+    AllowOverride None
+    Order allow,deny
+    Allow from all
+</Directory>
+<DirectoryMatch "/home/httpd/html/(graphs|sgraph)">
+    AuthName "Restricted"
+    AuthType Basic
+    AuthUserFile CONFIG_ROOT/auth/users
+    require user admin
+</DirectoryMatch>
+ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
+<Directory /home/httpd/cgi-bin>
+    AllowOverride None
+    Options None
+    AuthName "Restricted"
+    AuthType Basic
+    AuthUserFile CONFIG_ROOT/auth/users
+    Require user admin
+    <Files index.cgi>
+        Satisfy Any
+        Allow from All
+    </Files>
+    <Files credits.cgi>
+        Satisfy Any
+        Allow from All
+    </Files>
+    <Files dial.cgi>
+        Require user admin dial
+    </Files>
+</Directory>
+<IfModule mod_dir.c>
+    DirectoryIndex index.html index.htm index.shtml index.cgi
+</IfModule>
+AccessFileName .htaccess
+<Files ~ "^\.ht">
+    Order allow,deny
+    Deny from all
+</Files>
+<IfModule mod_mime.c>
+    TypesConfig /etc/mime.types
+</IfModule>
+DefaultType text/plain
+
+HostnameLookups Off
+ErrorLog /var/log/httpd/error_log
+LogLevel warn
+LogFormat "%h %l %u %t \"%r\" %>s %b" common
+CustomLog /var/log/httpd/access_log common
+ServerSignature Off
+AddHandler cgi-script .cgi
+<IfModule mod_setenvif.c>
+    BrowserMatch "Mozilla/2" nokeepalive
+    BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+    BrowserMatch "RealPlayer 4\.0" force-response-1.0
+    BrowserMatch "Java/1\.0" force-response-1.0
+    BrowserMatch "JDK/1\.0" force-response-1.0
+</IfModule>
+
+###
+### SSL Configuration
+###
+AddType application/x-x509-ca-cert .crt
+AddType application/x-pkcs7-crl    .crl
+
+SSLPassPhraseDialog  builtin
+SSLSessionCache         dbm:/var/log/httpd/ssl_scache
+SSLSessionCacheTimeout  900
+SSLMutex  file:/var/log/httpd/ssl_mutex
+SSLRandomSeed startup builtin
+SSLRandomSeed connect builtin
+SSLLog      /var/log/httpd/ssl_engine_log
+SSLLogLevel info
+
+<VirtualHost _default_:445>
+    RewriteEngine on
+    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
+    RewriteRule .* - [F]
+    DocumentRoot /home/httpd/html
+    ServerAdmin root@localhost
+    ErrorLog /var/log/httpd/error_log
+    TransferLog /var/log/httpd/access_log
+    SSLEngine on
+    SSLProtocol all -SSLv2
+    SSLCipherSuite ALL:!ADH:!EXPORT56:!eNULL:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP
+    SSLCertificateFile /etc/httpd/server.crt
+    SSLCertificateKeyFile /etc/httpd/server.key
+    <Files ~ "\.(cgi|shtml?)$">
+       SSLOptions +StdEnvVars
+    </Files>
+    <Directory /home/httpd/cgi-bin>
+       SSLOptions +StdEnvVars
+    </Directory>
+    SetEnv HOME /home/nobody
+    SetEnvIf User-Agent ".*MSIE.*" \
+       nokeepalive ssl-unclean-shutdown \
+       downgrade-1.0 force-response-1.0
+    CustomLog /var/log/httpd/ssl_request_log \
+       "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
+</VirtualHost>
+
+<Directory /home/httpd/html/backup>
+    Options None
+    AllowOverride None
+    AuthName "Restricted"
+    AuthType Basic
+    AuthUserFile /var/ipcop/auth/users
+    require user admin
+</Directory>
+
+include /etc/httpd/conf/hostname.conf
diff --git a/config/install/CVS/Entries b/config/install/CVS/Entries
new file mode 100644 (file)
index 0000000..2686203
--- /dev/null
@@ -0,0 +1,11 @@
+/fstab/1.1.1.1/Tue Nov 27 08:09:57 2001//TIPCOP_v1_4_0
+/group/1.1.1.1/Tue Nov 27 08:09:57 2001//TIPCOP_v1_4_0
+/halt/1.2/Fri Dec 12 10:33:30 2003//TIPCOP_v1_4_0
+/hosts/1.2/Fri Dec 12 10:33:30 2003//TIPCOP_v1_4_0
+/inittab/1.3/Fri Dec 12 10:33:30 2003//TIPCOP_v1_4_0
+/nsswitch.conf/1.1.1.1/Tue Nov 27 08:09:57 2001//TIPCOP_v1_4_0
+/passwd/1.1.1.1/Tue Nov 27 08:09:57 2001//TIPCOP_v1_4_0
+/profile/1.2/Fri Dec 12 10:33:30 2003//TIPCOP_v1_4_0
+/rc/1.5.2.1/Tue Sep 14 21:42:47 2004//TIPCOP_v1_4_0
+/shells/1.1.1.1/Tue Nov 27 08:09:57 2001//TIPCOP_v1_4_0
+D
diff --git a/config/install/CVS/Repository b/config/install/CVS/Repository
new file mode 100644 (file)
index 0000000..a262c52
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/install
diff --git a/config/install/CVS/Root b/config/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/install/CVS/Tag b/config/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/install/fstab b/config/install/fstab
new file mode 100644 (file)
index 0000000..7399c0c
--- /dev/null
@@ -0,0 +1,3 @@
+/dev/ram0      /       ext2
+/dev/fd0       /       ext2
+/proc          /proc   proc
diff --git a/config/install/group b/config/install/group
new file mode 100644 (file)
index 0000000..465a9cf
--- /dev/null
@@ -0,0 +1,4 @@
+root:x:0:root
+tty:x:5:
+disk:x:6:
+uucp:x:14:
diff --git a/config/install/halt b/config/install/halt
new file mode 100644 (file)
index 0000000..22a170e
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+echo "Shutting down..."
+echo "Sending all processes the TERM signal..." 
+/sbin/killall5 -15
+sleep 3
+echo "Sending all processes the KILL signal..."
+/sbin/killall5 -9
+sleep 3
+echo "Unmounting /cdrom, /harddisk/boot, /harddisk/var/log and /harddisk"
+/sbin/umount /cdrom
+/sbin/umount /harddisk/boot
+/sbin/umount /harddisk/var/log
+/sbin/umount /harddisk
+echo "Unmounting /proc"
+/sbin/umount /proc/bus/usb
+/sbin/umount /proc
+echo "Unmounting root"
+/sbin/mount -n -o remount,ro /
+/sbin/reboot -i -d -p
diff --git a/config/install/hosts b/config/install/hosts
new file mode 100644 (file)
index 0000000..f4fb350
--- /dev/null
@@ -0,0 +1 @@
+localhost      127.0.0.1
diff --git a/config/install/inittab b/config/install/inittab
new file mode 100644 (file)
index 0000000..5eb074c
--- /dev/null
@@ -0,0 +1,10 @@
+# System initialization.
+::sysinit:/etc/rc
+
+# Run gettys in standard runlevels
+tty1::respawn:/bin/iowrap /dev/tty1 /bin/ash --login -c "/bin/install /dev/tty2"
+tty3::respawn:/bin/iowrap /dev/tty3 /bin/ash --login
+
+# Stuff to do before rebooting
+::ctrlaltdel:/etc/halt
+::shutdown:/etc/halt
diff --git a/config/install/nsswitch.conf b/config/install/nsswitch.conf
new file mode 100644 (file)
index 0000000..da516c6
--- /dev/null
@@ -0,0 +1,15 @@
+passwd:     files 
+shadow:     files 
+group:      files 
+hosts:      files
+services:   files
+networks:   files
+protocols:  files
+rpc:        files
+ethers:     files
+netmasks:   files     
+bootparams: files
+automount:  files 
+aliases:    files
+netgroup:   files
+publickey:  files
diff --git a/config/install/passwd b/config/install/passwd
new file mode 100644 (file)
index 0000000..365a8d7
--- /dev/null
@@ -0,0 +1 @@
+root::0:0:root:/:/bin/ash
diff --git a/config/install/profile b/config/install/profile
new file mode 100644 (file)
index 0000000..7f830af
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/ash
+
+TERM=linux
+LANG=en_US.UTF-8
+export TERM LANG
+
+/bin/unicode_start lat0-16
diff --git a/config/install/rc b/config/install/rc
new file mode 100644 (file)
index 0000000..20dcdff
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/ash
+echo "Mounting proc" 
+mount /proc
+
+echo "Starting syslogd"
+syslogd -L -O /dev/tty2
+
+echo "Silencing kernel"
+echo >/proc/sys/kernel/printk "1 4 1 7"
+
+echo "Disabling screen blanking"
+echo -n -e "\033[9;0]"
diff --git a/config/install/shells b/config/install/shells
new file mode 100644 (file)
index 0000000..006aa38
--- /dev/null
@@ -0,0 +1 @@
+/bin/ash
diff --git a/config/ipac-ng/CVS/Entries b/config/ipac-ng/CVS/Entries
new file mode 100644 (file)
index 0000000..eceffac
--- /dev/null
@@ -0,0 +1,3 @@
+/ipac.conf/1.2.2.1/Wed Jun  9 23:00:11 2004//TIPCOP_v1_4_0
+/rules.conf/1.2.2.1/Wed Jun  9 23:00:11 2004//TIPCOP_v1_4_0
+D
diff --git a/config/ipac-ng/CVS/Repository b/config/ipac-ng/CVS/Repository
new file mode 100644 (file)
index 0000000..d53a6c3
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/ipac-ng
diff --git a/config/ipac-ng/CVS/Root b/config/ipac-ng/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/ipac-ng/CVS/Tag b/config/ipac-ng/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/ipac-ng/ipac.conf b/config/ipac-ng/ipac.conf
new file mode 100644 (file)
index 0000000..b414595
--- /dev/null
@@ -0,0 +1,5 @@
+access agent = files
+account agent = iptables
+storage = gdbm
+rules file = /etc/ipac-ng/rules.conf
+drop zero lines = yes
diff --git a/config/ipac-ng/rules.conf b/config/ipac-ng/rules.conf
new file mode 100644 (file)
index 0000000..e5f8238
--- /dev/null
@@ -0,0 +1,36 @@
+# Example config file with accounting rules
+# Install as /etc/ipac-ng/rules.conf.iptables
+#
+# Format:
+# Name of rule|direction|interface|protocol|source|destination
+# WARNING!!!! spaces are not allowed before and after '|'.
+#
+# where
+# Name of rule         Any string to identify this rule
+# direction            ipac~fi  - forward in
+#                      ipac~fo  - forward out
+#                      ipac~i   - outgoing from machine with ipac-ng to other host(/net)
+#                                      (or incoming to otherhost)
+#                      ipac~o   - incoming to machine with ipac-ng
+#                                      (or outgoing from otherhost)
+#
+# interface            interface name, '+' means all interfaces (dont try to use ip numbers here!)
+# protocol             tcp | udp | icmp | all
+# source               \
+# destination          both as described in ipfwadm(8), or empty
+#
+# incoming:
+
+# lets demonstrate this by following rules.
+# Example 1:
+# there are some hosts in out net 192.168.0.0/24
+# our ipac-ng host has two interfaces - eth0 connected to local net
+#                                  and eth1 to internet
+Incoming GREEN|ipac~i|eth0|all|||
+Outgoing GREEN|ipac~o|eth0|all|||
+
+Incoming RED (PPP)|ipac~i|ppp0|all|||
+Outgoing RED (PPP)|ipac~o|ppp0|all|||
+
+Incoming RED (ISDN PPP)|ipac~i|ippp0|all|||
+Outgoing RED (ISDN PPP)|ipac~o|ippp0|all|||
diff --git a/config/kernel/CVS/Entries b/config/kernel/CVS/Entries
new file mode 100644 (file)
index 0000000..5aa6999
--- /dev/null
@@ -0,0 +1,8 @@
+/aboot.conf/1.1/Thu Feb 19 15:19:54 2004//TIPCOP_v1_4_0
+/install-message/1.3.2.1/Sat Feb  5 21:14:54 2005//TIPCOP_v1_4_0
+/kernel.config.alpha/1.5.2.21/Sat Jan 14 16:35:15 2006//TIPCOP_v1_4_0
+/kernel.config.i386/1.12.2.23/Sat Jan 14 16:35:15 2006//TIPCOP_v1_4_0
+/kernel.config.i386.installer/1.1.2.13/Sat Jan 14 16:35:15 2006//TIPCOP_v1_4_0
+/kernel.config.i386.smp/1.1.2.16/Sat Jan 14 16:35:15 2006//TIPCOP_v1_4_0
+/syslinux.cfg/1.4.2.4/Sat Feb  5 21:14:54 2005//TIPCOP_v1_4_0
+D
diff --git a/config/kernel/CVS/Repository b/config/kernel/CVS/Repository
new file mode 100644 (file)
index 0000000..8cedb3a
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/kernel
diff --git a/config/kernel/CVS/Root b/config/kernel/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/kernel/CVS/Tag b/config/kernel/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/kernel/aboot.conf b/config/kernel/aboot.conf
new file mode 100644 (file)
index 0000000..9235cdb
--- /dev/null
@@ -0,0 +1,4 @@
+0:vmlinuz ide=nodma initrd=instroot.gz root=/dev/ram0 rw
+1:vmlinuz ide=nodma initrd=instroot.gz root=/dev/ram0 rw nopcmcia
+2:vmlinuz ide=nodma initrd=instroot.gz root=/dev/ram0 rw nousb
+3:vmlinuz ide=nodma initrd=instroot.gz root=/dev/ram0 rw nopcmcia nousb
diff --git a/config/kernel/install-message b/config/kernel/install-message
new file mode 100644 (file)
index 0000000..9dd5868
--- /dev/null
@@ -0,0 +1,21 @@
+
+        Welcome to IPFire, Licensed under GNU GPL version 2. 
+
+        PLEASE BEWARE!  This installation process will kill all 
+        existing partitions on your PC or server. Please be aware
+        of this before continuing this installation.  
+
+        --------------------------------------------------
+        ----                                          ----
+        ---- ALL YOUR EXISTING DATA WILL BE DESTROYED ----
+        ----                                          ----
+        --------------------------------------------------
+
+        Press RETURN to boot IPFire default installation.
+
+        Or, if you are having trouble you can try these options....
+        Type:   nopcmcia to disable PCMCIA detection
+                nousb to disable USB detection
+                nousborpcmcia to disable both PCMCIA & USB detection
+                dma to enable ide dma (SiS chipset workaround)
+
diff --git a/config/kernel/kernel.config.alpha b/config/kernel/kernel.config.alpha
new file mode 100644 (file)
index 0000000..1f2bc66
--- /dev/null
@@ -0,0 +1,1373 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_ALPHA=y
+# CONFIG_UID16 is not set
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# General setup
+#
+CONFIG_ALPHA_GENERIC=y
+# CONFIG_ALPHA_ALCOR is not set
+# CONFIG_ALPHA_XL is not set
+# CONFIG_ALPHA_BOOK1 is not set
+# CONFIG_ALPHA_AVANTI is not set
+# CONFIG_ALPHA_CABRIOLET is not set
+# CONFIG_ALPHA_DP264 is not set
+# CONFIG_ALPHA_EB164 is not set
+# CONFIG_ALPHA_EB64P is not set
+# CONFIG_ALPHA_EB66 is not set
+# CONFIG_ALPHA_EB66P is not set
+# CONFIG_ALPHA_EIGER is not set
+# CONFIG_ALPHA_JENSEN is not set
+# CONFIG_ALPHA_LX164 is not set
+# CONFIG_ALPHA_LYNX is not set
+# CONFIG_ALPHA_MARVEL is not set
+# CONFIG_ALPHA_MIATA is not set
+# CONFIG_ALPHA_MIKASA is not set
+# CONFIG_ALPHA_NAUTILUS is not set
+# CONFIG_ALPHA_NONAME is not set
+# CONFIG_ALPHA_NORITAKE is not set
+# CONFIG_ALPHA_PC164 is not set
+# CONFIG_ALPHA_P2K is not set
+# CONFIG_ALPHA_RAWHIDE is not set
+# CONFIG_ALPHA_RUFFIAN is not set
+# CONFIG_ALPHA_RX164 is not set
+# CONFIG_ALPHA_SX164 is not set
+# CONFIG_ALPHA_SABLE is not set
+# CONFIG_ALPHA_SHARK is not set
+# CONFIG_ALPHA_TAKARA is not set
+# CONFIG_ALPHA_TITAN is not set
+# CONFIG_ALPHA_WILDFIRE is not set
+CONFIG_ISA=y
+CONFIG_EISA=y
+# CONFIG_SBUS is not set
+# CONFIG_MCA is not set
+CONFIG_PCI=y
+CONFIG_VERBOSE_MCHECK=y
+CONFIG_ALPHA_BROKEN_IRQ_MASK=y
+# CONFIG_SMP is not set
+CONFIG_EARLY_PRINTK=y
+# CONFIG_DISCONTIGMEM is not set
+# CONFIG_ALPHA_LARGE_VMALLOC is not set
+# CONFIG_PCI_NAMES is not set
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_TCIC=y
+CONFIG_I82092=y
+CONFIG_I82365=y
+CONFIG_NET=y
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_SRM_ENV is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_BINFMT_EM86 is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Plug and Play configuration
+#
+CONFIG_PNP=m
+CONFIG_ISAPNP=m
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=y
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_CISS_MONITOR_THREAD is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=14336
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+# CONFIG_NETLINK_DEV is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_FWMARK is not set
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+CONFIG_SYN_COOKIES=y
+
+#
+#   IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_CT_PROTO_GRE=m
+CONFIG_IP_NF_PPTP=m
+# CONFIG_IP_NF_PPTP_DEBUG is not set
+CONFIG_IP_NF_H323=m
+# CONFIG_IP_NF_AMANDA is not set
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_QUAKE3=m
+CONFIG_IP_NF_RTSP=m
+CONFIG_IP_NF_MMS=m
+CONFIG_IP_NF_CUSEEME=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_SET=m
+CONFIG_IP_NF_SET_MAX=256
+CONFIG_IP_NF_SET_HASHSIZE=1024
+CONFIG_IP_NF_MATCH_SET=m
+CONFIG_IP_NF_TARGET_SET=m
+CONFIG_IP_NF_SET_IPMAP=m
+CONFIG_IP_NF_SET_PORTMAP=m
+CONFIG_IP_NF_SET_MACIPMAP=m
+CONFIG_IP_NF_SET_IPHASH=m
+CONFIG_IP_NF_SET_NETHASH=m
+CONFIG_IP_NF_SET_IPPORTHASH=m
+CONFIG_IP_NF_SET_IPTREE=m
+CONFIG_IP_NF_MATCH_QUOTA=m
+CONFIG_IP_NF_POOL=m
+CONFIG_IP_POOL_STATISTICS=y
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_DSTLIMIT=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_MPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_TIME=m
+CONFIG_IP_NF_MATCH_RANDOM=m
+CONFIG_IP_NF_MATCH_PSD=m
+CONFIG_IP_NF_MATCH_OSF=m
+CONFIG_IP_NF_MATCH_NTH=m
+CONFIG_IP_NF_MATCH_IPV4OPTIONS=m
+CONFIG_IP_NF_MATCH_FUZZY=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_U32=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNLIMIT=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_UNCLEAN=m
+CONFIG_IP_NF_MATCH_STRING=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_NETLINK=m
+CONFIG_IP_NF_TARGET_IPV4OPTSSTRIP=m
+CONFIG_IP_NF_TARGET_MIRROR=m
+CONFIG_IP_NF_TARGET_TARPIT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_NAT_H323=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_NAT_PPTP=m
+CONFIG_IP_NF_NAT_PROTO_GRE=m
+# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
+CONFIG_IP_NF_NAT_RTSP=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_QUAKE3=m
+CONFIG_IP_NF_NAT_MMS=m
+CONFIG_IP_NF_NAT_CUSEEME=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
+
+#
+#   IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+
+#
+#    SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+CONFIG_ATM_CLIP_NO_ICMP=y
+# CONFIG_ATM_LANE is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_VLAN_8021Q=m
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_CSZ=m
+CONFIG_NET_SCH_HFSC=m
+# CONFIG_NET_SCH_ATM is not set
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+# CONFIG_NET_SCH_NETEM is not set
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_POLICE=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_IPSEC=m
+
+#
+# IPSec options (FreeS/WAN)
+#
+CONFIG_IPSEC_IPIP=y
+CONFIG_IPSEC_AH=y
+CONFIG_IPSEC_AUTH_HMAC_MD5=y
+CONFIG_IPSEC_AUTH_HMAC_SHA1=y
+CONFIG_IPSEC_ESP=y
+CONFIG_IPSEC_ENC_3DES=y
+CONFIG_IPSEC_ALG=y
+CONFIG_IPSEC_ALG_MD5=m
+CONFIG_IPSEC_ALG_SHA1=m
+CONFIG_IPSEC_ALG_SHA2=m
+CONFIG_IPSEC_ALG_3DES=m
+CONFIG_IPSEC_ALG_AES=m
+CONFIG_IPSEC_ALG_BLOWFISH=m
+CONFIG_IPSEC_ALG_TWOFISH=m
+CONFIG_IPSEC_ALG_SERPENT=m
+CONFIG_IPSEC_ALG_CAST=m
+# CONFIG_IPSEC_ALG_NULL is not set
+# CONFIG_IPSEC_ALG_CRYPTOAPI is not set
+# CONFIG_IPSEC_ALG_1DES is not set
+CONFIG_IPSEC_IPCOMP=y
+CONFIG_IPSEC_DEBUG=y
+CONFIG_IPSEC_NAT_TRAVERSAL=y
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+MAX_HWIFS=4
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_BLK_DEV_CMD640=y
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+# CONFIG_BLK_DEV_ISAPNP is not set
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+CONFIG_BLK_DEV_ADMA100=y
+CONFIG_BLK_DEV_AEC62XX=y
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD74XX=y
+CONFIG_AMD74XX_OVERRIDE=y
+CONFIG_BLK_DEV_ATIIXP=y
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_BLK_DEV_HPT366=y
+CONFIG_BLK_DEV_PIIX=y
+CONFIG_BLK_DEV_NS87415=y
+CONFIG_BLK_DEV_OPTI621=y
+CONFIG_BLK_DEV_PDC202XX_OLD=y
+# CONFIG_PDC202XX_BURST is not set
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+# CONFIG_PDC202XX_FORCE is not set
+CONFIG_BLK_DEV_RZ1000=y
+CONFIG_BLK_DEV_SC1200=y
+CONFIG_BLK_DEV_SVWKS=y
+CONFIG_BLK_DEV_SIIMAGE=y
+CONFIG_BLK_DEV_SIS5513=y
+CONFIG_BLK_DEV_SLC90E66=y
+CONFIG_BLK_DEV_TRM290=y
+CONFIG_BLK_DEV_VIA82CXXX=y
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_PDC202XX=y
+CONFIG_BLK_DEV_ATARAID=m
+CONFIG_BLK_DEV_ATARAID_PDC=m
+CONFIG_BLK_DEV_ATARAID_HPT=m
+CONFIG_BLK_DEV_ATARAID_MEDLEY=m
+CONFIG_BLK_DEV_ATARAID_SII=m
+
+#
+# SCSI support
+#
+CONFIG_SCSI=m
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_SD_EXTRA_DEVS=8
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_SR_EXTRA_DEVS=2
+CONFIG_CHR_DEV_SG=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_PROBE_EISA_VL=y
+# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
+CONFIG_AIC79XX_ENABLE_RD_STRM=y
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_DPT_I2O is not set
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_MEGARAID2=m
+CONFIG_SCSI_SATA=y
+CONFIG_SCSI_SATA_AHCI=m
+CONFIG_SCSI_SATA_SVW=m
+CONFIG_SCSI_ATA_PIIX=m
+CONFIG_SCSI_SATA_NV=m
+CONFIG_SCSI_SATA_QSTOR=m
+CONFIG_SCSI_SATA_PROMISE=m
+CONFIG_SCSI_SATA_SX4=m
+CONFIG_SCSI_SATA_SIL=m
+CONFIG_SCSI_SATA_SIS=m
+CONFIG_SCSI_SATA_ULI=m
+CONFIG_SCSI_SATA_VIA=m
+CONFIG_SCSI_SATA_VITESSE=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_CPQFCTS=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_DMA=m
+CONFIG_SCSI_EATA_PIO=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_G_NCR5380_PORT=y
+# CONFIG_SCSI_G_NCR5380_MEM is not set
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_NCR53C7xx=m
+CONFIG_SCSI_NCR53C7xx_sync=y
+CONFIG_SCSI_NCR53C7xx_FAST=y
+CONFIG_SCSI_NCR53C7xx_DISCONNECT=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX=m
+CONFIG_SCSI_SYM53C8XX=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=4
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX_PQS_PDS=y
+# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_PCI2000=m
+CONFIG_SCSI_PCI2220I=m
+CONFIG_SCSI_PSI240I=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_ISP=m
+CONFIG_SCSI_QLOGIC_FC=m
+# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DC390T_NOGENSUPP is not set
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_SCSI_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=m
+# CONFIG_FUSION_BOOT is not set
+CONFIG_FUSION_MAX_SGE=40
+# CONFIG_FUSION_ISENSE is not set
+# CONFIG_FUSION_CTL is not set
+CONFIG_FUSION_LAN=m
+CONFIG_NET_FC=y
+
+#
+# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+# CONFIG_ETHERTAP is not set
+# CONFIG_NET_SB1000 is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+# CONFIG_ELMC is not set
+# CONFIG_ELMC_II is not set
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+# CONFIG_ULTRAMCA is not set
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI5010=m
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+# CONFIG_AMD8111_ETH is not set
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_CS89x0=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_DE4X5=m
+CONFIG_DGRS=m
+CONFIG_DM9102=m
+# CONFIG_EEPRO100 is not set
+# CONFIG_EEPRO100_PIO is not set
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_FORCEDETH=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_WINBOND_840=m
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+# CONFIG_MYRI_SBUS is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SK98LIN=m
+CONFIG_TIGON3=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+# CONFIG_STRIP is not set
+# CONFIG_WAVELAN is not set
+# CONFIG_ARLAN is not set
+# CONFIG_AIRONET4500 is not set
+# CONFIG_AIRONET4500_NONCS is not set
+# CONFIG_AIRONET4500_PROC is not set
+# CONFIG_AIRO is not set
+# CONFIG_HERMES is not set
+# CONFIG_PLX_HERMES is not set
+# CONFIG_TMD_HERMES is not set
+# CONFIG_PCI_HERMES is not set
+
+#
+# Wireless Pcmcia cards support
+#
+# CONFIG_PCMCIA_HERMES is not set
+CONFIG_AIRO_CS=m
+# CONFIG_PCMCIA_ATMEL is not set
+
+#
+# Prism54 PCI/PCMCIA GT/Duette Driver - 802.11(a/b/g)
+#
+CONFIG_PRISM54=m
+CONFIG_FW_LOADER=m
+CONFIG_NET_WIRELESS=y
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+CONFIG_NET_FC=y
+# CONFIG_IPHASE5526 is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_ARCNET_COM20020_CS is not set
+# CONFIG_PCMCIA_IBMTR is not set
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCMCIA_XIRTULIP=m
+CONFIG_NET_PCMCIA_RADIO=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_PCMCIA_WAVELAN=m
+# CONFIG_AIRONET4500_CS is not set
+
+#
+# ATM drivers
+#
+CONFIG_ATM_TCP=m
+# CONFIG_ATM_LANAI is not set
+# CONFIG_ATM_ENI is not set
+# CONFIG_ATM_FIRESTREAM is not set
+# CONFIG_ATM_ZATM is not set
+# CONFIG_ATM_NICSTAR is not set
+# CONFIG_ATM_IDT77252 is not set
+# CONFIG_ATM_AMBASSADOR is not set
+# CONFIG_ATM_HORIZON is not set
+# CONFIG_ATM_IA is not set
+# CONFIG_ATM_FORE200E_MAYBE is not set
+# CONFIG_ATM_HE is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# ISDN subsystem
+#
+CONFIG_ISDN=m
+CONFIG_ISDN_BOOL=y
+CONFIG_ISDN_PPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+# CONFIG_ISDN_AUDIO is not set
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DRV_LOOP is not set
+# CONFIG_ISDN_DIVERSION is not set
+
+#
+# low-level hardware drivers
+#
+
+#
+# Passive ISDN cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+CONFIG_ISDN_HISAX=y
+
+#
+#   D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+CONFIG_HISAX_NO_SENDCOMPLETE=y
+CONFIG_HISAX_NO_LLC=y
+CONFIG_HISAX_NO_KEYPAD=y
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+#   HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+# CONFIG_USB_AUERISDN is not set
+
+#
+# Active ISDN cards
+#
+# CONFIG_ISDN_DRV_ICN is not set
+# CONFIG_ISDN_DRV_PCBIT is not set
+# CONFIG_ISDN_DRV_SC is not set
+# CONFIG_ISDN_DRV_ACT2000 is not set
+# CONFIG_ISDN_DRV_EICON is not set
+# CONFIG_ISDN_DRV_TPAM is not set
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCI is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCIV4 is not set
+# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCMCIA is not set
+# CONFIG_ISDN_DRV_AVMB1_AVM_CS is not set
+# CONFIG_ISDN_DRV_AVMB1_T1PCI is not set
+# CONFIG_ISDN_DRV_AVMB1_C4 is not set
+# CONFIG_HYSDN is not set
+# CONFIG_HYSDN_CAPI is not set
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Input core support
+#
+CONFIG_INPUT=m
+CONFIG_INPUT_KEYBDEV=m
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_FRANDOM=y
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+CONFIG_SERIAL_SHARE_IRQ=y
+# CONFIG_SERIAL_DETECT_IRQ is not set
+# CONFIG_SERIAL_MULTIPORT is not set
+# CONFIG_HUB6 is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_DIGI is not set
+# CONFIG_ESPSERIAL is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+# CONFIG_INPUT_NS558 is not set
+# CONFIG_INPUT_LIGHTNING is not set
+# CONFIG_INPUT_PCIGAME is not set
+# CONFIG_INPUT_CS461X is not set
+# CONFIG_INPUT_EMU10K1 is not set
+# CONFIG_INPUT_SERIO is not set
+# CONFIG_INPUT_SERPORT is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_ANALOG is not set
+# CONFIG_INPUT_A3D is not set
+# CONFIG_INPUT_ADI is not set
+# CONFIG_INPUT_COBRA is not set
+# CONFIG_INPUT_GF2K is not set
+# CONFIG_INPUT_GRIP is not set
+# CONFIG_INPUT_INTERACT is not set
+# CONFIG_INPUT_TMDC is not set
+# CONFIG_INPUT_SIDEWINDER is not set
+# CONFIG_INPUT_IFORCE_USB is not set
+# CONFIG_INPUT_IFORCE_232 is not set
+# CONFIG_INPUT_WARRIOR is not set
+# CONFIG_INPUT_MAGELLAN is not set
+# CONFIG_INPUT_SPACEORB is not set
+# CONFIG_INPUT_SPACEBALL is not set
+# CONFIG_INPUT_STINGER is not set
+# CONFIG_INPUT_DB9 is not set
+# CONFIG_INPUT_GAMECON is not set
+# CONFIG_INPUT_TURBOGRAFX is not set
+# CONFIG_QIC02_TAPE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_IPMI_PANIC_EVENT is not set
+# CONFIG_IPMI_DEVICE_INTERFACE is not set
+# CONFIG_IPMI_KCS is not set
+# CONFIG_IPMI_WATCHDOG is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_SCx200 is not set
+# CONFIG_SCx200_GPIO is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+CONFIG_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+
+#
+# Direct Rendering Manager (XFree86 DRI support)
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_PCMCIA_SERIAL_CS=m
+CONFIG_SYNCLINK_CS=m
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+# CONFIG_QFMT_V2 is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+CONFIG_EXT3_FS=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FAT_FS=m
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+CONFIG_VFAT_FS=m
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_TRACE is not set
+# CONFIG_XFS_DEBUG is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+# CONFIG_NFS_FS is not set
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_ROOT_NFS is not set
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+# CONFIG_SUNRPC is not set
+# CONFIG_LOCKD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_OSF_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_SMB_NLS is not set
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="cp437"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_UHCI=m
+CONFIG_USB_UHCI_ALT=m
+CONFIG_USB_OHCI=m
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_MIDI is not set
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_HP8200e is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+CONFIG_USB_ACM=m
+# CONFIG_USB_PRINTER is not set
+
+#
+# USB Human Interface Devices (HID)
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_HIDDEV=y
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_HPUSBSCSI is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+#   Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network adaptors
+#
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDCETHER=m
+CONFIG_USB_USBNET=m
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_TIGL is not set
+# CONFIG_USB_BRLVGER is not set
+# CONFIG_USB_LCD is not set
+CONFIG_USB_SPEEDTOUCH=m
+
+#
+# Support for USB gadgets
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_ALPHA_LEGACY_START_ADDRESS is not set
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_MATHEMU=y
+CONFIG_LOG_BUF_SHIFT=0
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Library routines
+#
+# CONFIG_CRC32 is not set
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_FW_LOADER=m
diff --git a/config/kernel/kernel.config.i386 b/config/kernel/kernel.config.i386
new file mode 100644 (file)
index 0000000..379e9c8
--- /dev/null
@@ -0,0 +1,1493 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_X86=y
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+CONFIG_M386=y
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MELAN is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP2 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_X86_CMPXCHG is not set
+# CONFIG_X86_XADD is not set
+CONFIG_X86_L1_CACHE_SHIFT=4
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_X86_PPRO_FENCE=y
+# CONFIG_X86_F00F_WORKS_OK is not set
+CONFIG_X86_MCE=y
+# CONFIG_TOSHIBA is not set
+# CONFIG_I8K is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_MSR is not set
+# CONFIG_X86_CPUID is not set
+# CONFIG_EDD is not set
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHIO is not set
+CONFIG_MATH_EMULATION=y
+# CONFIG_MTRR is not set
+# CONFIG_SMP is not set
+# CONFIG_X86_UP_APIC is not set
+# CONFIG_X86_UP_IOAPIC is not set
+# CONFIG_X86_TSC_DISABLE is not set
+
+#
+# General setup
+#
+CONFIG_NET=y
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_ISA=y
+# CONFIG_PCI_NAMES is not set
+CONFIG_EISA=y
+CONFIG_MCA=y
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_TCIC=y
+CONFIG_I82092=y
+CONFIG_I82365=y
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+# CONFIG_HOTPLUG_PCI_ACPI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set
+# CONFIG_HOTPLUG_PCI_PCIE is not set
+# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_OOM_KILLER is not set
+CONFIG_PM=y
+CONFIG_APM=m
+CONFIG_APM_IGNORE_USER_SUSPEND=y
+# CONFIG_APM_DO_ENABLE is not set
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+CONFIG_APM_RTC_IS_GMT=y
+# CONFIG_APM_ALLOW_INTS is not set
+# CONFIG_APM_REAL_MODE_POWER_OFF is not set
+
+#
+# ACPI Support
+#
+CONFIG_ACPI=y
+CONFIG_ACPI_BOOT=y
+CONFIG_ACPI_BUS=y
+CONFIG_ACPI_INTERPRETER=y
+CONFIG_ACPI_EC=y
+CONFIG_ACPI_POWER=y
+CONFIG_ACPI_PCI=y
+CONFIG_ACPI_MMCONFIG=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SYSTEM=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_ASUS is not set
+# CONFIG_ACPI_TOSHIBA is not set
+# CONFIG_ACPI_DEBUG is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_CML1=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_PARPORT_PC_PCMCIA is not set
+# CONFIG_PARPORT_AMIGA is not set
+# CONFIG_PARPORT_MFC3 is not set
+# CONFIG_PARPORT_ATARI is not set
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_SUNBPP is not set
+# CONFIG_PARPORT_IP22 is not set
+CONFIG_PARPORT_OTHER=y
+# CONFIG_PARPORT_1284 is not set
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_TIPAR=m
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+
+#
+# Plug and Play configuration
+#
+CONFIG_PNP=m
+CONFIG_ISAPNP=m
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=y
+CONFIG_BLK_DEV_PS2=y
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_CISS_MONITOR_THREAD is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=5120
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+# CONFIG_NETLINK_DEV is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_FWMARK is not set
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+CONFIG_SYN_COOKIES=y
+
+#
+#   IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_CT_PROTO_GRE=m
+CONFIG_IP_NF_PPTP=m
+# CONFIG_IP_NF_PPTP_DEBUG is not set
+CONFIG_IP_NF_H323=m
+# CONFIG_IP_NF_AMANDA is not set
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_QUAKE3=m
+CONFIG_IP_NF_RTSP=m
+CONFIG_IP_NF_MMS=m
+CONFIG_IP_NF_CUSEEME=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPP2P=m
+CONFIG_IP_NF_SET=m
+CONFIG_IP_NF_SET_MAX=256
+CONFIG_IP_NF_SET_HASHSIZE=1024
+CONFIG_IP_NF_MATCH_SET=m
+CONFIG_IP_NF_TARGET_SET=m
+CONFIG_IP_NF_SET_IPMAP=m
+CONFIG_IP_NF_SET_PORTMAP=m
+CONFIG_IP_NF_SET_MACIPMAP=m
+CONFIG_IP_NF_SET_IPHASH=m
+CONFIG_IP_NF_SET_NETHASH=m
+CONFIG_IP_NF_SET_IPPORTHASH=m
+CONFIG_IP_NF_SET_IPTREE=m
+CONFIG_IP_NF_MATCH_QUOTA=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_TIME=m
+CONFIG_IP_NF_MATCH_RANDOM=m
+CONFIG_IP_NF_MATCH_PSD=m
+CONFIG_IP_NF_MATCH_OSF=m
+CONFIG_IP_NF_MATCH_NTH=m
+CONFIG_IP_NF_MATCH_IPV4OPTIONS=m
+CONFIG_IP_NF_MATCH_FUZZY=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_U32=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNLIMIT=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_UNCLEAN=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_LAYER7=m
+# CONFIG_IP_NF_MATCH_LAYER7_DEBUG is not set
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_NETLINK=m
+CONFIG_IP_NF_TARGET_IPV4OPTSSTRIP=m
+CONFIG_IP_NF_TARGET_MIRROR=m
+CONFIG_IP_NF_TARGET_TARPIT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_NAT_PPTP=m
+CONFIG_IP_NF_NAT_PROTO_GRE=m
+CONFIG_IP_NF_NAT_H323=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
+CONFIG_IP_NF_NAT_RTSP=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_QUAKE3=m
+CONFIG_IP_NF_NAT_MMS=m
+CONFIG_IP_NF_NAT_CUSEEME=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_IMQ=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
+CONFIG_IMQ=m
+
+#
+#   IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+
+#
+#    SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+CONFIG_ATM_CLIP_NO_ICMP=y
+# CONFIG_ATM_LANE is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_VLAN_8021Q=m
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_CSZ=m
+CONFIG_NET_SCH_HFSC=m
+# CONFIG_NET_SCH_ATM is not set
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+# CONFIG_NET_SCH_NETEM is not set
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_POLICE=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_IPSEC=m
+
+#
+# IPSec options (FreeS/WAN)
+#
+CONFIG_IPSEC_IPIP=y
+CONFIG_IPSEC_AH=y
+CONFIG_IPSEC_AUTH_HMAC_MD5=y
+CONFIG_IPSEC_AUTH_HMAC_SHA1=y
+CONFIG_IPSEC_ESP=y
+CONFIG_IPSEC_ENC_3DES=y
+CONFIG_IPSEC_ALG=y
+CONFIG_IPSEC_ALG_MD5=m
+CONFIG_IPSEC_ALG_SHA1=m
+CONFIG_IPSEC_ALG_SHA2=m
+CONFIG_IPSEC_ALG_3DES=m
+CONFIG_IPSEC_ALG_AES=m
+CONFIG_IPSEC_ALG_BLOWFISH=m
+CONFIG_IPSEC_ALG_TWOFISH=m
+CONFIG_IPSEC_ALG_SERPENT=m
+CONFIG_IPSEC_ALG_CAST=m
+# CONFIG_IPSEC_ALG_NULL is not set
+# CONFIG_IPSEC_ALG_CRYPTOAPI is not set
+# CONFIG_IPSEC_ALG_1DES is not set
+CONFIG_IPSEC_IPCOMP=y
+CONFIG_IPSEC_DEBUG=y
+CONFIG_IPSEC_NAT_TRAVERSAL=y
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_BLK_DEV_CMD640=y
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+# CONFIG_BLK_DEV_ISAPNP is not set
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+CONFIG_BLK_DEV_ADMA100=y
+CONFIG_BLK_DEV_AEC62XX=y
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD74XX=y
+CONFIG_AMD74XX_OVERRIDE=y
+CONFIG_BLK_DEV_ATIIXP=y
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_BLK_DEV_HPT366=y
+CONFIG_BLK_DEV_PIIX=y
+CONFIG_BLK_DEV_NS87415=y
+CONFIG_BLK_DEV_OPTI621=y
+CONFIG_BLK_DEV_PDC202XX_OLD=y
+# CONFIG_PDC202XX_BURST is not set
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+# CONFIG_PDC202XX_FORCE is not set
+CONFIG_BLK_DEV_RZ1000=y
+CONFIG_BLK_DEV_SC1200=y
+CONFIG_BLK_DEV_SVWKS=y
+CONFIG_BLK_DEV_SIIMAGE=y
+CONFIG_BLK_DEV_SIS5513=y
+CONFIG_BLK_DEV_SLC90E66=y
+CONFIG_BLK_DEV_TRM290=y
+CONFIG_BLK_DEV_VIA82CXXX=y
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_PDC202XX=y
+CONFIG_BLK_DEV_ATARAID=m
+CONFIG_BLK_DEV_ATARAID_PDC=m
+CONFIG_BLK_DEV_ATARAID_HPT=m
+CONFIG_BLK_DEV_ATARAID_MEDLEY=m
+CONFIG_BLK_DEV_ATARAID_SII=m
+
+#
+# SCSI support
+#
+CONFIG_SCSI=m
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_SD_EXTRA_DEVS=8
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_SR_EXTRA_DEVS=2
+CONFIG_CHR_DEV_SG=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_PROBE_EISA_VL=y
+# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
+CONFIG_AIC79XX_ENABLE_RD_STRM=y
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_MEGARAID2=m
+CONFIG_SCSI_SATA=y
+CONFIG_SCSI_SATA_AHCI=m
+CONFIG_SCSI_SATA_SVW=m
+CONFIG_SCSI_ATA_PIIX=m
+CONFIG_SCSI_SATA_NV=m
+CONFIG_SCSI_SATA_QSTOR=m
+CONFIG_SCSI_SATA_PROMISE=m
+CONFIG_SCSI_SATA_SX4=m
+CONFIG_SCSI_SATA_SIL=m
+CONFIG_SCSI_SATA_SIS=m
+CONFIG_SCSI_SATA_ULI=m
+CONFIG_SCSI_SATA_VIA=m
+CONFIG_SCSI_SATA_VITESSE=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_CPQFCTS=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_DMA=m
+CONFIG_SCSI_EATA_PIO=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_FD_MCS=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_G_NCR5380_PORT=y
+# CONFIG_SCSI_G_NCR5380_MEM is not set
+CONFIG_SCSI_IBMMCA=m
+CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y
+CONFIG_IBMMCA_SCSI_DEV_RESET=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_NCR_D700=m
+CONFIG_53C700_IO_MAPPED=y
+CONFIG_SCSI_NCR53C7xx=m
+CONFIG_SCSI_NCR53C7xx_sync=y
+CONFIG_SCSI_NCR53C7xx_FAST=y
+CONFIG_SCSI_NCR53C7xx_DISCONNECT=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX=m
+CONFIG_SCSI_SYM53C8XX=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=4
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX_PQS_PDS=y
+# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
+CONFIG_SCSI_MCA_53C9X=m
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_PCI2000=m
+CONFIG_SCSI_PCI2220I=m
+CONFIG_SCSI_PSI240I=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_ISP=m
+CONFIG_SCSI_QLOGIC_FC=m
+# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SEAGATE=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DC390T_NOGENSUPP is not set
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_SCSI_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=m
+# CONFIG_FUSION_BOOT is not set
+CONFIG_FUSION_MAX_SGE=40
+# CONFIG_FUSION_ISENSE is not set
+# CONFIG_FUSION_CTL is not set
+CONFIG_FUSION_LAN=m
+CONFIG_NET_FC=y
+
+#
+# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_I2O_PCI is not set
+# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
+# CONFIG_I2O_SCSI is not set
+# CONFIG_I2O_PROC is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+# CONFIG_ETHERTAP is not set
+# CONFIG_NET_SB1000 is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI5010=m
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_SKMC=m
+CONFIG_NE2_MCA=m
+CONFIG_IBMLANA=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_CS89x0=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_DE4X5=m
+CONFIG_DGRS=m
+CONFIG_DM9102=m
+# CONFIG_EEPRO100 is not set
+# CONFIG_EEPRO100_PIO is not set
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_FORCEDETH=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_WINBOND_840=m
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+# CONFIG_MYRI_SBUS is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SK98LIN=m
+CONFIG_TIGON3=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+# CONFIG_STRIP is not set
+CONFIG_WAVELAN=m
+CONFIG_ARLAN=m
+CONFIG_AIRONET4500=m
+CONFIG_AIRONET4500_NONCS=m
+CONFIG_AIRONET4500_PNP=y
+CONFIG_AIRONET4500_PCI=y
+CONFIG_AIRONET4500_ISA=y
+CONFIG_AIRONET4500_I365=y
+# CONFIG_AIRONET4500_PROC is not set
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_PCI_HERMES=m
+
+#
+# Wireless Pcmcia cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+# CONFIG_PCMCIA_ATMEL is not set
+
+#
+# Prism54 PCI/PCMCIA GT/Duette Driver - 802.11(a/b/g)
+#
+CONFIG_PRISM54=m
+CONFIG_FW_LOADER=m
+CONFIG_NET_WIRELESS=y
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+CONFIG_NET_FC=y
+# CONFIG_IPHASE5526 is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_ARCNET_COM20020_CS is not set
+# CONFIG_PCMCIA_IBMTR is not set
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCMCIA_XIRTULIP=m
+CONFIG_NET_PCMCIA_RADIO=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_PCMCIA_WAVELAN=m
+# CONFIG_AIRONET4500_CS is not set
+
+#
+# ATM drivers
+#
+CONFIG_ATM_TCP=m
+# CONFIG_ATM_LANAI is not set
+# CONFIG_ATM_ENI is not set
+# CONFIG_ATM_FIRESTREAM is not set
+# CONFIG_ATM_ZATM is not set
+# CONFIG_ATM_NICSTAR is not set
+# CONFIG_ATM_IDT77252 is not set
+# CONFIG_ATM_AMBASSADOR is not set
+# CONFIG_ATM_HORIZON is not set
+# CONFIG_ATM_IA is not set
+# CONFIG_ATM_FORE200E_MAYBE is not set
+# CONFIG_ATM_HE is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+CONFIG_ISDN=m
+CONFIG_ISDN_BOOL=y
+CONFIG_ISDN_PPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+# CONFIG_ISDN_TTY_FAX is not set
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DRV_LOOP is not set
+# CONFIG_ISDN_DIVERSION is not set
+
+#
+# low-level hardware drivers
+#
+
+#
+# Passive ISDN cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+CONFIG_ISDN_HISAX=y
+
+#
+#   D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+CONFIG_HISAX_NO_SENDCOMPLETE=y
+CONFIG_HISAX_NO_LLC=y
+CONFIG_HISAX_NO_KEYPAD=y
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+#   HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+# CONFIG_USB_AUERISDN is not set
+
+#
+# Active ISDN cards
+#
+# CONFIG_ISDN_DRV_ICN is not set
+# CONFIG_ISDN_DRV_PCBIT is not set
+# CONFIG_ISDN_DRV_SC is not set
+# CONFIG_ISDN_DRV_ACT2000 is not set
+# CONFIG_ISDN_DRV_EICON is not set
+# CONFIG_ISDN_DRV_TPAM is not set
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCI is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCIV4 is not set
+# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCMCIA is not set
+# CONFIG_ISDN_DRV_AVMB1_AVM_CS is not set
+# CONFIG_ISDN_DRV_AVMB1_T1PCI is not set
+# CONFIG_ISDN_DRV_AVMB1_C4 is not set
+# CONFIG_HYSDN is not set
+# CONFIG_HYSDN_CAPI is not set
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Input core support
+#
+CONFIG_INPUT=m
+CONFIG_INPUT_KEYBDEV=m
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_FRANDOM=y
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+CONFIG_SERIAL_SHARE_IRQ=y
+# CONFIG_SERIAL_DETECT_IRQ is not set
+# CONFIG_SERIAL_MULTIPORT is not set
+# CONFIG_HUB6 is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_DIGI is not set
+# CONFIG_ESPSERIAL is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+# CONFIG_INPUT_NS558 is not set
+# CONFIG_INPUT_LIGHTNING is not set
+# CONFIG_INPUT_PCIGAME is not set
+# CONFIG_INPUT_CS461X is not set
+# CONFIG_INPUT_EMU10K1 is not set
+# CONFIG_INPUT_SERIO is not set
+# CONFIG_INPUT_SERPORT is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_ANALOG is not set
+# CONFIG_INPUT_A3D is not set
+# CONFIG_INPUT_ADI is not set
+# CONFIG_INPUT_COBRA is not set
+# CONFIG_INPUT_GF2K is not set
+# CONFIG_INPUT_GRIP is not set
+# CONFIG_INPUT_INTERACT is not set
+# CONFIG_INPUT_TMDC is not set
+# CONFIG_INPUT_SIDEWINDER is not set
+# CONFIG_INPUT_IFORCE_USB is not set
+# CONFIG_INPUT_IFORCE_232 is not set
+# CONFIG_INPUT_WARRIOR is not set
+# CONFIG_INPUT_MAGELLAN is not set
+# CONFIG_INPUT_SPACEORB is not set
+# CONFIG_INPUT_SPACEBALL is not set
+# CONFIG_INPUT_STINGER is not set
+# CONFIG_INPUT_DB9 is not set
+# CONFIG_INPUT_GAMECON is not set
+# CONFIG_INPUT_TURBOGRAFX is not set
+# CONFIG_QIC02_TAPE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_IPMI_PANIC_EVENT is not set
+# CONFIG_IPMI_DEVICE_INTERFACE is not set
+# CONFIG_IPMI_KCS is not set
+# CONFIG_IPMI_WATCHDOG is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_SCx200 is not set
+# CONFIG_SCx200_GPIO is not set
+# CONFIG_AMD_RNG is not set
+# CONFIG_INTEL_RNG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+CONFIG_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_SONYPI is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+
+#
+# Direct Rendering Manager (XFree86 DRI support)
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_PCMCIA_SERIAL_CS=m
+CONFIG_SYNCLINK_CS=m
+# CONFIG_MWAVE is not set
+# CONFIG_OBMOUSE is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+# CONFIG_QFMT_V2 is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+CONFIG_EXT3_FS=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FAT_FS=m
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+CONFIG_VFAT_FS=m
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_TRACE is not set
+# CONFIG_XFS_DEBUG is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+# CONFIG_NFS_FS is not set
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_ROOT_NFS is not set
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+# CONFIG_SUNRPC is not set
+# CONFIG_LOCKD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_SMB_NLS is not set
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="cp437"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_SELECT=y
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_UHCI=m
+CONFIG_USB_UHCI_ALT=m
+CONFIG_USB_OHCI=m
+# CONFIG_USB_SL811HS_ALT is not set
+# CONFIG_USB_SL811HS is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_MIDI is not set
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_HP8200e is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+
+#
+# USB Human Interface Devices (HID)
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_HIDDEV=y
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_HPUSBSCSI is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+#   Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network adaptors
+#
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDCETHER=m
+CONFIG_USB_USBNET=m
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_TIGL is not set
+# CONFIG_USB_BRLVGER is not set
+# CONFIG_USB_LCD is not set
+CONFIG_USB_SPEEDTOUCH=m
+
+#
+# Support for USB gadgets
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=0
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Library routines
+#
+# CONFIG_CRC32 is not set
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_FW_LOADER=m
diff --git a/config/kernel/kernel.config.i386.installer b/config/kernel/kernel.config.i386.installer
new file mode 100644 (file)
index 0000000..7c0ea66
--- /dev/null
@@ -0,0 +1,1456 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_X86=y
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+CONFIG_M386=y
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MELAN is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP2 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_X86_CMPXCHG is not set
+# CONFIG_X86_XADD is not set
+CONFIG_X86_L1_CACHE_SHIFT=4
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_X86_PPRO_FENCE=y
+# CONFIG_X86_F00F_WORKS_OK is not set
+CONFIG_X86_MCE=y
+# CONFIG_TOSHIBA is not set
+# CONFIG_I8K is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_MSR is not set
+# CONFIG_X86_CPUID is not set
+# CONFIG_EDD is not set
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHIO is not set
+CONFIG_MATH_EMULATION=y
+# CONFIG_MTRR is not set
+# CONFIG_SMP is not set
+# CONFIG_X86_UP_APIC is not set
+# CONFIG_X86_UP_IOAPIC is not set
+# CONFIG_X86_TSC_DISABLE is not set
+
+#
+# General setup
+#
+CONFIG_NET=y
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_ISA=y
+# CONFIG_PCI_NAMES is not set
+CONFIG_EISA=y
+CONFIG_MCA=y
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_TCIC=y
+CONFIG_I82092=y
+CONFIG_I82365=y
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set
+# CONFIG_HOTPLUG_PCI_SHPC_PHPRM_LEGACY is not set
+# CONFIG_HOTPLUG_PCI_PCIE is not set
+# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_OOM_KILLER is not set
+CONFIG_PM=y
+CONFIG_APM=m
+CONFIG_APM_IGNORE_USER_SUSPEND=y
+# CONFIG_APM_DO_ENABLE is not set
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+CONFIG_APM_RTC_IS_GMT=y
+# CONFIG_APM_ALLOW_INTS is not set
+# CONFIG_APM_REAL_MODE_POWER_OFF is not set
+
+#
+# ACPI Support
+#
+# CONFIG_ACPI is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+CONFIG_PNP=m
+CONFIG_ISAPNP=m
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=y
+CONFIG_BLK_DEV_PS2=y
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_CISS_MONITOR_THREAD is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=5120
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+# CONFIG_NETLINK_DEV is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_FWMARK is not set
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+CONFIG_SYN_COOKIES=y
+
+#
+#   IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_CT_PROTO_GRE=m
+CONFIG_IP_NF_PPTP=m
+# CONFIG_IP_NF_PPTP_DEBUG is not set
+CONFIG_IP_NF_H323=m
+# CONFIG_IP_NF_AMANDA is not set
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_QUAKE3=m
+CONFIG_IP_NF_RTSP=m
+CONFIG_IP_NF_MMS=m
+CONFIG_IP_NF_CUSEEME=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_SET=m
+CONFIG_IP_NF_SET_MAX=256
+CONFIG_IP_NF_SET_HASHSIZE=1024
+CONFIG_IP_NF_MATCH_SET=m
+CONFIG_IP_NF_TARGET_SET=m
+CONFIG_IP_NF_SET_IPMAP=m
+CONFIG_IP_NF_SET_PORTMAP=m
+CONFIG_IP_NF_SET_MACIPMAP=m
+CONFIG_IP_NF_SET_IPHASH=m
+CONFIG_IP_NF_SET_NETHASH=m
+CONFIG_IP_NF_SET_IPPORTHASH=m
+CONFIG_IP_NF_SET_IPTREE=m
+CONFIG_IP_NF_MATCH_QUOTA=m
+CONFIG_IP_NF_POOL=m
+CONFIG_IP_POOL_STATISTICS=y
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_DSTLIMIT=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_MPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_TIME=m
+CONFIG_IP_NF_MATCH_RANDOM=m
+CONFIG_IP_NF_MATCH_PSD=m
+CONFIG_IP_NF_MATCH_OSF=m
+CONFIG_IP_NF_MATCH_NTH=m
+CONFIG_IP_NF_MATCH_IPV4OPTIONS=m
+CONFIG_IP_NF_MATCH_FUZZY=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_U32=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNLIMIT=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_UNCLEAN=m
+CONFIG_IP_NF_MATCH_STRING=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_NETLINK=m
+CONFIG_IP_NF_TARGET_IPV4OPTSSTRIP=m
+CONFIG_IP_NF_TARGET_MIRROR=m
+CONFIG_IP_NF_TARGET_TARPIT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_NAT_H323=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_NAT_PPTP=m
+CONFIG_IP_NF_NAT_PROTO_GRE=m
+# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
+CONFIG_IP_NF_NAT_RTSP=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_QUAKE3=m
+CONFIG_IP_NF_NAT_MMS=m
+CONFIG_IP_NF_NAT_CUSEEME=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
+
+#
+#   IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+
+#
+#    SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+CONFIG_ATM_CLIP_NO_ICMP=y
+# CONFIG_ATM_LANE is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_VLAN_8021Q=m
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_CSZ=m
+CONFIG_NET_SCH_HFSC=m
+# CONFIG_NET_SCH_ATM is not set
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_POLICE=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_IPSEC=m
+
+#
+# IPSec options (FreeS/WAN)
+#
+CONFIG_IPSEC_IPIP=y
+CONFIG_IPSEC_AH=y
+CONFIG_IPSEC_AUTH_HMAC_MD5=y
+CONFIG_IPSEC_AUTH_HMAC_SHA1=y
+CONFIG_IPSEC_ESP=y
+CONFIG_IPSEC_ENC_3DES=y
+CONFIG_IPSEC_ALG=y
+CONFIG_IPSEC_ALG_MD5=m
+CONFIG_IPSEC_ALG_SHA1=m
+CONFIG_IPSEC_ALG_SHA2=m
+CONFIG_IPSEC_ALG_3DES=m
+CONFIG_IPSEC_ALG_AES=m
+CONFIG_IPSEC_ALG_BLOWFISH=m
+CONFIG_IPSEC_ALG_TWOFISH=m
+CONFIG_IPSEC_ALG_SERPENT=m
+CONFIG_IPSEC_ALG_CAST=m
+# CONFIG_IPSEC_ALG_NULL is not set
+# CONFIG_IPSEC_ALG_CRYPTOAPI is not set
+# CONFIG_IPSEC_ALG_1DES is not set
+CONFIG_IPSEC_IPCOMP=y
+CONFIG_IPSEC_DEBUG=y
+CONFIG_IPSEC_NAT_TRAVERSAL=y
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_BLK_DEV_CMD640=y
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+# CONFIG_BLK_DEV_ISAPNP is not set
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+CONFIG_BLK_DEV_ADMA100=y
+CONFIG_BLK_DEV_AEC62XX=y
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD74XX=y
+CONFIG_AMD74XX_OVERRIDE=y
+CONFIG_BLK_DEV_ATIIXP=y
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_BLK_DEV_HPT366=y
+CONFIG_BLK_DEV_PIIX=y
+CONFIG_BLK_DEV_NS87415=y
+CONFIG_BLK_DEV_OPTI621=y
+CONFIG_BLK_DEV_PDC202XX_OLD=y
+# CONFIG_PDC202XX_BURST is not set
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+# CONFIG_PDC202XX_FORCE is not set
+CONFIG_BLK_DEV_RZ1000=y
+CONFIG_BLK_DEV_SC1200=y
+CONFIG_BLK_DEV_SVWKS=y
+CONFIG_BLK_DEV_SIIMAGE=y
+CONFIG_BLK_DEV_SIS5513=y
+CONFIG_BLK_DEV_SLC90E66=y
+CONFIG_BLK_DEV_TRM290=y
+CONFIG_BLK_DEV_VIA82CXXX=y
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_PDC202XX=y
+# CONFIG_BLK_DEV_ATARAID is not set
+# CONFIG_BLK_DEV_ATARAID_PDC is not set
+# CONFIG_BLK_DEV_ATARAID_HPT is not set
+# CONFIG_BLK_DEV_ATARAID_MEDLEY is not set
+# CONFIG_BLK_DEV_ATARAID_SII is not set
+
+#
+# SCSI support
+#
+CONFIG_SCSI=m
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_SD_EXTRA_DEVS=8
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_SR_EXTRA_DEVS=2
+CONFIG_CHR_DEV_SG=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_PROBE_EISA_VL=y
+# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
+CONFIG_AIC79XX_ENABLE_RD_STRM=y
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_MEGARAID2=m
+CONFIG_SCSI_SATA=y
+CONFIG_SCSI_SATA_AHCI=m
+CONFIG_SCSI_SATA_SVW=m
+CONFIG_SCSI_ATA_PIIX=m
+CONFIG_SCSI_SATA_NV=m
+CONFIG_SCSI_SATA_QSTOR=m
+CONFIG_SCSI_SATA_PROMISE=m
+CONFIG_SCSI_SATA_SX4=m
+CONFIG_SCSI_SATA_SIL=m
+CONFIG_SCSI_SATA_SIS=m
+CONFIG_SCSI_SATA_ULI=m
+CONFIG_SCSI_SATA_VIA=m
+CONFIG_SCSI_SATA_VITESSE=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_CPQFCTS=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_DMA=m
+CONFIG_SCSI_EATA_PIO=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_FD_MCS=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_G_NCR5380_PORT=y
+# CONFIG_SCSI_G_NCR5380_MEM is not set
+CONFIG_SCSI_IBMMCA=m
+CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y
+CONFIG_IBMMCA_SCSI_DEV_RESET=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_NCR_D700=m
+CONFIG_53C700_IO_MAPPED=y
+CONFIG_SCSI_NCR53C7xx=m
+CONFIG_SCSI_NCR53C7xx_sync=y
+CONFIG_SCSI_NCR53C7xx_FAST=y
+CONFIG_SCSI_NCR53C7xx_DISCONNECT=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX=m
+CONFIG_SCSI_SYM53C8XX=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=4
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX_PQS_PDS=y
+# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
+CONFIG_SCSI_MCA_53C9X=m
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_PCI2000=m
+CONFIG_SCSI_PCI2220I=m
+CONFIG_SCSI_PSI240I=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_ISP=m
+CONFIG_SCSI_QLOGIC_FC=m
+# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SEAGATE=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DC390T_NOGENSUPP is not set
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_SCSI_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=m
+# CONFIG_FUSION_BOOT is not set
+CONFIG_FUSION_MAX_SGE=40
+# CONFIG_FUSION_ISENSE is not set
+# CONFIG_FUSION_CTL is not set
+CONFIG_FUSION_LAN=m
+CONFIG_NET_FC=y
+
+#
+# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_I2O_PCI is not set
+# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
+# CONFIG_I2O_SCSI is not set
+# CONFIG_I2O_PROC is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+# CONFIG_ETHERTAP is not set
+# CONFIG_NET_SB1000 is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI5010=m
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_SKMC=m
+CONFIG_NE2_MCA=m
+CONFIG_IBMLANA=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_CS89x0=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_DE4X5=m
+CONFIG_DGRS=m
+CONFIG_DM9102=m
+# CONFIG_EEPRO100 is not set
+# CONFIG_EEPRO100_PIO is not set
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_FORCEDETH=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_WINBOND_840=m
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+# CONFIG_MYRI_SBUS is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SK98LIN=m
+CONFIG_TIGON3=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+# CONFIG_STRIP is not set
+CONFIG_WAVELAN=m
+CONFIG_ARLAN=m
+CONFIG_AIRONET4500=m
+CONFIG_AIRONET4500_NONCS=m
+CONFIG_AIRONET4500_PNP=y
+CONFIG_AIRONET4500_PCI=y
+CONFIG_AIRONET4500_ISA=y
+CONFIG_AIRONET4500_I365=y
+# CONFIG_AIRONET4500_PROC is not set
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_PCI_HERMES=m
+
+#
+# Wireless Pcmcia cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+# CONFIG_PCMCIA_ATMEL is not set
+
+#
+# Prism54 PCI/PCMCIA GT/Duette Driver - 802.11(a/b/g)
+#
+CONFIG_PRISM54=m
+CONFIG_FW_LOADER=m
+CONFIG_NET_WIRELESS=y
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+CONFIG_NET_FC=y
+# CONFIG_IPHASE5526 is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_ARCNET_COM20020_CS is not set
+# CONFIG_PCMCIA_IBMTR is not set
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCMCIA_XIRTULIP=m
+CONFIG_NET_PCMCIA_RADIO=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_PCMCIA_WAVELAN=m
+# CONFIG_AIRONET4500_CS is not set
+
+#
+# ATM drivers
+#
+CONFIG_ATM_TCP=m
+# CONFIG_ATM_LANAI is not set
+# CONFIG_ATM_ENI is not set
+# CONFIG_ATM_FIRESTREAM is not set
+# CONFIG_ATM_ZATM is not set
+# CONFIG_ATM_NICSTAR is not set
+# CONFIG_ATM_IDT77252 is not set
+# CONFIG_ATM_AMBASSADOR is not set
+# CONFIG_ATM_HORIZON is not set
+# CONFIG_ATM_IA is not set
+# CONFIG_ATM_FORE200E_MAYBE is not set
+# CONFIG_ATM_HE is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+CONFIG_ISDN=m
+CONFIG_ISDN_BOOL=y
+CONFIG_ISDN_PPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+# CONFIG_ISDN_AUDIO is not set
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DRV_LOOP is not set
+# CONFIG_ISDN_DIVERSION is not set
+
+#
+# low-level hardware drivers
+#
+
+#
+# Passive ISDN cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+CONFIG_ISDN_HISAX=y
+
+#
+#   D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+CONFIG_HISAX_NO_SENDCOMPLETE=y
+CONFIG_HISAX_NO_LLC=y
+CONFIG_HISAX_NO_KEYPAD=y
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+#   HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+# CONFIG_USB_AUERISDN is not set
+
+#
+# Active ISDN cards
+#
+# CONFIG_ISDN_DRV_ICN is not set
+# CONFIG_ISDN_DRV_PCBIT is not set
+# CONFIG_ISDN_DRV_SC is not set
+# CONFIG_ISDN_DRV_ACT2000 is not set
+# CONFIG_ISDN_DRV_EICON is not set
+# CONFIG_ISDN_DRV_TPAM is not set
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCI is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCIV4 is not set
+# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCMCIA is not set
+# CONFIG_ISDN_DRV_AVMB1_AVM_CS is not set
+# CONFIG_ISDN_DRV_AVMB1_T1PCI is not set
+# CONFIG_ISDN_DRV_AVMB1_C4 is not set
+# CONFIG_HYSDN is not set
+# CONFIG_HYSDN_CAPI is not set
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Input core support
+#
+CONFIG_INPUT=m
+CONFIG_INPUT_KEYBDEV=m
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_FRANDOM=y
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+CONFIG_SERIAL_SHARE_IRQ=y
+# CONFIG_SERIAL_DETECT_IRQ is not set
+# CONFIG_SERIAL_MULTIPORT is not set
+# CONFIG_HUB6 is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_DIGI is not set
+# CONFIG_ESPSERIAL is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+# CONFIG_INPUT_NS558 is not set
+# CONFIG_INPUT_LIGHTNING is not set
+# CONFIG_INPUT_PCIGAME is not set
+# CONFIG_INPUT_CS461X is not set
+# CONFIG_INPUT_EMU10K1 is not set
+# CONFIG_INPUT_SERIO is not set
+# CONFIG_INPUT_SERPORT is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_ANALOG is not set
+# CONFIG_INPUT_A3D is not set
+# CONFIG_INPUT_ADI is not set
+# CONFIG_INPUT_COBRA is not set
+# CONFIG_INPUT_GF2K is not set
+# CONFIG_INPUT_GRIP is not set
+# CONFIG_INPUT_INTERACT is not set
+# CONFIG_INPUT_TMDC is not set
+# CONFIG_INPUT_SIDEWINDER is not set
+# CONFIG_INPUT_IFORCE_USB is not set
+# CONFIG_INPUT_IFORCE_232 is not set
+# CONFIG_INPUT_WARRIOR is not set
+# CONFIG_INPUT_MAGELLAN is not set
+# CONFIG_INPUT_SPACEORB is not set
+# CONFIG_INPUT_SPACEBALL is not set
+# CONFIG_INPUT_STINGER is not set
+# CONFIG_INPUT_DB9 is not set
+# CONFIG_INPUT_GAMECON is not set
+# CONFIG_INPUT_TURBOGRAFX is not set
+# CONFIG_QIC02_TAPE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_IPMI_PANIC_EVENT is not set
+# CONFIG_IPMI_DEVICE_INTERFACE is not set
+# CONFIG_IPMI_KCS is not set
+# CONFIG_IPMI_WATCHDOG is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_SCx200 is not set
+# CONFIG_SCx200_GPIO is not set
+# CONFIG_AMD_RNG is not set
+# CONFIG_INTEL_RNG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+CONFIG_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_SONYPI is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+
+#
+# Direct Rendering Manager (XFree86 DRI support)
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_PCMCIA_SERIAL_CS=m
+CONFIG_SYNCLINK_CS=m
+# CONFIG_MWAVE is not set
+# CONFIG_OBMOUSE is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+# CONFIG_QFMT_V2 is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_JBD is not set
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FAT_FS=m
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+CONFIG_VFAT_FS=m
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_TRACE is not set
+# CONFIG_XFS_DEBUG is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+# CONFIG_NFS_FS is not set
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_ROOT_NFS is not set
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+# CONFIG_SUNRPC is not set
+# CONFIG_LOCKD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_SMB_NLS is not set
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="cp437"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_SELECT=y
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_UHCI=m
+CONFIG_USB_UHCI_ALT=m
+CONFIG_USB_OHCI=m
+# CONFIG_USB_SL811HS_ALT is not set
+# CONFIG_USB_SL811HS is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_MIDI is not set
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_HP8200e is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+CONFIG_USB_ACM=m
+# CONFIG_USB_PRINTER is not set
+
+#
+# USB Human Interface Devices (HID)
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_HIDDEV=y
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_HPUSBSCSI is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+#   Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network adaptors
+#
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDCETHER=m
+CONFIG_USB_USBNET=m
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_TIGL is not set
+# CONFIG_USB_BRLVGER is not set
+# CONFIG_USB_LCD is not set
+CONFIG_USB_SPEEDTOUCH=m
+
+#
+# Support for USB gadgets
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=0
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Library routines
+#
+# CONFIG_CRC32 is not set
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_FW_LOADER=m
diff --git a/config/kernel/kernel.config.i386.original b/config/kernel/kernel.config.i386.original
new file mode 100644 (file)
index 0000000..52ec1b2
--- /dev/null
@@ -0,0 +1,1474 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_X86=y
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+CONFIG_M386=y
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MELAN is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP2 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_X86_CMPXCHG is not set
+# CONFIG_X86_XADD is not set
+CONFIG_X86_L1_CACHE_SHIFT=4
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_X86_PPRO_FENCE=y
+# CONFIG_X86_F00F_WORKS_OK is not set
+CONFIG_X86_MCE=y
+# CONFIG_TOSHIBA is not set
+# CONFIG_I8K is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_MSR is not set
+# CONFIG_X86_CPUID is not set
+# CONFIG_EDD is not set
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHIO is not set
+CONFIG_MATH_EMULATION=y
+# CONFIG_MTRR is not set
+# CONFIG_SMP is not set
+# CONFIG_X86_UP_APIC is not set
+# CONFIG_X86_UP_IOAPIC is not set
+# CONFIG_X86_TSC_DISABLE is not set
+
+#
+# General setup
+#
+CONFIG_NET=y
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_ISA=y
+# CONFIG_PCI_NAMES is not set
+CONFIG_EISA=y
+CONFIG_MCA=y
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_TCIC=y
+CONFIG_I82092=y
+CONFIG_I82365=y
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+# CONFIG_HOTPLUG_PCI_ACPI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set
+# CONFIG_HOTPLUG_PCI_PCIE is not set
+# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_OOM_KILLER is not set
+CONFIG_PM=y
+CONFIG_APM=m
+CONFIG_APM_IGNORE_USER_SUSPEND=y
+# CONFIG_APM_DO_ENABLE is not set
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+CONFIG_APM_RTC_IS_GMT=y
+# CONFIG_APM_ALLOW_INTS is not set
+# CONFIG_APM_REAL_MODE_POWER_OFF is not set
+
+#
+# ACPI Support
+#
+CONFIG_ACPI=y
+CONFIG_ACPI_BOOT=y
+CONFIG_ACPI_BUS=y
+CONFIG_ACPI_INTERPRETER=y
+CONFIG_ACPI_EC=y
+CONFIG_ACPI_POWER=y
+CONFIG_ACPI_PCI=y
+CONFIG_ACPI_MMCONFIG=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SYSTEM=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_ASUS is not set
+# CONFIG_ACPI_TOSHIBA is not set
+# CONFIG_ACPI_DEBUG is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+CONFIG_PNP=m
+CONFIG_ISAPNP=m
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=y
+CONFIG_BLK_DEV_PS2=y
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_CISS_MONITOR_THREAD is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=5120
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+# CONFIG_NETLINK_DEV is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_FWMARK is not set
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+CONFIG_SYN_COOKIES=y
+
+#
+#   IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_CT_PROTO_GRE=m
+CONFIG_IP_NF_PPTP=m
+# CONFIG_IP_NF_PPTP_DEBUG is not set
+CONFIG_IP_NF_H323=m
+# CONFIG_IP_NF_AMANDA is not set
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_QUAKE3=m
+CONFIG_IP_NF_RTSP=m
+CONFIG_IP_NF_MMS=m
+CONFIG_IP_NF_CUSEEME=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_SET=m
+CONFIG_IP_NF_SET_MAX=256
+CONFIG_IP_NF_SET_HASHSIZE=1024
+CONFIG_IP_NF_MATCH_SET=m
+CONFIG_IP_NF_TARGET_SET=m
+CONFIG_IP_NF_SET_IPMAP=m
+CONFIG_IP_NF_SET_PORTMAP=m
+CONFIG_IP_NF_SET_MACIPMAP=m
+CONFIG_IP_NF_SET_IPHASH=m
+CONFIG_IP_NF_SET_NETHASH=m
+CONFIG_IP_NF_SET_IPPORTHASH=m
+CONFIG_IP_NF_SET_IPTREE=m
+CONFIG_IP_NF_MATCH_QUOTA=m
+CONFIG_IP_NF_POOL=m
+CONFIG_IP_POOL_STATISTICS=y
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_DSTLIMIT=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_MPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_TIME=m
+CONFIG_IP_NF_MATCH_RANDOM=m
+CONFIG_IP_NF_MATCH_PSD=m
+CONFIG_IP_NF_MATCH_OSF=m
+CONFIG_IP_NF_MATCH_NTH=m
+CONFIG_IP_NF_MATCH_IPV4OPTIONS=m
+CONFIG_IP_NF_MATCH_FUZZY=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_U32=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNLIMIT=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_UNCLEAN=m
+CONFIG_IP_NF_MATCH_STRING=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_NETLINK=m
+CONFIG_IP_NF_TARGET_IPV4OPTSSTRIP=m
+CONFIG_IP_NF_TARGET_MIRROR=m
+CONFIG_IP_NF_TARGET_TARPIT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_NAT_H323=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_NAT_PPTP=m
+CONFIG_IP_NF_NAT_PROTO_GRE=m
+# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
+CONFIG_IP_NF_NAT_RTSP=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_QUAKE3=m
+CONFIG_IP_NF_NAT_MMS=m
+CONFIG_IP_NF_NAT_CUSEEME=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
+
+#
+#   IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+
+#
+#    SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+CONFIG_ATM_CLIP_NO_ICMP=y
+# CONFIG_ATM_LANE is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_VLAN_8021Q=m
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_CSZ=m
+CONFIG_NET_SCH_HFSC=m
+# CONFIG_NET_SCH_ATM is not set
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+# CONFIG_NET_SCH_NETEM is not set
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_POLICE=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_IPSEC=m
+
+#
+# IPSec options (FreeS/WAN)
+#
+CONFIG_IPSEC_IPIP=y
+CONFIG_IPSEC_AH=y
+CONFIG_IPSEC_AUTH_HMAC_MD5=y
+CONFIG_IPSEC_AUTH_HMAC_SHA1=y
+CONFIG_IPSEC_ESP=y
+CONFIG_IPSEC_ENC_3DES=y
+CONFIG_IPSEC_ALG=y
+CONFIG_IPSEC_ALG_MD5=m
+CONFIG_IPSEC_ALG_SHA1=m
+CONFIG_IPSEC_ALG_SHA2=m
+CONFIG_IPSEC_ALG_3DES=m
+CONFIG_IPSEC_ALG_AES=m
+CONFIG_IPSEC_ALG_BLOWFISH=m
+CONFIG_IPSEC_ALG_TWOFISH=m
+CONFIG_IPSEC_ALG_SERPENT=m
+CONFIG_IPSEC_ALG_CAST=m
+# CONFIG_IPSEC_ALG_NULL is not set
+# CONFIG_IPSEC_ALG_CRYPTOAPI is not set
+# CONFIG_IPSEC_ALG_1DES is not set
+CONFIG_IPSEC_IPCOMP=y
+CONFIG_IPSEC_DEBUG=y
+CONFIG_IPSEC_NAT_TRAVERSAL=y
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_BLK_DEV_CMD640=y
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+# CONFIG_BLK_DEV_ISAPNP is not set
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+CONFIG_BLK_DEV_ADMA100=y
+CONFIG_BLK_DEV_AEC62XX=y
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD74XX=y
+CONFIG_AMD74XX_OVERRIDE=y
+CONFIG_BLK_DEV_ATIIXP=y
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_BLK_DEV_HPT366=y
+CONFIG_BLK_DEV_PIIX=y
+CONFIG_BLK_DEV_NS87415=y
+CONFIG_BLK_DEV_OPTI621=y
+CONFIG_BLK_DEV_PDC202XX_OLD=y
+# CONFIG_PDC202XX_BURST is not set
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+# CONFIG_PDC202XX_FORCE is not set
+CONFIG_BLK_DEV_RZ1000=y
+CONFIG_BLK_DEV_SC1200=y
+CONFIG_BLK_DEV_SVWKS=y
+CONFIG_BLK_DEV_SIIMAGE=y
+CONFIG_BLK_DEV_SIS5513=y
+CONFIG_BLK_DEV_SLC90E66=y
+CONFIG_BLK_DEV_TRM290=y
+CONFIG_BLK_DEV_VIA82CXXX=y
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_PDC202XX=y
+CONFIG_BLK_DEV_ATARAID=m
+CONFIG_BLK_DEV_ATARAID_PDC=m
+CONFIG_BLK_DEV_ATARAID_HPT=m
+CONFIG_BLK_DEV_ATARAID_MEDLEY=m
+CONFIG_BLK_DEV_ATARAID_SII=m
+
+#
+# SCSI support
+#
+CONFIG_SCSI=m
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_SD_EXTRA_DEVS=8
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_SR_EXTRA_DEVS=2
+CONFIG_CHR_DEV_SG=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_PROBE_EISA_VL=y
+# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
+CONFIG_AIC79XX_ENABLE_RD_STRM=y
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_MEGARAID2=m
+CONFIG_SCSI_SATA=y
+CONFIG_SCSI_SATA_AHCI=m
+CONFIG_SCSI_SATA_SVW=m
+CONFIG_SCSI_ATA_PIIX=m
+CONFIG_SCSI_SATA_NV=m
+CONFIG_SCSI_SATA_QSTOR=m
+CONFIG_SCSI_SATA_PROMISE=m
+CONFIG_SCSI_SATA_SX4=m
+CONFIG_SCSI_SATA_SIL=m
+CONFIG_SCSI_SATA_SIS=m
+CONFIG_SCSI_SATA_ULI=m
+CONFIG_SCSI_SATA_VIA=m
+CONFIG_SCSI_SATA_VITESSE=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_CPQFCTS=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_DMA=m
+CONFIG_SCSI_EATA_PIO=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_FD_MCS=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_G_NCR5380_PORT=y
+# CONFIG_SCSI_G_NCR5380_MEM is not set
+CONFIG_SCSI_IBMMCA=m
+CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y
+CONFIG_IBMMCA_SCSI_DEV_RESET=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_NCR_D700=m
+CONFIG_53C700_IO_MAPPED=y
+CONFIG_SCSI_NCR53C7xx=m
+CONFIG_SCSI_NCR53C7xx_sync=y
+CONFIG_SCSI_NCR53C7xx_FAST=y
+CONFIG_SCSI_NCR53C7xx_DISCONNECT=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX=m
+CONFIG_SCSI_SYM53C8XX=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=4
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX_PQS_PDS=y
+# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
+CONFIG_SCSI_MCA_53C9X=m
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_PCI2000=m
+CONFIG_SCSI_PCI2220I=m
+CONFIG_SCSI_PSI240I=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_ISP=m
+CONFIG_SCSI_QLOGIC_FC=m
+# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SEAGATE=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DC390T_NOGENSUPP is not set
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_SCSI_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=m
+# CONFIG_FUSION_BOOT is not set
+CONFIG_FUSION_MAX_SGE=40
+# CONFIG_FUSION_ISENSE is not set
+# CONFIG_FUSION_CTL is not set
+CONFIG_FUSION_LAN=m
+CONFIG_NET_FC=y
+
+#
+# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_I2O_PCI is not set
+# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
+# CONFIG_I2O_SCSI is not set
+# CONFIG_I2O_PROC is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+# CONFIG_ETHERTAP is not set
+# CONFIG_NET_SB1000 is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI5010=m
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_SKMC=m
+CONFIG_NE2_MCA=m
+CONFIG_IBMLANA=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_CS89x0=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_DE4X5=m
+CONFIG_DGRS=m
+CONFIG_DM9102=m
+# CONFIG_EEPRO100 is not set
+# CONFIG_EEPRO100_PIO is not set
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_FORCEDETH=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_WINBOND_840=m
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+# CONFIG_MYRI_SBUS is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SK98LIN=m
+CONFIG_TIGON3=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+# CONFIG_STRIP is not set
+CONFIG_WAVELAN=m
+CONFIG_ARLAN=m
+CONFIG_AIRONET4500=m
+CONFIG_AIRONET4500_NONCS=m
+CONFIG_AIRONET4500_PNP=y
+CONFIG_AIRONET4500_PCI=y
+CONFIG_AIRONET4500_ISA=y
+CONFIG_AIRONET4500_I365=y
+# CONFIG_AIRONET4500_PROC is not set
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_PCI_HERMES=m
+
+#
+# Wireless Pcmcia cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+# CONFIG_PCMCIA_ATMEL is not set
+
+#
+# Prism54 PCI/PCMCIA GT/Duette Driver - 802.11(a/b/g)
+#
+CONFIG_PRISM54=m
+CONFIG_FW_LOADER=m
+CONFIG_NET_WIRELESS=y
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+CONFIG_NET_FC=y
+# CONFIG_IPHASE5526 is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_ARCNET_COM20020_CS is not set
+# CONFIG_PCMCIA_IBMTR is not set
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCMCIA_XIRTULIP=m
+CONFIG_NET_PCMCIA_RADIO=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_PCMCIA_WAVELAN=m
+# CONFIG_AIRONET4500_CS is not set
+
+#
+# ATM drivers
+#
+CONFIG_ATM_TCP=m
+# CONFIG_ATM_LANAI is not set
+# CONFIG_ATM_ENI is not set
+# CONFIG_ATM_FIRESTREAM is not set
+# CONFIG_ATM_ZATM is not set
+# CONFIG_ATM_NICSTAR is not set
+# CONFIG_ATM_IDT77252 is not set
+# CONFIG_ATM_AMBASSADOR is not set
+# CONFIG_ATM_HORIZON is not set
+# CONFIG_ATM_IA is not set
+# CONFIG_ATM_FORE200E_MAYBE is not set
+# CONFIG_ATM_HE is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+CONFIG_ISDN=m
+CONFIG_ISDN_BOOL=y
+CONFIG_ISDN_PPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+# CONFIG_ISDN_AUDIO is not set
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DRV_LOOP is not set
+# CONFIG_ISDN_DIVERSION is not set
+
+#
+# low-level hardware drivers
+#
+
+#
+# Passive ISDN cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+CONFIG_ISDN_HISAX=y
+
+#
+#   D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+CONFIG_HISAX_NO_SENDCOMPLETE=y
+CONFIG_HISAX_NO_LLC=y
+CONFIG_HISAX_NO_KEYPAD=y
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+#   HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+# CONFIG_USB_AUERISDN is not set
+
+#
+# Active ISDN cards
+#
+# CONFIG_ISDN_DRV_ICN is not set
+# CONFIG_ISDN_DRV_PCBIT is not set
+# CONFIG_ISDN_DRV_SC is not set
+# CONFIG_ISDN_DRV_ACT2000 is not set
+# CONFIG_ISDN_DRV_EICON is not set
+# CONFIG_ISDN_DRV_TPAM is not set
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCI is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCIV4 is not set
+# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCMCIA is not set
+# CONFIG_ISDN_DRV_AVMB1_AVM_CS is not set
+# CONFIG_ISDN_DRV_AVMB1_T1PCI is not set
+# CONFIG_ISDN_DRV_AVMB1_C4 is not set
+# CONFIG_HYSDN is not set
+# CONFIG_HYSDN_CAPI is not set
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Input core support
+#
+CONFIG_INPUT=m
+CONFIG_INPUT_KEYBDEV=m
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_FRANDOM=y
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+CONFIG_SERIAL_SHARE_IRQ=y
+# CONFIG_SERIAL_DETECT_IRQ is not set
+# CONFIG_SERIAL_MULTIPORT is not set
+# CONFIG_HUB6 is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_DIGI is not set
+# CONFIG_ESPSERIAL is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+# CONFIG_INPUT_NS558 is not set
+# CONFIG_INPUT_LIGHTNING is not set
+# CONFIG_INPUT_PCIGAME is not set
+# CONFIG_INPUT_CS461X is not set
+# CONFIG_INPUT_EMU10K1 is not set
+# CONFIG_INPUT_SERIO is not set
+# CONFIG_INPUT_SERPORT is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_ANALOG is not set
+# CONFIG_INPUT_A3D is not set
+# CONFIG_INPUT_ADI is not set
+# CONFIG_INPUT_COBRA is not set
+# CONFIG_INPUT_GF2K is not set
+# CONFIG_INPUT_GRIP is not set
+# CONFIG_INPUT_INTERACT is not set
+# CONFIG_INPUT_TMDC is not set
+# CONFIG_INPUT_SIDEWINDER is not set
+# CONFIG_INPUT_IFORCE_USB is not set
+# CONFIG_INPUT_IFORCE_232 is not set
+# CONFIG_INPUT_WARRIOR is not set
+# CONFIG_INPUT_MAGELLAN is not set
+# CONFIG_INPUT_SPACEORB is not set
+# CONFIG_INPUT_SPACEBALL is not set
+# CONFIG_INPUT_STINGER is not set
+# CONFIG_INPUT_DB9 is not set
+# CONFIG_INPUT_GAMECON is not set
+# CONFIG_INPUT_TURBOGRAFX is not set
+# CONFIG_QIC02_TAPE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_IPMI_PANIC_EVENT is not set
+# CONFIG_IPMI_DEVICE_INTERFACE is not set
+# CONFIG_IPMI_KCS is not set
+# CONFIG_IPMI_WATCHDOG is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_SCx200 is not set
+# CONFIG_SCx200_GPIO is not set
+# CONFIG_AMD_RNG is not set
+# CONFIG_INTEL_RNG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+CONFIG_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_SONYPI is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+
+#
+# Direct Rendering Manager (XFree86 DRI support)
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_PCMCIA_SERIAL_CS=m
+CONFIG_SYNCLINK_CS=m
+# CONFIG_MWAVE is not set
+# CONFIG_OBMOUSE is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+# CONFIG_QFMT_V2 is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+CONFIG_EXT3_FS=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FAT_FS=m
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+CONFIG_VFAT_FS=m
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_TRACE is not set
+# CONFIG_XFS_DEBUG is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+# CONFIG_NFS_FS is not set
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_ROOT_NFS is not set
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+# CONFIG_SUNRPC is not set
+# CONFIG_LOCKD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_SMB_NLS is not set
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="cp437"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_SELECT=y
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_UHCI=m
+CONFIG_USB_UHCI_ALT=m
+CONFIG_USB_OHCI=m
+# CONFIG_USB_SL811HS_ALT is not set
+# CONFIG_USB_SL811HS is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_MIDI is not set
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_HP8200e is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+CONFIG_USB_ACM=m
+# CONFIG_USB_PRINTER is not set
+
+#
+# USB Human Interface Devices (HID)
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_HIDDEV=y
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_HPUSBSCSI is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+#   Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network adaptors
+#
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDCETHER=m
+CONFIG_USB_USBNET=m
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_TIGL is not set
+# CONFIG_USB_BRLVGER is not set
+# CONFIG_USB_LCD is not set
+CONFIG_USB_SPEEDTOUCH=m
+
+#
+# Support for USB gadgets
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=0
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Library routines
+#
+# CONFIG_CRC32 is not set
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_FW_LOADER=m
diff --git a/config/kernel/kernel.config.i386.smp b/config/kernel/kernel.config.i386.smp
new file mode 100644 (file)
index 0000000..b40d420
--- /dev/null
@@ -0,0 +1,1478 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_X86=y
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+CONFIG_M386=y
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MELAN is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP2 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_X86_CMPXCHG is not set
+# CONFIG_X86_XADD is not set
+CONFIG_X86_L1_CACHE_SHIFT=4
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_X86_PPRO_FENCE=y
+# CONFIG_X86_F00F_WORKS_OK is not set
+CONFIG_X86_MCE=y
+# CONFIG_TOSHIBA is not set
+# CONFIG_I8K is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_MSR is not set
+# CONFIG_X86_CPUID is not set
+# CONFIG_EDD is not set
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHIO is not set
+CONFIG_MATH_EMULATION=y
+# CONFIG_MTRR is not set
+CONFIG_SMP=y
+CONFIG_NR_CPUS=32
+# CONFIG_X86_NUMA is not set
+# CONFIG_X86_TSC_DISABLE is not set
+
+#
+# General setup
+#
+CONFIG_NET=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_ISA=y
+# CONFIG_PCI_NAMES is not set
+CONFIG_EISA=y
+CONFIG_MCA=y
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_TCIC=y
+CONFIG_I82092=y
+CONFIG_I82365=y
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set
+# CONFIG_HOTPLUG_PCI_SHPC_PHPRM_LEGACY is not set
+# CONFIG_HOTPLUG_PCI_PCIE is not set
+# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
+# CONFIG_HOTPLUG_PCI_IBM is not set
+# CONFIG_HOTPLUG_PCI_ACPI is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_OOM_KILLER is not set
+CONFIG_PM=y
+CONFIG_APM=m
+CONFIG_APM_IGNORE_USER_SUSPEND=y
+# CONFIG_APM_DO_ENABLE is not set
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+CONFIG_APM_RTC_IS_GMT=y
+# CONFIG_APM_ALLOW_INTS is not set
+# CONFIG_APM_REAL_MODE_POWER_OFF is not set
+
+#
+# ACPI Support
+#
+CONFIG_ACPI=y
+CONFIG_ACPI_BOOT=y
+CONFIG_ACPI_BUS=y
+CONFIG_ACPI_INTERPRETER=y
+CONFIG_ACPI_EC=y
+CONFIG_ACPI_POWER=y
+CONFIG_ACPI_PCI=y
+CONFIG_ACPI_MMCONFIG=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SYSTEM=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_ASUS is not set
+# CONFIG_ACPI_TOSHIBA is not set
+# CONFIG_ACPI_DEBUG is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+CONFIG_PNP=m
+CONFIG_ISAPNP=m
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=y
+CONFIG_BLK_DEV_PS2=y
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+CONFIG_CISS_SCSI_TAPE=n
+CONFIG_CISS_MONITOR_THREAD=n
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=5120
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+# CONFIG_NETLINK_DEV is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_FWMARK is not set
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+CONFIG_SYN_COOKIES=y
+
+#
+#   IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_CT_PROTO_GRE=m
+CONFIG_IP_NF_PPTP=m
+# CONFIG_IP_NF_PPTP_DEBUG is not set
+CONFIG_IP_NF_H323=m
+# CONFIG_IP_NF_AMANDA is not set
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_QUAKE3=m
+CONFIG_IP_NF_RTSP=m
+CONFIG_IP_NF_MMS=m
+CONFIG_IP_NF_CUSEEME=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_SET=m
+CONFIG_IP_NF_SET_MAX=256
+CONFIG_IP_NF_SET_HASHSIZE=1024
+CONFIG_IP_NF_MATCH_SET=m
+CONFIG_IP_NF_TARGET_SET=m
+CONFIG_IP_NF_SET_IPMAP=m
+CONFIG_IP_NF_SET_PORTMAP=m
+CONFIG_IP_NF_SET_MACIPMAP=m
+CONFIG_IP_NF_SET_IPHASH=m
+CONFIG_IP_NF_SET_NETHASH=m
+CONFIG_IP_NF_SET_IPPORTHASH=m
+CONFIG_IP_NF_SET_IPTREE=m
+CONFIG_IP_NF_MATCH_QUOTA=m
+CONFIG_IP_NF_POOL=m
+CONFIG_IP_POOL_STATISTICS=y
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_DSTLIMIT=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_MPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_TIME=m
+CONFIG_IP_NF_MATCH_RANDOM=m
+CONFIG_IP_NF_MATCH_PSD=m
+CONFIG_IP_NF_MATCH_OSF=m
+CONFIG_IP_NF_MATCH_NTH=m
+CONFIG_IP_NF_MATCH_IPV4OPTIONS=m
+CONFIG_IP_NF_MATCH_FUZZY=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_U32=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNLIMIT=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_UNCLEAN=m
+CONFIG_IP_NF_MATCH_STRING=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_NETLINK=m
+CONFIG_IP_NF_TARGET_IPV4OPTSSTRIP=m
+CONFIG_IP_NF_TARGET_MIRROR=m
+CONFIG_IP_NF_TARGET_TARPIT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_NAT_H323=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_NAT_PPTP=m
+CONFIG_IP_NF_NAT_PROTO_GRE=m
+# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
+CONFIG_IP_NF_NAT_RTSP=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_QUAKE3=m
+CONFIG_IP_NF_NAT_MMS=m
+CONFIG_IP_NF_NAT_CUSEEME=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
+
+#
+#   IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+
+#
+#    SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+CONFIG_ATM_CLIP_NO_ICMP=y
+# CONFIG_ATM_LANE is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_VLAN_8021Q=m
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_CSZ=m
+CONFIG_NET_SCH_HFSC=m
+# CONFIG_NET_SCH_ATM is not set
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+# CONFIG_NET_SCH_NETEM is not set
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_POLICE=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_IPSEC=m
+
+#
+# IPSec options (FreeS/WAN)
+#
+CONFIG_IPSEC_IPIP=y
+CONFIG_IPSEC_AH=y
+CONFIG_IPSEC_AUTH_HMAC_MD5=y
+CONFIG_IPSEC_AUTH_HMAC_SHA1=y
+CONFIG_IPSEC_ESP=y
+CONFIG_IPSEC_ENC_3DES=y
+CONFIG_IPSEC_ALG=y
+CONFIG_IPSEC_ALG_MD5=m
+CONFIG_IPSEC_ALG_SHA1=m
+CONFIG_IPSEC_ALG_SHA2=m
+CONFIG_IPSEC_ALG_3DES=m
+CONFIG_IPSEC_ALG_AES=m
+CONFIG_IPSEC_ALG_BLOWFISH=m
+CONFIG_IPSEC_ALG_TWOFISH=m
+CONFIG_IPSEC_ALG_SERPENT=m
+CONFIG_IPSEC_ALG_CAST=m
+# CONFIG_IPSEC_ALG_NULL is not set
+# CONFIG_IPSEC_ALG_CRYPTOAPI is not set
+# CONFIG_IPSEC_ALG_1DES is not set
+CONFIG_IPSEC_IPCOMP=y
+CONFIG_IPSEC_DEBUG=y
+CONFIG_IPSEC_NAT_TRAVERSAL=y
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_BLK_DEV_CMD640=y
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+# CONFIG_BLK_DEV_ISAPNP is not set
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+CONFIG_BLK_DEV_ADMA100=y
+CONFIG_BLK_DEV_AEC62XX=y
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD74XX=y
+CONFIG_AMD74XX_OVERRIDE=y
+CONFIG_BLK_DEV_ATIIXP=y
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_BLK_DEV_HPT366=y
+CONFIG_BLK_DEV_PIIX=y
+CONFIG_BLK_DEV_NS87415=y
+CONFIG_BLK_DEV_OPTI621=y
+CONFIG_BLK_DEV_PDC202XX_OLD=y
+# CONFIG_PDC202XX_BURST is not set
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+# CONFIG_PDC202XX_FORCE is not set
+CONFIG_BLK_DEV_RZ1000=y
+CONFIG_BLK_DEV_SC1200=y
+CONFIG_BLK_DEV_SVWKS=y
+CONFIG_BLK_DEV_SIIMAGE=y
+CONFIG_BLK_DEV_SIS5513=y
+CONFIG_BLK_DEV_SLC90E66=y
+CONFIG_BLK_DEV_TRM290=y
+CONFIG_BLK_DEV_VIA82CXXX=y
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_PDC202XX=y
+CONFIG_BLK_DEV_ATARAID=m
+CONFIG_BLK_DEV_ATARAID_PDC=m
+CONFIG_BLK_DEV_ATARAID_HPT=m
+CONFIG_BLK_DEV_ATARAID_MEDLEY=m
+CONFIG_BLK_DEV_ATARAID_SII=m
+
+#
+# SCSI support
+#
+CONFIG_SCSI=m
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_SD_EXTRA_DEVS=8
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_SR_EXTRA_DEVS=2
+CONFIG_CHR_DEV_SG=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_PROBE_EISA_VL=y
+# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
+CONFIG_AIC79XX_ENABLE_RD_STRM=y
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_MEGARAID2=m
+CONFIG_SCSI_SATA=y
+CONFIG_SCSI_SATA_AHCI=m
+CONFIG_SCSI_SATA_SVW=m
+CONFIG_SCSI_ATA_PIIX=m
+CONFIG_SCSI_SATA_NV=m
+CONFIG_SCSI_SATA_QSTOR=m
+CONFIG_SCSI_SATA_PROMISE=m
+CONFIG_SCSI_SATA_SX4=m
+CONFIG_SCSI_SATA_SIL=m
+CONFIG_SCSI_SATA_SIS=m
+CONFIG_SCSI_SATA_ULI=m
+CONFIG_SCSI_SATA_VIA=m
+CONFIG_SCSI_SATA_VITESSE=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_CPQFCTS=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_DMA=m
+CONFIG_SCSI_EATA_PIO=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_FD_MCS=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_G_NCR5380_PORT=y
+# CONFIG_SCSI_G_NCR5380_MEM is not set
+CONFIG_SCSI_IBMMCA=m
+CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y
+CONFIG_IBMMCA_SCSI_DEV_RESET=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_NCR_D700=m
+CONFIG_53C700_IO_MAPPED=y
+CONFIG_SCSI_NCR53C7xx=m
+CONFIG_SCSI_NCR53C7xx_sync=y
+CONFIG_SCSI_NCR53C7xx_FAST=y
+CONFIG_SCSI_NCR53C7xx_DISCONNECT=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX=m
+CONFIG_SCSI_SYM53C8XX=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=4
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX_PQS_PDS=y
+# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
+CONFIG_SCSI_MCA_53C9X=m
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_PCI2000=m
+CONFIG_SCSI_PCI2220I=m
+CONFIG_SCSI_PSI240I=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_ISP=m
+CONFIG_SCSI_QLOGIC_FC=m
+# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SEAGATE=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DC390T_NOGENSUPP is not set
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_SCSI_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=m
+# CONFIG_FUSION_BOOT is not set
+CONFIG_FUSION_MAX_SGE=40
+# CONFIG_FUSION_ISENSE is not set
+# CONFIG_FUSION_CTL is not set
+CONFIG_FUSION_LAN=m
+CONFIG_NET_FC=y
+
+#
+# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_I2O_PCI is not set
+# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
+# CONFIG_I2O_SCSI is not set
+# CONFIG_I2O_PROC is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+# CONFIG_ETHERTAP is not set
+# CONFIG_NET_SB1000 is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI5010=m
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_SKMC=m
+CONFIG_NE2_MCA=m
+CONFIG_IBMLANA=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_CS89x0=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_DE4X5=m
+CONFIG_DGRS=m
+CONFIG_DM9102=m
+# CONFIG_EEPRO100 is not set
+# CONFIG_EEPRO100_PIO is not set
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_FORCEDETH=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_WINBOND_840=m
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+# CONFIG_MYRI_SBUS is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SK98LIN=m
+CONFIG_TIGON3=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+# CONFIG_STRIP is not set
+CONFIG_WAVELAN=m
+CONFIG_ARLAN=m
+CONFIG_AIRONET4500=m
+CONFIG_AIRONET4500_NONCS=m
+CONFIG_AIRONET4500_PNP=y
+CONFIG_AIRONET4500_PCI=y
+CONFIG_AIRONET4500_ISA=y
+CONFIG_AIRONET4500_I365=y
+# CONFIG_AIRONET4500_PROC is not set
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_PCI_HERMES=m
+
+#
+# Wireless Pcmcia cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+# CONFIG_PCMCIA_ATMEL is not set
+
+#
+# Prism54 PCI/PCMCIA GT/Duette Driver - 802.11(a/b/g)
+#
+CONFIG_PRISM54=m
+CONFIG_FW_LOADER=m
+CONFIG_NET_WIRELESS=y
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+CONFIG_NET_FC=y
+# CONFIG_IPHASE5526 is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_ARCNET_COM20020_CS is not set
+# CONFIG_PCMCIA_IBMTR is not set
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCMCIA_XIRTULIP=m
+CONFIG_NET_PCMCIA_RADIO=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_PCMCIA_WAVELAN=m
+# CONFIG_AIRONET4500_CS is not set
+
+#
+# ATM drivers
+#
+CONFIG_ATM_TCP=m
+# CONFIG_ATM_LANAI is not set
+# CONFIG_ATM_ENI is not set
+# CONFIG_ATM_FIRESTREAM is not set
+# CONFIG_ATM_ZATM is not set
+# CONFIG_ATM_NICSTAR is not set
+# CONFIG_ATM_IDT77252 is not set
+# CONFIG_ATM_AMBASSADOR is not set
+# CONFIG_ATM_HORIZON is not set
+# CONFIG_ATM_IA is not set
+# CONFIG_ATM_FORE200E_MAYBE is not set
+# CONFIG_ATM_HE is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+CONFIG_ISDN=m
+CONFIG_ISDN_BOOL=y
+CONFIG_ISDN_PPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DRV_LOOP is not set
+# CONFIG_ISDN_DIVERSION is not set
+
+#
+# low-level hardware drivers
+#
+
+#
+# Passive ISDN cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+CONFIG_ISDN_HISAX=y
+
+#
+#   D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+CONFIG_HISAX_NO_SENDCOMPLETE=y
+CONFIG_HISAX_NO_LLC=y
+CONFIG_HISAX_NO_KEYPAD=y
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+#   HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+# CONFIG_USB_AUERISDN is not set
+
+#
+# Active ISDN cards
+#
+# CONFIG_ISDN_DRV_ICN is not set
+# CONFIG_ISDN_DRV_PCBIT is not set
+# CONFIG_ISDN_DRV_SC is not set
+# CONFIG_ISDN_DRV_ACT2000 is not set
+# CONFIG_ISDN_DRV_EICON is not set
+# CONFIG_ISDN_DRV_TPAM is not set
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCI is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCIV4 is not set
+# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
+# CONFIG_ISDN_DRV_AVMB1_B1PCMCIA is not set
+# CONFIG_ISDN_DRV_AVMB1_AVM_CS is not set
+# CONFIG_ISDN_DRV_AVMB1_T1PCI is not set
+# CONFIG_ISDN_DRV_AVMB1_C4 is not set
+# CONFIG_HYSDN is not set
+# CONFIG_HYSDN_CAPI is not set
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Input core support
+#
+CONFIG_INPUT=m
+CONFIG_INPUT_KEYBDEV=m
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_FRANDOM=y
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+CONFIG_SERIAL_SHARE_IRQ=y
+# CONFIG_SERIAL_DETECT_IRQ is not set
+# CONFIG_SERIAL_MULTIPORT is not set
+# CONFIG_HUB6 is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_DIGI is not set
+# CONFIG_ESPSERIAL is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+# CONFIG_INPUT_NS558 is not set
+# CONFIG_INPUT_LIGHTNING is not set
+# CONFIG_INPUT_PCIGAME is not set
+# CONFIG_INPUT_CS461X is not set
+# CONFIG_INPUT_EMU10K1 is not set
+# CONFIG_INPUT_SERIO is not set
+# CONFIG_INPUT_SERPORT is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_ANALOG is not set
+# CONFIG_INPUT_A3D is not set
+# CONFIG_INPUT_ADI is not set
+# CONFIG_INPUT_COBRA is not set
+# CONFIG_INPUT_GF2K is not set
+# CONFIG_INPUT_GRIP is not set
+# CONFIG_INPUT_INTERACT is not set
+# CONFIG_INPUT_TMDC is not set
+# CONFIG_INPUT_SIDEWINDER is not set
+# CONFIG_INPUT_IFORCE_USB is not set
+# CONFIG_INPUT_IFORCE_232 is not set
+# CONFIG_INPUT_WARRIOR is not set
+# CONFIG_INPUT_MAGELLAN is not set
+# CONFIG_INPUT_SPACEORB is not set
+# CONFIG_INPUT_SPACEBALL is not set
+# CONFIG_INPUT_STINGER is not set
+# CONFIG_INPUT_DB9 is not set
+# CONFIG_INPUT_GAMECON is not set
+# CONFIG_INPUT_TURBOGRAFX is not set
+# CONFIG_QIC02_TAPE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_IPMI_PANIC_EVENT is not set
+# CONFIG_IPMI_DEVICE_INTERFACE is not set
+# CONFIG_IPMI_KCS is not set
+# CONFIG_IPMI_WATCHDOG is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_SCx200 is not set
+# CONFIG_SCx200_GPIO is not set
+# CONFIG_AMD_RNG is not set
+# CONFIG_INTEL_RNG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+CONFIG_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_SONYPI is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+
+#
+# Direct Rendering Manager (XFree86 DRI support)
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_PCMCIA_SERIAL_CS=m
+CONFIG_SYNCLINK_CS=m
+# CONFIG_MWAVE is not set
+# CONFIG_OBMOUSE is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+# CONFIG_QFMT_V2 is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+CONFIG_EXT3_FS=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FAT_FS=m
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+CONFIG_VFAT_FS=m
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_TRACE is not set
+# CONFIG_XFS_DEBUG is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+# CONFIG_NFS_FS is not set
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_ROOT_NFS is not set
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+# CONFIG_SUNRPC is not set
+# CONFIG_LOCKD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_SMB_NLS is not set
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="cp437"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_SELECT=y
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_UHCI=m
+CONFIG_USB_UHCI_ALT=m
+CONFIG_USB_OHCI=m
+# CONFIG_USB_SL811HS_ALT is not set
+# CONFIG_USB_SL811HS is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_MIDI is not set
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_HP8200e is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+CONFIG_USB_ACM=m
+# CONFIG_USB_PRINTER is not set
+
+#
+# USB Human Interface Devices (HID)
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_HIDDEV=y
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_HPUSBSCSI is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+#   Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network adaptors
+#
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDCETHER=m
+CONFIG_USB_USBNET=m
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_TIGL is not set
+# CONFIG_USB_BRLVGER is not set
+# CONFIG_USB_LCD is not set
+CONFIG_USB_SPEEDTOUCH=m
+
+#
+# Support for USB gadgets
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=0
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Library routines
+#
+# CONFIG_CRC32 is not set
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_FW_LOADER=m
diff --git a/config/kernel/syslinux.cfg b/config/kernel/syslinux.cfg
new file mode 100644 (file)
index 0000000..87282f4
--- /dev/null
@@ -0,0 +1,17 @@
+TIMEOUT 5000\r
+DISPLAY message\r
+PROMPT 1\r
+DEFAULT vmlinuz \r
+APPEND ide=nodma initrd=instroot.gz root=/dev/ram0 rw\r
+LABEL nopcmcia \r
+  KERNEL vmlinuz\r
+  APPEND ide=nodma initrd=instroot.gz root=/dev/ram0 rw nopcmcia\r
+LABEL nousb\r
+  KERNEL vmlinuz\r
+  APPEND ide=nodma initrd=instroot.gz root=/dev/ram0 rw nousb\r
+LABEL nousborpcmcia\r
+  KERNEL vmlinuz\r
+  APPEND ide=nodma initrd=instroot.gz root=/dev/ram0 rw nousb nopcmcia\r
+LABEL dma\r
+  KERNEL vmlinuz\r
+  APPEND initrd=instroot.gz root=/dev/ram0 rw\r
diff --git a/config/snort/CVS/Entries b/config/snort/CVS/Entries
new file mode 100644 (file)
index 0000000..f206f9c
--- /dev/null
@@ -0,0 +1,2 @@
+/snort.conf/1.6.2.1/Thu Apr 28 18:38:49 2005//TIPCOP_v1_4_0
+D
diff --git a/config/snort/CVS/Repository b/config/snort/CVS/Repository
new file mode 100644 (file)
index 0000000..9a9c45e
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/snort
diff --git a/config/snort/CVS/Root b/config/snort/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/snort/CVS/Tag b/config/snort/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/snort/snort.conf b/config/snort/snort.conf
new file mode 100644 (file)
index 0000000..382ded8
--- /dev/null
@@ -0,0 +1,123 @@
+###################################################
+#
+# This file contains the default snort configuration.
+# for all IPCop Versions
+# Unless you are totally happy with this file,please
+# only change whats needed
+#
+#  1) Set the network variables for your network
+#  2) Configure preprocessors
+#  3) Configure output plugins
+#  4) Customize your rule set
+#
+# $Id: snort.conf,v 1.6.2.1 2005/04/28 18:38:49 gespinasse Exp $
+#
+###################################################
+# Only area a user needs to edit
+include /etc/snort/vars
+var EXTERNAL_NET    !$HOME_NET
+var SMTP_SERVERS    $HOME_NET
+var HTTP_SERVERS    $HOME_NET
+var SQL_SERVERS     $HOME_NET
+var TELNET_SERVERS  $HOME_NET
+var HTTP_PORTS      80
+var SHELLCODE_PORTS !80
+var ORACLE_PORTS    1521
+var AIM_SERVERS     [64.12.24.0/24,64.12.25.0/24,64.12.26.14/24,64.12.28.0/24,64.12.29.0/24,64.12.161.0/24,64.12.163.0/24,205.188.5.0/24,205.188.9.0/24]
+var RULE_PATH       /etc/snort
+
+###################################################
+# Do NOT Edit past this line
+###################################################
+config detection: search-method lowmem
+preprocessor flow: memcap 2097152, stats_interval 0, hash 2
+preprocessor frag2: memcap 2097152
+preprocessor stream4: memcap 2097152, detect_scans, disable_evasion_alerts
+preprocessor stream4_reassemble: noalerts
+preprocessor http_inspect: global iis_unicode_map unicode.map 1252
+preprocessor http_inspect_server: server default profile all ports { 80 8080 }
+preprocessor rpc_decode: 111 32771
+preprocessor bo
+preprocessor telnet_decode
+preprocessor flow-portscan: \
+       scoreboard-memcap-talker 1048576 \
+       scoreboard-rows-talker 10000 \
+       talker-sliding-scale-factor 0.50 \
+       talker-fixed-threshold 30 \
+       talker-sliding-threshold 30 \
+       talker-sliding-window 20 \
+       talker-fixed-window 30 \
+       scoreboard-memcap-scanner 1048576 \
+       scoreboard-rows-scanner 10000 \
+       scanner-sliding-window 20 \
+       scanner-sliding-scale-factor 0.50 \
+       scanner-fixed-threshold 15 \
+       scanner-sliding-threshold 40 \
+       scanner-fixed-window 15 \
+       unique-memcap 1048576 \
+       unique-rows 10000 \
+       server-memcap 1048576 \
+       server-rows 10000 \
+       server-watchnet $HOME_NET \
+       server-ignore-limit 100 \
+       server-learning-time 3600 \
+       server-scanner-limit 4 \
+       alert-mode once \
+       output-mode msg \
+       tcp-penalties on
+preprocessor xlink2state: ports { 25 691 }
+#=========================================
+include $RULE_PATH/classification.config
+include $RULE_PATH/reference.config
+#=========================================
+include $RULE_PATH/bad-traffic.rules
+include $RULE_PATH/exploit.rules
+include $RULE_PATH/scan.rules
+include $RULE_PATH/finger.rules
+include $RULE_PATH/ftp.rules
+include $RULE_PATH/telnet.rules
+include $RULE_PATH/rpc.rules
+include $RULE_PATH/rservices.rules
+include $RULE_PATH/dos.rules
+include $RULE_PATH/ddos.rules
+include $RULE_PATH/dns.rules
+include $RULE_PATH/tftp.rules
+
+include $RULE_PATH/web-cgi.rules
+include $RULE_PATH/web-coldfusion.rules
+include $RULE_PATH/web-iis.rules
+include $RULE_PATH/web-frontpage.rules
+include $RULE_PATH/web-misc.rules
+include $RULE_PATH/web-client.rules
+include $RULE_PATH/web-php.rules
+
+include $RULE_PATH/sql.rules
+include $RULE_PATH/x11.rules
+include $RULE_PATH/icmp.rules
+include $RULE_PATH/netbios.rules
+include $RULE_PATH/misc.rules
+include $RULE_PATH/attack-responses.rules
+include $RULE_PATH/oracle.rules
+include $RULE_PATH/mysql.rules
+include $RULE_PATH/snmp.rules
+
+include $RULE_PATH/smtp.rules
+include $RULE_PATH/imap.rules
+include $RULE_PATH/pop2.rules
+include $RULE_PATH/pop3.rules
+
+include $RULE_PATH/nntp.rules
+include $RULE_PATH/other-ids.rules
+# include $RULE_PATH/web-attacks.rules
+# include $RULE_PATH/backdoor.rules
+# include $RULE_PATH/shellcode.rules
+# include $RULE_PATH/policy.rules
+# include $RULE_PATH/porn.rules
+# include $RULE_PATH/info.rules
+# include $RULE_PATH/icmp-info.rules
+# include $RULE_PATH/virus.rules
+# include $RULE_PATH/chat.rules
+# include $RULE_PATH/multimedia.rules
+# include $RULE_PATH/p2p.rules
+# include $RULE_PATH/experimental.rules
+include $RULE_PATH/local.rules
diff --git a/config/ssl/CVS/Entries b/config/ssl/CVS/Entries
new file mode 100644 (file)
index 0000000..389703d
--- /dev/null
@@ -0,0 +1,2 @@
+/openssl.cnf/1.2.2.4/Thu Dec 22 13:41:37 2005//TIPCOP_v1_4_0
+D
diff --git a/config/ssl/CVS/Repository b/config/ssl/CVS/Repository
new file mode 100644 (file)
index 0000000..540fb47
--- /dev/null
@@ -0,0 +1 @@
+ipcop/config/ssl
diff --git a/config/ssl/CVS/Root b/config/ssl/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/config/ssl/CVS/Tag b/config/ssl/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/config/ssl/openssl.cnf b/config/ssl/openssl.cnf
new file mode 100644 (file)
index 0000000..2bca6c0
--- /dev/null
@@ -0,0 +1,94 @@
+HOME           = .
+RANDFILE       = /var/tmp/.rnd
+oid_section    = new_oids
+
+[ new_oids ]
+
+[ ca ]
+default_ca     = IPCop
+
+[ IPCop ]
+dir            = /var/ipcop
+certs          = $dir/certs
+crl_dir                = $dir/crls
+database       = $dir/certs/index.txt
+new_certs_dir  = $dir/certs
+certificate    = $dir/ca/cacert.pem
+serial         = $dir/certs/serial
+crl            = $dir/crls/cacrl.pem
+private_key    = $dir/private/cakey.pem
+RANDFILE       = $dir/tmp/.rand
+x509_extensions        = usr_cert
+default_days   = 999999
+default_crl_days= 30
+default_md     = md5
+preserve       = no
+policy         = policy_match
+email_in_dn    = no
+
+[ policy_match ]
+countryName            = optional
+stateOrProvinceName    = optional
+organizationName       = optional
+organizationalUnitName = optional
+commonName             = supplied
+emailAddress           = optional
+
+[ req ]
+default_bits           = 1024
+default_keyfile        = privkey.pem
+distinguished_name     = req_distinguished_name
+attributes             = req_attributes
+x509_extensions        = v3_ca
+string_mask = nombstr
+
+[ req_distinguished_name ]
+countryName                    = Country Name (2 letter code)
+countryName_default            = GB
+countryName_min                        = 2
+countryName_max                        = 2
+
+stateOrProvinceName            = State or Province Name (full name)
+stateOrProvinceName_default    = 
+
+localityName                   = Locality Name (eg, city)
+#localityName_default          = 
+
+0.organizationName             = Organization Name (eg, company)
+0.organizationName_default     = My Company Ltd
+
+organizationalUnitName         = Organizational Unit Name (eg, section)
+#organizationalUnitName_default        =
+
+commonName                     = Common Name (eg, your name or your server\'s hostname)
+commonName_max                 = 64
+
+emailAddress                   = Email Address
+emailAddress_max               = 40
+
+[ req_attributes ]
+challengePassword              = A challenge password
+challengePassword_min          = 4
+challengePassword_max          = 20
+unstructuredName               = An optional company name
+
+[ usr_cert ]
+basicConstraints=CA:FALSE
+nsComment                      = "OpenSSL Generated Certificate"
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+
+[ v3_req ]
+basicConstraints = CA:FALSE
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+[ v3_ca ]
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid:always,issuer:always
+basicConstraints = CA:true
+
+[ crl_ext ]
+authorityKeyIdentifier=keyid:always,issuer:always
+
+[ engine ]
+default = openssl
diff --git a/doc/.cvsignore b/doc/.cvsignore
new file mode 100644 (file)
index 0000000..2211df6
--- /dev/null
@@ -0,0 +1 @@
+*.txt
diff --git a/doc/COPYING b/doc/COPYING
new file mode 100644 (file)
index 0000000..d60c31a
--- /dev/null
@@ -0,0 +1,340 @@
+                   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.
+\f
+                   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.)
+\f
+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.
+\f
+  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.
+\f
+  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
+\f
+           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) <year>  <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) year  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/doc/CVS/Entries b/doc/CVS/Entries
new file mode 100644 (file)
index 0000000..7d0a814
--- /dev/null
@@ -0,0 +1,7 @@
+/.cvsignore/1.1.2.1/Sat Jan  1 16:34:26 2005//TIPCOP_v1_4_0
+/COPYING/1.1.1.1/Tue Nov 27 08:07:58 2001//TIPCOP_v1_4_0
+/ChangeLog/1.1.2.25/Mon Nov  7 01:33:16 2005//TIPCOP_v1_4_0
+/How-to-make-update/1.1.2.7/Sun Nov  6 00:11:41 2005//TIPCOP_v1_4_0
+/README/1.4/Thu Dec 11 10:57:33 2003//TIPCOP_v1_4_0
+/make.sh-usage/1.2.2.2/Mon Jan 16 17:10:59 2006//TIPCOP_v1_4_0
+D
diff --git a/doc/CVS/Repository b/doc/CVS/Repository
new file mode 100644 (file)
index 0000000..277eadc
--- /dev/null
@@ -0,0 +1 @@
+ipcop/doc
diff --git a/doc/CVS/Root b/doc/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/doc/CVS/Tag b/doc/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/doc/ChangeLog b/doc/ChangeLog
new file mode 100644 (file)
index 0000000..b2fe367
--- /dev/null
@@ -0,0 +1,6749 @@
+2005-11-07 01:29  gespinasse
+
+       * updates/1.4.10/fixbackups.sh: Fix web backup set present on disk
+         - remove from backup sets files wich should have been exclude but
+         exclude was broken in 1.4.9 - add hardware settings in backup
+         since it should have been inside
+
+2005-11-06 00:11  gespinasse
+
+       * doc/How-to-make-update: Update the doc to not forget anything on
+         update
+
+2005-11-05 15:58  eoberlander
+
+       * updates/1.4.10/information: Tweak information text.
+
+2005-11-05 15:46  gespinasse
+
+       * updates/1.4.10/information: Fix a few wrong tag error detected by
+         'xhtml transitional' compliance test In  netstatus : - better
+         close font color than apply a new color again wich will not be
+         closed properly later - $colour is unnecessary - font color is
+         inserted multiple times with interfaces names
+
+         Now each interface did use not the color define in
+         Header::colour{blue|green|orange|red} but the one corresponding
+         to the name.  This only change red color as the code was wrong
+         for the others and the color corresponding to the name was used.
+
+2005-11-05 09:22  gespinasse
+
+       * updates/1.4.10/setup: Restrict backup.key access to root only (SF
+         1344032)
+
+2005-11-03 23:08  gespinasse
+
+       * html/cgi-bin/backup.cgi: Display which files are include in web
+         backup
+
+2005-11-03 21:34  gespinasse
+
+       * src/misc-progs/ipcopbkcfg.c: ipcopbkcfg - as leading / don't work
+         to exclude files during a restore from install,   add relative
+         path support to make backup work without leading /   in
+         (in|ex)clude files - don't use exclude.hardware during backup, it
+         should only be used   optionnaly on restore (found by Darren
+         Critchley) - use atexit to manage cleanup in every wrong cases -
+         replace chmod external call by C chmod call - don't use tar -v
+         when stdout redirected to /dev/null - split very long lines code
+         in multiples lines - remove function cfgexists not used - send to
+         stdout a list of include files made with tar -ztf at the end -
+         add a optional verbose mode to help understand what/how
+         include/exclude files are used (no web interface mainly for
+         developper)
+
+2005-11-01 19:20  gespinasse
+
+       * config/cfgroot/backup-exclude: We don't need to include empty
+         directories in backup.  So we can directly exclude whole
+         directories.
+
+         This is only to be be more simple. Result is the same
+
+2005-11-01 02:11  franck78
+
+       * src/misc-progs/: ipcopbkcfg.c, ipcoprscfg.c: sf#1344047
+         suggestion of moving chmod latter. But the solution is to not
+         having unencrypted backup sets.
+
+2005-11-01 01:23  franck78
+
+       * updates/1.4.10/setup: Backup update (sf#1344032)
+
+2005-11-01 01:15  franck78
+
+       * html/cgi-bin/backup.cgi, src/misc-progs/ipcopbkcfg.c,
+         src/misc-progs/ipcoprscfg.c: Start fixing bug sf #1344032:
+         introduce 'chmod 400' backup.key and make backup.cgi ask the
+         helper if key exists. 'root' owns backup.key
+
+2005-10-30 23:25  franck78
+
+       * src/install+setup/libsmooth/: libsmooth.h, main.c: Add a function
+         returning the real version of IPCop.  VERSION => get_version()
+         when appropriate.
+
+2005-10-30 18:19  gespinasse
+
+       * lfs/boot.img: Add $VERSION to initial install boot menu
+
+2005-10-25 23:58  gespinasse
+
+       * updates/1.4.10/setup: Remove snort asci logging during update
+
+2005-10-24 23:05  franck78
+
+       * html/cgi-bin/shutdown.cgi, src/misc-progs/ipcopreboot.c: Add
+         choice between reboot or shutdown for scheduled the action.
+
+2005-10-22 10:19  gespinasse
+
+       * lfs/tcpdump, updates/1.4.10/information, updates/1.4.10/setup:
+         More documentation reference for tcpdump and squid patches
+
+         Include squid patched in update ntlm_auth and wb_ntlmauth may
+         have not been patched but since their md5 change at every
+         compilation, it's hard to check, so include them.
+
+         restart httpd the same way as setreservedports
+
+2005-10-21 06:19  gespinasse
+
+       * updates/1.4.10/information: Update rootfiles for replacement of
+         ipcopdeath and ipcoprebirth with ipcopreboot
+
+2005-10-20 22:00  franck78
+
+       * updates/1.4.10/setup: Setup patch 1.4.10 adds missing adv options
+         to reflect what ipsec is using as default algorythms.  Add
+         'cast128' & modp6144 modp8192 Correct a SHA1 to SHA label.  close
+         sf bug #1314801
+
+2005-10-20 21:19  eoberlander
+
+       * updates/1.4.10/information: Fix typos.
+
+2005-10-20 21:06  gespinasse
+
+       * updates/1.4.10/: information, setup: Upgrade apache to
+         apache_1.3.34 mod_ssl-2.8.25-1.3.34 mm-1.4.0
+
+         Upgrade openssl to openssl-0.9.7i (CAN-2005-2969)
+
+2005-10-20 11:43  franck78
+
+       * html/cgi-bin/base.cgi: Fix default sort order (sf bug #1280492)
+
+2005-10-19 23:33  franck78
+
+       * html/cgi-bin/shutdown.cgi, src/misc-progs/Makefile,
+         src/misc-progs/ipcopreboot.c, src/misc-progs/reboot.c[DEAD]:
+         Rename reboot prog to ipcopreboot
+
+2005-10-19 14:45  franck78
+
+       * html/cgi-bin/shutdown.cgi, src/misc-progs/Makefile,
+         src/misc-progs/reboot.c, updates/1.4.10/information,
+         updates/1.4.10/setup: RFE 1298996: add scheduled reboot
+         capability to IPCop (within shutdown.cgi page)
+
+2005-10-18 21:30  gespinasse
+
+       * lfs/file: Upgrade file-4.14 to 4.16
+
+         Fix logwatch-6.1.2 url since 7.0 release
+
+2005-10-18 17:05  franck78
+
+       * src/misc-progs/setdmzholes.c, updates/1.4.10/information: Allow
+         dmzholes to use ip/mask instead of ip. Simplify blue->green holes
+         management.  From request/patch in ipcop-devel list (Tapani
+         Tarvainen)
+
+2005-10-17 21:15  gespinasse
+
+       * lfs/sysklogd: Fix sysklogd url with new lfs-5.1.1 repository
+
+2005-10-16 12:34  rkerr
+
+       * config/etc/logrotate.conf, src/misc-progs/restartsnort.c: Make
+         snort use binary logging (faster, less prone to DoS, works around
+         snort 2.3 TCP SACK vulnerability)
+
+2005-10-15 07:23  gespinasse
+
+       * lfs/man-pages: Fix lfs specific packages not found
+
+         Use a more recent man-pages for compilation as 2.03 is no more
+         available
+
+2005-10-13 20:04  eoberlander
+
+       * updates/1.4.10/: ROOTFILES.alpha-1.4.10, ROOTFILES.i386-1.4.10:
+         Update Greek from Language Database.
+
+2005-10-12 07:59  eoberlander
+
+       * updates/1.4.10/: ROOTFILES.alpha-1.4.10, ROOTFILES.i386-1.4.10:
+         Include lang.pl in update in case an earlier backup failed to
+         include it.
+
+2005-10-11 20:13  eoberlander
+
+       * langs/pl/install/lang_pl.c,
+         updates/1.4.10/ROOTFILES.alpha-1.4.10,
+         updates/1.4.10/ROOTFILES.i386-1.4.10: Update Polish from Language
+         Database.
+
+2005-10-07 16:35  eoberlander
+
+       * updates/1.4.10/: ROOTFILES.alpha-1.4.10, ROOTFILES.i386-1.4.10:
+         Updates from Language Database.
+
+2005-10-06 18:32  franck78
+
+       * updates/1.4.10/: ROOTFILES.alpha-1.4.10, ROOTFILES.i386-1.4.10,
+         setup: /home/fbourdonnec/tmp/XX
+
+2005-10-06 15:48  eoberlander
+
+       * langs/lt/cgi-bin/lt.pl: Add new Translator for Lithuanian.
+
+2005-10-06 14:56  eoberlander
+
+       * updates/1.4.10/: ROOTFILES.alpha-1.4.10, ROOTFILES.i386-1.4.10:
+         Add Swedish updates from Language Database. Thanks.
+
+2005-10-05 19:57  eoberlander
+
+       * langs/lt/cgi-bin/lt.pl, updates/1.4.10/ROOTFILES.alpha-1.4.10,
+         updates/1.4.10/ROOTFILES.i386-1.4.10: Updates from Language
+         Database.
+
+2005-10-04 20:38  eoberlander
+
+       * langs/es/install/lang_es.c, langs/nl/install/lang_nl.c,
+         updates/1.4.10/ROOTFILES.alpha-1.4.10,
+         updates/1.4.10/ROOTFILES.i386-1.4.10: Update languages from
+         Database, and add new Translators to credits page.
+
+2005-10-04 16:39  gespinasse
+
+       * doc/How-to-make-update: Adapt make.sh and lfs/cdrom to produce
+         new files names.
+
+         Remove md5 calculation in ./make.sh dist It could be made after
+         update signature with just one instruction.
+
+         Update doc/How-to-make-update accordingly
+
+2005-10-04 11:48  gespinasse
+
+       * updates/1.4.10/: .cvsignore, ROOTFILES.alpha-1.4.10,
+         ROOTFILES.i386-1.4.10, information, setup: Bump version.  Fix
+         VERSION expansion in newupdate
+
+2005-10-03 22:49  gespinasse
+
+       * lfs/: gcc, sysklogd, unzip, util-linux: Remove double quote from
+         information as it broke display.
+
+         Original lfs-5.1.1 repository no more exist for some lfs
+         packages.  Replace lfs location with original supplier when
+         available.
+
+         If a package look unreachable, google 'package-name ipcop' will
+         discover good mirrors.
+
+2005-10-03 20:49  gespinasse
+
+       * doc/How-to-make-update, src/scripts/updatesetup: A few cleanup to
+         prepare the next version.
+
+2005-10-03 20:01  gespinasse
+
+       * updates/1.4.9/information: Fix a few issues from 1.4.9 test1 -
+         remove # from cvs header.pl fro optionsfw.cgi - rebuild cache
+         lang on update setup - add a warning for VPN users for the wrong
+         setting of Dead Peer Detection in 1.4.7 update
+
+2005-10-03 01:04  gespinasse
+
+       * src/misc-progs/setfilters.c: Add missing helper for optionsfw.cgi
+
+2005-10-03 00:34  gespinasse
+
+       * src/misc-progs/Makefile, updates/1.4.9/setup: Add again
+         optionsfw.cgi with minimal settings only for ping actually
+
+2005-10-02 07:22  gespinasse
+
+       * updates/1.4.9/setup: restart squid in update only if a conf file
+         exist to avoid a warning when not used
+
+2005-10-01 14:48  eoberlander
+
+       * updates/1.4.9/information: Tweak description text.
+
+2005-10-01 13:44  gespinasse
+
+       * lfs/util-linux,
+         src/patches/util-linux-2.12a-umount_CAN-2005-2876.patch,
+         updates/1.4.9/information, updates/1.4.9/setup: Fix umount for
+         CAN-2005-2876
+
+         Other cleanup in preparation of update
+
+2005-09-30 12:29  gespinasse
+
+       * src/patches/eciadsl-usermode-0.10-semaphore-leak.patch[DEAD]:
+         Remove patch integrated
+
+2005-09-30 12:26  gespinasse
+
+       * lfs/eciadsl-nortek[DEAD]: Minor upgrade from 0.11beta1 to 0.11
+         for eciadsl
+
+         Remove eciadsl-nortek script since it is no more used
+
+         It would be nice if packages in ROOTFILES.machine-1.4.x are
+         classified by alphabetical order.
+
+2005-09-29 18:35  eoberlander
+
+       * src/misc-progs/ipcopbackup.c: Add Darren Critchley's patch to
+         check floppy disk before attempting a backup.
+
+2005-09-25 19:57  gespinasse
+
+       * config/cfgroot/backup-exclude, src/misc-progs/ipcoprscfg.c,
+         updates/1.4.9/information: Fix system files wrongly included in
+         backup (and so erasing new files on restore) This was the case of
+         lang.pl in 1.4.7 As exclude.system is always up to date during
+         installation, use it to exclude those files.
+
+         Sorry for have been so long.
+
+2005-09-17 23:34  gespinasse
+
+       * updates/1.4.9/: header.pl.patch, information, setup: Update
+         header.pl with a separate patch It is easier to read than
+         inclusion in setup made for 1.4.7.
+
+         Minor update in comment for the last squid patch name.
+
+2005-09-16 07:23  eoberlander
+
+       * updates/1.4.9/information: Rearrange text.
+
+2005-09-16 00:05  gespinasse
+
+       * updates/1.4.9/information: Information update
+
+2005-09-16 00:00  gespinasse
+
+       * updates/1.4.9/setup: Patch 3 'major' bugs (crashes) in squid wich
+         would be fixed on next STABLE11 version.  One 'medium' bug was
+         fixed too to allow unchanged patches application.
+
+2005-09-15 19:44  rkerr
+
+       * lfs/logwatch: Modify logwatch not to alert on requests for
+         null.gif, this resulted in scary warnings like:
+
+         !!!! 1 possible successful probes ..    /images/null.gif HTTP
+         Response 200
+
+2005-09-10 17:22  rkerr
+
+       * lfs/pcre, src/patches/pcre-4.5-CAN-2005-2491.patch: Backported
+         fix for CAN-2005-2491 from fedora core 3
+
+2005-09-10 10:06  gespinasse
+
+       * updates/1.4.9/.cvsignore: Add .cvsignore in update directory Do
+         it manually this time, in ./make.sh newupdate for next versions
+
+2005-09-09 20:26  eoberlander
+
+       * updates/1.4.9/information: Update information.
+
+2005-09-09 13:58  eoberlander
+
+       * updates/1.4.9/: ROOTFILES.alpha-1.4.9, ROOTFILES.i386-1.4.9: Fix
+         for SF Bug 1284569: lang.pl is missing in backup-exclude.
+
+2005-09-09 13:44  eoberlander
+
+       * config/cfgroot/backup-exclude,
+         updates/1.4.9/ROOTFILES.alpha-1.4.9,
+         updates/1.4.9/ROOTFILES.i386-1.4.9: Part fix for SF Bug 1284569:
+         lang.pl is missing in backup-exclude.
+
+2005-09-08 21:09  eoberlander
+
+       * langs/zt/cgi-bin/zt.pl: Updates from Language Database.
+
+2005-09-08 08:03  eoberlander
+
+       * updates/1.4.9/setup: Bump version number.
+
+2005-09-08 07:29  eoberlander
+
+       * langs/zt/cgi-bin/zt.pl: Update ZT from Language Database.
+
+2005-09-07 21:38  eoberlander
+
+       * src/scripts/setreservedports,
+         updates/1.4.9/ROOTFILES.alpha-1.4.9,
+         updates/1.4.9/ROOTFILES.i386-1.4.9: Fix conditional test for port
+         range.
+
+2005-09-07 19:52  eoberlander
+
+       * langs/list, langs/zt/cgi-bin/zt.pl,
+         updates/1.4.9/ROOTFILES.alpha-1.4.9,
+         updates/1.4.9/ROOTFILES.i386-1.4.9: Add Traditional Chinese to
+         webgui interface.
+
+2005-09-07 18:21  rkerr
+
+       * updates/1.4.9/setup: Fix security issue with addon-langs
+         permissions in upgraded installs, SF bug 1283323
+
+2005-09-04 20:13  gespinasse
+
+       * lfs/oinkmaster: Go back to the standard URL for sourceforge like
+         with v1.5: - telia was changed directly on Config for all files
+
+2005-08-29 15:13  eoberlander
+
+       * updates/1.4.9/: ROOTFILES.alpha-1.4.9, ROOTFILES.i386-1.4.9: Add
+         Italian phrase from Language Database.
+
+2005-08-28 20:47  eoberlander
+
+       * updates/1.4.9/setup: Fix for SF Bug 1275075. Thanks to John
+         Edwards for spotting this.
+
+2005-08-28 11:21  eoberlander
+
+       * updates/1.4.9/: ROOTFILES.alpha-1.4.9, ROOTFILES.i386-1.4.9: Fix
+         for SF Bug 1275075. Replace uptime command. Bug only affects
+         upgraded systems, not clean installs from 1.4.8.iso
+
+2005-08-27 08:46  eoberlander
+
+       * updates/1.4.9/: ROOTFILES.alpha-1.4.9, ROOTFILES.i386-1.4.9: Fix
+         bug that breaks Upload button text for language strings with two
+         words (i.e. Norwegian, Swedish and Vietnamese). Add quotes around
+         text string.
+
+2005-08-27 06:05  eoberlander
+
+       * updates/1.4.9/: ROOTFILES.alpha-1.4.9, ROOTFILES.i386-1.4.9:
+         Include updates from Language Database. Include Danish, missing
+         from previous update.
+
+2005-08-26 23:38  gespinasse
+
+       * src/scripts/updatesetup, updates/1.4.9/ROOTFILES.alpha-1.4.9,
+         updates/1.4.9/ROOTFILES.i386-1.4.9, updates/1.4.9/information,
+         updates/1.4.9/setup: Add a newupdate option at make.sh to create
+         structure for updates files Add a typical setup script for update
+         in src/script/updatesetup
+
+2005-08-26 04:41  gespinasse
+
+       * updates/1.4.8/information: More verbose in 1.4.8 information
+
+2005-08-25 21:06  gespinasse
+
+       * src/scripts/setreservedports: Fix setreservedports Id
+
+2005-08-25 21:02  gespinasse
+
+       * src/scripts/: httpscert, setreservedports: Add a httpcert script
+         to read issuer of the certificate or made a new cert.
+
+         This is called in rc.sysinit and will produce a warning message
+         if certificate issuer name did not match fqdn
+         (hostname.domainname)
+
+         This is not called actually after a change in setup following
+         Robert advice.  A warning should be added in setup in next
+         version because a new text need to be added.
+
+         I miss to commit setreservedports the last time.  It is only a
+         temporary help, it need to be include in the GUI.
+
+2005-08-25 17:51  gespinasse
+
+       * src/install+setup/setup/misc.c: setup - fix hostname command not
+         consistent with /etc/hosts when hostname is changed in setup
+
+         domainname was not written in hostname command
+
+2005-08-24 18:44  gespinasse
+
+       * src/misc-progs/setportfw.c: Fix trivial error in error message -
+         replace 'syslog settings'with 'ethernet settings'
+
+2005-08-22 20:51  eoberlander
+
+       * src/misc-progs/installpackage.c: Fix spelling errors.
+
+2005-08-18 18:59  gespinasse
+
+       * updates/1.4.8/: ROOTFILES.alpha-1.4.8, setup: Fix for scsi disk
+         during upgrade I find why '/ is busy' was displayed with help of
+         lsof and a hook in rc.halt -d now free the loop device
+
+         Add ROOTFILES.alpha-1.4.8 missing
+
+2005-08-17 05:49  gespinasse
+
+       * lfs/rrdtool: ./make.sh check does not understand answer like this
+         http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.0.49.tar.gz
+
+         Thank to Teemu Mannermaa
+
+2005-08-16 22:55  gespinasse
+
+       * updates/1.4.8/: information, setup: Attempt to make information
+         clearer with a bit of formating.
+
+         Sync after erasing files (necessary on flash).  Write may fail
+         because files are not yet really erased and no more space is
+         available.
+
+2005-08-16 20:19  gespinasse
+
+       * updates/1.4.8/information: Fix fcdsl version displayed in
+         information update.
+
+2005-08-16 19:43  gespinasse
+
+       * lfs/dhcp: Update dhcp source (thank to Eric)
+
+2005-08-16 19:37  gespinasse
+
+       * updates/1.4.8/setup: The problem at shutdown was related to init
+         upgrade Fix it with telinit u
+
+         Better way to fix modules.conf is more recent than...  We don't
+         need to calculate modules.dep for the kernel used as it is made
+         after compilation, just touch it.
+
+2005-08-16 06:40  gespinasse
+
+       * .cvsignore, updates/1.4.7/ROOTFILES.alpha-1.4.7-0[DEAD],
+         updates/1.4.7/ROOTFILES.alpha-1.4.7-1[DEAD],
+         updates/1.4.7/ROOTFILES.alpha-1.4.7-2[DEAD],
+         updates/1.4.7/ROOTFILES.i386-1.4.7-0[DEAD],
+         updates/1.4.7/ROOTFILES.i386-1.4.7-1[DEAD],
+         updates/1.4.7/information, updates/1.4.7/information-0[DEAD],
+         updates/1.4.7/information-1[DEAD], updates/1.4.7/setup-0[DEAD],
+         updates/1.4.7/setup-1[DEAD], updates/1.4.8/.cvsignore,
+         updates/1.4.8/ROOTFILES.i386-1.4.8, updates/1.4.8/information,
+         updates/1.4.8/setup: Go back to 2 patches as numbered in
+         1.4.3/1.4.4 As 'someone' say :'nobody need more than 640 kB', I
+         would say we never will need more than two updates.
+
+         alpha update should be far from operational, just less ugly.  But
+         nobody look to care about, so...
+
+2005-08-16 05:39  gespinasse
+
+       * config/cron/crontab, updates/1.4.7/setup-0: Slightly changes
+         comment in crontab
+
+         Simplier crontab update Make possible to still use root.orig for
+         a next change as we don't loose it.
+
+2005-08-15 19:37  eoberlander
+
+       * updates/1.4.7/: information-0, information-1: Remove references
+         to 1.4.6-p1 within text.
+
+2005-08-15 19:17  gespinasse
+
+       * updates/1.4.7/ROOTFILES.i386-1.4.7-0: Add missing files found
+         after make dist
+
+2005-08-14 23:43  gespinasse
+
+       * updates/1.4.7/ROOTFILES.i386-1.4.7-0: upload.cgi,updates/cgi As I
+         should be the recordman today of the number of updates applied
+         during my numerous installations, I find that files name nput
+         boxes are to small, so I set them a bit bigger than standard
+         size.
+
+         There is still one small problem related at the application of
+         the first update.  On the next reboot(and only this one), there
+         is a warning message init: got unimplemented init request and
+         some 'umount / is busy' later
+
+2005-08-14 23:16  gespinasse
+
+       * updates/1.4.7/: ROOTFILES.i386-1.4.7-0, ROOTFILES.i386-1.4.7-1,
+         information-0, information-1, setup-0, setup-1: Rename patches
+         1.4.7 and 1.4.8 I will later change make.sh and rename files as
+         it is more practical to keep names to track changes
+
+         Make the first patch smaller or there is a problem with small
+         disk when fcdsl package is installed.
+
+         Remove additional unused files {scsigrub.conf,grubbatch} from
+         /boot It remain only 83kB free on a flash disk when /boot size is
+         5MB
+
+         Fix etc/modules.conf is more recent than ...modules.dep on start
+         It is a bit late for 2.4.29 but better than never.
+
+2005-08-14 08:27  eoberlander
+
+       * updates/1.4.7/information-0: Fix typo. Remove '-' from 1.4.6-p1
+
+2005-08-14 08:03  eoberlander
+
+       * updates/1.4.7/: ROOTFILES.alpha-1.4.7-0, ROOTFILES.i386-1.4.7-0:
+         Include fix for SF Bug 1256223 in update. Non-critical typo in
+         output from ifconfig.
+
+2005-08-14 00:31  gespinasse
+
+       * updates/1.4.7/: ROOTFILES.i386-1.4.7-0, ROOTFILES.i386-1.4.7-1,
+         ROOTFILES.i386-1.4.7-2[DEAD], information-0, information-1,
+         information-2[DEAD], information-3[DEAD], setup-0, setup-1,
+         setup-2[DEAD], setup-3[DEAD]: Remade the update to be splitted in
+         2 parts only Complete the upgrade to : - remove kernel 2.4.27 -
+         fully upgrade grub.conf to support the last and one old kernel
+
+         Add again some files Franck drop in the split in 4 parts
+         concerning eagle-usb and eciadsl.
+
+         Boot fail with 2.4.29-smp (scsi disk) but not with 2.4.29-smp +
+         acpi I don't know why. Others menu choices work.
+
+         grub.conf for IDE use ro option when scsi.conf use rw The way the
+         menu is actually upgraded, there is a mix of rw (new) and ro
+         (old) for scsi disk.
+
+         Not yet so tested with flash and small disk. Let some work for
+         tomorrow.
+
+         I am not convinced it is superior to have 1.4.6p1 and 1.4.7 than
+         1.4.7/1.4.8.
+
+         Alpha code upgrade is still to do. I don't know if somebody is
+         interested.  We would need to have a different upgrade for alpha
+         as smp is a i86 specialty.
+
+2005-08-13 15:23  eoberlander
+
+       * langs/: bz/install/lang_bz.c, cs/install/lang_cs.c,
+         da/install/lang_da.c, de/install/lang_de.c, el/install/lang_el.c,
+         en/install/lang_en.c, es/install/lang_es.c, fi/install/lang_fi.c,
+         hu/install/lang_hu.c, la/install/lang_la.c, no/install/lang_no.c,
+         pl/install/lang_pl.c, pt/install/lang_pt.c, so/install/lang_so.c,
+         sv/install/lang_sv.c, tr/install/lang_tr.c, vi/install/lang_vi.c:
+         Update Language Database with new installer phrase. scsidrv ->
+         images/scsidrv
+
+2005-08-13 14:29  gespinasse
+
+       * langs/en/install/lang_en.c: On floppy install boot with a scsi
+         disk, shift search of scscidrv-<version> to
+         images/scscidrv-<version>.  This is far better when the iso is
+         mounted in a loop.  When it is not the case, user should place
+         this file a step higher than ipcop-<version>.tgz in an images
+         directory.
+
+         Change of the corresponding text in the installer: - I add
+         images/ before scsidrv and remove the trailing / at the end.
+
+         This / is not necessary since a long time. It work with and
+         without.  The corresponding line in install/net.c while
+         (url[strlen(url)-1] == '/') { url[strlen(url)-1] = '\0'; } remove
+         this trailing / when it does exist to avoid duplicate // in
+         url/filename.
+
+2005-08-13 08:09  eoberlander
+
+       * lfs/net-tools: Backport fix for SF Bug 1256223. Non-critical typo
+         in output from ifconfig.
+
+2005-08-06 18:45  eoberlander
+
+       * updates/1.4.7/: information-0, information-2, information-3: Fix
+         some typos.
+
+2005-08-06 12:36  gespinasse
+
+       * lfs/Compress-Zlib: Upgrade Compress-Zlib to 1.35 Even if we don't
+         use the include zlib sources to build but a separate zlib package
+         already upgraded, there is other minor fixes.
+
+2005-07-30 23:59  franck78
+
+       * updates/1.4.7/: setup-0, setup-1, setup-2, setup-3: Fix display
+         of correct IPCop version at end of patch execution.
+
+2005-07-30 14:15  franck78
+
+       * .cvsignore, doc/How-to-make-update,
+         src/misc-progs/installpackage.c, updates/1.4.7/information-0,
+         updates/1.4.7/information-1, updates/1.4.7/information-2: Add a
+         little more support to gpg usage when you don't have key Make.sh
+         produce a batch to help signing the updates
+
+2005-07-30 12:01  franck78
+
+       * updates/1.4.7/: information-0, information-1, information-2,
+         information-3: Ok the http link is added latter...Removed !
+         Remove from 'available list' the patches already installed
+         because user may not (will not) update av-list after each patch.
+         Move button 'update patch list' inside a box block
+
+2005-07-30 00:48  franck78
+
+       * updates/1.4.7/: ROOTFILES.alpha-1.4.7-0, ROOTFILES.alpha-1.4.7-1,
+         ROOTFILES.alpha-1.4.7-2, ROOTFILES.i386-1.4.7-0,
+         ROOTFILES.i386-1.4.7-1, ROOTFILES.i386-1.4.7-2, information-0,
+         information-1, information-2, information-3, setup-0, setup-1,
+         setup-2, setup-3: Package the 1.4.6=>1.4.7 patch in four smaller
+         patches Bug: updates.cgi need to reload $general::version
+         variable while running...  Tested ok on a fresh 1.4.6 (without
+         gpg signing) Add http link in information using page wiki sid=22
+         on ipcop.org Old files no more needed
+         (information,ROOTFILES,setup)
+
+2005-07-29 21:32  franck78
+
+       * src/misc-progs/installpackage.c: Correct return code. Note that
+         -1 is displayed 255 (should change ret type)
+
+2005-07-29 02:14  franck78
+
+       * src/misc-progs/installpackage.c: Installpackage try using
+         /var/log partition first, then root partition (as before) for the
+         de-gnupg operation.  Add 'clear squid cache' button on updates
+         screen.  Also display disk usage to help user in deciding what to
+         do Do not need tree times the package size free on root !
+
+2005-07-28 20:57  franck78
+
+       * updates/1.4.7/information: Add comment
+
+2005-07-28 07:01  gespinasse
+
+       * lfs/eciadsl: Update - openswan to 1.0.10rc2 - eciadsl to
+         0.11beta1 - eagle-usb to 2.3.2
+
+         I still need to include updates in 1.4.7 update, fix rc.eciadsl
+         due to unified driver bewteen std and nortek version and make a
+         few changes for eagle-usb But everybody could start compilation
+         now.
+
+2005-07-28 00:32  franck78
+
+       * lfs/sysvinit: Upgrade version
+
+2005-07-27 23:12  franck78
+
+       * lfs/gnupg: Update version
+
+2005-07-27 22:14  franck78
+
+       * lfs/iana-etc: Update version
+
+2005-07-26 23:28  franck78
+
+       * src/patches/openswan-1.0.9-restart.patch: Patch openswan 1.0.9
+         until 1.0.10 is out (add dpd restart option) GILLES: in your
+         final 'linux' add the patch in third position with Np0 cd
+         $(DIR_SRC)/openswan-1.0.9 && patch -Np0 <
+         $(DIR_SRC)/src/patches/openswan-1.0.9-restart.patch
+
+2005-07-26 20:25  gespinasse
+
+       * lfs/vlan: Add vlan userspace configuration program
+
+2005-07-26 10:59  franck78
+
+       * config/cfgroot/backup-exclude: not sure if exclude a simple 'dir'
+         is ok. Add '/*'
+
+2005-07-26 10:19  franck78
+
+       * config/cfgroot/backup-exclude: 'Backup' do not include addon
+         language files. Addon-writers should modify this file if they add
+         some 'big' data in it.
+
+2005-07-26 06:30  gespinasse
+
+       * src/patches/zlib-1.2.2-inftrees.patch[DEAD]: Remove unnecessary
+         zlib-1.2.2 patch already include in 1.2.3
+
+2005-07-26 06:27  gespinasse
+
+       * lfs/zlib, src/patches/linux-2.4.28-usb-devio.patch[DEAD],
+         src/patches/patch-o-matic-ng-20040621_raw_2.4.28.patch[DEAD],
+         src/patches/patch-o-matic-ng-raw_2.4.31.patch: Upgrade kernel to
+         v2.4.31 (add VLAN and sata_qstor support)
+
+         Upgrade zlib to v1.2.3
+
+         Update script is not yet ready It need to remove one old kernel
+         and fix smp bug seen in 1.4.4
+
+2005-07-20 17:00  eoberlander
+
+       * updates/1.4.7/information: Fix typo, ipstate -> iptstate
+
+2005-07-19 20:26  eoberlander
+
+       * lfs/logwatch: Fix spelling. transfered -> transferred
+
+2005-07-18 20:40  gespinasse
+
+       * lfs/gzip, src/patches/gzip-1.3.5-perm.patch: Only fix comment in
+         update and patch : fix for CAN-2005-0988 is already applied.
+
+         Nothing is changed to the code.
+
+2005-07-16 19:02  gespinasse
+
+       * lfs/dhcpcd, src/patches/dhcpcd-1.3.22-pl4_corrupt-packet.patch,
+         updates/1.4.7/information: Patch dhcpcd-1.3.22-pl4 against
+         CAN-2005-1896
+
+2005-07-15 08:13  alanh
+
+       * lfs/bzip2: Do it in /tools as well
+
+2005-07-14 19:01  alanh
+
+       * lfs/bzip2: move up one
+
+2005-07-13 17:27  alanh
+
+       * lfs/bzip2: allow bzip2 to reinstall
+
+2005-07-12 12:02  alanh
+
+       * lfs/bzip2: fix bustage
+
+2005-07-11 18:38  franck78
+
+       * src/rc.d/rc.network: Undo previous change because the 'for' loop
+         orders driver loading !
+
+2005-07-11 16:07  franck78
+
+       * src/install+setup/setup/main.c: Fix bug 1193391, ('issue' exists
+         when 'setup' is launched from 'installer')
+
+2005-07-11 14:14  franck78
+
+       * src/rc.d/rc.network: fix bug1153902. I have used it since march,
+         no problem seen.
+
+2005-07-11 10:56  franck78
+
+       * src/misc-progs/: rebuildhosts.c, restartwireless.c: Add cvs Id
+         tag
+
+2005-07-10 16:01  franck78
+
+       * lfs/procps: Update procps 3.2.1=>3.2.5 (kill, ps, top,...)
+
+2005-07-10 14:12  franck78
+
+       * lfs/arping: Update source from 2.03 to 2.05
+
+2005-07-09 08:19  eoberlander
+
+       * lfs/logwatch: Patch logwatch.conf to comment out a line which
+         refers to an unused/unavailable Service.
+
+2005-07-08 17:35  rkerr
+
+       * lfs/zlib, src/patches/zlib-1.2.2-inftrees.patch: SF bug #1234830,
+         CAN-2005-2096
+
+2005-07-08 17:11  franck78
+
+       * src/install+setup/setup/misc.c: Suppress a warn in apache/ssl log
+         [warn] Init: (..) RSA server certificate CommonName .... does NOT
+         match server name!?
+
+2005-07-08 16:51  eoberlander
+
+       * html/cgi-bin/optionsfw.cgi: Updates from Language Database.
+
+2005-07-08 15:19  gespinasse
+
+       * lfs/logwatch: Logwatch : upgrade logwatch to 6.1.2 For a better
+         control of what is include, directories are commented and files
+         individually slected You could give advice of what filter
+         include/exclude
+
+         Some unnecessary previous filters include by mistake are removed
+         in setup.
+
+         As Disk usage part is now terminated, add the corresponding text
+         and remove the trick to close the last box.
+
+         Update Add : - missing pulsar module in i386 rootfile - link for
+         zcat and bzcat I terminate setup with an operation wich will
+         always success (the echo ).
+
+         During tests, when installing v1.4.6 update on a fresh installed
+         v1.4.5, update warn of failure to install because the last
+         operation in 1.4.6 update (rm /var/log/dynupdate.log) find no
+         file to erase.
+
+         Fix some errors in ROOTFILES.alpha : perl file are located in
+         alpha-linux and not i386-linux
+
+         There is other very suspect i386 on other lines, but it should be
+         for unused files.
+
+         As none of v1.4 maintainer can compile on alpha, I don't know of
+         the state of alpha version sources.  I would be happy to have
+         feedback from people using it.
+
+2005-07-08 09:11  eoberlander
+
+       * html/cgi-bin/optionsfw.cgi: Add Achim's suggested hint.
+
+2005-07-08 00:03  franck78
+
+       * lfs/Net_SSLeay: Added SSLeay support to Perl (for https) May also
+         be used for x509 certificat in vpnmain.cgi ...
+
+2005-07-07 22:31  gespinasse
+
+       * lfs/: Compress-Zlib, HTML-Parser, HTML-Tagset, URI, libwww-perl:
+         Minor scripts cleanup
+
+2005-07-07 20:11  franck78
+
+       * src/rc.d/: rc.3cp4218usbadsl, rc.amedynusbadsl, rc.bewanadsl,
+         rc.conexantusbadsl, rc.flash.up, rc.halt, rc.isdn,
+         rc.netaddress.down, rc.network, rc.pulsardsl: Add "Id cvs tag"
+
+2005-07-07 19:14  franck78
+
+       * lfs/iptstate: Add "iptstate" command line utility RFE 1167726
+
+2005-07-06 09:21  franck78
+
+       * config/cfgroot/lang.pl: Simplify the code by removing usage of
+         variable $settings['LANGUAGE'].
+
+2005-07-06 00:24  franck78
+
+       * config/cfgroot/lang.pl: Completed lang.pl to build all cachelang
+         files.  Move initial build into 'install' prog. Call not tested,
+         can't compile :-(
+
+2005-07-05 20:39  eoberlander
+
+       * langs/so/cgi-bin/so.pl: Remove colon (:)
+
+2005-07-05 20:37  eoberlander
+
+       * langs/it/install/lang_it.c: Update Italiano from Language
+         Database.
+
+2005-07-05 15:10  gespinasse
+
+       * lfs/: hdparm, man, pcmcia-cs: pcmcia-cs - upgrade to 3.2.8 -
+         don't need to compile twice (-smp and non smp) as modules from
+         the kernel   are used - add missing netextra.conf and
+         isdnextra.conf in .iso - rootfiles.alpha had twice the files
+
+         hdparm - upgrade to 6.1 - new feature --security-freeze could be
+         used but is not supported by all   ATA disk This feature allow to
+         lock disk password setting until next reboot.  If no password is
+         set, a malicious program could set it unless changing  password
+         is frozen.
+
+         pulsar dsl - upgrade to 4.0.19
+
+         man - upgrade to 1.5p as the old one is no more available
+
+2005-07-05 14:46  gespinasse
+
+       * lfs/file: Upgrade file to 4.14 as the 4.12 is no more available
+
+2005-07-02 09:12  franck78
+
+       * config/cron/crontab: Add comment
+
+2005-06-29 19:28  rkerr
+
+       * lfs/Compress-Zlib, lfs/HTML-Parser, lfs/HTML-Tagset, lfs/URI,
+         lfs/libwww-perl, src/scripts/updatelists.pl: Use libwww-perl for
+         HTTP downloads from CGIs, this should resolve the issues some
+         users are having with IDS rule updates. Also should fix the
+         inability to download update lists when an upstream proxy
+         requires user/pass (bug 1205470)
+
+2005-06-22 22:32  gespinasse
+
+       * lfs/speedycgi: Fix speedycgi download location We don't use it
+         actually
+
+2005-06-22 20:00  rkerr
+
+       * lfs/busybox, src/patches/busybox-0.60.5-insmod_gpl_symbols.patch:
+         Fix libata EXPORT_SYMBOL_GPL problems in the installer, should
+         fix intel SATA support
+
+2005-06-21 20:10  gespinasse
+
+       * lfs/ethtool: Add ethtool.  It may replace mii-tool in the next
+         version.
+
+         This is helpfull for those who want to let IPCop sleep when not
+         used.  ethtool is used to configure the network card
+         /usr/sbin/ethtool -s eth0 wol g This could be added in rc.local
+
+         You could wake up the IPCop machine by sending the magic-packet
+         to the MAC address.  This could only work with some limit on
+         IPCop side : - you can't use dhcp on green since the PC sending
+         the magic-packet already  has an IP - you can't have an orange
+         interface
+
+         Thank to wintermute wich create the WakeOnLAN topic on the german
+         forum.
+
+2005-06-20 06:14  gespinasse
+
+       * lfs/man-pages: Because man-pages-1.66 is no more available,
+         upgrade the package to the  last available version.  As it is not
+         include in the ISO, version is not important.
+
+2005-06-19 21:36  franck78
+
+       * src/misc-progs/rebuildhosts.c: Close open file before exiting.
+
+2005-06-16 13:53  rkerr
+
+       * src/misc-progs/setportfw.c: Change SNAT behaviour for port
+         forwards to only apply when required, the idea is similar to the
+         patch provided by Dennis Freise:
+
+
+         http://marc.theaimsgroup.com/?l=ipcop-devel&m=110944498906579&w=2
+
+         The implementation is my own and slightly different - it also
+         expands the SNAT to work for orange to orange connections (before
+         it only applied to blue and green)
+
+2005-06-14 11:25  eoberlander
+
+       * langs/la/install/lang_la.c: Remove forward slash escape
+         character, which is not required in Installer strings.
+
+2005-06-13 13:36  franck78
+
+       * html/cgi-bin/logs.cgi/config.dat: Add option to choose number of
+         lines per page of log  (viewsize)
+
+2005-06-13 11:13  gespinasse
+
+       * src/patches/bzip2-1.0.2-chmod.patch: Add missing bzip2 chmod
+         patch
+
+2005-06-13 11:11  gespinasse
+
+       * lfs/bzip2, updates/1.4.7/information: Upgrade : -squid to
+         2.5.STABLE10 -bzip2 to 1.0.3 plus patch against CAN-2005-1260
+
+         Patch tcpdump for CAN-2005-1267
+
+2005-06-11 06:15  gespinasse
+
+       * src/patches/tcpdump-3.8.2-bgp-dos-2.patch: Fix last tcpdump patch
+
+2005-06-10 22:06  gespinasse
+
+       * src/patches/tcpdump-3.8.2-bgp-dos-2.patch, lfs/tcpdump: patch
+         tcpdump against CAN-2005-1267
+
+2005-06-10 22:03  gespinasse
+
+       * updates/1.4.7/.cvsignore: Add a .cvsignore for 1.4.7 patch.tar.gz
+
+2005-06-08 13:01  eoberlander
+
+       * langs/no/install/lang_no.c: Fix some typos in Language Databse
+         spotted by Alan.
+
+2005-06-07 19:43  franck78
+
+       * html/cgi-bin/optionsfw.cgi: Sync between Eric's changes and
+         rc.firewall
+
+2005-06-07 19:14  franck78
+
+       * html/cgi-bin/optionsfw.cgi: Allow empty ports list & allow space
+         around commas
+
+2005-06-06 20:58  eoberlander
+
+       * html/cgi-bin/optionsfw.cgi: Rearrange interface layout. Further
+         functional modifications pending, so don't forward this to v1.5
+         just yet.
+
+2005-06-06 16:13  eoberlander
+
+       * updates/1.4.7/information: Repair file format. The bars (|) are
+         separators. There are four fields per record;
+         number|name|description|date.
+
+2005-06-06 15:55  franck78
+
+       * updates/1.4.7/information: add description
+
+2005-06-05 21:00  eoberlander
+
+       * updates/1.4.7/information: Update information.
+
+2005-06-03 23:31  franck78
+
+       * updates/1.4.7/setup: Add new provider dynserv.ca (org|net|com)
+         Place a link on each provider name (need freedns-afraid.org
+         renaming to real name freedns.afraid.org), move colorization
+         syncstate  to columns  host&domains
+
+2005-05-29 17:11  franck78
+
+       * updates/1.4.7/setup: Update or replace the crontab file for new
+         minimize ddns call
+
+2005-05-29 09:59  rkerr
+
+       * updates/1.4.7/setup: Change maximum on traffic graph RRDs to
+         support 100 MBit links, fixes bug 1118124
+
+2005-05-28 21:35  franck78
+
+       * config/cron/crontab: Fix rfe1093108: updates to dyndns service
+         are done only if gethostbyname returns different address.  A cron
+         call once/month force updates (-f -m options) to avoid loosing
+         account on particular stable lines.  This has to be enabled in
+         GUI.
+
+2005-05-28 16:00  eoberlander
+
+       * updates/1.4.7/setup: Different approach to patching header.pl
+
+2005-05-27 17:29  franck78
+
+       * updates/1.4.7/setup: Prepare script patch for header.pl before it
+         got lost...  Dont't forget to include diff result with actual
+         header.pl !
+
+2005-05-27 13:50  franck78
+
+       * config/cfgroot/lang.pl: Insert Achim comment 'howto using this'
+         Use perl grep construction (Achim script) Change owner = root for
+         cachefile, Achim again ;-)
+
+2005-05-26 21:06  franck78
+
+       * config/cfgroot/lang.pl: Permits a partial foreign traduction +
+         english version for an addon. Previous version supposed if
+         foreign file was present, it was complete (no english needed).
+
+2005-05-23 18:17  eoberlander
+
+       * updates/1.4.7/: ROOTFILES.alpha-1.4.7, ROOTFILES.i386-1.4.7:
+         Include some recent changes in list of files to be updated.
+
+2005-05-22 17:26  eoberlander
+
+       * updates/1.4.7/: ROOTFILES.alpha-1.4.7, ROOTFILES.i386-1.4.7: Add
+         Norwegian phrases from Language Database.
+
+2005-05-22 17:13  franck78
+
+       * config/ssl/openssl.cnf, updates/1.4.7/ROOTFILES.alpha-1.4.7,
+         updates/1.4.7/ROOTFILES.i386-1.4.7: Problems raised by Ufuk
+         Altinkaynak 1)random state file: fix a writable location for it
+         and added some 'seed' to certs generation with '-rand option'
+
+         2)serial number: problem or not probem??  anyway, a replacement
+         procedure for cleanssldatabase is included if someone prefer
+         serialized certs (Ufuk !).
+
+2005-05-21 08:07  eoberlander
+
+       * html/html/images/addblue.gif: Add device icon.
+
+2005-05-18 23:25  franck78
+
+       * config/cfgroot/lang.pl, updates/1.4.7/setup: Suppress use of
+         intermediate file containing list of addon to load.  Now,
+         everything is recalculated, but only if no cachefile exists.
+         Only root can build the cache file.
+
+2005-05-17 10:45  eoberlander
+
+       * langs/sl/cgi-bin/sl.pl: Additions to Slovenian from Language
+         Database.
+
+2005-05-15 12:58  rkerr
+
+       * updates/1.4.7/: ROOTFILES.alpha-1.4.7, ROOTFILES.i386-1.4.7: Fix
+         a stack based buffer overflow in ipsecctrl
+
+2005-05-14 22:29  franck78
+
+       * updates/1.4.7/setup: Correct directory permissions.
+
+2005-05-14 07:25  eoberlander
+
+       * langs/list, langs/sl/cgi-bin/sl.pl,
+         updates/1.4.7/ROOTFILES.alpha-1.4.7,
+         updates/1.4.7/ROOTFILES.i386-1.4.7: Add Slovenian to web gui
+         interface.
+
+2005-05-14 03:15  franck78
+
+       * config/cfgroot/header-menu.pl: Just a simple (and sufficient?)
+         implementation of adding menus to ipcop without touching
+         header.pl Works: read a directory (/var/ipcop/addon-menu) looking
+         for filenames matching "menu.X.subMenu.Aname"    X.submenu can be
+         4.services,....  Each line in the file is a menu entry for
+         selected submenu. Format is "Label" , "link-to -page" , "Label"
+         exactly actual format of a menu entry in header.pl, including
+         $tr{'xxx'} if needed.
+
+2005-05-13 20:31  franck78
+
+       * config/cfgroot/lang.pl: Complete BuildAddonLangList with
+         construction of a cache file containing the resulting %tr()
+         array. %tr is final result of loading all relevant language
+         files. When $Lang::reload see it, it directly read-in only
+         necessary data.  Maybe a checkbox in language selection can
+         disable this cache.  Cache file is built on startup or language
+         switch
+
+2005-05-13 14:47  franck78
+
+       * config/cfgroot/lang.pl, updates/1.4.7/setup: Make languages files
+         dropped by addon installers in a specific dir to be read-in if
+         they match the active language of ipcop. Default always to
+         english version. No checking is made on file content. It must be
+         an associative array, %tr={'key' => 'value'};  (see
+         /var/ipcop/langs/en.pl).  Do not breaks addons which can continue
+         editing ipcop language.pl files...
+
+2005-05-12 16:26  eoberlander
+
+       * updates/1.4.7/: ROOTFILES.alpha-1.4.7, ROOTFILES.i386-1.4.7:
+         Change file format to unix.
+
+2005-05-12 15:25  franck78
+
+       * html/cgi-bin/base.cgi: New files based on this are Ipcop ...
+
+2005-05-12 09:11  franck78
+
+       * html/cgi-bin/base.cgi: Complete Gilles's tag error discovered in
+         dhcp.cgi
+
+2005-05-12 07:17  eoberlander
+
+       * updates/1.4.7/: ROOTFILES.alpha-1.4.7, ROOTFILES.i386-1.4.7:
+         Updates from Language Database.
+
+2005-05-12 05:42  eoberlander
+
+       * html/cgi-bin/optionsfw.cgi, updates/1.4.7/ROOTFILES.alpha-1.4.7,
+         updates/1.4.7/ROOTFILES.i386-1.4.7: Add phrases used in
+         optionsfw.cgi to Language Database. Change some variables to
+         lowercase. There is one string I'm not sure about...
+
+2005-05-08 15:52  franck78
+
+       * html/cgi-bin/optionsfw.cgi, src/rc.d/rc.firewall: Insert
+         'optionsfw.cgi' setup page with to settings installed: -control
+         ping on red or all interfaces -add a list a ports that are
+         dropped just before the final "-j log", eliminating unneeded logs
+         information.
+
+         Translations are not yet in the lang en.pl, until everybody is
+         OK.
+
+2005-05-08 15:21  franck78
+
+       * updates/1.4.7/: ROOTFILES.alpha-1.4.7, ROOTFILES.i386-1.4.7,
+         information, setup: Prepare next patch
+
+2005-05-07 17:40  gespinasse
+
+       * updates/1.4.6/information: make dist show that we forgot some
+         files in update CGI - home/httpd/cgi-bin/hosts.cgi -
+         home/httpd/cgi-bin/ids.cgi - home/httpd/cgi-bin/logs.cgi/ids.dat
+         - home/httpd/cgi-bin/networks.cgi -
+         home/httpd/cgi-bin/services.cgi and pptp-1.6.0
+
+2005-05-07 16:44  gespinasse
+
+       * updates/1.4.6/information: Update Changelog and information
+         Release date should be the 10 if nohing wrong appear.
+
+2005-05-07 13:01  gespinasse
+
+       * config/cfgroot/advoptions-list: dhcp.cgi - display IP and netmask
+         from ethernet settings - separate each interface with <hr /> -
+         better IP checking order for start and end address if netmask not
+         /24 - combine add and list box for add-option and fixed leases -
+         fix some XHTML errors (input hidden not in a cell,
+         disabled='disabled')
+
+         advoption-list - remove duplicate options directly available in
+         the GUI - sort options in alphabetical order
+
+2005-05-07 12:46  rkerr
+
+       * src/ibod/ibod.c: Security fixes for ibod, fixes a buffer overflow
+         as described in:
+
+          <http://www.nosystem.com.ar/advisories/advisory-10.txt>
+
+         Also fixes a separate issue where the DEVICE config paramater
+         could be overflowed. This is very low risk because an attacker
+         would have to be able to edit the config file, and the buffer
+         isn't on the stack.
+
+2005-05-06 21:56  gespinasse
+
+       * lfs/tcpdump, src/patches/tcpdump-3.8.2-bgp-dos.patch,
+         src/patches/tcpdump-3.8.2-isis-dos.patch,
+         src/patches/tcpdump-3.8.2-ldp-dos.patch,
+         src/patches/tcpdump-3.8.2-rsvp-dos.patch: Patch tcpdump against
+         CAN-2005-12{78|79|80}
+
+2005-05-06 06:17  gespinasse
+
+       * lfs/gzip, src/patches/gzip-1.3.3-window-size.patch,
+         src/patches/gzip-1.3.5-asm-execstack.patch,
+         src/patches/gzip-1.3.5-gunzip-dir.patch,
+         src/patches/gzip-1.3.5-perm.patch: Patch gzip against
+         CAN-2005-1228 (borrowed from fedora and include othe fixes)
+
+2005-05-05 16:24  gespinasse
+
+       * lfs/oinkmaster: Backport from main Use $CONFIGROOT for
+         oinkmaster.conf
+
+2005-05-03 01:28  franck78
+
+       * src/rc.d/rc.halt: Make a call to rc.red stop (to properly
+         disconnect) and also a call to rc.red clear to unload modules.
+         Workaround for bug 1185833
+
+2005-05-02 17:11  franck78
+
+       * config/cfgroot/oinkmaster.conf: Typo correction, mainly to check
+         cvs is ok at my home ;-)
+
+2005-05-02 07:49  eoberlander
+
+       * langs/list: Change 'Latino' to 'Spanish Latino' as requested by
+         translator Fernando Diaz. Update his email address on Credits
+         page.
+
+2005-05-01 18:03  gespinasse
+
+       * lfs/: arping, gnupg, unzip: Move dowload URL  for gnupg arping
+         unzip
+
+2005-05-01 16:54  gespinasse
+
+       * src/patches/linux-2.4.27-ssp-1.patch: Push
+         linux-2.4.27-ssp-1.patch on src/patches
+
+2005-05-01 01:10  franck78
+
+       * html/cgi-bin/optionsfw.cgi: Refine ping disabled granularity to
+         red or all itfs.  Add a check box to choose to restart ipcop with
+         modified options. By default the gui records them and they are
+         taken into account a next reboot.  Maybe usefull in the future to
+         set options without stopping networks services.  The dynamically
+         reconfiguration (as port forwarding) is not really needed here.
+
+2005-05-01 00:06  franck78
+
+       * html/cgi-bin/base.cgi: Typo
+
+2005-04-30 11:37  rkerr
+
+       * src/misc-progs/restartsnort.c: Backport alan's fix from HEAD,
+         don't close file handle twice
+
+2005-04-30 00:25  franck78
+
+       * html/cgi-bin/optionsfw.cgi: Add a new cgi page under firewall
+         tab, designed to receive future request about specificcaly
+         firewall options.  Example: disable ping.  This is only the GUI
+         part, nothing is done yet.  (need to create
+         /var/ipcop/optionsfw/settings file to work)
+
+2005-04-29 23:37  franck78
+
+       * html/cgi-bin/: base.cgi, networks.cgi, services.cgi: Speedy is
+         removed ...?
+
+2005-04-28 19:34  gespinasse
+
+       * lfs/dnsmasq: Upgrade dnsmasq to 2.22 to fix bugs introduced in
+         2.21
+
+         Include dnsmasq-2.22, snort-2.3.3 and oinkmaster-1.2 in upgraded
+         files
+
+2005-04-28 18:38  gespinasse
+
+       * config/cfgroot/oinkmaster.conf, config/snort/snort.conf,
+         lfs/oinkmaster: Upgrade snort to v2.3.3
+
+         Add oinkmaster to orderly update rules
+
+         Reorder ids.cgi readhash can't be used before the ACTION=save or
+         nothing will be changed.  So readhash is used after ACTION=save
+         block to have values not in the form.
+
+         I still have a bit of code to add the new preprocessor in
+         snort.conf.
+
+2005-04-27 15:17  eoberlander
+
+       * langs/nl/install/lang_nl.c: Add Danish and Dutch phrases from
+         Language Database.
+
+2005-04-26 17:59  franck78
+
+       * config/cron/crontab, updates/1.4.6/setup: Bug 1190249: because
+         setddns.pl close stderr & stdout nothing is outputed here! Remove
+         redirection. Output is done via General::log
+
+2005-04-26 17:10  eoberlander
+
+       * config/cfgroot/advoptions-list: Fix typo, extra t in streettalk.
+
+2005-04-23 12:53  franck78
+
+       * updates/1.4.6/setup: Comment changed.
+
+2005-04-22 18:44  rkerr
+
+       * src/misc-progs/restartsquid.c: Transparent on blue had a similar
+         problem to enable on blue - fix this too
+
+2005-04-21 14:37  rkerr
+
+       * src/misc-progs/restartsquid.c: Fix bug #1144280 - start squid if
+         enabled on blue or green
+
+2005-04-18 15:37  eoberlander
+
+       * langs/it/install/lang_it.c: Update Italian phrases from Language
+         Database.
+
+2005-04-16 11:40  rkerr
+
+       * config/httpd/httpd.conf: Disable HTTP OPTIONS method as suggested
+         by Daniel Berlin
+
+2005-04-14 12:29  gespinasse
+
+       * updates/1.4.6/setup: Update configroot include files This is only
+         to have doc up to date as /var/ipcop files are include I just
+         wanted to add /var/ipcop/ddns/settings As files were not sorten
+         in alphabetical order, the diff is not easy to  read but it will
+         be better the next time.
+
+         Create /var/ipcop/ddns/settings in update allow to remove the
+         touch in setddns.pl.
+
+2005-04-13 23:52  gespinasse
+
+       * lfs/: bind, cdrtools, pptpclient, vim, wireless: rc.red : fix
+         SF1171610 - erase /var/ipcop/red/keepconnected during
+         configuration change It is for the rare case when the persistent
+         option was primary selected, but is now on manual and rc.red stop
+         never made beacause timeout is used.
+
+         dhcp.cgi - include eric proposal but it still some more changes
+
+         pppsetup.cgi - fix 'other countries' selection with eagle-usb
+         'W'=>'WO' - warn that dial on demand can't be used with dynamic
+         dns - ajust some display layout
+
+         bind upgrade to 9.2.5 cdrtools upgrade to 2.01 pppt client to 1.6
+         vim upgrade to 6.3 plus a security patch wireless_tools upgrade
+         to 27
+
+2005-04-11 05:29  eoberlander
+
+       * updates/1.4.6/: ROOTFILES.alpha-1.4.6, ROOTFILES.i386-1.4.6:
+         Update German from Language Database.
+
+2005-04-10 19:54  eoberlander
+
+       * updates/1.4.6/setup: Add fix for SF Bug 1174069 - unable to add
+         or edit fixed DHCP leases.
+
+2005-04-09 16:31  gespinasse
+
+       * updates/1.4.6/: ROOTFILES.alpha-1.4.6, ROOTFILES.i386-1.4.6,
+         information: Put rc.red and setup in update
+
+2005-04-09 08:46  gespinasse
+
+       * src/install+setup/setup/main.c, updates/1.4.6/.cvsignore: Modify
+         setup to fix SF1178604 A few language available in web interface
+         (zh,lt,ro,ru,th) are not supported by setup. Using english in
+         this case is better than aborting
+
+         Add .cvsignore inside updates/1.4.6
+
+2005-04-08 11:37  franck78
+
+       * updates/1.4.6/: ROOTFILES.alpha-1.4.6, ROOTFILES.i386-1.4.6: New
+         file in configroot for dhcpd
+
+2005-04-08 00:16  franck78
+
+       * html/cgi-bin/base.cgi: Reorder tag, start with colored line
+         (better view) the lists
+
+2005-04-08 00:11  franck78
+
+       * updates/1.4.6/setup: Added possibility to send 'options' with
+         dhcp server.
+
+2005-04-07 23:43  franck78
+
+       * config/cfgroot/advoptions-list: Contain options listing for dhcp
+         daemon
+
+2005-04-07 05:26  eoberlander
+
+       * updates/1.4.6/: ROOTFILES.alpha-1.4.6, ROOTFILES.i386-1.4.6:
+         Update Danish from Language Database.
+
+2005-04-05 22:40  gespinasse
+
+       * html/cgi-bin/ids.cgi, lfs/snort,
+         updates/1.4.6/ROOTFILES.alpha-1.4.6,
+         updates/1.4.6/ROOTFILES.i386-1.4.6, updates/1.4.6/setup: Upgrade
+         snort to 2.3.2
+
+         Fix the new file download with IO::Socket with new start/end
+         header mark and removing some intermediate data.  This was
+         verified to work with 2.3, 2.2 and community rules But community
+         rules need adjustement in snort.conf wich are not for now
+         available from the web interface.  So only 'user registred' or
+         'user with subscription' download are supported.
+
+         Fix a warning with the .rules regular expression - need to be
+         escaped or at the beginning/end
+
+         Display date of last rule update Keeep track when the loaded file
+         is new or the same
+
+         Make code layout uniform by replacing 4 spaces with tab
+
+         Two very similar text 'installed updates:' and 'updates
+         installed' exist.  The second will be removed in the futur.
+
+2005-04-04 19:41  rkerr
+
+       * updates/1.4.6/: ROOTFILES.alpha-1.4.6, ROOTFILES.i386-1.4.6:
+         Seeing as sitefinder is long dead it's probably a good idea to
+         remove this, especially seeing as verisign are apparently using
+         the IP for something else (see
+         http://www.merit.edu/mail.archives/nanog/2004-10/msg00181.html)
+
+2005-04-02 09:24  eoberlander
+
+       * updates/1.4.6/: ROOTFILES.alpha-1.4.6, ROOTFILES.i386-1.4.6:
+         Allow easydns and zoneedit to update without a HOSTNAME.
+
+2005-03-31 10:19  eoberlander
+
+       * updates/1.4.6/: ROOTFILES.alpha-1.4.6, ROOTFILES.i386-1.4.6:
+         Update Brazilian, French and Italian from Language Database.
+
+2005-03-31 06:17  gespinasse
+
+       * updates/1.4.6/: ROOTFILES.alpha-1.4.6, ROOTFILES.i386-1.4.6,
+         information, setup: Bump version number
+
+2005-03-29 23:31  gespinasse
+
+       * lfs/snort, updates/1.4.5/information: Revert to snort-2.1.3 until
+         the new interface is ready.  There is some problems to fix too in
+         the actual ids.cgi.  Updates rules are never displayed in web
+         interface as it was intended.
+
+         Update Changelog and information for v1.4.5 update
+
+2005-03-28 10:54  alanh
+
+       * lfs/dnsmasq, updates/1.4.5/ROOTFILES.alpha-1.4.5,
+         updates/1.4.5/ROOTFILES.i386-1.4.5: update dnsmasq to 2.21
+
+2005-03-26 22:18  eoberlander
+
+       * updates/1.4.5/: ROOTFILES.alpha-1.4.5, ROOTFILES.i386-1.4.5: Fix
+         for SF Bug 1167658, misconfiguration of ipsec.conf
+
+2005-03-26 11:28  eoberlander
+
+       * updates/1.4.5/: ROOTFILES.alpha-1.4.5, ROOTFILES.i386-1.4.5:
+         Cosmetic changes to portfw.cgi page. Experiment with link to
+         Online Help.
+
+2005-03-26 07:11  eoberlander
+
+       * html/html/images/web-support.png: Add web-spport icon for future
+         use. This is a stock OOo icon, licensed under the LGPL by Ximian.
+
+2005-03-25 22:51  alanh
+
+       * lfs/unzip: put md5 back, mine was a bad download
+
+2005-03-25 15:36  alanh
+
+       * lfs/unzip: md5sum changed on unzip
+
+2005-03-22 21:25  eoberlander
+
+       * updates/1.4.5/setup: Change filename, and fix typo in sed command
+         (missing /)
+
+2005-03-22 13:20  eoberlander
+
+       * updates/1.4.5/setup: Fix typo in PrintActualLeases subroutine.
+
+2005-03-20 12:31  eoberlander
+
+       * updates/1.4.5/: ROOTFILES.alpha-1.4.5, ROOTFILES.i386-1.4.5:
+         Bugfix for start address/end address string comparison. Change to
+         numeric operation.
+
+2005-03-19 09:28  eoberlander
+
+       * config/etc/logrotate.conf, updates/1.4.5/ROOTFILES.alpha-1.4.5,
+         updates/1.4.5/ROOTFILES.i386-1.4.5: Include optional log files
+         now available with squid (user_agent.log and referer.log) in
+         logrotate.conf
+
+2005-03-19 06:54  eoberlander
+
+       * lfs/snort: Update path for download.
+
+2005-03-18 20:05  gespinasse
+
+       * lfs/snort: Upgrade snort to v2.3.2
+
+         Necessary changes in the GUI for signature update are still 'work
+         in progress'
+
+2005-03-17 19:54  eoberlander
+
+       * updates/1.4.5/: ROOTFILES.alpha-1.4.5, ROOTFILES.i386-1.4.5:
+         Include setddns.pl in update, to catch version 1.4.2.14
+
+2005-03-16 18:34  gespinasse
+
+       * updates/1.4.5/: ROOTFILES.alpha-1.4.5, ROOTFILES.i386-1.4.5: Fix
+         pulsardsl by selecting correct gcc3 lib
+
+2005-03-16 12:47  eoberlander
+
+       * html/cgi-bin/logs.cgi/ids.dat,
+         updates/1.4.5/ROOTFILES.alpha-1.4.5,
+         updates/1.4.5/ROOTFILES.i386-1.4.5: Update URL for Snort
+         Signature Database lookups from IDS log page.
+
+2005-03-16 07:45  gespinasse
+
+       * updates/1.4.5/: .cvsignore, ROOTFILES.alpha-1.4.5,
+         ROOTFILES.i386-1.4.5, information, setup: Bump version and add
+         1.4.5 update
+
+2005-03-15 23:36  gespinasse
+
+       * doc/How-to-make-update: Update doc/How-to-make-update
+
+2005-03-15 22:09  gespinasse
+
+       * updates/1.4.4/information: Put the right date on information(s)
+         files
+
+2005-03-15 21:52  gespinasse
+
+       * updates/: 1.4.3/information, 1.4.4/information: Updates
+         informations files
+
+2005-03-15 20:48  gespinasse
+
+       * lfs/dosfstools: Upgrade dosfstools (nothing include in the iso)
+         Update ROOTFILES.xxx Update Changelog
+
+2005-03-15 19:53  gespinasse
+
+       * config/cfgroot/proxy-acl: Compile squid with
+         --enable-useragent-log --enable-referer-log and add a comment in
+         acl
+
+2005-03-15 18:00  gespinasse
+
+       * lfs/shadow: Move shadow again to the alternate site
+
+2005-03-15 17:50  gespinasse
+
+       * lfs/unzip: Upgrade unzip (nothing is include in the iso)
+
+2005-03-15 17:48  gespinasse
+
+       * lfs/procinfo: Follow procinfo to the new directory
+
+2005-03-09 20:08  rkerr
+
+       * src/misc-progs/setuid.h: . & : are also valid characters in
+         device names (as used by 802.1q vlans and aliases). SF bug
+         #1153908 thanks to Micheal Reitz.
+
+2005-03-07 21:28  eoberlander
+
+       * html/cgi-bin/changepw.cgi: Cosmetic change to layout of tables.
+         Clarify 'admin' and 'dial' user names.
+
+2005-03-04 19:26  gespinasse
+
+       * lfs/gd, updates/1.4.3/information: Go back to gd-2.0.20 to make
+         the graphs work again with ipacsum
+
+         Start only setddsn.pl if some settings are configured
+
+         Update makegraphs to compile with strict directive
+
+2005-03-03 20:52  gespinasse
+
+       * src/rc.d/rc.updatered: Let time at dnsmasq to be killed before to
+         restart it sleep 1 solve 'address already in use' message
+
+2005-03-01 21:43  eoberlander
+
+       * config/cfgroot/lang.pl: Fixes to logic to reinstate UTF-8
+         character conversion.
+
+2005-03-01 07:38  riddles
+
+       * lfs/apache: Update logo URL
+
+2005-03-01 06:06  gespinasse
+
+       * updates/: 1.4.3/information, 1.4.4/information, 1.4.4/setup:
+         Update information from 1.4.3 and 1.4.4
+
+2005-02-28 19:35  eoberlander
+
+       * tools/check_strings.pl: Modify string name to insert 'Lang::'
+
+2005-02-27 23:18  gespinasse
+
+       * updates/: 1.4.3/information, 1.4.4/.cvsignore,
+         1.4.4/ROOTFILES.alpha-1.4.4, 1.4.4/ROOTFILES.i386-1.4.4,
+         1.4.4/information, 1.4.4/setup: Split update in two pieces to
+         solve free space available on disk size less than (380 + swap) MB
+
+         Add eciadsl-nortek to update
+
+2005-02-27 15:23  gespinasse
+
+       * lfs/dnsmasq, lfs/gd, lfs/libpng, lfs/tar, lfs/zlib,
+         src/patches/libpng-1.2.8-link_to_proper_libs-1.patch,
+         src/patches/perl-5.8.5-tempfiles.patch: Remove speedy from ISO
+
+         Upgrade dnsmasq to 2.20
+
+         Upgrade gd to 2.33 CAN-2004-0990
+
+         Upgrade libpng to 1.2.8 - big red warning on libpng page for
+         broken feature in 1.2.7 We probably not use this feature, but
+         just in case...
+
+         Fix Eagle-usb-2.1.1 installation
+
+         Another fix for perl-5.8.5 CAN-2005-0155,0156 I have to verify
+         the fix is in the files include in update
+
+         Fix for tar 1.13.25 CAN-2002-0399
+
+         Replace zlib 1.2.1 patched version with V1.2.2
+
+2005-02-26 20:13  gespinasse
+
+       * lfs/: grep, logwatch: Move grep loading to http GNU
+
+         Move logwatch URL (thank to Eric Boniface)
+
+2005-02-26 12:26  gespinasse
+
+       * lfs/findutils: Move findutils URL to http GNU site
+
+2005-02-25 07:36  gespinasse
+
+       * lfs/dhcp, src/patches/linux-2.4.27-frandom-2.patch: Upgrade squid
+         to STABLE9 (bugfix), dhcp to 3.0.2 (bugfix),   eagle-usb to
+         2.1.1(eagleIII support and isdn bug fix with CMV enabled)
+
+2005-02-24 07:44  gespinasse
+
+       * html/cgi-bin/: status.cgi, logs.cgi/firewalllog.dat,
+         logs.cgi/ids.dat: Fix expansion of Header by using {}
+
+         Fix accidental move of CA_NAME in vpnmain.cgi
+
+2005-02-22 22:21  gespinasse
+
+       * html/cgi-bin/: backup.cgi, changepw.cgi, dial.cgi, graphs.cgi,
+         ids.cgi, ipinfo.cgi, modem.cgi, proxygraphs.cgi, remote.cgi,
+         shutdown.cgi, status.cgi, time.cgi, logs.cgi/config.dat,
+         logs.cgi/firewalllog.dat, logs.cgi/ids.dat, logs.cgi/summary.dat:
+         Replace /usr/bin/speedy with /usr/bin/perl as there is too much
+         warnings (when warnings enabled)
+
+         Fix most of the warnings seed during a perfTest.sh run.
+
+         Main problems seen : - undef hash element in a test (example
+         $cgiparams{'ACTION'}) - undef array element after split ( if
+         'remark' field is empty,   related element is undef) - opening a
+         file header may fail ( no VPN may be in use so
+         /proc/net/ipsec_eroute don't exist) - a function need the & with
+         speedy when it may be omitted with   standard perl - remove
+         redondant 'my' at the same block level (vpnmain.cgi)
+
+         Replace some spaces with tab and change indentation of a few
+         files   (in particular backup.cgi)
+
+         I add two commented out lines in every cgi: - '#use warnings'
+         enable more diagnostics in error_log - '#use CGI::Carp' if you
+         broke the page code and it does not compile,   it display
+         directly the error message in replacement of error 500 ,   error
+         message is too in error_log
+
+         Beware that if speedy is in use, the name of the faultly page is
+         not in   the log
+
+         If an error is related to concatenation at a line number with
+         print <<END,   try to isolate the undef variable with some
+         additional END ; print <<END
+
+2005-02-17 15:44  gespinasse
+
+       * html/cgi-bin/base.cgi: Add a few comments concerning debugging
+         perl in the base.cgi model
+
+2005-02-15 21:47  gespinasse
+
+       * updates/1.4.3/information: Upgrade squid to 2.5.STABLE8 +
+         dns_assert patch
+
+         Refresh list of file for openssl-0.9.7e
+
+         Allow only update patch to be runce only once
+
+2005-02-12 19:59  gespinasse
+
+       * src/patches/linux-2.4.29_r8169clone.patch: Add D-link DGE-528T ID
+         at r8169 driver
+
+2005-02-07 23:11  gespinasse
+
+       * lfs/: bzip2, shadow: make.sh prefetch : cosmetic, display name of
+         lfs script in the first loop
+
+         With check and prefetch, don't silent wget to have clue of error
+         in the log.
+
+         With prefetch, calculate md5 signature before moving the file to
+         cache.  This help to detect 'page not found' answer wich is a
+         valid answer from wget.
+
+         Remove need-depmod tags after update building I find those tags
+         once in the ISO, I don't know how it was possible since they are
+         not in src/ROOTFILES.xxx
+
+         Alternate download sites for bzip2 ans shadow
+
+         Fix ddns.cgi : create /var/ipcop/ddns/settings in configroot
+
+2005-02-05 21:14  gespinasse
+
+       * config/kernel/: install-message, syslinux.cfg: Add an 'dma'
+         option to not disable dma on syslinux boot This should solve
+         SF1098510
+
+2005-02-05 15:38  gespinasse
+
+       * lfs/: 3c5x9setup, 3cp4218, Digest, Digest-HMAC, Digest-SHA1, GD,
+         Net-DNS, Net-IPv4Addr, aboot, apache, arping, autoconf, automake,
+         bash, beep, bind, binutils, bison, boot.img, busybox, bzip2,
+         ccache, cdrtools, configroot, coreutils, cxacru, dejagnu, dhcp,
+         dhcpcd, diffutils, dnsmasq, dosfstools, driver.img, e2fsprogs,
+         eciadsl, eciadsl-nortek, ed, expat, expect, ez-ipupdate, fcdsl2,
+         fcdslsl, fcdslslusb, fcdslusb, fcron, file, findutils, flex,
+         gawk, gcc, gd, gdbm, gettext, gmp, gnupg, grep, groff, grub,
+         gzip, hdparm, iana-etc, ibod, inetutils, initrd, initscripts,
+         installer, ipac-ng, ipaddr, iproute2, iptables, iputils,
+         isapnptools, isdn4k-utils, kbd, kudzu, less, libcap, libnet,
+         libpcap, libpng, libsafe, libtool, libusb, linux-atm, logrotate,
+         logwatch, m4, make, makedev, man, man-pages, mingetty,
+         misc-progs, mktemp, modutils, mtools, nano, nash, nasm, ncurses,
+         net-tools, newt, noip_updater, ntp, openssh, openssl, patch,
+         pciutils, pcmcia-cs, pcre, popt, ppp, pptpclient, procinfo,
+         procps, psmisc, python, rp-pppoe, rrdtool, scsi.img, sed,
+         setserial, setup, shadow, slang, snort, speedtouch, speedycgi,
+         squid-graph, stage2, sysklogd, syslinux, sysvinit, tar, tcl,
+         tcpdump, texinfo, traceroute, uClibc, unicorn, unzip, util-linux,
+         vim, wireless, zlib: Remove md5sum option in make.sh Add a md5
+         target in every lfs script
+
+         md5sum control is made after download or at every module
+         compilation  with md5 target.
+
+         Change layout display of check and prefetch to accord to the
+         common  pratice.  Init FINISHED=0 (thank to Frank) before the
+         loop
+
+         Add download target in lfsmake1, lfsmake to be able to use md5
+         target  after.
+
+         Remove the unused variables given during download in ipcopmake
+         and installmake.
+
+2005-02-05 13:43  rkerr
+
+       * src/patches/perl-5.8.5-perlio_debug_security.patch: Fix
+         PERLIO_DEBUG local root in suid-perl (CAN-2005-0155,
+         CAN-2005-0156, <http://secunia.com/advisories/14120/>)
+
+2005-02-04 20:09  rkerr
+
+       * lfs/squid: More squid security issues. Things are a bit unclear
+         here, the vendor advisories are using CVE numbers that either
+         aren't in the mitre database or show as assigned but pending.
+         They also disagree on which vulnerabilities have been assigned
+         which number (compare the number for the LDAP vuln in the gentoo
+         and debian advisories)
+
+         I'm not including the LDAP patch because we don't seem to compile
+         in the LDAP auth helper, and I can't find a patch for the ACL
+         issue that the debian advisory mentions. The way it's described
+         by debian I doubt the ACL problem is particularly serious but
+         we'll have to wait for mitre to update.
+
+         Applied patches are:
+
+          * squid-2.5.STABLE7-wccp_buffer_overflow.patch
+             Another WCCP problem, more dangerous than before but not too
+         much of an
+             issue seeing as we're not using WCCP
+
+          * squid-2.5.STABLE7-response_splitting.patch
+             Could probably lead to some cache poisoning attacks from
+         malicious
+             servers, probably not too great an issue
+
+          * squid-2.5.STABLE7-oversize_reply_headers.patch
+             A bit more serious, may allow a malicious server to
+         compromise squid -
+             the description is slightly unclear, would need to review the
+         patch
+
+2005-02-04 01:22  franck78
+
+       * config/cfgroot/general-functions.pl: Add features request
+         1113435,1113440  (no-ip group and empty host-name) Add password
+         'verify' Arrange screen layout Add two translations strings Used
+         model base.cgi
+
+2005-02-01 16:03  franck78
+
+       * html/cgi-bin/base.cgi: Include corrections from hosts/dhcp.cgi
+         (fixe scoping, remove warnings)
+
+2005-01-31 15:49  alanh
+
+       * src/install+setup/install/pcmcia.c: Fix a build problem on Alpha
+
+2005-01-30 23:30  alanh
+
+       * lfs/eciadsl-nortek: md5 changed
+
+2005-01-30 03:37  franck78
+
+       * html/cgi-bin/base.cgi: This file can be used as a starting base
+         for writing a new cgi with multiple-line edit It includes 'sort'
+         on top of columns.  It can also be used to rewrite some cgi. Just
+         copy/past some code.  If all cgi use the same 'flow' it's easier
+         to understand and correct.  Create
+         /var/ipcop/XY/{settings,data,XY.conf} and chmod/chown before
+         test.
+
+2005-01-30 02:45  franck78
+
+       * src/misc-progs/rebuildhosts.c: Use the first field of hosts data
+         line as enable/disable The field was unused.  Change 'break and
+         exit' to 'continue' in main loop => don't leave open the hosts
+         file Note: the cgi should catch syntax error.
+
+2005-01-28 19:02  eoberlander
+
+       * html/cgi-bin/time.cgi: Tweak position of image.
+
+2005-01-28 13:11  riddles
+
+       * src/misc-progs/restartshaping.c: Fix shaping ceiling
+
+2005-01-27 21:40  gespinasse
+
+       * lfs/pciutils: Fix the stack smashing attack during lspci use
+
+         The fix was found on Gentoo ebuild
+
+2005-01-27 13:51  alanh
+
+       * lfs/: Config, gcc-2[DEAD]: Remove gcc-2.95.3 from build
+
+         This (and with the 2.4.29 kernel) will require all kernel modules
+         to be updated in the 1.4.3 patch.
+
+2005-01-27 10:07  eoberlander
+
+       * config/cfgroot/general-functions.pl: Reapply change to sub
+         validfqdn to allow single characters as part of a Fully Qualified
+         Domain Name. Fixes SF Bug 1079594.
+
+2005-01-27 07:59  gespinasse
+
+       * src/patches/: patch-o-matic-ng-20040621_03_2.4.29.patch,
+         patch-o-matic-ng-20040621_nf-log_2.4.29.patch,
+         patch-o-matic-ng-20040621_pptp_2.4.29.patch,
+         patch-o-matic-ng-20040621_raw_2.4.28.patch,
+         raw-linux-2.4.28.patch[DEAD]: Compile kernel 2.4.29 (not yet
+         tested), Openswan 1.0.8
+
+         patch-o-matic changes may need a bit of more cleaning due to
+         CONFIG_IP_NF_NAT_LOCAL removal
+
+         Still some work to do for update
+
+         Revert strip to -type f and use the find from tools/bin
+
+2005-01-27 00:25  franck78
+
+       * config/cfgroot/general-functions.pl: Some ipcop code do not
+         expect the hash be cleared but only be add/modified by readhash.
+         Existing entries must not be cleared
+
+         Remove a 'my' causing function IpInSubnet not working
+
+2005-01-26 23:07  franck78
+
+       * config/cfgroot/general-functions.pl: 'use Socket;' moved to
+         general-functions.pl
+
+2005-01-26 19:58  gespinasse
+
+       * lfs/squid: New md5sum because the patch was updated
+
+2005-01-26 19:43  riddles
+
+       * tools/perfTest.sh: Add simple perfTest script
+
+2005-01-26 12:23  riddles
+
+       * config/cfgroot/countries.pl, config/cfgroot/general-functions.pl,
+         config/cfgroot/lang.pl, config/cfgroot/protocols.pl,
+         html/cgi-bin/aliases.cgi, html/cgi-bin/backup.cgi,
+         html/cgi-bin/changepw.cgi, html/cgi-bin/connections.cgi,
+         html/cgi-bin/dial.cgi, html/cgi-bin/graphs.cgi,
+         html/cgi-bin/hosts.cgi, html/cgi-bin/ids.cgi,
+         html/cgi-bin/ipinfo.cgi, html/cgi-bin/modem.cgi,
+         html/cgi-bin/networks.cgi, html/cgi-bin/proxygraphs.cgi,
+         html/cgi-bin/remote.cgi, html/cgi-bin/services.cgi,
+         html/cgi-bin/shutdown.cgi, html/cgi-bin/status.cgi,
+         html/cgi-bin/time.cgi, html/cgi-bin/logs.cgi/config.dat,
+         html/cgi-bin/logs.cgi/firewalllog.dat,
+         html/cgi-bin/logs.cgi/ids.dat, html/cgi-bin/logs.cgi/log.dat,
+         html/cgi-bin/logs.cgi/summary.dat, lfs/configroot, lfs/speedycgi,
+         src/ppp/dialer, src/ppp/ip-down, src/ppp/ip-up,
+         src/rc.d/helper/getdnsfromdhcpc.pl, src/rc.d/helper/writeipac.pl,
+         src/scripts/tunerrd.pl, src/scripts/updatelists.pl: Clean up our
+         CGI code + use speedycgi for speedup
+
+2005-01-25 20:24  gespinasse
+
+       * lfs/squid: SQUID fix for :  Reject malformed HTTP requests and
+         responses that conflict with the HTTP specifications
+
+2005-01-24 17:53  riddles
+
+       * src/install+setup/setup/networking.c: This could never have
+         worked, right?
+
+2005-01-24 07:21  gespinasse
+
+       * lfs/unicorn: Forgotten new unicorn md5
+
+2005-01-24 07:14  gespinasse
+
+       * lfs/unicorn: Update Bewan unicorn driver to 0.9.0
+
+2005-01-23 18:59  eoberlander
+
+       * html/cgi-bin/time.cgi: Cosmetic change. Improve formatting of
+         table.
+
+2005-01-23 14:18  eoberlander
+
+       * config/cfgroot/general-functions.pl: Change sub validfqdn to
+         allow single characters as part of a Fully Qualified Domain Name.
+         Fixes SF Bug 1079594.
+
+2005-01-23 13:46  franck78
+
+       * config/cfgroot/general-functions.pl: Correct perl syntax, just
+         returning '1' (true) at end of functions files.  Add
+         !/usr/bin/perl Header.pl also 'requires' general-functions.pl:
+         This avoid breaking some add-on ( as mine squidguarg). The
+         'require' do do not execute twice the file, but the 'require
+         general-functions.pl' statements in all cgi can be suppressed.
+
+2005-01-23 10:02  eoberlander
+
+       * config/cfgroot/general-functions.pl: Add return 1 to end of
+         files, to fix bug.
+
+2005-01-21 11:42  eoberlander
+
+       * html/cgi-bin/aliases.cgi, html/cgi-bin/backup.cgi,
+         html/cgi-bin/changepw.cgi, html/cgi-bin/connections.cgi,
+         html/cgi-bin/dial.cgi, html/cgi-bin/graphs.cgi,
+         html/cgi-bin/hosts.cgi, html/cgi-bin/ids.cgi,
+         html/cgi-bin/ipinfo.cgi, html/cgi-bin/modem.cgi,
+         html/cgi-bin/networks.cgi, html/cgi-bin/proxygraphs.cgi,
+         html/cgi-bin/remote.cgi, html/cgi-bin/services.cgi,
+         html/cgi-bin/shutdown.cgi, html/cgi-bin/status.cgi,
+         html/cgi-bin/time.cgi, html/cgi-bin/updates.cgi,
+         html/cgi-bin/logs.cgi/config.dat,
+         html/cgi-bin/logs.cgi/firewalllog.dat,
+         html/cgi-bin/logs.cgi/ids.dat, html/cgi-bin/logs.cgi/log.dat,
+         html/cgi-bin/logs.cgi/proxylog.dat,
+         html/cgi-bin/logs.cgi/summary.dat, lfs/configroot,
+         src/ppp/dialer, src/ppp/ip-down, src/ppp/ip-up,
+         src/rc.d/helper/getdnsfromdhcpc.pl, src/rc.d/helper/writeipac.pl,
+         src/scripts/makegraphs, src/scripts/tunerrd.pl,
+         src/scripts/updatelists.pl: Insert call to general-functions.pl
+         file, following separation of functions from header.pl (John
+         Edwards).
+
+2005-01-21 11:37  eoberlander
+
+       * config/cfgroot/: backup-exclude, general-functions.pl: Add new
+         general-functions.pl file (John Edwards).
+
+2005-01-18 22:39  rkerr
+
+       * lfs/squid: Fixes for several squid security issues:
+
+           * Gopher parsing buffer overflow
+               <http://www.squid-cache.org/Advisories/SQUID-2005_1.txt>
+               As gopher is such an old protocol and very unlikely to be
+         used by our
+               target market we should probably consider adding an acl to
+         deny it by
+               default to protect us against any other flaws that may pop
+         up.
+
+           * WCCP DoS
+               <http://www.squid-cache.org/Advisories/SQUID-2005_2.txt>
+               We don't enable WWCP in our default config, so we're not
+         vulnerable.
+               However, we do compile support for WCCP in and it's
+         possible an addon
+               or user may chose to use a non-default squid config with it
+         enabled,
+               so it's best to patch anyway. Should perhaps consider not
+         compiling in
+               WCCP support at all in the next version.
+
+           * NTLM fakeauth_auth helper DoS
+               <http://secunia.com/advisories/13789>
+               Again, the NTLM helper isn't enabled in the default config,
+         but it is
+               compiled in, so it's good to patch it. I seem to remember
+         darren uses
+               this in his custom installs, and there may well be an addon
+         that uses
+               it too.
+
+2005-01-16 20:08  franck78
+
+       * lfs/Config: Add delay timeouts on wget commandline (was blocking
+         on 'ipaddr' and 'cdrtools') Make only the last pass of make
+         check/prefetch displaying error Reduce from 5 to 3 the number of
+         pass
+
+2005-01-16 10:11  gespinasse
+
+       * lfs/: 3c5x9setup, 3cp4218, Config, Digest, Digest-HMAC,
+         Digest-SHA1, GD, Net-DNS, Net-IPv4Addr, aboot, amedyn, apache,
+         arping, autoconf, automake, bash, beep, bind, binutils, bison,
+         busybox, bzip2, capi4k-utils, ccache, cdrtools, configroot,
+         coreutils, cxacru, dejagnu, dhcp, dhcpcd, diffutils, dnsmasq,
+         dosfstools, e2fsprogs, eciadsl, eciadsl-nortek, ed, expat,
+         expect, ez-ipupdate, fcdsl2, fcdslsl, fcdslslusb, fcdslusb,
+         fcron, file, findutils, flex, gawk, gcc, gcc-2, gd, gdbm,
+         gettext, gmp, gnupg, grep, groff, grub, gzip, hdparm, iana-etc,
+         ibod, inetutils, initrd, initscripts, installer, ipac-ng, ipaddr,
+         iproute2, iptables, iputils, isapnptools, isdn4k-utils, kbd,
+         kudzu, less, libcap, libnet, libpcap, libpng, libsafe, libtool,
+         libusb, linux-atm, logrotate, logwatch, m4, make, makedev, man,
+         man-pages, mingetty, misc-progs, mktemp, modutils, mtools, nano,
+         nash, nasm, ncurses, net-tools, newt, noip_updater, ntp, openssh,
+         openssl, patch, pciutils, pcmcia-cs, pcre, popt, ppp, pptpclient,
+         procinfo, procps, psmisc, python, rp-pppoe, rrdtool, sed,
+         setserial, setup, shadow, slang, snort, speedtouch, squid,
+         squid-graph, sysklogd, syslinux, sysvinit, tar, tcl, tcpdump,
+         texinfo, traceroute, uClibc, unicorn, unzip, util-linux, vim,
+         wireless, zlib: New features for building in make.sh ./make.sh
+         check and prefetch options are in a loop for 5 attempts to load
+
+         ./make.sh check tag every files names found in cache/check
+         directory This allow to continue and not abort at the first
+         error, it was painfull to loading again every same files with ftp
+         address.
+
+         ./make.sh checkclean erase all tags in cache/check made by
+         ./make.sh check
+
+         ./make.sh md5sum write md5sum of every files tagged in
+         cache/check
+
+         During ./make.sh check and prefetch, make is silenced with -s
+         option.  When nothing has to be done (the file is already loaded
+         or checked),  nothing is displayed.
+
+         When a source file is loaded, the file is verified against the
+         attended md5sum  read on the lfs script. This allow to load a
+         file from another source  without risk.
+
+         When a source is updated, it is necessary to update the md5. On
+         signature mismatch, the file stay in /tmp and is not copied
+         inside cache
+
+         Every script inside lfs has been rewritten to support this md5
+         checking Each file is described by : - target name - URL affected
+         to the target name - MD5sum affected to another variable composed
+         of the target name +'_MD5' Every file need to be listed in the
+         objects list
+
+         unstall and versions targets have been removed from lfs scripts
+
+         LFS patches are now loaded from http site (before from ftp)
+         gcc-3.3 and gcc-2.95 patches for ssp are updated to ssp-4 version
+         A few patch name have been updated (some move from - to _)
+
+         capi4k-utils now follow ppp version
+
+         During my check of md5sum, I discover that some sources have been
+         changed since the first time I load them, despite of the same
+         name.  eciadsl-usermode-0.10-nortek-alpha (mainly but not only
+         doc changes) bash-2.05b-2.patch, rawwritewin-0.7.zip,
+         gcc-2.95.3-2.patch
+
+         So instead of changing the written md5sum, verify if the file in
+         cache is not different from the one available on the web
+
+2005-01-15 15:09  eoberlander
+
+       * updates/1.4.3/information: Improve formatting of Legend table, to
+         cope with long translated strings.
+
+2005-01-12 02:39  franck78
+
+       * html/cgi-bin/: gui.cgi, ids.cgi, remote.cgi, time.cgi: Some tag
+         conversion  (XHTML)
+
+2005-01-12 01:58  franck78
+
+       * html/cgi-bin/connections.cgi: XHTML <br> moved to  <br />
+
+2005-01-12 01:50  franck78
+
+       * html/cgi-bin/aliases.cgi: XHTML tag <hr> to <hr />
+         http://www.w3.org/TR/xhtml1/#guidelines
+
+2005-01-11 21:26  franck78
+
+       * src/scripts/setddns.pl: Use -f option to reset counter for
+         FetchPublicIp execution starts also $Lines restored, oups!
+
+2005-01-11 16:36  eoberlander
+
+       * html/cgi-bin/portfw.cgi: Cosmetic changes to table format, adding
+         some spaces.
+
+2005-01-11 14:18  franck78
+
+       * html/cgi-bin/logs.cgi/: config.dat, firewalllog.dat, ids.dat,
+         log.dat, proxylog.dat, summary.dat: Undo tag < /> correction...
+
+2005-01-11 14:02  franck78
+
+       * html/cgi-bin/: aliases.cgi, backup.cgi, changepw.cgi,
+         connections.cgi, graphs.cgi, gui.cgi, ids.cgi, modem.cgi,
+         portfw.cgi, proxygraphs.cgi, remote.cgi, shaping.cgi,
+         shutdown.cgi, status.cgi, time.cgi, updates.cgi, wireless.cgi:
+         Undo tag < /> correction! Sorry for the mistake, Franck
+
+2005-01-11 02:36  franck78
+
+       * html/cgi-bin/: aliases.cgi, backup.cgi, changepw.cgi,
+         connections.cgi, graphs.cgi, gui.cgi, ids.cgi, index.cgi,
+         modem.cgi, portfw.cgi, proxygraphs.cgi, remote.cgi, shaping.cgi,
+         shutdown.cgi, status.cgi, time.cgi, updates.cgi, wireless.cgi,
+         xtaccess.cgi, logs.cgi/config.dat, logs.cgi/firewalllog.dat,
+         logs.cgi/ids.dat, logs.cgi/log.dat, logs.cgi/proxylog.dat,
+         logs.cgi/summary.dat: Correct lot of tag <tag /> to <tag>
+
+2005-01-10 12:32  franck78
+
+       * src/scripts/setddns.pl: Added RFE 1092914: dyndns behind router.
+         Based on Achim Weber patch.  Removed lot of perl warning.
+         Corrected some HTML tags.  Four translations added to language
+         database by Eric
+
+2005-01-09 12:20  eoberlander
+
+       * html/cgi-bin/: aliases.cgi, ids.cgi: Cosmetic change to layout of
+         boxes on Snort IDS page.
+
+2005-01-07 13:08  eoberlander
+
+       * updates/1.4.3/setup: Include recent changes in update files.
+
+2005-01-07 07:28  gespinasse
+
+       * src/rc.d/rc.updatered: Fix with dhcpd on RED when two successive
+         rc.updatered are made.  On low machines, the first run may have
+         end after the end of the second.  This is very bad when the first
+         is dhcpcd down and the second is dhcpcd new as the interface stay
+         down.
+
+         This happen in particular when the modem acting a a dhcp server
+         drive  a ppp connection and both the IP and the gateway IP change
+         on renewal.
+
+2005-01-04 17:21  eoberlander
+
+       * html/cgi-bin/xtaccess.cgi, src/misc-progs/setxtaccess.c: Fix
+         External Access page for port ranges, and adjust setxtaccess.c to
+         include extra 'remark/comment' field (Darren Critchley)
+
+2005-01-04 09:22  eoberlander
+
+       * html/cgi-bin/xtaccess.cgi: Fix External Access page for port
+         ranges (Darren Critchley)
+
+2005-01-03 22:55  gespinasse
+
+       * src/patches/ppp_generic-ppp-2.4.3_multilink.patch: Stylistic
+         change in lfs/linux
+
+         For ppp-2.4.3, we will wait until a new libpcap is available
+
+2005-01-02 10:45  eoberlander
+
+       * updates/1.4.3/setup: Remove SENDCR from modem/defaults file, as
+         it is now handled in ppp/settings. Cosmetic change to modem.cgi,
+         bringing buttons into box.
+
+2005-01-02 10:01  eoberlander
+
+       * config/cfgroot/modem-defaults, config/cfgroot/modem-settings,
+         html/cgi-bin/modem.cgi: Remove SENDCR from modem/defaults file,
+         as it is now handled in ppp/settings. Cosmetic change to
+         modem.cgi, bringing buttons into box.
+
+2005-01-01 16:41  gespinasse
+
+       * doc/How-to-make-update: Update How-to-make-update
+
+2005-01-01 16:34  gespinasse
+
+       * doc/.cvsignore, html/cgi-bin/updates.cgi,
+         src/misc-progs/installpackage.c, updates/1.4.1/.cvsignore,
+         updates/1.4.2/.cvsignore, updates/1.4.3/.cvsignore: Delete
+         earlier the loaded update to spare 1/3 of necessary free space
+
+         Add forgotten cvsignore
+
+2005-01-01 14:44  gespinasse
+
+       * .cvsignore: Cosmetic : add some cvsignore to clean the logs
+
+2005-01-01 09:32  gespinasse
+
+       * lfs/zlib: Fix CAN-2004-0797 in zlib-1.2.1 (local D.O.S)
+
+2004-12-31 18:33  eoberlander
+
+       * html/cgi-bin/remote.cgi: Cosmetic change to layout of remote.cgi,
+         moving checkboxes to lefthand side, and indenting the list.
+
+2004-12-30 22:56  gespinasse
+
+       * updates/1.4.3/setup: add again updates/1.4.3/setup
+
+2004-12-30 22:54  gespinasse
+
+       * updates/1.4.3/setup[DEAD]: Try adding exec permission at
+         updates/1.4.3/setup by removing and  adding again
+
+2004-12-30 21:53  gespinasse
+
+       * updates/1.4.3/setup: Use two variable in patch setup instead of
+         multiple numbers occurences
+
+         Don't try to hack /var/ipcop/patched/installed inside the patch
+         update, or it will fail to transfer content of information from
+         available to installed file.
+
+2004-12-30 09:50  eoberlander
+
+       * html/cgi-bin/aliases.cgi: Cosmetic changes to aliases.cgi so
+         layout matches other pages.
+
+2004-12-30 09:26  eoberlander
+
+       * html/cgi-bin/time.cgi: Cosmetic changes to layout of time.cgi.
+         I've included some explanatory text, and moved the Set Time Now
+         button to make it clear it can be used with Repeating Schedules
+         as well as Manual events.
+
+2004-12-23 18:36  eoberlander
+
+       * src/rc.d/rc.firewall.local: Add improvements to rc.firewall.local
+         suggested by Scott Tregear in SF Bug 1088730. This file is not
+         included as an update, as Users own versions would be
+         overwritten.
+
+2004-12-23 08:54  eoberlander
+
+       * updates/1.4.3/: ROOTFILES.alpha-1.4.3, ROOTFILES.i386-1.4.3:
+         Update Chinese from Language Database.
+
+2004-12-23 07:44  eoberlander
+
+       * updates/1.4.3/: ROOTFILES.alpha-1.4.3, ROOTFILES.i386-1.4.3:
+         Update Danish from Language Database.
+
+2004-12-22 21:40  eoberlander
+
+       * html/cgi-bin/gui.cgi, updates/1.4.3/information: Include control
+         on gui.cgi page to allow user selectable refresh of index.cgi
+         whilst Connected. Default is NO refresh whilst connected, which
+         is the status quo.
+
+2004-12-22 18:23  eoberlander
+
+       * html/cgi-bin/gui.cgi, updates/1.4.3/ROOTFILES.alpha-1.4.3,
+         updates/1.4.3/ROOTFILES.i386-1.4.3: Modify layout of gui.cgi and
+         include control for muting beeps on ip-up and ip-down, and a
+         'Restore defaults' button. Add three new phrases to Language
+         Database.\n\nStill to do: Add control for refreshing index page.
+
+2004-12-19 22:20  eoberlander
+
+       * updates/1.4.3/: ROOTFILES.alpha-1.4.3, ROOTFILES.i386-1.4.3: Fix
+         a bug that caused a fixed lease to always be Enabled after being
+         edited.
+
+2004-12-18 21:58  gespinasse
+
+       * doc/How-to-make-update, updates/1.4.3/ROOTFILES.alpha-1.4.3,
+         updates/1.4.3/ROOTFILES.i386-1.4.3: Change the name of modified
+         sources list to foc/updated-sources
+
+         Exit if cvs export has failed
+
+         Remove heading '/' in ROOTFILES.x-1.4.3
+
+2004-12-18 18:16  gespinasse
+
+       * tools/gen_changelog.sh[DEAD]: Move Changelog update in a new
+         ./make.sh changelog
+
+2004-12-18 18:11  eoberlander
+
+       * updates/1.4.3/setup: Be more specific about which line to edit.
+
+2004-12-18 17:28  eoberlander
+
+       * updates/1.4.3/setup: Change .tar.gz to .tgz.gpg in remaining
+         language files. Update from Language Database to CVS for iso, and
+         use sed in setup file for upgrade. Closes SF Bug 1077494.
+
+2004-12-18 17:25  eoberlander
+
+       * html/html/images/forward.gif: Cosmetic change to arrow.
+
+2004-12-18 11:27  gespinasse
+
+       * updates/1.4.3/: ROOTFILES.alpha-1.4.3, ROOTFILES.i386-1.4.3,
+         information, setup: Use a ID corresponding to the revision number
+         (fix SF 1086812)
+
+         Sed header.pl for $version instead of replacing the whole file
+         hoping  to not broke add-ons
+
+         Patch of langage changes still need to be done.  It will be made
+         in the 'dist' part of make.sh
+
+2004-12-17 21:13  eoberlander
+
+       * html/cgi-bin/xtaccess.cgi, updates/1.4.3/ROOTFILES.alpha-1.4.3,
+         updates/1.4.3/ROOTFILES.i386-1.4.3: Add modification to add a
+         field for Remarks to xtaccess.cgi, submitted by Patrick Bernaud,
+         resolves Feature Request 1052343.
+
+2004-12-17 09:49  eoberlander
+
+       * updates/1.4.3/: information, setup: Add files for 1.4.3 update.
+
+2004-12-17 09:14  eoberlander
+
+       * updates/1.4.3/: ROOTFILES.alpha-1.4.3, ROOTFILES.i386-1.4.3:
+         Update Finnish from Language Database.
+
+2004-12-17 09:04  eoberlander
+
+       * updates/1.4.3/: ROOTFILES.alpha-1.4.3, ROOTFILES.i386-1.4.3: Add
+         files for 1.4.3 update.
+
+2004-12-17 08:52  eoberlander
+
+       * html/cgi-bin/index.cgi: Add ability to refresh the index.cgi page
+         when IPCop is Connected. Refreshing the homepage when Connected
+         is currently OFF by design. Creating the file 'refreshindex' with
+         the command 'touch /var/ipcop/main/refreshindex' will force the
+         homepage to refresh every 30 seconds whilst Connected.
+
+2004-12-17 08:44  eoberlander
+
+       * html/cgi-bin/updates.cgi: Cosmetic change to Available Updates
+         box, tweak format of table.
+
+2004-12-17 08:27  eoberlander
+
+       * src/ppp/: ip-down, ip-up: Add capability to silence beeps when
+         ppp goes up or down. Beeps are ON by default. Creating the file
+         'nobeeps' with the command 'touch /var/ipcop/ppp/nobeeps' will
+         mute IPCop.
+
+2004-12-14 17:56  gespinasse
+
+       * src/misc-progs/restartsyslogd.c: Remove -u syslog option from
+         syslog start line until it behave better.
+
+         Problems were seen: - during kill -HUP (not restarted and not
+         working) - during kill (pid not removed in /var/run)
+
+2004-12-13 20:48  gespinasse
+
+       * src/misc-progs/restartsyslogd.c: Fix wrong path in restartsyslogd
+         for syslogd
+
+         The problem is still there when syslogd is started with -u syslog
+         option kill -HUP (pidnumber) does not restart syslogd
+
+2004-12-11 08:55  gespinasse
+
+       * lfs/fcdsl2, src/misc-progs/installfcdsl.c, src/rc.d/rc.fritzdsl:
+         Shift nedd-depmod tag from /var/ipcop to /var/run the tags don't
+         need to be in backup Include the tags in the update-1.4.2
+
+         Include drdsl from a 3.11.4 driver for frizt modems
+
+         Be friendly with testers, allow setup to be run more than once :
+         - from a 1.4.1 - and from a 1.4.2 This should allow testers to
+         install the final update without tweak
+
+         Update Changelog
+
+2004-12-10 07:45  gespinasse
+
+       * src/rc.d/rc.fritzdsl, updates/1.4.2/setup: Fix routed IP with ATM
+         modems
+
+         Run depmod when it was not previously done : - when switching
+         form one to the other kernel - or after fcdsl package was
+         uploaded
+
+         Go back to v1.4.0 root partition size or not enought free space
+         will be available for a kernel upgrade The problem will stay with
+         people installing directly v1.4.1
+
+         Update Changelog
+
+2004-12-09 15:01  eoberlander
+
+       * config/etc/logrotate.conf, updates/1.4.2/information: Fix snort
+         logrotation, as directories were not being flushed from
+         /var/log/snort as /var/log/snort/scan.log didn't exist. Move code
+         that flushes directories into /var/log/snort/alert section of
+         logrotate.conf.
+
+2004-12-08 06:57  gespinasse
+
+       * updates/1.4.2/information: Include pulsardsl in the update
+
+         Update information
+
+2004-12-07 18:18  gespinasse
+
+       * lfs/shadow: Shadow load in old
+
+2004-12-06 18:33  gespinasse
+
+       * lfs/Config: Update LFS URL path to 5.1.1
+
+2004-12-06 17:46  eoberlander
+
+       * updates/1.4.2/information: Target release date now Friday 10
+         December.
+
+2004-12-06 08:25  eoberlander
+
+       * updates/1.4.2/information: Update information text. With the
+         kernel update removed, I think a reboot is not required. Please
+         revise if incorrect.
+
+2004-12-05 22:32  gespinasse
+
+       * .cvsignore, updates/1.4.2/setup: Remove kernel and ppp upgrade
+         from update setup
+
+         cvsignore doc/*.txt
+
+2004-12-05 22:03  gespinasse
+
+       * lfs/ppp: Add remaining changes from the downgrade Take
+         rebuildhosts in update.1.4.2
+
+2004-12-05 18:39  gespinasse
+
+       * lfs/capi4k-utils, src/patches/ppp-2.4.2-close.patch,
+         src/patches/ppp-2.4.2-pppoatm-modprobe.patch,
+         src/patches/ppp-2.4.2-pppoatm-persist.patch,
+         src/patches/ppp-2.4.2-pppoatm.patch,
+         src/patches/ppp-2.4.2-printstats.patch,
+         src/patches/ppp-2.4.2-signal.patch: For a faster and stable
+         1.4.2, postpone upgrade: - from linux-2.4.27 to 2.4.28 - from
+         ppp.2.4.2 to 2.4.3 - from openswan-1.0.7 to 1.0.8 I am compiling
+         so everything is not tested.  If no update occure in the 4 next
+         hours, all should be right
+
+2004-12-05 13:54  rkerr
+
+       * src/misc-progs/rebuildhosts.c: Initialise DOMAINNAME so we don't
+         get weird characters in /etc/hosts if it's unset - partially
+         fixes SF bug #1023993. We still need to work out how it's
+         possible to get DOMAINNAME unset - I can't see anything obviously
+         wrong with the 1.3-1.4 upgrade code in this respect.
+
+2004-12-05 07:16  gespinasse
+
+       * config/kernel/kernel.config.i386.installer,
+         src/patches/raw-linux-2.4.28.patch: Fix patch-o-matic raw for
+         kernel 2.4.28
+
+2004-12-03 23:22  gespinasse
+
+       * src/patches/: linux-2.4.28-usb-devio.patch,
+         linux-2.4.28-usb-exclusive.patch[DEAD]: Fix usb 2.4.28 for
+         modem_run and eciadsl-synch : thank at Kaupo Arulo for the fix
+
+2004-12-03 22:57  eoberlander
+
+       * html/cgi-bin/wireless.cgi: Add colons and a blob.
+
+2004-12-03 06:46  eoberlander
+
+       * src/install+setup/setup/dhcp.c: Add _GREEN suffix to dhcpkv
+         variables. Fixes a bug where the /var/ipcop/dhcp/settings file
+         could not be read correctly by dhcp.cgi after a clean install.
+         Also change 'range dynamic-bootp' to 'range' in initial
+         dhcpd.conf file.
+
+2004-12-02 09:36  eoberlander
+
+       * lfs/file: Version 09 is no longer available.
+
+2004-12-01 20:50  gespinasse
+
+       * lfs/eciadsl-nortek: Fix the space at the end of ECI HiFocus name
+
+2004-12-01 19:17  rkerr
+
+       * html/cgi-bin/logs.cgi/proxylog.dat: Neater fix for the lack of
+         input sanitization in proxylog.dat, using cleanhtml routine from
+         header.pl
+
+2004-12-01 12:32  alanh
+
+       * updates/1.4.2/information: add 'reboot recommended' to
+         information file
+
+2004-12-01 12:12  alanh
+
+       * updates/1.4.2/information: update information file
+
+2004-12-01 12:08  alanh
+
+       * html/cgi-bin/logs.cgi/proxylog.dat: Sanitize fix ([KA Advisory
+         0411291] IPCop Cross Site Scripting Vulnerability in
+         "proxylog.dat")
+
+2004-12-01 10:16  alanh
+
+       * html/cgi-bin/wireless.cgi: Updates for the Blue Access page (Kees
+         Vonk)
+
+2004-12-01 10:02  alanh
+
+       * updates/1.4.2/setup: Fix dhcpd restarting for the upgrade
+
+2004-12-01 08:44  eoberlander
+
+       * updates/1.4.2/information: Update text.
+
+2004-11-30 21:56  alanh
+
+       * src/rc.d/rc.firewall.local: fix c&p problem
+
+2004-11-30 21:40  alanh
+
+       * src/rc.d/rc.firewall.local: add the reload option.
+
+         This is only cosmetic. If people still have older files lying
+         around and the new reload option calls this script it will just
+         print out usage information which isn't a problem.
+
+2004-11-30 20:51  alanh
+
+       * src/rc.d/rc.firewall: Correct place for calling rc.firewall.local
+         in the stop function and add an additional place for reload.
+
+2004-11-29 21:40  alanh
+
+       * src/rc.d/: rc.netaddress.up, rc.updatered: Fix DOMAIN_NAME to
+         DOMAIN_NAME_GREEN
+
+2004-11-29 20:01  alanh
+
+       * lfs/bind: Add usr/bin/host for ipsec verify
+
+2004-11-29 10:29  alanh
+
+       * updates/1.4.2/setup: Fix 'ends never' in existing dhcp leases
+         files
+
+2004-11-28 22:55  gespinasse
+
+       * src/patches/linux-2.4.28-usb-exclusive.patch: Work-around to make
+         modem_run and eciadsl-synch work again in 2.4.28 Four 2.4.28 usb
+         patches are removed
+
+2004-11-27 14:34  rkerr
+
+       * src/misc-progs/restartsyslogd.c, lfs/fcron: Make restartsyslogd
+         pass -u syslogd to syslogd if it has to re-run it, and fix
+         multiple local vulnerabilities in fcron (CAN-2004-1030,
+         CAN-2004-1031, CAN-2004-1032 & CAN-2004-1032)
+
+2004-11-27 11:07  gespinasse
+
+       * src/patches/eci-usermode_modemsdb.patch[DEAD]: Remove modems.db
+         patch since we use nortek-0.10 without changes
+
+2004-11-26 21:21  gespinasse
+
+       * lfs/fcdsl2: pppsetup.cgi - fix modems.db move to /etc/eciadsl
+
+         fcdsl2 - upgrade firmware and program to the last package
+         available for kernel2.4
+
+2004-11-26 01:22  gespinasse
+
+       * src/patches/eciadsl-usermode-0.10-semaphore-leak.patch,
+         updates/1.4.2/information, updates/1.4.2/setup: Eciadsl -
+         complete changes since previous was made too early - fix a
+         semaphore not removed on synch timeout - fix the nortek part
+         (sync and pppoeci) - rewrite rc.eciadsl to detect :    firmware
+         loading failure    keep synch info available
+
+         eciadsl-nortek should work now but not tested with this sort of
+         modems
+
+2004-11-25 18:23  gespinasse
+
+       * lfs/: eciadsl, eciadsl-nortek: Fix capi plugin location
+
+2004-11-25 09:25  alanh
+
+       * updates/1.4.2/: ROOTFILES.alpha-1.4.2, ROOTFILES.i386-1.4.2: Fix
+         locations
+
+2004-11-25 09:21  eoberlander
+
+       * langs/ro/cgi-bin/ro.pl, updates/1.4.2/ROOTFILES.alpha-1.4.2,
+         updates/1.4.2/ROOTFILES.i386-1.4.2: Update Greek and Romanian
+         languages.
+
+2004-11-24 23:27  gespinasse
+
+       * lfs/capi4k-utils, lfs/ppp,
+         src/patches/capi4k-utils-2004-10-06_ppp-2.4.3.patch,
+         src/patches/ppp-2.4.2-pppoatm-modprobe.patch[DEAD],
+         src/patches/ppp-2.4.2-pppoatm-persist.patch[DEAD],
+         src/patches/ppp-2.4.2-pppoatm.patch[DEAD], src/scripts/resetusb:
+         ppp-2.4.3 Use the included pppoatm.so plugin instead of patches
+         collection
+
+         capi4k-utils Fix compilation with ppp-2.4.3
+
+         resetusb sleep 6s after the reset instead of 3s help some
+         usb-controller
+
+2004-11-24 22:03  alanh
+
+       * updates/1.4.2/ROOTFILES.alpha-1.4.2,
+         updates/1.4.2/ROOTFILES.i386-1.4.2, lfs/openswan: OpenSWAN 1.0.8
+         final
+
+2004-11-24 10:20  alanh
+
+       * lfs/capi4k-utils: Fix capi
+
+2004-11-24 10:05  alanh
+
+       * updates/1.4.2/: ROOTFILES.alpha-1.4.2, ROOTFILES.i386-1.4.2:
+         remove unneeded ppp files
+
+2004-11-24 09:46  alanh
+
+       * updates/1.4.2/: ROOTFILES.alpha-1.4.2, ROOTFILES.i386-1.4.2: Fix
+         openswan 1.0.8rc2 files
+
+2004-11-24 09:45  alanh
+
+       * updates/1.4.2/setup: remove older ppp files
+
+2004-11-24 09:43  alanh
+
+       * updates/1.4.2/setup: upgrade kernel
+
+2004-11-24 09:39  alanh
+
+       * config/kernel/kernel.config.i386.installer, lfs/driver.img,
+         lfs/openswan, lfs/ppp, src/patches/ppp-2.4.2-close.patch[DEAD],
+         src/patches/ppp-2.4.2-pppoatm.patch,
+         src/patches/ppp-2.4.2-printstats.patch[DEAD],
+         src/patches/ppp-2.4.2-signal.patch[DEAD],
+         updates/1.4.2/ROOTFILES.alpha-1.4.2,
+         updates/1.4.2/ROOTFILES.i386-1.4.2: Upgrade kernel to 2.4.28
+         Upgrade ppp to 2.4.3 Upgrade openswan to 1.0.8rc2
+
+         Unfortunately the 'raw' patch from netfilter's patch-o-matic
+         doesn't apply cleanly. I'll look into this if it isn't fixed soon
+         with a new pomng package.
+
+         Also we'll be waiting for 1.0.8 of openswan to reach final before
+         releasing our 1.4.2 update.
+
+2004-11-23 06:37  eoberlander
+
+       * updates/1.4.2/: ROOTFILES.alpha-1.4.2, ROOTFILES.i386-1.4.2:
+         Update French, German and Norwegian with new .tgz.gpg string.
+
+2004-11-22 18:53  alanh
+
+       * tools/mkflash/mkflash: Give a little more log space for 256MB
+         Flash
+
+2004-11-22 09:18  alanh
+
+       * updates/1.4.2/: ROOTFILES.alpha-1.4.2, ROOTFILES.i386-1.4.2,
+         setup: current 1.4.2 files
+
+2004-11-19 16:41  alanh
+
+       * updates/1.4.2/: ROOTFILES.alpha-1.4.2, ROOTFILES.i386-1.4.2,
+         information, setup: add 1.4.2 update files
+
+2004-11-19 10:25  alanh
+
+       * html/cgi-bin/updates.cgi, src/scripts/updatelists.pl: Put back
+         the version grabbing.
+
+         So, we'll have updates for 1.4.0, and 1.4.1 and 1.4.2, etc.
+         rather than just one big update list for 1.4.0 applying to all. I
+         think this makes it a little simpler to understand what's an
+         upgrade and what's a fresh install.
+
+2004-11-16 22:48  alanh
+
+       * src/install+setup/install/: pcmcia.c, usb.c: PCMCIA detection
+         didn't work for floppy boot systems - fix that.
+
+         Also fix PCMCIA detection for ISAPNP based PCMCIA controllers
+         which the probe routines don't find. (Fixes SF bug 1060840)
+
+2004-11-16 20:29  alanh
+
+       * config/httpd/httpd.conf: Whoops, removed too much there.
+
+2004-11-16 20:13  alanh
+
+       * config/httpd/httpd.conf: Remove access restrictions for backup
+         exporting
+
+2004-11-15 19:39  alanh
+
+       * lfs/dnsmasq: dnsmasq 2.17
+
+2004-11-15 06:23  gespinasse
+
+       * lfs/ez-ipupdate: Fix ez-ipupdate patch application
+
+2004-11-14 12:51  rkerr
+
+       * lfs/ez-ipupdate, src/patches/ez-ipupdate.formstring.patch: Fix
+         for a format string vulnerability in ez-ipupdate:
+         http://marc.theaimsgroup.com/?l=full-disclosure&m=110018323619438
+
+2004-11-12 16:19  gespinasse
+
+       * lfs/: cnx_pci, configroot: Fix eagle-usb with CMV file for isdn
+         line
+
+         Conexant PCI - remove the depmod since a final one is made in
+         driver.img - add again /var/ipcop/cnx_pci since it is used to
+         write symlink - remove ttyCX part as it is not used
+
+2004-11-11 10:41  gespinasse
+
+       * lfs/cnx_pci, lfs/configroot,
+         src/patches/CnxADSL-cln-irqreturn.patch,
+         src/rc.d/rc.conexantpciadsl: Update Conexant pci driver -  this
+         fix the related stack smashing attack and other memory leak
+         messages -  there is still a problem at reconnection, the driver
+         look to keep    an LCP TermReq in a buffer from previous session
+         and disconnect when ppp0    goes up
+
+         Eagleusbadsl - fix rc.eagleusbadsl in update-1.4.1 forgotten -
+         don't take dsp_code in update since they were not updated from
+         1.9.9   to 2.0.0
+
+2004-11-11 09:39  alanh
+
+       * src/install+setup/: install/upgrade-v12-v13.c, libsmooth/main.c:
+         Fix a problem in the 1.2 to 1.3 upgrade that causes lots of lines
+         like
+
+         TYPE=modem TYPE=modem TYPE=modem
+
+         or
+
+         TYPE=isdn TYPE=isdn TYPE=isdn
+
+         in the ppp settings files because of a bogus replace command.
+
+2004-11-10 20:13  alanh
+
+       * updates/1.4.1/information: Bump the date for 1.4.1 to the 20th
+         November.
+
+         Fix the installed patches file to have the same date as Released
+         & Installed.
+
+2004-11-10 19:56  alanh
+
+       * lfs/iputils: add an alternative 'ping' binary that supports the
+         -I option.  This one is installed in /usr/bin, whereas the
+         inetutils one is currently installed in /bin
+
+         Other people have asked for this functionality to return.
+
+2004-11-10 17:39  alanh
+
+       * config/kernel/kernel.config.i386.installer: Fix the ROOTFILES for
+         the real kernel modules that haven't been updated in a while.
+
+         Actually build some more of the wireless kernel modules and
+         include them in the 1.4.1 update for those who want to configure
+         manually.
+
+2004-11-10 17:13  alanh
+
+       * lfs/driver.img: Exclude ide and acpi modules from network driver
+         disk
+
+2004-11-09 23:25  gespinasse
+
+       * src/patches/: eagle-usb-1.9.9-pppoa-mac.patch[DEAD],
+         eciadsl-usermode-0.9-load1.patch[DEAD]: Remove unecessary old
+         patches Fix an old adiadsl in netstatus.cgi
+
+2004-11-09 22:00  alanh
+
+       * html/cgi-bin/netstatus.cgi: improve the colours
+
+2004-11-09 19:31  alanh
+
+       * html/cgi-bin/netstatus.cgi: Highlight the interfaces in bold for
+         better colour representation
+
+2004-11-09 17:35  alanh
+
+       * html/cgi-bin/netstatus.cgi: Consolidate the dynamic leases code
+         in dhcp.cgi and netstatus.cgi (Franck Bourdonnec)
+
+2004-11-09 11:21  alanh
+
+       * lfs/isapnptools: Check the correct location for isapnp command.
+         Create new /var/ipcop/isapnp directory and move the isapnp.conf
+         file there so it's backed up and out of the way of /etc.  Fixes
+         SF bug 1062961
+
+2004-11-09 09:54  alanh
+
+       * html/cgi-bin/netstatus.cgi: Add colour coding to the interface
+         names in netstatus.cgi for easier management of which interface
+         is which.
+
+         Thanks to Franck Bourdonnec for the initial version of this.
+
+2004-11-09 07:56  gespinasse
+
+       * lfs/eciadsl-nortek, src/rc.d/rc.eagleusbadsl: Update eagle-usb to
+         2.0.0 with cmv use Update eciadsl-nortek to 0.10-alpha Remove
+         $VERSION in /doc/packages-list
+
+2004-11-06 15:14  gespinasse
+
+       * html/cgi-bin/netstatus.cgi: Fix netstatus for new dhcp variables
+         Normalize position of {
+
+2004-11-05 23:40  alanh
+
+       * config/kernel/kernel.config.i386.installer,
+         config/kernel/kernel.config.i386.smp,
+         src/install+setup/libsmooth/netstuff.c: ax8817x usb driver no
+         longer exists and is included in usbnet.  So support usbnet from
+         now on.
+
+2004-11-05 07:17  gespinasse
+
+       * lfs/eciadsl, src/patches/eci-usermode_modemsdb.patch,
+         src/rc.d/rc.eciadsl: Update to eciadsl-0.10 Don't remove
+         eciadsl-usermode-0.9-load1.patch as it is used by nortek  version
+
+2004-11-04 18:51  alanh
+
+       * src/rc.d/rc.network: Support PCMCIA USB devices
+
+2004-11-04 11:41  eoberlander
+
+       * langs/ro/cgi-bin/ro.pl: Minor changes from Language Database.
+         Mainly deletions - Not intended for inclusion in update.
+
+2004-11-03 22:11  alanh
+
+       * src/misc-progs/setuid.h: add VALID_SHORT_MASK
+
+2004-11-03 21:28  alanh
+
+       * src/misc-progs/restartsquid.c: Fix restartsquid when used in
+         conjunction with VPN's (Darren Critchley)
+
+2004-11-03 16:37  eoberlander
+
+       * src/scripts/makegraphs: Add Michael Spann's solution for utf-8
+         conversion for rrdtool, adapted to use different character sets,
+         and to avoid those we can't yet convert.
+
+2004-11-03 13:50  alanh
+
+       * src/: install+setup/setup/dhcp.c, misc-progs/restartdhcp.c:
+         Commit Franck Bourdonnec's changes to the dhcp page which fixes
+         the dhcp page bug in SF with regards to src/dest range checking.
+
+         I've tested this quite a bit as I had to put the upgrade bits &
+         pieces together. But it could use a little more banging on.
+
+         Eric - There's a one line addition to the en.pl language file
+         you'll notice.
+
+2004-11-02 18:45  alanh
+
+       * doc/ChangeLog: Changes since 1.4.0
+
+2004-11-02 09:28  alanh
+
+       * lfs/apache: upgrade apache to 1.3.33 and modssl to 2.8.22-1.3.33
+
+2004-10-30 13:09  alanh
+
+       * updates/1.4.1/setup: Comment out dhcp problem for now, until I
+         can investigate
+
+2004-10-29 11:33  alanh
+
+       * html/cgi-bin/dmzholes.cgi: Remove the old check
+
+2004-10-29 11:09  alanh
+
+       * html/cgi-bin/dmzholes.cgi, src/misc-progs/setdmzholes.c: Fix DMZ
+         page for port ranges (Darren Critchley)
+
+2004-10-29 10:15  alanh
+
+       * updates/1.4.1/setup: Detect if it's been done
+
+2004-10-29 10:10  alanh
+
+       * updates/1.4.1/setup: Fix more bootp problems by disallowing
+         'dynamic bootp' clients
+
+2004-10-28 18:13  alanh
+
+       * lfs/openssl: remove -j 3 - seems to cause build problems with
+         this version
+
+2004-10-28 17:55  alanh
+
+       * lfs/openssl: Fix openssl rmdir command
+
+2004-10-28 17:09  alanh
+
+       * lfs/openssl: ensure fips is defined
+
+2004-10-28 08:50  alanh
+
+       * updates/1.4.1/setup: Check that 1.4.0 is currently running before
+         trying to perform an upgrade
+
+2004-10-28 08:25  alanh
+
+       * lfs/openssl: openssl 0.9.7e
+
+2004-10-28 07:40  eoberlander
+
+       * langs/so/cgi-bin/so.pl: Remove old 'fritzdsl help' string, as
+         Gilles has rewritten it in English.
+
+2004-10-27 10:04  alanh
+
+       * lfs/dnsmasq: Upgrade dnsmasq to 2.16 (since 2.06 ish) it's been
+         backwards compatible to dnsmasq 1.18 and has quite a few bug
+         fixes too.
+
+         We still do not use the DHCP features because ISC's is doing this
+         job.  It needs to be looked at for IPCop 1.5.0 whether dnsmasq
+         DHCP can do all of the functions that we're currently using ISC's
+         for.
+
+2004-10-26 21:47  gespinasse
+
+       * lfs/fcdsl, src/misc-progs/installfcdsl.c: Fix installfcdsl fro
+         untaring the files
+
+         Remove drdsl,drdsl.ini
+
+2004-10-26 20:16  alanh
+
+       * lfs/iptables, src/patches/iptables-1.2.11.patch: Fix iptables bug
+         when hostname used has multiple ip address matches.  (SF bug
+         1054790)
+
+2004-10-26 19:40  alanh
+
+       * lfs/eciadsl-nortek: Fix download link
+
+2004-10-25 18:29  gespinasse
+
+       * updates/1.4.1/information: Update fcdsl upload help text
+
+         Add eciadsl-nortek support info in 1.4.1 patch
+
+2004-10-25 17:39  gespinasse
+
+       * html/cgi-bin/index.cgi, html/cgi-bin/status.cgi, lfs/eciadsl,
+         lfs/eciadsl-nortek, lfs/fcdsl, lfs/net-tools,
+         src/patches/eci-usermode_modemsdb.patch,
+         src/patches/net-tools-1.60-cleanup-list-handling.patch,
+         src/patches/net-tools-1.60-get_name.patch, src/rc.d/rc.eciadsl,
+         updates/1.4.1/ROOTFILES.alpha-1.4.1: net-tools   Fix  SF1047183
+         stack smashing attack in function if_readlist_proc
+
+         pppsetup.cgi   Clean the code   Fix display for fritzdsl    -
+         PPPoE is not a second level option but the only available
+         selection      possible with RFC1483    - correct encapsulation
+         for PPPoA
+
+         index.cgi   Make the warning for root partition a fixed size or
+         10% will waste more   than necessary on small disk
+
+         status.cgi   Display disk partition sizes in fixed MB unit
+
+         fcdsl   Move drdsl in /etc/drdsl (in fcdsl package)
+
+         Add support for eciadsl-nortek driver
+
+2004-10-25 11:27  eoberlander
+
+       * updates/1.4.1/information: Update information.
+
+2004-10-25 11:22  alanh
+
+       * updates/1.4.1/: ROOTFILES.alpha-1.4.1, ROOTFILES.i386-1.4.1: add
+         no.pl
+
+2004-10-25 11:15  eoberlander
+
+       * langs/fi/install/lang_fi.c: Update Finnish Installer strings to
+         include some missings CRs.
+
+2004-10-25 10:47  alanh
+
+       * updates/1.4.1/: ROOTFILES.i386-1.4.1, information: Update the
+         information file.
+
+         Can other developers update this for the fixes they've done.
+
+2004-10-21 13:08  alanh
+
+       * lfs/perl: remove -j 3 as sometimes it causes a build failure
+
+2004-10-21 07:29  gespinasse
+
+       * lfs/3cp4218, lfs/amedyn, lfs/cxacru, lfs/speedtouch,
+         src/patches/speedtouch-1.2-isdn.patch,
+         updates/1.4.1/ROOTFILES.alpha-1.4.1,
+         updates/1.4.1/ROOTFILES.i386-1.4.1: Don't reject speedtouch Rev
+         0.01 because it work! Patch modem_run to let Rev 0.01 (0x000a)
+         interfaces to be set like   a Rev 0.00 and not the default values
+         (like a Rev 2.00)
+
+         Remove intermediate depmod since a final one is made in
+         driver.img This spare a few s / mn
+
+2004-10-20 21:33  gespinasse
+
+       * src/rc.d/rc.fritzdsl: Name fcdsl tgz with $VERSION instead of
+         $KVER
+
+         Suppress a debug message with $kernel in pppsetup.cgi
+
+         Fix missing path for modprobe in rc.fritzdsl stop
+
+2004-10-20 15:55  alanh
+
+       * src/scripts/tunerrd.pl: remove CTRL+M's
+
+2004-10-20 09:05  alanh
+
+       * updates/1.4.1/ROOTFILES.alpha-1.4.1,
+         updates/1.4.1/ROOTFILES.i386-1.4.1, updates/1.4.1/setup,
+         src/scripts/makegraphs, src/scripts/tunerrd.pl: Set the heartbeat
+         to 600 seconds instead of 300 to avoid gaps in the graphs.
+
+         Fixes SF bug 1048706 (thanks to JukJuk)
+
+2004-10-20 08:51  alanh
+
+       * src/misc-progs/restartshaping.c: 8192 was still too low - up to
+         16384
+
+2004-10-20 07:05  gespinasse
+
+       * lfs/fcdsl, src/misc-progs/installfcdsl.c, src/rc.d/rc.fritzdsl,
+         updates/1.4.1/ROOTFILES.alpha-1.4.1,
+         updates/1.4.1/ROOTFILES.i386-1.4.1: Move fcdsl firmwares in
+         fcdsl-$kernel.tgz
+
+         Fix in pppsetup.cgi fcdsl module loaded detection
+
+         Set every fcdsl modem with the according controller value (1 or
+         2)   in rc.red. I am unsure for fcdsl2
+
+         Put modules.dep in patch 1 or need to start a depmod depmod take
+         more time on the target and display unresolved symbol until
+         CnxADSL is fixed
+
+2004-10-19 08:02  gespinasse
+
+       * lfs/configroot, lfs/fcdsl, lfs/fcdsl2, lfs/fcdslsl,
+         lfs/fcdslslusb, lfs/fcdslusb, src/misc-progs/Makefile,
+         src/misc-progs/installfcdsl.c,
+         src/patches/fcdsl-singlelock.patch,
+         src/patches/fcdslsl-singlelock.patch,
+         src/patches/fcdslslusb-singlelock.patch, src/rc.d/rc.fritzdsl,
+         updates/1.4.1/ROOTFILES.alpha-1.4.1,
+         updates/1.4.1/ROOTFILES.i386-1.4.1, updates/1.4.1/setup: make.sh
+         - build only fcdsl tgz with machine=i386 - name fcdsl package
+         with kernel version instead of ipcop version
+
+         upload.cgi - various fix for xhtml compliance (mainly form inside
+         of table) - load fcdsl-$kernel.tgz and install the modules from a
+         C helper
+
+         misc-progs - add an installer for uploaded fcdsl(x) modules
+
+         rc.fritdsl - fix wrong syntax for module modprobe, it should be
+         without (.o.gz)
+
+         Various fix  - remove /var/ipcop/{pulsardsl,fritzdsl}     from
+         configroot     at upgrade stage     at patch 1  - patch fcdsl,
+         fcdslsl, fcdslslusb with a singlelock patch  - 'rc.fritzdsl stop'
+         was not called on rc.red clear, so create a cleanup
+
+2004-10-18 08:06  alanh
+
+       * updates/1.4.1/: ROOTFILES.alpha-1.4.1, ROOTFILES.i386-1.4.1: add
+         fr.pl to upgrade
+
+         Eric - any files you modify - please add them here too
+
+2004-10-17 20:34  alanh
+
+       * src/rc.d/rc.netaddress.up: fix typo
+
+2004-10-17 15:30  eoberlander
+
+       * html/cgi-bin/index.cgi: Cosmetic tweak, add colons after text.
+
+2004-10-15 13:17  alanh
+
+       * lfs/squid: Don't need the squid patch with STABLE7
+
+2004-10-15 09:55  alanh
+
+       * html/cgi-bin/ids.cgi, src/misc-progs/restartsnort.c,
+         src/rc.d/rc.updatered: Allow snort to only be restarted on
+         certain interfaces.
+
+         This avoids restarting snort on all interfaces, when just the RED
+         interface has gone down/up.
+
+         ids.cgi could be improved furthur, to check tickboxes and restart
+         interfaces that have been newly selected/deselected.
+
+2004-10-15 08:44  alanh
+
+       * updates/1.4.1/setup: remove capi.conf as /etc/fcdsl/... contains
+         these entries for each fcdsl driver.
+
+2004-10-15 08:20  alanh
+
+       * updates/1.4.1/setup: Run ldconfig after libcapi20 upgrade in
+         1.4.0 to 1.4.1 upgrade
+
+2004-10-15 08:16  alanh
+
+       * lfs/squid, updates/1.4.1/ROOTFILES.alpha-1.4.1,
+         updates/1.4.1/ROOTFILES.i386-1.4.1: update squid to 2.5STABLE7
+
+2004-10-14 21:48  alanh
+
+       * html/cgi-bin/hosts.cgi: keep same formatting as under 1.4.0
+
+2004-10-14 20:57  alanh
+
+       * updates/1.4.1/: ROOTFILES.alpha-1.4.1, ROOTFILES.i386-1.4.1,
+         information, setup: Introduce a build procedure for building the
+         incremental patches.
+
+         Start with a preliminary 1.4.1 patch set for testing.
+
+         Obviously it's for those building from source, as when the patch
+         goes up on the website it will be GPG signed. Therefore the
+         update is left in build/install/images/... and not put on the
+         CDROM. The CDROM contains the latest code anyway.
+
+         If there's anything people see missing in the patch.tar.gz add
+         the files to the ROOTFILES. Exactly as you would with the normal
+         build procedure.
+
+2004-10-14 20:30  alanh
+
+       * src/rc.d/rc.netaddress.up: If RED is ethernet, and it's DHCP or
+         STATIC we have to start the connection automatically on reboot.
+         Fixes bug 1045479.
+
+2004-10-14 15:32  alanh
+
+       * src/misc-progs/restartshaping.c: Fix restartshaping priorities (y
+         b)
+
+2004-10-14 07:17  gespinasse
+
+       * lfs/fcdsl, lfs/fcdsl2, lfs/fcdslsl, lfs/fcdslslusb, lfs/fcdslusb,
+         src/patches/fcdslx-irqreturn.patch, src/rc.d/rc.fritzdsl: Add
+         support for fcdsl2,fcdslsl,fcdslslusb,fcdslusb
+
+         Upload.cgi - fix an unnecessary </tr> - treat other upload like
+         speedtouch - detect every supported fdsl modem, showing the
+         proper module name   to be loaded - display the full name with
+         .o.gz termination and load with this .o.gz
+
+         Each modem had his proper /etc/fcdsl/fcdsl(x).conf for capiinit
+         If not I had warnings for modules not found with capiinit stop
+
+2004-10-13 20:24  alanh
+
+       * html/cgi-bin/hosts.cgi: Allow hosts.cgi to be sorted by ...
+
+         ipaddress hostname domainname
+
+         and in the reverse order by clicking a second time on the titles
+         of each of the columns. Nice. Thanks to Franck Bourdonnec.
+
+         Harry - this will fix your problem too.
+
+2004-10-12 16:36  alanh
+
+       * src/scripts/setddns.pl: freedns has changed some text
+
+2004-10-11 16:38  eoberlander
+
+       * langs/it/install/lang_it.c: Updates to Italian Installer from
+         Language Database.
+
+2004-10-11 16:25  alanh
+
+       * src/misc-progs/rebuildhosts.c: [no log message]
+
+2004-10-11 16:07  alanh
+
+       * src/misc-progs/rebuildhosts.c: If a bad host gets through the
+         webpage then don't abort the rest of the hosts because of it.
+         Remove that entry and continue.
+
+2004-10-10 18:33  eoberlander
+
+       * src/rc.d/rc.alcatelusbk: Fix typo.
+
+2004-10-10 18:12  eoberlander
+
+       * src/install+setup/libsmooth/netstuff.c: Fix typo.
+
+2004-10-10 12:18  eoberlander
+
+       * langs/de/install/lang_de.c: Update to German from Language
+         Database.
+
+2004-10-10 12:17  eoberlander
+
+       * langs/so/cgi-bin/so.pl: Updates to Somali from Language Database.
+
+2004-10-09 05:58  gespinasse
+
+       * lfs/capi4k-utils, src/patches/glibc-2.3.3-ssp_frandom-2.patch:
+         Move glibc-2.3.3-ssp_frandom-2.patch to src/patches Update to
+         capi4k-utils-2004-10-06
+
+2004-10-08 10:15  alanh
+
+       * html/cgi-bin/proxy.cgi: Must multiply the MAX_INCOMING_SIZE value
+         by 1024 to turn it into bytes.  As the web page asks for it in
+         KB, but the parameter in the squid.conf can only accept a byte
+         value.
+
+2004-10-07 07:24  eoberlander
+
+       * html/cgi-bin/connections.cgi: Cosmetic change to table header
+         layout. Use line breaks, as per v1.3.
+
+2004-10-07 07:21  eoberlander
+
+       * langs/so/: cgi-bin/so.pl, install/lang_so.c: Updates to Somali
+         from Language Database.
+
+2004-10-06 08:56  eoberlander
+
+       * html/cgi-bin/connections.cgi: Cosmetic change to table layout.
+         Use full width of box.
+
+2004-10-06 07:11  eoberlander
+
+       * langs/it/install/lang_it.c: Update Italian from Language
+         Database.
+
+2004-10-05 20:33  eoberlander
+
+       * html/cgi-bin/connections.cgi: Add space between strings to fix
+         text formatting, and improve layout of table.
+
+2004-10-05 18:37  alanh
+
+       * html/cgi-bin/index.cgi: Only display hostname/ip address when
+         actually connected (Dr Michael Spann)
+
+2004-10-05 14:28  alanh
+
+       * src/scripts/updatelists.pl: Get $major.$minor.0 for patch list to
+         match update.cgi change
+
+2004-10-05 12:40  alanh
+
+       * html/cgi-bin/index.cgi: Add hostname & red ip address to
+         index.cgi page (Dr Michael Spann)
+
+2004-10-05 08:39  alanh
+
+       * src/rc.d/rc.updatered: remove the traffic shaping startup from
+         rc.sysinit, there was a bug in rc.updatered which checked for
+         ENABLED, rather than ENABLE
+
+2004-10-04 07:23  eoberlander
+
+       * langs/: en/install/lang_en.c, es/install/lang_es.c: Minor updates
+         to German, Greek, Spanish and Polish web files from Language
+         Database. And minor updates to English and Spanish Installer
+         files.
+
+2004-10-04 06:28  riddles
+
+       * src/rc.d/rc.fritzdsl: Add kernelcapi load
+
+2004-10-03 21:13  alanh
+
+       * html/cgi-bin/updates.cgi: Force updates cgi to always get
+         $major.$minor.0 (i.e. .0 is the patchlevel)
+
+         This means we can bump the last digit and still show patches
+         loaded.
+
+2004-10-03 10:32  eoberlander
+
+       * langs/so/: cgi-bin/so.pl, install/lang_so.c: Update Somali from
+         Language Database. Remove whitespace from end of some fields, as
+         it causes problems if the text is used for a button.
+
+2004-10-02 17:55  eoberlander
+
+       * langs/so/install/lang_so.c, src/install+setup/libsmooth/main.c,
+         src/install+setup/setup/main.c: Add Somali to Installer.
+
+2004-10-01 13:54  eoberlander
+
+       * langs/: list, so/cgi-bin/so.pl: Add Somali to web interface.
+
+2004-09-30 22:37  alanh
+
+       * doc/ChangeLog: Add 1.4.0 entry
+
+2004-09-30 07:46  riddles
+
+       * doc/ChangeLog, tools/gen_changelog.sh: Update changelog script
+         and changelog
+
+2004-09-29 22:12  alanh
+
+       * src/misc-progs/setportfw.c: Fix setportfw when no BLUE exists
+
+2004-09-29 14:08  alanh
+
+       * doc/ChangeLog: update ChangeLog
+
+2004-09-29 10:31  gespinasse
+
+       * lfs/cnx_pci, src/rc.d/rc.conexantpciadsl: Revert to the previous
+         package as the new one did not support the Yukon card and same
+         problem occur with ssp.  Change rc.conexantpci to not unload the
+         module at stop as a workaround.  The 'smashing attack' still
+         appear every time killall is used like in   rc.updatered with
+         dsnmasq, so it is unlikely to be reliable.
+
+2004-09-29 10:28  alanh
+
+       * html/cgi-bin/connections.cgi: Handle 'gre' in connections (this
+         may need a little more tweaking later)
+
+2004-09-29 08:35  gespinasse
+
+       * lfs/cnx_pci: Slightly better source and smaller package (not with
+         a ppp source include)
+
+2004-09-28 07:04  eoberlander
+
+       * langs/: da/install/lang_da.c, th/cgi-bin/th.pl: Updates from
+         Language Database.
+
+2004-09-28 06:44  gespinasse
+
+       * lfs/cdrom: build french doc from sourceforge
+
+2004-09-27 18:12  alanh
+
+       * src/rc.d/rc.isdn: Kill messages
+
+2004-09-26 18:20  eoberlander
+
+       * langs/fr/install/lang_fr.c: Updates to French from Language
+         Database.
+
+2004-09-26 11:20  gespinasse
+
+       * doc/ChangeLog, tools/gen_ChangeLog.txt[DEAD],
+         tools/gen_changelog.sh: Replace instructions to generate
+         changelog with a gen_changelog.sh script  working on every branch
+         Update ChangeLog in the same time
+
+2004-09-26 08:31  gespinasse
+
+       * lfs/cdrom: Add french install and quickstart pdf in the ISO (
+         they are temporarily loaded from my website) Place pdf in
+         /doc/{english|deutsch|francais} subdirectories
+
+2004-09-24 10:19  alanh
+
+       * lfs/nano: update the friendly editor
+
+2004-09-24 08:33  alanh
+
+       * src/misc-progs/ipsecctrl.c: When disabling VPN from the GUI don't
+         call ipsecctrl, but call the ipsec script directly so it does
+         shutdown. This way we can return ipsecctrl back to it's original
+         form of only shutting down when VPN is enabled.
+
+2004-09-24 06:08  gespinasse
+
+       * src/rc.d/rc.conexantpciadsl: Too late... bad file, go back to the
+         ROOT
+
+2004-09-24 00:05  gespinasse
+
+       * src/: ppp/ip-down, rc.d/rc.3cp4218usbadsl, rc.d/rc.alcatelusb,
+         rc.d/rc.alcatelusbk, rc.d/rc.amedynusbadsl, rc.d/rc.bewanadsl,
+         rc.d/rc.conexantpciadsl, rc.d/rc.conexantusbadsl,
+         rc.d/rc.eagleusbadsl, rc.d/rc.eciadsl, rc.d/rc.pulsardsl,
+         scripts/resetusb: pppsetup.cgi - replace GDTM by GDMT - hardcode
+         G.DMT,G.Lite, ANSI T1.483, Bewan PCI st,   Bewan USB st as they
+         are never translated
+
+         upgrade-v130-v140 - remove changes     from PPPoE to PPPoE
+         plugin,     from Speedtouch user-space to kernel mode
+         (dial-on-demand is not supported by the PPPoA plugin) - correct
+         GDTM => GDTM
+
+         Change to rc.(specific-script) - create an external script
+         resetusb for the numerous call to reset usb - standardised stop
+         and cleanup messages - add modprobe -r module where it was
+         sometime forgoten in cleanup part - Speedtouch usb     select
+         more accuratly supported models     (it may needed to display a
+         more user friendly message       in upload.cgi and pppsetup.cgi
+         too)     fix incorrect reconnection in PPPoE with user-space
+         driver - rc.eciadsl     synchronise now only after firmware
+         loading     fix incorrect reconnection in PPPoE - Bewan usb
+         sometime don't like cat /proc/bus/usb/devices,     so comment
+         this part until the driver is fixed
+
+         rc.connectioncheck - fix incorrect rc.eciadsl end detection
+         during sync phase - use instead 'rc.red start' target for end
+         detection.      So the timeout is only determinated by
+         rc.(specific-script) end.  - remove {ppp0|ippp0} in case of
+         multiple (incorrect) session   with dial-on-demand - in case of
+         connection timeout, stop 'rc.red start' before rc.red stop   in
+         case pppd connect just during the time needed by 'rc.red stop'
+         script to start
+
+         ip-down - don't start 'rc.connectioncheck reconnect' if one is
+         already running - it should no more append now, but ...
+
+2004-09-23 20:55  eoberlander
+
+       * langs/th/cgi-bin/th.pl: Updates from Language Database.
+
+2004-09-23 13:28  alanh
+
+       * tools/mkflash/mkflash: 32 & 64MB Flash cards no longer fit, so
+         don't expose them.
+
+2004-09-23 08:54  alanh
+
+       * src/misc-progs/restartshaping.c: Bump divisor for r2q setting to
+         8192, add some comments too.
+
+2004-09-22 17:34  alanh
+
+       * doc/ChangeLog: update the ChangeLog
+
+2004-09-22 17:15  eoberlander
+
+       * langs/th/cgi-bin/th.pl: Update to Thai from Language Database.
+
+2004-09-22 08:35  riddles
+
+       * config/cron/crontab, lfs/ipac-ng,
+         src/patches/ipac-ng-1.28-ipacsum.patch[DEAD]: Fix ipac-ng once
+         and for all
+
+2004-09-22 07:52  eoberlander
+
+       * langs/es/install/lang_es.c: Updates from Language Database.
+
+2004-09-21 20:07  gespinasse
+
+       * src/rc.d/rc.pulsardsl: Put an arbitrary sleep only after module
+         loading This allow to start pppd when the modem should be
+         synchronised
+
+2004-09-21 19:47  rkerr
+
+       * src/misc-progs/setportfw.c: Stop the blue SNAT rules overriding
+         the green ones
+
+2004-09-21 11:16  riddles
+
+       * lfs/ipac-ng, src/patches/ipac-ng-1.28-ipacsum.patch: Fix for
+         ipacsum
+
+2004-09-21 05:50  gespinasse
+
+       * src/misc-progs/setportfw.c: - fix blue_dev => bluedev
+
+2004-09-20 21:29  alanh
+
+       * src/misc-progs/setportfw.c: SNAT patch for BLUE (Robert Kerr)
+
+2004-09-20 21:28  alanh
+
+       * src/misc-progs/restartwireless.c: Remove -o for WIRELESSINPUT
+         (Franck)
+
+2004-09-20 19:42  alanh
+
+       * src/install+setup/install/probescsi.sh: Skip eata_dma driver, but
+         probe it at the very end to avoid the issues of some machines
+         crashing on this driver.
+
+2004-09-20 14:03  riddles
+
+       * html/cgi-bin/wireless.cgi: Fix id string
+
+2004-09-19 10:34  gespinasse
+
+       * lfs/cdrom: Fix change from install-en-140.pdf.zip to
+         install-en-1.4.0.pdf.zip
+
+2004-09-19 06:15  gespinasse
+
+       * src/rc.d/rc.eciadsl: Cosmetic : Display only 'Loading firmware'
+         when it is really loaded
+
+2004-09-18 17:54  alanh
+
+       * src/misc-progs/restartsquid.c: Fix transparent proxy on BLUE
+         (Franck)
+
+2004-09-18 06:51  eoberlander
+
+       * langs/es/install/lang_es.c: Updates to Spanish from Language
+         Database.
+
+2004-09-17 11:44  alanh
+
+       * src/install+setup/libsmooth/main.c: fclose file handles when
+         renaming
+
+2004-09-17 08:20  alanh
+
+       * src/rc.d/rc.updatered: Make it a little more readable (patch from
+         Franck)
+
+2004-09-17 07:44  eoberlander
+
+       * langs/: lt/cgi-bin/lt.pl, ro/cgi-bin/ro.pl: Change G.dtm to G.dmt
+         throughout Language Database.
+
+2004-09-16 23:56  alanh
+
+       * src/misc-progs/ipsecctrl.c: pump error message to /dev/null (SF
+         bug #1029177)
+
+2004-09-16 16:44  alanh
+
+       * lfs/libpng: latest libpng
+
+2004-09-16 16:44  alanh
+
+       * lfs/openssh: 3.9p1 is now current
+
+2004-09-16 13:16  eoberlander
+
+       * langs/fr/install/lang_fr.c: Updates from Language Database.
+
+2004-09-16 08:15  eoberlander
+
+       * langs/es/install/lang_es.c: Updates from Language Database.
+
+2004-09-15 20:08  eoberlander
+
+       * langs/: es/install/lang_es.c, it/install/lang_it.c: Updates from
+         Language Database.
+
+2004-09-15 17:56  gespinasse
+
+       * lfs/net-tools: Cosmetic : remove the sources after compilation
+         again
+
+2004-09-15 13:27  alanh
+
+       * html/cgi-bin/logs.cgi/: firewalllog.dat, ids.dat, log.dat,
+         proxylog.dat, summary.dat: Ugh. Forgot this logs.cgi directory
+         when making the POSIX() change.
+
+2004-09-14 21:42  alanh
+
+       * config/install/rc, src/install+setup/install/usb.c: Move the
+         usb-storage initialization to the initialize_usb function so that
+         passing the 'nousb' flag to the install kernel really means NO
+         USB.
+
+2004-09-14 18:00  alanh
+
+       * lfs/: cnx_pci, fcdsl, shadow, unicorn: Only build utilities in
+         non-SMP pass
+
+2004-09-14 09:39  alanh
+
+       * lfs/: gcc, gcc-2: Update stack smashing patch
+
+2004-09-14 08:31  alanh
+
+       * lfs/brctl[DEAD]: deleted
+
+2004-09-14 08:14  alanh
+
+       * lfs/: 3cp4218, amedyn, cxacru: Build brctl from amedyn driver as
+         lfs/brctl host is down and they are the same version anyway.
+
+         Build the amedyn, cxacru and 3cp4128 tools only in the non-SMP
+         pass to save a little time.
+
+2004-09-13 17:26  alanh
+
+       * html/cgi-bin/netstatus.cgi: Speed up header.pl times by 25%.
+
+2004-09-13 17:00  alanh
+
+       * src/install+setup/install/grubbatch: Don't probe a floppy drive
+         when installing grub - should speed up the install.
+
+2004-09-13 15:00  alanh
+
+       * html/cgi-bin/credits.cgi: Add Franck Bourdonnec to credits page
+
+2004-09-13 13:59  alanh
+
+       * src/scripts/setddns.pl: Add a new dyndns provider OVH (Franck)
+
+2004-09-13 08:58  alanh
+
+       * config/cfgroot/proxy-acl, html/cgi-bin/proxy.cgi: Fix squid acl
+         file problems (SF bug ID #1023131)
+
+         (Patch from Franck)
+
+2004-09-12 13:53  rkerr
+
+       * html/cgi-bin/netstatus.cgi: The net status page uses the same
+         lease display code as the DHCP page - fix the security issue here
+         too (thanks to eric for pointing this out)
+
+2004-09-11 13:22  rkerr
+
+       * src/rc.d/rc.firewall: The most obvious changes from SF bug
+         #1015737 - these are the ones that require 0 thought and are
+         highly unlikely to break anything.
+
+2004-09-11 04:19  eoberlander
+
+       * lfs/kbd: Reposition patch, to avoid duplication.
+
+2004-09-10 20:56  eoberlander
+
+       * lfs/kbd: Fix for SF Bug 1025699. Copy patched Vietnamese font to
+         main system.
+
+2004-09-09 19:20  gespinasse
+
+       * src/patches/eagle-usb-1.9.9-pppoa-mac.patch: eagle-usb - fix
+         cosmetic mac address display by pppoa
+
+         isdn - support 'debug' option - should fix problem with
+         dial-on-demand and rc.connectioncheck - fix chap with 'dual
+         channel' (same 'name' line is missing in v1.3)
+
+         rc.red doupdatesettings - remove inconditionnaly pppoatm and
+         pppoe modules as it may be supported by  user-mode client  this
+         fix a warning with atm module busy a few lines after
+
+2004-09-06 19:23  eoberlander
+
+       * html/cgi-bin/credits.cgi: Add translators for Lithuanian and
+         Thai.
+
+2004-09-06 19:14  eoberlander
+
+       * langs/lt/cgi-bin/lt.pl: Updates from Language Database.
+
+2004-09-05 06:18  eoberlander
+
+       * langs/: th/cgi-bin/th.pl, list: Add Thai to web admin interface.
+
+2004-09-04 17:54  rkerr
+
+       * lfs/squid: Fix for squid ntlm integer overflow DoS:
+
+         <http://www.squid-cache.org/bugs/show_bug.cgi?id=1045>
+
+2004-09-02 22:00  alanh
+
+       * html/cgi-bin/wireless.cgi: fix typos
+
+2004-09-02 21:59  alanh
+
+       * src/patches/openswan-1.0.6-numif.patch: OpenSWAN patch for number
+         of interfaces increased to 16 didn't work at all.
+
+         This is needed to actually create the interfaces and destroy
+         them.
+
+2004-09-02 21:21  alanh
+
+       * src/rc.d/rc.network: Start PCMCIA regardless.
+
+         It won't do anything for a system that doesn't have PCMCIA anyway
+         as there isn't an /etc/pcmcia.conf file.
+
+         This may resolve your problem Gilles
+
+2004-09-02 07:37  alanh
+
+       * html/cgi-bin/proxy.cgi: move the old acl list out of the way
+         during upgrade and then rename the acl-1.4 back to acl.
+
+         This means that people who are using squid configurations will
+         continue to work with the older acl list, but when they hit
+         'save' the new acls will be used.
+
+2004-09-02 07:32  alanh
+
+       * html/cgi-bin/proxy.cgi, lfs/configroot: The old acl list for the
+         proxy was being overwritten by the backup floppy.
+
+         So copy our new acl as acl-1.4 and ensure the CGI script picks
+         the new one up.
+
+2004-09-01 10:15  alanh
+
+       * doc/ChangeLog: update Changelog
+
+2004-08-31 14:38  alanh
+
+       * lfs/net-tools: fix a dependency build problem
+
+2004-08-31 13:06  riddles
+
+       * tools/mkflash/: mkflash, settings.8139: Another mkflash update
+
+2004-08-31 08:55  alanh
+
+       * lfs/rrdtool: latest stable rrdtool
+
+2004-08-31 07:32  gespinasse
+
+       * lfs/eagle, src/rc.d/rc.eagleusbadsl: Update eagle-usb to 1.9.9
+         This version fix : - PPPoE for german as MRU was sometime not
+         correctly handled - remove need of smaller MRU/MTU=1492 in PPPoA
+         but I still need to modify IPCop settings
+
+         rc.eagleusbadls is fixed to init the modem when the protocol was
+         changed This fix is big and almost all along rc.red.  It remove
+         'exit0' in case of success with PPPoE and dhcp to let every
+         doxxxdial return to where it was called from.  This way,
+         /var/ipcop/ppp/updatesetting can be erased after the specific
+         script was run.
+
+2004-08-30 15:53  alanh
+
+       * lfs/eagle: fix build problem on Alpha
+
+2004-08-30 14:54  eoberlander
+
+       * langs/hu/install/lang_hu.c: Updates to Hungarian from Language
+         Database.
+
+2004-08-30 08:28  alanh
+
+       * src/install+setup/install/upgrade-v12-v13.c: fix some file close
+         handling
+
+2004-08-30 06:09  riddles
+
+       * tools/mkflash/mkflash: Link ram0 to ramdisk
+
+2004-08-29 21:39  gespinasse
+
+       * src/install+setup/libsmooth/netstuff.c: Count dummy like eth or
+         it can't be used because setup want one more card.
+
+2004-08-29 16:02  gespinasse
+
+       * lfs/net-tools, lfs/netdiag[DEAD],
+         src/patches/mii-diag.multi-line-string.patch[DEAD]: From now,
+         remove mii-diag and compile mii-tool from net-tools package Fix
+         net-tools compilation as using sed on config.h has no effect Only
+         preselected options we don't use are changed by sed (and mii-tool
+         added)
+
+2004-08-29 06:09  eoberlander
+
+       * langs/pt/install/lang_pt.c: Additional Portugueuse phrases from
+         Language Database.
+
+2004-08-28 13:08  eoberlander
+
+       * langs/hu/install/lang_hu.c: Corrections to Hungarian from
+         Language Database.
+
+2004-08-28 10:03  gespinasse
+
+       * src/rc.d/rc.eagleusbadsl: Fix eagle-usb cleanup (need ifconfig
+         eth3 down before) When using setup and the module was still
+         loaded, this may solve some shift in name driver display as count
+         of real eth card was majored by 1
+
+2004-08-27 11:24  riddles
+
+       * tools/mkflash/mkflash: EOF
+
+2004-08-27 11:23  riddles
+
+       * tools/mkflash/mkflash: mkflash fixes from Dale
+
+2004-08-27 09:59  alanh
+
+       * config/grub/: grub.conf, scsigrub.conf: use savedefault
+
+2004-08-27 07:02  gespinasse
+
+       * doc/ChangeLog, src/patches/amedyn-2004-06-22.patch[DEAD],
+         tools/gen_ChangeLog.txt: Remove amedyn patch Fix instruction to
+         update doc/ChangeLog Update ChangeLog
+
+2004-08-27 06:41  gespinasse
+
+       * lfs/amedyn, src/rc.d/rc.amedynusbadsl: Replace old driver and
+         patch by updated driver (it should not change the result) Comment
+         the exit(s) on script until I know exactly what fail in complete
+         script
+
+2004-08-26 21:49  gespinasse
+
+       * html/cgi-bin/logs.cgi/log.dat, src/ppp/ip-down,
+         src/rc.d/rc.3cp4218usbadsl, src/rc.d/rc.alcatelusb,
+         src/rc.d/rc.alcatelusbk, src/rc.d/rc.amedynusbadsl,
+         src/rc.d/rc.bewanadsl, src/rc.d/rc.conexantpciadsl,
+         src/rc.d/rc.conexantusbadsl, src/rc.d/rc.eagleusbadsl,
+         src/rc.d/rc.eciadsl, src/rc.d/rc.fritzdsl, src/rc.d/rc.isdn,
+         src/rc.d/rc.pulsardsl: Try to make log viewing from the web
+         interface more usable - fusion ppp|isdn|dhcpc into one category
+         'red' - tag rc.specific scripts with 'red' Remove unused ppp
+         variables read in ip-down
+
+2004-08-26 21:05  eoberlander
+
+       * langs/hu/install/lang_hu.c: Updates from Language Database prior
+         to 1.4.0rc2
+
+2004-08-26 08:17  alanh
+
+       * src/scripts/setddns.pl: Add regdish ddns service (SF RFE id
+         #1005328)
+
+2004-08-25 21:08  eoberlander
+
+       * langs/bz/install/lang_bz.c: Updates from Language Database.
+
+2004-08-25 18:24  eoberlander
+
+       * langs/bz/install/lang_bz.c: Updates from Language Database.
+
+2004-08-25 16:31  eoberlander
+
+       * langs/: hu/install/lang_hu.c, bz/cgi-bin/bz.pl,
+         bz/install/lang_bz.c: Updates from Language Database.
+
+2004-08-25 14:39  riddles
+
+       * lfs/openswan, src/misc-progs/ipsecctrl.c,
+         src/patches/openswan-1.0.6-numif.patch: Fix problem with Openswan
+         interfaces
+
+2004-08-25 09:40  riddles
+
+       * langs/nl/install/lang_nl.c: Small translation fixes
+
+2004-08-25 08:05  alanh
+
+       * lfs/hdparm, src/patches/hdparm.patch[DEAD]: No longer need hdparm
+         patch with 5.6
+
+2004-08-25 07:16  eoberlander
+
+       * html/cgi-bin/credits.cgi: Update Ander's details.
+
+2004-08-25 05:32  eoberlander
+
+       * lfs/kbd: Add -f to force copy.
+
+2004-08-25 05:14  eoberlander
+
+       * langs/bz/: cgi-bin/bz.pl, install/lang_bz.c: Update of Brazilian
+         Portuguese phrases from Language Database.
+
+2004-08-24 23:00  gespinasse
+
+       * lfs/eagle, src/patches/eagle-usb-1.9.8-Makefile.patch[DEAD],
+         src/patches/eagle-usb-1.9.8-configure.patch[DEAD],
+         src/rc.d/rc.eagleusbadsl: Simplify eagle-usb compilation and
+         installation It should be easier now to upgrade to a next version
+
+2004-08-24 20:10  eoberlander
+
+       * src/patches/viscii10-8x16-new.psfu, lfs/kbd: Add patch for
+         Vietnamese charset, provided by Le Dinh Long.
+
+2004-08-24 18:16  alanh
+
+       * lfs/hdparm: hdparm got upgraded from 5.5 to 5.6 (and 5.5 is no
+         longer available)
+
+2004-08-24 06:52  gespinasse
+
+       * src/rc.d/rc.pulsardsl: - I just understood lcp-max-configure=50
+         is not a time but a number of attempts separated by
+         lcp-restart=3s - So set MAXCONFIGURE to more than 3*50 and
+         withdraw unnecessary pulsar sleep
+
+2004-08-23 23:35  alanh
+
+       * lfs/openswan: OpenSWAN 1.0.7
+
+2004-08-23 21:57  gespinasse
+
+       * src/rc.d/rc.pulsardsl: - replace insmod with modprobe to avoid a
+         failure next time the script is run - add a sleep 30 to give more
+         time to the modem to synchronize and start a ppp connection
+
+2004-08-23 21:40  alanh
+
+       * config/cfgroot/proxy-acl, html/cgi-bin/proxy.cgi: Change localnet
+         to greennet & bluenet to differentiate between them.
+
+2004-08-23 21:25  alanh
+
+       * html/cgi-bin/ddns.cgi, src/scripts/setddns.pl: Add
+         freedns.afraid.org to DDNS providers (SF RFE id #1011837)
+
+2004-08-23 21:09  alanh
+
+       * src/install+setup/install/config.c: Fix symlinks for raid disks
+
+2004-08-23 09:28  eoberlander
+
+       * langs/: bz/cgi-bin/bz.pl, es/cgi-bin/es.pl, ro/cgi-bin/ro.pl,
+         tr/cgi-bin/tr.pl: Remove redundant phrases from Language
+         Database.
+
+2004-08-23 09:25  eoberlander
+
+       * langs/nl/: cgi-bin/nl.pl, install/lang_nl.c: Additional Dutch
+         phrases from Language Database.
+
+2004-08-23 07:22  eoberlander
+
+       * langs/it/: cgi-bin/it.pl, install/lang_it.c: Additional Italian
+         phrases from Language Database.
+
+2004-08-22 22:01  alanh
+
+       * src/misc-progs/setaliases.c: Fix arping
+
+2004-08-22 19:16  gespinasse
+
+       * src/rc.d/rc.eciadsl: - fix 'Invalid address' message during
+         cleanup when GATEWAY is empty - wait rc.eciadsl end before to
+         declare sync timeout - add cleanup/usb_reset in eciadsl driver
+         like in others
+
+2004-08-21 23:02  gespinasse
+
+       * lfs/eciadsl, src/patches/eciadsl-usermode-0.9-load1.patch: Fix
+         eci-load1 caused warnings '/proc/bus/usb/001/xxx: No such file or
+         directory' by a sleep(2) instead of (1)
+
+2004-08-21 06:37  eoberlander
+
+       * langs/fr/install/lang_fr.c: Corrections to French from Language
+         Database.
+
+2004-08-20 16:37  alanh
+
+       * lfs/perl: whoops, wrong position
+
+2004-08-20 16:36  alanh
+
+       * lfs/perl: make depend for perl
+
+2004-08-18 22:03  alanh
+
+       * lfs/syslinux: upgrade syslinux to 2.11 which fixes the image
+         loading problem in 2.10
+
+2004-08-18 20:20  alanh
+
+       * html/cgi-bin/ddns.cgi: Commit fix from Franck for SF bug id
+         #997631
+
+2004-08-18 19:49  alanh
+
+       * lfs/gnupg: upgrade gnupg to 1.2.5
+
+2004-08-18 12:59  alanh
+
+       * lfs/pulsar: update the pulsar driver
+
+2004-08-17 15:03  alanh
+
+       * config/kernel/kernel.config.i386.smp, lfs/scsi.img,
+         src/install+setup/install/probescsi.sh: We were trying to support
+         the cciss and DAC960 drivers but didn't have support in the
+         installer for them. Fix that.
+
+         Support the ATARAID controllers too.
+
+2004-08-17 07:40  alanh
+
+       * lfs/openssl: Fix the build problem with OpenSSL
+
+2004-08-16 10:34  alanh
+
+       * src/patches/make_devices.patch: Another bug fix for SF bug id
+         #925576
+
+2004-08-16 09:59  alanh
+
+       * src/scripts/makegraphs: Fix the disk graph when multiple devices
+         show up in /proc/stat
+
+2004-08-13 16:15  alanh
+
+       * src/misc-progs/ipsecctrl.c: Fix SF Bug ID #1008771 which didn't
+         stop IPSec when disabling it.
+
+2004-08-13 06:28  gespinasse
+
+       * src/patches/make_devices.patch: Add ttyS4/COM5
+
+2004-08-12 23:40  gespinasse
+
+       * doc/ChangeLog, lfs/cdrom, tools/cvs2cl.pl,
+         tools/gen_ChangeLog.txt: Add an automatic Changelog generator
+         Instructions for use in tools directory doc/Changelog will be
+         copied in /doc directory from the ISO
+
+2004-08-12 22:48  gespinasse
+
+       * config/etc/syslog.conf, html/cgi-bin/logs.cgi/log.dat: - add
+         pppoeci in ppp section - create a new section for dhcp client -
+         mover dhcpc debug messages from /var/log/dhcpcd.log to
+         /var/log/messages
+
+2004-08-12 14:20  alanh
+
+       * src/patches/linux-2.4.27-speedtch.patch[DEAD]: remove
+
+2004-08-12 14:16  alanh
+
+       * lfs/perl, config/kernel/kernel.config.i386.installer,
+         src/patches/pomng.fix, config/kernel/kernel.config.i386.smp: A
+         few updates in this one...
+
+         1. Upgrade the kernel to 2.4.27 and make the approprite changes
+         to    patch-o-matic-ng until they update it.
+
+         2. Upgrade perl to 5.8.5 - bug fixes
+
+         3. Add a new feature which allows the user to switch out to VT3
+         and    fdisk the harddrive for themselves (not yet complete, but
+         nearly).
+
+         4. Remove ext3 support from the installer kernel, and use ext2 to
+         mount    the hard disk and install the system. Gives us back
+         around 40k on    the boot disk.
+
+2004-08-12 14:09  alanh
+
+       * src/install+setup/install/upgrade-v12-v13.c: ensure file
+         descriptors are closed
+
+2004-08-12 14:04  alanh
+
+       * src/patches/busybox-0.60.5-config.patch: Don't need BB_SYNC
+         anymore
+
+2004-08-12 07:40  alanh
+
+       * src/patches/make_devices.patch: Fix chgrp
+
+2004-08-11 08:03  alanh
+
+       * lfs/shadow: alternate back to the other shadow site, as our
+         primary seems down
+
+2004-08-11 07:37  alanh
+
+       * lfs/logrotate: logrotate has moved to 3.7
+
+2004-08-11 04:57  gespinasse
+
+       * lfs/capi4k-utils: Upgrade to capi4k-utils-2004-08-10
+
+2004-08-10 20:27  gespinasse
+
+       * lfs/pptpclient: Upgrade to pptp-1.5.0
+
+2004-08-10 15:21  eoberlander
+
+       * html/cgi-bin/gui.cgi: Another go at fixing bug where some fields
+         are blank if the phrase has not been translated. Force reload of
+         English before loading translated language.
+
+2004-08-10 12:54  alanh
+
+       * html/cgi-bin/ddns.cgi, src/scripts/setddns.pl: Allow
+         dyndns-custom to work without a HOSTNAME (SF bug id #1001411)
+
+2004-08-10 08:06  alanh
+
+       * src/install+setup/install/grubbatch: Fixes for SF bug id #925576
+
+2004-08-10 08:05  alanh
+
+       * src/patches/make_devices.patch: Fixes for SF bug id #925576.
+
+2004-08-09 08:03  eoberlander
+
+       * langs/lt/cgi-bin/lt.pl: Updates from Language Database.
+
+2004-08-08 21:22  eoberlander
+
+       * html/cgi-bin/wireless.cgi: Add Tom Dawes-Gamble's hostname patch,
+         and tweak some of the table formatting.
+
+2004-08-08 18:35  alanh
+
+       * lfs/syslinux: drop back again, argh, to syslinux 2.08
+
+2004-08-08 18:23  alanh
+
+       * src/misc-progs/setaliases.c: fix arguments to arping
+
+2004-08-08 14:45  eoberlander
+
+       * html/cgi-bin/gui.cgi: Make display of hostname in window title
+         selectable from GUI Settings page. Defaults to off.
+
+2004-08-06 07:58  alanh
+
+       * lfs/fcron: drop back to the stable fcron 2.0.1 instead of the
+         development 2.9.4 which fixes pipe_pid_fd problems (because 2.0.1
+         doesn't use it)
+
+2004-08-06 05:35  gespinasse
+
+       * html/cgi-bin/logs.cgi/log.dat: Follow usb and pppoa|pppoa3 in PPP
+         logs
+
+2004-08-04 21:57  eoberlander
+
+       * langs/vi/install/lang_vi.c: Add VI to Installer.
+
+2004-08-04 21:54  eoberlander
+
+       * lfs/kbd, src/install+setup/libsmooth/main.c,
+         src/install+setup/setup/main.c: Add Vietnamese to Installer. More
+         work needs to be done to remap charset...
+
+2004-08-03 21:28  alanh
+
+       * html/cgi-bin/dmzholes.cgi: When disabling a dmz hole, ensure we
+         write the src and dst net's and the remark.
+
+2004-08-02 08:34  alanh
+
+       * lfs/initrd, lfs/syslinux, langs/en/install/lang_en.c,
+         src/install+setup/install/grubbatch: Remove the syslinux mbr.bin,
+         and install GRUB onto the partition and MBR.
+
+         Update the congratulations message to ask the user to run FDISK
+         /MBR if the system still fails to boot correctly.
+
+2004-08-01 20:36  eoberlander
+
+       * langs/hu/install/lang_hu.c: Updates from Language Database.
+
+2004-08-01 09:34  eoberlander
+
+       * src/rc.d/rc.sysinit: Use lat1-16 console charset if language is
+         Brazilian Portuguese.
+
+2004-07-31 23:05  eoberlander
+
+       * langs/pl/install/lang_pl.c: Bugfix for crash inPolish language
+         setup after setting 'root' password. Removed '%s' from log
+         message text string which caused segfault.
+
+2004-07-31 07:12  eoberlander
+
+       * langs/pl/install/lang_pl.c: Add phrase from database.
+
+2004-07-30 16:12  alanh
+
+       * src/scripts/setddns.pl: Decrement $lines when a DDNS service is
+         disabled.
+
+         This allows the service to be updated correctly.
+
+         Should fix SF bug #970704
+
+2004-07-30 10:58  riddles
+
+       * tools/mkflash/mkflash: Loopback/ram already created by
+         make_devices
+
+2004-07-29 20:05  eoberlander
+
+       * langs/pl/install/lang_pl.c: Fix text, using update from Language
+         Database.
+
+2004-07-29 19:34  alanh
+
+       * langs/pl/install/lang_pl.c: Ok, put it back to the way Eric had
+         it...
+
+         There's definately something wrong with the admi... word
+
+2004-07-29 19:33  eoberlander
+
+       * src/rc.d/rc.sysinit: Add Polish.
+
+2004-07-29 19:30  alanh
+
+       * langs/pl/install/lang_pl.c: really fix it
+
+2004-07-29 19:29  alanh
+
+       * langs/pl/install/lang_pl.c: fix that ADMIN text
+
+2004-07-29 19:27  eoberlander
+
+       * langs/pl/install/lang_pl.c: Add Polish to Installer.
+
+2004-07-29 19:23  eoberlander
+
+       * src/install+setup/: libsmooth/main.c, setup/main.c: Add Polish to
+         Installer.
+
+2004-07-29 18:03  eoberlander
+
+       * langs/: bz/cgi-bin/bz.pl, es/cgi-bin/es.pl, it/cgi-bin/it.pl,
+         it/install/lang_it.c, nl/cgi-bin/nl.pl, pt/install/lang_pt.c,
+         ro/cgi-bin/ro.pl, ru/cgi-bin/ru.pl, tr/cgi-bin/tr.pl: Update all
+         files prior to next beta issue.
+
+2004-07-29 04:14  gespinasse
+
+       * lfs/dhcp: Upgrade dhcp (bugfix with subclasses), fix upgrade with
+         PPPoE like with alcatelusb
+
+2004-07-28 21:08  alanh
+
+       * config/kernel/kernel.config.i386.installer: reverse this, it
+         breaks the installer image
+
+2004-07-28 16:46  alanh
+
+       * lfs/syslinux: drop syslinux back to 2.09 to avoid initrd problems
+
+2004-07-28 14:56  alanh
+
+       * config/grub/: grub.conf, scsigrub.conf: Whoops, remove some local
+         changes
+
+2004-07-28 14:55  alanh
+
+       * config/grub/: grub.conf, scsigrub.conf: Add options for enabling
+         ACPI at boot time
+
+2004-07-28 14:30  alanh
+
+       * lfs/: initrd, syslinux: force the copy
+
+2004-07-28 14:29  alanh
+
+       * lfs/: initrd, syslinux: Use SysLinux's mbr.bin to re-create a new
+         Master Boot Record. This should really fix the problems we've
+         been having, but not tested yet, as I'm still rebuilding from
+         scratch - so someone might beat me to it.
+
+2004-07-28 11:32  alanh
+
+       * config/kernel/kernel.config.i386.installer: Disable a few more
+         things on the install kernel and a cosmetic change to the
+         installer
+
+2004-07-28 11:22  alanh
+
+       * src/misc-progs/setaliases.c: arping is in /usr/sbin
+
+2004-07-28 08:39  gespinasse
+
+       * src/ppp/ip-down: Better sound for your ears
+
+2004-07-27 22:35  gespinasse
+
+       * lfs/amedyn, src/patches/amedyn-2004-06-22.patch: Fix old driver
+         with sync and atm buffer size patch
+
+2004-07-27 18:43  gespinasse
+
+       * html/cgi-bin/upload.cgi, src/rc.d/rc.alcatelusb,
+         src/rc.d/rc.alcatelusbk: Concatenate previous boot and firmware
+         at install (thank alan) , suppress 'checked' for speedtouch since
+         no choice is on interface
+
+2004-07-27 18:10  alanh
+
+       * lfs/amedyn: fallback to the previous driver as this new one seems
+         to have disappeared
+
+2004-07-27 17:13  eoberlander
+
+       * langs/it/cgi-bin/it.pl: Updates from Language Database, including
+         bugfix for reset button text.
+
+2004-07-27 15:26  gespinasse
+
+       * html/html/images/line.gif[DEAD]: Remove line.gif
+
+2004-07-27 15:20  gespinasse
+
+       * html/cgi-bin/upload.cgi, lfs/speedtouch,
+         src/install+setup/install/upgrade-v130-v140.c,
+         src/rc.d/rc.alcatelusb, src/rc.d/rc.alcatelusbk: Fix some minor
+         typo and xhtml compliance issues in pppsetup.cgi, remove line.gif
+         and use hr instead, shift eagle-usb.conf writing inside
+         updatesettings, go back to one file firmware upload for
+         speedtouch usb (but code to concatenate bootloader and firmware
+         at install is not written yet, so another firmware upload is
+         necessary at this time), shift usage from PPPoE to PPPoE plugin,
+         from speedtouch user mode to speedtouch kernel mode at install
+
+2004-07-27 12:17  alanh
+
+       * lfs/busybox, src/patches/busybox-0.60.5-config.patch: Do a sync
+         after zero'ing the partition table
+
+2004-07-27 12:13  alanh
+
+       * src/patches/make_devices.patch: Check /dev/ida0 for the Compaq
+         Array support
+
+2004-07-27 10:40  alanh
+
+       * config/kernel/syslinux.cfg: Syslinux 2.10 exposed a problem in
+         our syslinux.cfg for the boot floppy in the default kernel image.
+         We should be using APPEND. This fixes it.
+
+2004-07-27 08:15  eoberlander
+
+       * langs/la/install/lang_la.c: Updates from Language Database.
+
+2004-07-24 23:27  gespinasse
+
+       * lfs/3c5x9setup: Add 3c5x9setup to allow this card to be set under
+         linux
+
+2004-07-24 22:45  gespinasse
+
+       * lfs/shadow: go back to the previous site since the alternative is
+         not available
+
+2004-07-24 22:33  gespinasse
+
+       * lfs/file: only available as a tar.gz now
+
+2004-07-23 19:57  alanh
+
+       * src/install+setup/install/grubbatch: copy stage* files in
+         grubbatch (Bug 996155)
+
+2004-07-23 07:51  eoberlander
+
+       * langs/no/install/lang_no.c: Updates from Language Database.
+
+2004-07-22 10:53  alanh
+
+       * html/cgi-bin/dmzholes.cgi: fix a typo
+
+2004-07-20 14:30  eoberlander
+
+       * html/cgi-bin/ddns.cgi: Added tzo.com
+
+2004-07-19 19:42  alanh
+
+       * src/install+setup/libsmooth/libsmooth.h: fix warning
+
+2004-07-19 17:37  alanh
+
+       * lfs/grub, src/install+setup/install/grubbatch,
+         src/patches/grub-0.94-i2o.patch: Make a change to the way GRUB is
+         installed. We used to install the boot record into the MBR. But
+         now, because of potential problems with the way geometry is
+         obtained from buggy BIOS' it's easier for us to install the boot
+         record into the first partition. This way the BIOS will boot the
+         active one. Fixes SF bug ID Â#967175.
+
+         Also, add i2o support to GRUB - probably won't work with I2O
+         disks yet as we need a modified installer.
+
+2004-07-19 10:06  alanh
+
+       * lfs/: Config, coreutils, file, gcc: gaosu.rave.org seems to have
+         deleted their LFS directory, so switch to one of the alternative
+         mirrors
+
+2004-07-18 20:47  eoberlander
+
+       * html/cgi-bin/gui.cgi: Fix for SF Bug 992612, suggested by
+         Franck78.
+
+2004-07-18 13:20  eoberlander
+
+       * langs/de/install/lang_de.c: Update from Language Database.
+
+2004-07-17 17:04  alanh
+
+       * lfs/syslinux: upgrade syslinux to 2.10
+
+2004-07-17 08:04  eoberlander
+
+       * langs/sv/install/lang_sv.c: Updates from Language Database.
+
+2004-07-16 11:45  alanh
+
+       * lfs/squid: Bug fixes for SQUID
+
+2004-07-16 06:34  eoberlander
+
+       * langs/list: Update Vietnamese.
+
+2004-07-15 19:43  alanh
+
+       * lfs/perl: Fix build problems with new patch-o-matic-ng system
+         which now needs much more of perl, so build it all in that pass.
+
+         Also, fix openswan which modifies the search path when patching
+         the kernel.
+
+2004-07-15 13:42  alanh
+
+       * lfs/speedtouch: drop back to 1.2 for 1.4.0b6
+
+2004-07-15 13:32  alanh
+
+       * src/rc.d/rc.sysinit: [no log message]
+
+2004-07-15 13:24  eoberlander
+
+       * html/cgi-bin/credits.cgi: Correction to Le Dinh Long's name.
+
+2004-07-15 12:33  alanh
+
+       * lfs/iptables, config/kernel/kernel.config.i386.installer,
+         config/kernel/kernel.config.i386.smp,
+         src/patches/patch-o-matic-20031219-connlimit.patch[DEAD]: move
+         upto iptables 1.2.11 and patch-o-matic-ng-20040621
+
+         Also, fix a problem that caused the previous beta to be built
+         with older OpenSWAN releases.
+
+2004-07-15 12:30  alanh
+
+       * lfs/eagle: add new eagle file to ./make.sh check stage
+
+2004-07-15 11:33  gespinasse
+
+       * lfs/eagle, src/rc.d/rc.eagleusbadsl: Update dsp_code from windows
+         driver to support new sagem Fast800 E2L modem, withdraw usr
+         dsp_codes since those modems can use eagle dsp_code, so we can
+         spare some space
+
+2004-07-14 16:13  alanh
+
+       * config/kernel/kernel.config.i386.installer,
+         config/kernel/syslinux.cfg, lfs/boot.img, lfs/cdrom: Build a
+         trimmer version of the linux kernel for the installation routine.
+
+         Currently this is just the same as the standard kernel but
+         without ACPI support.
+
+2004-07-13 13:54  eoberlander
+
+       * langs/: lt/cgi-bin/lt.pl, list: Add Lithuanian to webgui.
+
+2004-07-13 12:13  alanh
+
+       * src/patches/perl.patch: fix patch header
+
+2004-07-13 12:06  alanh
+
+       * src/patches/perl.patch: found the problem.
+
+         The new DESTROY{} function was deleting our file before we'd
+         dealt with it, and was really done for Win32 platforms.
+
+         We'll revert back to the 5.8.2 functionality and let perl clean
+         up temporary files through it's garbage collection routines.
+
+2004-07-13 11:22  alanh
+
+       * lfs/perl, src/patches/perl.patch: This fixes SF bug id 988856 for
+         now.
+
+         It basically reverts the CGI.pm from version 3.04 (in perl 5.8.4)
+         to 3.00 (in perl 5.8.2)
+
+         This fixes the upload problems, but it'd be nice to track this
+         patch a little closer and find out what broke for us and either
+         fix our CGI's or fix perl and send in a patch if we feel it's
+         broken.
+
+2004-07-13 06:42  gespinasse
+
+       * lfs/pulsar: Fix pulsar missing lib (was inside the package)
+
+2004-07-12 21:36  alanh
+
+       * lfs/: Digest, Digest-SHA1, GD, Net-DNS: a few bug fixes for the
+         perl tools
+
+2004-07-11 21:41  alanh
+
+       * config/grub/grub.conf, config/grub/scsigrub.conf,
+         src/rc.d/rc.sysinit, config/kernel/kernel.config.i386.smp,
+         config/kernel/syslinux.cfg: add ACPI support.
+
+         acpi=off is passed to the kernel by default, even for
+         installation.
+
+         Remove 'acpi=off' from GRUB config to turn it on.
+
+2004-07-11 12:20  alanh
+
+       * src/rc.d/rc.netaddress.up: DNSMASQ and IPSEC should be started
+         before rc.red as DNSMASQ would be restarted with invalid
+         commandline flags for the connection and DNS would fail. For
+         IPSec it will restart when/if rc.red is connected.
+
+2004-07-11 11:10  gespinasse
+
+       * lfs/netdiag: Forgotten the most important part, it may look
+         strange but I did not find another way because sources were
+         updated after netdiag-2.4.tar.gz (no more available on scyld ftp)
+         was done
+
+2004-07-10 15:58  gespinasse
+
+       * src/patches/mii-diag.multi-line-string.patch: Add mii-diag to
+         allow ethernet link speed setup on most of pci cards when
+         autonegociation had failed
+
+2004-07-10 09:17  gespinasse
+
+       * src/rc.d/rc.connectioncheck: Fix wrong timeout count seen after
+         adsl sync time
+
+2004-07-10 06:44  gespinasse
+
+       * lfs/pulsar, src/patches/pulsar.patch[DEAD]: Update
+
+2004-07-09 21:27  gespinasse
+
+       * src/: ppp/ip-down, rc.d/rc.connectioncheck: Let the music play in
+         ip-down and wait pppdexit before to restart again
+
+2004-07-09 20:03  alanh
+
+       * lfs/libsafe: just make libsafe and not the exploits directory
+
+2004-07-09 19:08  alanh
+
+       * src/patches/grub-0.93-graphics.patch: missed a grub 0.95 fix
+
+2004-07-09 19:08  alanh
+
+       * lfs/speedtouch: upgrade speedtouch to get new modem_run command
+
+2004-07-09 19:05  alanh
+
+       * lfs/grub, src/patches/grub-0.90-staticcurses.patch[DEAD]: upgrade
+         grub to 0.95
+
+2004-07-08 22:22  gespinasse
+
+       * src/: ppp/ip-down, rc.d/rc.connectioncheck: Don't sleep after
+         starting rc.connectioncheck to avoid 'Can't start RED... on quick
+         machines, so play sounds on rc.connectioncheck
+
+2004-07-08 15:05  eoberlander
+
+       * langs/de/install/lang_de.c: Updates from Language Database.
+
+2004-07-07 14:36  eoberlander
+
+       * html/cgi-bin/credits.cgi: Add Rodik to Russian section.
+
+2004-07-06 10:08  alanh
+
+       * src/patches/libsafe-alpha.diff,
+         src/patches/libsafe-functioncaching.diff, lfs/libsafe: web site
+         seems down for libsafe, so move to debian to grab it.
+
+         Also pull in a couple of patches to libsafe, and now enable it on
+         Alpha builds.
+
+2004-07-05 20:16  eoberlander
+
+       * langs/fr/install/lang_fr.c: Updates from Language Database.
+
+2004-07-05 10:56  alanh
+
+       * lfs/glibc: remove -j 3 on glibc as it seems to intermittently
+         cause troubles
+
+2004-07-04 20:01  alanh
+
+       * lfs/: bison, flex, m4: use EXTRA_LDFLAGS
+
+2004-07-04 19:52  alanh
+
+       * lfs/: bison, flex, m4: build m4,flex and bison with LFS_PASS=1
+         and LFS_PASS=2 for new binutils
+
+2004-07-03 09:43  gespinasse
+
+       * src/rc.d/rc.connectioncheck: Support HOLDOFF,MAXRETRIES and
+         BACKUPPROFILE from pppsetup.cgi
+
+2004-07-03 05:56  gespinasse
+
+       * lfs/amedyn: This version should fix all know amedyn problems
+
+2004-07-01 22:31  alanh
+
+       * lfs/driver.img, src/patches/linux-2.4.26-proc-stat.patch: fixes
+         for the Alpha build to work again
+
+2004-07-01 22:24  alanh
+
+       * lfs/binutils, lfs/bison, lfs/flex, lfs/m4,
+         src/uClibc/make/binutils.mk,
+         src/uClibc/sources/binutils-001-debian.patch: Upgrade binutils to
+         2.15.90.0.3 which fixes two things....
+
+         * as-needed etc works now with later gcc's - noted on Mandrake
+         platforms * fixes later gcc's assembler output on Alpha's
+
+         And update uClibc to use this later package too.
+
+2004-07-01 18:59  riddles
+
+       * html/html/include/domMenu.js: Fix Konqueror and Safari menus
+
+2004-07-01 15:17  alanh
+
+       * src/patches/linux-2.4.26-scsi.patch: Fix libata compile on Alpha
+
+2004-07-01 09:53  alanh
+
+       * config/kernel/kernel.config.alpha: Bring Alpha kernel
+         configuration up-to-date
+
+2004-07-01 05:37  eoberlander
+
+       * langs/vi/cgi-bin/vi.pl: Additions from Language Database.
+
+2004-07-01 05:36  eoberlander
+
+       * html/cgi-bin/credits.cgi: Update Kai's address.
+
+2004-06-30 20:14  alanh
+
+       * src/install+setup/install/main.c: only mount swap if there is one
+
+2004-06-30 14:08  eoberlander
+
+       * langs/fi/: cgi-bin/fi.pl, install/lang_fi.c: Updates from
+         Language Database.
+
+2004-06-29 17:48  alanh
+
+       * lfs/openswan: openswan 1.0.6
+
+2004-06-28 10:38  eoberlander
+
+       * langs/vi/cgi-bin/vi.pl: Additions from Language Database.
+
+2004-06-26 16:46  gespinasse
+
+       * src/rc.d/rc.eciadsl: Minor cleanup
+
+2004-06-26 16:45  gespinasse
+
+       * src/rc.d/rc.connectioncheck: Fix waiting pppd start and wait a
+         maximum of time
+
+2004-06-26 13:24  eoberlander
+
+       * langs/vi/cgi-bin/vi.pl: Fix typo in HTML.
+
+2004-06-26 13:17  eoberlander
+
+       * langs/vi/cgi-bin/vi.pl: Additions from Language Database.
+
+2004-06-25 21:24  alanh
+
+       * lfs/openswan: openswan 1.0.5
+
+2004-06-25 14:56  eoberlander
+
+       * langs/no/install/lang_no.c: Updates from Language Database.
+
+2004-06-25 13:42  alanh
+
+       * lfs/logwatch: logwatch from 5.1 to 5.2.2
+
+2004-06-24 11:23  eoberlander
+
+       * langs/vi/cgi-bin/vi.pl: Additions from Language Database.
+
+2004-06-23 13:59  riddles
+
+       * src/install+setup/install/main.c: Include libata in initrd
+
+2004-06-23 13:38  riddles
+
+       * config/kernel/kernel.config.alpha,
+         config/kernel/kernel.config.i386,
+         config/kernel/kernel.config.i386.smp,
+         src/install+setup/install/probescsi.sh: Libata support
+
+2004-06-22 10:58  eoberlander
+
+       * langs/el/install/lang_el.c: Updates from Language Database.
+
+2004-06-21 19:15  alanh
+
+       * src/rc.d/rc.connectioncheck: Don't need to background it
+
+2004-06-21 18:49  alanh
+
+       * lfs/libpcap, src/patches/libpcap-0.8.3-ppp.patch: Fix
+         inbound/outbound filter processing in libpcap for PPP linktypes
+
+2004-06-21 18:21  gespinasse
+
+       * src/rc.d/rc.connectioncheck: Better behavior with long HOLDOFF
+
+2004-06-21 12:38  eoberlander
+
+       * langs/da/install/lang_da.c: Updates from Language Database.
+
+2004-06-21 08:14  riddles
+
+       * src/patches/make_devices.patch: Fix tty12
+
+2004-06-21 05:00  gespinasse
+
+       * src/: ppp/ip-down, rc.d/rc.connectioncheck: Reconnection without
+         'persist' option
+
+2004-06-20 20:25  eoberlander
+
+       * lfs/sysklogd: Fix bracket typo.
+
+2004-06-20 16:48  eoberlander
+
+       * langs/de/install/lang_de.c: Updates from Language Database.
+
+2004-06-20 14:57  rkerr
+
+       * config/etc/group, config/etc/logrotate.conf, config/etc/passwd,
+         lfs/logrotate, lfs/openssh, lfs/stage2, lfs/sysklogd,
+         src/install+setup/install/upgrade-v130-v140.c,
+         src/patches/sysklogd-1.3-31-rh-ksyslog-nul.diff,
+         src/patches/sysklogd-1.4.1-caen-owl-klogd-drop-root.diff,
+         src/patches/sysklogd-1.4.1-caen-owl-syslogd-bind.diff,
+         src/patches/sysklogd-1.4.1-caen-owl-syslogd-drop-root.diff,
+         src/patches/sysklogd-1.4.1-owl-syslogd-crunch_list.diff: * Swap
+         from using the CAEN based drop root patch in LFS to the improved
+         Owl   version * Add syslogd and klogd users and groups to
+         /etc/passwd and /etc/group * Make the installer add these users
+         if importing old config * Modify rc.sysinit to get klogd and
+         syslogd to drop root and klogd to chroot * Modify logrotate so
+         files get recreated with root.syslogd ownership and 664
+         permissions after rotation * Change permissions on /var/empty to
+         711 and change sshd to use /var/empty   instead of
+         /var/empty/sshd (sharing /var/empty is safe so long as none of
+         the   processes chrooted there can also write there) * Apply the
+         following bug fixes:    - sysklogd-1.3-31-rh-ksyslog-nul.diff
+         Fixes a single byte buffer overflow in klogd    -
+         sysklogd-1.4.1-owl-syslogd-crunch_list.diff         Fixes buffer
+         overflow in handling of -l and -s options in syslogd
+
+2004-06-20 13:39  alanh
+
+       * lfs/uClibc: use URL_GNU
+
+2004-06-20 13:32  alanh
+
+       * lfs/: libpcap, ppp: pcap-int.h is included in ppp-2.4.2 which
+         matches that of libpcap 0.7.x, but the structure changed for
+         libpcap 0.8.3 and it doesn't get installed. So pppd ends up
+         getting the wrong information.
+
+         So, when installing libpcap, we also install pcap-int.h and then
+         when building ppp we remove it's provided version to force it to
+         use the newly installed one.
+
+         This fixes the 'inbound/outbound not supported on linktype 0'
+         error.
+
+2004-06-20 08:12  eoberlander
+
+       * langs/tr/cgi-bin/tr.pl: Additions from Language Database.
+
+2004-06-20 07:01  gespinasse
+
+       * lfs/eagle, src/patches/eagle-usb-1.9.8-Makefile.patch,
+         src/patches/eagle-usb-1.9.8-configure.patch,
+         src/rc.d/rc.eagleusbadsl: Update new version eagle-usb, fix SMP
+         compilation (untested), enhanced script because of no 'persist'
+         use
+
+2004-06-19 19:52  eoberlander
+
+       * langs/cs/install/lang_cs.c: Updates from Language Database.
+
+2004-06-19 19:37  alanh
+
+       * lfs/glibc: add AUTOCONF=no to make install
+
+2004-06-19 19:32  alanh
+
+       * lfs/rp-pppoe: rp-pppoe moved location
+
+2004-06-17 12:54  eoberlander
+
+       * langs/: bz/install/lang_bz.c, cs/install/lang_cs.c,
+         da/install/lang_da.c, de/install/lang_de.c, el/install/lang_el.c,
+         es/install/lang_es.c, fi/install/lang_fi.c, fr/install/lang_fr.c,
+         hu/install/lang_hu.c, it/install/lang_it.c, la/install/lang_la.c,
+         nl/install/lang_nl.c, no/install/lang_no.c, pt/install/lang_pt.c,
+         sv/install/lang_sv.c, tr/install/lang_tr.c: Add new Installer
+         string from Language Database.
+
+2004-06-17 11:09  riddles
+
+       * langs/en/install/lang_en.c, src/install+setup/install/main.c:
+         Display message when building INITRD, fix for bug 971723
+
+2004-06-17 11:02  riddles
+
+       * src/install+setup/install/main.c: Fix typo
+
+2004-06-17 09:35  riddles
+
+       * src/install+setup/install/main.c: Finetune partitioning
+
+2004-06-15 06:32  gespinasse
+
+       * lfs/capi4k-utils: Update new version
+
+2004-06-14 10:38  eoberlander
+
+       * langs/fi/cgi-bin/fi.pl: Additions from Language Database.
+
+2004-06-13 22:03  alanh
+
+       * src/patches/make_devices.patch: fix filename
+
+2004-06-13 21:57  alanh
+
+       * src/patches/make_devices.patch: more mknod's from Bob Grant
+
+2004-06-13 16:25  rkerr
+
+       * src/install+setup/libsmooth/: libsmooth.h, netstuff.c: Attach a
+         filter to the IP and netmask entry options to only accept dots
+         and numbers. This should fix the problem described by darren
+         where a space on the end of the IP caused hard to diagnose
+         problems later on. It would probably be nice to implement the
+         same filter for the DNS and gateway settings but I can't find
+         good enough documentation of newtWinEntries to work out how to do
+         this.
+
+2004-06-13 07:47  eoberlander
+
+       * langs/es/cgi-bin/es.pl: Updates from Language Database.
+
+2004-06-12 13:37  eoberlander
+
+       * html/cgi-bin/hosts.cgi: Change caption in hosts.cgi
+
+2004-06-11 18:32  alanh
+
+       * lfs/uClibc: need gcc-3.3.1 for uClibc for now (may fix to support
+         3.3.3 but not now)
+
+2004-06-11 11:55  alanh
+
+       * lfs/bzip2: add use_mktemp patch to bzip2
+
+2004-06-11 10:19  alanh
+
+       * lfs/python: bug fix update for 2.3.3->2.3.4
+
+2004-06-11 08:20  alanh
+
+       * lfs/man: update so prefetch and check work correctly
+
+2004-06-11 05:29  eoberlander
+
+       * lfs/man: Update location for patches and include increment to
+         filenames.
+
+2004-06-10 22:55  alanh
+
+       * lfs/scsi.img, config/kernel/kernel.config.alpha,
+         config/kernel/kernel.config.i386,
+         config/kernel/kernel.config.i386.smp,
+         src/install+setup/install/probescsi.sh: Support the following new
+         disk controllers
+
+         Compaq 5xxx array controllers Compaq SMART controllers Mylex
+         DAC960 controllers
+
+         (not tested, but should work) (This will fix SF bug id #925576,
+         once the reporter can install 1.4b5)
+
+2004-06-10 21:12  alanh
+
+       * src/rc.d/rc.connectioncheck: We don't need these sleeps, we spin
+         in a while loop waiting for PPP to shutdown anyway.
+
+2004-06-10 20:30  gespinasse
+
+       * lfs/expect: Wrong fix, this one should be better
+
+2004-06-10 20:22  gespinasse
+
+       * lfs/expect: Fix expect typo
+
+2004-06-10 18:33  alanh
+
+       * src/rc.d/rc.netaddress.up: fix problem when AUTOCONNECT is ""
+
+2004-06-10 13:30  alanh
+
+       * lfs/initrd: use new make_devices
+
+2004-06-10 11:11  alanh
+
+       * lfs/zlib: fix typo
+
+2004-06-10 10:25  alanh
+
+       * lfs/mktemp: fix mktemp
+
+2004-06-10 09:46  alanh
+
+       * lfs/gawk: that gawk patch is in patches now
+
+2004-06-10 09:38  alanh
+
+       * lfs/gawk: more tweaks for check/prefetch to gawk
+
+2004-06-10 09:25  alanh
+
+       * lfs/zlib: zlib from 1.1.4 to 1.2.1
+
+2004-06-10 09:25  alanh
+
+       * lfs/util-linux: util-linux from 2.12 to 2.12a
+
+2004-06-10 09:25  alanh
+
+       * lfs/texinfo: texinfo from 4.6 to 4.7
+
+2004-06-10 09:24  alanh
+
+       * lfs/tcl: tcl from 8.4.4 to 8.4.6
+
+2004-06-10 09:24  alanh
+
+       * lfs/sysklogd: fix up sysklogd and apply a new security patch
+         which allows both sysklogd and klogd to drop root privileges and
+         start as a user.
+
+         Robert - Can you look into fixing the rc.sysinit script for this
+         ??
+
+2004-06-10 09:23  alanh
+
+       * lfs/sed: sed from 4.0.7 to 4.0.9
+
+2004-06-10 09:22  alanh
+
+       * lfs/rrdtool: rrdtool from 1.0.46 to 1.0.48
+
+2004-06-10 09:22  alanh
+
+       * lfs/psmisc: psmisc from 21.3 to 21.4
+
+2004-06-10 09:22  alanh
+
+       * lfs/procps: procps from 3.1.15 to 3.2.1
+
+2004-06-10 09:21  alanh
+
+       * lfs/perl: perl from 5.8.2 to 5.8.4
+
+2004-06-10 09:21  alanh
+
+       * lfs/ncurses: ncurses from 5.4 to 5.5
+
+2004-06-10 09:20  alanh
+
+       * lfs/mtools: update location of mtools
+
+2004-06-10 09:20  alanh
+
+       * lfs/man-pages: man-pages from 1.60 to 1.66
+
+2004-06-10 09:19  alanh
+
+       * lfs/makedev, src/patches/make_devices.patch: Switch from MAKEDEV
+         to make_devices.
+
+         This may need some more work, as a lot of the devices are no
+         longer created and we have to manually patch this file and then
+         update the patch in src/patches.
+
+2004-06-10 09:18  alanh
+
+       * lfs/libtool: libtool from 1.5 to 1.5.6
+
+2004-06-10 09:18  alanh
+
+       * lfs/isdn4k-utils, lfs/libpcap, lfs/ppp, lfs/tcpdump,
+         src/patches/libpcap-0.7.2-shared.patch[DEAD],
+         src/patches/libpcap-0.8.3-shared.patch,
+         src/patches/tcpdump-3.7.2-CAN-2003-0989.patch[DEAD],
+         src/patches/tcpdump-3.7.2-CAN-2004-01834.patch[DEAD]: upgrade
+         libpcap from 0.7.2 to 0.8.3 upgrade tcpdump from 3.7.2 to 3.8.3
+         and fix ppp/isdn4k-utils for new headers
+
+2004-06-10 09:16  alanh
+
+       * lfs/less: less from 381 to 382
+
+2004-06-10 09:16  alanh
+
+       * lfs/kbd: kbd from 1.08 to 1.12
+
+2004-06-10 09:16  alanh
+
+       * lfs/hdparm, src/patches/hdparm.patch: hdparm from 5.4 to 5.5
+
+2004-06-10 09:15  alanh
+
+       * lfs/grub, src/patches/grub-0.90-addsyncs.patch[DEAD],
+         src/patches/grub-0.90-install.in.patch[DEAD],
+         src/patches/grub-0.90-installcopyonly.patch[DEAD],
+         src/patches/grub-0.90-staticcurses.patch,
+         src/patches/grub-0.92-automake16.patch[DEAD],
+         src/patches/grub-0.92-hammer.patch[DEAD],
+         src/patches/grub-0.93-buggybios.patch[DEAD],
+         src/patches/grub-0.93-graphics.patch,
+         src/patches/grub-0.93-largedisk.patch[DEAD]: grub from 0.93 to
+         0.94
+
+2004-06-10 09:13  alanh
+
+       * lfs/glibc: glibc from 2.3.2 to 2.3.3
+
+2004-06-10 09:13  alanh
+
+       * lfs/gettext: gettext from 0.12.1 to 0.14.1
+
+2004-06-10 09:12  alanh
+
+       * lfs/gcc-2: fixes to gcc 2.95.3
+
+2004-06-10 09:11  alanh
+
+       * lfs/gcc: gcc from 3.3.1 to 3.3.3
+
+2004-06-10 09:11  alanh
+
+       * lfs/file: file from 4.04 to 4.09
+
+2004-06-10 09:10  alanh
+
+       * lfs/expect: expect from 5.39.0 to 5.41.0
+
+2004-06-10 09:10  alanh
+
+       * lfs/e2fsprogs, src/patches/e2fsprogs-1.34-install.patch[DEAD],
+         src/patches/e2fsprogs-1.35-install.patch: e2fsprogs from 1.34 to
+         1.35
+
+2004-06-10 09:09  alanh
+
+       * lfs/coreutils: coreutils from 5.0 to 5.2.1
+
+2004-06-10 09:09  alanh
+
+       * lfs/automake: automake from 1.7.6 to 1.8.4
+
+2004-06-10 09:09  alanh
+
+       * lfs/autoconf: autoconf from 2.57 to 2.59
+
+2004-06-10 09:08  alanh
+
+       * lfs/: iana-etc, lfs-utils[DEAD], mktemp: lfs-utils no longer
+         exists and now it's mktemp & iana-etc
+
+2004-06-10 09:08  alanh
+
+       * lfs/Config: Switch to LFS 5.1 (which links to 5.1.1)
+
+2004-06-10 09:07  alanh
+
+       * lfs/gawk: fix gawk
+
+2004-06-09 23:00  alanh
+
+       * lfs/ipac-ng, config/ipac-ng/ipac.conf, config/ipac-ng/rules.conf,
+         src/rc.d/helper/writeipac.pl: upgrade ipac-ng to 1.28 which has
+         several bug fixes and reduces the memory requirements for
+         fetchipac.
+
+2004-06-09 13:38  alanh
+
+       * src/patches/linux-2.4.26-proc-stat.patch: Fix bug #967044 (no
+         disk graphs for root on /dev/hdc,hdd or SCSI disks)
+
+2004-06-09 13:34  alanh
+
+       * src/rc.d/rc.netaddress.up: Fix Gilles last commit, in which we
+         actually force AUTOCONNECT=on when we detect a DHCP/STATIC RED
+         interface now, so we only need to test for the AUTOCONNECT
+         option.
+
+2004-06-09 09:50  alanh
+
+       * lfs/grub, src/patches/grub-0.93-gateA20.patch[DEAD]: grr, this is
+         actually already handled by the buggybios patch...
+
+2004-06-09 09:42  alanh
+
+       * lfs/grub, src/patches/grub-0.93-gateA20.patch: borrow a fix from
+         grub 0.94 to fix Gate A20
+
+2004-06-09 07:04  gespinasse
+
+       * src/rc.d/rc.netaddress.up: Revert Alan change to allow again use
+         of 'Connect on restart' with PPPoE/PPTP and do it only when
+         necessary
+
+2004-06-08 21:29  alanh
+
+       * lfs/snort: bugfixes for snort (upgrade to 2.1.3)
+
+2004-06-08 21:28  alanh
+
+       * lfs/openswan: bugfixes for openswan (upgrade to 1.0.4)
+
+2004-06-08 19:22  alanh
+
+       * lfs/cdrom: fix dependencies
+
+2004-06-08 18:51  alanh
+
+       * src/install+setup/install/upgrade-v130-v140.c: add 'deny bootp'
+         to resolve DHCP issues.
+
+         We may want to re-enable bootp clients, but we'd need to resolve
+         the netstatus.cgi and dhcp.cgi scripts to parse 'ends never' as
+         the lease time.
+
+2004-06-07 16:46  eoberlander
+
+       * lfs/cdrom: Add Quick Start guide to docs folder.
+
+2004-06-07 16:23  eoberlander
+
+       * lfs/cdrom: Change name of install-en file to version specific to
+         v140.
+
+2004-06-07 15:44  alanh
+
+       * lfs/cdrom: The SF support team removed this file, so re-adding
+         it.
+
+2004-06-05 06:59  eoberlander
+
+       * langs/pt/cgi-bin/pt.pl: Additions from Language Database.
+
+2004-06-04 20:46  eoberlander
+
+       * src/rc.d/rc.firewall.local: Add usage hint.
+
+2004-06-01 00:40  gespinasse
+
+       * html/cgi-bin/netstatus.cgi, src/rc.d/rc.bewanadsl,
+         src/rc.d/rc.sysinit: Fix connection status, display some
+         connection speed and minor fixes
+
+2004-05-31 18:03  rkerr
+
+       * html/cgi-bin/index.cgi, html/cgi-bin/updates.cgi, lfs/gnupg,
+         lfs/stage2, src/misc-progs/installpackage.c: Move patch
+         verification and install logic from CGI to helper program
+
+2004-05-31 17:18  alanh
+
+       * src/patches/linux-2.4.23-ssp.patch[DEAD]: use downloaded ssp
+         patch for linux
+
+2004-05-31 17:13  alanh
+
+       * lfs/glibc: fix download & $(TARGET)
+
+2004-05-31 17:03  alanh
+
+       * lfs/glibc, config/kernel/kernel.config.alpha,
+         config/kernel/kernel.config.i386,
+         config/kernel/kernel.config.i386.smp: add FRANDOM kernel patch
+         for newer stack smashing protection
+
+2004-05-31 15:32  alanh
+
+       * lfs/glibc: update glibc stack smash protection patch
+
+2004-05-31 15:15  alanh
+
+       * lfs/: gcc, gcc-2, glibc, grub, iproute2, isdn4k-utils, perl,
+         pulsar: update more dependencies for make.sh check
+
+2004-05-31 14:55  alanh
+
+       * lfs/apache: update openswan to 1.0.4 to fix some bugs
+
+         update make.sh check support to check more files in
+         lfs/apache,linux
+
+2004-05-31 09:02  alanh
+
+       * lfs/apache: update modssl to 2.8.18
+
+2004-05-31 05:18  gespinasse
+
+       * lfs/linux, src/patches/linux-2.4.27-speedtch.patch: backport
+         speedtch 2.4.27-pre3 patch
+
+2004-05-30 20:44  eoberlander
+
+       * langs/sv/install/lang_sv.c: Update from Language Database...
+
+2004-05-30 15:22  eoberlander
+
+       * langs/sv/install/lang_sv.c: Update from Language Database. I
+         notice that most of the updates change a single backslash to a
+         pair of backslashes, which seems odd to me.
+
+2004-05-26 06:45  gespinasse
+
+       * src/rc.d/: rc.alcatelusb, rc.alcatelusbk, rc.amedynusbadsl,
+         rc.bewanadsl, rc.conexantpciadsl, rc.conexantusbadsl,
+         rc.eagleusbadsl, rc.eciadsl, rc.fritzdsl: Remove umount/mount
+         usbdevfs on usb_reset because it's not effective and necessary,
+         don't kill modem_run on stop and minor clean up
+
+2004-05-24 21:37  gespinasse
+
+       * lfs/unzip: Update due to security issues
+
+2004-05-24 19:55  alanh
+
+       * lfs/ppp, src/patches/ppp-2.4.2-close.patch: fix pppd to really
+         close the plugin's file descriptors before exec'ing a child
+         process. This fixes pppoatm.so and from what I can see the
+         rp-pppoe to really allow re-connections when pppd terminates.
+
+         Basically, some plugin's do not implement the close function as
+         they should and the run_program() call in pppd assumes that they
+         should. We default back to closing the returned devfd descriptor
+         from the plugin.
+
+2004-05-24 16:18  eoberlander
+
+       * langs/la/install/lang_la.c: Update from Language Database.
+
+2004-05-22 18:33  eoberlander
+
+       * langs/da/: cgi-bin/da.pl, install/lang_da.c: Additions from
+         Language Database.
+
+2004-05-18 11:10  alanh
+
+       * lfs/apache: update apache and mod_ssl
+
+2004-05-16 15:19  eoberlander
+
+       * langs/fr/install/lang_fr.c: Update from Language Database.
+
+2004-05-15 22:04  gespinasse
+
+       * html/cgi-bin/graphs.cgi: Fix back link (without ucfirst)
+
+2004-05-15 13:33  gespinasse
+
+       * lfs/eagle: Fix for 3Com 3cp4218
+
+2004-05-14 16:15  eoberlander
+
+       * langs/fr/install/lang_fr.c: Update from Language Database.
+
+2004-05-13 19:51  gespinasse
+
+       * lfs/fcdsl: Create another fcdsl tgz with smp module
+
+2004-05-12 23:33  gespinasse
+
+       * src/misc-progs/restartsquid.c: Fix wrong error message
+
+2004-05-12 14:59  alanh
+
+       * src/install+setup/install/main.c: SMP fix
+
+2004-05-12 14:57  alanh
+
+       * config/kernel/kernel.config.i386.smp: add a comment and the
+         kernel config file for SMP
+
+2004-05-12 14:54  alanh
+
+       * lfs/3cp4218, lfs/Config, lfs/amedyn, lfs/cnx_pci, lfs/cxacru,
+         lfs/driver.img, lfs/eagle, lfs/eciadsl, lfs/fcdsl, lfs/linux,
+         lfs/pcmcia-cs, lfs/pulsar, lfs/scsi.img, lfs/speedtouch,
+         lfs/unicorn, src/install+setup/install/main.c,
+         src/install+setup/setup/networking.c, config/grub/grub.conf,
+         config/grub/scsigrub.conf, src/rc.d/rc.network,
+         src/rc.d/rc.sysinit: add SMP support
+
+2004-05-12 11:08  riddles
+
+       * html/cgi-bin/netstatus.cgi: Only show dhcp hostname if we got one
+
+2004-05-12 10:58  riddles
+
+       * src/rc.d/: rc.updatered, rc.netaddress.up: Force killing of
+         dnsmasq
+
+2004-05-12 10:41  riddles
+
+       * src/misc-progs/: ipsecctrl.c, restartsquid.c: Remove dependency
+         on RED_TYPE
+
+2004-05-12 07:26  eoberlander
+
+       * langs/pt/cgi-bin/pt.pl: Additions from Language Database.
+
+2004-05-10 21:42  gespinasse
+
+       * src/rc.d/rc.updatered: Fix one more insecure dependency / empty
+         with dhcpcd (but still an error with rc.updatered Can't read
+         RED_TYPE when it is not defined)
+
+2004-05-10 09:10  riddles
+
+       * tools/mkflash/mkflash: Fix Grub stage2
+
+2004-05-10 08:49  riddles
+
+       * tools/mkflash/mkflash: Fix mkflash fstab + grub.conf
+
+2004-05-10 08:06  riddles
+
+       * config/etc/sysctl.conf: Remove conntrack_max entry
+
+2004-05-09 19:52  eoberlander
+
+       * langs/da/cgi-bin/da.pl: Additions from Language Database.
+
+2004-05-08 14:53  eoberlander
+
+       * html/cgi-bin/vpnmain.cgi: Make Open or Closed text white, as
+         black is not clear.
+
+2004-05-07 18:29  eoberlander
+
+       * html/cgi-bin/vpnmain.cgi: Change test to 'if file exists' show
+         Key.
+
+2004-05-07 12:29  eoberlander
+
+       * langs/: bz/cgi-bin/bz.pl, es/cgi-bin/es.pl, hu/cgi-bin/hu.pl,
+         nl/cgi-bin/nl.pl, pt/cgi-bin/pt.pl, ro/cgi-bin/ro.pl,
+         ru/cgi-bin/ru.pl, tr/cgi-bin/tr.pl, vi/cgi-bin/vi.pl: Remove
+         colon(:).
+
+2004-05-07 08:35  alanh
+
+       * lfs/pulsar, src/patches/pulsar.patch: Fix broken pulsar drivers
+         usage of spin_lock's
+
+2004-05-07 08:27  riddles
+
+       * src/misc-progs/restartsquid.c: Add fix for static red ethernet
+
+2004-05-06 09:28  riddles
+
+       * src/misc-progs/ipcopbkcfg.c: Accept wildcards in backup
+
+2004-05-06 09:26  riddles
+
+       * src/misc-progs/restartsquid.c: Escape VPN and RED network for
+         transparent proxy
+
+2004-05-06 07:56  eoberlander
+
+       * langs/fi/cgi-bin/fi.pl: Update from Language Database.
+
+2004-05-05 09:13  eoberlander
+
+       * langs/da/: cgi-bin/da.pl, install/lang_da.c: Update from Language
+         Database.
+
+2004-05-04 10:03  alanh
+
+       * config/kernel/kernel.config.i386: reverse a local change
+
+2004-05-03 23:13  alanh
+
+       * config/kernel/kernel.config.i386, lfs/linux, lfs/modutils,
+         src/patches/patch-o-matic-20030912-connlimit.patch[DEAD],
+         src/patches/patch-o-matic-20030912-pptp.patch[DEAD],
+         src/patches/patch-o-matic-20030912-rtsp.patch[DEAD],
+         src/patches/patch-o-matic-20031219-connlimit.patch: update to
+         kernel 2.4.26 & modutils 2.4.27 and adjust patch-o-matic
+         accordingly
+
+2004-05-03 08:55  riddles
+
+       * src/rc.d/rc.updatered: Make sure gw address is not 0.0.0.0
+
+2004-05-03 08:31  riddles
+
+       * make.sh: Unmount ccache upon cleanup and exiterror
+
+2004-05-03 08:19  riddles
+
+       * src/rc.d/rc.sysinit: Remove all lock files upon reboot
+
+2004-04-29 19:36  eoberlander
+
+       * src/scripts/makegraphs: Fix for SF Bug 943912.
+
+2004-04-29 10:16  eoberlander
+
+       * langs/sv/: cgi-bin/sv.pl, install/lang_sv.c: Update from Language
+         Database.
+
+2004-04-28 17:43  eoberlander
+
+       * html/cgi-bin/dhcp.cgi: Swap code around. Fix for error messages
+         that appear when editing fixed leases.
+
+2004-04-28 10:48  riddles
+
+       * lfs/linux, lfs/openswan, src/ROOTFILES.alpha: Update Openswan to
+         1.0.3
+
+2004-04-26 12:30  riddles
+
+       * src/rc.d/rc.netaddress.up: Start ipsec if it wasn't started by
+         red
+
+2004-04-25 16:50  gespinasse
+
+       * lfs/boot.img, src/install+setup/install/main.c: Only when enough
+         space on disk available, allow 25% of total with upper limit to
+         8GBytes, cosmetic : display HTTP/FTP for network install
+
+2004-04-25 06:57  gespinasse
+
+       * config/cfgroot/backup-include: Remove syslog.conf from backup for
+         everybody. This file fail to follow update at install. You can
+         put it on user.include on your own
+
+2004-04-24 22:06  gespinasse
+
+       * html/cgi-bin/: shaping.cgi, xtaccess.cgi: Stay on edit mode if an
+         error occur
+
+2004-04-24 21:45  gespinasse
+
+       * html/cgi-bin/hosts.cgi: Stay on edit mode if an error occur
+
+2004-04-24 14:47  eoberlander
+
+       * html/cgi-bin/dhcp.cgi: Partial fix for bug that prevented DHCP
+         settings being saved.  More work needed to track down spurious
+         error messages that appear when editing fixed leases.
+
+2004-04-24 10:49  rkerr
+
+       * html/cgi-bin/shaping.cgi: Fix for bug 941002 that doesn't break
+         the edit function
+
+2004-04-24 08:12  eoberlander
+
+       * html/cgi-bin/shaping.cgi: Roger's fix for Bug 941002.
+
+2004-04-23 23:11  gespinasse
+
+       * src/rc.d/rc.bewanadsl: Warn for unsupported model
+
+2004-04-23 16:31  eoberlander
+
+       * langs/sv/: cgi-bin/sv.pl, install/lang_sv.c: Update from Language
+         database.
+
+2004-04-23 09:22  riddles
+
+       * make.sh, lfs/arping, lfs/iproute2, lfs/libnet,
+         src/ROOTFILES.alpha, src/misc-progs/setaliases.c: Add arping
+
+2004-04-22 20:02  eoberlander
+
+       * langs/it/cgi-bin/it.pl: Update from Language database.
+
+2004-04-21 10:49  riddles
+
+       * html/cgi-bin/: ddns.cgi, dhcp.cgi, dmzholes.cgi, hosts.cgi,
+         portfw.cgi, vpnmain.cgi, xtaccess.cgi: Add alt texts for all
+         legends
+
+2004-04-21 10:36  riddles
+
+       * html/cgi-bin/shaping.cgi: 1kbps is not usable for shaping
+
+2004-04-20 12:50  alanh
+
+       * src/: ROOTFILES.alpha, ROOTFILES.i386: add ccache entries
+
+2004-04-20 12:42  alanh
+
+       * make.sh, lfs/Config, lfs/ccache, src/uClibc/Makefile,
+         src/patches/ccache-2.3.patch: Implement ccache
+
+2004-04-20 12:35  alanh
+
+       * lfs/: 3cp4218, Config, amedyn, cnx_pci, cxacru, eagle, fcdsl,
+         linux, pcmcia-cs, pulsar, unicorn: Consolidate the use of KGCC
+
+2004-04-20 12:34  alanh
+
+       * lfs/newt: missed one for -fomit-frame-pointer
+
+2004-04-20 12:32  alanh
+
+       * lfs/: e2fsprogs, installer, kbd, kudzu, misc-progs, pciutils,
+         slang, sysvinit, util-linux: build even smaller binaries for the
+         install disk by using -fomit-frame-pointer.
+
+2004-04-20 08:18  eoberlander
+
+       * langs/da/cgi-bin/da.pl: Update from Language database.
+
+2004-04-19 16:27  eoberlander
+
+       * langs/cs/cgi-bin/cs.pl: Update from Language database.
+
+2004-04-19 14:19  alanh
+
+       * lfs/net-tools: since we're using sed -i no need to touch files
+
+2004-04-19 13:12  riddles
+
+       * src/scripts/makegraphs: Fix diskgraphs
+
+2004-04-19 13:02  riddles
+
+       * lfs/inetutils, src/patches/inetutils-1.4.2-ping-1.patch,
+         src/scripts/makegraphs: Fix ping timeout
+
+2004-04-18 20:08  rkerr
+
+       * html/cgi-bin/dhcp.cgi: In place editing
+
+2004-04-18 11:22  riddles
+
+       * lfs/pcmcia-cs: SMP fix
+
+2004-04-17 17:23  rkerr
+
+       * lfs/bind: Only build nsupdate and the 3 libraries it requires
+         instead of building the ntire bind suite
+
+2004-04-17 17:10  rkerr
+
+       * html/: html/include/ipcop.css, cgi-bin/aliases.cgi,
+         cgi-bin/ddns.cgi, cgi-bin/dhcp.cgi, cgi-bin/dmzholes.cgi,
+         cgi-bin/hosts.cgi, cgi-bin/portfw.cgi, cgi-bin/shaping.cgi,
+         cgi-bin/wireless.cgi, cgi-bin/xtaccess.cgi: Various XHTML fixes -
+         * removed invalid attributes from <input image> tags  * fixed a
+         couple of uppercase attribute name  * reordered most overlapping
+         form & table elements  * turned off form margin and padding so
+         reordered elements don't mess up    table formating
+
+2004-04-17 16:23  eoberlander
+
+       * html/cgi-bin/logs.cgi/: firewalllog.dat, ids.dat, log.dat,
+         proxylog.dat, summary.dat: Add Tooltips to buttons on log pages
+         for 'Day before' and 'Day after'.
+
+2004-04-17 14:22  eoberlander
+
+       * html/cgi-bin/ddns.cgi: Add title= for tooltips: Fix for Bug No
+         936789.
+
+2004-04-17 13:56  eoberlander
+
+       * html/cgi-bin/shaping.cgi: Add title= for tooltips: Fix for Bug No
+         936789.
+
+2004-04-17 09:17  eoberlander
+
+       * html/cgi-bin/xtaccess.cgi: Add title= for tooltips: Fix for Bug
+         No 936789.
+
+2004-04-17 07:34  eoberlander
+
+       * html/cgi-bin/vpnmain.cgi: Rearrange Legend table onto two lines.
+
+2004-04-16 22:46  alanh
+
+       * make.sh: use UTC time for logging
+
+2004-04-16 17:40  rkerr
+
+       * html/cgi-bin/shaping.cgi: Change to use graphical edit/delete
+         icons and in place editing instead of the old option based
+         approach
+
+2004-04-16 16:19  eoberlander
+
+       * html/cgi-bin/portfw.cgi: Forward Darren's fix into v1.4.0 branch.
+
+2004-04-16 12:54  eoberlander
+
+       * langs/sv/cgi-bin/sv.pl: Update from Language database.
+
+2004-04-16 11:07  riddles
+
+       * html/cgi-bin/vpnmain.cgi: Show legend
+
+2004-04-16 10:56  riddles
+
+       * html/cgi-bin/: ddns.cgi, hosts.cgi: Show legend
+
+2004-04-16 10:51  riddles
+
+       * html/cgi-bin/: dmzholes.cgi, portfw.cgi: Show legend
+
+2004-04-16 09:49  riddles
+
+       * html/cgi-bin/xtaccess.cgi: Show legend
+
+2004-04-16 09:40  riddles
+
+       * html/cgi-bin/: dmzholes.cgi, vpnmain.cgi: Move blue dot to behind
+         the label
+
+2004-04-16 09:35  riddles
+
+       * html/cgi-bin/vpnmain.cgi: Remove back button from posted page
+
+2004-04-16 09:29  riddles
+
+       * html/cgi-bin/logs.cgi/firewalllog.dat: Synchronize logbox
+         headings
+
+2004-04-16 09:25  riddles
+
+       * html/cgi-bin/credits.cgi: Remove BACK
+
+2004-04-16 09:25  riddles
+
+       * html/cgi-bin/: modem.cgi, proxy.cgi: Synchronize these/this field
+         may be blank
+
+2004-04-16 09:01  riddles
+
+       * html/cgi-bin/portfw.cgi: Add blue dot
+
+2004-04-15 20:58  alanh
+
+       * lfs/: apache, perl: fix dependencies
+
+2004-04-15 20:38  alanh
+
+       * lfs/: gcc, gcc-2: fix dependencies
+
+2004-04-15 17:11  alanh
+
+       * lfs/ncurses: remove -j 3 because of build issues
+
+2004-04-15 15:59  alanh
+
+       * lfs/glibc: correct dependencies
+
+2004-04-14 22:05  gespinasse
+
+       * src/install+setup/: install/cdrom.c, install/config.c,
+         install/main.c, install/net.c, install/nic.c,
+         install/upgrade-v130-v140.c, install/usb.c, libsmooth/main.c,
+         libsmooth/netstuff.c, setup/dhcp.c, setup/domainname.c,
+         setup/hostname.c, setup/isdn.c, setup/keymap.c, setup/main.c,
+         setup/misc.c, setup/networking.c, setup/passwords.c,
+         setup/timezone.c: Fix minor compilation warnings (built-in
+         function log... and unused variables
+
+2004-04-11 20:18  eoberlander
+
+       * html/cgi-bin/credits.cgi: Update Marco's details.
+
+2004-04-11 16:33  eoberlander
+
+       * langs/: bz/cgi-bin/bz.pl, cs/cgi-bin/cs.pl, da/cgi-bin/da.pl,
+         es/cgi-bin/es.pl, fi/cgi-bin/fi.pl, hu/cgi-bin/hu.pl,
+         it/cgi-bin/it.pl, nl/cgi-bin/nl.pl, pt/cgi-bin/pt.pl,
+         ro/cgi-bin/ro.pl, ru/cgi-bin/ru.pl, sv/cgi-bin/sv.pl,
+         tr/cgi-bin/tr.pl, vi/cgi-bin/vi.pl, zh/cgi-bin/zh.pl: Update from
+         Language database.
+
+2004-04-10 11:10  riddles
+
+       * lfs/tcpdump, src/patches/tcpdump-3.7.2-CAN-2004-01834.patch:
+         Tcpdump security fix
+
+2004-04-09 17:35  alanh
+
+       * lfs/: coreutils, gmp, ncurses, openssh, openssl, python:
+         parallelize some more of the build process
+
+2004-04-08 05:58  gespinasse
+
+       * src/: ROOTFILES.alpha, ROOTFILES.i386: Fix capi4k-utils update
+
+2004-04-07 21:41  gespinasse
+
+       * lfs/eciadsl, src/ROOTFILES.i386, src/rc.d/rc.eciadsl: Update ECI
+         driver
+
+2004-04-07 14:10  alanh
+
+       * lfs/capi4k-utils,
+         src/patches/capi4k-utils-2004-01-19-pppd242.patch[DEAD]: no
+         longer require capi patch for ppp 2.4.2
+
+2004-04-07 14:06  alanh
+
+       * lfs/capi4k-utils: update capi4k-utils
+
+2004-04-07 12:45  riddles
+
+       * src/misc-progs/ipsecctrl.c: Fix red interface name for alias
+
+2004-04-07 12:40  riddles
+
+       * lfs/snort: Snort fixes
+
+2004-04-07 12:31  riddles
+
+       * src/misc-progs/ipsecctrl.c: Add alias interfaces to valid ipsec
+         interfaces
+
+2004-04-07 11:48  riddles
+
+       * src/misc-progs/ipsecctrl.c: Allow any source port
+
+2004-04-07 08:13  alanh
+
+       * lfs/busybox, src/patches/busybox-0.60.5-wget-unlink.patch: fix
+         for using ftp:// in the installer
+
+2004-04-07 08:11  alanh
+
+       * src/install+setup/install/net.c: fix for using ftp:// on the
+         installer
+
+2004-04-05 07:12  eoberlander
+
+       * langs/it/cgi-bin/it.pl: Language update from database.
+
+2004-04-05 07:04  eoberlander
+
+       * langs/: bz/install/lang_bz.c, cs/install/lang_cs.c,
+         da/install/lang_da.c, de/install/lang_de.c, el/install/lang_el.c,
+         es/install/lang_es.c, fi/install/lang_fi.c, fr/install/lang_fr.c,
+         hu/install/lang_hu.c, it/install/lang_it.c, la/install/lang_la.c,
+         nl/install/lang_nl.c, no/install/lang_no.c, pt/install/lang_pt.c,
+         sv/install/lang_sv.c, tr/install/lang_tr.c: Update all installer
+         files, following change to lang_en.c
+
+2004-04-04 20:29  alanh
+
+       * langs/en/install/lang_en.c: fix for <version>
+
+2004-04-04 17:54  gespinasse
+
+       * lfs/pulsar, src/rc.d/rc.pulsardsl: Fix unresolved symbols for
+         Pulsar, but the last one with printk need library update
+
+2004-04-04 13:02  eoberlander
+
+       * langs/pt/cgi-bin/pt.pl: Additions from Language Database.
+
+2004-04-02 22:33  alanh
+
+       * config/kernel/kernel.config.alpha, src/ROOTFILES.alpha: Build
+         fixes for Alpha
+
+2004-04-02 07:33  eoberlander
+
+       * html/cgi-bin/dhcp.cgi: Add the word Legend in front of the key to
+         actions.
+
+2004-04-01 18:03  eoberlander
+
+       * html/cgi-bin/logs.cgi/proxylog.dat: Fix typo (missing < ) which
+         broke display of drop down list of IP numbers.
+
+2004-04-01 15:36  alanh
+
+       * src/install+setup/setup/networking.c: bump for segmentation fault
+
+2004-03-31 17:39  eoberlander
+
+       * src/scripts/makegraphs: Possible fix for Bug No 925779, Current
+         System CPU graph display error. Remove two s.
+
+2004-03-31 12:15  riddles
+
+       * lfs/linux: Remove openswan dir
+
+2004-03-31 09:38  eoberlander
+
+       * langs/el/cgi-bin/el.pl: Language update from database.
+
+2004-03-30 23:03  gespinasse
+
+       * html/cgi-bin/upload.cgi, src/rc.d/rc.alcatelusb,
+         src/rc.d/rc.alcatelusbk: Fix first start with V1.2 driver and rev
+         4.00 setup/upload
+
+2004-03-29 15:05  riddles
+
+       * make.sh: Bump version
+
+2004-03-29 07:53  riddles
+
+       * config/httpd/httpd.conf: Only allow 10 concurrent connections
+
+2004-03-29 07:50  riddles
+
+       * lfs/initrd: Add isa-pnp module
+
+2004-03-27 16:57  eoberlander
+
+       * html/cgi-bin/upload.cgi: Tweak formatting of tables.
+
+2004-03-27 15:18  eoberlander
+
+       * html/cgi-bin/upload.cgi: Fix typo - missing <.
+
+2004-03-27 11:52  eoberlander
+
+       * html/cgi-bin/upload.cgi: Rename string variable used in
+         upload.cgi to assist translators. New variable has been added to
+         Language Database.
+
+2004-03-27 11:26  eoberlander
+
+       * langs/: bz/cgi-bin/bz.pl, cs/cgi-bin/cs.pl, da/cgi-bin/da.pl,
+         el/cgi-bin/el.pl, es/cgi-bin/es.pl, fi/cgi-bin/fi.pl,
+         hu/cgi-bin/hu.pl, it/cgi-bin/it.pl, nl/cgi-bin/nl.pl,
+         pt/cgi-bin/pt.pl, ro/cgi-bin/ro.pl, ru/cgi-bin/ru.pl,
+         sv/cgi-bin/sv.pl, tr/cgi-bin/tr.pl, vi/cgi-bin/vi.pl,
+         zh/cgi-bin/zh.pl: Two language variables renamed, to support
+         recent changes to pppsetup.cgi.
+
+2004-03-27 08:18  gespinasse
+
+       * src/rc.d/rc.conexantpciadsl: Fix Conexant Tigris, atmard way and
+         silent some ifconfig down
+
+2004-03-26 08:40  eoberlander
+
+       * langs/: cs/cgi-bin/cs.pl, el/cgi-bin/el.pl, fr/cgi-bin/fr.pl,
+         hu/cgi-bin/hu.pl, la/cgi-bin/la.pl, zh/cgi-bin/zh.pl: Language
+         update from database.
+
+2004-03-26 00:25  gespinasse
+
+       * lfs/unicorn: Fix Bewan usb dependency from usb to pci module and
+         usb work now!
+
+2004-03-23 09:58  riddles
+
+       * lfs/openssl: Security update
+
+2004-03-21 20:48  gespinasse
+
+       * html/cgi-bin/pppsetup.cgi, html/cgi-bin/upload.cgi,
+         src/misc-progs/ipcopbackup.c, src/rc.d/rc.alcatelusb,
+         src/rc.d/rc.alcatelusbk: New driver V1.2 debugging and some other
+         clean-up
+
+2004-03-21 16:39  eoberlander
+
+       * langs/: fr/cgi-bin/fr.pl, ru/cgi-bin/ru.pl: Language update from
+         database.
+
+2004-03-21 14:17  eoberlander
+
+       * html/cgi-bin/vpnmain.cgi: String variables have been renamed.
+
+2004-03-21 01:48  gespinasse
+
+       * html/cgi-bin/pppsetup.cgi, html/cgi-bin/upload.cgi,
+         lfs/speedtouch, src/ROOTFILES.alpha, src/ROOTFILES.i386,
+         src/install+setup/install/upgrade-v130-v140.c,
+         src/rc.d/rc.alcatelusb, src/rc.d/rc.alcatelusbk: Driver V1.2 for
+         rev4.00 and better behavior for rev0.00(green stingray)
+
+2004-03-20 23:03  eoberlander
+
+       * langs/: de/cgi-bin/de.pl, fi/cgi-bin/fi.pl, fr/cgi-bin/fr.pl,
+         la/cgi-bin/la.pl, nl/cgi-bin/nl.pl, no/cgi-bin/no.pl,
+         pt/cgi-bin/pt.pl, ru/cgi-bin/ru.pl: Various updates.
+
+2004-03-20 18:38  eoberlander
+
+       * html/cgi-bin/: pppsetup.cgi, proxy.cgi: Add some colons.
+
+2004-03-20 16:31  eoberlander
+
+       * langs/hu/cgi-bin/hu.pl: Language update from database.
+
+2004-03-20 09:49  eoberlander
+
+       * langs/fr/cgi-bin/fr.pl: Language update from database.
+
+2004-03-20 08:17  eoberlander
+
+       * langs/sv/cgi-bin/sv.pl: Language update from database.
+
+2004-03-19 15:26  rkerr
+
+       * html/cgi-bin/ddns.cgi: Change button text to read update rather
+         than edit when in edit mode to be consistent with other pages
+
+2004-03-19 14:12  rkerr
+
+       * src/rc.d/rc.firewall: Rely on the state engine instead of a
+         hardcoded list for ICMP filtering, but deny all NEW state ICMP
+         except ping on green (thereby stopping timestamp requests on
+         green)
+
+2004-03-19 11:46  eoberlander
+
+       * langs/: zh/cgi-bin/zh.pl, de/cgi-bin/de.pl: Language update from
+         database.
+
+2004-03-19 07:34  gespinasse
+
+       * config/etc/modules.conf, lfs/cnx_pci, lfs/configroot,
+         src/ROOTFILES.i386, src/patches/cnx_pci_yukon.patch,
+         src/rc.d/rc.conexantpciadsl, src/rc.d/rc.red,
+         src/rc.d/rc.sysinit: Work for conexant Tigris and Yukon cards and
+         fix for rc.red stop and some modems
+
+2004-03-18 22:19  eoberlander
+
+       * langs/la/cgi-bin/la.pl: Language update from database.
+
+2004-03-18 13:05  eoberlander
+
+       * langs/no/cgi-bin/no.pl: Language update from database.
+
+2004-03-18 11:28  eoberlander
+
+       * langs/: cs/cgi-bin/cs.pl, el/cgi-bin/el.pl: Language update from
+         database.
+
+2004-03-18 07:49  riddles
+
+       * config/etc/syslog.conf: Log pppd debug info to /var/log/messages
+
+2004-03-18 07:46  riddles
+
+       * html/cgi-bin/pppsetup.cgi, langs/en/cgi-bin/en.pl: Debuging
+         should be debugging
+
+2004-03-17 21:47  gespinasse
+
+       * src/rc.d/rc.alcatelusb: Unnecessary to remove usbcore
+
+2004-03-17 21:41  gespinasse
+
+       * html/cgi-bin/pppsetup.cgi, langs/en/cgi-bin/en.pl, lfs/cnx_pci,
+         src/rc.d/rc.red: Support debug selection from web interface
+
+2004-03-17 17:20  riddles
+
+       * config/kernel/kernel.config.alpha,
+         config/kernel/kernel.config.i386, lfs/linux, src/ROOTFILES.alpha,
+         src/ROOTFILES.i386, src/install+setup/libsmooth/netstuff.c: Add
+         NForce2 GPL support
+
+2004-03-17 12:52  riddles
+
+       * make.sh, html/cgi-bin/pppsetup.cgi, html/cgi-bin/upload.cgi,
+         lfs/pulsar, src/ROOTFILES.i386,
+         src/install+setup/install/upgrade-v130-v140.c,
+         src/rc.d/rc.pulsardsl, src/rc.d/rc.red: Use opensource Pulsar
+         driver
+
+2004-03-17 12:50  riddles
+
+       * src/misc-progs/restartshaping.c: Set correct r2q on htb classes
+
+2004-03-17 09:07  riddles
+
+       * src/rc.d/rc.conexantpciadsl: Fixes by Filippo Carletti
+
+2004-03-17 09:02  riddles
+
+       * src/rc.d/rc.sysinit: Remove lockfile on reboot
+
+2004-03-17 08:07  eoberlander
+
+       * langs/zh/cgi-bin/zh.pl: Language update from database.
+
+2004-03-16 21:38  eoberlander
+
+       * langs/cs/cgi-bin/cs.pl: Language update from database.
+
+2004-03-16 19:36  eoberlander
+
+       * langs/no/cgi-bin/no.pl: Language update from database.
+
+2004-03-15 21:56  eoberlander
+
+       * langs/: hu/cgi-bin/hu.pl, no/cgi-bin/no.pl: Language update from
+         database.
+
+2004-03-15 20:16  riddles
+
+       * config/kernel/kernel.config.alpha,
+         config/kernel/kernel.config.i386, lfs/linux,
+         src/patches/patch-o-matic-20030912-rtsp.patch: Add rtsp conntrack
+         support module
+
+2004-03-15 18:03  eoberlander
+
+       * langs/fi/: cgi-bin/fi.pl, install/lang_fi.c: Language update from
+         database.
+
+2004-03-15 17:54  eoberlander
+
+       * langs/la/cgi-bin/la.pl: Language update from database.
+
+2004-03-15 17:49  eoberlander
+
+       * langs/: hu/cgi-bin/hu.pl, hu/install/lang_hu.c, de/cgi-bin/de.pl:
+         Language update from database.
+
+2004-03-15 10:06  alanh
+
+       * src/install+setup/setup/networking.c: fix seg fault when using
+         RED+GREEN+ORANGE+BLUE
+
+2004-03-15 09:50  eoberlander
+
+       * langs/: bz/cgi-bin/bz.pl, cs/cgi-bin/cs.pl, da/cgi-bin/da.pl,
+         de/cgi-bin/de.pl, el/cgi-bin/el.pl, es/cgi-bin/es.pl,
+         fi/cgi-bin/fi.pl, fr/cgi-bin/fr.pl, hu/cgi-bin/hu.pl,
+         it/cgi-bin/it.pl, la/cgi-bin/la.pl, nl/cgi-bin/nl.pl,
+         no/cgi-bin/no.pl, pt/cgi-bin/pt.pl, ro/cgi-bin/ro.pl,
+         ru/cgi-bin/ru.pl, sv/cgi-bin/sv.pl, tr/cgi-bin/tr.pl,
+         vi/cgi-bin/vi.pl, zh/cgi-bin/zh.pl: Language database has been
+         stripped of phrases unused in v140. Update all translations.
+
+2004-03-15 09:45  eoberlander
+
+       * langs/en/cgi-bin/en.pl: Update English from Database.
+
+2004-03-15 09:30  riddles
+
+       * config/kernel/: kernel.config.alpha, kernel.config.i386: Add
+         tarpit support
+
+2004-03-15 09:23  riddles
+
+       * tools/check_strings.pl: Add some more characters
+
+2004-03-14 18:24  eoberlander
+
+       * langs/pl/cgi-bin/pl.pl: Language update from Database.
+
+2004-03-14 10:48  riddles
+
+       * lfs/linux: Add TARPIT
+
+2004-03-14 10:44  riddles
+
+       * src/install+setup/install/upgrade-v130-v140.c: Fix pathnames
+
+2004-03-13 14:32  eoberlander
+
+       * langs/: bz/cgi-bin/bz.pl, cs/cgi-bin/cs.pl, da/cgi-bin/da.pl,
+         de/cgi-bin/de.pl, el/cgi-bin/el.pl, es/cgi-bin/es.pl,
+         fi/cgi-bin/fi.pl, fr/cgi-bin/fr.pl, hu/cgi-bin/hu.pl,
+         it/cgi-bin/it.pl, la/cgi-bin/la.pl, nl/cgi-bin/nl.pl,
+         no/cgi-bin/no.pl, pl/cgi-bin/pl.pl, pt/cgi-bin/pt.pl,
+         ru/cgi-bin/ru.pl, sv/cgi-bin/sv.pl, tr/cgi-bin/tr.pl,
+         zh/cgi-bin/zh.pl: Language update from Database.
+
+2004-03-13 12:53  eoberlander
+
+       * html/cgi-bin/: gui.cgi, logs.cgi/config.dat: Fix error messages,
+         and back out change to logwatch level error check in config.dat.
+
+2004-03-13 07:15  eoberlander
+
+       * html/cgi-bin/wireless.cgi: Rationalise log message strings, to
+         avoid duplication.
+
+2004-03-13 06:38  eoberlander
+
+       * html/cgi-bin/proxy.cgi: Fix  typo for enabled on strings.
+
+2004-03-13 06:12  eoberlander
+
+       * html/cgi-bin/: remote.cgi, logs.cgi/config.dat,
+         logs.cgi/summary.dat: Replace double quotes with single quotes.
+
+2004-03-12 22:13  eoberlander
+
+       * html/cgi-bin/logs.cgi/config.dat: Remove redundant error message,
+         as logwatch level is selected from a drop down menu.
+
+2004-03-12 21:53  eoberlander
+
+       * html/cgi-bin/aliases.cgi: Change translation string to avoid
+         duplication, and use record already in Database.
+
+2004-03-12 20:56  eoberlander
+
+       * html/cgi-bin/dhcp.cgi: Change text to lowercase in translation
+         strings.
+
+2004-03-12 20:53  riddles
+
+       * src/install+setup/libsmooth/netstuff.c: Fix intel ethernet
+         drivername
+
+2004-03-12 20:43  riddles
+
+       * html/cgi-bin/pppsetup.cgi: Oops, needs a fix
+
+2004-03-12 19:51  eoberlander
+
+       * html/cgi-bin/updates.cgi: Fix typos in error message strings.
+
+2004-03-12 14:53  riddles
+
+       * config/httpd/httpd.conf, lfs/apache: Disable track/trace requests
+         for apache
+
+2004-03-12 14:41  riddles
+
+       * config/httpd/httpd.conf: Limit Apache versionstring
+
+2004-03-12 14:39  riddles
+
+       * src/rc.d/rc.firewall: Limit icmp types we accept
+
+2004-03-12 14:09  riddles
+
+       * lfs/ntp: Remove query options from ntpd
+
+2004-03-12 14:05  riddles
+
+       * html/cgi-bin/logs.cgi/proxylog.dat: Fix empty ip list
+
+2004-03-12 13:53  riddles
+
+       * lfs/openswan, src/misc-progs/ipsecctrl.c,
+         src/patches/openswan-1.0.1-plutoctl.patch: Fix pluto.ctl
+         permissions
+
+2004-03-12 12:35  riddles
+
+       * make.sh: Bump version
+
+2004-03-12 12:35  riddles
+
+       * html/cgi-bin/pppsetup.cgi: Fix compile errors
+
+2004-03-12 09:12  riddles
+
+       * tools/check_strings.pl: Sort keys
+
+2004-03-12 09:07  riddles
+
+       * tools/check_strings.pl: Add script to check for existence of
+         strings in cgi's etc.
+
+2004-03-12 08:58  eoberlander
+
+       * langs/: de/cgi-bin/de.pl, el/cgi-bin/el.pl, la/cgi-bin/la.pl,
+         pl/cgi-bin/pl.pl, zh/cgi-bin/zh.pl: Language update from
+         Database.
+
+2004-03-11 18:23  riddles
+
+       * langs/en/cgi-bin/en.pl: Remove double string
+
+2004-03-11 18:20  riddles
+
+       * html/cgi-bin/vpnmain.cgi: Remove double string
+
+2004-03-11 13:48  riddles
+
+       * src/rc.d/rc.red: Restart dnsmasq for static ip connections up and
+         down
+
+2004-03-11 12:55  riddles
+
+       * config/kernel/kernel.config.alpha,
+         config/kernel/kernel.config.i386,
+         src/install+setup/install/upgrade-v130-v140.c: Replace eepro100
+         with e100 driver
+
+2004-03-11 12:41  riddles
+
+       * html/cgi-bin/pppsetup.cgi, src/rc.d/rc.red: Add support for
+         serial connection + cleanup pppsetup.cgi a bit
+
+2004-03-11 12:22  riddles
+
+       * config/cfgroot/header.pl: Fix connection status display
+
+2004-03-11 11:42  rkerr
+
+       * html/cgi-bin/dhcp.cgi: Don't add a semi-colon if no WINS servers
+         are present
+
+2004-03-11 11:39  riddles
+
+       * src/rc.d/rc.red: Always allow DHCP traffic on iface
+
+2004-03-11 09:00  riddles
+
+       * config/cfgroot/header.pl: Just match any character
+
+2004-03-11 08:43  riddles
+
+       * html/cgi-bin/portfw.cgi: Errormessage shouldn't be local
+
+2004-03-11 08:36  riddles
+
+       * src/rc.d/rc.red: Cleanup all dhcpc instances
+
+2004-03-11 08:32  riddles
+
+       * src/rc.d/rc.red: Check if iface is set
+
+2004-03-11 08:29  riddles
+
+       * src/rc.d/rc.red: Add pptp sync option
+
+2004-03-11 08:04  eoberlander
+
+       * langs/: la/cgi-bin/la.pl, la/install/lang_la.c, no/cgi-bin/no.pl:
+         Language update from Database.
+
+2004-03-09 20:19  eoberlander
+
+       * langs/de/cgi-bin/de.pl: Language update from Database.
+
+2004-03-09 20:16  rkerr
+
+       * html/cgi-bin/logs.cgi/summary.dat: Strip trailing blanks from log
+         summaries, fixes the page width problem reported by roger murer
+
+2004-03-09 19:19  riddles
+
+       * config/etc/profile: Add dir alias
+
+2004-03-09 19:16  riddles
+
+       * html/cgi-bin/proxy.cgi: Force to use upstream proxy
+
+2004-03-09 18:15  rkerr
+
+       * langs/en/cgi-bin/en.pl, lfs/logwatch: Remove unused filters added
+         by updating to 5.1, and tune free space display not to display
+         root fs twice. Also remove cron filter (it doesn't support fcron)
+
+2004-03-09 17:28  alanh
+
+       * src/misc-progs/setdmzholes.c: fix setdmzholes to really define
+         the interfaces as strcmp returns 0 on success.
+
+2004-03-09 08:01  eoberlander
+
+       * langs/: fr/cgi-bin/fr.pl, pl/cgi-bin/pl.pl, zh/cgi-bin/zh.pl:
+         Language update from Database.
+
+2004-03-08 20:09  eoberlander
+
+       * html/cgi-bin/credits.cgi: Update translators.
+
+2004-03-08 17:58  eoberlander
+
+       * langs/: el/cgi-bin/el.pl, pl/cgi-bin/pl.pl: Language update from
+         Database.
+
+2004-03-08 08:37  riddles
+
+       * html/cgi-bin/dhcp.cgi, langs/en/cgi-bin/en.pl,
+         src/install+setup/install/upgrade-v130-v140.c: Secondary WINS
+         server support
+
+2004-03-08 08:22  riddles
+
+       * src/scripts/setddns.pl: Remove already-up-to-date message
+
+2004-03-08 08:07  riddles
+
+       * src/rc.d/rc.firewall: Further limit loopback traffic
+
+2004-03-08 07:16  riddles
+
+       * src/rc.d/rc.firewall: Move dmzholes
+
+2004-03-08 07:00  riddles
+
+       * src/rc.d/rc.firewall: Orange dmzholes fix
+
+2004-03-07 06:58  eoberlander
+
+       * langs/: de/cgi-bin/de.pl, pl/cgi-bin/pl.pl: Language update from
+         Database.
+
+2004-03-06 17:56  eoberlander
+
+       * langs/: cs/cgi-bin/cs.pl, el/cgi-bin/el.pl, fr/cgi-bin/fr.pl,
+         no/cgi-bin/no.pl, pl/cgi-bin/pl.pl: Language update from
+         Database.
+
+2004-03-06 14:58  eoberlander
+
+       * html/cgi-bin/index.cgi, langs/en/cgi-bin/en.pl: Add translation
+         strings for javascript menu failure.
+
+2004-03-06 10:45  gespinasse
+
+       * config/cfgroot/header.pl: Fix refresh on index.cgi with dhcp
+
+2004-03-06 09:59  gespinasse
+
+       * html/cgi-bin/index.cgi: Fix refresh on index.cgi but only for
+         PPP, next will follow
+
+2004-03-06 08:20  eoberlander
+
+       * langs/pl/cgi-bin/pl.pl: Language update from Database.
+
+2004-03-05 09:30  riddles
+
+       * config/cfgroot/header.pl: Delete aliases menu option unless red
+         ethernet is static
+
+2004-03-05 09:00  riddles
+
+       * src/rc.d/rc.firewall: No need to specifically drop traffic to
+         ipsec+
+
+2004-03-05 08:42  riddles
+
+       * langs/en/cgi-bin/en.pl: Fix logwatch httpd header
+
+2004-03-05 08:41  riddles
+
+       * config/cfgroot/header.pl: Remove proxy logs menu entry
+
+2004-03-05 08:37  riddles
+
+       * src/: ROOTFILES.alpha, ROOTFILES.i386: Remove some of the
+         Net::DNS files
+
+2004-03-05 08:02  eoberlander
+
+       * langs/: bz/install/lang_bz.c, da/cgi-bin/da.pl, de/cgi-bin/de.pl,
+         es/cgi-bin/es.pl, fr/cgi-bin/fr.pl, fr/install/lang_fr.c,
+         la/cgi-bin/la.pl, nl/cgi-bin/nl.pl, no/cgi-bin/no.pl,
+         pl/cgi-bin/pl.pl, ru/cgi-bin/ru.pl, sv/cgi-bin/sv.pl,
+         tr/cgi-bin/tr.pl: Language update from Database.
+
+2004-03-05 07:33  riddles
+
+       * src/scripts/makegraphs: Force graphs to use English texts
+
+2004-03-05 07:14  eoberlander
+
+       * src/: ROOTFILES.alpha, ROOTFILES.i386: Fix for Bug 909998,
+         missing Net::DNS file.
+
+2004-03-05 07:05  eoberlander
+
+       * make.sh: Bump version number.
+
+2004-03-04 14:55  riddles
+
+       * config/cfgroot/header.pl: Fix typo
+
+2004-03-04 12:12  riddles
+
+       * config/httpd/httpd.conf: Start and run less servers
+
+2004-03-04 12:05  riddles
+
+       * config/cfgroot/header.pl: Filter more menu entries
+
+2004-03-04 12:00  riddles
+
+       * config/cfgroot/header.pl: Limit menu item display for blue and
+         orange
+
+2004-03-04 11:45  alanh
+
+       * src/misc-progs/restartwireless.c: Use the LOG_DROP rule instead
+         of DROP, so we can see what's happening on the BLUE dev
+
+2004-03-04 11:04  alanh
+
+       * lfs/grub, src/patches/grub-0.93-rtl8139.patch: another grub patch
+
+2004-03-04 11:03  alanh
+
+       * lfs/snort: allow snort to be built with -j 3
+
+2004-03-04 10:48  riddles
+
+       * src/misc-progs/restartwireless.c: Fix jump to dmzholes
+
+2004-03-04 10:43  riddles
+
+       * config/cfgroot/header.pl, html/cgi-bin/dmzholes.cgi,
+         langs/en/cgi-bin/en.pl, src/misc-progs/restartwireless.c: Fix
+         dmzholes
+
+2004-03-04 10:39  riddles
+
+       * lfs/glibc: Fix patchname
+
+2004-03-04 08:53  riddles
+
+       * make.sh: Update version
+
diff --git a/doc/How-to-make-update b/doc/How-to-make-update
new file mode 100644 (file)
index 0000000..4be2bf3
--- /dev/null
@@ -0,0 +1,51 @@
+Prerequisites
+- have release right on sourceforge to be able to affect uploaded files to a release
+- have 'IPCop development Group' private gpg key (and password) to sign the patch, import the key with gpg --import (private key file name)
+- you can create your own key with whatever name you want and replace (temporarily!) the pub key in 
+  your box (/root/.gnupg/*) for testing your patch
+
+Build
+- ./make.sh changelog and commit : update doc/Changelog (include in the .iso)
+- ./make.sh build
+- ./make.sh dist :
+       build source package by exporting from CVS,
+       create a check-list of modified files in doc/updated-sources.txt
+- manually check all necessary files are include in updates/1.4.x/ROOTFILES.*.1.4.x comparing with /doc/updated-sources.txt
+- sign the patch with gpg --local-user "IPCop Development Group" --sign ipcop-update-1.4.x.tgz (or with another name given to the key)
+- for the announce, files md5 are obtained with md5sum ipcop-*
+
+Sourceforge
+- in case of test files, rename them with rename 1.4.x 1.4.xtest *1.4.x*
+- upload files via ftp to upload.sourceforge.net in incoming directory
+ (may need to have more than 30s inactivity timeout to be able to connect on sourceforge)
+- add a new release
+       for test file, status active under "IPCop test versions" package
+       for official release, status active under "IPCop" package
+       affect uploaded files (web interface Files Release System) on the release
+       add Changelog and text abstract at the release
+- control file size under Files web page once files are affected to the package
+- with ssh, update every patch list on shell.sourceforge.net /home/groups/i/ip/ipcop/htdocs/patches preceding the previous v1.4.x version with :
+       the content of updates/1.4x/information (and add the link to the release on sourceforge at the end of the line)
+- add a new entry corresponding to the next version number in the patch list with only "----START LIST----" inside
+  chmod 664 the file
+- In Tracker, Tracker administration, bugs, add a new group corresponding to the version number
+
+Update CVS :
+- with the tag of the release
+ cvs tag IPCOP_v1_4_(x)_FINAL
+
+- bump VERSION and PREVIOUSTAG in make.sh
+- ./make.sh newupdate
+  will add a new directory in updates corresponding to the new version number with files:
+       information (Id number should be 003 for VERSION=1.4.3)
+       ROOTFILES.alpha-1.4.x
+       ROOTFILES.i386-1.4.x
+       setup
+       .cvsignore (containing patch.tar.gz )
+
+www.ipcop.org
+- update with doc/packages-list.txt
+  http://www.ipcop.org/modules.php?op=modload&name=phpWiki&file=index&pagename=IPCopSoftwares
+
+News
+- send news on user devel announce lists (subscribe to announce before if necessary)
diff --git a/doc/README b/doc/README
new file mode 100644 (file)
index 0000000..b828a43
--- /dev/null
@@ -0,0 +1,22 @@
+General
+-------
+This is the first version of IPCop.  It was originally based on Smoothwall, 
+but the distribution is actually built from source.
+
+License
+-------
+All of the code included in this release has been distributed under the GPL. 
+You should find a copy of the GPL included.  
+
+Building
+------------
+First, do    : chmod 755 make.sh
+Build using  : ./make.sh build
+Cleanup using: ./make.sh clean
+
+The building will also rebuild the Linux kernel.  With the ipsec patches
+applied, I have only managed to build the kernel using kgcc.  gcc 2.9.6 and
+gcc 3.0.1 failed to build the kernel!!!
+
+If you have any questions, remarks or patches, please send me an e-mail.
+Mark Wormgoor <mark@wormgoor.com>
diff --git a/doc/make.sh-usage b/doc/make.sh-usage
new file mode 100644 (file)
index 0000000..576a0b1
--- /dev/null
@@ -0,0 +1,29 @@
+Standard use commands in the order you may need them.
+     prefetch : preload all necessary files in cache before compilation
+        build : compile the distribution
+        clean : erase build and log to recompile everything from scratch
+
+Optional
+ gettoolchain : optionally load from sourceforge a precompilated toolchain
+               package. This solve some compilation issues on old or very
+               recent distributions and save 20% of next full building time.
+               If you want to use it, do it before build step
+
+Maintainer / advanced commands
+    changelog : Update doc/Changelog from CVS messages log
+        check : Test if packages files are still available for download
+               This is faster on http URL with --spider,but still slow on ftp
+               because of real load.
+   checkclean : Erase all check mark on cache directory to be able to check
+               another time
+         dist : Mainly produce a diff from previous version to track wich
+               files have been changed
+    newupdate : Add on CVS structure for new update directory and files
+    rootfiles : Goal is to create update/x/ROOTFILES automatically in the
+               futur. Build md5 of all included files in iso and list of
+               changed or removed files (not yet fully usable at some
+               packages include a compilation timestamp, so md5 change at
+               every compilation)
+    toolchain : Create our own toolchain package to save 20% of build time.
+        shell : Enter a shell inside the chroot, used to tune lfs script
+               and / or during kernel upgrade to rebuild a new .config
diff --git a/doc/packages-list.txt b/doc/packages-list.txt
new file mode 100644 (file)
index 0000000..97f9829
--- /dev/null
@@ -0,0 +1,159 @@
+!!! List of softwares used to build IPFire Version:1.4.11\r
+* 3c5x9setup-1.00\r
+* 3cp4218-2003-10-22\r
+* CnxADSL-TgrATMcln-20041004\r
+* Compress-Zlib-1.35\r
+* Digest-1.08\r
+* Digest-HMAC-1.01\r
+* Digest-SHA1-2.10\r
+* GD-2.12\r
+* HTML-Parser-3.45\r
+* HTML-Tagset-3.04\r
+* LPRng-3.8.28\r
+* Linux-PAM-0.99.3.0\r
+* Net-DNS-0.47\r
+* Net-IPv4Addr-0.10\r
+* Net_SSLeay.pm-1.25\r
+* Python-2.3.4\r
+* URI-1.35\r
+* amedyn-2004-08-04\r
+* apache_1.3.34\r
+* arping-2.05\r
+* as86-0.16.17\r
+* autoconf-2.59\r
+* automake-1.8.4\r
+* bash-2.05b\r
+* bast-0.9.0\r
+* beep-1.2.2\r
+* bind-9.2.5\r
+* binutils-2.15.90.0.3\r
+* bison-1.875\r
+* busybox-0.60.5\r
+* bzip2-1.0.3\r
+* capi4k-utils-2004-10-06\r
+* ccache-2.3\r
+* cdrtools-2.01\r
+* coreutils-5.93\r
+* cxacru-2003-10-05\r
+* dhcp-3.0.2\r
+* dhcpcd-1.3.22-pl4\r
+* diffutils-2.8.1\r
+* dnsmasq-2.22\r
+* dosfstools-2.11\r
+* e2fsprogs-1.35\r
+* eagle-usb-2.3.2\r
+* eciadsl-usermode-0.11\r
+* ed-0.2\r
+* ethtool-3\r
+* expat-1.95.7\r
+* ez-ipupdate-3.0.11b8\r
+* fcdsl-suse8.2-03.11.02\r
+* fcdsl2-suse9.0-03.11.04\r
+* fcdslsl-suse8.2-03.11.02\r
+* fcdslslusb-suse8.2-03.11.04\r
+* fcdslusb-suse8.2-03.11.02\r
+* fcron-2.0.2\r
+* file-4.16\r
+* findutils-4.1.20\r
+* flex-2.5.4a\r
+* gawk-3.1.3\r
+* gcc-3.3.3\r
+* gd-2.0.20\r
+* gdbm-1.8.3\r
+* gettext-0.14.1\r
+* glibc-2.3.3-lfs-5.1\r
+* gmp-4.1.2\r
+* gnupg-1.4.2\r
+* grep-2.5.1\r
+* groff-1.19\r
+* grub-0.95\r
+* gzip-1.3.5\r
+* hdparm-6.3\r
+* httpd-2.2.0\r
+* iana-etc-2.00\r
+* ibod\r
+* inetutils-1.4.2\r
+* ipac-ng-1.31\r
+* ipaddr-1.2\r
+* iproute2-2.4.7-now-ss010824\r
+* iptables-1.3.5\r
+* iptstate-1.4\r
+* iputils-ss020927\r
+* isapnptools-1.26\r
+* isdn4k-utils.v3.2p1\r
+* kbd-1.12\r
+* kudzu-0.99.50\r
+* less-382\r
+* libcap-1.10\r
+* libnet-1.1.2.1\r
+* libpcap-0.8.3\r
+* libpng-1.2.8\r
+* libsafe_2.0-16\r
+* libtool-1.5.6\r
+* libusb-0.1.7\r
+* libwww-perl-5.803\r
+* linux-2.4.31\r
+* linux-atm-2.4.1\r
+* logrotate-3.7\r
+* logwatch-6.1.2\r
+* m4-1.4\r
+* make-3.80\r
+* make_devices-1.2\r
+* man-1.5p\r
+* man-pages-2.17\r
+* mbr-1.1.8\r
+* mingetty-1.06\r
+* misc-progs\r
+* mktemp-1.5\r
+* modutils-2.4.27\r
+* mtools-3.9.9\r
+* nano-1.2.4\r
+* nash\r
+* nasm-0.98.36\r
+* ncurses-5.4\r
+* net-tools-1.60\r
+* newt-utf8_0.50.17\r
+* noip_updater_v1.6\r
+* ntp-4.2.0\r
+* oinkmaster-1.2\r
+* openssh-3.9p1\r
+* openssl-0.9.7i\r
+* openswan-1.0.10\r
+* patch-2.5.4\r
+* pciutils-2.1.11\r
+* pcmcia-cs-3.2.8\r
+* pcre-4.5\r
+* perl-5.8.5\r
+* popt-1.7\r
+* ppp-2.4.2\r
+* pptp-1.6.0\r
+* procinfo-18\r
+* procps-3.2.5\r
+* psmisc-21.4\r
+* pulsar-4.0.19\r
+* rp-pppoe-3.5\r
+* rrdtool-1.0.49\r
+* sed-4.0.9\r
+* setserial-2.17\r
+* shadow-4.0.4.1\r
+* slang-1.4.5-mini\r
+* snort-2.3.3\r
+* speedtouch-1.2\r
+* squid-2.5.STABLE12\r
+* squid-graph-3.1\r
+* stund_0.96_Aug13\r
+* sysklogd-1.4.1\r
+* syslinux-2.11\r
+* sysvinit-2.86\r
+* tar-1.13.25\r
+* tcpdump-3.8.3\r
+* texinfo-4.7\r
+* traceroute-1.4a12\r
+* uClibc-0.9.26\r
+* unzip552\r
+* util-linux-2.12r\r
+* vim-6.3\r
+* vlan.1.9\r
+* wireless_tools.27\r
+* xampp-linux-1.5.1\r
+* zlib-1.2.3\r
diff --git a/doc/updated-sources.txt_old b/doc/updated-sources.txt_old
new file mode 100644 (file)
index 0000000..65042b7
--- /dev/null
@@ -0,0 +1,124 @@
+Dateien IPCOP_v1_4_10_FINAL/config/cfgroot/general-functions.pl und ipfire-1.4.11/config/cfgroot/general-functions.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/config/cfgroot/header-menu.pl und ipfire-1.4.11/config/cfgroot/header-menu.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/config/cfgroot/proxy-acl und ipfire-1.4.11/config/cfgroot/proxy-acl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/config/etc/inittab und ipfire-1.4.11/config/etc/inittab sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/config/kernel/kernel.config.alpha und ipfire-1.4.11/config/kernel/kernel.config.alpha sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/config/kernel/kernel.config.i386 und ipfire-1.4.11/config/kernel/kernel.config.i386 sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/config/kernel/kernel.config.i386.installer und ipfire-1.4.11/config/kernel/kernel.config.i386.installer sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/config/kernel/kernel.config.i386.smp und ipfire-1.4.11/config/kernel/kernel.config.i386.smp sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/config/ssl/openssl.cnf und ipfire-1.4.11/config/ssl/openssl.cnf sind verschieden.
+Nur in ipfire-1.4.11/doc: make.sh-usage.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/aliases.cgi und ipfire-1.4.11/html/cgi-bin/aliases.cgi sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/backup.cgi und ipfire-1.4.11/html/cgi-bin/backup.cgi sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/credits.cgi und ipfire-1.4.11/html/cgi-bin/credits.cgi sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/ddns.cgi und ipfire-1.4.11/html/cgi-bin/ddns.cgi sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/dhcp.cgi und ipfire-1.4.11/html/cgi-bin/dhcp.cgi sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/logs.cgi/log.dat und ipfire-1.4.11/html/cgi-bin/logs.cgi/log.dat sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/pppsetup.cgi und ipfire-1.4.11/html/cgi-bin/pppsetup.cgi sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/proxy.cgi und ipfire-1.4.11/html/cgi-bin/proxy.cgi sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/shutdown.cgi und ipfire-1.4.11/html/cgi-bin/shutdown.cgi sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/updates.cgi und ipfire-1.4.11/html/cgi-bin/updates.cgi sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/vpnmain.cgi und ipfire-1.4.11/html/cgi-bin/vpnmain.cgi sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/bz/install/lang_bz.c und ipfire-1.4.11/langs/bz/install/lang_bz.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/cs/install/lang_cs.c und ipfire-1.4.11/langs/cs/install/lang_cs.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/da/cgi-bin/da.pl und ipfire-1.4.11/langs/da/cgi-bin/da.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/da/install/lang_da.c und ipfire-1.4.11/langs/da/install/lang_da.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/de/cgi-bin/de.pl und ipfire-1.4.11/langs/de/cgi-bin/de.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/de/install/lang_de.c und ipfire-1.4.11/langs/de/install/lang_de.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/el/cgi-bin/el.pl und ipfire-1.4.11/langs/el/cgi-bin/el.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/el/install/lang_el.c und ipfire-1.4.11/langs/el/install/lang_el.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/en/cgi-bin/en.pl und ipfire-1.4.11/langs/en/cgi-bin/en.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/en/install/lang_en.c und ipfire-1.4.11/langs/en/install/lang_en.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/es/cgi-bin/es.pl und ipfire-1.4.11/langs/es/cgi-bin/es.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/es/install/lang_es.c und ipfire-1.4.11/langs/es/install/lang_es.c sind verschieden.
+Nur in ipfire-1.4.11/langs: fa.
+Dateien IPCOP_v1_4_10_FINAL/langs/fi/cgi-bin/fi.pl und ipfire-1.4.11/langs/fi/cgi-bin/fi.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/fi/install/lang_fi.c und ipfire-1.4.11/langs/fi/install/lang_fi.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/fr/cgi-bin/fr.pl und ipfire-1.4.11/langs/fr/cgi-bin/fr.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/fr/install/lang_fr.c und ipfire-1.4.11/langs/fr/install/lang_fr.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/hu/install/lang_hu.c und ipfire-1.4.11/langs/hu/install/lang_hu.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/it/install/lang_it.c und ipfire-1.4.11/langs/it/install/lang_it.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/la/install/lang_la.c und ipfire-1.4.11/langs/la/install/lang_la.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/list und ipfire-1.4.11/langs/list sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/nl/cgi-bin/nl.pl und ipfire-1.4.11/langs/nl/cgi-bin/nl.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/nl/install/lang_nl.c und ipfire-1.4.11/langs/nl/install/lang_nl.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/no/cgi-bin/no.pl und ipfire-1.4.11/langs/no/cgi-bin/no.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/no/install/lang_no.c und ipfire-1.4.11/langs/no/install/lang_no.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/pl/install/lang_pl.c und ipfire-1.4.11/langs/pl/install/lang_pl.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/pt/install/lang_pt.c und ipfire-1.4.11/langs/pt/install/lang_pt.c sind verschieden.
+Nur in ipfire-1.4.11/langs: sk.
+Dateien IPCOP_v1_4_10_FINAL/langs/so/install/lang_so.c und ipfire-1.4.11/langs/so/install/lang_so.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/sv/cgi-bin/sv.pl und ipfire-1.4.11/langs/sv/cgi-bin/sv.pl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/sv/install/lang_sv.c und ipfire-1.4.11/langs/sv/install/lang_sv.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/tr/install/lang_tr.c und ipfire-1.4.11/langs/tr/install/lang_tr.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/langs/vi/install/lang_vi.c und ipfire-1.4.11/langs/vi/install/lang_vi.c sind verschieden.
+Nur in ipfire-1.4.11/lfs: as86.
+Dateien IPCOP_v1_4_10_FINAL/lfs/boot.img und ipfire-1.4.11/lfs/boot.img sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/cdrom und ipfire-1.4.11/lfs/cdrom sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/Config und ipfire-1.4.11/lfs/Config sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/configroot und ipfire-1.4.11/lfs/configroot sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/coreutils und ipfire-1.4.11/lfs/coreutils sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/driver.img und ipfire-1.4.11/lfs/driver.img sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/eciadsl und ipfire-1.4.11/lfs/eciadsl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/gcc und ipfire-1.4.11/lfs/gcc sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/hdparm und ipfire-1.4.11/lfs/hdparm sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/iana-etc und ipfire-1.4.11/lfs/iana-etc sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/initrd und ipfire-1.4.11/lfs/initrd sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/installer und ipfire-1.4.11/lfs/installer sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/ipac-ng und ipfire-1.4.11/lfs/ipac-ng sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/iptables und ipfire-1.4.11/lfs/iptables sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/linux und ipfire-1.4.11/lfs/linux sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/man-pages und ipfire-1.4.11/lfs/man-pages sind verschieden.
+Nur in ipfire-1.4.11/lfs: mbr.
+Nur in ipfire-1.4.11/lfs: ndiswrapper.
+Dateien IPCOP_v1_4_10_FINAL/lfs/openssl und ipfire-1.4.11/lfs/openssl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/openswan und ipfire-1.4.11/lfs/openswan sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/rrdtool und ipfire-1.4.11/lfs/rrdtool sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/scsi.img und ipfire-1.4.11/lfs/scsi.img sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/setup und ipfire-1.4.11/lfs/setup sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/stage2 und ipfire-1.4.11/lfs/stage2 sind verschieden.
+Nur in ipfire-1.4.11/lfs: strip.
+Dateien IPCOP_v1_4_10_FINAL/lfs/tar und ipfire-1.4.11/lfs/tar sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/tcl und ipfire-1.4.11/lfs/tcl sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/util-linux und ipfire-1.4.11/lfs/util-linux sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/vlan und ipfire-1.4.11/lfs/vlan sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/lfs/wireless und ipfire-1.4.11/lfs/wireless sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/make.sh und ipfire-1.4.11/make.sh sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/config.c und ipfire-1.4.11/src/install+setup/install/config.c sind verschieden.
+Nur in ipfire-1.4.11/src/install+setup/install: install2.c.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/install.h und ipfire-1.4.11/src/install+setup/install/install.h sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/main.c und ipfire-1.4.11/src/install+setup/install/main.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/Makefile und ipfire-1.4.11/src/install+setup/install/Makefile sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/nic.c und ipfire-1.4.11/src/install+setup/install/nic.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/pcmcia.c und ipfire-1.4.11/src/install+setup/install/pcmcia.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/scsi.c und ipfire-1.4.11/src/install+setup/install/scsi.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/usb.c und ipfire-1.4.11/src/install+setup/install/usb.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/libsmooth/main.c und ipfire-1.4.11/src/install+setup/libsmooth/main.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/libsmooth/Makefile und ipfire-1.4.11/src/install+setup/libsmooth/Makefile sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/setup/main.c und ipfire-1.4.11/src/install+setup/setup/main.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/install+setup/setup/networking.c und ipfire-1.4.11/src/install+setup/setup/networking.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/ipcopbackup.c und ipfire-1.4.11/src/misc-progs/ipcopbackup.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/ipcopbkcfg.c und ipfire-1.4.11/src/misc-progs/ipcopbkcfg.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/ipcoprscfg.c und ipfire-1.4.11/src/misc-progs/ipcoprscfg.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/Makefile und ipfire-1.4.11/src/misc-progs/Makefile sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/setfilters.c und ipfire-1.4.11/src/misc-progs/setfilters.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/setuid.c und ipfire-1.4.11/src/misc-progs/setuid.c sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/setuid.h und ipfire-1.4.11/src/misc-progs/setuid.h sind verschieden.
+Nur in ipfire-1.4.11/src/patches: ipac-ng-1.31-fetchcounter.patch.
+Nur in ipfire-1.4.11/src/patches: ipac-ng-1.31-iptables-1.3.1.patch.
+Nur in ipfire-1.4.11/src/patches: iptables-1.3.4-old-string.patch.
+Nur in ipfire-1.4.11/src/patches: linux-2.4-seg-4.patch.
+Dateien IPCOP_v1_4_10_FINAL/src/patches/patch-o-matic-ng-20040621_nf-log_2.4.29.patch und ipfire-1.4.11/src/patches/patch-o-matic-ng-20040621_nf-log_2.4.29.patch sind verschieden.
+Nur in IPCOP_v1_4_10_FINAL/src/patches: pomng.fix.
+Nur in ipfire-1.4.11/src/patches: pom-ng_proc-net-conntrack-permissions.patch.
+Dateien IPCOP_v1_4_10_FINAL/etc/rc.d/rc.firewall und ipfire-1.4.11/src/rc.d/rc.firewall sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/etc/rc.d/rc.red und ipfire-1.4.11/src/rc.d/rc.red sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/etc/rc.d/rc.sysinit und ipfire-1.4.11/src/rc.d/rc.sysinit sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/etc/rc.d/rc.updatered und ipfire-1.4.11/src/rc.d/rc.updatered sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/ROOTFILES.alpha und ipfire-1.4.11/src/ROOTFILES.alpha sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/ROOTFILES.i386 und ipfire-1.4.11/src/ROOTFILES.i386 sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/scripts/httpscert und ipfire-1.4.11/src/scripts/httpscert sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/scripts/makegraphs und ipfire-1.4.11/src/scripts/makegraphs sind verschieden.
+Dateien IPCOP_v1_4_10_FINAL/src/scripts/setddns.pl und ipfire-1.4.11/src/scripts/setddns.pl sind verschieden.
+Nur in ipfire-1.4.11/src/scripts: upgrade.
+Nur in ipfire-1.4.11/updates: 1.4.11.
diff --git a/html/CVS/Entries b/html/CVS/Entries
new file mode 100644 (file)
index 0000000..aaa9182
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/html////
diff --git a/html/CVS/Repository b/html/CVS/Repository
new file mode 100644 (file)
index 0000000..f93ea16
--- /dev/null
@@ -0,0 +1 @@
+ipcop/html
diff --git a/html/CVS/Root b/html/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/html/CVS/Tag b/html/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/html/cgi-bin/CVS/Entries b/html/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..8c8933b
--- /dev/null
@@ -0,0 +1,36 @@
+/aliases.cgi/1.5.2.14/Fri Jan 13 20:14:48 2006//TIPCOP_v1_4_0
+/backup.cgi/1.2.2.15/Sun Jan 29 15:31:49 2006//TIPCOP_v1_4_0
+/base.cgi/1.1.2.10/Thu Nov  3 19:20:50 2005//TIPCOP_v1_4_0
+/changepw.cgi/1.4.2.6/Mon Mar  7 21:28:03 2005//TIPCOP_v1_4_0
+/connections.cgi/1.6.2.11/Thu Feb 24 07:44:35 2005//TIPCOP_v1_4_0
+/credits.cgi/1.11.2.30/Sun Jan  8 13:33:36 2006//TIPCOP_v1_4_0
+/ddns.cgi/1.7.2.41/Tue Feb  7 01:29:47 2006//TIPCOP_v1_4_0
+/dhcp.cgi/1.14.2.81/Fri Jan 20 12:05:29 2006//TIPCOP_v1_4_0
+/dial.cgi/1.4.2.3/Tue Feb 22 22:21:55 2005//TIPCOP_v1_4_0
+/dmzholes.cgi/1.9.2.16/Tue Oct 18 17:05:27 2005//TIPCOP_v1_4_0
+/graphs.cgi/1.9.2.6/Tue Feb 22 22:21:55 2005//TIPCOP_v1_4_0
+/gui.cgi/1.2.2.17/Wed Jul  6 09:21:22 2005//TIPCOP_v1_4_0
+/hosts.cgi/1.4.2.20/Sat Nov  5 15:46:25 2005//TIPCOP_v1_4_0
+/ids.cgi/1.8.2.18/Wed Jul 27 21:35:22 2005//TIPCOP_v1_4_0
+/index.cgi/1.15.2.18/Sat Sep 17 13:51:47 2005//TIPCOP_v1_4_0
+/ipinfo.cgi/1.4.2.3/Tue Feb 22 22:21:56 2005//TIPCOP_v1_4_0
+/modem.cgi/1.4.2.7/Tue Feb 22 22:21:56 2005//TIPCOP_v1_4_0
+/netstatus.cgi/1.9.2.20/Sat Nov  5 15:46:25 2005//TIPCOP_v1_4_0
+/networks.cgi/1.2.2.3/Fri Apr 29 23:37:06 2005//TIPCOP_v1_4_0
+/optionsfw.cgi/1.1.2.10/Mon Oct  3 00:34:10 2005//TIPCOP_v1_4_0
+/portfw.cgi/1.5.2.18/Mon May  2 16:19:49 2005//TIPCOP_v1_4_0
+/pppsetup.cgi/1.17.2.49/Thu Dec  1 16:20:35 2005//TIPCOP_v1_4_0
+/proxy.cgi/1.13.2.23/Sun Jan 29 09:29:47 2006//TIPCOP_v1_4_0
+/proxygraphs.cgi/1.2.2.5/Tue Feb 22 22:21:56 2005//TIPCOP_v1_4_0
+/remote.cgi/1.6.2.8/Tue Feb 22 22:21:56 2005//TIPCOP_v1_4_0
+/services.cgi/1.2.2.3/Fri Apr 29 23:37:07 2005//TIPCOP_v1_4_0
+/shaping.cgi/1.3.2.15/Sun Feb 27 13:42:05 2005//TIPCOP_v1_4_0
+/shutdown.cgi/1.5.2.10/Mon Jan  2 16:21:00 2006//TIPCOP_v1_4_0
+/status.cgi/1.6.2.7/Thu Feb 24 07:44:35 2005//TIPCOP_v1_4_0
+/time.cgi/1.4.2.11/Sat May 28 12:16:18 2005//TIPCOP_v1_4_0
+/updates.cgi/1.9.2.22/Thu Dec  1 20:41:53 2005//TIPCOP_v1_4_0
+/upload.cgi/1.2.2.21/Sun Aug 14 23:43:38 2005//TIPCOP_v1_4_0
+/vpnmain.cgi/1.10.2.69/Tue Jan 31 02:07:19 2006//TIPCOP_v1_4_0
+/wireless.cgi/1.4.2.15/Sat Jun 11 12:14:49 2005//TIPCOP_v1_4_0
+/xtaccess.cgi/1.6.2.15/Sat Mar  5 08:44:32 2005//TIPCOP_v1_4_0
+D/logs.cgi////
diff --git a/html/cgi-bin/CVS/Repository b/html/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..d184562
--- /dev/null
@@ -0,0 +1 @@
+ipcop/html/cgi-bin
diff --git a/html/cgi-bin/CVS/Root b/html/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/html/cgi-bin/CVS/Tag b/html/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/html/cgi-bin/aliases.cgi b/html/cgi-bin/aliases.cgi
new file mode 100644 (file)
index 0000000..040eb29
--- /dev/null
@@ -0,0 +1,482 @@
+#!/usr/bin/perl\r
+#\r
+# IPCop CGI's - aliases.cgi\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) Steve Bootes 2002/04/13 - Manage IP Aliases\r
+#\r
+# $Id: aliases.cgi,v 1.5.2.14 2006/01/13 20:14:48 eoberlander Exp $\r
+\r
+\r
+# to fully troubleshot your code, uncomment diagnostics, Carp and cluck lines\r
+#use diagnostics; # need to add the file /usr/lib/perl5/5.8.x/pods/perldiag.pod before to work\r
+# next look at /var/log/httpd/error_log , http://www.perl.com/pub/a/2002/05/07/mod_perl.html may help\r
+use warnings;\r
+use strict;\r
+#use Carp ();\r
+#local $SIG{__WARN__} = \&Carp::cluck;\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';    # replace CONFIG_ROOT with /var/ipcop in case of manual install\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::colouryellow} );\r
+   @dummy = ( ${Header::table1colour} );\r
+   @dummy = ( ${Header::table2colour} );\r
+undef (@dummy);\r
+\r
+# Files used\r
+my $setting = "${General::swroot}/ethernet/settings";\r
+our $datafile = "${General::swroot}/ethernet/aliases";\r
+\r
+\r
+our %settings=();\r
+#Settings1\r
+\r
+#Settings2 for editing the multi-line list\r
+#Must not be saved !\r
+$settings{'IP'} = '';\r
+$settings{'ENABLED'} = 'off';          # Every check box must be set to off\r
+$settings{'NAME'} = '';\r
+my @nosaved=('IP','ENABLED','NAME');   # List here ALL setting2 fields. Mandatory\r
+    \r
+$settings{'ACTION'} = '';              # add/edit/remove\r
+$settings{'KEY1'} = '';                        # point record for ACTION\r
+\r
+#Define each field that can be used to sort columns\r
+my $sortstring='^IP|^NAME';\r
+my $errormessage = '';\r
+my $warnmessage = '';\r
+\r
+&Header::showhttpheaders();\r
+\r
+# Read needed Ipcop netsettings\r
+my %netsettings=();\r
+$netsettings{'SORT_ALIASES'} = 'NAME';         # default sort\r
+&General::readhash($setting, \%netsettings);\r
+\r
+#Get GUI values\r
+&Header::getcgihash(\%settings);\r
+\r
+# Load multiline data\r
+our @current = ();\r
+if (open(FILE, "$datafile")) {\r
+    @current = <FILE>;\r
+    close (FILE);\r
+}\r
+\r
+#\r
+# Check Settings1 first because they are needed before working on @current\r
+#\r
+# Remove if no Setting1 needed\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'save'}) {\r
+    \r
+    #\r
+    #Validate static Settings1 here\r
+    #\r
+    \r
+    unless ($errormessage) {                                   # Everything is ok, save settings\r
+       #map (delete ($settings{$_}) ,(@nosaved,'ACTION','KEY1'));# Must never be saved \r
+       #&General::writehash($setting, \%settings);             # Save good settings\r
+       #$settings{'ACTION'} = $Lang::tr{'save'};               # Recreate  'ACTION'\r
+       #map ($settings{$_}= '',(@nosaved,'KEY1'));             # and reinit var to empty\r
+       \r
+       # Rebuild configuration file if needed\r
+       &BuildConfiguration;\r
+    }\r
+\r
+    ERROR:                                             # Leave the faulty field untouched\r
+} else {\r
+    #&General::readhash($setting, \%settings);         # Get saved settings and reset to good if needed\r
+}\r
+\r
+## Now manipulate the multi-line list with Settings2\r
+# Basic actions are:\r
+#      toggle the check box\r
+#      add/update a new line\r
+#      begin editing a line\r
+#      remove a line\r
+\r
+\r
+# Toggle enable/disable field.  Field is in second position\r
+if ($settings{'ACTION'} eq $Lang::tr{'toggle enable disable'}) {\r
+    #move out new line\r
+    chomp(@current[$settings{'KEY1'}]);\r
+    my @temp = split(/\,/,@current[$settings{'KEY1'}]);\r
+    $temp[1] = $temp[1] eq 'on' ? '' : 'on';           # Toggle the field\r
+    @current[$settings{'KEY1'}] = join (',',@temp)."\n";\r
+    $settings{'KEY1'} = '';                            # End edit mode\r
+    \r
+    &General::log($Lang::tr{'ip alias changed'});\r
+    \r
+    #Save current\r
+    open(FILE, ">$datafile") or die 'Unable to open aliases file.';\r
+    print FILE @current;\r
+    close(FILE);\r
+       \r
+    # Rebuild configuration file\r
+    &BuildConfiguration;\r
+}\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'add'}) {\r
+    # Validate inputs\r
+    if (! &General::validip($settings{'IP'})) {$errormessage = "invalid ip"};\r
+    $settings{'NAME'} = &Header::cleanhtml($settings{'NAME'});\r
+\r
+    # Make sure we haven't duplicated an alias or RED\r
+    my $spacer='';\r
+    if ($settings{'IP'} eq $netsettings{'RED_ADDRESS'}) {\r
+       $errormessage = $Lang::tr{'duplicate ip'} . ' (RED)';\r
+        $spacer=" & ";\r
+    }\r
+    my $idx=0;\r
+    foreach my $line (@current) {\r
+        chomp ($line);\r
+        my @temp = split (/\,/, $line);\r
+        if ( ($settings{'KEY1'} eq '')||(($settings{'KEY1'} ne '') && ($settings{'KEY1'} != $idx))) { # update\r
+           if ($temp[0] eq $settings{'IP'}) {\r
+               $errormessage .= $spacer.$Lang::tr{'duplicate ip'};\r
+               $spacer=" & ";\r
+           }\r
+           if ($temp[2] eq $settings{'NAME'} && $temp[2] ne '') {\r
+               $errormessage .= $spacer.$Lang::tr{'duplicate name'};\r
+               $spacer=" & ";\r
+               }\r
+       }\r
+       $idx++;\r
+    }\r
+    unless ($errormessage) {\r
+       if ($settings{'KEY1'} eq '') { #add or edit ?\r
+           unshift (@current, "$settings{'IP'},$settings{'ENABLED'},$settings{'NAME'}\n");\r
+           &General::log($Lang::tr{'ip alias added'});\r
+       } else {\r
+           @current[$settings{'KEY1'}] = "$settings{'IP'},$settings{'ENABLED'},$settings{'NAME'}\n";\r
+           $settings{'KEY1'} = '';       # End edit mode\r
+           &General::log($Lang::tr{'ip alias changed'});\r
+       }\r
+\r
+       # Write changes to config file.\r
+       &SortDataFile;                          # sort newly added/modified entry\r
+\r
+       &BuildConfiguration;                    # then re-build conf which use new data\r
+       \r
+##\r
+## if entering data line is repetitive, choose here to not erase fields between each addition\r
+##\r
+       map ($settings{$_}='' ,@nosaved);       # Clear fields\r
+    }\r
+}\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'edit'}) {\r
+    #move out new line\r
+    my $line = @current[$settings{'KEY1'}];    # KEY1 is the index in current\r
+    chomp($line);\r
+    my @temp = split(/\,/, $line);\r
+\r
+##\r
+## move data fields to Setting2 for edition\r
+##\r
+    $settings{'IP'}=$temp[0];                  # Prepare the screen for editing\r
+    $settings{'ENABLED'}=$temp[1];\r
+    $settings{'NAME'}=$temp[2];\r
+}\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {\r
+    splice (@current,$settings{'KEY1'},1);             # Delete line \r
+    open(FILE, ">$datafile") or die 'Unable to open aliases file.';\r
+    print FILE @current;\r
+    close(FILE);\r
+    $settings{'KEY1'} = '';                            # End remove mode\r
+    &General::log($Lang::tr{'ip alias removed'});\r
+\r
+    &BuildConfiguration;                               # then re-build conf which use new data\r
+}\r
+\r
+\r
+\r
+##  Check if sorting is asked\r
+# If same column clicked, reverse the sort.\r
+if ($ENV{'QUERY_STRING'} =~ /$sortstring/ ) {\r
+    my $newsort=$ENV{'QUERY_STRING'};\r
+    my $actual=$netsettings{'SORT_ALIASES'};\r
+    #Reverse actual sort ?\r
+    if ($actual =~ $newsort) {\r
+       my $Rev='';\r
+       if ($actual !~ 'Rev') {\r
+           $Rev='Rev';\r
+       }\r
+       $newsort.=$Rev;\r
+    }\r
+    $netsettings{'SORT_ALIASES'}=$newsort;\r
+    &General::writehash($setting, \%netsettings);\r
+    &SortDataFile;\r
+    $settings{'ACTION'} = 'SORT';                      # Recreate  'ACTION'\r
+}\r
+\r
+# Default initial value\r
+if ($settings{'ACTION'} eq '' ) { # First launch from GUI\r
+    $settings{'ENABLED'} ='on';\r
+}\r
+    \r
+&Header::openpage($Lang::tr{'external aliases configuration'}, 1, '');\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+my %checked =();     # Checkbox manipulations\r
+\r
+if ($errormessage) {\r
+    &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+    print "<font class='base'>$errormessage&nbsp;</font>";\r
+    &Header::closebox();\r
+}\r
+unless (( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ ) && ($netsettings{'RED_TYPE'} eq 'STATIC'))\r
+{\r
+    &Header::openbox('100%', 'left', $Lang::tr{'capswarning'});\r
+    print <<END\r
+    <table width='100%'>\r
+    <tr>\r
+    <td width='100%' class='boldbase' align='center'><font color='${Header::colourred}'><b>$Lang::tr{'aliases not active'}</b></font></td>\r
+    </tr>\r
+    </table>\r
+END\r
+;\r
+    &Header::closebox();\r
+}\r
+                                                                       \r
+#\r
+# Second check box is for editing the list\r
+#\r
+$checked{'ENABLED'}{'on'} = ($settings{'ENABLED'} eq '') ? '' :  "checked='checked'";\r
+\r
+my $buttontext = $Lang::tr{'add'};\r
+if ($settings{'KEY1'} ne '') {\r
+    $buttontext = $Lang::tr{'update'};\r
+    &Header::openbox('100%', 'left', $Lang::tr{'edit an existing alias'});\r
+} else {\r
+    &Header::openbox('100%', 'left', $Lang::tr{'add new alias'});\r
+}\r
+\r
+#Edited line number (KEY1) passed until cleared by 'save' or 'remove' or 'new sort order'\r
+print <<END\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='KEY1' value='$settings{'KEY1'}' />\r
+<table width='100%'>\r
+<tr>\r
+<td class='base'><font color='${Header::colourred}'>$Lang::tr{'name'}:&nbsp;<img src='/blob.gif' alt='*' /></font></td>\r
+<td><input type='text' name='NAME' value='$settings{'NAME'}' size='32' /></td>\r
+<td class='base' align='right'><font color='${Header::colourred}'>$Lang::tr{'alias ip'}:&nbsp;</font></td>\r
+<td><input type='text' name='IP' value='$settings{'IP'}' size='16' /></td>\r
+<td class='base' align='right'>$Lang::tr{'enabled'}&nbsp;</td>\r
+<td><input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td>\r
+</tr>\r
+</table>\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td>\r
+    <td width='50%' align='center'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+#\r
+# Third box shows the list, in columns\r
+#\r
+# Columns headers may content a link. In this case it must be named in $sortstring\r
+#\r
+&Header::openbox('100%', 'left', $Lang::tr{'current aliases'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+    <td width='50%' align='center'><a href='$ENV{'SCRIPT_NAME'}?NAME'><b>$Lang::tr{'name'}</b></a></td>\r
+    <td width='40%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'alias ip'}</b></a></td>\r
+    <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+END\r
+;\r
+\r
+#\r
+# Print each line of @current list\r
+#\r
+# each data line is splitted into @temp.\r
+#\r
+\r
+my $key = 0;\r
+foreach my $line (@current) {\r
+    chomp($line);\r
+    my @temp = split(/\,/,$line);\r
+\r
+    #Choose icon for checkbox\r
+    my $gif = '';\r
+    my $gdesc = '';\r
+    if ($temp[1] eq "on") {\r
+       $gif = 'on.gif';\r
+       $gdesc = $Lang::tr{'click to disable'};\r
+    } else {\r
+       $gif = 'off.gif';\r
+       $gdesc = $Lang::tr{'click to enable'}; \r
+    }\r
+\r
+    #Colorize each line\r
+    if ($settings{'KEY1'} eq $key) {\r
+       print "<tr bgcolor='${Header::colouryellow}'>";\r
+    } elsif ($key % 2) {\r
+       print "<tr bgcolor='${Header::table2colour}'>";\r
+    } else {\r
+       print "<tr bgcolor='${Header::table1colour}'>"; \r
+    }\r
+\r
+    print <<END\r
+<td align='center'>$temp[2]</td>\r
+<td align='center'>$temp[0]</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />\r
+<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />\r
+<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+</tr>\r
+END\r
+;\r
+    $key++;\r
+}\r
+print "</table>";\r
+\r
+# If table contains entries, print 'Key to action icons'\r
+if ($key) {\r
+print <<END\r
+<table>\r
+<tr>\r
+    <td class='boldbase'>&nbsp;<b>$Lang::tr{'legend'}:&nbsp;</b></td>\r
+    <td><img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>\r
+    <td class='base'>$Lang::tr{'click to disable'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td>\r
+    <td class='base'>$Lang::tr{'click to enable'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>\r
+    <td class='base'>$Lang::tr{'edit'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>\r
+    <td class='base'>$Lang::tr{'remove'}</td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+}\r
+\r
+&Header::closebox();\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+## Ouf it's the end !\r
+\r
+\r
+\r
+# Sort the "current" array according to choices\r
+sub SortDataFile\r
+{\r
+    our %entries = ();\r
+    \r
+    # Sort pair of record received in $a $b special vars.\r
+    # When IP is specified use numeric sort else alpha.\r
+    # If sortname ends with 'Rev', do reverse sort.\r
+    #\r
+    sub fixedleasesort {\r
+       my $qs='';             # The sort field specified minus 'Rev'\r
+       if (rindex ($netsettings{'SORT_ALIASES'},'Rev') != -1) {\r
+           $qs=substr ($netsettings{'SORT_ALIASES'},0,length($netsettings{'SORT_ALIASES'})-3);\r
+           if ($qs eq 'IP') {\r
+               my @a = split(/\./,$entries{$a}->{$qs});\r
+               my @b = split(/\./,$entries{$b}->{$qs});\r
+               ($b[0]<=>$a[0]) ||\r
+               ($b[1]<=>$a[1]) ||\r
+               ($b[2]<=>$a[2]) ||\r
+               ($b[3]<=>$a[3]);\r
+           } else {\r
+               $entries{$b}->{$qs} cmp $entries{$a}->{$qs};\r
+           }\r
+       } else { #not reverse\r
+           $qs=$netsettings{'SORT_ALIASES'};\r
+           if ($qs eq 'IP') {\r
+               my @a = split(/\./,$entries{$a}->{$qs});\r
+               my @b = split(/\./,$entries{$b}->{$qs});\r
+               ($a[0]<=>$b[0]) ||\r
+               ($a[1]<=>$b[1]) ||\r
+               ($a[2]<=>$b[2]) ||\r
+               ($a[3]<=>$b[3]);\r
+           } else {\r
+               $entries{$a}->{$qs} cmp $entries{$b}->{$qs};\r
+           }\r
+       }\r
+    }\r
+\r
+    #Use an associative array (%entries)\r
+    my $key = 0;\r
+    foreach my $line (@current) {\r
+       chomp( $line); #remove newline because can be on field 5 or 6 (addition of REMARK)\r
+       my @temp = split (',',$line);\r
+       \r
+       # Build a pair 'Field Name',value for each of the data dataline.\r
+       # Each SORTABLE field must have is pair.\r
+       # Other data fields (non sortable) can be grouped in one\r
+       \r
+       # Exemple\r
+       # F1,F2,F3,F4,F5       only F1 F2 for sorting\r
+       # my @record = ('KEY',$key++,\r
+       #               'F1',$temp[0],\r
+       #               'F2',$temp[1],\r
+       #               'DATA',join(',',@temp[2..4])    );  #group remainning values, with separator (,)\r
+       \r
+       # The KEY,key record permits doublons. If removed, then F1 becomes the key without doublon permitted.\r
+       \r
+       \r
+       my @record = ('KEY',$key++,'IP',$temp[0],'ENABLED',$temp[1],'NAME',$temp[2]);\r
+       my $record = {};                                # create a reference to empty hash\r
+       %{$record} = @record;                           # populate that hash with @record\r
+       $entries{$record->{KEY}} = $record;             # add this to a hash of hashes\r
+    }\r
+    \r
+    open(FILE, ">$datafile") or die 'Unable to open aliases file.';\r
+\r
+    # Each field value is printed , with the newline ! Don't forget separator and order of them.\r
+    foreach my $entry (sort fixedleasesort keys %entries) {\r
+       print FILE "$entries{$entry}->{IP},$entries{$entry}->{ENABLED},$entries{$entry}->{NAME}\n";\r
+    }\r
+\r
+    close(FILE);\r
+    # Reload sorted  @current\r
+    open (FILE, "$datafile");\r
+    @current = <FILE>;\r
+    close (FILE);\r
+}\r
+\r
+#                                                  \r
+# Build the configuration file for application aliases\r
+#\r
+sub BuildConfiguration {\r
+    # Restart service associated with this\r
+    system '/usr/local/bin/setaliases';\r
+}\r
diff --git a/html/cgi-bin/backup.cgi b/html/cgi-bin/backup.cgi
new file mode 100644 (file)
index 0000000..dd9b149
--- /dev/null
@@ -0,0 +1,652 @@
+#!/usr/bin/perl\r
+#\r
+# IPCop CGI's - backup.cgi: manage import/export of configuration files\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The IPCop Team\r
+# 2005 Franck Bourdonnec, major rewrite\r
+#\r
+# $Id: backup.cgi,v 1.2.2.15 2006/01/29 15:31:49 eoberlander Exp $\r
+#\r
+#\r
+\r
+\r
+# to fully troubleshot your code, uncomment diagnostics, Carp and cluck lines\r
+# use diagnostics; # need to add the file /usr/lib/perl5/5.8.x/pods/perldiag.pod before to work\r
+# next look at /var/log/httpd/error_log , http://www.perl.com/pub/a/2002/05/07/mod_perl.html may help\r
+#use warnings;\r
+use strict;\r
+#use Carp ();\r
+#local $SIG{__WARN__} = \&Carp::cluck;\r
+use File::Copy;\r
+use Sys::Hostname;\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my $errormessage = '';\r
+my $warnmessage = '';\r
+my $setdir = '/home/httpd/html/backup'; # location where sets are stored and imported\r
+my $datafile = hostname() . '.dat';    # file containing data backup\r
+my $datefile = $datafile . '.time';    # and creation date\r
+\r
+# ask if backup crypting key exists\r
+my $tmpkeyfile = "$setdir/key";                # import the backup key\r
+\r
+# Get GUI values\r
+my %settings = ();\r
+&Header::getcgihash(\%settings, {'wantfile' => 1, 'filevar' => 'FH'});\r
+\r
+##\r
+## Backup key management\r
+##\r
+\r
+#\r
+# Export the key. root pw is required to avoid user 'noboby' uses the helper to read it and creates\r
+# fake backup.\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'backup export key'})  {\r
+\r
+    my $size = 0;\r
+    if ($settings{'PASSWORD1'} ne '' && $settings{'PASSWORD1'} ne $settings{'PASSWORD2'} ){\r
+       $errormessage = $Lang::tr{'passwords do not match'}\r
+    } else {\r
+       my @lines = `/usr/local/bin/ipcopbackup -keycat $settings{'PASSWORD'}`;\r
+       # If previous operation succeded and the key need to be crypted, redo operation with pipe to openssl\r
+       if (@lines && $settings{'PASSWORD1'}) {\r
+           @lines = `/usr/local/bin/ipcopbackup -keycat $settings{'PASSWORD'}|openssl enc -a -e -aes256 -salt -pass pass:$settings{'PASSWORD1'} `;\r
+       }\r
+        if (@lines) {\r
+           use bytes;\r
+           foreach (@lines) {$size += length($_)};\r
+           print "Pragma: no-cache\n";\r
+           print "Cache-control: no-cache\n";\r
+           print "Connection: close\n";\r
+           print "Content-type: application/octet-stream\n";\r
+           print "Content-Disposition: filename=backup.key\n";\r
+           print "Content-Length: $size\n\n";\r
+           print @lines;\r
+           exit (0);\r
+       } else {\r
+           $errormessage = $Lang::tr{'incorrect password'};\r
+       }\r
+    }  \r
+}\r
+#\r
+#  Import the key. Fail if key exists. This avoid creating fake backup.\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'backup import key'})  {\r
+    if (ref ($settings{'FH'}) ne 'Fh') {\r
+       $errormessage = $Lang::tr{'no cfg upload'};\r
+    } else {\r
+       if (copy ($settings{'FH'}, $tmpkeyfile) != 1) {\r
+           $errormessage = $Lang::tr{'save error'};\r
+       } else {\r
+           # if a password is given, decrypt the key received in $tmpkeyfile file with it.\r
+           # no error is produce if the password is wrong.\r
+           if ($settings{'PASSWORD1'}) {\r
+               my @lines = `openssl enc -a -d -aes256 -salt -pass pass:$settings{'PASSWORD1'} -in $tmpkeyfile`;\r
+               open(FILE,">$tmpkeyfile");\r
+               print FILE @lines;\r
+               close (FILE);\r
+           }\r
+           $errormessage = &get_bk_error(system ('/usr/local/bin/ipcopbackup -key import')>>8);\r
+       }\r
+    }\r
+}\r
+#\r
+#  Import the key. Fail if key exists. Key is extracted from a non-encrypted backup (pre 1.4.10)\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'backup extract key'})  {\r
+    if (ref ($settings{'FH'}) ne 'Fh') {\r
+       $errormessage = $Lang::tr{'no cfg upload'};\r
+    } else {\r
+       if (copy ($settings{'FH'}, '/tmp/tmptarfile.tgz') != 1) {\r
+           $errormessage = $Lang::tr{'save error'};\r
+       } else {\r
+           system( "tar -C /tmp -xzf /tmp/tmptarfile.tgz */backup/backup.key;\\r
+                   mv -f /tmp${General::swroot}/backup/backup.key $tmpkeyfile;\\r
+                   rm -rf /tmp${General::swroot};\\r
+                   rm /tmp/tmptarfile.tgz");\r
+           $errormessage = &get_bk_error(system ('/usr/local/bin/ipcopbackup -key import')>>8);\r
+       }\r
+    }\r
+}\r
+#\r
+#  Create the key. Cannot overwrite existing key to avoid difference with exported (saved) key\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'backup generate key'})  {\r
+    $errormessage = &get_bk_error(system('/usr/local/bin/ipcopbackup -key new')>>8);\r
+}\r
+\r
+my $cryptkeymissing = system ('/usr/local/bin/ipcopbackup -key exist')>>8;\r
+\r
+&Header::showhttpheaders();\r
+if ($cryptkeymissing) {  #If no key is present, force creation or import\r
+    &Header::openpage($Lang::tr{'backup configuration'}, 1, '');\r
+    &Header::openbigbox('100%', 'left', '', $errormessage);\r
+    if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<font class='base'>$errormessage&nbsp;</font>";\r
+       &Header::closebox();\r
+    }\r
+    &Header::openbox('100%', 'left', $Lang::tr{'backup key'});\r
+    print <<END\r
+    <form method = 'post' enctype = 'multipart/form-data'>\r
+      <table>\r
+        <tr>\r
+         <td colspan='2'>\r
+         $Lang::tr{'backup explain key'}:\r
+         <ul>\r
+         <li>$Lang::tr{'backup explain key li1'}\r
+         <li>$Lang::tr{'backup explain key li2'}\r
+         <li>$Lang::tr{'backup explain key li3'}\r
+         </ul>\r
+          </td>\r
+       </tr><tr>\r
+         <td width='15%'></td><td width='20%'></td><td>\r
+         <input type = 'submit' name = 'ACTION' value = '$Lang::tr{'backup generate key'}' />\r
+          </td>\r
+       </tr><tr>\r
+         <td align='right'>$Lang::tr{'backup key file'}:</td><td><input type = 'file' name = 'FH' size = '30' value='backup.key' />\r
+         </td><td>\r
+         <input type = 'submit' name = 'ACTION' value = '$Lang::tr{'backup import key'}' />\r
+       </tr><tr>\r
+         <td align='right'>$Lang::tr{'backup protect key password'}:<td><input type = 'password' name='PASSWORD1' size='10' />\r
+          </td>\r
+       </tr><tr>\r
+         <td align='right'>$Lang::tr{'backup clear archive'}:</td><td><input type = 'file' name = 'FH' size = '30' value='your-ipcop.tar.gz' />\r
+         </td><td>\r
+         <input type = 'submit' name = 'ACTION' value = '$Lang::tr{'backup extract key'}' />\r
+          </td>\r
+       </tr>\r
+      </table>\r
+      $Lang::tr{'notes'}:\r
+      <ul>\r
+         <li>$Lang::tr{'backup explain key no1'}\r
+         <li>$Lang::tr{'backup explain key no2'}\r
+      </ul>\r
+    </form>\r
+END\r
+;\r
+    &floppybox();\r
+    &Header::closebox();\r
+    &Header::closebigbox();\r
+    &Header::closepage();\r
+    exit (0);\r
+}\r
+\r
+##\r
+## Sets management (create/delete/import/restore)\r
+##\r
+\r
+erase_files ($setdir);                 #clean up\r
+\r
+#\r
+# create new archive set\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'create'}) {\r
+    $errormessage = &get_bk_error(system('/usr/local/bin/ipcopbkcfg > /dev/null')>>8);\r
+    &import_set (" ".&Header::cleanhtml ($settings{'COMMENT'})) if (!$errormessage);\r
+}\r
+#\r
+# delete a backup set\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {\r
+    erase_files (&Header::cleanhtml ($settings{'KEY'}));       # remove files\r
+    rmdir($settings{'KEY'});           # remove directory\r
+}\r
+#\r
+# import an archive set\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'import'}) {\r
+    if (ref ($settings{'FH'}) ne 'Fh') {\r
+       $errormessage = $Lang::tr{'no cfg upload'};\r
+    } else {\r
+       if (!copy ($settings{'FH'}, "$setdir/$datafile")) {\r
+           $errormessage = $Lang::tr{'save error'};\r
+       } else {\r
+           &import_set ('&nbsp;(imported)');\r
+       }\r
+    }\r
+}\r
+#\r
+# restore an archive\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'restore'}) {\r
+    if ($settings{'AreYouSure'} eq 'yes') {\r
+       if (!$cryptkeymissing) {                        # if keyfile exists\r
+           if (-e "$settings{'KEY'}/$datafile"){       # encrypted dat is required\r
+               copy_files($settings{'KEY'}, $setdir);  # to working dir\r
+               $errormessage = get_rs_error(system("/usr/local/bin/ipcoprscfg" \r
+                                       . ($settings{'RESTOREHW'} eq 'on' ? ' --hardware' : '') \r
+                                       . ' >/dev/null')>>8);\r
+               if (!$errormessage) {\r
+                   # restored ok, recommend restarting system\r
+                   $warnmessage = $Lang::tr{'cfg restart'};\r
+               }\r
+               erase_files ($setdir);                  #clean up\r
+           } else {\r
+               $errormessage = $Lang::tr{'missing dat'}."$settings{'KEY'}/$datafile";\r
+           }\r
+       } else {  # if keyfile does not exist\r
+           $errormessage = $Lang::tr{'backup missing key'};\r
+       }\r
+    \r
+    } else {  # not AreYouSure=yes\r
+       &Header::openpage($Lang::tr{'backup configuration'}, 1, '');\r
+       &Header::openbigbox('100%', 'left');\r
+       &Header::openbox('100%', 'left', $Lang::tr{'are you sure'});\r
+       print <<END\r
+<form method = 'post'>\r
+  <input type = 'hidden' name = 'KEY' value ='$settings{'KEY'}' /> \r
+  <input type = 'hidden' name = 'AreYouSure' value ='yes' />\r
+  <table align = 'center'>\r
+    <tr>\r
+      <td align = 'center'>\r
+       <input type = 'submit' name = 'ACTION' value = '$Lang::tr{'restore'}' />\r
+      </td><td>\r
+       <input type = 'submit' name = 'ACTION' value = '$Lang::tr{'cancel'}' />\r
+      </td>\r
+    </tr><tr>\r
+      <td>\r
+       $Lang::tr{'restore hardware settings'}: <input type = 'checkbox' name = 'RESTOREHW'>\r
+      </td>\r
+    </tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+       &Header::closebox();\r
+       &Header::closebigbox();\r
+       &Header::closepage();\r
+       exit (0);\r
+    }\r
+}\r
+##\r
+##  Media management\r
+##\r
+#\r
+# now build the list of removable device\r
+#\r
+\r
+# Read partitions sizes registered with the system\r
+my %partitions;\r
+foreach my $li (`/usr/local/bin/ipcopbackup -proc partitions`) {               # use suid helper...\r
+    # partitions{'sda1'} = 128M        if         /major minor  blocks name/\r
+    $partitions{$4} = &kmgt($3*1024,4) if ($li =~ /(\d+) +(\d+) +(\d+) +(.*)/);\r
+}\r
+\r
+# Search usb-storage scsi device\r
+my %medias;\r
+    \r
+foreach (`/usr/local/bin/ipcopbackup -glob '/proc/scsi/usb-storage*/*'`) {# use suid helper...\r
+    my $m;\r
+    foreach ( `cat $_` ) {     # list each line of information for the device:\r
+#      Host scsi0: usb-storage\r
+#      Vendor: SWISSBIT\r
+#      Product: Black Silver\r
+#      Serial Number: D0ED423A4F84A31E\r
+#      Protocol: Transparent SCSI\r
+#      Transport: Bulk\r
+#      GUID: 13706828d0ed423a4f84a31e\r
+#      Attached: Yes\r
+                                      \r
+       chomp;\r
+       my ($key,$val) = split(': ',$_,2);\r
+       $key =~ s/^ *//;        # remove front space\r
+\r
+       # convert 'scsi?' key to sda, sdb,... and use it as a %medias keyhash\r
+       if ($key =~ /Host scsi(.)/) {\r
+           $val = $m = 'sd' . chr(97+$1);\r
+           $key = 'Host';\r
+       }\r
+       $medias{$m}{$key} = $val;               # save data\r
+    }\r
+}\r
+\r
+#\r
+# Switch mounted media\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'mount'})\r
+{\r
+    # Find what is really mounted under backup. Can be local hard disk or any removable media\r
+    my $mounted = &findmounted();\r
+    #umount previous, even if same device already mouted.\r
+    system ("/usr/local/bin/ipcopbackup -U $mounted") if ($mounted ne $Lang::tr{'local hard disk'});\r
+    $errormessage = `/usr/local/bin/ipcopbackup -M $settings{'SELECT'}` if (grep (/$settings{'SELECT'}/,%partitions));\r
+}\r
+#\r
+# Compute a full description of device\r
+#\r
+my $mounted = &findmounted();\r
+my $media_des = $mounted;      # Description\r
+if ($mounted ne $Lang::tr{'local hard disk'}) {\r
+    $_ = $mounted;     # sda1 => sda\r
+    tr/0-9//d;\r
+    $media_des = "$medias{$_}{'Product'} ($media_des, $partitions{$mounted})";\r
+}\r
+&Header::openpage($Lang::tr{'backup configuration'}, 1, '');\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+    &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+    print "<font class='base'>$errormessage&nbsp;</font>";\r
+    &Header::closebox();\r
+}\r
+\r
+$warnmessage = "<font color=${Header::colourred}><b>$Lang::tr{'capswarning'}</b></font>: $warnmessage <p>" if ($warnmessage);\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'backup configuration'});\r
+\r
+#Divide the window in two : left and right\r
+print <<END\r
+    <table width = '100%' >\r
+    <tr>\r
+       <th width = '50%'>$Lang::tr{'current media'}:<font color=${Header::colourred}><b>$media_des</b></font></th>\r
+       <th width = '3%'></th>\r
+       <th>$Lang::tr{'choose media'}</th>\r
+    </tr>\r
+END\r
+;\r
+\r
+# Left part of window\r
+print <<END\r
+    <tr><td>\r
+    <ul>\r
+    <li>$Lang::tr{'backup sets'}:\r
+    <table width = '80%' border='0'>\r
+    <tr>\r
+       <th  class = 'boldbase' align = 'center'>$Lang::tr{'name'}</th>\r
+       <th  class = 'boldbase' align = 'center' colspan = '3'>$Lang::tr{'action'}</th>\r
+    </tr>\r
+END\r
+;\r
+\r
+# get list of available sets by globbing directories under $setdir\r
+# External device (usk key) are mounted in $setdir. -R permits finding sets in hierarchy.\r
+my $i = 0;\r
+foreach my $set (`ls -Rt1 $setdir`) {\r
+    chop ($set);       #remove ':' & newline from line\r
+    chop ($set);\r
+    if (-d $set && ($set =~ m!/.+/\d{8}_\d{6}! ) ) { # filter out things not sets !\r
+       if ($i++ % 2) {\r
+           print "<tr bgcolor = '$Header::table2colour'>";\r
+       } else {\r
+           print "<tr bgcolor = '$Header::table1colour'>";\r
+       }\r
+       my $settime = read_timefile( "$set/$datefile", "$set/$datafile" );\r
+       my $name = substr ($set,length($setdir)+1);\r
+       print<<EOF\r
+<td>\r
+    $settime\r
+</td>\r
+\r
+<td align = 'center'>\r
+<form method = 'post'>\r
+<input type = 'hidden' name = 'ACTION' value ='$Lang::tr{'restore'}' />\r
+<input type = 'image'  name = '$Lang::tr{'restore'}' src = '/images/reload.gif' alt = '$Lang::tr{'restore'}' title = '$Lang::tr{'restore'}' />\r
+<input type = 'hidden' name = 'KEY' value = '$set' />\r
+</form>\r
+</td>\r
+\r
+<td align = 'center'>\r
+<a href = '/backup/$name/$datafile'><img src = '/images/floppy.gif' title = '$Lang::tr{'export'}'></a>\r
+</td>\r
+\r
+<td align = 'center'>\r
+<form method = 'post'>\r
+<input type = 'hidden' name = 'ACTION' value = '$Lang::tr{'remove'}' />\r
+<input type = 'image'  name = '$Lang::tr{'remove'}' src = '/images/delete.gif' alt = '$Lang::tr{'remove'}' title = '$Lang::tr{'remove'}' border = '0' />\r
+<input type = 'hidden' name = 'KEY' value = '$set' />\r
+</form>\r
+</td>\r
+</tr>\r
+EOF\r
+;\r
+    }\r
+}\r
+print "</table>" . ($i ? "<br>" : "$Lang::tr{'empty'}!<hr /><br>");\r
+print <<EOF\r
+$warnmessage\r
+<form method = 'post'>\r
+       <li>$Lang::tr{'backup configuration'}<br>\r
+       $Lang::tr{'description'}:<input type = 'text' name = 'COMMENT' size='30' />\r
+       <input type = 'submit' name = 'ACTION' value = '$Lang::tr{'create'}' />\r
+</form><p>\r
+<form method = 'post' enctype = 'multipart/form-data'>\r
+       <li>$Lang::tr{'backup import dat file'}:<br>\r
+       <input type = 'file' name = 'FH' size = '20' />\r
+       <input type = 'submit' name = 'ACTION' value = '$Lang::tr{'import'}' />\r
+</form>\r
+</ul>\r
+EOF\r
+;\r
+\r
+print "</td><td></td><td valign='top'>";  # Start right part (devices selection)\r
+print $Lang::tr{'backup media info'};\r
+\r
+print "<form method = 'post'>";\r
+print "<table width = '100%'><tr><td>";\r
+my $nodev = 1;             # nothing present\r
+foreach my $media (keys %medias) {\r
+    if ( $medias{$media}{'Attached'} eq 'Yes') {       # device is attached to USB bus ?\r
+       $nodev = 0;             # at least one device present\r
+       my $checked = $medias{$media}{'Host'} eq $mounted ? "checked='checked'" : '';\r
+       print "<input type='radio' name = 'SELECT' value = '$medias{$media}{'Host'}' $checked />";\r
+       print "<b>$medias{$media}{'Product'}</b><br>";\r
+       # list attached partitions to this media\r
+       foreach my $part (sort (keys (%partitions))) {\r
+           if ($part =~ /$medias{$media}{'Host'}./) {\r
+               my $checked = $part eq $mounted ? "checked='checked'" : '';\r
+               print "&nbsp;&nbsp;&nbsp;<input type='radio' name = 'SELECT' value = '$part' $checked />$part ($partitions{$part})<br>";\r
+           }\r
+       }\r
+    }\r
+}\r
+if ($nodev) {\r
+    print "<br>$Lang::tr{'insert removable device'}";\r
+    print "</td><td>";\r
+    print "<br><input type = 'submit' name = 'ACTION' value = '$Lang::tr{'done'}' />";\r
+} else {\r
+    #Add an entry for the local disk\r
+    my $checked =  $Lang::tr{'local hard disk'} eq $mounted ? "checked='checked'" : '';\r
+    print "<input type = 'radio' name = 'SELECT' value = '$Lang::tr{'local hard disk'}' $checked />";\r
+    print "<b>$Lang::tr{'local hard disk'}</b>";\r
+    print "</td><td>";\r
+    print "<br><input type = 'submit' name = 'ACTION' value = '$Lang::tr{'mount'}' />";\r
+}\r
+print "</tr></table>";\r
+print "</form>";\r
+#\r
+#Backup key\r
+#\r
+print<<EOF\r
+    <hr />\r
+<form method='post'>\r
+    <b>$Lang::tr{'backup key'}</b><br>\r
+    $Lang::tr{'backup key info'}<br>\r
+    <table><tr>\r
+    <td align= 'right'>$Lang::tr{'root user password'}:\r
+    <td align='left'><input type = 'password' name='PASSWORD' />\r
+    <input type = 'submit' name = 'ACTION' value = '$Lang::tr{'backup export key'}' />\r
+    </tr><tr>\r
+    <td align='right'>$Lang::tr{'backup protect key password'}:\r
+    <td align='left'><input type = 'password' name='PASSWORD1' size='10' />\r
+    </tr><tr>\r
+    <td align='right'>$Lang::tr{'again'}\r
+    <td align='left'><input type = 'password' name='PASSWORD2'  size='10'/>\r
+    </tr></table>\r
+</form>\r
+\r
+EOF\r
+;\r
+# End of right table\r
+print "</td></tr></table>";\r
+\r
+&floppybox();\r
+\r
+&Header::closebox();\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+sub floppybox {\r
+    print <<END\r
+<hr />\r
+<form method = 'post'>\r
+<table width='100%'>\r
+<tr>\r
+    <td>\r
+         <b>$Lang::tr{'backup to floppy'}</b>\r
+    </td>\r
+</tr>\r
+<tr>\r
+    <td width='50%'>\r
+       $Lang::tr{'insert floppy'}\r
+    </td>\r
+    <td align='center'> \r
+       <input type='submit' name='ACTION' value='$Lang::tr{'backup to floppy'}' />\r
+    </td> \r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+    print   "<b>$Lang::tr{'alt information'}</b><pre>" .\r
+           `/usr/local/bin/ipcopbackup -savecfg floppy` .\r
+           '&nbsp;</pre>' if ($settings{'ACTION'} eq $Lang::tr{'backup to floppy'} );\r
+}\r
+\r
+# Return device name of what is mounted under 'backup'\r
+sub findmounted() {\r
+    my $mounted = `mount|grep ' /home/httpd/html/backup '`;\r
+    if ($mounted) {                            # extract device name\r
+        $mounted =~ m!^/dev/(.*) on!;          # device on mountmoint options\r
+        return $1; \r
+    } else {                                   # it's the normal subdir\r
+        return $Lang::tr{'local hard disk'};\r
+    }\r
+}\r
+# read and return a date/time string from a time file\r
+sub read_timefile() {\r
+    my $fname = shift;   # name of file to read from\r
+    my $fname2 = shift;  # if first file doesn't exist, get date of this file\r
+\r
+    my $dt;\r
+    if (defined(open(FH, "<$fname"))) {\r
+       $dt = <FH>;\r
+       chomp $dt;\r
+       close(FH);\r
+    } else {\r
+       $dt = &get_fdate($fname2);    # get file date/time\r
+       write_timefile($fname, $dt); # write to expected time file\r
+    }\r
+    return $dt;\r
+}\r
+# write a date/time string to a time file\r
+sub write_timefile() {\r
+    my $fname = shift; # name of file to write to\r
+    my $dt = shift;    # date/time string to write\r
+\r
+    if (open(FH, ">$fname")) {\r
+      print FH "$dt\n";\r
+      close(FH);\r
+    }  \r
+}\r
+# move a dat file without time stamp to subdir\r
+sub import_set() {\r
+    my $dt = get_fdate("$setdir/$datafile") . shift;\r
+    &write_timefile("$setdir/$datefile", $dt);\r
+\r
+    # create set directory\r
+    my $setname = "$setdir/" . get_ddate("$setdir/$datafile");\r
+    mkdir($setname);\r
+\r
+    # move files to the new set directory\r
+    copy_files($setdir, $setname);\r
+    erase_files ($setdir);\r
+}\r
+\r
+# get date/time string from file\r
+sub get_fdate() {\r
+    my $fname = shift;\r
+    open(DT, "/bin/date -r $fname|");\r
+    my $dt = <DT>;\r
+    close(DT);\r
+    chomp $dt;\r
+    $dt =~ s/\s+/ /g;  # remove duplicate spaces\r
+    return $dt;\r
+}\r
+# get date/time string from file for use as directory name\r
+sub get_ddate() {\r
+    my $fname = shift;\r
+    open(DT, "/bin/date -r $fname +%Y%m%d_%H%M%S|");\r
+    my $dt = <DT>;\r
+    close(DT);\r
+    chomp $dt;\r
+    return $dt;\r
+}\r
+# copy archive files from source directory to destination directory\r
+sub copy_files() {\r
+    my $src_dir = shift;\r
+    my $dest_dir = shift;\r
+    map (copy ("$src_dir/$_", "$dest_dir/$_"),  ($datafile, $datefile) );\r
+}\r
+# erase set files\r
+sub erase_files() {\r
+    my $src_dir = shift;\r
+    map (unlink ("$src_dir/$_"),  ($datafile, $datefile));\r
+}\r
+# get backup error text\r
+sub get_bk_error() {\r
+    my $exit_code = shift || return '';\r
+    if ($exit_code == 0) {\r
+       return '';\r
+    } elsif ($exit_code == 2) {\r
+       return $Lang::tr{'err bk 2 key'};\r
+    } elsif ($exit_code == 3) {\r
+       return $Lang::tr{'err bk 3 tar'};\r
+    } elsif ($exit_code == 4) {\r
+       return $Lang::tr{'err bk 4 gz'};\r
+    } elsif ($exit_code == 5) {\r
+       return $Lang::tr{'err bk 5 encrypt'};\r
+    } else {\r
+       return $Lang::tr{'err bk 1'};\r
+    }\r
+}\r
+# show any restore errors\r
+sub get_rs_error() {\r
+    \r
+    my $exit_code = shift || return '';\r
+    if ($exit_code == 0) {\r
+       return '';\r
+    } elsif ($exit_code == 6) {\r
+       return $Lang::tr{'err rs 6 decrypt'};\r
+    } elsif ($exit_code == 7) {\r
+       return $Lang::tr{'err rs 7 untartst'};\r
+    } elsif ($exit_code == 8) {\r
+       return $Lang::tr{'err rs 8 untar'};\r
+    } elsif ($exit_code == 9) {\r
+       return $Lang::tr{'missing dat'};\r
+    } else {\r
+       return $Lang::tr{'err rs 1'}."($exit_code)";\r
+    }\r
+}\r
+sub kmgt {\r
+    my ($value,$length,$opt_U) = @_;\r
+    if      ( $value > 10**( $length + 8 ) or $opt_U eq 'T' ) {\r
+       return sprintf( "%d%s", int( ( $value / 1024**4 ) + .5 ), 'T' );\r
+    } elsif ( $value > 10**( $length + 5 ) or $opt_U eq 'G' ) {\r
+       return sprintf( "%d%s", int( ( $value / 1024**3 ) + .5 ), 'G' );\r
+    } elsif ( $value > 10**( $length + 2 ) or $opt_U eq 'M' ) {\r
+       return sprintf( "%d%s", int( ( $value / 1024**2 ) + .5 ), 'M' );\r
+    } elsif ( $value > 10**($length) or $opt_U eq 'K' ) {\r
+       return sprintf( "%d%s", int( ( $value / 1024 ) + .5 ), 'K' );\r
+    } else {\r
+       return $value;\r
+    }\r
+}\r
+\r
+1;\r
diff --git a/html/cgi-bin/base.cgi b/html/cgi-bin/base.cgi
new file mode 100644 (file)
index 0000000..cc11800
--- /dev/null
@@ -0,0 +1,488 @@
+#!/usr/bin/perl\r
+#\r
+# IPCop CGI's - base.cgi\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) place a name here\r
+#\r
+# $Id: base.cgi,v 1.1.2.10 2005/11/03 19:20:50 franck78 Exp $\r
+#\r
+#\r
+\r
+\r
+# This file is a starting base for writting a new GUI screen using the three box model\r
+#      Box 1 : global settings for the application\r
+#      Box 2 : line editor for multiple data line\r
+#      Box 3 : the list of data line, with edit/remove buttons\r
+#\r
+#      This example do the following\r
+#      Read global settings:\r
+#              a NAME and an interface (IT)\r
+#      Lines of data composed of:\r
+#              an ipaddress (IP), an enabled/disabled options (CB), a comment (CO)\r
+#\r
+#\r
+# All you need to do is\r
+#      replace 'XY' with your app name\r
+#      define your global $settings{'var name'}\r
+#      define your strings\r
+#      write validation code for Settings1 and Settings2\r
+#      write HTML box Settings1 and Settings2\r
+#      adapt the sort function\r
+#      write the correct configuration file\r
+#\r
+#\r
+# to fully troubleshot your code, uncomment diagnostics, Carp and cluck lines\r
+# use diagnostics; # need to add the file /usr/lib/perl5/5.8.x/pods/perldiag.pod before to work\r
+# next look at /var/log/httpd/error_log , http://www.perl.com/pub/a/2002/05/07/mod_perl.html may help\r
+#use warnings;\r
+use strict;\r
+#use Carp ();\r
+#local $SIG{__WARN__} = \&Carp::cluck;\r
+\r
+require '/var/ipcop/general-functions.pl';     # Replace all occurences of </var/ipcop> with CONFIG_ROOT\r
+                                               # before updating cvs IPCop file.\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+# Files used\r
+our $setting  = "${General::swroot}/XY/settings";              # particular settings\r
+my  $datafile = "${General::swroot}/XY/data";                  # repeted settings (multilines)\r
+our $conffile = "${General::swroot}/XY/XY.conf";               # Config file for application XY\r
+\r
+# strings to add to languages databases or in addon language file\r
+$Lang::tr{'XY title'}     = 'XY service';\r
+$Lang::tr{'XY settings'}  = 'XY setup';\r
+$Lang::tr{'XY add data'}  = 'add data';\r
+$Lang::tr{'XY edit data'} = 'edit data';\r
+$Lang::tr{'XY data'}      = 'XY data';\r
+\r
+# informationnal & log strings, no translation required\r
+my  $msg_added           = 'XY added';\r
+my  $msg_modified        = 'XY modified';\r
+my  $msg_deleted         = 'XY removed';\r
+my  $msg_datafileerror   = 'XY data file error';\r
+our $msg_configfileerror = 'XY configuration file error';\r
+\r
+my %settings=();\r
+\r
+# Settings1\r
+$settings{'NAME'} = '';                # a string field than must be 'GOOD' or 'good'\r
+$settings{'IT'} = '';          # a 'choose' field for color interface\r
+$settings{'TURBO'} = 'off';    # a checkbox field to enable something\r
+\r
+# Settings2 for editing the multi-line list\r
+# Must not be saved by writehash !\r
+$settings{'IP'} = '';                  # datalines are: IPaddress,enable,comment \r
+$settings{'CB'} = 'off';               # Every check box must be set to off\r
+$settings{'COMMENT'} = '';\r
+my @nosaved=('IP','CB','COMMENT');        # List here ALL setting2 fields. Mandatory\r
+\r
+$settings{'ACTION'} = '';              # add/edit/remove....\r
+$settings{'KEY1'} = '';                        # point record for ACTION\r
+\r
+# Define each field that can be used to sort columns\r
+my $sortstring='^IP|^COMMENT';\r
+my $errormessage = '';\r
+my $warnmessage = '';\r
+\r
+&Header::showhttpheaders();\r
+\r
+# Read needed Ipcop settings (exemple)\r
+my %mainsettings=();\r
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);\r
+\r
+# Get GUI values\r
+&Header::getcgihash(\%settings);\r
+\r
+# Load multiline data. Do it before use in save action\r
+our $f = new Multilines (filename => $datafile,\r
+                        fields   => ['IP','CB','COMMENT'],\r
+                        comment  => 1\r
+                       );\r
+\r
+##\r
+## SAVE Settings1 \r
+##\r
+# Remove if no Settings1 needed\r
+if ($settings{'ACTION'} eq $Lang::tr{'save'}) {\r
+\r
+    #\r
+    #Validate static Settings1 here\r
+    #\r
+    if (($settings{"NAME"} ne "GOOD") &&\r
+       ($settings{"NAME"} ne "good"))    {\r
+       $errormessage = 'Enter good or GOOD in Name field';\r
+    }\r
+\r
+    unless ($errormessage) {                                   # Everything is ok, save settings\r
+       map (delete ($settings{$_}) ,(@nosaved,'ACTION','KEY1'));# Must never be saved\r
+       &General::writehash($setting, \%settings);              # Save good settings\r
+       $settings{'ACTION'} = $Lang::tr{'save'};                # Recreate  'ACTION'\r
+       map ($settings{$_}= '',(@nosaved,'KEY1'));              # and reinit var to empty\r
+\r
+       # Rebuild configuration file if needed\r
+       &BuildConfiguration;\r
+    }\r
+\r
+    ERROR:                                             # Leave the faulty field untouched\r
+} else {\r
+    &General::readhash($setting, \%settings);                  # Get saved settings and reset to good if needed\r
+}\r
+\r
+##\r
+## Now manipulate the multiline list with Settings2\r
+##\r
+\r
+# Basic actions are:\r
+#      toggle the check box\r
+#      add/update a new line\r
+#      begin editing a line\r
+#      remove a line\r
+# $KEY1 contains the index of the line manipulated\r
+\r
+##\r
+## Toggle CB field.\r
+##\r
+if ($settings{'ACTION'} eq $Lang::tr{'toggle enable disable'}) {\r
+\r
+    $f->togglebyfields($settings{'KEY1'},'CB');                # toggle checkbox\r
+    $settings{'KEY1'} = '';                            # End edit mode\r
+\r
+    &General::log($msg_modified);\r
+\r
+    # save changes\r
+    $f->savedata || die "$msg_datafileerror";\r
+\r
+    # Rebuild configuration file\r
+    &BuildConfiguration;\r
+}\r
+\r
+##\r
+## ADD/UPDATE a line of configuration from Settings2\r
+##\r
+if ($settings{'ACTION'} eq $Lang::tr{'add'}) {\r
+    # Validate inputs\r
+    if (! &General::validip($settings{'IP'})) {$errormessage = "Specify an IP value !"};\r
+    if (! $settings{'COMMENT'} ) {$warnmessage = "no comment specified"};\r
+\r
+    unless ($errormessage) {\r
+       if ($settings{'KEY1'} eq '') { #add or edit ?\r
+           # insert new data line\r
+           $f->writedata(-1, $settings{'IP'},$settings{'CB'},$settings{'COMMENT'});\r
+           &General::log($msg_added);\r
+       } else {\r
+           # modify data line\r
+           $f->writedata($settings{'KEY1'}, $settings{'IP'},$settings{'CB'},$settings{'COMMENT'});\r
+           $settings{'KEY1'} = '';       # End edit mode\r
+           &General::log($msg_modified);\r
+       }\r
+       # save changes\r
+       $f->savedata || die "$msg_datafileerror";\r
+\r
+       # Rebuild configuration file\r
+       &BuildConfiguration;\r
+\r
+       # if entering data line is a repetitive task, choose here to not erase fields between each addition\r
+       map ($settings{$_}='' ,@nosaved);\r
+    }\r
+}\r
+\r
+##\r
+## begin EDIT: move data fields to Settings2 controls\r
+##\r
+if ($settings{'ACTION'} eq $Lang::tr{'edit'}) {\r
+    $f->readdata ($settings{'KEY1'},\r
+                 $settings{'IP'},\r
+                 $settings{'CB'},\r
+                 $settings{'COMMENT'});\r
+}\r
+##\r
+## REMOVE: remove selected line\r
+##\r
+if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {\r
+    $f->deleteline ($settings{'KEY1'});\r
+    $settings{'KEY1'} = '';                            # End remove mode\r
+    &General::log($msg_deleted);\r
+\r
+    # save changes\r
+    $f->savedata || die "$msg_datafileerror";\r
+\r
+    # Rebuild configuration file\r
+    &BuildConfiguration;\r
+}\r
+\r
+\r
+##\r
+## Check if sorting is asked\r
+##\r
+if ($ENV{'QUERY_STRING'} =~ /$sortstring/ ) {\r
+    my $newsort=$ENV{'QUERY_STRING'};\r
+    my $actual=$settings{'SORT_XY'};\r
+\r
+    # Reverse actual sort or choose new column ?\r
+    if ($actual =~ $newsort) {\r
+       $f->setsortorder ($newsort ,rindex($actual,'Rev'));\r
+       $newsort .= rindex($actual,'Rev')==-1 ? 'Rev' : '';\r
+    } else {\r
+       $f->setsortorder ($newsort ,1);\r
+    }\r
+    $f->savedata;                                              # Synchronise file & display\r
+    $settings{'SORT_XY'} = $newsort;\r
+    map (delete ($settings{$_}) ,(@nosaved,'ACTION','KEY1'));  # Must never be saved\r
+    &General::writehash($setting, \%settings);\r
+    $settings{'ACTION'} = 'SORT';                              # Recreate an 'ACTION'\r
+    map ($settings{$_}= '',(@nosaved,,'KEY1'));                        # and reinit var to empty\r
+}\r
+\r
+##\r
+## Remove if no Setting1 needed\r
+##\r
+if ($settings{'ACTION'} eq '' ) { # First launch from GUI\r
+    # Place here default value when nothing is initialized\r
+\r
+}\r
+\r
+&Header::openpage($Lang::tr{'XY title'}, 1, '');\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+my %checked =();     # Checkbox manipulations\r
+\r
+if ($errormessage) {\r
+    &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+    print "<font class='base'>$errormessage&nbsp;</font>";\r
+    &Header::closebox();\r
+}\r
+\r
+##\r
+## First box Settings1. Remove if not needed\r
+##\r
+$warnmessage = "<font color=${Header::colourred}><b>$Lang::tr{'capswarning'}</b></font>: $warnmessage" if ($warnmessage);\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'XY settings'});\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>";\r
+$checked{'IT'}{'RED'} = '';\r
+$checked{'IT'}{'GREEN'} = '';\r
+$checked{'IT'}{'ORANGE'} = '';\r
+$checked{'IT'}{'BLUE'} = '';\r
+$checked{'IT'}{$settings{'IT'}} = "checked='checked'";\r
+$checked{'TURBO'} = ($settings{'TURBO'} eq 'on') ? "checked='checked'" : '';\r
+\r
+print<<END\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base'>Name:</td>\r
+    <td><input type='text' name='NAME' value='$settings{'NAME'}' /></td>\r
+    <td align='right'>INTERFACE</td>\r
+    <td align='right'>red<input type='radio' name='IT' value='RED' $checked{'IT'}{'RED'} /></td>\r
+</tr><tr>\r
+    <td>Turbo:</td>\r
+    <td><input type='checkbox' name='TURBO' $checked{'TURBO'}' /></td>\r
+    <td></td>\r
+    <td align='right'>green<input type='radio' name='IT' value='GREEN' $checked{'IT'}{'GREEN'} /></td>\r
+</tr><tr>\r
+    <td></td>\r
+    <td></td>\r
+    <td></td>\r
+    <td align='right'>blue<input type='radio' name='IT' value='BLUE' $checked{'IT'}{'BLUE'} /></td>\r
+</tr><tr>\r
+    <td></td>\r
+    <td></td>\r
+    <td></td>\r
+    <td align='right'>orange<input type='radio' name='IT' value='ORANGE' $checked{'IT'}{'ORANGE'} /></td>\r
+</tr>\r
+</table>\r
+<br />\r
+END\r
+;\r
+\r
+print<<END\r
+<table width='100%'>\r
+<hr />\r
+<tr>\r
+    <td class='base' width='25%'><img src='/blob.gif' align='top' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td>\r
+    <td class='base' width='25%'>$warnmessage</td>\r
+    <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+&Header::closebox();   # end of Settings1\r
+\r
+##\r
+## Second box is for editing the an item of the list\r
+##\r
+$checked{'CB'} = ($settings{'CB'} eq 'on') ? "checked='checked'" : '';\r
+\r
+my $buttontext = $Lang::tr{'add'};\r
+if ($settings{'KEY1'} ne '') {\r
+    $buttontext = $Lang::tr{'update'};\r
+    &Header::openbox('100%', 'left', $Lang::tr{'XY edit data'});\r
+} else {\r
+    &Header::openbox('100%', 'left', $Lang::tr{'XY add data'});\r
+}\r
+\r
+# Edited line number (KEY1) passed until cleared by 'save' or 'remove' or 'new sort order'\r
+print <<END\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='KEY1' value='$settings{'KEY1'}' />\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base'>$Lang::tr{'ip address'}:</td>\r
+    <td><input type='text' name='IP' value='$settings{'IP'}' /></td>\r
+    <td class='base'>$Lang::tr{'enabled'}</td>\r
+    <td><input type='checkbox' name='CB' $checked{'CB'} /></td>\r
+    <td class='base'>$Lang::tr{'remark'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type 'text' name='COMMENT' value='$settings{'COMMENT'}' /></td>\r
+</tr>\r
+</table>\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td>\r
+    <td width='50%' align='center'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+##\r
+## Third box shows the list\r
+##\r
+\r
+# Columns headers may be a sort link. In this case it must be named in $sortstring\r
+&Header::openbox('100%', 'left', $Lang::tr{'XY data'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+    <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'ip address'}</b></a></td>\r
+    <td width='70%' align='center'><a href='$ENV{'SCRIPT_NAME'}?COMMENT'><b>$Lang::tr{'remark'}</b></a></td>\r
+    <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+END\r
+;\r
+\r
+##\r
+## Print each line of @current list\r
+##\r
+my $key = 0;\r
+$f->readreset; # beginning of data\r
+for ($key=0; $key<$f->getnumberofline; $key++) {\r
+\r
+    my($cb,$comment,$ip) = $f->readbyfieldsseq($key,'CB','COMMENT','IP');\r
+\r
+    #Choose icon for checkbox\r
+    my $gif = '';\r
+    my $gdesc = '';\r
+    if ($cb eq "on") {\r
+       $gif = 'on.gif';\r
+       $gdesc = $Lang::tr{'click to disable'};\r
+    } else {\r
+       $gif = 'off.gif';\r
+       $gdesc = $Lang::tr{'click to enable'};\r
+    }\r
+\r
+    #Colorize each line\r
+    if ($settings{'KEY1'} eq $key) {\r
+       print "<tr bgcolor='${Header::colouryellow}'>";\r
+    } elsif ($key % 2) {\r
+       print "<tr bgcolor='${Header::table2colour}'>";\r
+    } else {\r
+       print "<tr bgcolor='${Header::table1colour}'>"; \r
+    }\r
+\r
+    print <<END\r
+<td align='center'>$ip</td>\r
+<td align='center'>$comment</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />\r
+<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />\r
+<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+</tr>\r
+END\r
+;\r
+} print "</table>";\r
+\r
+# If table contains entries, print 'Key to action icons'\r
+if ($key) {\r
+print <<END\r
+<table>\r
+<tr>\r
+    <td class='boldbase'>&nbsp;<b>$Lang::tr{'legend'}:&nbsp;</b></td>\r
+    <td><img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>\r
+    <td class='base'>$Lang::tr{'click to disable'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td>\r
+    <td class='base'>$Lang::tr{'click to enable'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>\r
+    <td class='base'>$Lang::tr{'edit'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>\r
+    <td class='base'>$Lang::tr{'remove'}</td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+}\r
+\r
+&Header::closebox();\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+## Ouf it's the end !\r
+\r
+##\r
+## Build the configuration file for application XY\r
+##\r
+sub BuildConfiguration {\r
+    open(FILE, ">/$conffile") or die "$msg_configfileerror";\r
+    flock(FILE, 2);\r
+\r
+    #Global settings\r
+    print FILE "#\n#  Configuration file for application XY\n#\n\n";\r
+    print FILE "#     do not edit manually\n";\r
+    print FILE "#     build for Ipcop:$mainsettings{'HOSTNAME'}\n\n\n";\r
+    print FILE "service=$settings{'NAME'}\n";\r
+    print FILE "activate-turbo\n" if $settings{'TURBO'} eq 'on';\r
+    print FILE "interface=$settings{'IT'}\n\n\n";\r
+    #write data line\r
+    {\r
+       my ($IP,$CB,$COMMENT);\r
+       $f->readreset;\r
+       while (defined ($f->readdataseq($IP,$CB,$COMMENT))) {\r
+           if ($CB eq "on") {\r
+               print FILE "$IP\t\t\t\t\t#$COMMENT\n";\r
+           } else {\r
+               print FILE "#DISABLED $IP\t\t\t\t#$COMMENT\n";\r
+           }\r
+       }\r
+    }\r
+    close FILE;\r
+\r
+    # Restart service\r
+    #system '/usr/local/bin/restartyourhelper';\r
+}\r
diff --git a/html/cgi-bin/changepw.cgi b/html/cgi-bin/changepw.cgi
new file mode 100644 (file)
index 0000000..b8d5c5a
--- /dev/null
@@ -0,0 +1,123 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: changepw.cgi,v 1.4.2.6 2005/03/07 21:28:03 eoberlander Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %cgiparams=();\r
+my $errormessage='';\r
+\r
+&Header::showhttpheaders();\r
+\r
+$cgiparams{'ACTION_ADMIN'} = '';\r
+$cgiparams{'ACTION_DIAL'} = '';\r
+\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+if ($cgiparams{'ACTION_ADMIN'} eq $Lang::tr{'save'})\r
+{\r
+       my $password1 = $cgiparams{'ADMIN_PASSWORD1'};\r
+       my $password2 = $cgiparams{'ADMIN_PASSWORD2'};  \r
+       if ($password1 eq $password2)\r
+       {\r
+               if ($password1 =~ m/\s|\"/) {\r
+                       $errormessage = $Lang::tr{'password contains illegal characters'};\r
+               }\r
+               elsif (length($password1) >= 6)\r
+               {\r
+                       system('/usr/bin/htpasswd', '-m', '-b', "${General::swroot}/auth/users", 'admin', "${password1}");\r
+                       &General::log($Lang::tr{'admin user password has been changed'});\r
+               }\r
+               else {\r
+                       $errormessage = $Lang::tr{'passwords must be at least 6 characters in length'}; }\r
+       }\r
+       else {\r
+               $errormessage = $Lang::tr{'passwords do not match'}; }\r
+}\r
+\r
+if ($cgiparams{'ACTION_DIAL'} eq $Lang::tr{'save'})\r
+{\r
+       my $password1 = $cgiparams{'DIAL_PASSWORD1'};\r
+       my $password2 = $cgiparams{'DIAL_PASSWORD2'};   \r
+       if ($password1 eq $password2)\r
+       {\r
+               if($password1 =~ m/\s|\"/) {\r
+                       $errormessage = $Lang::tr{'password contains illegal characters'};\r
+                }\r
+               elsif (length($password1) >= 6)\r
+               {\r
+                       system('/usr/bin/htpasswd', '-b', "${General::swroot}/auth/users", 'dial', "${password1}"); \r
+                       &General::log($Lang::tr{'dial user password has been changed'});\r
+               }\r
+               else {\r
+                       $errormessage = $Lang::tr{'passwords must be at least 6 characters in length'}; }\r
+       }\r
+       else {\r
+               $errormessage = $Lang::tr{'passwords do not match'}; }\r
+}\r
+\r
+&Header::openpage($Lang::tr{'change passwords'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<class name='base'>$errormessage\n";\r
+       print "&nbsp;</class>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'administrator user password'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td width='20%' class='base'>$Lang::tr{'username'}&nbsp;'admin'</td>\r
+       <td width='15%' class='base' align='right'>$Lang::tr{'password'}&nbsp;</td>\r
+       <td width='15%'><input type='password' name='ADMIN_PASSWORD1' size='10' /></td>\r
+       <td width='15%' class='base' align='right'>$Lang::tr{'again'} </td>\r
+       <td width='15%'><input type='password' name='ADMIN_PASSWORD2' size='10' /></td>\r
+       <td width='20%' align='center'><input type='submit' name='ACTION_ADMIN' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'dial user password'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td width='20%' class='base'>$Lang::tr{'username'}&nbsp;'dial'</td>\r
+       <td width='15%' class='base' align='right'>$Lang::tr{'password'}&nbsp;</td>\r
+       <td width='15%'><input type='password' name='DIAL_PASSWORD1' size='10'/></td>\r
+       <td width='15%' class='base' align='right'>$Lang::tr{'again'}&nbsp;</td>\r
+       <td width='15%'><input type='password' name='DIAL_PASSWORD2' size='10' /></td>\r
+       <td width='20%' align='center'><input type='submit' name='ACTION_DIAL' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+print "</form>\n";\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
diff --git a/html/cgi-bin/connections.cgi b/html/cgi-bin/connections.cgi
new file mode 100644 (file)
index 0000000..8fe8f8a
--- /dev/null
@@ -0,0 +1,329 @@
+#!/usr/bin/perl\r
+#\r
+# (c) 2001 Jack Beglinger <jackb_guppy@yahoo.com>\r
+#\r
+# (c) 2003 Dave Roberts <countzerouk@hotmail.com> - colour coded netfilter/iptables rewrite for 1.3\r
+#\r
+# $Id: connections.cgi,v 1.6.2.11 2005/02/24 07:44:35 gespinasse Exp $\r
+#\r
+\r
+# Setup GREEN, ORANGE, IPCOP, VPN CIDR networks, masklengths and colours only once\r
+\r
+my @network=();\r
+my @masklen=();\r
+my @colour=();\r
+\r
+use Net::IPv4Addr qw( :all );\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::table1colour} );\r
+undef (@dummy);\r
+\r
+# Read various files\r
+\r
+my %netsettings=();\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+\r
+open (ACTIVE, "/proc/net/ip_conntrack") or die 'Unable to open ip_conntrack';\r
+my @active = <ACTIVE>;\r
+close (ACTIVE);\r
+\r
+my @vpn = ('none');\r
+open (ACTIVE, "/proc/net/ipsec_eroute") and @vpn = <ACTIVE>; close (ACTIVE);\r
+\r
+my $aliasfile = "${General::swroot}/ethernet/aliases";\r
+open(ALIASES, $aliasfile) or die 'Unable to open aliases file.';\r
+my @aliases = <ALIASES>;\r
+close(ALIASES);\r
+\r
+# Add Green Firewall Interface\r
+push(@network, $netsettings{'GREEN_ADDRESS'});\r
+push(@masklen, "255.255.255.255" );\r
+push(@colour, ${Header::colourfw} );\r
+\r
+# Add Green Network to Array\r
+push(@network, $netsettings{'GREEN_NETADDRESS'});\r
+push(@masklen, $netsettings{'GREEN_NETMASK'} );\r
+push(@colour, ${Header::colourgreen} );\r
+\r
+# Add Green Routes to Array\r
+my @routes = `/sbin/route -n | /bin/grep $netsettings{'GREEN_DEV'}`;\r
+foreach my $route (@routes) {\r
+       chomp($route);\r
+       my @temp = split(/[\t ]+/, $route);\r
+       push(@network, $temp[0]);\r
+       push(@masklen, $temp[2]);\r
+       push(@colour, ${Header::colourgreen} );\r
+}\r
+\r
+# Add Firewall Localhost 127.0.0.1\r
+push(@network, '127.0.0.1');\r
+push(@masklen, '255.255.255.255' );\r
+push(@colour, ${Header::colourfw} );\r
+\r
+# Add Orange Network\r
+if ($netsettings{'ORANGE_DEV'}) {\r
+       push(@network, $netsettings{'ORANGE_NETADDRESS'});\r
+       push(@masklen, $netsettings{'ORANGE_NETMASK'} );\r
+       push(@colour, ${Header::colourorange} );\r
+       # Add Orange Routes to Array\r
+       @routes = `/sbin/route -n | /bin/grep $netsettings{'ORANGE_DEV'}`;\r
+       foreach my $route (@routes) {\r
+               chomp($route);\r
+               my @temp = split(/[\t ]+/, $route);\r
+               push(@network, $temp[0]);\r
+               push(@masklen, $temp[2]);\r
+               push(@colour, ${Header::colourorange} );\r
+       }\r
+}\r
+\r
+# Add Blue Network\r
+if ($netsettings{'BLUE_DEV'}) {\r
+       push(@network, $netsettings{'BLUE_NETADDRESS'});\r
+       push(@masklen, $netsettings{'BLUE_NETMASK'} );\r
+       push(@colour, ${Header::colourblue} );\r
+       # Add Blue Routes to Array\r
+       @routes = `/sbin/route -n | /bin/grep $netsettings{'BLUE_DEV'}`;\r
+       foreach my $route (@routes) {\r
+               chomp($route);\r
+               my @temp = split(/[\t ]+/, $route);\r
+               push(@network, $temp[0]);\r
+               push(@masklen, $temp[2]);\r
+               push(@colour, ${Header::colourblue} );\r
+       }\r
+}\r
+\r
+# Add STATIC RED aliases\r
+if ($netsettings{'RED_DEV'}) {\r
+       # We have a RED eth iface\r
+       if ($netsettings{'RED_TYPE'} eq 'STATIC') {\r
+               # We have a STATIC RED eth iface\r
+               foreach my $line (@aliases)\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       if ( $temp[0] ) {\r
+                               push(@network, $temp[0]);\r
+                               push(@masklen, $netsettings{'RED_NETMASK'} );\r
+                               push(@colour, ${Header::colourfw} );\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+# Add VPNs\r
+if ( $vpn[0] ne 'none' ) {\r
+       foreach my $line (@vpn) {\r
+               my @temp = split(/[\t ]+/,$line);\r
+               my @temp1 = split(/[\/:]+/,$temp[3]);\r
+               push(@network, $temp1[0]);\r
+               push(@masklen, ipv4_cidr2msk($temp1[1]));\r
+               push(@colour, ${Header::colourvpn} );\r
+       }\r
+}\r
+if (open(IP, "${General::swroot}/red/local-ipaddress")) {\r
+       my $redip = <IP>;\r
+       close(IP);\r
+       chomp $redip;\r
+       push(@network, $redip);\r
+       push(@masklen, '255.255.255.255' );\r
+       push(@colour, ${Header::colourfw} );\r
+}\r
+\r
+&Header::showhttpheaders();\r
+&Header::openpage($Lang::tr{'connections'}, 1, '');\r
+&Header::openbigbox('100%', 'left');\r
+&Header::openbox('100%', 'left', $Lang::tr{'connection tracking'});\r
+\r
+print <<END\r
+<table width='60%'>\r
+<tr><td align='center'><b>$Lang::tr{'legend'} : </b></td>\r
+     <td align='center' bgcolor='${Header::colourgreen}'><b><font color='#FFFFFF'>$Lang::tr{'lan'}</font></b></td>\r
+     <td align='center' bgcolor='${Header::colourred}'><b><font color='#FFFFFF'>$Lang::tr{'internet'}</font></b></td>\r
+     <td align='center' bgcolor='${Header::colourorange}'><b><font color='#FFFFFF'>$Lang::tr{'dmz'}</font></b></td>\r
+     <td align='center' bgcolor='${Header::colourblue}'><b><font color='#FFFFFF'>$Lang::tr{'wireless'}</font></b></td>\r
+     <td align='center' bgcolor='${Header::colourfw}'><b><font color='#FFFFFF'>IPCop</font></b></td>\r
+     <td align='center' bgcolor='${Header::colourvpn}'><b><font color='#FFFFFF'>$Lang::tr{'vpn'}</font></b></td>\r
+</tr>\r
+</table>\r
+<br />\r
+<table cellpadding='2'>\r
+<tr><td align='center'><b>$Lang::tr{'protocol'}</b></td>\r
+    <td align='center'><b>$Lang::tr{'expires'}<br />($Lang::tr{'seconds'})</b></td>\r
+    <td align='center'><b>$Lang::tr{'connection'}<br />$Lang::tr{'status'}</b></td>\r
+    <td align='center'><b>$Lang::tr{'original'}<br />$Lang::tr{'source ip and port'}</b></td>\r
+    <td align='center'><b>$Lang::tr{'original'}<br />$Lang::tr{'dest ip and port'}</b></td>\r
+    <td align='center'><b>$Lang::tr{'expected'}<br />$Lang::tr{'source ip and port'}</b></td>\r
+    <td align='center'><b>$Lang::tr{'expected'}<br />$Lang::tr{'dest ip and port'}</b></td>\r
+    <td align='center'><b>$Lang::tr{'marked'}</b></td>\r
+    <td align='center'><b>$Lang::tr{'use'}</b></td>\r
+</tr>\r
+END\r
+;\r
+\r
+foreach my $line (@active)\r
+{\r
+       my $protocol='';\r
+       my $expires='';\r
+       my $connstatus='';\r
+       my $orgsip='';\r
+       my $orgdip='';\r
+       my $orgsp='';\r
+       my $orgdp='';\r
+       my $exsip='';\r
+       my $exdip='';\r
+       my $exsp='';\r
+       my $exdp='';\r
+       my $marked='';\r
+       my $use='';\r
+       my $orgsipcolour='';\r
+       my $orgdipcolour='';\r
+       my $exsipcolour='';\r
+       my $exdipcolour='';\r
+\r
+       chomp($line);\r
+       my @temp = split(' ',$line);\r
+       print "<tr bgcolor='${Header::table1colour}'>\n";\r
+       if ($temp[0] eq 'udp') {\r
+               my $offset = 0;\r
+               $marked = '';\r
+               $protocol = $temp[0] . " (" . $temp[1] . ")";\r
+               $expires = $temp[2];\r
+               $connstatus = ' ';\r
+               $orgsip = substr $temp[3], 4;\r
+               $orgdip = substr $temp[4], 4;\r
+               $orgsp = substr $temp[5], 6;\r
+               $orgdp = substr $temp[6], 6;\r
+               if ($temp[7] eq '[UNREPLIED]') {\r
+                        $marked = $temp[7];\r
+                        $offset = 1;\r
+                }\r
+                else {\r
+                        $connstatus = ' ';\r
+                }\r
+\r
+               $exsip = substr $temp[7 + $offset], 4;\r
+               $exdip = substr $temp[8 + $offset], 4;\r
+               $exsp = substr $temp[9 + $offset], 6;\r
+               $exdp = substr $temp[10 + $offset], 6;\r
+               if ($marked eq '[UNREPLIED]') {\r
+                       $use = substr $temp[11 + $offset], 4;\r
+                }\r
+                else {\r
+                        $marked = $temp[11 + $offset];\r
+                       $use = substr $marked, 0, 3;\r
+                       if ($use eq 'use' ) {\r
+                               $marked = '';\r
+                               $use = substr $temp[11 + $offset], 4;\r
+                       }\r
+                       else {\r
+                               $use = substr $temp[12 + $offset], 4;\r
+                       }\r
+               }\r
+       }\r
+       if ($temp[0] eq 'tcp') {\r
+               my $offset = 0;\r
+                $protocol = $temp[0] . " (" . $temp[1] . ")";\r
+                $expires = $temp[2];\r
+                $connstatus = $temp[3];\r
+                $orgsip = substr $temp[4], 4;\r
+                $orgdip = substr $temp[5], 4;\r
+                $orgsp = substr $temp[6], 6;\r
+               $orgdp = substr $temp[7], 6;\r
+               if ($temp[8] eq '[UNREPLIED]') {\r
+                        $marked = $temp[8];\r
+                        $offset = 1;\r
+                       $use = substr $temp[13], 4;\r
+                }\r
+                else {\r
+                        $marked = $temp[12];\r
+                       $use = substr $temp[13], 4;\r
+                }\r
+               \r
+               $exsip = substr $temp[8 + $offset], 4;\r
+                $exdip = substr $temp[9 + $offset], 4;\r
+                $exsp = substr $temp[10 + $offset], 6;\r
+                $exdp = substr $temp[11 + $offset], 6;\r
+        }\r
+       if ($temp[0] eq 'unknown') {\r
+                my $offset = 0;\r
+                $protocol = "??? (" . $temp[1] . ")";\r
+                $protocol = "esp (" . $temp[1] . ")" if ($temp[1] == 50);\r
+                $protocol = " ah (" . $temp[1] . ")" if ($temp[1] == 51);\r
+                $expires = $temp[2];\r
+                $connstatus = ' ';\r
+                $orgsip = substr $temp[3], 4;\r
+                $orgdip = substr $temp[4], 4;\r
+                $orgsp = ' ';\r
+                $orgdp = ' ';\r
+                $exsip = substr $temp[5], 4;\r
+                $exdip = substr $temp[6], 4;\r
+                $exsp = ' ';\r
+                $exdp = ' ';\r
+                $marked = ' ';\r
+                $use = ' ';\r
+        }\r
+       if ($temp[0] eq 'gre') {\r
+                my $offset = 0;\r
+               $protocol = $temp[0] . " (" . $temp[1] . ")";\r
+                $expires = $temp[2];\r
+                $orgsip = substr $temp[5], 4;\r
+                $orgdip = substr $temp[6], 4;\r
+                $orgsp = ' ';\r
+               $orgdp = ' ';\r
+               $exsip = substr $temp[11], 4;\r
+                $exdip = substr $temp[12], 4;\r
+                $exsp = ' ';\r
+                $exdp = ' ';\r
+               $marked = $temp[17];\r
+               $use = $temp[18];\r
+       }\r
+       $orgsipcolour = &ipcolour($orgsip);\r
+       $orgdipcolour = &ipcolour($orgdip);\r
+       $exsipcolour = &ipcolour($exsip);\r
+       $exdipcolour = &ipcolour($exdip);\r
+       print <<END\r
+       <td align='center'>$protocol</td>\r
+       <td align='center'>$expires</td>\r
+       <td align='center'>$connstatus</td>\r
+       <td align='center' bgcolor='$orgsipcolour'><a href='/cgi-bin/ipinfo.cgi?ip=$orgsip'><font color='#FFFFFF'>$orgsip</font></a><font color='#FFFFFF'>:$orgsp</font></td>\r
+       <td align='center' bgcolor='$orgdipcolour'><a href='/cgi-bin/ipinfo.cgi?ip=$orgdip'><font color='#FFFFFF'>$orgdip</font></a><font color='#FFFFFF'>:$orgdp</font></td>\r
+       <td align='center' bgcolor='$exsipcolour'><a href='/cgi-bin/ipinfo.cgi?ip=$exsip'><font color='#FFFFFF'>$exsip</font></a><font color='#FFFFFF'>:$exsp</font></td>\r
+       <td align='center' bgcolor='$exdipcolour'><a href='/cgi-bin/ipinfo.cgi?ip=$exdip'><font color='#FFFFFF'>$exdip</font></a><font color='#FFFFFF'>:$exdp</font></td>\r
+       <td align='center'>$marked</td><td align='center'>$use</td>\r
+       </tr>\r
+END\r
+       ;\r
+}\r
+print "</table>\n";\r
+\r
+&Header::closebox();\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+sub ipcolour($) {\r
+       my $id = 0;\r
+       my $line;\r
+       my $colour = ${Header::colourred};\r
+       my ($ip) = $_[0];\r
+       my $found = 0;\r
+       foreach $line (@network)\r
+       {\r
+               if (!$found && ipv4_in_network( $network[$id] , $masklen[$id], $ip) ) {\r
+                       $found = 1;\r
+                       $colour = $colour[$id];\r
+               }\r
+               $id++;\r
+       }\r
+       return $colour\r
+}\r
diff --git a/html/cgi-bin/credits.cgi b/html/cgi-bin/credits.cgi
new file mode 100644 (file)
index 0000000..3c62306
--- /dev/null
@@ -0,0 +1,371 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: credits.cgi,v 1.11.2.30 2006/01/08 13:33:36 eoberlander Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+&Header::showhttpheaders();\r
+\r
+&Header::openpage($Lang::tr{'credits'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'center');\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'credits'});\r
+\r
+print <<END\r
+<br /><center><b>Visit us on <a href='http://www.ipcop.org/'>http://www.ipcop.org/</a></b></center>\r
+\r
+<p><b>Main Credits</b><br />\r
+Project Member - Mark Wormgoor\r
+(<a href='mailto:mark\@wormgoor.com'>mark\@wormgoor.com</a>)<br />\r
+Project Member &amp; Configuration backup/restore - Eric S. Johansson\r
+(<a href='mailto:esj\@harvee.billerica.ma.us'>esj\@harvee.billerica.ma.us</a>)<br />\r
+Project Member - Jack Beglinger\r
+(<a href='mailto:jackb_guppy\@yahoo.com'>jackb_guppy\@yahoo.com</a>)<br />\r
+Developer - Darren Critchley\r
+(<a href='mailto:darrenc\@telus.net'>darrenc\@telus.net</a>)<br />\r
+Developer - Robert Kerr\r
+(<a href='mailto:LittleThor\@xsw.terminator.net'>LittleThor\@xsw.terminator.net</a>)<br />\r
+Developer - Alan Hourihane\r
+(<a href='mailto:alanh\@fairlite.demon.co.uk'>alanh\@fairlite.demon.co.uk</a>)<br />\r
+ADSL Developer - Gilles Espinasse\r
+(<a href='mailto:g.esp.ipcop\@free.fr'>g.esp.ipcop\@free.fr</a>)<br />\r
+Perl Developer - Franck Bourdonnec\r
+(<a href='mailto:fbourdonnec\@chez.com'>fbourdonnec\@chez.com</a>)<br />\r
+Testing - Dave Roberts\r
+(<a href='mailto:dave\@daver.demon.co.uk'>dave\@daver.demon.co.uk</a>)<br />\r
+Website Design + Graphics - Seth Bareiss\r
+(<a href='mailto:seth\@fureai-ch.ne.jp'>seth\@fureai-ch.ne.jp</a>)<br />\r
+Documentation - Harry Goldschmitt\r
+(<a href='mailto:harry\@hgac.com'>harry\@hgac.com</a>)<br />\r
+Red IP Aliasing - Steve Bootes\r
+(<a href='mailto:Steve\@computingdynamics.co.uk'>Steve\@computingdynamics.co.uk</a>)<br />\r
+Static DHCP Addresses - Graham Smith\r
+(<a href='mailto:grhm\@grhm.co.uk'>grhm\@grhm.co.uk</a>)<br />\r
+Squid graphs - Robert Wood\r
+(<a href='rob\@empathymp3.co.uk'>rob\@empathymp3.co.uk</a>)<br />\r
+Time Synchronization - Eric Oberlander\r
+(<a href='mailto:eric\@oberlander.co.uk'>eric\@oberlander.co.uk</a>)<br />\r
+Backup - Tim Butterfield\r
+(<a href='mailto:timbutterfield\@mindspring.com'>timbutterfield\@mindspring.com</a>)<br />\r
+DOV Support and Improved Dual ISDN Support - Traverse Technologies\r
+(<a href='http://www.traverse.com.au/'>http://www.traverse.com.au/</a>)<br />\r
+Traffic Shaping - David Kilpatrick\r
+(<a href='mailto:dave\@thunder.com.au'>dave\@thunder.com.au</a>)<br />\r
+Improved VPN Documentation - Christiaan Theron\r
+(<a href='mailto:christiaan.theron\@virgin.net'>christiaan.theron\@virgin.net</a>)<br />\r
+</p>\r
+\r
+<p><b>Translations</b><br />\r
+Rebecca Ward - Translation Coordinator\r
+(<a href='mailto:rebeccaaward\@cox.net'>rebeccaaward\@cox.net</a>)<br />\r
+Marco van Beek - Website Translation Database Developer\r
+(<a href='mailto:mvanbeek\@supporting-role.co.uk'>mvanbeek\@supporting-role.co.uk</a>)<br />\r
+Brazilian Portuguese:<br />\r
+&nbsp; Edson-Empresa\r
+(<a href='mailto:soma2\@somainformatica.com.br'>soma2\@somainformatica.com.br</a>)<br />\r
+&nbsp; Claudio Corr&ecirc;a Porto\r
+(<a href='mailto:claudio\@tsasp.com.br'>claudio\@tsasp.com.br</a>)<br />\r
+&nbsp; Adilson Oliveira\r
+(<a href='mailto:adilson\@linuxembarcado.com.br'>adilson\@linuxembarcado.com.br</a>)<br />\r
+&nbsp; Mauricio Andrade\r
+(<a href='mailto:mandrade\@mma.com.br'>mandrade\@mma.com.br</a>)<br />\r
+&nbsp; Wladimir Nunes\r
+(<a href='mailto:wnunes\@treesystems.com.br'>wnunes\@treesystems.com.br</a>)<br />\r
+Chinese (Simplified):<br />\r
+&nbsp; Vince Chu\r
+(<a href='mailto:chuhei\@beunion.net'>chuhei\@beunion.net</a>)<br />\r
+&nbsp; Yuan-Chen Cheng\r
+(<a href='mailto:ycheng\@wiscore.com'>ycheng\@wiscore.com</a>)<br />\r
+&nbsp; Sohoguard\r
+(<a href='mailto:sohoguard\@hotmail.com'>sohoguard\@hotmail.com</a>)<br />\r
+Chinese (Traditional):<br />\r
+&nbsp; Ronald Ng\r
+(<a href='mailto:mwpmo\@hotmail.com'>mwpmo\@hotmail.com</a>)<br />\r
+Czech:<br />\r
+&nbsp; Petr Dvoracek\r
+(<a href='mailto:mandrake\@tiscali.cz'>mandrake\@tiscali.cz</a>)<br />\r
+&nbsp; Jakub Moc\r
+(<a href='mailto:Jakub.Moc\@seznam.cz'>Jakub.Moc\@seznam.cz</a>)<br />\r
+Danish:<br />\r
+&nbsp; Michael Rasmussen\r
+(<a href='mailto:mir\@datanom.net'>mir\@datanom.net</a>)<br />\r
+Dutch:<br />\r
+&nbsp; Gerard Zwart\r
+(<a href='mailto:zwartg\@home.nl'>zwartg\@home.nl</a>)<br />\r
+&nbsp; Berdt van der Lingen\r
+(<a href='mailto:berdt\@xs4all.nl'>berdt\@xs4all.nl</a>)<br />\r
+&nbsp; Tony Vroon\r
+(<a href='mailto:mrchainsaw\@users.sourceforge.net'>mrchainsaw\@users.sourceforge.net</a>)<br />\r
+&nbsp; Mark Wormgoor<br />\r
+&nbsp; Maikel Punie\r
+(<a href='mailto:maikel.punie\@gmail.com'>maikel.punie\@gmail.com</a>)<br />\r
+English:<br />\r
+&nbsp; Jack Beglinger\r
+(<a href='mailto:jackb_guppy\@yahoo.com'>jackb_guppy\@yahoo.com</a>)<br />\r
+&nbsp; James Brice\r
+(<a href='mailto:jbrice\@jamesbrice.com'>jbrice\@jamesbrice.com</a><br />\r
+&nbsp; Tim Butterfield\r
+(<a href='mailto:timbutterfield\@mindspring.com'>timbutterfield\@mindspring.com</a>)<br />\r
+&nbsp; Chris Clancey\r
+(<a href='mailto:chrisjc\@amoose.com'>chrisjc\@amoose.com</a>)<br />\r
+&nbsp; Harry Goldschmitt\r
+(<a href='mailto:harry\@hgac.com'>harry\@hgac.com</a>)<br />\r
+&nbsp; John Kastner\r
+(<a href='mailto:john\@kastner.us'>john\@kastner.us</a>)<br />\r
+&nbsp; Eric Oberlander\r
+(<a href='mailto:eric\@oberlander.co.uk'>eric\@oberlander.co.uk</a>)<br />\r
+&nbsp; Stephen Pielschmidt\r
+(<a href='mailto:stephen.pielschmidt\@sfp.com.au'>stephen.pielschmidt\@sfp.com.au</a>)<br />\r
+&nbsp; Peter Walker\r
+(<a href='mailto:peter.walker\@stockfast.co.uk'>peter.walker\@stockfast.co.uk</a>)<br />\r
+Finnish:<br />\r
+&nbsp; Kai Käpölä\r
+(<a href='mailto:kai\@kapola.fi'>kai\@kapola.fi</a>)<br />\r
+French:<br />\r
+&nbsp; Bertrand Sarthre\r
+(<a href='mailto:zetrebu\@softhome.net'>zetrebu\@softhome.net</a>)<br />\r
+&nbsp; Michel Janssens\r
+(<a href='mailto:micj\@ixus.net'>micj\@ixus.net</a>)<br />\r
+&nbsp; Erwann Simon\r
+(<a href='mailto:esn\@infobi.com'>esn\@infobi.com</a>) (<a href='mailto:wann\@ixus.net'>wann\@ixus.net</a>)<br />\r
+&nbsp; Patrick Bernaud\r
+(<a href='mailto:patrickbernaud\@users.sourceforge.net'>patrickbernaud\@users.sourceforge.net</a>)<br />\r
+&nbsp; Marc Faid\'herbe\r
+(<a href='mailto:marc\@decad.fr'>marc\@decad.fr</a>)<br />\r
+&nbsp; Eric Legigan\r
+(<a href='mailto:eric.legigan\@wanadoo.fr'>eric.legigan\@wanadoo.fr</a>)<br />\r
+&nbsp; Eric Berthomier\r
+(<a href='mailto:ebr\@infobi.com'>ebr\@infobi.com</a>)<br />\r
+&nbsp; Stéphane Le Bourdon\r
+(<a href='mailto:stephane.lebourdon\@free.fr'>stephane.lebourdon\@free.fr</a>)<br />\r
+&nbsp; Stéphane Thirion\r
+(<a href='mailto:sthirion\@activlan.com'>sthirion\@activlan.com</a>)<br />\r
+&nbsp; Jan M. Dziewulski\r
+(<a href='mailto:jan\@dziewulski.com'>jan\@dziewulski.com</a>)<br />\r
+&nbsp;\r
+(<a href='mailto:spoutnik\@inbox.lv'>spoutnik\@inbox.lv</a>)<br />\r
+&nbsp; Eric\r
+(<a href='mailto:darriak\@users.sourceforge.net'>darriak\@users.sourceforge.net</a>)<br />\r
+&nbsp; Eric Boniface\r
+(<a href='mailto:ericboniface\@chez.com'>ericboniface\@chez.com</a>)<br />\r
+&nbsp; Franck Bourdonnec\r
+(<a href='mailto:fbourdonnec\@chez.com'>fbourdonnec\@chez.com</a>)<br />\r
+German:<br />\r
+&nbsp; Dirk Loss\r
+(<a href='mailto:dloss\@uni-muenster.de'>dloss\@uni-muenster.de</a>)<br />\r
+&nbsp; Ludwig Steininger\r
+(<a href='mailto:antispam1eastcomp\@gmx.de'>antispam1eastcomp\@gmx.de</a>)<br />\r
+&nbsp; Helmet\r
+(<a href='mailto:list\@metatalk.de'>list\@metatalk.de</a>)<br />\r
+&nbsp; Markus\r
+(<a href='mailto:mstl\@gmx.de'>mstl\@gmx.de</a>)<br />\r
+&nbsp; Michael Knappe\r
+(<a href='mailto:michael.knappe\@chello.at'>michael.knappe\@chello.at</a>)<br />\r
+&nbsp; Michael Linke\r
+(<a href='mailto:linke\@netmedia.de'>linke\@netmedia.de</a>)<br />\r
+&nbsp; Richard Hartmann\r
+(<a href='mailto:linux\@smhsoftware.de'>linux\@smhsoftware.de</a>)<br />\r
+&nbsp; Ufuk Altinkaynak\r
+(<a href='mailto:ufuk.altinkaynak\@wibo-werk.com'>ufuk.altinkaynak\@wibo-werk.com</a>)<br />\r
+&nbsp; Gerhard Abrahams\r
+(<a href='mailto:g.abrahams\@gmx.de'>g.abrahams\@gmx.de</a>)<br />\r
+&nbsp; Benjamin Kohberg\r
+(<a href='mailto:b.kohberg\@pci-software.de'>b.kohberg\@pci-software.de</a>)<br />\r
+&nbsp; Samuel Wiktor\r
+(<a href='mailto:samuel.wiktor\@stud.tu-ilmenau.de'>samuel.wiktor\@stud.tu-ilmenau.de</a>)<br />\r
+Greek:<br />\r
+&nbsp; Spyros Tsiolis\r
+(<a href='mailto:info\@abaxb2b.com'>info\@abaxb2b.com</a>)<br />\r
+&nbsp; A. Papageorgiou\r
+(<a href='mailto:apap\@freemail.gr'>apap\@freemail.gr</a>)<br />\r
+&nbsp; G. Xrysostomou\r
+(<a href='mailto:gxry\@freemail.gr'>gxry\@freemail.gr</a>)<br />\r
+Hungarian:<br />\r
+&nbsp; Ádám Makovecz\r
+(<a href='mailto:adam\@makovecz.hu'>adam\@makovecz.hu</a>)<br />\r
+&nbsp; Ferenc Mányi-Szabó\r
+(<a href='mailto:asd1234\@freemail.hu'>asd1234\@freemail.hu</a>)<br />\r
+Italian:<br />\r
+&nbsp; Fabio Gava\r
+(<a href='mailto:fabio.gava\@bloomtech.it'>fabio.gava\@bloomtech.it</a>)<br />\r
+&nbsp; Antonio Stano\r
+(<a href='mailto:admin\@securityinfos.com'>admin\@securityinfos.com</a>)<br />\r
+&nbsp; Marco Spreafico\r
+(<a href='mailto:marco\@yetopen.it'>marco\@yetopen.it</a>)<br />\r
+Latino Spanish:<br />\r
+&nbsp; Fernando Díaz\r
+(<a href='mailto:fernando.diaz\@adinet.com.uy'>fernando.diaz\@adinet.com.uy</a>)<br />\r
+Lithuanian:<br />\r
+&nbsp; Aurimas Fišeras\r
+(<a href='mailto:aurimas\@gmail.com'>aurimas\@gmail.com</a>)<br />\r
+&nbsp; Rodion Kotelnikov\r
+(<a href='mailto:r0dik\@takas.lt'>r0dik\@takas.lt</a>)<br />\r
+Norwegian:<br />\r
+&nbsp; Morten Grendal\r
+(<a href='mailto:morten\@grendal.no'>morten\@grendal.no</a>)<br />\r
+&nbsp; Alexander Dawson\r
+(<a href='mailto:daftkid\@users.sourceforge.net'>daftkid\@users.sourceforge.net</a>)<br />\r
+&nbsp; Mounir S. Chermiti\r
+(<a href='mailto:mounir\@solidonline.org'>mounir\@solidonline.org</a>)<br />\r
+&nbsp; Runar Skraastad\r
+(<a href='mailto:rus-\@home.no'>rus-\@home.no</a>)<br />\r
+&nbsp; Alf-Ivar Holm\r
+(<a href='mailto:alfh\@ifi.uio.no'>alfh\@ifi.uio.no</a>)<br />\r
+Persian (Farsi):<br />\r
+&nbsp; Ali Tajik\r
+(<a href='mailto:trosec113\@gmail.com'>trosec113\@gmail.com</a>)<br />\r
+&nbsp; A T Khalilian<br />\r
+Polish:<br />\r
+&nbsp; Jack Korzeniowski\r
+(<a href='mailto:jk2002\@mail.com'>jk2002\@mail.com</a>)<br />\r
+&nbsp; Piotr\r
+(<a href='mailto:piotr\@esse.pl'>piotr\@esse.pl</a>)<br />\r
+&nbsp; Andrzej Zolnierowicz\r
+(<a href='mailto:zolnierowicz\@users.sourceforge.net'>zolnierowicz\@users.sourceforge.net</a>)<br />\r
+&nbsp; Remi Schleicher\r
+(remi(dot)schleicher(at)phreaker(dot)net)<br />\r
+Portuguese:<br />\r
+&nbsp; Luis Santos\r
+(<a href='mailto:luis\@ciclo2000.com'>luis\@ciclo2000.com</a>)<br />\r
+&nbsp; Renato Kenji Kano\r
+(<a href='mailto:renato_kenji\@users.sourceforge.net'>renato_kenji\@users.sourceforge.net</a>)<br />\r
+&nbsp; Mark Peter\r
+(<a href='mailto:mark\@markpeter.com'>mark\@markpeter.com</a>)<br />\r
+&nbsp; Wladimir Nunes\r
+(<a href='mailto:wnunes\@users.sourceforge.net'>wnunes\@users.sourceforge.net</a>)<br />\r
+&nbsp; Daniela Cattarossi\r
+(<a href='mailto:daniela\@netpandora.com'>daniela\@netpandora.com</a>)<br />\r
+Romanian:<br />\r
+&nbsp; Viorel Melinte\r
+(<a href='mailto:viorel.melinte\@hidro.ro'>viorel.melinte\@hidro.ro</a>)<br />\r
+Russian/Ukranian:<br />\r
+&nbsp; Vladimir Grichina\r
+(<a href='mailto:vgua\@users.sourceforge.net'>vgua\@users.sourceforge.net</a>)<br />\r
+&nbsp; Vitaly Tarasov\r
+(<a href='mailto:vtarasov\@knoa.com'>vtarasov\@knoa.com</a>)<br />\r
+&nbsp; Rodion Kotelnikov\r
+(<a href='mailto:r0dik\@takas.lt'>r0dik\@takas.lt</a>)<br />\r
+Slovak:<br />\r
+&nbsp; Miloš Mráz\r
+(<a href='mailto:Milos.Mraz\@svum.sk'>Milos.Mraz\@svum.sk</a>)<br />\r
+&nbsp; Drlik Zbynek\r
+(<a href='mailto:denix\@host.sk'>denix\@host.sk</a>)<br />\r
+Slovenian:<br />\r
+&nbsp; Miha Martinec\r
+(<a href='mailto:miha\@martinec.si'>miha\@martinec.si</a>)<br />\r
+&nbsp; Grega Varl\r
+(<a href='mailto:gregav\@finea-holding.si'>gregav\@finea-holding.si</a>)<br />\r
+Somali:<br />\r
+&nbsp; Arnt Karlsen\r
+(<a href='mailto:arnt\@c2i.net'>arnt\@c2i.net</a>)<br />\r
+&nbsp; Mohamed Musa Ali\r
+(<a href='mailto:alimuse\@hotmail.com'>alimuse\@hotmail.com</a>)<br />\r
+&nbsp; Michael Spann\r
+(<a href='mailto:dr-ms\@lycos.de'>dr-ms\@lycos.de</a>)<br />\r
+Spanish:<br />\r
+&nbsp; Curtis Anderson\r
+(<a href='mailto:curtis_anderson\@curtisanderson.com'>curtis_anderson\@curtisanderson.com</a>)<br />\r
+&nbsp; Diego Lombardia\r
+(<a href='mailto:Diego.Lombardia\@IT-Plus.com.ar'>Diego.Lombardia\@IT-Plus.com.ar</a>)<br />\r
+&nbsp; Mark Peter\r
+(<a href='mailto:mark\@markpeter.com'>mark\@markpeter.com</a>)<br />\r
+&nbsp; QuiQue Soriano\r
+(<a href='mailto:jqsoriano\@hotmail.com'>jqsoriano\@hotmail.com</a>)<br />\r
+&nbsp; David Cabrera Lozano\r
+(<a href='mailto:silews\@users.sourceforge.net'>silews\@users.sourceforge.net</a>)<br />\r
+&nbsp; Jose Sanchez\r
+(<a href='mailto:jsanchez\@cyberdude.com'>jsanchez\@cyberdude.com</a>)<br />\r
+&nbsp; Santiago Cassina\r
+(<a href='mailto:scap2000\@yahoo.com'>scap2000\@yahoo.com</a>)<br />\r
+&nbsp; Marcelo Zunino\r
+(<a href='mailto:cezuni\@adinet.com.uy'>cezuni\@adinet.com.uy</a>)<br />\r
+&nbsp; Alfredo Matignon\r
+(<a href='mailto:amatignon\@softhome.net'>amatignon\@softhome.net</a>)<br />\r
+&nbsp; Juan Janczuk\r
+(<a href='mailto:jjanzcuk\@msn.com'>jjanzcuk\@msn.com</a>)<br />\r
+Swedish:<br />\r
+&nbsp; Anders Sahlman\r
+(<a href='mailto:anders.sahlman\@dataunit.se'>anders.sahlman\@dataunit.se</a>)<br />\r
+&nbsp; Christer Jonson\r
+(<a href='mailto:christer.jonson\@swipnet.se'>christer.jonson\@swipnet.se</a>)<br />\r
+Thai:<br />\r
+&nbsp; Touchie\r
+(<a href='mailto:pongsathorns\@se-ed.net'>pongsathorns\@se-ed.net</a>)<br />\r
+Turkish:<br />\r
+&nbsp; Ismail Murat Dilek\r
+(<a href='mailto:olive\@zoom.co.uk'>olive\@zoom.co.uk</a>)<br />\r
+&nbsp; Emre Sumengen\r
+<br />\r
+Vietnamese:<br />\r
+&nbsp; Le Dinh Long\r
+(<a href='mailto:longld\@yahoo.com'>longld\@yahoo.com</a>)<br />\r
+</p>\r
+\r
+<p><b>Smoothwall</b><br />\r
+IPCop is partially based on the <a href='http://www.smoothwall.org'>Smoothwall</a> GPL\r
+version, v0.9.9.  We are grateful to them for both inspiring this product and\r
+giving us the codebase to work with.  Smoothwall was developed by:\r
+</p>\r
+<p>\r
+Founder and Project Manager - Richard Morrell\r
+(<a href='mailto:richard\@smoothwall.org'>richard\@smoothwall.org</a>)<br />\r
+Development Team Leader and Author - Lawrence Manning\r
+(<a href='mailto:lawrence\@smoothwall.org'>lawrence\@smoothwall.org</a>)<br />\r
+Dan Goscomb - Architecture team leader, Core Developer &amp; Perl Guru\r
+(<a href='mailto:dang\@smoothwall.org'>dang\@smoothwall.org</a>)<br />\r
+Paul Tansom - Worldwide Community Liason\r
+(<a href='mailto:paul\@smoothwall.org'>paul\@smoothwall.org</a>)<br />\r
+William Anderson - Worldwide Online Team Manager &amp; Webmanager\r
+(<a href='mailto:neuro\@smoothwall.org'>neuro\@smoothwall.org</a>)<br />\r
+Rebecca Ward - Worldwide Online Support Manager\r
+(<a href='mailto:becca\@smoothwall.org'>becca\@smoothwall.org</a>)<br />\r
+Bill Ward - US Support &amp; Evangelist\r
+(<a href='mailto:bill\@smoothwall.org'>bill\@smoothwall.org</a>)<br />\r
+Chris Ross - Chief Wizard\r
+(<a href='mailto:chris\@smoothwall.org'>chris\@smoothwall.org</a>)<br />\r
+Mark Wormgoor - ISDN Lead Developer\r
+(<a href='mailto:mark\@wormgoor.com'>mark\@wormgoor.com</a>)<br />\r
+Eric Johansson - US Team Leader\r
+(<a href='mailto:esj\@harvee.billerica.ma.us'>esj\@harvee.billerica.ma.us</a>)<br />\r
+Dan Cuthbert - Lead Security Manager\r
+(<a href='mailto:security\@smoothwall.org'>security\@smoothwall.org</a>)<br />\r
+Pierre-Yves Paulus - Belgian Team Leader and PPPoE guru\r
+(<a href='mailto:pauluspy\@easynet.be'>pauluspy\@easynet.be</a>)<br />\r
+John Payne - DNS &amp; Tech Contibutor\r
+(<a href='mailto:john\@sackheads.org'>john\@sackheads.org</a>)<br />\r
+Adam Wilkinson - VPN Assistance\r
+(<a href='mailto:aaw10\@hslmc.cam.ac.uk'>aaw10\@hslmc.cam.ac.uk</a>)<br />\r
+Jez Tucker - Testing\r
+(<a href='mailto:jez\@rib-it.org'>jez\@rib-it.org</a>)<br />\r
+Pete Guyan - Tech testing &amp; Input\r
+(<a href='mailto:pete\@snowplains.org'>pete\@snowplains.org</a>)<br />\r
+Nigel Fenton - Development and Testing\r
+(<a href='mailto:nigel.fenton\@btinternet.com'>nigel.fenton\@btinternet.com</a>)<br />\r
+Bob Dunlop - The Guru's Guru &amp; Code Magician\r
+(<a href='mailto:rjd\@xyzzy.clara.co.uk'>rjd\@xyzzy.clara.co.uk</a>)<br />\r
+</p>\r
+<br />\r
+END\r
+;\r
+\r
+&Header::closebox();\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
diff --git a/html/cgi-bin/ddns.cgi b/html/cgi-bin/ddns.cgi
new file mode 100644 (file)
index 0000000..6785a89
--- /dev/null
@@ -0,0 +1,537 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: ddns.cgi,v 1.7.2.41 2006/02/07 01:29:47 franck78 Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::table2colour}, ${Header::colouryellow} );\r
+undef (@dummy);\r
+\r
+my $ddnsprefix = $Lang::tr{'ddns noip prefix'};\r
+$ddnsprefix =~ s/%/$General::noipprefix/;\r
+\r
+# Files used\r
+my $setting = "${General::swroot}/ddns/settings";\r
+our $datafile = "${General::swroot}/ddns/config";\r
+\r
+my %settings=();\r
+#Settings1\r
+$settings{'BEHINDROUTER'} = 'RED_IP';\r
+$settings{'MINIMIZEUPDATES'} = '';\r
+\r
+#Settings2 for editing the multi-line list\r
+#Must not be saved !\r
+$settings{'HOSTNAME'} = '';\r
+$settings{'DOMAIN'} = '';\r
+$settings{'LOGIN'} = '';\r
+$settings{'PASSWORD'} = '';\r
+$settings{'PASSWORD2'} = '';\r
+$settings{'ENABLED'} = '';\r
+$settings{'PROXY'} = '';\r
+$settings{'WILDCARDS'} = '';\r
+$settings{'SERVICE'} = '';\r
+\r
+my @nosaved=('HOSTNAME','DOMAIN','LOGIN','PASSWORD','PASSWORD2',\r
+            'ENABLED','PROXY','WILDCARDS','SERVICE');  # List here ALL setting2 fields. Mandatory\r
+    \r
+$settings{'ACTION'} = '';              # add/edit/remove\r
+$settings{'KEY1'} = '';                        # point record for ACTION\r
+$settings{'KEY2'} = '';                        # point record for ACTION\r
+\r
+my $errormessage = '';\r
+my $warnmessage = '';\r
+\r
+&Header::showhttpheaders();\r
+\r
+#Get GUI values\r
+&Header::getcgihash(\%settings);\r
+\r
+# Load multiline data\r
+our @current = ();\r
+if (open(FILE, "$datafile")) {\r
+    @current = <FILE>;\r
+    close (FILE);\r
+}\r
+\r
+#\r
+# Check Settings1 first because they are needed before working on @current\r
+#\r
+if ($settings{'ACTION'} eq $Lang::tr{'save'}) {\r
+    # No user input to check.  !\r
+    #unless ($errormessage) {                                  # Everything is ok, save settings\r
+       $settings{'BEHINDROUTERWAITLOOP'} = '-1';               # init  & will update on next setddns.pl call\r
+       map (delete ($settings{$_}) ,(@nosaved,'ACTION','KEY1','KEY2'));# Must never be saved \r
+       &General::writehash($setting, \%settings);              # Save good settings\r
+       $settings{'ACTION'} = $Lang::tr{'save'};                # Recreate  'ACTION'\r
+       map ($settings{$_}= '',(@nosaved,'KEY1','KEY2'));       # and reinit var to empty\r
+    #}\r
+} else {\r
+    &General::readhash($setting, \%settings);                  # Get saved settings and reset to good if needed\r
+}\r
+\r
+#\r
+# Now manipulate the multi-line list with Settings2\r
+#\r
+# Toggle enable/disable field.  Field is in second position\r
+if ($settings{'ACTION'} eq $Lang::tr{'toggle enable disable'}) {\r
+    #move out new line\r
+    chomp(@current[$settings{'KEY1'}]);\r
+    my @temp = split(/\,/,@current[$settings{'KEY1'}]);\r
+    my $K2=$settings{'KEY2'};\r
+    $temp[ $K2 ] = ( $temp[ $K2 ] eq 'on') ? '' : 'on';                # Toggle the field\r
+    @current[$settings{'KEY1'}] = join (',',@temp)."\n";\r
+    $settings{'KEY1'} = '';                                    # End edit mode\r
+    &General::log($Lang::tr{'ddns hostname modified'});\r
+\r
+    # Write changes to config file.\r
+    &WriteDataFile;                                            # sort newly added/modified entry\r
+}\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'add'}) {\r
+    # Validate inputs\r
+\r
+    unless ($settings{'LOGIN'} ne '') {\r
+       $errormessage = $Lang::tr{'username not set'};\r
+    }\r
+\r
+    # list box returns 'service optional synonyms'\r
+    # keep only first name\r
+    $settings{'SERVICE'} =~ s/ .*$//;\r
+    \r
+    # for freedns.afraid.org, only 'connect string' is mandatory\r
+    if ($settings{'SERVICE'} ne 'freedns.afraid.org') {\r
+       unless ($settings{'SERVICE'} eq 'regfish.com' || $settings{'PASSWORD'} ne '') {\r
+           $errormessage = $Lang::tr{'password not set'};\r
+       }\r
+       unless ($settings{'PASSWORD'} eq $settings{'PASSWORD2'}) {\r
+           $errormessage = $Lang::tr{'passwords do not match'};\r
+       }\r
+       \r
+       # Permit an empty HOSTNAME for the nsupdate, regfish, dyndns, enom, ovh, zoneedit, no-ip, easydns\r
+        unless ($settings{'SERVICE'} eq 'zoneedit.com' || $settings{'SERVICE'} eq 'nsupdate' || \r
+               $settings{'SERVICE'} eq 'dyndns-custom'|| $settings{'SERVICE'} eq 'regfish.com' || \r
+               $settings{'SERVICE'} eq 'enom.com' || $settings{'SERVICE'} eq 'dnspark.com' ||\r
+               $settings{'SERVICE'} eq 'ovh.com' || $settings{'HOSTNAME'} ne '' ||\r
+               $settings{'SERVICE'} eq 'no-ip.com' || $settings{'SERVICE'} eq 'easydns.com' ) {\r
+           $errormessage = $Lang::tr{'hostname not set'};\r
+       }\r
+       unless ($settings{'HOSTNAME'} eq '' || $settings{'HOSTNAME'} =~ /^[a-zA-Z_0-9-]+$/) {\r
+           $errormessage = $Lang::tr{'invalid hostname'};\r
+       }\r
+       unless ($settings{'DOMAIN'} ne '') {\r
+           $errormessage = $Lang::tr{'domain not set'};\r
+       }\r
+       unless ($settings{'DOMAIN'} =~ /^[a-zA-Z_0-9.-]+$/) { \r
+           $errormessage = $Lang::tr{'invalid domain name'};\r
+       }\r
+       unless ($settings{'DOMAIN'} =~ /[.]/) {\r
+           $errormessage = $Lang::tr{'invalid domain name'};\r
+       }\r
+    }\r
+\r
+    # recheck service wich don't need too much fields\r
+    if ($settings{'SERVICE'} eq 'cjb.net') {\r
+       $errormessage = ''; # clear previous error\r
+       unless ($settings{'LOGIN'} ne '') {\r
+           $errormessage = $Lang::tr{'username not set'};\r
+       }\r
+       unless ($settings{'PASSWORD'} ne '') {\r
+           $errormessage = $Lang::tr{'password not set'};\r
+       }\r
+       unless ($settings{'PASSWORD'} eq $settings{'PASSWORD2'}) {\r
+           $errormessage = $Lang::tr{'passwords do not match'};\r
+       }\r
+    }\r
+\r
+    unless ($errormessage) {\r
+       if ($settings{'KEY1'} eq '') { #add or edit ?\r
+           unshift (@current, "$settings{'SERVICE'},$settings{'HOSTNAME'},$settings{'DOMAIN'},$settings{'PROXY'},$settings{'WILDCARDS'},$settings{'LOGIN'},$settings{'PASSWORD'},$settings{'ENABLED'}\n");\r
+           &General::log($Lang::tr{'ddns hostname added'});\r
+       } else {\r
+           @current[$settings{'KEY1'}] = "$settings{'SERVICE'},$settings{'HOSTNAME'},$settings{'DOMAIN'},$settings{'PROXY'},$settings{'WILDCARDS'},$settings{'LOGIN'},$settings{'PASSWORD'},$settings{'ENABLED'}\n";\r
+           $settings{'KEY1'} = '';       # End edit mode\r
+           &General::log($Lang::tr{'ddns hostname modified'});\r
+       }\r
+       map ($settings{$_}='' ,@nosaved);       # Clear fields\r
+        # Write changes to config file.\r
+       &WriteDataFile;                         # sort newly added/modified entry\r
+    }\r
+}\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'edit'}) {\r
+    #move out new line\r
+    my $line = @current[$settings{'KEY1'}];    # KEY1 is the index in current\r
+    chomp($line);\r
+    my @temp = split(/\,/, $line);\r
+    $settings{'SERVICE'}       = $temp[0];\r
+    $settings{'HOSTNAME'}      = $temp[1];\r
+    $settings{'DOMAIN'}                = $temp[2];\r
+    $settings{'PROXY'}         = $temp[3];\r
+    $settings{'WILDCARDS'}     = $temp[4];\r
+    $settings{'LOGIN'}         = $temp[5];\r
+    $settings{'PASSWORD'} = $settings{'PASSWORD2'} = $temp[6];\r
+    $settings{'ENABLED'}       = $temp[7];\r
+}\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {\r
+    splice (@current,$settings{'KEY1'},1);             # Delete line \r
+    open(FILE, ">$datafile") or die 'ddns datafile error';\r
+    print FILE @current;\r
+    close(FILE);\r
+    $settings{'KEY1'} = '';                            # End remove mode\r
+    &General::log($Lang::tr{'ddns hostname removed'});\r
+    # Write changes to config file.\r
+    &WriteDataFile;\r
+}\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'instant update'}) {\r
+    system('/usr/local/bin/setddns.pl', '-f');\r
+}\r
+\r
+\r
+if ($settings{'ACTION'} eq '')\r
+{\r
+    $settings{'SERVICE'} = 'dyndns.org';\r
+    $settings{'ENABLED'} = 'on';\r
+}\r
+\r
+&Header::openpage($Lang::tr{'dynamic dns'}, 1, '');\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+my %checked =();     # Checkbox manipulations\r
+$checked{'SERVICE'}{'cjb.net'} = '';\r
+$checked{'SERVICE'}{'dhs.org'} = '';\r
+$checked{'SERVICE'}{'dnspark.com'} = '';\r
+$checked{'SERVICE'}{'dtdns.com'} = '';\r
+$checked{'SERVICE'}{'dyndns.org'} = '';\r
+$checked{'SERVICE'}{'dyndns-custom'} = '';\r
+$checked{'SERVICE'}{'dyndns-static'} = '';\r
+$checked{'SERVICE'}{'dyns.cx'} = '';\r
+$checked{'SERVICE'}{'dynu.ca'} = '';\r
+$checked{'SERVICE'}{'easydns.com'} = '';\r
+$checked{'SERVICE'}{'enom.com'} = '';\r
+$checked{'SERVICE'}{'freedns.afraid.org'} = '';\r
+$checked{'SERVICE'}{'hn.org'} = '';\r
+$checked{'SERVICE'}{'no-ip.com'} = '';\r
+$checked{'SERVICE'}{'nsupdate'} = '';\r
+$checked{'SERVICE'}{'ovh.com'} = '';\r
+$checked{'SERVICE'}{'regfish.com'} = '';\r
+$checked{'SERVICE'}{'selfhost.de'} = '';\r
+$checked{'SERVICE'}{'tzo.com'} = '';\r
+$checked{'SERVICE'}{'zoneedit.com'} = '';\r
+$checked{'SERVICE'}{$settings{'SERVICE'}} = "selected='selected'";\r
+\r
+$checked{'BEHINDROUTER'}{'RED_IP'} = '';\r
+$checked{'BEHINDROUTER'}{'FETCH_IP'} = '';\r
+$checked{'BEHINDROUTER'}{$settings{'BEHINDROUTER'}} = "checked='checked'";\r
+$checked{'MINIMIZEUPDATES'} = ($settings{'MINIMIZEUPDATES'} eq '' ) ? '' : "checked='checked'";\r
+\r
+$checked{'PROXY'}{'on'} = ($settings{'PROXY'} eq '') ? '' : "checked='checked'";\r
+$checked{'WILDCARDS'}{'on'} = ($settings{'WILDCARDS'} eq '') ? '' : "checked='checked'";\r
+$checked{'ENABLED'}{'on'} = ($settings{'ENABLED'} eq '' ) ? '' : "checked='checked'";\r
+\r
+if ($errormessage) {\r
+    &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+    print "<font class='base'>$errormessage&nbsp;</font>";\r
+    &Header::closebox();\r
+}\r
+\r
+if ($warnmessage) {\r
+    $warnmessage = "<font color=${Header::colourred}><b>$Lang::tr{'capswarning'}</b></font>: $warnmessage";\r
+}\r
+&Header::openbox('100%', 'left', $Lang::tr{'settings'});\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>";\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+        <td class='base'>$Lang::tr{'dyn dns source choice'}</td>\r
+</tr><tr>\r
+    <td class='base'><input type='radio' name='BEHINDROUTER' value='RED_IP' $checked{'BEHINDROUTER'}{'RED_IP'} />\r
+    $Lang::tr{'use ipcop red ip'}</td>\r
+</tr><tr>\r
+    <td class='base'><input type='radio' name='BEHINDROUTER' value='FETCH_IP' $checked{'BEHINDROUTER'}{'FETCH_IP'} />\r
+    $Lang::tr{'fetch ip from'} <img src='/blob.gif' alt='*' /></td>\r
+</tr>\r
+<tr>\r
+    <td class='base'><input type='checkbox' name='MINIMIZEUPDATES' $checked{'MINIMIZEUPDATES'} />\r
+    $Lang::tr{'ddns minimize updates'}</td>\r
+</tr>\r
+</table>\r
+<br /><hr />\r
+END\r
+;\r
+\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td>\r
+    <td width='70%' class='base'>$Lang::tr{'avoid dod'}</td>\r
+    <td width='30%' align='center' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+&Header::closebox();   # end of Settings1\r
+\r
+\r
+my $buttontext = $Lang::tr{'add'};\r
+if ($settings{'KEY1'} ne '') {\r
+    $buttontext = $Lang::tr{'update'};\r
+    &Header::openbox('100%', 'left', $Lang::tr{'edit an existing host'});\r
+} else {\r
+    &Header::openbox('100%', 'left', $Lang::tr{'add a host'});\r
+}\r
+\r
+#Edited line number (KEY1) passed until cleared by 'save' or 'remove'\r
+print <<END\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='KEY1' value='$settings{'KEY1'}' />\r
+<table width='100%'>\r
+<tr>\r
+    <td width='25%' class='base'>$Lang::tr{'service'}:</td>\r
+    <td width='25%'><select size='1' name='SERVICE'>\r
+    <option $checked{'SERVICE'}{'cjb.net'}>cjb.net</option>\r
+    <option $checked{'SERVICE'}{'dhs.org'}>dhs.org</option>\r
+    <option $checked{'SERVICE'}{'dnspark.com'}>dnspark.com</option>\r
+    <option $checked{'SERVICE'}{'dtdns.com'}>dtdns.com</option>\r
+    <option $checked{'SERVICE'}{'dyndns.org'}>dyndns.org</option>\r
+    <option $checked{'SERVICE'}{'dyndns-custom'}>dyndns-custom</option>\r
+    <option $checked{'SERVICE'}{'dyndns-static'}>dyndns-static</option>\r
+    <option $checked{'SERVICE'}{'dyns.cx'}>dyns.cx</option>\r
+    <option $checked{'SERVICE'}{'dynu.ca'}>dynu.ca dyn.ee dynserv.(ca|org|net|com)</option>\r
+    <option $checked{'SERVICE'}{'easydns.com'}>easydns.com</option>\r
+    <option $checked{'SERVICE'}{'enom.com'}>enom.com</option>\r
+    <option $checked{'SERVICE'}{'freedns.afraid.org'}>freedns.afraid.org</option>\r
+    <option $checked{'SERVICE'}{'hn.org'}>hn.org</option>\r
+    <option $checked{'SERVICE'}{'no-ip.com'}>no-ip.com</option>\r
+    <option $checked{'SERVICE'}{'nsupdate'}>nsupdate</option>\r
+    <option $checked{'SERVICE'}{'ovh.com'}>ovh.com</option>\r
+    <option $checked{'SERVICE'}{'regfish.com'}>regfish.com</option>\r
+    <option $checked{'SERVICE'}{'selfhost.de'}>selfhost.de</option>\r
+<!--    <option $checked{'SERVICE'}{'tzo.com'}>tzo.com</option>        comment this service out until a working fix is developed -->\r
+    <option $checked{'SERVICE'}{'zoneedit.com'}>zoneedit.com</option>\r
+    </select></td>\r
+    <td width='20%' class='base'>$Lang::tr{'hostname'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td width='30%'><input type='text' name='HOSTNAME' value='$settings{'HOSTNAME'}' /></td>\r
+</tr><tr>\r
+    <td class='base'>$Lang::tr{'behind a proxy'}</td>\r
+    <td><input type='checkbox' name='PROXY' value='on' $checked{'PROXY'}{'on'} /></td>\r
+    <td class='base'>$Lang::tr{'domain'}:</td>\r
+    <td><input type='text' name='DOMAIN' value='$settings{'DOMAIN'}' /></td>\r
+</tr><tr>\r
+    <td class='base'>$Lang::tr{'enable wildcards'}</td>\r
+    <td><input type='checkbox' name='WILDCARDS' value='on' $checked{'WILDCARDS'}{'on'} /></td>\r
+    <td class='base'>$Lang::tr{'username'}</td>\r
+    <td><input type='text' name='LOGIN' value='$settings{'LOGIN'}' /></td>\r
+</tr><tr>\r
+    <td></td>\r
+    <td></td>\r
+    <td class='base'>$Lang::tr{'password'}</td>\r
+    <td><input type='password' name='PASSWORD' value='$settings{'PASSWORD'}' /></td>\r
+</tr><tr>\r
+    <td class='base'>$Lang::tr{'enabled'}</td>\r
+    <td><input type='checkbox' name='ENABLED' value='on' $checked{'ENABLED'}{'on'} /></td>\r
+    <td class='base'>$Lang::tr{'again'}</td>\r
+    <td><input type='password' name='PASSWORD2' value='$settings{'PASSWORD2'}' /></td>\r
+</tr>\r
+</table>\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td>\r
+    <td width='70%' class='base'>$ddnsprefix</td>\r
+    \r
+    <td width='30%' align='center' class='base'>\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'add'}' />\r
+       <input type='submit' name='SUBMIT' value='$buttontext' />    </td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+#\r
+# Third box shows the list, in columns\r
+#\r
+&Header::openbox('100%', 'left', $Lang::tr{'current hosts'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+    <td width='15%' align='center' class='boldbase'><b>$Lang::tr{'service'}</b></td>\r
+    <td width='25%' align='center' class='boldbase'><b>$Lang::tr{'hostname'}</b></td>\r
+    <td width='30%' align='center' class='boldbase'><b>$Lang::tr{'domain'}</b></td>\r
+    <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'proxy'}</b></td>\r
+    <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'wildcards'}</b></td>\r
+    <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+END\r
+;\r
+my $ip = &General::GetDyndnsRedIP;\r
+my $key = 0;\r
+foreach my $line (@current) {\r
+    chomp($line);                              # remove newline\r
+    my @temp = split(/\,/,$line);\r
+\r
+    if ($temp[0] eq 'no-ip.com') {\r
+       $temp[1] =~ s!$General::noipprefix(.*)!<b>group:</b>$1 !;\r
+    } \r
+\r
+    #Choose icon for checkbox\r
+\r
+    my $gifproxy='';\r
+    my $descproxy='';\r
+    if ($temp[3] eq "on") {\r
+       $gifproxy = 'on.gif';\r
+       $descproxy = $Lang::tr{'click to disable'};\r
+    } else {\r
+       $gifproxy = 'off.gif';\r
+       $descproxy = $Lang::tr{'click to enable'}; \r
+    }\r
+\r
+    my $gifwildcard='';\r
+    my $descwildcard='';\r
+    if ($temp[4] eq "on") {\r
+       $gifwildcard = 'on.gif';\r
+       $descwildcard = $Lang::tr{'click to disable'};\r
+    } else {\r
+       $gifwildcard = 'off.gif';\r
+       $descwildcard = $Lang::tr{'click to enable'}; \r
+    }\r
+\r
+    my $sync = "<font color='blue'>";\r
+    my $gif = '';\r
+    my $gdesc = '';\r
+    if ($temp[7] eq "on") {\r
+       $gif = 'on.gif';\r
+       $gdesc = $Lang::tr{'click to disable'};\r
+        $sync = (&General::DyndnsServiceSync ($ip,$temp[1], $temp[2]) ? "<font color='green'>": "<font color='red'>") ;\r
+    } else {\r
+       $gif = 'off.gif';\r
+       $gdesc = $Lang::tr{'click to enable'};\r
+    }\r
+                               \r
+    #Colorize each line\r
+    if ($settings{'KEY1'} eq $key) {\r
+       print "<tr bgcolor='${Header::colouryellow}'>";\r
+    } elsif ($key % 2) {\r
+       print "<tr bgcolor='${Header::table2colour}'>";\r
+    } else {\r
+       print "<tr bgcolor='${Header::table1colour}'>"; \r
+    }\r
+    \r
+    #if a field is empty, replace it with a '---' to see colorized info!\r
+    $temp[1] = '---' if (!$temp[1]);\r
+    $temp[2] = '---' if (!$temp[2]);\r
+\r
+    print <<END\r
+<td align='center'><a href='http://$temp[0]'>$temp[0]</a></td>\r
+<td align='center'>$sync$temp[1]</td>\r
+<td align='center'>$sync$temp[2]</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gifproxy' alt='$descproxy' title='$descproxy' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+<input type='hidden' name='KEY2' value='3' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gifwildcard' alt='$descwildcard' title='$descwildcard' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+<input type='hidden' name='KEY2' value='4' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+<input type='hidden' name='KEY2' value='7' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />\r
+<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />\r
+<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+</tr>\r
+END\r
+;\r
+    $key++;\r
+}\r
+print "</table>";\r
+\r
+# If table contains entries, print 'Key to action icons'\r
+if ($key) {\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+    <td class='boldbase'>&nbsp;<b>$Lang::tr{'legend'}:&nbsp;</b></td>\r
+    <td><img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>\r
+    <td class='base'>$Lang::tr{'click to disable'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td>\r
+    <td class='base'>$Lang::tr{'click to enable'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>\r
+    <td class='base'>$Lang::tr{'edit'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>\r
+    <td class='base'>$Lang::tr{'remove'}</td>\r
+    <form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+        <td align='center' width='30%'><input type='submit' name='ACTION' value='$Lang::tr{'instant update'}' /></td>\r
+    </form>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+}\r
+\r
+&Header::closebox();\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+## Ouf it's the end !\r
+\r
+\r
+# write the "current" array\r
+sub WriteDataFile {\r
+    #Save current\r
+    open(FILE, ">$datafile") or die 'ddns datafile error';\r
+    print FILE @current;\r
+    close (FILE);\r
+}\r
diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi
new file mode 100644 (file)
index 0000000..da1d8d0
--- /dev/null
@@ -0,0 +1,1245 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# Copyright (C) 01-02-2002 Graham Smith <grhm@grhm.co.uk>\r
+#              - Fixed DHCP Leases added\r
+#\r
+# $Id: dhcp.cgi,v 1.14.2.81 2006/01/20 12:05:29 franck78 Exp $\r
+#\r
+#  Franck      -rewrite for two or more interface\r
+#  nov/2004    -check range is in correct subnet\r
+#              -add NTP option\r
+#              -add display sorting of actives leases\r
+#  dec/2004    -add comment field to fixed leases\r
+# \r
+# to do : choose a correct format for displaying dates\r
+#\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::colouryellow} );\r
+undef (@dummy);\r
+\r
+our %dhcpsettings=();\r
+our %netsettings=();\r
+my %mainsettings=();\r
+my %timesettings=();\r
+my $setting = "${General::swroot}/dhcp/settings";\r
+our $filename1 = "${General::swroot}/dhcp/advoptions";         # Field separator is TAB in this file (comma is standart)\r
+                                                       # because we need commas in the some data\r
+our $filename2 = "${General::swroot}/dhcp/fixleases";\r
+our $filename3 = "${General::swroot}/dhcp/advoptions-list"; # Describe the allowed syntax for dhcp options\r
+my $errormessage = '';\r
+my $warnNTPmessage = '';\r
+my @nosaved=();\r
+\r
+#Basic syntax allowed for new Option definition. Not implemented: RECORDS & array of RECORDS \r
+our $OptionTypes = 'boolean|((un)?signed )?integer (8|16|32)|ip-address|text|string|encapsulate \w+|array of ip-address';\r
+\r
+&Header::showhttpheaders();\r
+our @ITFs=('GREEN','BLUE');\r
+\r
+#Settings1 for the first screen box\r
+foreach my $itf (@ITFs) {\r
+    $dhcpsettings{"ENABLE_${itf}"} = 'off';\r
+    $dhcpsettings{"ENABLEBOOTP_${itf}"} = 'off';\r
+    $dhcpsettings{"START_ADDR_${itf}"} = '';\r
+    $dhcpsettings{"END_ADDR_${itf}"} = '';\r
+    $dhcpsettings{"DOMAIN_NAME_${itf}"} = '';\r
+    $dhcpsettings{"DEFAULT_LEASE_TIME_${itf}"} = '';\r
+    $dhcpsettings{"MAX_LEASE_TIME_${itf}"} = '';\r
+    $dhcpsettings{"WINS1_${itf}"} = '';\r
+    $dhcpsettings{"WINS2_${itf}"} = '';\r
+    $dhcpsettings{"DNS1_${itf}"} = '';\r
+    $dhcpsettings{"DNS2_${itf}"} = '';\r
+    $dhcpsettings{"NTP1_${itf}"} = '';\r
+    $dhcpsettings{"NTP2_${itf}"} = '';\r
+}\r
+\r
+$dhcpsettings{'SORT_FLEASELIST'} = 'FIPADDR';\r
+$dhcpsettings{'SORT_LEASELIST'} = 'IPADDR';\r
+\r
+#Settings2 for editing the multi-line list\r
+#Must not be saved with writehash !\r
+$dhcpsettings{'FIX_MAC'} = '';\r
+$dhcpsettings{'FIX_ADDR'} = '';\r
+$dhcpsettings{'FIX_ENABLED'} = 'off';\r
+$dhcpsettings{'FIX_NEXTADDR'} = '';\r
+$dhcpsettings{'FIX_FILENAME'} = '';\r
+$dhcpsettings{'FIX_ROOTPATH'} = '';\r
+$dhcpsettings{'FIX_REMARK'} = '';\r
+$dhcpsettings{'ACTION'} = '';\r
+$dhcpsettings{'KEY1'} = '';\r
+$dhcpsettings{'KEY2'} = '';\r
+@nosaved=('FIX_MAC','FIX_ADDR','FIX_ENABLED','FIX_NEXTADDR',\r
+           'FIX_FILENAME','FIX_ROOTPATH','FIX_REMARK');\r
+\r
+$dhcpsettings{'ADVOPT_ENABLED'} = '';\r
+$dhcpsettings{'ADVOPT_NAME'} = '';\r
+$dhcpsettings{'ADVOPT_DATA'} = '';\r
+unshift (@nosaved,'ADVOPT_ENABLED','ADVOPT_NAME','ADVOPT_DATA');\r
+foreach my $itf (@ITFs) {\r
+    $dhcpsettings{"ADVOPT_SCOPE_${itf}"} = 'off';\r
+    unshift (@nosaved, "ADVOPT_SCOPE_${itf}");\r
+}\r
+\r
+# Read Ipcop settings\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);\r
+&General::readhash("${General::swroot}/time/settings", \%timesettings);\r
+\r
+#Get GUI values\r
+&Header::getcgihash(\%dhcpsettings);\r
+\r
+open(FILE, "$filename1") or die 'Unable to open dhcp advanced options file.';\r
+our @current1 = <FILE>;\r
+close(FILE);\r
+# Extract OptionDefinition\r
+foreach my $line (@current1) {\r
+    #chomp($line);   # remove newline        #don't know why, but this remove newline in @current1 .... !\r
+    my @temp = split(/\t/,$line);\r
+    AddNewOptionDefinition ($temp[1] . ' ' . $temp[2]);\r
+}\r
+\r
+open(FILE, "$filename2") or die 'Unable to open fixed leases file.';\r
+our @current2 = <FILE>;\r
+close(FILE);\r
+\r
+# Check Settings1 first because they are needed by &buildconf\r
+if ($dhcpsettings{'ACTION'} eq $Lang::tr{'save'}) {\r
+    foreach my $itf (@ITFs) {\r
+       if ($dhcpsettings{"ENABLE_${itf}"} eq 'on' ) {\r
+           # "Start" is defined, need "End" and vice versa\r
+           if ($dhcpsettings{"START_ADDR_${itf}"}) {\r
+               if (!(&General::validip($dhcpsettings{"START_ADDR_${itf}"}))) {\r
+                   $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid start address'};\r
+                   goto ERROR;\r
+               }\r
+               if (!$dhcpsettings{"END_ADDR_${itf}"}) {\r
+                   $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid end address'};\r
+                   goto ERROR;\r
+               }\r
+               if (! &General::IpInSubnet ( $dhcpsettings{"START_ADDR_${itf}"}, \r
+                                   $netsettings{"${itf}_NETADDRESS"},\r
+                                   $netsettings{"${itf}_NETMASK"})) {\r
+                   $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid start address'};\r
+                   goto ERROR;\r
+               }\r
+           }\r
+           \r
+           if ($dhcpsettings{"END_ADDR_${itf}"}) {\r
+               if (!(&General::validip($dhcpsettings{"END_ADDR_${itf}"}))) {\r
+                   $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid end address'};\r
+                   goto ERROR;\r
+               }\r
+               if (!$dhcpsettings{"START_ADDR_${itf}"}) {\r
+                   $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid start address'};\r
+                   goto ERROR;\r
+               }\r
+               if (! &General::IpInSubnet ( $dhcpsettings{"END_ADDR_${itf}"}, \r
+                                   $netsettings{"${itf}_NETADDRESS"},\r
+                                   $netsettings{"${itf}_NETMASK"})) { \r
+                   $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid end address'};\r
+                   goto ERROR;\r
+               }\r
+               #swap if necessary! (support 255.255.0.0 range, I doubt we need more) GE\r
+               my @startoct = split (/\./, $dhcpsettings{"START_ADDR_${itf}"});\r
+               my @endoct   = split (/\./, $dhcpsettings{"END_ADDR_${itf}"});\r
+               if ( $endoct[2]*256+$endoct[3] < $startoct[2]*256+$startoct[3] ) {\r
+                   ($dhcpsettings{"START_ADDR_${itf}"},$dhcpsettings{"END_ADDR_${itf}"}) =\r
+                       ($dhcpsettings{"END_ADDR_${itf}"},$dhcpsettings{"START_ADDR_${itf}"});\r
+               }\r
+           }\r
+\r
+           if (!($dhcpsettings{"DEFAULT_LEASE_TIME_${itf}"} =~ /^\d+$/)) {\r
+               $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid default lease time'} . $dhcpsettings{'DEFAULT_LEASE_TIME_${itf}'};\r
+               goto ERROR;\r
+           }\r
+\r
+           if (!($dhcpsettings{"MAX_LEASE_TIME_${itf}"} =~ /^\d+$/)) {\r
+               $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid max lease time'} . $dhcpsettings{'MAX_LEASE_TIME_${itf}'};\r
+               goto ERROR;\r
+           }\r
+\r
+           if ($dhcpsettings{"DNS1_${itf}"}) {\r
+               if (!(&General::validip($dhcpsettings{"DNS1_${itf}"}))) {\r
+                       $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid primary dns'};\r
+                       goto ERROR;\r
+               }\r
+           }\r
+           if ($dhcpsettings{"DNS2_${itf}"}) {\r
+               if (!(&General::validip($dhcpsettings{"DNS2_${itf}"}))) {\r
+                       $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid secondary dns'};\r
+                       goto ERROR;\r
+               }\r
+               if (! $dhcpsettings{"DNS1_${itf}"}) {\r
+                       $errormessage = "DHCP on ${itf}: " . $Lang::tr{'cannot specify secondary dns without specifying primary'}; \r
+                       goto ERROR;\r
+               }\r
+           }\r
+\r
+           if ($dhcpsettings{"WINS1_${itf}"}) {\r
+               if (!(&General::validip($dhcpsettings{"WINS1_${itf}"}))) {\r
+                       $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid wins address'};\r
+                       goto ERROR;\r
+               }\r
+           }\r
+           if ($dhcpsettings{"WINS2_${itf}"}) {\r
+               if (!(&General::validip($dhcpsettings{"WINS2_${itf}"})))        {\r
+                       $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid wins address'};\r
+                       goto ERROR;\r
+               }\r
+               if (! $dhcpsettings{"WINS1_${itf}"} ) {\r
+                       $errormessage = "DHCP on ${itf}: " . $Lang::tr{'cannot specify secondary wins without specifying primary'};\r
+                       goto ERROR;\r
+               }               \r
+           }\r
+\r
+           if ($dhcpsettings{"NTP1_${itf}"}) {\r
+               if (!(&General::validip($dhcpsettings{"NTP1_${itf}"}))) {\r
+                       $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid primary ntp'};\r
+                       goto ERROR;\r
+               }\r
+               if ($dhcpsettings{"NTP1_${itf}"} eq $netsettings{"${itf}_ADDRESS"} && ($timesettings{'ENABLECLNTP'} ne 'on')) {\r
+                       $warnNTPmessage = "DHCP on ${itf}: " . $Lang::tr{'local ntp server specified but not enabled'};\r
+                       #goto ERROR;\r
+               }\r
+           }\r
+           if ($dhcpsettings{"NTP2_${itf}"}) {\r
+               if (!(&General::validip($dhcpsettings{"NTP2_${itf}"}))) {\r
+                       $errormessage = "DHCP on ${itf}: " . $Lang::tr{'invalid secondary ntp'};\r
+                       goto ERROR;\r
+               }\r
+               if ($dhcpsettings{"NTP2_${itf}"} eq $netsettings{"${itf}_ADDRESS"} && ($timesettings{'ENABLECLNTP'} ne 'on')) {\r
+                       $warnNTPmessage = "DHCP on ${itf}: " . $Lang::tr{'local ntp server specified but not enabled'};\r
+                       #goto ERROR;\r
+               }\r
+               if (! $dhcpsettings{"NTP1_${itf}"}) {\r
+                       $errormessage = "DHCP on ${itf}: " . $Lang::tr{'cannot specify secondary ntp without specifying primary'};\r
+                       goto ERROR;\r
+               }\r
+           }\r
+       } # enabled\r
+    }#loop interface verify\r
+\r
+    map (delete ($dhcpsettings{$_}) ,@nosaved,'ACTION','KEY1','KEY2'); # Must not be saved \r
+    &General::writehash($setting, \%dhcpsettings);             # Save good settings\r
+    $dhcpsettings{'ACTION'} = $Lang::tr{'save'};               # create an 'ACTION'\r
+    map ($dhcpsettings{$_} = '',@nosaved,'KEY1','KEY2');       # and reinit vars to empty\r
+    &buildconf;\r
+    ERROR:                                                     # Leave the faulty field untouched\r
+} else {\r
+    &General::readhash($setting, \%dhcpsettings);              # Get saved settings and reset to good if needed\r
+}\r
+\r
+## Sorting of fixed leases\r
+if ($ENV{'QUERY_STRING'} =~ /^FETHER|^FIPADDR/ ) {\r
+    my $newsort=$ENV{'QUERY_STRING'};\r
+    my $act=$dhcpsettings{'SORT_FLEASELIST'};\r
+    #Reverse actual sort ?\r
+    if ($act =~ $newsort) {\r
+       my $Rev='';\r
+       if ($act !~ 'Rev') {\r
+           $Rev='Rev';\r
+       }\r
+       $newsort.=$Rev;\r
+    }\r
+    $dhcpsettings{'SORT_FLEASELIST'}=$newsort;\r
+    map (delete ($dhcpsettings{$_}) ,@nosaved,'ACTION','KEY1','KEY2'); # Must never be saved \r
+    &General::writehash($setting, \%dhcpsettings);\r
+    &sortcurrent2;\r
+    $dhcpsettings{'ACTION'} = 'SORT';                  # create an 'ACTION'\r
+    map ($dhcpsettings{$_} = '',@nosaved,'KEY1','KEY2');# and reinit vars to empty \r
+}\r
+\r
+#Sorting of allocated leases\r
+&Header::CheckSortOrder;\r
+\r
+\r
+## Now manipulate the two multi-line list with Settings2. \r
+#  '1' suffix is for ADVANCED OPTIONS\r
+#  '2' suffix is for FIXED LEASES\r
+\r
+# Toggle enable/disable field on specified options.\r
+\r
+if ($dhcpsettings{'ACTION'} eq $Lang::tr{'toggle enable disable'}.'1') {\r
+    #move out new line\r
+    chomp(@current1[$dhcpsettings{'KEY1'}]);\r
+    my @temp = split(/\t/,@current1[$dhcpsettings{'KEY1'}]);           #use TAB separator !\r
+    $temp[0] = $temp[0] eq 'on' ? '' : 'on';    # Toggle the field\r
+    @current1[$dhcpsettings{'KEY1'}] = join ("\t",@temp)."\n";\r
+    $dhcpsettings{'KEY1'} = ''; # End edit mode\r
+    &General::log($Lang::tr{'dhcp advopt modified'});\r
+    open(FILE, ">$filename1") or die 'Unable to open dhcp advanced options file.';\r
+    print FILE @current1;\r
+    close(FILE);\r
+       \r
+    #Write changes to dhcpd.conf.\r
+    &buildconf;\r
+}\r
+\r
+    \r
+\r
+if ($dhcpsettings{'ACTION'} eq $Lang::tr{'add'}.'1' &&\r
+       $dhcpsettings{'SUBMIT'} ne $Lang::tr{'dhcp advopt help'}) {\r
+    $dhcpsettings{'ADVOPT_NAME'} =~ s/[^ \w-]//g;      # prevent execution of code by removing everything except letters/space\r
+    $dhcpsettings{'ADVOPT_DATA'} =~ s/`//g;            # back tik ` ? not allowed !\r
+\r
+    if ($dhcpsettings{'ADVOPT_DATA'} eq '') {\r
+       $errormessage=$Lang::tr{'dhcp advopt blank value'};\r
+    }\r
+    \r
+    # Test for a new option definition string (join field name & data)\r
+    if (ExistNewOptionDefinition ($dhcpsettings{'ADVOPT_NAME'} . ' ' . $dhcpsettings{'ADVOPT_DATA'})) {\r
+       #only edit permitted if option definition exists\r
+       $errormessage = $Lang::tr{'dhcp advopt definition exists'} if ($dhcpsettings{'KEY1'} eq '');\r
+       $dhcpsettings{'ADVOPT_ENABLED'} = 'on';                 # force active\r
+       map ($dhcpsettings{"ADVOPT_SCOPE_$_"} = 'off', @ITFs);  # force global\r
+    } elsif (AddNewOptionDefinition ($dhcpsettings{'ADVOPT_NAME'} . ' ' . $dhcpsettings{'ADVOPT_DATA'})) {\r
+       #was a new option definition\r
+       $dhcpsettings{'ADVOPT_ENABLED'} = 'on';                 # force active\r
+       map ($dhcpsettings{"ADVOPT_SCOPE_$_"} = 'off', @ITFs);  # force global\r
+    } elsif (ValidNewOption ($dhcpsettings{'ADVOPT_NAME'} . ' ' . $dhcpsettings{'ADVOPT_DATA'})) {\r
+       #was a new option\r
+    } elsif (! `grep "\$option $dhcpsettings{'ADVOPT_NAME'} " $filename3`) {\r
+       $errormessage=$Lang::tr{'dhcp advopt unknown'}.': '.$dhcpsettings{'ADVOPT_NAME'};\r
+    }\r
+\r
+    unless ($errormessage) {\r
+       \r
+       my $scope = '';\r
+       foreach my $itf (@ITFs) {  # buils "RED,GREEN,ORANGE,... based on selection\r
+           $scope .= $dhcpsettings{"ADVOPT_SCOPE_${itf}"} eq 'on' ? "\t$itf" : "\toff" ;\r
+       }\r
+       if ($dhcpsettings{'KEY1'} eq '') { #add or edit ?  TAB separator !\r
+           unshift (@current1, "$dhcpsettings{'ADVOPT_ENABLED'}\t$dhcpsettings{'ADVOPT_NAME'}\t$dhcpsettings{'ADVOPT_DATA'}$scope\n");\r
+           &General::log($Lang::tr{'dhcp advopt added'});\r
+       } else {\r
+           @current1[$dhcpsettings{'KEY1'}] = "$dhcpsettings{'ADVOPT_ENABLED'}\t$dhcpsettings{'ADVOPT_NAME'}\t$dhcpsettings{'ADVOPT_DATA'}$scope\n";\r
+           $dhcpsettings{'KEY1'} = '';       # End edit mode\r
+           &General::log($Lang::tr{'dhcp advopt modified'});\r
+       }\r
+\r
+        #Write changes to dhcpd.conf.\r
+        &sortcurrent1;    # sort newly added/modified entry\r
+        &buildconf;       # before calling buildconf which use fixed lease file !\r
+    }\r
+}\r
+\r
+if ($dhcpsettings{'ACTION'} eq $Lang::tr{'edit'}.'1') {\r
+    #move out new line\r
+    my $line = @current1[$dhcpsettings{'KEY1'}];\r
+    chomp($line);\r
+    my @temp = split(/\t/, $line);\r
+    $dhcpsettings{'ADVOPT_ENABLED'}=$temp[0];\r
+    $dhcpsettings{'ADVOPT_NAME'}=$temp[1];\r
+    $dhcpsettings{'ADVOPT_DATA'}=$temp[2];\r
+\r
+    # read next fields which are the name (color) of an interface if this interface is scoped\r
+    for (my $key=0; $key<@ITFs; $key++) {\r
+       my $itf = $temp[3+$key];\r
+       if ($itf ne 'off') # Only is an interface name is read\r
+       {\r
+           $dhcpsettings{"ADVOPT_SCOPE_${itf}"} = 'on';\r
+       }    \r
+    }\r
+}\r
+\r
+if ($dhcpsettings{'ACTION'} eq $Lang::tr{'remove'}.'1') {\r
+    splice (@current1,$dhcpsettings{'KEY1'},1);\r
+    open(FILE, ">$filename1") or die 'Unable to open dhcp advanced options file.';\r
+    print FILE @current1;\r
+    close(FILE);\r
+    $dhcpsettings{'KEY1'} = '';                                # End remove mode\r
+    &General::log($Lang::tr{'dhcp advopt removed'});\r
+    #Write changes to dhcpd.conf.\r
+    &buildconf;\r
+}\r
+#end KEY1\r
+\r
+\r
+# Toggle enable/disable field on specified lease.\r
+if ($dhcpsettings{'ACTION'} eq $Lang::tr{'toggle enable disable'}.'2') {\r
+    #move out new line\r
+    chomp(@current2[$dhcpsettings{'KEY2'}]);\r
+    my @temp = split(/\,/,@current2[$dhcpsettings{'KEY2'}]);\r
+    $temp[2] = $temp[2] eq 'on' ? '' : 'on';    # Toggle the field\r
+    @current2[$dhcpsettings{'KEY2'}] = join (',',@temp)."\n";\r
+    $dhcpsettings{'KEY2'} = ''; # End edit mode\r
+    &General::log($Lang::tr{'fixed ip lease modified'});\r
+    open(FILE, ">$filename2") or die 'Unable to open fixed leases file.';\r
+    print FILE @current2;\r
+    close(FILE);\r
+       \r
+    #Write changes to dhcpd.conf.\r
+    &buildconf;\r
+}\r
+\r
+if ($dhcpsettings{'ACTION'} eq $Lang::tr{'add'}.'2') {\r
+    $dhcpsettings{'FIX_MAC'} =~ tr/-/:/;\r
+    unless(&General::validip($dhcpsettings{'FIX_ADDR'})) { $errormessage = $Lang::tr{'invalid fixed ip address'}; }\r
+    unless(&General::validmac($dhcpsettings{'FIX_MAC'})) { $errormessage = $Lang::tr{'invalid fixed mac address'}; }\r
+    if ($dhcpsettings{'FIX_NEXTADDR'}) {\r
+        unless(&General::validip($dhcpsettings{'FIX_NEXTADDR'})) { $errormessage = $Lang::tr{'invalid fixed ip address'}; }\r
+    }\r
+       \r
+    my $key = 0;\r
+    CHECK:foreach my $line (@current2) {\r
+        my @temp = split(/\,/,$line);\r
+        if($dhcpsettings{'KEY2'} ne $key) {\r
+           # same MAC is OK on different subnets. This test is not complete because\r
+           # if ip are not inside a known subnet, I don't warn.\r
+           # Also it may be needed to put duplicate fixed lease in their right subnet definition..\r
+           foreach my $itf (@ITFs) {\r
+               my $scoped = &General::IpInSubnet($dhcpsettings{'FIX_ADDR'},\r
+                                                 $netsettings{"${itf}_NETADDRESS"}, \r
+                                                 $netsettings{"${itf}_NETMASK"}) &&\r
+                                                 $dhcpsettings{"ENABLE_${itf}"} eq 'on';\r
+               if ( $scoped &&\r
+                   (lc($dhcpsettings{'FIX_MAC'}) eq lc($temp[0])) &&\r
+                   &General::IpInSubnet($temp[1],\r
+                                        $netsettings{"${itf}_NETADDRESS"}, \r
+                                        $netsettings{"${itf}_NETMASK"})) {\r
+                   $errormessage = "$Lang::tr{'mac address in use'} $dhcpsettings{'FIX_MAC'}";\r
+                   last CHECK;\r
+               }\r
+           }\r
+       }\r
+       $key++;\r
+    }\r
+\r
+    unless ($errormessage) {\r
+       $dhcpsettings{'FIX_REMARK'} = &Header::cleanhtml($dhcpsettings{'FIX_REMARK'});\r
+       $dhcpsettings{'FIX_NEXTADDR'} = &Header::cleanhtml($dhcpsettings{'FIX_NEXTADDR'});\r
+       $dhcpsettings{'FIX_FILENAME'} = &Header::cleanhtml($dhcpsettings{'FIX_FILENAME'});\r
+       $dhcpsettings{'FIX_ROOTPATH'} = &Header::cleanhtml($dhcpsettings{'FIX_ROOTPATH'});\r
+       if ($dhcpsettings{'KEY2'} eq '') { #add or edit ?\r
+           unshift (@current2, "$dhcpsettings{'FIX_MAC'},$dhcpsettings{'FIX_ADDR'},$dhcpsettings{'FIX_ENABLED'},$dhcpsettings{'FIX_NEXTADDR'},$dhcpsettings{'FIX_FILENAME'},$dhcpsettings{'FIX_ROOTPATH'},$dhcpsettings{'FIX_REMARK'}\n");\r
+           &General::log($Lang::tr{'fixed ip lease added'});\r
+       } else {\r
+           @current2[$dhcpsettings{'KEY2'}] = "$dhcpsettings{'FIX_MAC'},$dhcpsettings{'FIX_ADDR'},$dhcpsettings{'FIX_ENABLED'},$dhcpsettings{'FIX_NEXTADDR'},$dhcpsettings{'FIX_FILENAME'},$dhcpsettings{'FIX_ROOTPATH'},$dhcpsettings{'FIX_REMARK'}\n";\r
+           $dhcpsettings{'KEY2'} = '';       # End edit mode\r
+           &General::log($Lang::tr{'fixed ip lease modified'});\r
+       }\r
+\r
+        #Write changes to dhcpd.conf.\r
+        &sortcurrent2;    # sort newly added/modified entry\r
+        &buildconf;       # before calling buildconf which use fixed lease file !\r
+    }\r
+}\r
+\r
+if ($dhcpsettings{'ACTION_ALL'} eq '+') {\r
+    my $news = 0;\r
+    foreach (keys %dhcpsettings) {\r
+        if (/^(\d+\.\d+\.\d+\.\d+)-([0-9a-fA-F:]+)$/) {     # checked names are index of the line\r
+            my $ip=$1;\r
+            my $mac=$2;\r
+            if (!grep (/$2/,@current2)) {\r
+                unshift (@current2, "$mac,$ip,on,,,,imported\n");\r
+                $news++;\r
+            }\r
+        }\r
+    }\r
+    if ($news) {\r
+        #Write changes to dhcpd.conf.\r
+        $warnNTPmessage = $Lang::tr{'fixed ip lease added'}."($news)";\r
+        &General::log($warnNTPmessage);\r
+        &sortcurrent2;    # sort newly added/modified entry\r
+        &buildconf;       # before calling buildconf which use fixed lease file !\r
+    }\r
+}\r
+\r
+if ($dhcpsettings{'ACTION'} eq $Lang::tr{'edit'}.'2') {\r
+    #move out new line\r
+    my $line = @current2[$dhcpsettings{'KEY2'}];\r
+    chomp($line);\r
+    my @temp = split(/\,/, $line);\r
+    $dhcpsettings{'FIX_MAC'}=$temp[0];\r
+    $dhcpsettings{'FIX_ADDR'}=$temp[1];\r
+    $dhcpsettings{'FIX_ENABLED'}=$temp[2];\r
+    $dhcpsettings{'FIX_NEXTADDR'}=$temp[3];\r
+    $dhcpsettings{'FIX_FILENAME'}=$temp[4];\r
+    $dhcpsettings{'FIX_ROOTPATH'}=$temp[5];\r
+    $dhcpsettings{'FIX_REMARK'}=$temp[6];\r
+}\r
+\r
+if ($dhcpsettings{'ACTION'} eq $Lang::tr{'remove'}.'2') {\r
+    splice (@current2,$dhcpsettings{'KEY2'},1);\r
+    open(FILE, ">$filename2") or die 'Unable to open fixed lease file.';\r
+    print FILE @current2;\r
+    close(FILE);\r
+    $dhcpsettings{'KEY2'} = '';                                # End remove mode\r
+    &General::log($Lang::tr{'fixed ip lease removed'});\r
+    #Write changes to dhcpd.conf.\r
+    &buildconf;\r
+}\r
+#end KEY2 defined\r
+\r
+\r
+\r
+\r
+if ($dhcpsettings{'ACTION'} eq '' ) { # First launch from GUI\r
+\r
+    # Set default DHCP values only if blank and disabled\r
+    foreach my $itf (@ITFs) {\r
+       if ($dhcpsettings{"ENABLE_${itf}"} ne 'on' ) {\r
+           $dhcpsettings{"DNS1_${itf}"} = $netsettings{"${itf}_ADDRESS"};\r
+           $dhcpsettings{"DEFAULT_LEASE_TIME_${itf}"} = '60';\r
+           $dhcpsettings{"MAX_LEASE_TIME_${itf}"} = '120';\r
+           $dhcpsettings{"DOMAIN_NAME_${itf}"} = $mainsettings{'DOMAINNAME'};\r
+       }\r
+    }\r
+    $dhcpsettings{'FIX_ENABLED'} = 'on';\r
+}\r
+\r
+&Header::openpage($Lang::tr{'dhcp configuration'}, 1, '');\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+    &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+    print "<font class='base'>$errormessage&nbsp;</font>\n";\r
+    &Header::closebox();\r
+}\r
+if ($warnNTPmessage) {\r
+    $warnNTPmessage = "<font color=${Header::colourred}><b>$Lang::tr{'capswarning'}</b></font>: $warnNTPmessage";\r
+}\r
+\r
+&Header::openbox('100%', 'left', 'DHCP');\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>";\r
+\r
+foreach my $itf (@ITFs) {\r
+    my %checked=();\r
+    $checked{'ENABLE'}{'on'} = ( $dhcpsettings{"ENABLE_${itf}"} ne 'on') ? '' : "checked='checked'";\r
+    $checked{'ENABLEBOOTP'}{'on'} = ( $dhcpsettings{"ENABLEBOOTP_${itf}"} ne 'on') ? '' : "checked='checked'";\r
+\r
+    if ($netsettings{"${itf}_DEV"} ne '' ) { # Show only defined interface\r
+       my $lc_itf=lc($itf);\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+    <td width='25%' class='boldbase'><b><font color='${lc_itf}'>$Lang::tr{"$lc_itf interface"}</font></b></td>\r
+    <td class='base'>$Lang::tr{'enabled'}\r
+    <input type='checkbox' name='ENABLE_${itf}' $checked{'ENABLE'}{'on'} /></td>\r
+    <td width='25%' class='base'>$Lang::tr{'ip address'}/$Lang::tr{'netmask'}:</td><td><b>$netsettings{"${itf}_ADDRESS"}/$netsettings{"${itf}_NETMASK"}</b></td>\r
+</tr><tr>\r
+    <td width='25%' class='base'>$Lang::tr{'start address'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td width='25%'><input type='text' name='START_ADDR_${itf}' value='$dhcpsettings{"START_ADDR_${itf}"}' /></td>\r
+    <td width='25%' class='base'>$Lang::tr{'end address'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td width='25%'><input type='text' name='END_ADDR_${itf}' value='$dhcpsettings{"END_ADDR_${itf}"}' /></td>\r
+</tr><tr>\r
+    <td class='base'>$Lang::tr{'default lease time'}</td>\r
+    <td><input type='text' name='DEFAULT_LEASE_TIME_${itf}' value='$dhcpsettings{"DEFAULT_LEASE_TIME_${itf}"}' /></td>\r
+    <td class='base'>$Lang::tr{'max lease time'}</td>\r
+    <td><input type='text' name='MAX_LEASE_TIME_${itf}' value='$dhcpsettings{"MAX_LEASE_TIME_${itf}"}' /></td>\r
+</tr><tr>\r
+    <td class='base'>$Lang::tr{'domain name suffix'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='DOMAIN_NAME_${itf}' value='$dhcpsettings{"DOMAIN_NAME_${itf}"}' /></td>\r
+    <td>$Lang::tr{'dhcp allow bootp'}:</td>\r
+    <td><input type='checkbox' name='ENABLEBOOTP_${itf}' $checked{'ENABLEBOOTP'}{'on'} /></td>\r
+</tr><tr>\r
+    <td class='base'>$Lang::tr{'primary dns'}</td>\r
+    <td><input type='text' name='DNS1_${itf}' value='$dhcpsettings{"DNS1_${itf}"}' /></td>\r
+    <td class='base'>$Lang::tr{'secondary dns'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='DNS2_${itf}' value='$dhcpsettings{"DNS2_${itf}"}' /></td>\r
+</tr><tr>\r
+    <td class='base'>$Lang::tr{'primary ntp server'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='NTP1_${itf}' value='$dhcpsettings{"NTP1_${itf}"}' /></td>\r
+    <td class='base'>$Lang::tr{'secondary ntp server'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='NTP2_${itf}' value='$dhcpsettings{"NTP2_${itf}"}' /></td>\r
+</tr><tr>\r
+    <td class='base'>$Lang::tr{'primary wins server address'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='WINS1_${itf}' value='$dhcpsettings{"WINS1_${itf}"}' /></td>\r
+    <td class='base'>$Lang::tr{'secondary wins server address'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='WINS2_${itf}' value='$dhcpsettings{"WINS2_${itf}"}' /></td>\r
+</tr>\r
+</table>\r
+<hr />\r
+END\r
+;\r
+    }# Show only defined interface\r
+}#foreach itf\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base' width='25%'><img src='/blob.gif' align='top' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td>\r
+    <td class='base' width='30%'>$warnNTPmessage</td>\r
+    <td width='40%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+    <td width='5%' align='right'>\r
+        <a href='${General::adminmanualurl}/services.html#services_dhcp' target='_blank'>\r
+        <img src='/images/web-support.png' alt='$Lang::tr{'online help en'}' title='$Lang::tr{'online help en'}' /></a></td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'dhcp advopt list'});\r
+# DHCP Advanced options settings\r
+my %checked=();\r
+$checked{'ADVOPT_ENABLED'}{'on'} = ($dhcpsettings{'ADVOPT_ENABLED'} ne 'on') ? '' : "checked='checked'";\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'><table width='100%'>";\r
+my $buttontext = $Lang::tr{'add'};\r
+if ($dhcpsettings{'KEY1'} ne '') {\r
+    $buttontext = $Lang::tr{'update'};\r
+    print "<tr><td class='boldbase'><b>$Lang::tr{'dhcp advopt edit'}</b></td></tr>";\r
+} else {\r
+    print "<tr><td class='boldbase'><b>$Lang::tr{'dhcp advopt add'}</b></td></tr>"\r
+}\r
+\r
+#search if the 'option' is in the list and print the syntax model\r
+my $opt = `grep "\$option $dhcpsettings{'ADVOPT_NAME'} " $filename3`;\r
+if ($opt ne '') {\r
+   $opt =~ s/option $dhcpsettings{'ADVOPT_NAME'}/Syntax:/;  # "option xyz abc" => "syntax: abc"\r
+   $opt =~ s/;//;\r
+   $opt = "<tr><td></td><td></td><td colspan='2'>$opt</td></tr>";\r
+}\r
+print <<END\r
+<tr>\r
+    <td class='base'>$Lang::tr{'dhcp advopt name'}:</td>\r
+    <td><input type='text' name='ADVOPT_NAME' value='$dhcpsettings{'ADVOPT_NAME'}' size='18' /></td>\r
+    <td class='base'>$Lang::tr{'dhcp advopt value'}:</td>\r
+    <td><input type='text' name='ADVOPT_DATA' value='$dhcpsettings{'ADVOPT_DATA'}' size='40' /></td>\r
+</tr>$opt<tr>\r
+    <td class='base'>$Lang::tr{'enabled'}</td><td><input type='checkbox' name='ADVOPT_ENABLED' $checked{'ADVOPT_ENABLED'}{'on'} /></td>\r
+    <td class='base'>$Lang::tr{'dhcp advopt scope'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td>\r
+END\r
+;\r
+\r
+# Put a checkbox for each interface. Checkbox visible disabled if interface is disabled  \r
+foreach my $itf (@ITFs) {\r
+    my $lc_itf=lc($itf);\r
+    $checked{'ADVOPT_SCOPE_${itf}'}{'on'} = $dhcpsettings{"ADVOPT_SCOPE_${itf}"} ne 'on' ? '' : "checked='checked'";    \r
+    print "$Lang::tr{\"${lc_itf}\"} <input type='checkbox' name='ADVOPT_SCOPE_${itf}' $checked{'ADVOPT_SCOPE_${itf}'}{'on'} ";\r
+    print $dhcpsettings{"ENABLE_${itf}"} eq 'on' ? "/>" : "disabled='disabled' />";\r
+    print "&nbsp; &nbsp;";\r
+}\r
+\r
+print <<END\r
+    </td>\r
+</tr>\r
+</table>\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' />&nbsp;$Lang::tr{'dhcp advopt scope help'}</td>\r
+    <td width='50%' align='center'>\r
+    <input type='hidden' name='ACTION' value='$Lang::tr{'add'}1' />\r
+    <input type='submit' name='SUBMIT' value='$buttontext' />\r
+    <input type='submit' name='SUBMIT' value='$Lang::tr{'dhcp advopt help'}' />\r
+    <input type='hidden' name='KEY1' value='$dhcpsettings{'KEY1'}' />\r
+    </td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+#Edited line number (KEY1) passed until cleared by 'save' or 'remove' or 'new sort order'\r
+\r
+# print help taken from the file describing options\r
+if ($dhcpsettings{'SUBMIT'} eq $Lang::tr{'dhcp advopt help'}) {\r
+    print "<hr />";\r
+    print "<table width='100%'>";\r
+    print "<tr><td width='30%'><b>$Lang::tr{'dhcp advopt name'}</b></td><td width='70%'><b>$Lang::tr{'dhcp advopt value'}</b></td>";\r
+    open(FILE, "$filename3");\r
+    my @current3 = <FILE>;\r
+    close(FILE);\r
+    foreach my $line (@current3) {\r
+       $line =~ /option ([a-z0-9-]+) (.*);/;\r
+       print "<tr><td>$1</td><td>$2</td></tr>\n";\r
+    }\r
+    print "<tr><td colspan='2'><hr /></td></tr>\n";\r
+    print '<tr><td>string type</td><td>"quoted string" or 00:01:FF...</td></tr>';\r
+    print '<tr><td>ip-address type </td><td>10.0.0.1 | www.dot.com</td></tr>';\r
+    print '<tr><td>int,uint types</td><td>numbers</td></tr>';\r
+    print '<tr><td>flag type</td><td>on | off</td></tr>';\r
+    print '</table>';\r
+    print "<hr />";\r
+    print "<table width='100%'>";\r
+    print "<tr><td width='30%'><b>$Lang::tr{'dhcp advopt custom definition'}</b></td><td width='70%'><b>$Lang::tr{'dhcp advopt value'}</b></td>";\r
+    print "<tr><td>any-name </td><td> code NNN=$OptionTypes</td></tr>";\r
+    print '<tr><td>a-string</td><td>code 100=string</td></tr>';\r
+    print '<tr><td>a-number</td><td>code 101=signed integer 8</td></tr>';\r
+    print '<tr><td>wpad</td><td>code 252=text</td></tr>';\r
+    print '<tr><td>wpad</td><td>"http://www.server.fr/path-to/proxy.pac"</td></tr>';\r
+    print '</table>';\r
\r
+}\r
+\r
+print <<END\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+    <td width='30%' class='boldbase' align='center'><b>$Lang::tr{'dhcp advopt name'}</b></td>\r
+    <td width='50%' class='boldbase' align='center'><b>$Lang::tr{'dhcp advopt value'}</b></td>\r
+    <td width='20%' class='boldbase' align='center'><b>$Lang::tr{'dhcp advopt scope'}</b></td>\r
+    <td colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+END\r
+;\r
+my $key = 0;\r
+foreach my $line (@current1) {\r
+    my $gif = '';\r
+    my $gdesc = '';\r
+    chomp($line);   # remove newline\r
+    my @temp = split(/\t/,$line);\r
+\r
+    if ($temp[0] eq "on") {\r
+       $gif = 'on.gif';\r
+       $gdesc = $Lang::tr{'click to disable'};\r
+    } else {\r
+       $gif = 'off.gif';\r
+       $gdesc = $Lang::tr{'click to enable'}; \r
+    }\r
+\r
+    if ($dhcpsettings{'KEY1'} eq $key) {\r
+       print "<tr bgcolor='${Header::colouryellow}'>";\r
+    } elsif ($key % 2) {\r
+       print "<tr bgcolor='${Header::table2colour}'>";\r
+    } else {\r
+       print "<tr bgcolor='${Header::table1colour}'>"; \r
+    }\r
+\r
+    print <<END\r
+<td align='center'>$temp[1]</td>\r
+<td align='center'>$temp[2]</td>\r
+<td align='center'>\r
+END\r
+;\r
+    # Prepare a global flag to make easy reading\r
+    my $global = '';\r
+    my $disabledTogle = '';\r
+    my $disabledEditRemove = '';\r
+    if ( ExistNewOptionDefinition ($temp[1] . ' ' . $temp[2]) ) {\r
+       $global = $Lang::tr{'dhcp advopt definition'};\r
+       $disabledTogle = "disabled='disabled'";\r
+       # Search if it is a used NewOptionDefinition to also disable edit & delete\r
+       $disabledEditRemove = "disabled='disabled'" if (IsUsedNewOptionDefinition ($temp[1], $temp[2]));\r
+    } else {\r
+       $global = $Lang::tr{'dhcp advopt scope global'};\r
+    }\r
+    \r
+    \r
+    # Print each checked interface\r
+    for (my $key=0; $key<@ITFs; $key++) {\r
+       my $itf = $temp[3+$key];\r
+       if ($itf ne 'off') {    # Only if an interface name is read\r
+           print "$itf";\r
+           $global='';         # fall to local scope !\r
+       }\r
+    }\r
+    print <<END\r
+$global</td>\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}1' />\r
+<input $disabledTogle type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}1' />\r
+<input $disabledEditRemove type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}1' />\r
+<input $disabledEditRemove type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+</tr>\r
+END\r
+;\r
+    $key++;\r
+}\r
+\r
+print "</table>";\r
+\r
+# If there are dhcp options, print Key to action icons\r
+if ($key) {\r
+print <<END\r
+<table>\r
+<tr>\r
+       <td class='boldbase'>&nbsp;<b>$Lang::tr{'legend'}:&nbsp;</b></td>\r
+       <td><img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to disable'}</td>\r
+       <td>&nbsp;&nbsp;</td>\r
+       <td><img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to enable'}</td>\r
+       <td>&nbsp;&nbsp;</td>\r
+       <td><img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>\r
+       <td class='base'>$Lang::tr{'edit'}</td>\r
+       <td>&nbsp;&nbsp;</td>\r
+       <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>\r
+       <td class='base'>$Lang::tr{'remove'}</td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+}\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'current fixed leases'});\r
+# Fixed leases screens\r
+$checked{'FIX_ENABLED'}{'on'} = ($dhcpsettings{'FIX_ENABLED'} ne 'on') ? '' : "checked='checked'";\r
+\r
+$buttontext = $Lang::tr{'add'};\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'><table width='100%'>";\r
+\r
+if ($dhcpsettings{'KEY2'} ne '') {\r
+    $buttontext = $Lang::tr{'update'};\r
+    print "<tr><td class='boldbase' colspan='3'><b>$Lang::tr{'edit an existing lease'}</b></td></tr>";\r
+} else {\r
+    print "<tr><td class='boldbase' colspan='3'><b>$Lang::tr{'add new lease'}</b></td></tr>"\r
+}\r
+print <<END\r
+<tr>\r
+    <td class='base'>$Lang::tr{'mac address'}:</td>\r
+    <td><input type='text' name='FIX_MAC' value='$dhcpsettings{'FIX_MAC'}' size='18' /></td>\r
+    <td class='base'>$Lang::tr{'ip address'}:</td>\r
+    <td><input type='text' name='FIX_ADDR' value='$dhcpsettings{'FIX_ADDR'}' size='18' /></td>\r
+    <td class='base'>$Lang::tr{'remark'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='FIX_REMARK' value='$dhcpsettings{'FIX_REMARK'}' size='18' /></td>\r
+</tr><tr>\r
+    <td class='base'>$Lang::tr{'enabled'}</td><td><input type='checkbox' name='FIX_ENABLED' $checked{'FIX_ENABLED'}{'on'} /></td>\r
+</tr><tr>\r
+    <td colspan = '3'><b>$Lang::tr{'dhcp bootp pxe data'}</b></td>\r
+</tr><tr>\r
+    <td class='base'>next-server:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='FIX_NEXTADDR' value='$dhcpsettings{'FIX_NEXTADDR'}' size='18' /></td>\r
+    <td class='base'>filename:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='FIX_FILENAME' value='$dhcpsettings{'FIX_FILENAME'}' size='18' /></td>\r
+    <td class='base'>root path:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='FIX_ROOTPATH' value='$dhcpsettings{'FIX_ROOTPATH'}' size='18' /></td>\r
+</tr>\r
+</table>\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td>\r
+    <td width='50%' align='center'>\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'add'}2' />\r
+       <input type='submit' name='SUBMIT' value='$buttontext' />\r
+       <input type='hidden' name='KEY2' value='$dhcpsettings{'KEY2'}' /></td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+#Edited line number (KEY2) passed until cleared by 'save' or 'remove' or 'new sort order'\r
+\r
+print <<END\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+    <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?FETHER'><b>$Lang::tr{'mac address'}</b></a></td>\r
+    <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?FIPADDR'><b>$Lang::tr{'ip address'}</b></a></td>\r
+    <td width='15%' align='center'><b>$Lang::tr{'remark'}</b></td>\r
+    <td width='15%' class='boldbase' align='center'><b>next-server</b></td>\r
+    <td width='15%' class='boldbase' align='center'><b>filename</b></td>\r
+    <td width='15%' class='boldbase' align='center'><b>root path</b></td>\r
+    <td colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+END\r
+;\r
+my $ipdup = 0;\r
+my %ipinuse = ();\r
+my %macdupl = (); # Duplicate MACs have to be on different subnets\r
+my %ipoutside = ();\r
+\r
+# mark duplicate ip or duplicate MAC\r
+foreach my $line (@current2) {\r
+    my @temp = split(/\,/,$line);\r
+    $macdupl{$temp[0]} += 1;\r
+    if ($macdupl{$temp[0]} > 1) { \r
+       $ipdup = 1;     # Flag up duplicates for use later\r
+    }\r
+    $ipinuse{$temp[1]} += 1;\r
+    if ($ipinuse{$temp[1]} > 1) { \r
+       $ipdup = 1;     # Flag up duplicates for use later\r
+    }\r
+    # Mark IP addresses outwith known subnets\r
+    $ipoutside{$temp[1]} = 1;\r
+    foreach my $itf (@ITFs) {\r
+        if ( &General::IpInSubnet($temp[1],\r
+                $netsettings{"${itf}_NETADDRESS"}, \r
+                $netsettings{"${itf}_NETMASK"})) {\r
+            $ipoutside{$temp[1]} = 0;\r
+        }\r
+    }\r
+}\r
+\r
+$key = 0;\r
+foreach my $line (@current2) {\r
+    my $gif = '';\r
+    my $gdesc = '';\r
+    chomp($line);   # remove newline\r
+    my @temp = split(/\,/,$line);\r
+\r
+    if ($temp[2] eq "on") {\r
+       $gif = 'on.gif';\r
+       $gdesc = $Lang::tr{'click to disable'};\r
+    } else {\r
+       $gif = 'off.gif';\r
+       $gdesc = $Lang::tr{'click to enable'}; \r
+    }\r
+\r
+    if ($dhcpsettings{'KEY2'} eq $key) {\r
+       print "<tr bgcolor='${Header::colouryellow}'>";\r
+    } elsif ($key % 2) {\r
+       print "<tr bgcolor='${Header::table2colour}'>";\r
+    } else {\r
+       print "<tr bgcolor='${Header::table1colour}'>"; \r
+    }\r
+    my $TAG0 = '';\r
+    my $TAG1 = '';\r
+    my $TAG2 = '';\r
+    my $TAG3 = '';\r
+    my $TAG4 = '';\r
+    if ($ipinuse{$temp[1]} > 1) { \r
+       $TAG0 = '<b>';\r
+       $TAG1 = '</b>';\r
+    }\r
+    if ($macdupl{$temp[0]} > 1) { \r
+       $TAG2 = '<b>';\r
+       $TAG3 = '</b>';\r
+    }\r
+    if ($ipoutside{$temp[1]} > 0) { \r
+       $TAG4 = "bgcolor='orange'" if ($dhcpsettings{'KEY2'} ne $key);\r
+    }\r
+\r
+    print <<END\r
+<td align='center'>$TAG2$temp[0]$TAG3</td>\r
+<td align='center' $TAG4>$TAG0$temp[1]$TAG1</td>\r
+<td align='center'>$temp[6]&nbsp;</td>\r
+<td align='center'>$temp[3]&nbsp;</td>\r
+<td align='center'>$temp[4]&nbsp;</td>\r
+<td align='center'>$temp[5]&nbsp;</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}2' />\r
+<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />\r
+<input type='hidden' name='KEY2' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}2' />\r
+<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />\r
+<input type='hidden' name='KEY2' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}2' />\r
+<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />\r
+<input type='hidden' name='KEY2' value='$key' />\r
+</form>\r
+</td>\r
+</tr>\r
+END\r
+;\r
+    $key++;\r
+}\r
+print "</table>";\r
+\r
+# If the fixed lease file contains entries, print Key to action icons\r
+if ($key) {\r
+my $dup = $ipdup ? "<td class='base'>$Lang::tr{'duplicate ip bold'}</td>" :'';\r
+print <<END\r
+<table>\r
+<tr>\r
+       <td class='boldbase'>&nbsp;<b>$Lang::tr{'legend'}:&nbsp;</b></td>\r
+       <td><img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to disable'}</td>\r
+       <td>&nbsp;&nbsp;</td>\r
+       <td><img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to enable'}</td>\r
+       <td>&nbsp;&nbsp;</td>\r
+       <td><img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>\r
+       <td class='base'>$Lang::tr{'edit'}</td>\r
+       <td>&nbsp;&nbsp;</td>\r
+       <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>\r
+       <td class='base'>$Lang::tr{'remove'}</td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td bgcolor='orange'>&nbsp;</td>\r
+       <td class='base'>$Lang::tr{'ip address outside subnets'}</td>\r
+       <td>&nbsp;</td>\r
+       <td>&nbsp;</td>\r
+       $dup\r
+</tr>\r
+</table>\r
+END\r
+;\r
+}\r
+\r
+&Header::closebox();\r
+\r
+\r
+foreach my $itf (@ITFs) {\r
+    if ($dhcpsettings{"ENABLE_${itf}"} eq 'on') {\r
+       # display leases with a list of actions to do with the global select checkbox.\r
+       &Header::PrintActualLeases("+");        # "+" => create fixed leases from nodeaddress\r
+       last;                   #Print one time only for all interfaces\r
+    };\r
+}\r
+\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+## Ouf it's the end !\r
+\r
+sub sortcurrent1  # by now, do not sort, just write\r
+{\r
+    open(FILE, ">$filename1") or die 'Unable to open dhcp advanced options file.';\r
+    print FILE @current1;\r
+    close(FILE);\r
+}\r
+\r
+\r
+# Sort the "current2" array according to choices\r
+sub sortcurrent2\r
+{\r
+    our %entries = ();\r
+\r
+    sub fixedleasesort {\r
+       my $qs='';\r
+       if (rindex ($dhcpsettings{'SORT_FLEASELIST'},'Rev') != -1) {\r
+           $qs=substr ($dhcpsettings{'SORT_FLEASELIST'},0,length($dhcpsettings{'SORT_FLEASELIST'})-3);\r
+           if ($qs eq 'FIPADDR') {\r
+               my @a = split(/\./,$entries{$a}->{$qs});\r
+               my @b = split(/\./,$entries{$b}->{$qs});\r
+               ($b[0]<=>$a[0]) ||\r
+               ($b[1]<=>$a[1]) ||\r
+               ($b[2]<=>$a[2]) ||\r
+               ($b[3]<=>$a[3]);\r
+           } else {\r
+               $entries{$b}->{$qs} cmp $entries{$a}->{$qs};\r
+           }\r
+       } else { #not reverse\r
+           $qs=$dhcpsettings{'SORT_FLEASELIST'};\r
+           if ($qs eq 'FIPADDR') {\r
+               my @a = split(/\./,$entries{$a}->{$qs});\r
+               my @b = split(/\./,$entries{$b}->{$qs});\r
+               ($a[0]<=>$b[0]) ||\r
+               ($a[1]<=>$b[1]) ||\r
+               ($a[2]<=>$b[2]) ||\r
+               ($a[3]<=>$b[3]);\r
+           } else {\r
+               $entries{$a}->{$qs} cmp $entries{$b}->{$qs};\r
+           }\r
+       }\r
+    }\r
+\r
+    #Use an associative array (%entries)\r
+    foreach my $line (@current2) {\r
+       chomp( $line); #remove newline because can be on field 5 or 6 (addition of REMARK)\r
+       my @temp = split (',',$line);\r
+       my @record = ('FETHER',$temp[0],'FIPADDR',$temp[1],'DATA',join(',',@temp[2..6]));\r
+       my $record = {};                        # create a reference to empty hash\r
+       %{$record} = @record;                   # populate that hash with @record\r
+       # use combination of ether & IP as key to allow duplicates in either but not both\r
+       $entries{$record->{FETHER} . $record->{FIPADDR}} = $record; # add this to a hash of hashes\r
+    }\r
+    \r
+    open(FILE, ">$filename2") or die 'Unable to open fixed lease file.';\r
+    foreach my $entry ( sort fixedleasesort keys %entries) {\r
+       print FILE "$entries{$entry}->{FETHER},$entries{$entry}->{FIPADDR},$entries{$entry}->{DATA}\n";\r
+    }\r
+    close(FILE);\r
+\r
+    # Reload sorted  @current2\r
+    open (FILE, "$filename2");\r
+    @current2 = <FILE>;\r
+    close (FILE);\r
+    undef (%entries);  #This array is reused latter. Clear it.\r
+}\r
+                                                   \r
+# Build the configuration file mixing  settings, fixed leases and advanced options\r
+sub buildconf {\r
+    open(FILE, ">/${General::swroot}/dhcp/dhcpd.conf") or die "Unable to write dhcpd.conf file";\r
+    flock(FILE, 2);\r
+\r
+    # Global settings\r
+    print FILE "ddns-update-style none;\n";\r
+    print FILE "deny bootp;    #default\n";\r
+    print FILE "authoritative;\n";\r
+    \r
+    # Write first new option definition\r
+    foreach my $line (@current1) {\r
+       chomp($line);   # remove newline\r
+       my @temp = split(/\t/,$line);\r
+        if (ExistNewOptionDefinition ($temp[1] . ' ' . $temp[2])) {\r
+               print FILE "option $temp[1] $temp[2];\n";\r
+       }\r
+    }\r
+    # Write other global options\r
+    foreach my $line (@current1) {\r
+       chomp($line);   # remove newline\r
+       my @temp = split(/\t/,$line);\r
+       \r
+       if ($temp[0] eq 'on' && !ExistNewOptionDefinition ($temp[1] . ' ' . $temp[2])){ # active & !definition\r
+           my $global=1;\r
+           for (my $key=0; $key<@ITFs; $key++) {\r
+               my $itf = $temp[3+$key];\r
+               if ($itf ne 'off') # Only if an interface name is read\r
+               {\r
+                   $global=0;\r
+               }\r
+           }\r
+           if ($global) {\r
+               print FILE "option $temp[1] $temp[2];\n";\r
+           }\r
+       }# on    \r
+    }# foreach line\r
+\r
+    #Subnet range definition\r
+    foreach my $itf (@ITFs) {\r
+       my $lc_itf=lc($itf);\r
+       if ($dhcpsettings{"ENABLE_${itf}"} eq 'on' ){\r
+           print FILE "\nsubnet " . $netsettings{"${itf}_NETADDRESS"} . " netmask ". $netsettings{"${itf}_NETMASK"} . " #$itf\n";\r
+           print FILE "{\n";\r
+           print FILE "\trange " . $dhcpsettings{"START_ADDR_${itf}"} . ' ' . $dhcpsettings{"END_ADDR_${itf}"}.";\n" if ($dhcpsettings{"START_ADDR_${itf}"});\r
+           print FILE "\toption subnet-mask "   . $netsettings{"${itf}_NETMASK"} . ";\n";\r
+           print FILE "\toption domain-name \"" . $dhcpsettings{"DOMAIN_NAME_${itf}"} . "\";\n";\r
+           print FILE "\toption routers " . $netsettings{"${itf}_ADDRESS"} . ";\n";\r
+           print FILE "\toption domain-name-servers " . $dhcpsettings{"DNS1_${itf}"}  if ($dhcpsettings{"DNS1_${itf}"});\r
+           print FILE ", " . $dhcpsettings{"DNS2_${itf}"}                             if ($dhcpsettings{"DNS2_${itf}"});\r
+           print FILE ";\n"                                                           if ($dhcpsettings{"DNS1_${itf}"});\r
+           print FILE "\toption ntp-servers " . $dhcpsettings{"NTP1_${itf}"}          if ($dhcpsettings{"NTP1_${itf}"});\r
+           print FILE ", " . $dhcpsettings{"NTP2_${itf}"}                             if ($dhcpsettings{"NTP2_${itf}"});\r
+           print FILE ";\n"                                                           if ($dhcpsettings{"NTP1_${itf}"});\r
+           print FILE "\toption netbios-name-servers " . $dhcpsettings{"WINS1_${itf}"}     if ($dhcpsettings{"WINS1_${itf}"});\r
+           print FILE ", " . $dhcpsettings{"WINS2_${itf}"}                            if ($dhcpsettings{"WINS2_${itf}"});\r
+           print FILE ";\n"                                                           if ($dhcpsettings{"WINS1_${itf}"});\r
+           print FILE "\tdefault-lease-time " . ($dhcpsettings{"DEFAULT_LEASE_TIME_${itf}"} * 60). ";\n";\r
+           print FILE "\tmax-lease-time "     . ($dhcpsettings{"MAX_LEASE_TIME_${itf}"} * 60)    . ";\n";\r
+           print FILE "\tallow bootp;\n" if ($dhcpsettings{"ENABLEBOOTP_${itf}"} eq 'on');\r
+\r
+\r
+\r
+           # Write scoped options\r
+           foreach my $line (@current1) {\r
+               chomp($line);   # remove newline\r
+               my @temp = split(/\t/,$line);           # Use TAB separator !\r
+       \r
+               if ($temp[0] eq 'on'){\r
+                   for (my $key=0; $key<@ITFs; $key++) {\r
+                       if ($itf eq $temp[3+$key]) # Only is an interface name is read\r
+                       {\r
+                           print FILE "\toption $temp[1] $temp[2];\n";\r
+                       }\r
+                   }\r
+               }# on    \r
+           }# foreach line\r
+           print FILE "} #$itf\n";\r
+\r
+           system ('/bin/touch', "${General::swroot}/dhcp/enable_${lc_itf}");\r
+           &General::log("DHCP on ${itf}: " . $Lang::tr{'dhcp server enabled'})\r
+       } else {\r
+           unlink "${General::swroot}/dhcp/enable_${lc_itf}";\r
+           &General::log("DHCP on ${itf}: " . $Lang::tr{'dhcp server disabled'})\r
+       }\r
+    }\r
+\r
+    #write fixed leases if any. Does not handle duplicates to write them elsewhere than the global scope.\r
+    my $key = 0;\r
+    foreach my $line (@current2) {\r
+       chomp($line);\r
+       my @temp = split(/\,/,$line);\r
+       if ($temp[2] eq "on") {\r
+           print FILE "\nhost fix$key # $temp[6]\n";\r
+           print FILE "{\n";\r
+           print FILE "\thardware ethernet $temp[0];\n";\r
+           print FILE "\tfixed-address $temp[1];\n";\r
+           print FILE "\tnext-server $temp[3];\n"          if ($temp[3]);\r
+           print FILE "\tfilename \"$temp[4]\";\n"         if ($temp[4]);\r
+           print FILE "\toption root-path \"$temp[5]\";\n" if ($temp[5]);\r
+           print FILE "}\n";\r
+           $key++;\r
+       }\r
+    }\r
+    close FILE;\r
+    system '/usr/local/bin/restartdhcp';\r
+}\r
+\r
+#\r
+# Receive a string and if it match model for a new option,\r
+# add it to the list %newOptions\r
+#\r
+my %NewOptions = ();\r
+\r
+sub AddNewOptionDefinition {\r
+    my ($line) = @_;\r
+    if ( $line =~ /^([-\w]+)( code \d+=($OptionTypes))/ ) {\r
+       $NewOptions{$1} = $2;\r
+       #&General::log ("new:<$1><$2>");\r
+       return 1;\r
+    }\r
+    return 0;\r
+}\r
+\r
+#\r
+# Check existence of definition for a new option\r
+#\r
+sub ExistNewOptionDefinition {\r
+    my ($line) = @_;\r
+\r
+    if ( $line =~ /^([-\w]+)( code \d+=($OptionTypes))/ ) {\r
+       return defined $NewOptions{$1};\r
+    }\r
+    return 0;\r
+}\r
+\r
+#\r
+# Check if it is a new option (definition must exist)\r
+# "code=" test eliminate a false response when definition exists\r
+# but this string is a definition with bad $OptionTypes.\r
+sub ValidNewOption {\r
+    my ($line) = @_;\r
+    if ($line =~ /^([-\w]+) (.*)/ ) {\r
+       return defined ( $NewOptions{$1} ) && $2 !~ /code=/;\r
+    }\r
+    return 0;\r
+}\r
+\r
+#\r
+# Check if the new option $opt is used, except the definition of itself!\r
+#\r
+sub IsUsedNewOptionDefinition {\r
+    my ($opt,$val) = @_;\r
+\r
+    foreach my $line (@current1) {\r
+       #chomp($line);   # remove newline        #don't know why, but this remove newline in @current1 .... !\r
+       my @temp = split(/\t/,$line);\r
+       # if we find something "opt value" & value != "code nnn=" it's ok.\r
+       return 1 if ( ($opt eq $temp[1]) && ($temp[2] !~ /code \d+=/) );\r
+    }\r
+    return 0;\r
+}\r
diff --git a/html/cgi-bin/dial.cgi b/html/cgi-bin/dial.cgi
new file mode 100644 (file)
index 0000000..88f7bad
--- /dev/null
@@ -0,0 +1,35 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: dial.cgi,v 1.4.2.3 2005/02/22 22:21:55 gespinasse Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %cgiparams=();\r
+\r
+$cgiparams{'ACTION'} = '';\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'dial'}) {\r
+       system('/etc/rc.d/rc.red','start') == 0\r
+       or &General::log("Dial failed: $?"); }\r
+elsif ($cgiparams{'ACTION'} eq $Lang::tr{'hangup'}) {\r
+       system('/etc/rc.d/rc.red','stop') == 0\r
+       or &General::log("Hangup failed: $?"); }\r
+sleep 1;\r
+\r
+print "Status: 302 Moved\nLocation: /cgi-bin/index.cgi\n\n";\r
diff --git a/html/cgi-bin/dmzholes.cgi b/html/cgi-bin/dmzholes.cgi
new file mode 100644 (file)
index 0000000..64354ee
--- /dev/null
@@ -0,0 +1,440 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: dmzholes.cgi,v 1.9.2.16 2005/10/18 17:05:27 franck78 Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::table2colour}, ${Header::colouryellow} );\r
+undef (@dummy);\r
+\r
+my %cgiparams=();\r
+my %checked=();\r
+my %selected=();\r
+my %netsettings=();\r
+my $errormessage = '';\r
+my $filename = "${General::swroot}/dmzholes/config";\r
+\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+\r
+&Header::showhttpheaders();\r
+\r
+$cgiparams{'ENABLED'} = 'off';\r
+$cgiparams{'REMARK'} = '';\r
+$cgiparams{'ACTION'} = '';\r
+$cgiparams{'SRC_IP'} = '';\r
+$cgiparams{'DEST_IP'} ='';\r
+$cgiparams{'DEST_PORT'} = '';\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+open(FILE, $filename) or die 'Unable to open config file.';\r
+my @current = <FILE>;\r
+close(FILE);\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'add'})\r
+{\r
+       unless($cgiparams{'PROTOCOL'} =~ /^(tcp|udp)$/) { $errormessage = $Lang::tr{'invalid input'}; }\r
+       unless(&General::validipormask($cgiparams{'SRC_IP'})) { $errormessage = $Lang::tr{'source ip bad'}; }\r
+       unless($errormessage){$errormessage = &General::validportrange($cgiparams{'DEST_PORT'},'dst');}\r
+       unless(&General::validipormask($cgiparams{'DEST_IP'})) { $errormessage = $Lang::tr{'destination ip bad'}; }\r
+       unless ($errormessage) {\r
+               $errormessage = &validNet($cgiparams{'SRC_NET'},$cgiparams{'DEST_NET'}); }\r
+       # Darren Critchley - Remove commas from remarks\r
+       $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'});\r
+\r
+       unless ($errormessage)\r
+       {\r
+               if($cgiparams{'EDITING'} eq 'no') {\r
+                       open(FILE,">>$filename") or die 'Unable to open config file.';\r
+                       flock FILE, 2;\r
+                       print FILE "$cgiparams{'PROTOCOL'},";           # [0]\r
+                       print FILE "$cgiparams{'SRC_IP'},";             # [1]\r
+                       print FILE "$cgiparams{'DEST_IP'},";            # [2]\r
+                       print FILE "$cgiparams{'DEST_PORT'},";          # [3]\r
+                       print FILE "$cgiparams{'ENABLED'},";            # [4]\r
+                       print FILE "$cgiparams{'SRC_NET'},";            # [5]\r
+                       print FILE "$cgiparams{'DEST_NET'},";           # [6]\r
+                       print FILE "$cgiparams{'REMARK'}\n";            # [7]\r
+               } else {\r
+                       open(FILE,">$filename") or die 'Unable to open config file.';\r
+                       flock FILE, 2;\r
+                       my $id = 0;\r
+                       foreach my $line (@current)\r
+                       {\r
+                               $id++;\r
+                               if ($cgiparams{'EDITING'} eq $id) {\r
+                                       print FILE "$cgiparams{'PROTOCOL'},";           # [0]\r
+                                       print FILE "$cgiparams{'SRC_IP'},";             # [1]\r
+                                       print FILE "$cgiparams{'DEST_IP'},";            # [2]\r
+                                       print FILE "$cgiparams{'DEST_PORT'},";          # [3]\r
+                                       print FILE "$cgiparams{'ENABLED'},";            # [4]\r
+                                       print FILE "$cgiparams{'SRC_NET'},";            # [5]\r
+                                       print FILE "$cgiparams{'DEST_NET'},";           # [6]\r
+                                       print FILE "$cgiparams{'REMARK'}\n";            # [7]\r
+                               } else { print FILE "$line"; }\r
+                       }\r
+               }\r
+               close(FILE);\r
+               undef %cgiparams;\r
+               &General::log($Lang::tr{'dmz pinhole rule added'});\r
+               system('/usr/local/bin/setdmzholes');\r
+       }\r
+}\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'})\r
+{\r
+       my $id = 0;\r
+       open(FILE, ">$filename") or die 'Unable to open config file.';\r
+       flock FILE, 2;\r
+       foreach my $line (@current)\r
+       {\r
+               $id++;\r
+               unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; }\r
+       }\r
+       close(FILE);\r
+       system('/usr/local/bin/setdmzholes');\r
+       &General::log($Lang::tr{'dmz pinhole rule removed'});\r
+}\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'})\r
+{\r
+       my $id = 0;\r
+       open(FILE, ">$filename") or die 'Unable to open config file.';\r
+       flock FILE, 2;\r
+       foreach my $line (@current)\r
+       {\r
+               $id++;\r
+               unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; }\r
+               else\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$cgiparams{'ENABLE'},$temp[5],$temp[6],$temp[7]\n";\r
+               }\r
+       }\r
+       close(FILE);\r
+       system('/usr/local/bin/setdmzholes');\r
+}\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'})\r
+{\r
+       my $id = 0;\r
+       foreach my $line (@current)\r
+       {\r
+               $id++;\r
+               if ($cgiparams{'ID'} eq $id)\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       $cgiparams{'PROTOCOL'} = $temp[0];\r
+                       $cgiparams{'SRC_IP'} = $temp[1];\r
+                       $cgiparams{'DEST_IP'} = $temp[2];\r
+                       $cgiparams{'DEST_PORT'} = $temp[3];\r
+                       $cgiparams{'ENABLED'} = $temp[4];\r
+                       $cgiparams{'SRC_NET'} = $temp[5];\r
+                       $cgiparams{'DEST_NET'} = $temp[6];\r
+                       $cgiparams{'REMARK'} = $temp[7];\r
+               }\r
+       }\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq '')\r
+{\r
+       $cgiparams{'PROTOCOL'} = 'tcp';\r
+       $cgiparams{'ENABLED'} = 'on';\r
+       $cgiparams{'SRC_NET'} = 'orange';\r
+       $cgiparams{'DEST_NET'} = 'blue';\r
+}\r
+\r
+$selected{'PROTOCOL'}{'udp'} = '';\r
+$selected{'PROTOCOL'}{'tcp'} = '';\r
+$selected{'PROTOCOL'}{$cgiparams{'PROTOCOL'}} = "selected='selected'";\r
+\r
+$selected{'SRC_NET'}{'orange'} = '';\r
+$selected{'SRC_NET'}{'blue'} = '';\r
+$selected{'SRC_NET'}{$cgiparams{'SRC_NET'}} = "selected='selected'";\r
+\r
+$selected{'DEST_NET'}{'blue'} = '';\r
+$selected{'DEST_NET'}{'green'} = '';\r
+$selected{'DEST_NET'}{$cgiparams{'DEST_NET'}} = "selected='selected'";\r
+\r
+$checked{'ENABLED'}{'off'} = '';\r
+$checked{'ENABLED'}{'on'} = '';\r
+$checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'";\r
+\r
+&Header::openpage($Lang::tr{'dmz pinhole configuration'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<class name='base'>$errormessage\n";\r
+       print "&nbsp;</class>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+my $buttonText = $Lang::tr{'add'};\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'edit a rule'});\r
+       $buttonText = $Lang::tr{'update'};\r
+} else {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'add a new rule'});\r
+}\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+<td>\r
+       <select name='PROTOCOL'>\r
+               <option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option>\r
+               <option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option>\r
+       </select>\r
+</td>\r
+<td>\r
+       $Lang::tr{'source net'}:</td>\r
+<td>\r
+       <select name='SRC_NET'>\r
+END\r
+;\r
+       if (&haveOrangeNet()) {\r
+               print "<option value='orange' $selected{'SRC_NET'}{'orange'}>$Lang::tr{'orange'}</option>";\r
+       }\r
+       if (&haveBlueNet()) {\r
+               print "<option value='blue' $selected{'SRC_NET'}{'blue'}>$Lang::tr{'blue'}</option>";\r
+       }\r
+print <<END\r
+       </select>\r
+</td>\r
+<td class='base'>$Lang::tr{'source ip or net'}:</td>\r
+<td><input type='text' name='SRC_IP' value='$cgiparams{'SRC_IP'}' size='15' /></td>\r
+</tr>\r
+<tr>\r
+<td>\r
+       &nbsp;</td>\r
+<td>\r
+       $Lang::tr{'destination net'}:</td>\r
+<td>\r
+       <select name='DEST_NET'>\r
+END\r
+;\r
+       if (&haveOrangeNet() && &haveBlueNet()) {\r
+               print "<option value='blue' $selected{'DEST_NET'}{'blue'}>$Lang::tr{'blue'}</option>";\r
+       }\r
+\r
+print <<END\r
+               <option value='green' $selected{'DEST_NET'}{'green'}>$Lang::tr{'green'}</option>\r
+       </select>\r
+</td>\r
+<td class='base'>\r
+       $Lang::tr{'destination ip or net'}:</td>\r
+<td>\r
+       <input type='text' name='DEST_IP' value='$cgiparams{'DEST_IP'}' size='15' />\r
+</td>\r
+<td class='base'>\r
+       $Lang::tr{'destination port'}:&nbsp;\r
+       <input type='text' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='5' />\r
+</td>\r
+</tr>\r
+</table>\r
+<table width='100%'>\r
+       <tr>\r
+               <td colspan='3' width='50%' class='base'>\r
+                       <font class='boldbase'>$Lang::tr{'remark title'}&nbsp;<img src='/blob.gif' alt='*' /></font>\r
+                       <input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' />\r
+               </td>\r
+       </tr>\r
+       <tr>\r
+               <td class='base' width='50%'>\r
+                       <img src='/blob.gif' alt ='*' align='top' />&nbsp;\r
+                       <font class='base'>$Lang::tr{'this field may be blank'}</font>\r
+               </td>\r
+               <td class='base' width='25%' align='center'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td>\r
+               <td width='25%' align='center'>\r
+                       <input type='hidden' name='ACTION' value='$Lang::tr{'add'}' />\r
+                       <input type='submit' name='SUBMIT' value='$buttonText' />\r
+               </td>\r
+       </tr>\r
+</table>\r
+END\r
+;\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) {\r
+       print "<input type='hidden' name='EDITING' value='$cgiparams{'ID'}' />\n";\r
+} else {\r
+       print "<input type='hidden' name='EDITING' value='no' />\n";\r
+}\r
+&Header::closebox();\r
+print "</form>\n";\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'current rules'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+<td width='7%' class='boldbase' align='center'><b>$Lang::tr{'proto'}</b></td>\r
+<td width='3%' class='boldbase' align='center'><b>$Lang::tr{'net'}</b></td>\r
+<td width='25%' class='boldbase' align='center'><b>$Lang::tr{'source'}</b></td>\r
+<td width='2%' class='boldbase' align='center'>&nbsp;</td>\r
+<td width='3%' class='boldbase' align='center'><b>$Lang::tr{'net'}</b></td>\r
+<td width='25%' class='boldbase' align='center'><b>$Lang::tr{'destination'}</b></td>\r
+<td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td>\r
+<td width='1%' class='boldbase' align='center'>&nbsp;</td>\r
+<td width='4%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td>\r
+END\r
+;\r
+\r
+# Achim Weber: if i add a new rule, this rule is not displayed?!?\r
+#                                                      we re-read always config.\r
+# If something has happeened re-read config\r
+#if($cgiparams{'ACTION'} ne '')\r
+#{\r
+       open(FILE, $filename) or die 'Unable to open config file.';\r
+       @current = <FILE>;\r
+       close(FILE);\r
+#}\r
+my $id = 0;\r
+foreach my $line (@current)\r
+{\r
+       my $protocol='';\r
+       my $gif='';\r
+       my $toggle='';\r
+       my $gdesc='';\r
+       $id++;\r
+       chomp($line);\r
+       my @temp = split(/\,/,$line);\r
+       if ($temp[0] eq 'udp') { $protocol = 'UDP'; } else { $protocol = 'TCP' }\r
+\r
+       my $srcnetcolor = ($temp[5] eq 'blue')? ${Header::colourblue} : ${Header::colourorange};\r
+       my $destnetcolor = ($temp[6] eq 'blue')? ${Header::colourblue} : ${Header::colourgreen};\r
+\r
+       if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'ID'} eq $id) {\r
+               print "<tr bgcolor='${Header::colouryellow}'>\n"; }\r
+       elsif ($id % 2) {\r
+               print "<tr bgcolor='${Header::table1colour}'>\n"; }\r
+       else {\r
+               print "<tr bgcolor='${Header::table2colour}'>\n"; }\r
+       if ($temp[4] eq 'on') { $gif='on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};}\r
+       else { $gif = 'off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; }\r
+\r
+       # Darren Critchley - Get Port Service Name if we can - code borrowed from firewalllog.dat\r
+       my $dstprt =$temp[3];\r
+       $_=$temp[3];\r
+       if (/^\d+$/) {\r
+               my $servi = uc(getservbyport($temp[3], lc($temp[0])));\r
+               if ($servi ne '' && $temp[3] < 1024) {\r
+                       $dstprt = "$dstprt($servi)"; }\r
+       }\r
+       # Darren Critchley - If the line is too long, wrap the port numbers\r
+       my $dstaddr = "$temp[2] : $dstprt";\r
+       if (length($dstaddr) > 26) {\r
+               $dstaddr = "$temp[2] :<br /> $dstprt";\r
+       }\r
+print <<END\r
+<td align='center'>$protocol</td>\r
+<td bgcolor='$srcnetcolor'></td>\r
+<td align='center'>$temp[1]</td>\r
+<td align='center'><img src='/images/forward.gif' /></td>\r
+<td bgcolor='$destnetcolor'></td>\r
+<td align='center'>$dstaddr</td>\r
+<td align='center'>$temp[7]</td>\r
+\r
+<td align='center'>\r
+<form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' />\r
+<input type='hidden' name='ID' value='$id' />\r
+<input type='hidden' name='ENABLE' value='$toggle' />\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' />\r
+<input type='hidden' name='ID' value='$id' />\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' />\r
+<input type='hidden' name='ID' value='$id' />\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />\r
+</form>\r
+</td>\r
+\r
+</tr>\r
+END\r
+       ;\r
+}\r
+print "</table>\n";\r
+\r
+# If the fixed lease file contains entries, print Key to action icons\r
+if ( ! -z "$filename") {\r
+print <<END\r
+<table>\r
+<tr>\r
+       <td class='boldbase'>&nbsp; <b>$Lang::tr{'legend'}:</b></td>\r
+       <td>&nbsp; <img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to disable'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to enable'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>\r
+       <td class='base'>$Lang::tr{'edit'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>\r
+       <td class='base'>$Lang::tr{'remove'}</td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+}\r
+\r
+&Header::closebox();\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
+sub validNet\r
+{\r
+       my $srcNet      = $_[0];\r
+       my $destNet     = $_[1];\r
+\r
+       if ($srcNet eq $destNet) {\r
+               return $Lang::tr{'dmzpinholes for same net not necessary'}; }\r
+       unless ($srcNet =~ /^(blue|orange)$/) {\r
+               return $Lang::tr{'select source net'}; }\r
+       unless ($destNet =~ /^(blue|green)$/) {\r
+               return $Lang::tr{'select dest net'}; }\r
+               \r
+       return '';\r
+}\r
+\r
+sub haveOrangeNet\r
+{\r
+       if ($netsettings{'CONFIG_TYPE'} == 1) {return 1;}\r
+       if ($netsettings{'CONFIG_TYPE'} == 3) {return 1;}\r
+       if ($netsettings{'CONFIG_TYPE'} == 5) {return 1;}\r
+       if ($netsettings{'CONFIG_TYPE'} == 7) {return 1;}\r
+       return 0;\r
+}\r
+\r
+sub haveBlueNet\r
+{\r
+       if ($netsettings{'CONFIG_TYPE'} == 4) {return 1;}\r
+       if ($netsettings{'CONFIG_TYPE'} == 5) {return 1;}\r
+       if ($netsettings{'CONFIG_TYPE'} == 6) {return 1;}\r
+       if ($netsettings{'CONFIG_TYPE'} == 7) {return 1;}\r
+       return 0;\r
+}\r
diff --git a/html/cgi-bin/graphs.cgi b/html/cgi-bin/graphs.cgi
new file mode 100644 (file)
index 0000000..5c6f915
--- /dev/null
@@ -0,0 +1,148 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: graphs.cgi,v 1.9.2.6 2005/02/22 22:21:55 gespinasse Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %cgiparams=();\r
+my %pppsettings=();\r
+my %netsettings=();\r
+my @cgigraphs=();\r
+my @graphs=();\r
+my $iface='';\r
+\r
+&Header::showhttpheaders();\r
+\r
+my $graphdir = "/home/httpd/html/graphs";\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+\r
+$ENV{'QUERY_STRING'} =~ s/&//g;\r
+@cgigraphs = split(/graph=/,$ENV{'QUERY_STRING'});\r
+$cgigraphs[1] = '' unless defined $cgigraphs[1];\r
+\r
+if ($cgigraphs[1] =~ /(network|GREEN|BLUE|ORANGE|RED)/) {\r
+       &Header::openpage($Lang::tr{'network traffic graphs'}, 1, '');\r
+} else {\r
+       &Header::openpage($Lang::tr{'system graphs'}, 1, '');\r
+}\r
+&Header::openbigbox('100%', 'left');\r
+\r
+if ($cgigraphs[1] =~ /(GREEN|BLUE|ORANGE|RED|cpu|memory|swap|disk)/) {\r
+       my $graph = $cgigraphs[1];\r
+       my $graphname = ucfirst(lc($cgigraphs[1]));\r
+       &Header::openbox('100%', 'center', "$graphname $Lang::tr{'graph'}");\r
+\r
+       if (-e "$graphdir/${graph}-day.png") {\r
+               my $ftime = localtime((stat("$graphdir/${graph}-day.png"))[9]);\r
+               print "<center>";\r
+               print "<b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br /><hr />\n";\r
+               print "<img src='/graphs/${graph}-day.png' border='0' /><hr />";\r
+               print "<img src='/graphs/${graph}-week.png' border='0' /><hr />";\r
+               print "<img src='/graphs/${graph}-month.png' border='0' /><hr />";\r
+               print "<img src='/graphs/${graph}-year.png' border='0' />";\r
+       } else {\r
+               print $Lang::tr{'no information available'};\r
+       }\r
+       &Header::closebox();\r
+       print "<div align='center'><table width='80%'><tr><td align='center'>";\r
+       if ($cgigraphs[1] =~ /(GREEN|BLUE|ORANGE|RED)/) {\r
+               print "<a href='/cgi-bin/graphs.cgi?graph=network'>";\r
+       } else {\r
+               print "<a href='/cgi-bin/graphs.cgi'>";\r
+       }\r
+       print "$Lang::tr{'back'}</a></td></tr></table></div>\n";\r
+       ;\r
+} elsif ($cgigraphs[1] =~ /network/) {\r
+       push (@graphs, ('GREEN'));\r
+       if ($netsettings{'BLUE_DEV'}) {\r
+               push (@graphs, ('BLUE')); }\r
+       if ($netsettings{'ORANGE_DEV'}) {\r
+               push (@graphs, ('ORANGE')); }\r
+       push (@graphs, ("RED"));\r
+\r
+       foreach my $graphname (@graphs) {\r
+               &Header::openbox('100%', 'center', "$graphname $Lang::tr{'graph'}");\r
+\r
+               if (-e "$graphdir/${graphname}-day.png") {\r
+                       my $ftime = localtime((stat("$graphdir/${graphname}-day.png"))[9]);\r
+                       print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";\r
+                       print "<a href='/cgi-bin/graphs.cgi?graph=$graphname'>";\r
+                       print "<img src='/graphs/${graphname}-day.png' border='0' />";\r
+                       print "</a>";\r
+               } else {\r
+                       print $Lang::tr{'no information available'};\r
+               }\r
+               print "<br />\n";\r
+               &Header::closebox();\r
+       }\r
+} else {\r
+       &Header::openbox('100%', 'center', "CPU $Lang::tr{'graph'}");\r
+       if (-e "$graphdir/cpu-day.png") {\r
+               my $ftime = localtime((stat("$graphdir/cpu-day.png"))[9]);\r
+               print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";\r
+               print "<a href='/cgi-bin/graphs.cgi?graph=cpu'>";\r
+               print "<img src='/graphs/cpu-day.png' border='0' />";\r
+               print "</a>";\r
+       } else {\r
+               print $Lang::tr{'no information available'};\r
+       }\r
+       print "<br />\n";\r
+       &Header::closebox();\r
+\r
+       &Header::openbox('100%', 'center', "Memory $Lang::tr{'graph'}");\r
+       if (-e "$graphdir/memory-day.png") {\r
+               my $ftime = localtime((stat("$graphdir/memory-day.png"))[9]);\r
+               print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";\r
+               print "<a href='/cgi-bin/graphs.cgi?graph=memory'>";\r
+               print "<img src='/graphs/memory-day.png' border='0' />";\r
+               print "</a>";\r
+       } else {\r
+               print $Lang::tr{'no information available'};\r
+       }\r
+       print "<br />\n";\r
+       &Header::closebox();\r
+\r
+       &Header::openbox('100%', 'center', "Swap $Lang::tr{'graph'}");\r
+       if (-e "$graphdir/swap-day.png") {\r
+               my $ftime = localtime((stat("$graphdir/swap-day.png"))[9]);\r
+               print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";\r
+               print "<a href='/cgi-bin/graphs.cgi?graph=swap'>";\r
+               print "<img src='/graphs/swap-day.png' border='0' />";\r
+               print "</a>";\r
+       } else {\r
+               print $Lang::tr{'no information available'};\r
+       }\r
+       print "<br />\n";\r
+       &Header::closebox();\r
+\r
+       &Header::openbox('100%', 'center', "Disk $Lang::tr{'graph'}");\r
+       if (-e "$graphdir/disk-day.png") {\r
+               my $ftime = localtime((stat("$graphdir/disk-day.png"))[9]);\r
+               print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";\r
+               print "<a href='/cgi-bin/graphs.cgi?graph=disk'>";\r
+               print "<img src='/graphs/disk-day.png' border='0' />";\r
+               print "</a>";\r
+       } else {\r
+               print $Lang::tr{'no information available'};\r
+       }\r
+       print "<br />\n";\r
+       &Header::closebox();\r
+}\r
+\r
+&Header::closebigbox();\r
+&Header::closepage();\r
diff --git a/html/cgi-bin/gui.cgi b/html/cgi-bin/gui.cgi
new file mode 100644 (file)
index 0000000..3195428
--- /dev/null
@@ -0,0 +1,229 @@
+#!/usr/bin/perl\r
+#\r
+# IPCop CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) Bill Ward\r
+#\r
+# $Id: gui.cgi,v 1.2.2.17 2005/07/06 09:21:22 franck78 Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %cgiparams=();\r
+my %mainsettings=();\r
+my %checked=();\r
+my $errormessage='';\r
+\r
+\r
+$cgiparams{'JAVASCRIPT'} = 'off';\r
+$cgiparams{'WINDOWWITHHOSTNAME'} = 'off';\r
+$cgiparams{'REFRESHINDEX'} = 'off';\r
+$cgiparams{'ACTION'} = '';\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+&Header::showhttpheaders();\r
+&General::readhash("${General::swroot}/main/settings",\%mainsettings);\r
+if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")\r
+{\r
+       open(FILE,"${General::swroot}/langs/list");\r
+       my $found=0;\r
+       while (<FILE>)\r
+       {\r
+               my $lang='';\r
+               my $engname='';\r
+               my $natname='';\r
+               chomp;\r
+               ($lang,$engname,$natname) = split (/:/, $_,3);\r
+               if ($cgiparams{'lang'} eq $lang)\r
+               {\r
+                       $found=1;\r
+               }\r
+       }\r
+       close (FILE);\r
+       if ( $found == 0 )\r
+       {\r
+               $errormessage="$errormessage<P>$Lang::tr{'invalid input'}";\r
+               goto SAVE_ERROR;\r
+       }\r
+\r
+       if ($cgiparams{'JAVASCRIPT'} !~ /^(on|off)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto SAVE_ERROR;\r
+       }  \r
+\r
+        # Set flag if index page is to refresh whilst ppp is up.\r
+        # Default is NO refresh.\r
+        if ($cgiparams{'REFRESHINDEX'} ne 'off') {\r
+            system ('/bin/touch', "${General::swroot}/main/refreshindex");\r
+        } else {\r
+            unlink "${General::swroot}/main/refreshindex";\r
+        }\r
+\r
+        # Beep on ip-up or ip-down. Default is ON.\r
+        if ($cgiparams{'PPPUPDOWNBEEP'} ne 'on') {\r
+            $cgiparams{'PPPUPDOWNBEEP'} = 'off';\r
+            system ('/bin/touch', "${General::swroot}/ppp/nobeeps");\r
+        } else {\r
+            unlink "${General::swroot}/ppp/nobeeps";\r
+        }\r
+\r
+        # write cgi vars to the file.\r
+       $mainsettings{'LANGUAGE'} = $cgiparams{'lang'};\r
+       $mainsettings{'JAVASCRIPT'} = $cgiparams{'JAVASCRIPT'};\r
+       $mainsettings{'WINDOWWITHHOSTNAME'} = $cgiparams{'WINDOWWITHHOSTNAME'};\r
+       $mainsettings{'PPPUPDOWNBEEP'} = $cgiparams{'PPPUPDOWNBEEP'};\r
+       $mainsettings{'REFRESHINDEX'} = $cgiparams{'REFRESHINDEX'};\r
+       &General::writehash("${General::swroot}/main/settings", \%mainsettings);\r
+       &Lang::reload($cgiparams{'lang'});\r
+       SAVE_ERROR:\r
+} else {\r
+       if ($mainsettings{'JAVASCRIPT'}) {\r
+               $cgiparams{'JAVASCRIPT'} = $mainsettings{'JAVASCRIPT'};\r
+       } else {\r
+               $cgiparams{'JAVASCRIPT'} = 'on';\r
+       }\r
+\r
+       if ($mainsettings{'WINDOWWITHHOSTNAME'}) {\r
+               $cgiparams{'WINDOWWITHHOSTNAME'} = $mainsettings{'WINDOWWITHHOSTNAME'};\r
+       } else {\r
+               $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';\r
+       }\r
+\r
+       if ($mainsettings{'PPPUPDOWNBEEP'}) {\r
+               $cgiparams{'PPPUPDOWNBEEP'} = $mainsettings{'PPPUPDOWNBEEP'};\r
+       } else {\r
+               $cgiparams{'PPPUPDOWNBEEP'} = 'on';\r
+       }\r
+\r
+       if($mainsettings{'REFRESHINDEX'}) {\r
+               $cgiparams{'REFRESHINDEX'} = $mainsettings{'REFRESHINDEX'};\r
+       } else {\r
+               $cgiparams{'REFRESHINDEX'} = 'off';\r
+       }\r
+}\r
+\r
+# Default settings\r
+if ($cgiparams{'ACTION'} eq "$Lang::tr{'restore defaults'}")\r
+{\r
+       $cgiparams{'JAVASCRIPT'} = 'on';\r
+       $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';\r
+       $cgiparams{'PPPUPDOWNBEEP'} = 'on';\r
+       $cgiparams{'REFRESHINDEX'} = 'off';\r
+}\r
+\r
+$checked{'JAVASCRIPT'}{'off'} = '';\r
+$checked{'JAVASCRIPT'}{'on'} = '';\r
+$checked{'JAVASCRIPT'}{$cgiparams{'JAVASCRIPT'}} = "checked='checked'";\r
+\r
+$checked{'WINDOWWITHHOSTNAME'}{'off'} = '';\r
+$checked{'WINDOWWITHHOSTNAME'}{'on'} = '';\r
+$checked{'WINDOWWITHHOSTNAME'}{$cgiparams{'WINDOWWITHHOSTNAME'}} = "checked='checked'";\r
+\r
+$checked{'PPPUPDOWNBEEP'}{'off'} = '';\r
+$checked{'PPPUPDOWNBEEP'}{'on'} = '';\r
+$checked{'PPPUPDOWNBEEP'}{$cgiparams{'PPPUPDOWNBEEP'}} = "checked='checked'";\r
+\r
+$checked{'REFRESHINDEX'}{'off'} = '';\r
+$checked{'REFRESHINDEX'}{'on'} = '';\r
+$checked{'REFRESHINDEX'}{$cgiparams{'REFRESHINDEX'}} = "checked='checked'";\r
+\r
+&Header::openpage($Lang::tr{'gui settings'}, 1, '');\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%','left',$Lang::tr{'error messages'});\r
+       print "<font class='base'>${errormessage}&nbsp;</font>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+&Header::openbox('100%','left',$Lang::tr{'gui settings'});\r
+\r
+print <<END\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<table width='100%'>\r
+<tr>\r
+    <td colspan='2'><p><b>$Lang::tr{'display'}</b></td>\r
+</tr>\r
+<tr>\r
+    <td><input type='checkbox' name='JAVASCRIPT' $checked{'JAVASCRIPT'}{'on'} />\r
+    <td width='100%'>$Lang::tr{'enable javascript'}</td>\r
+</tr>\r
+<tr>\r
+    <td><input type='checkbox' name='WINDOWWITHHOSTNAME' $checked{'WINDOWWITHHOSTNAME'}{'on'} /></td>\r
+    <td>$Lang::tr{'display hostname in window title'}</td>\r
+</tr>\r
+<tr>\r
+    <td><input type='checkbox' name='REFRESHINDEX' $checked{'REFRESHINDEX'}{'on'} /></td>\r
+    <td>$Lang::tr{'refresh index page while connected'}</td>\r
+</tr>\r
+<tr>\r
+    <td>&nbsp;</td>\r
+    <td>$Lang::tr{'languagepurpose'}</td>\r
+</tr>\r
+<tr>\r
+    <td>&nbsp;</td>\r
+    <td><select name='lang'>\r
+END\r
+;\r
+\r
+my $id=0;\r
+open(FILE,"${General::swroot}/langs/list");\r
+while (<FILE>)\r
+{\r
+       my $lang='';\r
+       my $engname='';\r
+       my $natname='';\r
+        $id++;\r
+        chomp;\r
+        ($lang,$engname,$natname) = split (/:/, $_, 3);\r
+       print "<option value='$lang' ";\r
+       if ($lang =~ /$mainsettings{'LANGUAGE'}/)\r
+       {\r
+               print " selected='selected'";\r
+       }\r
+       print <<END\r
+>$engname ($natname)</option>\r
+END\r
+       ;\r
+}\r
+\r
+print <<END\r
+</select></td></tr>\r
+<tr>\r
+    <td colspan='2'><hr /><p><b>$Lang::tr{'sound'}</b></td>\r
+</tr>\r
+<tr>\r
+    <td><input type ='checkbox' name='PPPUPDOWNBEEP' $checked{'PPPUPDOWNBEEP'}{'on'} /></td>\r
+    <td>$Lang::tr{'beep when ppp connects or disconnects'}</td>\r
+</tr>\r
+<tr>\r
+    <td colspan='2'><hr /></td>\r
+</tr>\r
+</table>\r
+<div align='center'>\r
+<table width='80%'>\r
+<tr>\r
+    <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td>\r
+    <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+</div>\r
+</form>\r
+END\r
+;\r
+&Header::closebox();\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+\r
+\r
diff --git a/html/cgi-bin/hosts.cgi b/html/cgi-bin/hosts.cgi
new file mode 100644 (file)
index 0000000..b8b43bc
--- /dev/null
@@ -0,0 +1,449 @@
+#!/usr/bin/perl\r
+#\r
+# IPCop CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) Alan Hourihane <alanh@fairlite.demon.co.uk>\r
+#\r
+# $Id: hosts.cgi,v 1.4.2.20 2005/11/05 15:46:25 gespinasse Exp $\r
+#\r
+# Franck\r
+#         use dhcp.cgi model to rewrite this code\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::colouryellow} );\r
+undef (@dummy);\r
+\r
+# Files used\r
+my $setting = "${General::swroot}/main/settings";\r
+our $datafile = "${General::swroot}/main/hosts";               #(our: used in subroutine)\r
+\r
+our %settings = ();\r
+#Settings1\r
+# removed\r
+\r
+#Settings2 for editing the multi-line list\r
+#Must not be saved !\r
+$settings{'EN'} = '';                  # reuse for dummy field in position zero\r
+$settings{'IP'} = '';\r
+$settings{'HOST'} = '';                        \r
+$settings{'DOM'} = '';                 \r
+my @nosaved=('EN','IP','HOST','DOM');  # List here ALL setting2 fields. Mandatory\r
+    \r
+$settings{'ACTION'} = '';              # add/edit/remove\r
+$settings{'KEY1'} = '';                        # point record for ACTION\r
+\r
+#Define each field that can be used to sort columns\r
+my $sortstring='^IP|^HOST|^DOM';\r
+$settings{'SORT_HOSTSLIST'} = 'HOST';\r
+my $errormessage = '';\r
+my $warnmessage = '';\r
+\r
+&Header::showhttpheaders();\r
+\r
+#Get GUI values\r
+&Header::getcgihash(\%settings);\r
+\r
+# Load multiline data\r
+our @current = ();\r
+if (open(FILE, "$datafile")) {\r
+    @current = <FILE>;\r
+    close (FILE);\r
+}\r
+\r
+## Settings1 Box not used...\r
+&General::readhash("${General::swroot}/main/settings", \%settings);\r
+\r
+\r
+## Now manipulate the multi-line list with Settings2\r
+# Basic actions are:\r
+#      toggle the check box\r
+#      add/update a new line\r
+#      begin editing a line\r
+#      remove a line\r
+\r
+\r
+# Toggle enable/disable field.  Field is in second position\r
+if ($settings{'ACTION'} eq $Lang::tr{'toggle enable disable'}) {\r
+    #move out new line\r
+    chomp(@current[$settings{'KEY1'}]);\r
+    my @temp = split(/\,/,@current[$settings{'KEY1'}]);\r
+\r
+    $temp[0] = $temp[0] ne '' ? '' : 'on';             # Toggle the field\r
+    @current[$settings{'KEY1'}] = join (',',@temp)."\n";\r
+    $settings{'KEY1'} = '';                            # End edit mode\r
+    \r
+    &General::log($Lang::tr{'hosts config changed'});\r
+\r
+    #Save current\r
+    open(FILE, ">$datafile") or die 'hosts datafile error';\r
+    print FILE @current;\r
+    close(FILE);\r
+       \r
+    # Rebuild configuration file\r
+    &BuildConfiguration;\r
+}\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'add'}) {\r
+    # Validate inputs\r
+    unless(&General::validip($settings{'IP'})) {\r
+       $errormessage = $Lang::tr{'invalid fixed ip address'};\r
+    }\r
+\r
+    unless(&General::validhostname($settings{'HOST'})) {\r
+       $errormessage = $Lang::tr{'invalid hostname'};\r
+    }\r
+\r
+    if ($settings{'DOM'} && ! &General::validdomainname($settings{'DOM'})) {\r
+        $errormessage = $Lang::tr{'invalid domain name'};\r
+    }\r
+\r
+\r
+    unless ($errormessage) {\r
+       if ($settings{'KEY1'} eq '') { #add or edit ?\r
+           unshift (@current, "$settings{'EN'},$settings{'IP'},$settings{'HOST'},$settings{'DOM'}\n");\r
+           &General::log($Lang::tr{'hosts config added'});\r
+       } else {\r
+           @current[$settings{'KEY1'}] = "$settings{'EN'},$settings{'IP'},$settings{'HOST'},$settings{'DOM'}\n";\r
+           $settings{'KEY1'} = '';       # End edit mode\r
+           &General::log($Lang::tr{'hosts config changed'});\r
+       }\r
+\r
+        # Write changes to config file.\r
+        &SortDataFile;                         # sort newly added/modified entry\r
+        &BuildConfiguration;                   # then re-build new host\r
+       \r
+       #map ($settings{$_}='' ,@nosaved);      # Clear fields\r
+    }\r
+}\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'edit'}) {\r
+    #move out new line\r
+    my $line = @current[$settings{'KEY1'}];    # KEY1 is the index in current\r
+    chomp($line);\r
+    my @temp = split(/\,/, $line);\r
+    $settings{'EN'}=$temp[0];                  # Prepare the screen for editing\r
+    $settings{'IP'}=$temp[1];\r
+    $settings{'HOST'}=$temp[2];\r
+    $settings{'DOM'}=$temp[3];\r
+}\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {\r
+    splice (@current,$settings{'KEY1'},1);             # Delete line \r
+    open(FILE, ">$datafile") or die 'hosts datafile error';\r
+    print FILE @current;\r
+    close(FILE);\r
+    $settings{'KEY1'} = '';                            # End remove mode\r
+    &General::log($Lang::tr{'hosts config changed'});\r
+\r
+    &BuildConfiguration;                               # then re-build conf which use new data\r
+}\r
+\r
+\r
+\r
+##  Check if sorting is asked\r
+# If same column clicked, reverse the sort.\r
+if ($ENV{'QUERY_STRING'} =~ /$sortstring/ ) {\r
+    my $newsort=$ENV{'QUERY_STRING'};\r
+    my $actual=$settings{'SORT_HOSTSLIST'};\r
+    #Reverse actual sort ?\r
+    if ($actual =~ $newsort) {\r
+       my $Rev='';\r
+       if ($actual !~ 'Rev') {\r
+           $Rev='Rev';\r
+       }\r
+       $newsort.=$Rev;\r
+    }\r
+    $settings{'SORT_HOSTSLIST'}=$newsort;\r
+    map (delete ($settings{$_}) ,(@nosaved,'ACTION','KEY1'));# Must never be saved\r
+    &General::writehash($setting, \%settings);\r
+    &SortDataFile;\r
+    $settings{'ACTION'} = 'SORT';                      # Create an 'ACTION'\r
+    map ($settings{$_} = '' ,@nosaved,'KEY1');         # and reinit vars to empty\r
+}\r
+\r
+if ($settings{'ACTION'} eq '' ) { # First launch from GUI\r
+    # Place here default value when nothing is initialized\r
+    $settings{'EN'} = 'on';\r
+    $settings{'DOM'} = $settings{'DOMAINNAME'};\r
+}\r
+\r
+&Header::openpage($Lang::tr{'hostname'}, 1, '');\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+my %checked=();     # Checkbox manipulations\r
+\r
+if ($errormessage) {\r
+    &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+    print "<font class='base'>$errormessage&nbsp;</font>";\r
+    &Header::closebox();\r
+}\r
+\r
+#\r
+# Remove if no Setting1 needed\r
+#\r
+#if ($warnmessage) {\r
+#    $warnmessage = "<font color=${Header::colourred}><b>$Lang::tr{'capswarning'}</b></font>: $warnmessage";\r
+#}\r
+#&Header::openbox('100%', 'left', $Lang::tr{'settings'});\r
+#print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>";\r
+#print <<END\r
+#<table width='100%'>\r
+#<tr>\r
+#    <td class='base'>$Lang::tr{'domain name'} : $settings{'DOMAINNAME'}</td>\r
+#</table>\r
+#\r
+#END\r
+#;\r
+#\r
+#print <<END\r
+#<table width='100%'>\r
+#<hr />\r
+#<tr>\r
+#    <td class='base' width='25%'><!--<img src='/blob.gif' align='top' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td>-->\r
+#    <td class='base' width='25%'>$warnmessage</td>\r
+#    <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' disabled='disabled' /></td>\r
+#</tr>\r
+#</table>\r
+#</form>\r
+#END\r
+#;\r
+#&Header::closebox();   # end of Settings1\r
+\r
+\r
+#\r
+# Second check box is for editing the list\r
+#\r
+$checked{'EN'}{'on'} = ($settings{'EN'} eq '' ) ? '' : "checked='checked'";\r
+\r
+my $buttontext = $Lang::tr{'add'};\r
+if ($settings{'KEY1'} ne '') {\r
+    $buttontext = $Lang::tr{'update'};\r
+    &Header::openbox('100%', 'left', $Lang::tr{'edit an existing host'});\r
+} else {\r
+    &Header::openbox('100%', 'left', $Lang::tr{'add a host'});\r
+}\r
+\r
+#Edited line number (KEY1) passed until cleared by 'save' or 'remove' or 'new sort order'\r
+print <<END\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='KEY1' value='$settings{'KEY1'}' />\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base'>$Lang::tr{'host ip'}:&nbsp;</td>\r
+    <td><input type='text' name='IP' value='$settings{'IP'}' /></td>\r
+    <td class='base'>$Lang::tr{'hostname'}:</td>\r
+    <td><input type='text' name='HOST' value='$settings{'HOST'}' /></td>\r
+</tr><tr>\r
+    <td class='base'>$Lang::tr{'domain name'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+    <td><input type='text' name='DOM' value='$settings{'DOM'}' /></td>\r
+    <td class='base'>$Lang::tr{'enabled'}</td>\r
+    <td><input type='checkbox' name='EN' $checked{'EN'}{'on'} /></td>\r
+</tr>\r
+</table>\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base' width='50%'><img src='/blob.gif' align='top' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td>\r
+    <td width='50%' align='center'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+#\r
+# Third box shows the list, in columns\r
+#\r
+# Columns headers may content a link. In this case it must be named in $sortstring\r
+#\r
+&Header::openbox('100%', 'left', $Lang::tr{'current hosts'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+    <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'host ip'}</b></a></td>\r
+    <td width='20%' align='center'><a href='$ENV{'SCRIPT_NAME'}?HOST'><b>$Lang::tr{'hostname'}</b></a></td>\r
+    <td width='50%' align='center'><a href='$ENV{'SCRIPT_NAME'}?DOM'><b>$Lang::tr{'domain name'}</b></a></td>\r
+    <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+END\r
+;\r
+\r
+#\r
+# Print each line of @current list\r
+#\r
+\r
+my $key = 0;\r
+foreach my $line (@current) {\r
+    chomp($line);                              # remove newline\r
+    my @temp=split(/\,/,$line);\r
+    $temp[3] ='' unless defined $temp[3]; # not always populated\r
+\r
+    #Choose icon for checkbox\r
+    my $gif = '';\r
+    my $gdesc = '';\r
+    if ($temp[0] ne '' ) {\r
+       $gif = 'on.gif';\r
+       $gdesc = $Lang::tr{'click to disable'};\r
+    } else {\r
+       $gif = 'off.gif';\r
+       $gdesc = $Lang::tr{'click to enable'}; \r
+    }\r
+\r
+    #Colorize each line\r
+    if ($settings{'KEY1'} eq $key) {\r
+       print "<tr bgcolor='${Header::colouryellow}'>";\r
+    } elsif ($key % 2) {\r
+       print "<tr bgcolor='${Header::table2colour}'>";\r
+    } else {\r
+       print "<tr bgcolor='${Header::table1colour}'>"; \r
+    }\r
+    print <<END\r
+<td align='center'>$temp[1]</td>\r
+<td align='center'>$temp[2]</td>\r
+<td align='center'>$temp[3]</td>\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />\r
+<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+\r
+<td align='center'>\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />\r
+<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />\r
+<input type='hidden' name='KEY1' value='$key' />\r
+</form>\r
+</td>\r
+</tr>\r
+END\r
+;\r
+    $key++;\r
+}\r
+print "</table>";\r
+\r
+# If table contains entries, print 'Key to action icons'\r
+if ($key) {\r
+print <<END\r
+<table>\r
+<tr>\r
+    <td class='boldbase'>&nbsp;<b>$Lang::tr{'legend'}:&nbsp;</b></td>\r
+    <td><img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>\r
+    <td class='base'>$Lang::tr{'click to disable'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td>\r
+    <td class='base'>$Lang::tr{'click to enable'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>\r
+    <td class='base'>$Lang::tr{'edit'}</td>\r
+    <td>&nbsp;&nbsp;</td>\r
+    <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>\r
+    <td class='base'>$Lang::tr{'remove'}</td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+}\r
+\r
+&Header::closebox();\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+## Ouf it's the end !\r
+\r
+# Sort the "current" array according to choices\r
+sub SortDataFile\r
+{\r
+    our %entries = ();\r
+    \r
+    # Sort pair of record received in $a $b special vars.\r
+    # When IP is specified use numeric sort else alpha.\r
+    # If sortname ends with 'Rev', do reverse sort.\r
+    #\r
+    sub fixedleasesort {\r
+       my $qs='';             # The sort field specified minus 'Rev'\r
+       if (rindex ($settings{'SORT_HOSTSLIST'},'Rev') != -1) {\r
+           $qs=substr ($settings{'SORT_HOSTSLIST'},0,length($settings{'SORT_HOSTSLIST'})-3);\r
+           if ($qs eq 'IP') {\r
+               my @a = split(/\./,$entries{$a}->{$qs});\r
+               my @b = split(/\./,$entries{$b}->{$qs});\r
+               ($b[0]<=>$a[0]) ||\r
+               ($b[1]<=>$a[1]) ||\r
+               ($b[2]<=>$a[2]) ||\r
+               ($b[3]<=>$a[3]);\r
+           } else {\r
+               $entries{$b}->{$qs} cmp $entries{$a}->{$qs};\r
+           }\r
+       } else { #not reverse\r
+           $qs=$settings{'SORT_HOSTSLIST'};\r
+           if ($qs eq 'IP') {\r
+               my @a = split(/\./,$entries{$a}->{$qs});\r
+               my @b = split(/\./,$entries{$b}->{$qs});\r
+               ($a[0]<=>$b[0]) ||\r
+               ($a[1]<=>$b[1]) ||\r
+               ($a[2]<=>$b[2]) ||\r
+               ($a[3]<=>$b[3]);\r
+           } else {\r
+               $entries{$a}->{$qs} cmp $entries{$b}->{$qs};\r
+           }\r
+       }\r
+    }\r
+\r
+    #Use an associative array (%entries)\r
+    my $key = 0;\r
+    foreach my $line (@current) {\r
+       chomp( $line); #remove newline because can be on field 5 or 6 (addition of REMARK)\r
+       my @temp = ( '','','', '');\r
+       @temp = split (',',$line);\r
+\r
+       # Build a pair 'Field Name',value for each of the data dataline.\r
+       # Each SORTABLE field must have is pair.\r
+       # Other data fields (non sortable) can be grouped in one\r
+       \r
+       my @record = ('KEY',$key++,'EN',$temp[0],'IP',$temp[1],'HOST',$temp[2],'DOM',$temp[3]);\r
+       my $record = {};                                # create a reference to empty hash\r
+       %{$record} = @record;                           # populate that hash with @record\r
+       $entries{$record->{KEY}} = $record;             # add this to a hash of hashes\r
+    }\r
+    \r
+    open(FILE, ">$datafile") or die 'hosts datafile error';\r
+\r
+    # Each field value is printed , with the newline ! Don't forget separator and order of them.\r
+    foreach my $entry (sort fixedleasesort keys %entries) {\r
+       print FILE "$entries{$entry}->{EN},$entries{$entry}->{IP},$entries{$entry}->{HOST},$entries{$entry}->{DOM}\n";\r
+    }\r
+\r
+    close(FILE);\r
+    # Reload sorted  @current\r
+    open (FILE, "$datafile");\r
+    @current = <FILE>;\r
+    close (FILE);\r
+}\r
+\r
+#\r
+# Build the configuration file\r
+#\r
+sub BuildConfiguration {\r
+    system '/usr/local/bin/rebuildhosts';\r
+}\r
diff --git a/html/cgi-bin/ids.cgi b/html/cgi-bin/ids.cgi
new file mode 100644 (file)
index 0000000..56c9c77
--- /dev/null
@@ -0,0 +1,313 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: ids.cgi,v 1.8.2.18 2005/07/27 21:35:22 franck78 Exp $\r
+#\r
+\r
+use LWP::UserAgent;\r
+use File::Copy;\r
+use File::Temp qw/ tempfile tempdir /;\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %snortsettings=();\r
+my %checked=();\r
+my %netsettings=();\r
+our $errormessage = '';\r
+our $md5 = '0';# not '' to avoid displaying the wrong message when INSTALLMD5 not set\r
+our $realmd5 = '';\r
+our $results = '';\r
+our $tempdir = '';\r
+our $url='';\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+\r
+&Header::showhttpheaders();\r
+\r
+$snortsettings{'ENABLE_SNORT'} = 'off';\r
+$snortsettings{'ENABLE_SNORT_GREEN'} = 'off';\r
+$snortsettings{'ENABLE_SNORT_BLUE'} = 'off';\r
+$snortsettings{'ENABLE_SNORT_ORANGE'} = 'off';\r
+$snortsettings{'ACTION'} = '';\r
+$snortsettings{'RULESTYPE'} = '';\r
+$snortsettings{'OINKCODE'} = '';\r
+$snortsettings{'INSTALLDATE'} = '';\r
+$snortsettings{'INSTALLMD5'} = '';\r
+\r
+&Header::getcgihash(\%snortsettings, {'wantfile' => 1, 'filevar' => 'FH'});\r
+\r
+if ($snortsettings{'RULESTYPE'} eq 'subscripted') {\r
+       $url="http://www.snort.org/pub-bin/oinkmaster.cgi/$snortsettings{'OINKCODE'}/snortrules-snapshot-2.3_s.tar.gz";\r
+} else {\r
+       $url="http://www.snort.org/pub-bin/oinkmaster.cgi/$snortsettings{'OINKCODE'}/snortrules-snapshot-2.3.tar.gz";\r
+}\r
+\r
+if ($snortsettings{'ACTION'} eq $Lang::tr{'save'})\r
+{\r
+       $errormessage = $Lang::tr{'invalid input for oink code'} unless (\r
+           ($snortsettings{'OINKCODE'} =~ /^[a-z0-9]+$/)  ||\r
+           ($snortsettings{'RULESTYPE'} eq 'nothing' )       );\r
+\r
+       &General::writehash("${General::swroot}/snort/settings", \%snortsettings);\r
+       if ($snortsettings{'ENABLE_SNORT'} eq 'on')\r
+       {\r
+               system ('/bin/touch', "${General::swroot}/snort/enable");\r
+       } else {\r
+               unlink "${General::swroot}/snort/enable";\r
+       } \r
+       if ($snortsettings{'ENABLE_SNORT_GREEN'} eq 'on')\r
+       {\r
+               system ('/bin/touch', "${General::swroot}/snort/enable_green");\r
+       } else {\r
+               unlink "${General::swroot}/snort/enable_green";\r
+       } \r
+       if ($snortsettings{'ENABLE_SNORT_BLUE'} eq 'on')\r
+       {\r
+               system ('/bin/touch', "${General::swroot}/snort/enable_blue");\r
+       } else {\r
+               unlink "${General::swroot}/snort/enable_blue";\r
+       } \r
+       if ($snortsettings{'ENABLE_SNORT_ORANGE'} eq 'on')\r
+       {\r
+               system ('/bin/touch', "${General::swroot}/snort/enable_orange");\r
+       } else {\r
+               unlink "${General::swroot}/snort/enable_orange";\r
+       }\r
+\r
+       system('/usr/local/bin/restartsnort','red','orange','blue','green');\r
+} else {\r
+        # INSTALLMD5 is not in the form, so not retrieved by getcgihash\r
+       &General::readhash("${General::swroot}/snort/settings", \%snortsettings);\r
+}\r
+\r
+if ($snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'}) {\r
+       $md5 = &getmd5;\r
+       if (($snortsettings{'INSTALLMD5'} ne $md5) && defined $md5 ) {\r
+               chomp($md5);\r
+               my $filename = &downloadrulesfile();\r
+               if (defined $filename) {\r
+                       # Check MD5sum\r
+                       $realmd5 = `/usr/bin/md5sum $filename`;\r
+                       chomp ($realmd5);\r
+                       $realmd5 =~ s/^(\w+)\s.*$/$1/;\r
+                       if ($md5 ne $realmd5) {\r
+                               $errormessage = "$Lang::tr{'invalid md5sum'}";\r
+                       } else {\r
+                               $results = "<b>$Lang::tr{'installed updates'}</b>\n<pre>";\r
+                               $results .=`/usr/local/bin/oinkmaster.pl -s -u file://$filename -C /var/ipcop/snort/oinkmaster.conf -o /etc/snort 2>&1`;\r
+                               $results .= "</pre>";\r
+                       }\r
+                       unlink ($filename);\r
+               }\r
+       }\r
+}\r
+\r
+$checked{'ENABLE_SNORT'}{'off'} = '';\r
+$checked{'ENABLE_SNORT'}{'on'} = '';\r
+$checked{'ENABLE_SNORT'}{$snortsettings{'ENABLE_SNORT'}} = "checked='checked'";\r
+$checked{'ENABLE_SNORT_GREEN'}{'off'} = '';\r
+$checked{'ENABLE_SNORT_GREEN'}{'on'} = '';\r
+$checked{'ENABLE_SNORT_GREEN'}{$snortsettings{'ENABLE_SNORT_GREEN'}} = "checked='checked'";\r
+$checked{'ENABLE_SNORT_BLUE'}{'off'} = '';\r
+$checked{'ENABLE_SNORT_BLUE'}{'on'} = '';\r
+$checked{'ENABLE_SNORT_BLUE'}{$snortsettings{'ENABLE_SNORT_BLUE'}} = "checked='checked'";\r
+$checked{'ENABLE_SNORT_ORANGE'}{'off'} = '';\r
+$checked{'ENABLE_SNORT_ORANGE'}{'on'} = '';\r
+$checked{'ENABLE_SNORT_ORANGE'}{$snortsettings{'ENABLE_SNORT_ORANGE'}} = "checked='checked'";\r
+$checked{'RULESTYPE'}{'nothing'} = '';\r
+$checked{'RULESTYPE'}{'registered'} = '';\r
+$checked{'RULESTYPE'}{'subscripted'} = '';\r
+$checked{'RULESTYPE'}{$snortsettings{'RULESTYPE'}} = "checked='checked'";\r
+\r
+&Header::openpage($Lang::tr{'intrusion detection system'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<class name='base'>$errormessage\n";\r
+       print "&nbsp;</class>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'intrusion detection system2'});\r
+print <<END\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'><table width='100%'>\r
+<tr>\r
+       <td class='base'><input type='checkbox' name='ENABLE_SNORT_GREEN' $checked{'ENABLE_SNORT_GREEN'}{'on'} />\r
+               GREEN Snort</td>\r
+</tr>\r
+END\r
+;\r
+if ($netsettings{'BLUE_DEV'} ne '') {\r
+print <<END\r
+<tr>\r
+       <td class='base'><input type='checkbox' name='ENABLE_SNORT_BLUE' $checked{'ENABLE_SNORT_BLUE'}{'on'} />\r
+               BLUE Snort</td>\r
+</tr>\r
+END\r
+;\r
+}\r
+if ($netsettings{'ORANGE_DEV'} ne '') {\r
+print <<END\r
+<tr>\r
+       <td class='base'><input type='checkbox' name='ENABLE_SNORT_ORANGE' $checked{'ENABLE_SNORT_ORANGE'}{'on'} />\r
+               ORANGE Snort</td>\r
+</tr>\r
+END\r
+;\r
+}\r
+print <<END\r
+<tr>\r
+       <td class='base'><input type='checkbox' name='ENABLE_SNORT' $checked{'ENABLE_SNORT'}{'on'} />\r
+               RED Snort</td>\r
+</tr>\r
+<tr>\r
+       <td><hr /></td>\r
+</tr>\r
+<tr>\r
+       <td><b>$Lang::tr{'ids rules update'}</b></td>\r
+</tr>\r
+<tr>\r
+       <td><input type='radio' name='RULESTYPE' value='nothing' $checked{'RULESTYPE'}{'nothing'} />\r
+               $Lang::tr{'no'}</td>\r
+</tr>\r
+<tr>\r
+       <td><input type='radio' name='RULESTYPE' value='registered' $checked{'RULESTYPE'}{'registered'} />\r
+               $Lang::tr{'registered user rules'}</td>\r
+</tr>\r
+<tr>\r
+       <td><input type='radio' name='RULESTYPE' value='subscripted' $checked{'RULESTYPE'}{'subscripted'} />\r
+               $Lang::tr{'subscripted user rules'}</td>\r
+</tr>\r
+<tr>\r
+       <td><br />\r
+               $Lang::tr{'ids rules license'} <a href='http://www.snort.org/' target='_blank'>http://www.snort.org</a>.<br />\r
+               <br />\r
+               $Lang::tr{'ids rules license2'} <a href='http://www.snort.org/reg-bin/userprefs.cgi' target='_blank'>USER PREFERENCES</a>, $Lang::tr{'ids rules license3'}<br />\r
+       </td>\r
+</tr>\r
+<tr>\r
+       <td nowrap='nowrap'>Oink Code:&nbsp;<input type='text' size='40' name='OINKCODE' value='$snortsettings{'OINKCODE'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td width='30%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'download new ruleset'}' />\r
+END\r
+;\r
+\r
+if ($snortsettings{'INSTALLMD5'} eq $md5) {\r
+       print "&nbsp;$Lang::tr{'rules already up to date'}</td>";\r
+} else {\r
+       if ( $snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} && $md5 eq $realmd5 ) {\r
+               $snortsettings{'INSTALLMD5'} = $realmd5;\r
+               $snortsettings{'INSTALLDATE'} = `/bin/date +'%Y-%m-%d'`;\r
+               &General::writehash("${General::swroot}/snort/settings", \%snortsettings);\r
+       }\r
+       print "&nbsp;$Lang::tr{'updates installed'}: $snortsettings{'INSTALLDATE'}</td>";\r
+}\r
+print <<END\r
+</tr>\r
+</table>\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+       <td width='55%'>&nbsp;</td>\r
+       <td width='40%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+       <td width='5%'>\r
+               &nbsp; <!-- space for future online help link -->\r
+       </td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+\r
+if ($results ne '') {\r
+       print "$results";\r
+}\r
+\r
+&Header::closebox();\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+sub getmd5 {\r
+       # Retrieve MD5 sum from $url.md5 file\r
+       #\r
+       my $md5buf = &geturl("$url.md5");\r
+       return undef unless $md5buf;\r
+\r
+       if (0) { # 1 to debug\r
+               my $filename='';\r
+               my $fh='';\r
+               ($fh, $filename) = tempfile('/tmp/XXXXXXXX',SUFFIX => '.md5' );\r
+               binmode ($fh);\r
+               syswrite ($fh, $md5buf->content);\r
+               close($fh);\r
+       }\r
+       return $md5buf->content;\r
+}\r
+sub downloadrulesfile {\r
+       my $return = &geturl($url);\r
+       return undef unless $return;\r
+\r
+       if (index($return->content, "\037\213") == -1 ) { # \037\213 is .gz beginning\r
+               $errormessage = $Lang::tr{'invalid loaded file'};\r
+               return undef;\r
+       }\r
+\r
+       my $filename='';\r
+       my $fh='';\r
+       ($fh, $filename) = tempfile('/tmp/XXXXXXXX',SUFFIX => '.tar.gz' );#oinkmaster work only with this extension\r
+       binmode ($fh);\r
+       syswrite ($fh, $return->content);\r
+       close($fh);\r
+       return $filename;\r
+}\r
+\r
+sub geturl ($) {\r
+       my $url=$_[0];\r
+\r
+       unless (-e "${General::swroot}/red/active") {\r
+               $errormessage = $Lang::tr{'could not download latest updates'};\r
+               return undef;\r
+       }\r
+\r
+       my $downloader = LWP::UserAgent->new;\r
+       $downloader->timeout(5);\r
+\r
+       my %proxysettings=();\r
+       &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+\r
+       if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+               if ($proxysettings{'UPSTREAM_USER'}) {\r
+                       $downloader->proxy("http","http://$proxysettings{'UPSTREAM_USER'}:$proxysettings{'UPSTREAM_PASSWORD'}@"."$peer:$peerport/");\r
+               } else {\r
+                       $downloader->proxy("http","http://$peer:$peerport/");\r
+               }\r
+       }\r
+\r
+       my $return = $downloader->get($url,'Cache-Control','no-cache');\r
+\r
+       if ($return->code == 403) {\r
+               $errormessage = $Lang::tr{'access refused with this oinkcode'};\r
+               return undef;\r
+       } elsif (!$return->is_success()) {\r
+               $errormessage = $Lang::tr{'could not download latest updates'};\r
+               return undef;\r
+       }\r
+\r
+       return $return;\r
+\r
+}\r
diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi
new file mode 100644 (file)
index 0000000..bd36a98
--- /dev/null
@@ -0,0 +1,204 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: index.cgi,v 1.15.2.18 2005/09/17 13:51:47 gespinasse Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %cgiparams=();\r
+my %pppsettings=();\r
+my %modemsettings=();\r
+my %netsettings=();\r
+my %ddnssettings=();\r
+my $warnmessage = '';\r
+my $refresh = '';\r
+\r
+&Header::showhttpheaders();\r
+\r
+$cgiparams{'ACTION'} = '';\r
+&Header::getcgihash(\%cgiparams);\r
+$pppsettings{'VALID'} = '';\r
+$pppsettings{'PROFILENAME'} = 'None';\r
+&General::readhash("${General::swroot}/ppp/settings", \%pppsettings);\r
+&General::readhash("${General::swroot}/modem/settings", \%modemsettings);\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+&General::readhash("${General::swroot}/ddns/settings", \%ddnssettings);\r
+\r
+my $connstate = &Header::connectionstatus();\r
+if ($connstate =~ /$Lang::tr{'dod waiting'}/ || -e "${General::swroot}/main/refreshindex") {\r
+       $refresh = "<meta http-equiv='refresh' content='30;'>";\r
+} elsif ($connstate =~ /$Lang::tr{'connecting'}/) {\r
+       $refresh = "<meta http-equiv='refresh' content='5;'>";\r
+}\r
+\r
+&Header::openpage($Lang::tr{'main page'}, 1, $refresh);\r
+&Header::openbigbox('', 'center');\r
+&Header::openbox('100%', 'center', &Header::cleanhtml(`/bin/uname -n`,"y"));\r
+\r
+# hide buttons only when pppsettings mandatory used and not valid\r
+if ( ( $pppsettings{'VALID'} eq 'yes' ) ||\r
+               ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) {\r
+       print <<END\r
+       <table border='0'>\r
+       <tr>\r
+               <td align='center'><form method='post' action='/cgi-bin/dial.cgi'>\r
+                       <input type='submit' name='ACTION' value='$Lang::tr{'dial'}' />\r
+               </form></td>\r
+               <td>&nbsp;&nbsp;</td>\r
+               <td align='center'><form method='post' action='/cgi-bin/dial.cgi'>\r
+                       <input type='submit' name='ACTION' value='$Lang::tr{'hangup'}' />\r
+               </form></td>\r
+               <td>&nbsp;&nbsp;</td>\r
+               <td align='center'><form method='post' action="$ENV{'SCRIPT_NAME'}">\r
+                       <input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' />\r
+               </form></td>\r
+       </tr></table>\r
+END\r
+       ;\r
+}\r
+\r
+print "<font face='Helvetica' size='4'><b>";\r
+if ( !( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) {\r
+       print "<u>$Lang::tr{'current profile'} $pppsettings{'PROFILENAME'}</u><br />\n";\r
+}\r
+       \r
+if ( ( $pppsettings{'VALID'} eq 'yes'&& $modemsettings{'VALID'} eq 'yes' ) ||\r
+               ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ )) {\r
+       print $connstate;\r
+       print "</b></font>\n";\r
+       if ($connstate =~ /$Lang::tr{'connected'}/) {\r
+           my $fetch_ip='nothing';\r
+           if ($ddnssettings{'BEHINDROUTER'} eq 'FETCH_IP') {\r
+               if (open(IPADDR,"${General::swroot}/ddns/ipcache")) {\r
+                   $fetch_ip = <IPADDR>;\r
+                   close IPADDR;\r
+                   chomp ($fetch_ip);\r
+                   my $host_name = (gethostbyaddr(pack("C4", split(/\./, $fetch_ip)), 2))[0];\r
+                   print "<br />$Lang::tr{'ip address'} (internet): $fetch_ip <br /> $Lang::tr{'ipcops hostname'} (internet): $host_name <br />";\r
+               }\r
+           }\r
+           if (open(IPADDR,"${General::swroot}/red/local-ipaddress")) {\r
+               my $ipaddr = <IPADDR>;\r
+               close IPADDR;\r
+               chomp ($ipaddr);\r
+               if ($ipaddr ne $fetch_ip){      #do not show info twice\r
+                   my $host_name = (gethostbyaddr(pack("C4", split(/\./, $ipaddr)), 2))[0];\r
+                   print "<br />$Lang::tr{'ip address'}: $ipaddr <br /> $Lang::tr{'ipcops hostname'}: $host_name <br />";\r
+               }\r
+           }\r
+        }\r
+\r
+} elsif ($modemsettings{'VALID'} eq 'no') {\r
+       print "$Lang::tr{'modem settings have errors'}\n </b></font>\n";\r
+} else {\r
+       print "$Lang::tr{'profile has errors'}\n </b></font>\n";\r
+}\r
+\r
+\r
+# Memory usage warning\r
+my @free = `/usr/bin/free`;\r
+$free[1] =~ m/(\d+)/;\r
+my $mem = $1;\r
+$free[2] =~ m/(\d+)/;\r
+my $used = $1;\r
+my $pct = int 100 * ($mem - $used) / $mem;\r
+if ($used / $mem > 90) {\r
+       $warnmessage .= "<li> $Lang::tr{'high memory usage'}: $pct% !</li>\n";\r
+}\r
+\r
+# Diskspace usage warning\r
+my @temp=();\r
+my $temp2=();\r
+my @df = `/bin/df -B M -x rootfs`;\r
+foreach my $line (@df) {\r
+       next if $line =~ m/^Filesystem/;\r
+       if ($line =~ m/root/ ) {\r
+               $line =~ m/^.* (\d+)M.*$/;\r
+               @temp = split(/ +/,$line);\r
+               if ($1<5) {\r
+                       # available:plain value in MB, and not %used as 10% is too much to waste on small disk\r
+                       # and root size should not vary during time\r
+                       $warnmessage .= "<li> $Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$1M</b> !</li>\n";\r
+               }\r
+               \r
+       } else {\r
+               # $line =~ m/^.* (\d+)m.*$/;\r
+               $line =~ m/^.* (\d+)\%.*$/;\r
+               if ($1>90) {\r
+                       @temp = split(/ /,$line);\r
+                       $temp2=int(100-$1);\r
+                       $warnmessage .= "<li> $Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$temp2%</b> !</li>\n";\r
+               }\r
+       }\r
+}\r
+\r
+# Patches warning\r
+open(AV, "<${General::swroot}/patches/available") or die "Could not open available patches database ($!)";\r
+my @av = <AV>;\r
+close(AV);\r
+open(PF, "<${General::swroot}/patches/installed") or die "Could not open installed patches file. ($!)<br />";\r
+while(<PF>)\r
+{\r
+        next if $_ =~ m/^#/;\r
+        @temp = split(/\|/,$_);\r
+        @av = grep(!/^$temp[0]/, @av);\r
+}\r
+close(PF);\r
+\r
+if ($#av != -1) \r
+{\r
+       $warnmessage .= "<li> $Lang::tr{'there are updates'}</li>";\r
+}\r
+my $age = &General::age("/${General::swroot}/patches/available");\r
+if ($age =~ m/(\d{1,3})d/) {\r
+       if ($1 >= 7) {\r
+               $warnmessage .= "<li>$Lang::tr{'updates is old1'} $age $Lang::tr{'updates is old2'}</li>\n";\r
+       }\r
+}\r
+\r
+if ($warnmessage) {\r
+       print "<ol>$warnmessage</ol>";\r
+}\r
+\r
+print "<p>";\r
+system('/usr/bin/uptime');\r
+print "</p>\n";\r
+\r
+&Header::closebox();\r
+\r
+# Test browser, and direct User where to turn off Javascript if necessary\r
+# only display message if Javascript is currently enabled\r
+if (${Header::javascript}) {\r
+print <<END\r
+<script type='text/javascript'>\n\r
+if(navigator.platform.indexOf("MacPPC")>(-1)){\r
+  document.write(\r
+    "<center><p>"\r
+    + "$Lang::tr{'javascript menu error1'}"\r
+    + " <a href='/cgi-bin/gui.cgi'>$Lang::tr{'gui settings'}</a> "\r
+    + "$Lang::tr{'javascript menu error2'}"\r
+    + "</p></center>"\r
+  )\r
+}\r
+</script>\r
+END\r
+;\r
+}\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
diff --git a/html/cgi-bin/ipinfo.cgi b/html/cgi-bin/ipinfo.cgi
new file mode 100644 (file)
index 0000000..38e90b0
--- /dev/null
@@ -0,0 +1,103 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# (c) 2002 Josh Grubman <jg@false.net> - Multiple registry IP lookup code\r
+#\r
+# $Id: ipinfo.cgi,v 1.4.2.3 2005/02/22 22:21:56 gespinasse Exp $\r
+#\r
+\r
+use IO::Socket;\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %cgiparams=();\r
+\r
+&Header::showhttpheaders();\r
+\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+$ENV{'QUERY_STRING'} =~s/&//g;\r
+my @addrs = split(/ip=/,$ENV{'QUERY_STRING'});\r
+\r
+my %whois_servers = ("RIPE"=>"whois.ripe.net","APNIC"=>"whois.apnic.net","LACNIC"=>"whois.lacnic.net");\r
+\r
+&Header::openpage($Lang::tr{'ip info'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left');\r
+my @lines=();\r
+my $extraquery='';\r
+foreach my $addr (@addrs) {\r
+next if $addr eq "";\r
+       $extraquery='';\r
+       @lines=();\r
+       my $whoisname = "whois.arin.net";\r
+       my $iaddr = inet_aton($addr);\r
+       my $hostname = gethostbyaddr($iaddr, AF_INET);\r
+       if (!$hostname) { $hostname = $Lang::tr{'lookup failed'}; }\r
+\r
+       my $sock = new IO::Socket::INET ( PeerAddr => $whoisname, PeerPort => 43, Proto => 'tcp');\r
+       if ($sock)\r
+       {\r
+               print $sock "$addr\n";\r
+               while (<$sock>) {\r
+                       $extraquery = $1 if (/NetType:    Allocated to (\S+)\s+/);\r
+                       push(@lines,$_);\r
+               }\r
+               close($sock);\r
+               if ($extraquery) {\r
+                       undef (@lines);\r
+                       $whoisname = $whois_servers{$extraquery};\r
+                       my $sock = new IO::Socket::INET ( PeerAddr => $whoisname, PeerPort => 43, Proto => 'tcp');\r
+                       if ($sock)\r
+                       {\r
+                               print $sock "$addr\n";\r
+                               while (<$sock>) {\r
+                                       push(@lines,$_);\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               @lines = ( "$Lang::tr{'unable to contact'} $whoisname" );\r
+                       }\r
+               }\r
+       }\r
+       else\r
+       {\r
+               @lines = ( "$Lang::tr{'unable to contact'} $whoisname" );\r
+       }\r
+\r
+       &Header::openbox('100%', 'left', $addr . ' (' . $hostname . ') : '.$whoisname);\r
+       print "<pre>\n";\r
+       foreach my $line (@lines) {\r
+               print &Header::cleanhtml($line,"y");\r
+       }\r
+       print "</pre>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+print <<END\r
+<div align='center'>\r
+<table width='80%'>\r
+<tr>\r
+       <td align='center'><a href='$ENV{'HTTP_REFERER'}'>$Lang::tr{'back'}</a></td>\r
+</tr>\r
+</table>\r
+</div>\r
+END\r
+;\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
diff --git a/html/cgi-bin/logs.cgi/CVS/Entries b/html/cgi-bin/logs.cgi/CVS/Entries
new file mode 100644 (file)
index 0000000..d4edcee
--- /dev/null
@@ -0,0 +1,7 @@
+/config.dat/1.2.2.10/Tue Jun 14 12:32:07 2005//TIPCOP_v1_4_0
+/firewalllog.dat/1.4.2.18/Tue Aug 23 12:01:50 2005//TIPCOP_v1_4_0
+/ids.dat/1.6.2.16/Tue Jun 14 08:25:30 2005//TIPCOP_v1_4_0
+/log.dat/1.6.2.22/Tue Jan  3 12:47:17 2006//TIPCOP_v1_4_0
+/proxylog.dat/1.4.2.25/Thu Jul  7 17:32:24 2005//TIPCOP_v1_4_0
+/summary.dat/1.3.2.14/Sun Jul 10 00:48:42 2005//TIPCOP_v1_4_0
+D
diff --git a/html/cgi-bin/logs.cgi/CVS/Repository b/html/cgi-bin/logs.cgi/CVS/Repository
new file mode 100644 (file)
index 0000000..5ddf0f6
--- /dev/null
@@ -0,0 +1 @@
+ipcop/html/cgi-bin/logs.cgi
diff --git a/html/cgi-bin/logs.cgi/CVS/Root b/html/cgi-bin/logs.cgi/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/html/cgi-bin/logs.cgi/CVS/Tag b/html/cgi-bin/logs.cgi/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/html/cgi-bin/logs.cgi/config.dat b/html/cgi-bin/logs.cgi/config.dat
new file mode 100644 (file)
index 0000000..6e82cf4
--- /dev/null
@@ -0,0 +1,165 @@
+#!/usr/bin/perl
+#
+# IPCop CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The IPCop Team
+#
+# $Id: config.dat,v 1.2.2.10 2005/06/14 12:32:07 eoberlander Exp $
+#
+
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require 'CONFIG_ROOT/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+
+my %logsettings=();
+my %checked=();
+my %selected=();
+my $errormessage='';
+
+&Header::showhttpheaders();
+
+$logsettings{'LOGVIEW_REVERSE'} = 'off';
+$logsettings{'LOGVIEW_VIEWSIZE'} = '150';
+$logsettings{'LOGWATCH_LEVEL'} = 'Low';
+$logsettings{'LOGWATCH_KEEP'} = '56';
+my @VS = ('15','50','100','150','250','500');
+$logsettings{'ENABLE_REMOTELOG'} = 'off';
+$logsettings{'REMOTELOG_ADDR'} = '';
+$logsettings{'ACTION'} = '';
+&Header::getcgihash(\%logsettings);
+
+if ($logsettings{'ACTION'} eq $Lang::tr{'save'})
+{
+  if ($logsettings{'ENABLE_REMOTELOG'} eq 'on')
+  {
+    unless ( &General::validfqdn($logsettings{'REMOTELOG_ADDR'}) ||
+             &General::validip  ($logsettings{'REMOTELOG_ADDR'}))
+    {
+      $errormessage = $Lang::tr{'invalid logserver address'};
+    }
+  }
+  unless ($logsettings{'LOGWATCH_KEEP'} =~ /^\d+$/)
+  {
+    $errormessage = $Lang::tr{'invalid keep time'};
+  }
+  unless ($logsettings{'LOGWATCH_LEVEL'} =~ /^Low|Med|High$/)
+  {
+    $errormessage = $Lang::tr{'invalid input'};
+  }
+  unless ($errormessage)
+  {
+    &General::writehash("${General::swroot}/logging/settings", \%logsettings);
+    system('/usr/local/bin/restartsyslogd') == 0
+      or $errormessage = "$Lang::tr{'bad return code'} " . $?/256;
+  }
+
+}
+
+&General::readhash("${General::swroot}/logging/settings", \%logsettings);
+
+$checked{'ENABLE_REMOTELOG'}{'off'} = '';
+$checked{'ENABLE_REMOTELOG'}{'on'} = '';
+$checked{'ENABLE_REMOTELOG'}{$logsettings{'ENABLE_REMOTELOG'}} = "checked='checked'";
+
+$checked{'LOGVIEW_REVERSE'}{'off'} = '';
+$checked{'LOGVIEW_REVERSE'}{'on'} = '';
+$checked{'LOGVIEW_REVERSE'}{$logsettings{'LOGVIEW_REVERSE'}} = "checked='checked'";
+
+$selected{'LOGWATCH_LEVEL'}{'Low'} = '';
+$selected{'LOGWATCH_LEVEL'}{'Med'} = '';
+$selected{'LOGWATCH_LEVEL'}{'High'} = '';
+$selected{'LOGWATCH_LEVEL'}{$logsettings{'LOGWATCH_LEVEL'}} = "selected='selected'";
+
+map ($selected{'LOGVIEW_VIEWSIZE'}{$_} = '', @VS);
+$selected{'LOGVIEW_VIEWSIZE'}{$logsettings{'LOGVIEW_VIEWSIZE'}} = "selected='selected'";
+
+&Header::openpage($Lang::tr{'log settings'}, 1, '');
+
+&Header::openbigbox('100%', 'left', '', $errormessage);
+
+if ($errormessage) {
+  &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
+  print "<font class='base'>$errormessage&nbsp;</font>\n";
+  &Header::closebox();
+}
+
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
+
+&Header::openbox('100%', 'left', $Lang::tr{'log viewing options'});
+print <<END
+<table width='100%'>
+<tr>
+       <td><input type='checkbox' name='LOGVIEW_REVERSE' $checked{'LOGVIEW_REVERSE'}{'on'} /></td>
+       <td class='base' width='50%'>$Lang::tr{'reverse sort'}</td>
+       <td class='base' width='25%' align='right'>$Lang::tr{'log lines per page'}:&nbsp;</td>
+       <td width='25%'><select name='LOGVIEW_VIEWSIZE'>
+END
+;
+foreach my $vs (@VS) {
+    print "\t<option value='$vs' $selected{'LOGVIEW_VIEWSIZE'}{$vs}>$vs</option>\n";
+}
+print <<END
+       </select></td>
+</tr>
+</table>
+END
+;
+&Header::closebox();
+
+&Header::openbox('100%', 'left', $Lang::tr{'log summaries'});
+print <<END
+<table width='100%'>
+<tr>
+  <td class='base' width='50%'>$Lang::tr{'summaries kept'}&nbsp;
+  <input type='text' name='LOGWATCH_KEEP'
+  value='$logsettings{'LOGWATCH_KEEP'}' size='4' />&nbsp;$Lang::tr{'days'}</td>
+  <td>$Lang::tr{'detail level'}:</td><td>
+  <select name='LOGWATCH_LEVEL'>
+  <option value='Low' $selected{'LOGWATCH_LEVEL'}{'Low'}>$Lang::tr{'low'}</option>
+  <option value='Med' $selected{'LOGWATCH_LEVEL'}{'Med'}>$Lang::tr{'medium'}</option>
+  <option value='High' $selected{'LOGWATCH_LEVEL'}{'High'}>$Lang::tr{'high'}</option>
+  </select></td>
+</tr>
+</table>
+END
+;
+&Header::closebox();
+
+&Header::openbox('100%', 'left', $Lang::tr{'remote logging'});
+print <<END
+<table width='100%'>
+<tr>
+  <td class='base'>$Lang::tr{'enabled'}</td><td><input type='checkbox' name='ENABLE_REMOTELOG' $checked{'ENABLE_REMOTELOG'}{'on'} /></td>
+  <td>$Lang::tr{'log server address'}</td><td><input type='text' name='REMOTELOG_ADDR' value='$logsettings{'REMOTELOG_ADDR'}' /></td>
+</tr>
+</table>
+END
+;
+&Header::closebox();
+
+
+
+print <<END
+<div align='center'>
+<table width='60%'>
+<tr>
+  <td align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>
+</tr>
+</table>
+</div>
+END
+;
+
+print "</form>\n";
+
+&Header::closebigbox();
+
+&Header::closepage();
diff --git a/html/cgi-bin/logs.cgi/firewalllog.dat b/html/cgi-bin/logs.cgi/firewalllog.dat
new file mode 100644 (file)
index 0000000..1ace47f
--- /dev/null
@@ -0,0 +1,411 @@
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+# $Id: firewalllog.dat,v 1.4.2.18 2005/08/23 12:01:50 eoberlander Exp $
+#
+# July 28, 2003 - Darren Critchley - darren@kdi.ca
+#      - added source mac adapter to layout
+#
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require 'CONFIG_ROOT/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+
+use POSIX();
+
+#workaround to suppress a warning when a variable is used only once
+my @dummy = ( ${Header::table2colour} );
+undef (@dummy);
+
+my %cgiparams=();
+my %logsettings=();
+my $errormessage = '';
+
+my @shortmonths = ( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug',
+       'Sep', 'Oct', 'Nov', 'Dec' );
+my @longmonths = ( $Lang::tr{'january'}, $Lang::tr{'february'}, $Lang::tr{'march'},
+       $Lang::tr{'april'}, $Lang::tr{'may'}, $Lang::tr{'june'}, $Lang::tr{'july'}, $Lang::tr{'august'},
+       $Lang::tr{'september'}, $Lang::tr{'october'}, $Lang::tr{'november'},
+       $Lang::tr{'december'} );
+
+my @now = localtime();
+my $dow = $now[6];
+my $doy = $now[7];
+my $tdoy = $now[7];
+my $year = $now[5]+1900;
+
+$cgiparams{'DAY'} = $now[3];
+$cgiparams{'MONTH'} = $now[4];
+$cgiparams{'ACTION'} = '';
+
+&Header::getcgihash(\%cgiparams);
+$logsettings{'LOGVIEW_REVERSE'} = 'off';
+&General::readhash("${General::swroot}/logging/settings", \%logsettings);
+${Header::viewsize} = defined ($logsettings{'LOGVIEW_VIEWSIZE'}) ? $logsettings{'LOGVIEW_VIEWSIZE'} : 150;
+
+my $start = ($logsettings{'LOGVIEW_REVERSE'} eq 'on') ? 0x7FFFF000 : 0; #index of firts line number to display
+
+if ($ENV{'QUERY_STRING'} && $cgiparams{'ACTION'} ne $Lang::tr{'update'})
+{
+       my @temp = split(',',$ENV{'QUERY_STRING'});
+       $start = $temp[0];
+       $cgiparams{'MONTH'} = $temp[1];
+       $cgiparams{'DAY'} = $temp[2];
+}
+
+if (!($cgiparams{'MONTH'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11)$/) ||
+       !($cgiparams{'DAY'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)$/))
+{
+       $cgiparams{'DAY'} = $now[3];
+       $cgiparams{'MONTH'} = $now[4];
+}
+elsif($cgiparams{'ACTION'} eq '>>')
+{
+        my @temp_then=();
+        my @temp_now = localtime(time);
+        $temp_now[4] = $cgiparams{'MONTH'};
+        $temp_now[3] = $cgiparams{'DAY'};
+       if ($cgiparams{'DAY'}) {
+            @temp_then = localtime(POSIX::mktime(@temp_now) + 86400);
+           ## Retrieve the same time on the next day +
+           ## 86400 seconds in a day
+       } else {
+           $temp_now[3] = 1;
+           $temp_now[4] = ($temp_now[4]+1) %12;
+           @temp_then = localtime(POSIX::mktime(@temp_now) );
+           $temp_then[3] = 0;
+       }
+        $cgiparams{'MONTH'} = $temp_then[4];
+        $cgiparams{'DAY'} = $temp_then[3];
+}
+elsif($cgiparams{'ACTION'} eq '<<')
+{
+        my @temp_then=();
+        my @temp_now = localtime(time);
+        $temp_now[4] = $cgiparams{'MONTH'};
+        $temp_now[3] = $cgiparams{'DAY'};
+       if ($cgiparams{'DAY'}) {
+            @temp_then = localtime(POSIX::mktime(@temp_now) - 86400);
+           ## Retrieve the same time on the next day -
+           ## 86400 seconds in a day
+       } else {
+           $temp_now[3] = 1;
+           $temp_now[4] = ($temp_now[4]-1) %12;
+           @temp_then = localtime(POSIX::mktime(@temp_now) );
+           $temp_then[3] = 0;
+       }
+        $cgiparams{'MONTH'} = $temp_then[4];
+        $cgiparams{'DAY'} = $temp_then[3];
+}
+
+# Find in which file.gz is the log. Can be calculated because WEEKLY ROTATING of access.log
+my $gzindex;
+my $date = $cgiparams{'DAY'} == 0 ? '' :  $cgiparams{'DAY'} <= 9 ? "0$cgiparams{'DAY'}" : "$cgiparams{'DAY'}";
+
+{
+    my $xday;
+    
+    # Calculate time. If future date, calculate for past year !!!
+    if (( $cgiparams{'MONTH'} eq $now[4]) && ($cgiparams{'DAY'} > $now[3]) ||
+        ( $cgiparams{'MONTH'}  > $now[4] ) ) {
+        $xday = POSIX::mktime( 0, 0, 0, $cgiparams{'DAY'}, $cgiparams{'MONTH'}, $year - 1901 );
+        $date = "$longmonths[$cgiparams{'MONTH'}] $date, ". int($year-1);
+    } else {
+        $xday = POSIX::mktime( 0, 0, 0, $cgiparams{'DAY'}, $cgiparams{'MONTH'}, $year - 1900 );
+        $date = "$longmonths[$cgiparams{'MONTH'}] $date, $year";
+    }
+
+    # calculate end of active week (saturday 23H59)
+    my @then = ();
+    @then = localtime(time());
+    my $sunday = POSIX::mktime( 0, 0, 0, @then[3], @then[4], @then[5]);
+    $sunday += (6-$then[6]) * 86400;
+
+    # Convert delta in second to full weeks
+       $gzindex = int (($sunday-$xday)/604800 );
+}
+                                                                                          
+my $monthstr = $shortmonths[$cgiparams{'MONTH'}];
+my $daystr =  $cgiparams{'DAY'} == 0 ?  '..' : $cgiparams{'DAY'} <= 9 ? " $cgiparams{'DAY'}" : "$cgiparams{'DAY'}";
+       
+my $lines = 0;
+my @log=();
+
+my $loop = 1;
+my $filestr = 0;
+my $lastdatetime;           # for debug
+my $search_for_end = 0;
+           
+while ($gzindex >=0 && $loop) {
+        # calculate file name
+        if ($gzindex == 0) {
+            $filestr = "/var/log/messages";
+        } else {
+            $filestr = "/var/log/messages.$gzindex";
+           $filestr = "$filestr.gz" if -f "$filestr.gz";
+        }
+       # now read file if existing
+       if (open (FILE,($filestr =~ /.gz$/ ? "gzip -dc $filestr |" : $filestr))) {
+           #&General::log("reading $filestr");
+           READ:while (<FILE>) {
+               my $line = $_;
+               if ($line =~ /^${monthstr} ${daystr} ..:..:.. [\w\-]+ kernel:.*IN=.*$/) {
+                   # when standart viewing, just keep in memory the correct slice
+                   # it starts a '$start' and size is $viewport
+                   # If export, then keep all lines...
+                   if ($cgiparams{'ACTION'} eq $Lang::tr{'export'}){
+                       $log[$lines++] = "$line";
+                   } else {
+                       if ($lines++ < ($start + $Header::viewsize)) {
+                           push(@log,"$line");
+                           if (@log > $Header::viewsize) {
+                               shift (@log);
+                           }
+                       #} else { dont do this optimisation, need to count lines !
+                           #    $datetime = $maxtime; # we have read viewsize lines, stop main loop
+                           #    last READ;           # exit read file
+                       }
+                   }
+                   $search_for_end = 1;        # we find the start of slice, can look for end now
+               } else {
+                   if ($search_for_end == 1) {
+                       #finish read files when date is over (test month equality only)
+                       $line =~ /^(...) (..) ..:..:..*$/;
+                       $loop = 0 if ( ($1 ne $monthstr) || ( ($daystr ne '..') && ($daystr ne $2) ) );
+                   }
+               }
+           }
+           close (FILE);
+       }
+       $gzindex--;     # will try next gz file eg 40,39,38,.... because it may have holes when ipcop stopped
+                       # for a long time
+}# while
+
+#  $errormessage = "$Lang::tr{'date not in logs'}: $filestr $Lang::tr{'could not be opened'}";
+
+if ($cgiparams{'ACTION'} eq $Lang::tr{'export'})
+{
+       print "Content-type: text/plain\n\n";
+       print "IPCop firewall log\r\n";
+       print "$Lang::{'date'}: $date\r\n\r\n";
+
+       if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; }
+
+       foreach $_ (@log)
+       {
+               /^... (..) (..:..:..) [\w\-]+ kernel:.*(IN=.*)$/;
+               my $day =  $1;
+               $day =~ tr / /0/;
+               my $time = $cgiparams{'DAY'} ? "$2" : "$day/$2" ;
+               print "$time $3\r\n";
+               
+       }
+       exit 0;
+}
+
+&Header::showhttpheaders();
+
+&Header::openpage($Lang::tr{'firewall log'}, 1, '');
+
+&Header::openbigbox('100%', 'left', '', $errormessage);
+
+if ($errormessage) {
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
+       print "<font class='base'>$errormessage&nbsp;</font>\n";
+       &Header::closebox();
+}
+
+&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:");
+
+print <<END
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<table width='100%'>
+<tr>
+       <td width='10%' class='base'>$Lang::tr{'month'}:&nbsp;</td>
+       <td width='10%'>
+       <select name='MONTH'>
+END
+;
+for (my $month = 0; $month < 12; $month++)
+{
+       print "\t<option ";
+       if ($month == $cgiparams{'MONTH'}) {
+               print "selected='selected' "; }
+       print "value='$month'>$longmonths[$month]</option>\n";
+}
+print <<END
+       </select>
+       </td>
+       <td width='10%' class='base' align='right'>&nbsp;$Lang::tr{'day'}:&nbsp;</td>
+       <td width='40%'>
+       <select name='DAY'>
+END
+;
+print "<option value='0'>$Lang::tr{'all'}</option>\n";
+for (my $day = 1; $day <= 31; $day++) 
+{
+       print "\t<option ";
+       if ($day == $cgiparams{'DAY'}) {
+               print "selected='selected' "; }
+       print "value='$day'>$day</option>\n";
+}
+print <<END
+</select>
+</td>
+<td width='5%'  align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='&lt;&lt;' /></td>
+<td width='5%'  align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='&gt;&gt;' /></td>
+<td width='10%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
+<td width='10%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'export'}' /></td>
+</tr>
+</table>
+</form>
+END
+;
+
+&Header::closebox();
+
+&Header::openbox('100%', 'left', $Lang::tr{'log'});
+print "<p><b>$Lang::tr{'firewall hits'} $date: $lines</b></p>";
+
+$start = $lines - ${Header::viewsize} if ($start >= $lines - ${Header::viewsize});
+$start = 0 if ($start < 0);
+
+my $prev;
+    if ($start == 0) {
+       $prev = -1;
+    } else {
+       $prev = $start - ${Header::viewsize};
+       $prev = 0 if ( $prev < 0);
+    }
+                                   
+my $next;
+    if ($start == $lines - ${Header::viewsize}) {
+        $next = -1;
+    } else {
+        $next = $start + ${Header::viewsize};
+        $next = $lines - ${Header::viewsize} if ($next >= $lines - ${Header::viewsize});
+    }
+
+if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; }
+if ($lines != 0) { &oldernewer(); }
+
+print <<END
+<table width='100%'>
+<tr>
+       <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td>
+       <td width='13%' align='center' class='boldbase'><b>$Lang::tr{'chain'}</b></td>
+       <td width='5%' align='center' class='boldbase'><b>$Lang::tr{'iface'}</b></td>
+       <td width='5%' align='center' class='boldbase'><b>$Lang::tr{'proto'}</b></td>
+       <td width='16%' align='center' class='boldbase'><b>$Lang::tr{'source'}</b></td>
+       <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'src port'}</b></td>
+       <td width='5%' align='center' class='boldbase'><b>$Lang::tr{'mac address'}</b></td>
+       <td width='16%' align='center' class='boldbase'><b>$Lang::tr{'destination'}</b></td>
+       <td width='20%' align='center' class='boldbase'><b>$Lang::tr{'dst port'}</b></td>
+</tr>
+END
+;
+
+
+$lines = 0;
+foreach $_ (@log)
+{
+       /^... (..) (..:..:..) [\w\-]+ kernel:(.*)(IN=.*)$/;
+       my $day =  $1;
+       $day =~ tr / /0/;
+       my $time = $cgiparams{'DAY'} ? "$2" : "$day/$2" ;
+       my $comment = $3; 
+       my $packet = $4;
+
+
+       $packet =~ /IN=(\w+)/;       my $iface=$1;
+       $packet =~ /SRC=([\d\.]+)/;  my $srcaddr=$1;
+       $packet =~ /DST=([\d\.]+)/;  my $dstaddr=$1;
+       $packet =~ /MAC=([\w+\:]+)/; my $macaddr=$1;
+       $packet =~ /PROTO=(\w+)/;    my $proto=$1;
+       $packet =~ /SPT=(\d+)/;      my $srcport=$1;
+       $packet =~ /DPT=(\d+)/;      my $dstport=$1;
+       my $servi = uc(getservbyport($srcport, lc($proto)));
+       if ($servi ne '' && $srcport < 1024) {
+               $srcport = "$srcport($servi)"; }
+       $servi = uc(getservbyport($dstport, lc($proto)));
+       if ($servi ne '' && $dstport < 1024) {
+               $dstport = "$dstport($servi)";}
+       my @mactemp = split(/:/,$macaddr);
+       $macaddr = "$mactemp[6]:$mactemp[7]:$mactemp[8]:$mactemp[9]:$mactemp[10]:$mactemp[11]";
+       if ($lines % 2) {
+               print "<tr bgcolor='${Header::table1colour}'>\n"; }
+       else {
+               print "<tr bgcolor='${Header::table2colour}'>\n"; }
+       print <<END
+
+       <td align='center'>$time</td>
+       <td align='center'>$comment</td>
+       <td align='center'>$iface</td>
+       <td align='center'>$proto</td>
+       <td align='center'>
+       <table width='100%' cellpadding='0' cellspacing='0'><tr>
+       <td align='center'><a href='/cgi-bin/ipinfo.cgi?ip=$srcaddr'>$srcaddr</a></td>
+       </tr></table>
+       </td>
+       <td align='center'>$srcport</td>
+       <td align='center'>$macaddr</td>
+       <td align='center'>
+       <table width='100%' cellpadding='0' cellspacing='0'><tr>
+       <td align='center'><a href='/cgi-bin/ipinfo.cgi?ip=$dstaddr'>$dstaddr</a></td>
+       </tr></table>
+       </td>
+       <td align='center'>$dstport</td>
+</tr>
+END
+       ;
+       $lines++;
+}
+
+print "</table>";
+
+&oldernewer();
+
+&Header::closebox();
+
+&Header::closebigbox();
+
+&Header::closepage();
+
+sub oldernewer
+{
+print <<END
+<table width='100%'>
+<tr>
+END
+;
+
+print "<td align='center' width='50%'>";
+if ($prev != -1) {
+       print "<a href='/cgi-bin/logs.cgi/firewalllog.dat?$prev,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'older'}</a>"; }
+else {
+       print "$Lang::tr{'older'}"; }
+print "</td>\n";
+
+print "<td align='center' width='50%'>";
+if ($next >= 0) {
+       print "<a href='/cgi-bin/logs.cgi/firewalllog.dat?$next,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'newer'}</a>"; }
+else {
+       print "$Lang::tr{'newer'}"; }
+print "</td>\n";
+
+print <<END
+</tr>
+</table>
+END
+;
+}
diff --git a/html/cgi-bin/logs.cgi/ids.dat b/html/cgi-bin/logs.cgi/ids.dat
new file mode 100644 (file)
index 0000000..09dde00
--- /dev/null
@@ -0,0 +1,458 @@
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+# Copyright (C) 18-03-2002 Mark Wormgoor <mark@wormgoor.com>
+#              - Added links to Snort database and ipinfo.cgi
+#
+# $Id: ids.dat,v 1.6.2.16 2005/06/14 08:25:30 eoberlander Exp $
+#
+
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require 'CONFIG_ROOT/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+
+use POSIX();
+
+#workaround to suppress a warning when a variable is used only once
+my @dummy = ( ${Header::table1colour}, ${Header::table2colour} );
+undef (@dummy);
+
+my %cgiparams=();
+my %logsettings=();
+my @log=();
+my $errormessage = '';
+
+my @shortmonths = ( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug',
+       'Sep', 'Oct', 'Nov', 'Dec' );
+my @longmonths = ( $Lang::tr{'january'}, $Lang::tr{'february'}, $Lang::tr{'march'},
+       $Lang::tr{'april'}, $Lang::tr{'may'}, $Lang::tr{'june'}, $Lang::tr{'july'}, $Lang::tr{'august'},
+       $Lang::tr{'september'}, $Lang::tr{'october'}, $Lang::tr{'november'},
+       $Lang::tr{'december'} );
+
+my @now = localtime(time);
+my $dow = $now[6];
+my $doy = $now[7];
+my $tdoy = $now[7];
+my $year = $now[5]+1900;
+
+$cgiparams{'DAY'} = $now[3];
+$cgiparams{'MONTH'} = $now[4];
+$cgiparams{'ACTION'} = '';
+
+&Header::getcgihash(\%cgiparams);
+$logsettings{'LOGVIEW_REVERSE'} = 'off';
+&General::readhash("${General::swroot}/logging/settings", \%logsettings);
+${Header::viewsize} = defined ($logsettings{'LOGVIEW_VIEWSIZE'}) ? $logsettings{'LOGVIEW_VIEWSIZE'} : 150;
+$Header::viewsize /= 5;        # each ids is displayed on 5 lines
+
+$now[4] = $cgiparams{'MONTH'}+1;
+if($now[4] < 10) {
+        $now[4] = "0$now[4]"; }
+
+my $start = -1;
+if ($ENV{'QUERY_STRING'} && $cgiparams{'ACTION'} ne $Lang::tr{'update'})
+{
+       my @temp = split(',',$ ENV{'QUERY_STRING'});
+       $start = $temp[0];
+       $cgiparams{'MONTH'} = $temp[1];
+       $cgiparams{'DAY'} = $temp[2];  
+}
+
+if (!($cgiparams{'MONTH'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11)$/) ||
+        !($cgiparams{'DAY'} =~ /^(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)$/))
+{
+        $cgiparams{'DAY'} = $now[3];
+        $cgiparams{'MONTH'} = $now[4];
+}
+elsif($cgiparams{'ACTION'} eq '>>')
+{
+        my @temp_then=();
+        my @temp_now = localtime(time);
+        $temp_now[4] = $cgiparams{'MONTH'};
+        $temp_now[3] = $cgiparams{'DAY'};
+        @temp_then = localtime(POSIX::mktime(@temp_now) + 86400);
+           ## Retrieve the same time on the next day +
+           ## 86400 seconds in a day
+        $cgiparams{'MONTH'} = $temp_then[4];
+        $cgiparams{'DAY'} = $temp_then[3];
+}
+elsif($cgiparams{'ACTION'} eq '<<')
+{
+        my @temp_then=();
+        my @temp_now = localtime(time);
+        $temp_now[4] = $cgiparams{'MONTH'};
+        $temp_now[3] = $cgiparams{'DAY'};
+        @temp_then = localtime(POSIX::mktime(@temp_now) - 86400);
+           ## Retrieve the same time on the previous day -
+           ## 86400 seconds in a day
+        $cgiparams{'MONTH'} = $temp_then[4];
+        $cgiparams{'DAY'} = $temp_then[3];
+}
+
+
+if (($cgiparams{'DAY'} ne $now[3]) || ($cgiparams{'MONTH'} ne $now[4]))
+{
+       my @then = ();
+       if ( (  $cgiparams{'MONTH'} eq $now[4]) && ($cgiparams{'DAY'} > $now[3]) ||
+                       ( $cgiparams{'MONTH'} > $now[4] ) ) {
+               @then = localtime(POSIX::mktime( 0, 0, 0, $cgiparams{'DAY'}, $cgiparams{'MONTH'}, $year - 1901 ));
+       } else {
+               @then = localtime(POSIX::mktime( 0, 0, 0, $cgiparams{'DAY'}, $cgiparams{'MONTH'}, $year - 1900 ));
+       }
+       $tdoy = $then[7];
+       my $lastleap=($year-1)%4; 
+        if ($tdoy>$doy) {
+               if ($lastleap == 0 && $tdoy < 60) {
+                       $doy=$doy+366;
+               } else {
+                       $doy=$doy+365;
+               }
+       }
+}
+my $datediff=0;
+my $dowd=0;
+my $multifile=0;
+if ($tdoy ne $doy) {
+       $datediff=int(($doy-$tdoy)/7);
+       $dowd=($doy-$tdoy)%7;
+        if (($dow-$dowd)<1) {
+               $datediff=$datediff+1;
+       }
+       if (($dow-$dowd)==0) {
+               $multifile=1;
+       }
+}
+
+my $longmonthstr = $longmonths[$cgiparams{'MONTH'}];
+my $monthnum = $cgiparams{'MONTH'} + 1;
+my $monthstr = $monthnum <= 9 ? "0$monthnum" : "$monthnum";
+my $daystr = $cgiparams{'DAY'} <= 9 ? "0$cgiparams{'DAY'}" : "$cgiparams{'DAY'}";
+
+my $lines = 0;
+my ($title,$classification,$priority,$date,$time,$srcip,$srcport,$destip,$destport, $sid, @refs);
+
+&processevent;
+
+if ($multifile) {
+       $datediff=$datediff-1;
+       &processevent;
+}
+
+if ($cgiparams{'ACTION'} eq $Lang::tr{'export'})
+{
+       print "Content-type: text/plain\n\n";
+       print "IPCop IDS snort log\r\n";
+       print "Date: $cgiparams{'DAY'} $longmonths[$cgiparams{'MONTH'}]\r\n"; 
+       print "\r\n";
+
+       if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; }
+
+       foreach $_ (@log)
+       {
+               my ($datetime,$title,$priority,$classification,$srcip,$srcport,$destip,$destport,$sid,$refs) = split(/\|/);
+               $refs =~ s/,$//;
+               print "Date: $datetime\n";
+               print "Name: $title\n";
+               print "Priority: $priority\n";
+               print "Type: $classification\n";
+               print "IP Info: ";
+               print "$srcip";
+               if ($srcport != "n/a") {
+                       print ":$srcport";
+               }
+               print " -> ";
+               print "$destip";
+               if ($destport != "n/a") {
+                       print ":$destport";
+               }
+               print "\n";
+               print "SID: $sid\n";
+               print "Refs: $refs\n\n";
+       }
+
+       exit;
+}
+
+&Header::showhttpheaders();
+
+&Header::openpage($Lang::tr{'ids log viewer'}, 1, '');
+
+&Header::openbigbox('100%', 'left', '', $errormessage);
+
+if ($errormessage) {
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
+       print "<font class='base'>$errormessage&nbsp;</font>\n";
+       &Header::closebox();
+}
+
+&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:");
+
+print <<END
+<form method='post' action="$ENV{'SCRIPT_NAME'}">
+<table width='100%'>
+<tr>
+       <td width='10%' class='base'>$Lang::tr{'month'}:&nbsp;</td>
+       <td width='10%'>
+       <select name='MONTH'>
+END
+;
+for (my $month = 0; $month < 12; $month++)
+{
+       print "\t<option ";
+       if ($month == $cgiparams{'MONTH'}) {
+               print 'selected="selected" '; }
+       print "value='$month'>$longmonths[$month]</option>\n";
+}
+print <<END
+       </select>
+       </td>
+       <td width='10%' class='base' align='right'>&nbsp;$Lang::tr{'day'}:&nbsp;</td>
+       <td width='40%'>
+       <select name='DAY'>
+END
+;
+for (my $day = 1; $day <= 31; $day++) 
+{
+       print "\t<option ";
+       if ($day == $cgiparams{'DAY'}) {
+               print 'selected="selected" '; }
+       print "value='$day'>$day</option>\n";
+}
+print <<END
+       </select>
+       </td>
+       <td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='&lt;&lt;' /></td>
+        <td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='&gt;&gt;' /></td>
+       <td width='10%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
+       <td width='10%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'export'}' /></td>
+</tr>
+</table>
+</form>
+END
+;
+
+&Header::closebox();
+
+&Header::openbox('100%', 'left', $Lang::tr{'log'});
+print "<p><b>$Lang::tr{'snort hits'} $longmonthstr $daystr: $lines</b></p>";
+
+if ($start == -1) {
+        $start = $lines - ${Header::viewsize}; }
+if ($start >= $lines - ${Header::viewsize}) { $start = $lines - ${Header::viewsize}; };
+if ($start < 0) { $start = 0; }
+
+my $prev = $start - ${Header::viewsize};
+my $next = $start + ${Header::viewsize};
+
+if ($prev < 0) { $prev = 0; }
+if ($next >= $lines) { $next = -1 }
+if ($start == 0) { $prev = -1; }
+my @slice = splice(@log, $start, ${Header::viewsize});
+
+if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @slice = reverse @slice; }
+
+if ($lines != 0) {
+
+&oldernewer();
+
+$lines = 0;
+
+print <<END
+<table width='100%'>
+END
+;
+
+foreach $_ (@slice)
+{
+       if ($lines % 2) {
+               print "<tr bgcolor='${Header::table1colour}'><td>\n"; }
+       else {
+               print "<tr bgcolor='${Header::table2colour}'><td>\n"; }
+       my ($datetime,$title,$priority,$classification,$srcip,$srcport,$destip,$destport,$sid,$refs) = split(/\|/);
+       print <<END
+<table width='100%'>
+<tr>
+<td width='15%'><b>$Lang::tr{'date'}:</b></td><td width='25%'>$datetime</td>
+<td width='10%'><b>$Lang::tr{'name'}:</b></td><td width='50%'>$title</td>
+</tr>
+<tr><td><b>$Lang::tr{'priority'}:</b></td><td>$priority</td>
+<td><b>$Lang::tr{'type'}:</b></td><td>$classification</td>
+</tr>
+<tr><td><b>$Lang::tr{'ipinfo'}:</b></td>
+<td colspan='3'>
+END
+       ;
+       if ($srcip ne "n/a") {
+               print "<a href='/cgi-bin/ipinfo.cgi?ip=$srcip'>$srcip</a>";
+       } else {
+               print "$srcip";
+       }
+       print ":$srcport -&gt; ";
+       if ($destip ne "n/a") {
+               print "<a href='/cgi-bin/ipinfo.cgi?ip=$destip'>$destip</a>";
+       } else {
+               print "$destip";
+       }
+       print ":$destport";
+print <<END
+</td>
+</tr>
+<tr><td valign='top'><b>$Lang::tr{'references'}:</b></td><td valign='top'>
+END
+;
+       foreach my $ref (split(/,/,$refs)) {
+               if ($ref =~ m/url (.*)/) {
+                       print "<a href='http://$1'>$1</a><br />";
+               } elsif ($ref =~ m/cve (.*)/) {
+                       print "<a href='http://cve.mitre.org/cgi-bin/cvename.cgi?name=$1'>$1</a><br />";
+               } elsif ($ref =~ m/nessus (.*)/) {
+                       print "<a href='http://cgi.nessus.org/plugins/dump.php3?id=$1'>Nessus $1</a><br />";
+               } elsif ($ref =~ m/bugtraq (.*)/) {
+                       print "<a href='http://www.securityfocus.com/bid/$1'>Bugtraq $1</a><br />";
+               } else {
+                       print "$ref<br />";
+               }
+       }
+       print $Lang::tr{'none found'} unless $refs =~ /,/;
+print <<END
+<td valign='top'><b>SID:</b></td>
+<td valign='top'>
+END
+       ;
+       if ($sid ne "n/a") {
+               print "<a href='http://www.snort.org/pub-bin/sigs.cgi?sid=$sid' ";
+               print "target='_blank'>$sid</a></td>\n";
+       } else {
+               print $sid;
+       }
+print <<END
+</tr>
+</table>
+</td></tr>
+END
+       ;
+       $lines++;
+}
+
+print "</table>";
+
+}
+
+&oldernewer();
+
+&Header::closebox();
+
+&Header::closebigbox();
+
+&Header::closepage();
+
+sub processevent
+{
+       our ($title,$classification,$priority,$date,$time,$srcip,$srcport,$destip,$destport, $sid, @refs);
+
+       my $filestr='';
+       if ($datediff==0) {
+               $filestr="/var/log/snort/alert";
+       } else {
+               $filestr="/var/log/snort/alert.$datediff";
+               $filestr = "$filestr.gz" if -f "$filestr.gz";
+       }
+       if (!(open (LOG,($filestr =~ /.gz$/ ? "gzip -dc $filestr |" : $filestr)))) {
+               $errormessage="$errormessage$Lang::tr{'date not in logs'}: $filestr $Lang::tr{'could not be opened'}";
+       } else {
+               my $line = 0;
+
+               while(<LOG>) {
+                       $line++;
+                       if ($_ =~ m/\[\*\*\]/) {
+                               unless ($line == 1 || $date ne "$monthstr/$daystr") {
+                                       &append;
+                                       $line = 1;
+                               }
+                               ($title,$classification,$priority,$date,$time,$srcip,$srcport,$destip,$destport, $sid) = ("n/a","n/a","n/a","n/a","n/a","n/a","n/a","n/a","n/a", "n/a");
+                               @refs = ();
+                               $_ =~ m/:([0-9]{1,4})\] (.*) \[\*\*\]/;
+                               $title = &Header::cleanhtml($2,"y");
+                       }
+                       if ($_ =~ m/Classification: (.*)\] \[Priority: (\d)\]/) {
+                               $classification = &Header::cleanhtml($1,"y");
+                               $priority = $2;
+                       }
+                       if ($_ =~ m/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}) \-\> ([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/) {
+                               $srcip = $1 . "." . $2 . "." . $3 . "." . $4;
+                               $destip = $5 . "." . $6 . "." . $7 . "." . $8;
+                       }
+                       if ($_ =~ m/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\:([0-9]{1,6}) \-\> ([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\:([0-9]{1,6})/) {
+                               $srcip = $1 . "." . $2 . "." . $3 . "." . $4;
+                               $srcport = $5;
+                               $destip = $6 . "." . $7 . "." . $8 . "." . $9;
+                               $destport = $10;
+                       }
+
+                       if ($_  =~ m/^([0-9\/]{3,5})\-([0-9\:]{5,8})\.([0-9]{1,14})/) {
+                               ($date,$time) = ($1,$2);
+                       }
+                       if ($_ =~ m/\[Xref \=\>.*\]/) {
+                               $_ =~ s/\]\[Xref \=\> /, /g;
+                               $_ =~ m/\[Xref \=\> (.*)\]/;
+                               push(@refs, $1);
+                       }
+                       if ($_ =~ m/\[1:([0-9]+):[0-9]+\]/) {
+                               $sid = $1;
+                       }
+               }
+               $line++;
+               unless ($line == 1 || $date ne "$monthstr/$daystr") { &append; }
+               close(LOG);
+       }
+}
+
+sub append
+{
+       our ($title,$classification,$priority,$date,$time,$srcip,$srcport,$destip,$destport, $sid, @refs);
+
+       $log[$lines] = "$date $time|$title|$priority|$classification|$srcip|$srcport|$destip|$destport|$sid|";
+       foreach $_ (@refs) {
+               $log[$lines] = "$log[$lines]$_,"; }
+       $lines++;
+}
+
+sub oldernewer
+{
+print <<END
+<table width='100%'>
+<tr>
+END
+;
+
+print "<td align='center' width='50%'>";
+if ($prev != -1) {
+        print "<a href='/cgi-bin/logs.cgi/ids.dat?$prev,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'older'}</a>"; }
+else {
+        print "$Lang::tr{'older'}"; }
+print "</td>\n";
+
+print "<td align='center' width='50%'>";
+if ($next != -1) {
+        print "<a href='/cgi-bin/logs.cgi/ids.dat?$next,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'newer'}</a>"; }
+else {
+        print "$Lang::tr{'newer'}"; }
+print "</td>\n";
+
+print <<END
+</tr>
+</table>
+END
+;
+}
diff --git a/html/cgi-bin/logs.cgi/log.dat b/html/cgi-bin/logs.cgi/log.dat
new file mode 100644 (file)
index 0000000..87701ad
--- /dev/null
@@ -0,0 +1,426 @@
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+# $Id: log.dat,v 1.6.2.22 2006/01/03 12:47:17 franck78 Exp $
+#
+
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require 'CONFIG_ROOT/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+
+use POSIX();
+
+#workaround to suppress a warning when a variable is used only once
+my @dummy = ( ${Header::table2colour} );
+undef (@dummy);
+
+my %cgiparams=();
+my %logsettings=();
+my $errormessage = '';
+
+my @shortmonths = ( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug',
+       'Sep', 'Oct', 'Nov', 'Dec' );
+my @longmonths = ( $Lang::tr{'january'}, $Lang::tr{'february'}, $Lang::tr{'march'},
+       $Lang::tr{'april'}, $Lang::tr{'may'}, $Lang::tr{'june'}, $Lang::tr{'july'}, $Lang::tr{'august'},
+       $Lang::tr{'september'}, $Lang::tr{'october'}, $Lang::tr{'november'},
+       $Lang::tr{'december'} );
+
+my @now = localtime();
+my $dow = $now[6];
+my $doy = $now[7];
+my $tdoy = $now[7];
+my $year = $now[5]+1900;
+
+$cgiparams{'DAY'} = $now[3];
+$cgiparams{'MONTH'} = $now[4];
+$cgiparams{'ACTION'} = '';
+$cgiparams{'SECTION'} = 'ipcop';
+
+my %sections = (
+        'ipcop' => '(ipcop)',
+        'red' => '(red.*|kernel: usb.*|pppd\[.*\]|chat\[.*\]|pppoe\[.*\]|pptp\[.*\]|pppoa\[.*\]|pppoa3\[.*\]|pppoeci\[.*\]|ipppd|ipppd\[.*\]|kernel: ippp\d|kernel: isdn.*|ibod\[.*\]|kernel: eth.*|dhcpcd\[.*\]|modem_run\[.*\])',
+        'dns' => '(dnsmasq\[.*\])',
+        'dhcp' => '(dhcpd)',
+        'cron' => '(fcron\[.*\])',
+        'ntp' => '(ntpd(?:ate)?\[.*\])',
+        'ssh' => '(sshd(?:\(.*\))?\[.*\])',
+        'auth' => '(\w+\(pam_unix\)\[.*\])',
+        'kernel' => '(kernel)',
+        'ipsec' => '(ipsec_[\w_]+|pluto\[.*\])',
+        'snort' => '(snort)',
+        'installpackage' => '(installpackage\[.*\])'
+        );
+
+# Translations for the %sections array.
+my %trsections = (
+        'ipcop' => 'IPCop',
+        'red' => 'RED',
+        'dns' => 'DNS',
+        'dhcp' => "$Lang::tr{'dhcp server'}",
+        'cron' => 'Cron',
+        'ntp' => 'NTP',
+        'ssh' => 'SSH',
+        'auth' => "$Lang::tr{'loginlogout'}",
+        'kernel' => "$Lang::tr{'kernel'}",
+        'ipsec' => 'IPSec',
+        'snort' => 'Snort',
+        'installpackage' => "$Lang::tr{'update transcript'}"   
+       );
+
+
+&Header::getcgihash(\%cgiparams);
+$logsettings{'LOGVIEW_REVERSE'} = 'off';
+&General::readhash("${General::swroot}/logging/settings", \%logsettings);
+${Header::viewsize} = defined ($logsettings{'LOGVIEW_VIEWSIZE'}) ? $logsettings{'LOGVIEW_VIEWSIZE'} : 150;
+
+my $start = ($logsettings{'LOGVIEW_REVERSE'} eq 'on') ? 0x7FFFF000 : 0; #index of firts line number to display
+
+if ($ENV{'QUERY_STRING'} && $cgiparams{'ACTION'} ne $Lang::tr{'update'})
+{
+       my @temp = split(',',$ENV{'QUERY_STRING'});
+       $start = $temp[0];
+       $cgiparams{'MONTH'} = $temp[1];
+       $cgiparams{'DAY'} = $temp[2];
+       $cgiparams{'SECTION'} = $temp[3];
+}
+
+if (!($cgiparams{'MONTH'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11)$/) ||
+       !($cgiparams{'DAY'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)$/))
+{
+       $cgiparams{'DAY'} = $now[3];
+       $cgiparams{'MONTH'} = $now[4];
+}
+elsif($cgiparams{'ACTION'} eq '>>')
+{
+        my @temp_then=();
+        my @temp_now = localtime(time);
+        $temp_now[4] = $cgiparams{'MONTH'};
+        $temp_now[3] = $cgiparams{'DAY'};
+       if ($cgiparams{'DAY'}) {
+            @temp_then = localtime(POSIX::mktime(@temp_now) + 86400);
+           ## Retrieve the same time on the next day +
+           ## 86400 seconds in a day
+       } else {
+           $temp_now[3] = 1;
+           $temp_now[4] = ($temp_now[4]+1) %12;
+           @temp_then = localtime(POSIX::mktime(@temp_now) );
+           $temp_then[3] = 0;
+       }
+        $cgiparams{'MONTH'} = $temp_then[4];
+        $cgiparams{'DAY'} = $temp_then[3];
+}
+elsif($cgiparams{'ACTION'} eq '<<')
+{
+        my @temp_then=();
+        my @temp_now = localtime(time);
+        $temp_now[4] = $cgiparams{'MONTH'};
+        $temp_now[3] = $cgiparams{'DAY'};
+       if ($cgiparams{'DAY'}) {
+            @temp_then = localtime(POSIX::mktime(@temp_now) - 86400);
+           ## Retrieve the same time on the next day -
+           ## 86400 seconds in a day
+       } else {
+           $temp_now[3] = 1;
+           $temp_now[4] = ($temp_now[4]-1) %12;
+           @temp_then = localtime(POSIX::mktime(@temp_now) );
+           $temp_then[3] = 0;
+       }
+        $cgiparams{'MONTH'} = $temp_then[4];
+        $cgiparams{'DAY'} = $temp_then[3];
+}
+
+# Find in which file.gz is the log. Can be calculated because WEEKLY ROTATING of access.log
+my $gzindex;
+my $date = $cgiparams{'DAY'} == 0 ? '' :  $cgiparams{'DAY'} <= 9 ? "0$cgiparams{'DAY'}" : "$cgiparams{'DAY'}";
+
+{
+    my $xday;
+    
+    # Calculate time. If future date, calculate for past year !!!
+    if (( $cgiparams{'MONTH'} eq $now[4]) && ($cgiparams{'DAY'} > $now[3]) ||
+        ( $cgiparams{'MONTH'}  > $now[4] ) ) {
+        $xday = POSIX::mktime( 0, 0, 0, $cgiparams{'DAY'}, $cgiparams{'MONTH'}, $year - 1901 );
+        $date = "$longmonths[$cgiparams{'MONTH'}] $date, ". int($year-1);
+    } else {
+        $xday = POSIX::mktime( 0, 0, 0, $cgiparams{'DAY'}, $cgiparams{'MONTH'}, $year - 1900 );
+        $date = "$longmonths[$cgiparams{'MONTH'}] $date, $year";
+    }
+
+    # calculate end of active week (saturday 23H59)
+    my @then = ();
+    @then = localtime(time());
+    my $sunday = POSIX::mktime( 0, 0, 0, @then[3], @then[4], @then[5]);
+    $sunday += (6-$then[6]) * 86400;
+
+    # Convert delta in second to full weeks
+       $gzindex = int (($sunday-$xday)/604800 );
+}
+                                                                                          
+my $monthstr = $shortmonths[$cgiparams{'MONTH'}];
+my $daystr =  $cgiparams{'DAY'} == 0 ?  '..' : $cgiparams{'DAY'} <= 9 ? " $cgiparams{'DAY'}" : "$cgiparams{'DAY'}";
+my $section = $sections{$cgiparams{'SECTION'}};
+
+my $lines = 0;
+my @log=();
+
+my $loop = 1;
+my $filestr = 0;
+my $lastdatetime;           # for debug
+my $search_for_end = 0;
+           
+while ($gzindex >=0 && $loop) {
+        # calculate file name
+        if ($gzindex == 0) {
+            $filestr = "/var/log/messages";
+        } else {
+            $filestr = "/var/log/messages.$gzindex";
+           $filestr = "$filestr.gz" if -f "$filestr.gz";
+        }
+       # now read file if existing
+       if (open (FILE,($filestr =~ /.gz$/ ? "gzip -dc $filestr |" : $filestr))) {
+           #&General::log("reading $filestr");
+           READ:while (<FILE>) {
+               my $line = $_;
+               if ($line =~ /^${monthstr} ${daystr} ..:..:.. [\w\-]+ ${section}: (.*)/) {
+                   # when standart viewing, just keep in memory the correct slice
+                   # it starts a '$start' and size is $viewport
+                   # If export, then keep all lines...
+                   if ($cgiparams{'ACTION'} eq $Lang::tr{'export'}){
+                       $log[$lines++] = "$line";
+                   } else {
+                       if ($lines++ < ($start + $Header::viewsize)) {
+                           push(@log,"$line");
+                           if (@log > $Header::viewsize) {
+                               shift (@log);
+                           }
+                       #} else { dont do this optimisation, need to count lines !
+                           #    $datetime = $maxtime; # we have read viewsize lines, stop main loop
+                           #    last READ;           # exit read file
+                       }
+                   }
+                   $search_for_end = 1;        # we find the start of slice, can look for end now
+               } else {
+                   if ($search_for_end == 1) {
+                       #finish read files when date is over (test month equality only)
+                       $line =~ /^(...) (..) ..:..:..*$/;
+                       $loop = 0 if ( ($1 ne $monthstr) || ( ($daystr ne '..') && ($daystr ne $2) ) );
+                   }
+               }
+           }
+           close (FILE);
+       }
+       $gzindex--;     # will try next gz file eg 40,39,38,.... because it may have holes when ipcop stopped
+                       # for a long time
+}# while
+
+#  $errormessage = "$Lang::tr{'date not in logs'}: $filestr $Lang::tr{'could not be opened'}";
+
+if ($cgiparams{'ACTION'} eq $Lang::tr{'export'})
+{
+       print "Content-type: text/plain\n\n";
+       print "IPCop diagnostics\r\n";
+       print "$Lang::tr{'section'}: $cgiparams{'SECTION'}\n";
+       print "$Lang::tr{'date'}: $date\r\n\r\n";
+
+       if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; }
+
+       foreach $_ (@log)
+       {
+               /^... (..) (..:..:..) [\w\-]+ ${section}: (.*)$/;
+               my $day =  $1;
+               $day =~ tr / /0/;
+               my $time = $cgiparams{'DAY'} ? "$2" : "$day/$2" ;
+               print "$time $3 $4\r\n";
+       }
+       exit 0;
+}
+
+&Header::showhttpheaders();
+
+&Header::openpage($Lang::tr{'firewall log'}, 1, '');
+
+&Header::openbigbox('100%', 'left', '', $errormessage);
+
+if ($errormessage) {
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
+       print "<font class='base'>$errormessage&nbsp;</font>\n";
+       &Header::closebox();
+}
+
+&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:");
+
+print <<END
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<table width='100%'>
+<tr>
+       <td width='10%' class='base'>$Lang::tr{'section'}:&nbsp;</td>
+       <td width='20%'>
+       <select name='SECTION'>
+END
+;
+foreach $section (keys %sections) {
+       print "\t<option ";
+       if ($section eq $cgiparams{'SECTION'}) {
+               print "selected='selected' "; }
+       print "value='$section'>$trsections{$section}</option>\n";
+}
+print <<END
+       </select>
+       </td>
+       <td width='10%' class='base' align='right'>$Lang::tr{'month'}:&nbsp;</td>
+       <td width='10%'>
+       <select name='MONTH'>
+END
+;
+for (my $month = 0; $month < 12; $month++)
+{
+       print "\t<option ";
+       if ($month == $cgiparams{'MONTH'}) {
+               print "selected='selected' "; }
+       print "value='$month'>$longmonths[$month]</option>\n";
+}
+print <<END
+       </select>
+       </td>
+       <td width='10%' class='base' align='right'>&nbsp;$Lang::tr{'day'}:&nbsp;</td>
+       <td width='40%'>
+       <select name='DAY'>
+END
+;
+print "<option value='0'>$Lang::tr{'all'}</option>\n";
+for (my $day = 1; $day <= 31; $day++) 
+{
+       print "\t<option ";
+       if ($day == $cgiparams{'DAY'}) {
+               print "selected='selected' "; }
+       print "value='$day'>$day</option>\n";
+}
+print <<END
+</select>
+</td>
+<td width='5%'  align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='&lt;&lt;' /></td>
+<td width='5%'  align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='&gt;&gt;' /></td>
+<td width='10%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
+<td width='10%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'export'}' /></td>
+</tr>
+</table>
+</form>
+END
+;
+
+&Header::closebox();
+
+&Header::openbox('100%', 'left', $Lang::tr{'log'});
+print "<p><b>$Lang::tr{'total hits for log section'} $cgiparams{'SECTION'} $date: $lines</b></p>";
+
+$start = $lines - ${Header::viewsize} if ($start >= $lines - ${Header::viewsize});
+$start = 0 if ($start < 0);
+
+my $prev;
+    if ($start == 0) {
+       $prev = -1;
+    } else {
+       $prev = $start - ${Header::viewsize};
+       $prev = 0 if ( $prev < 0);
+    }
+                                   
+my $next;
+    if ($start == $lines - ${Header::viewsize}) {
+        $next = -1;
+    } else {
+        $next = $start + ${Header::viewsize};
+        $next = $lines - ${Header::viewsize} if ($next >= $lines - ${Header::viewsize});
+    }
+
+if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; }
+if ($lines != 0) { &oldernewer(); }
+
+print <<END
+<table width='100%'>
+<tr>
+       <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td>
+       <td width='15%' align='center' class='boldbase'><b>$Lang::tr{'section'}</b></td>
+       <td width='75%'>&nbsp;</td>
+</tr>
+END
+;
+
+$lines = 0;
+#print '<tt>';
+foreach $_ (@log)
+{
+       /^... (..) (..:..:..) [\w\-]+ ${section}: (.*)$/;
+       my $day =  $1;
+       $day =~ tr / /0/;
+       my $time = $cgiparams{'DAY'} ? "$2" : "$day/$2" ;
+       my $sec = $3;
+       my $data = $4;
+       # correct the cut position, just when section=RED
+       if (($cgiparams{'SECTION'} eq 'red' ) && ($sec =~ /(kernel:)(.*)/)) {
+           $sec = 'kernel';
+           $data = $2.': '.$data;
+       }
+       my $d = substr ($data,0,80);
+       while (length($data)>80){       #very basic breaking of lines...
+           $data = substr ($data,80);  #permit correct display in table cell
+           $d .=  ' ' . substr ($data,0,80);
+       }
+
+
+       if ($lines % 2) {
+               print "<tr bgcolor='${Header::table1colour}'>"; }
+       else {
+               print "<tr bgcolor='${Header::table2colour}'>"; }
+       print "<td>$time<td>$sec<td>" .&Header::cleanhtml ("$d", 'y') . "</td></tr>\n";
+       $lines++;
+}
+#print '</tt>';
+print "</table>";
+
+&oldernewer();
+
+&Header::closebox();
+
+&Header::closebigbox();
+
+&Header::closepage();
+
+sub oldernewer
+{
+print <<END
+<table width='100%'>
+<tr>
+END
+;
+
+print "<td align='center' width='50%'>";
+if ($prev != -1) {
+       print "<a href='/cgi-bin/logs.cgi/log.dat?$prev,$cgiparams{'MONTH'},$cgiparams{'DAY'},$cgiparams{'SECTION'}'>$Lang::tr{'older'}</a>"; }
+else {
+       print "$Lang::tr{'older'}"; }
+print "</td>\n";
+
+print "<td align='center' width='50%'>";
+if ($next >= 0) {
+       print "<a href='/cgi-bin/logs.cgi/log.dat?$next,$cgiparams{'MONTH'},$cgiparams{'DAY'},$cgiparams{'SECTION'}'>$Lang::tr{'newer'}</a>"; }
+else {
+       print "$Lang::tr{'newer'}"; }
+print "</td>\n";
+
+print <<END
+</tr>
+</table>
+END
+;
+}
diff --git a/html/cgi-bin/logs.cgi/proxylog.dat b/html/cgi-bin/logs.cgi/proxylog.dat
new file mode 100644 (file)
index 0000000..f790e2f
--- /dev/null
@@ -0,0 +1,494 @@
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+# $Id: proxylog.dat,v 1.4.2.25 2005/07/07 17:32:24 eoberlander Exp $
+#
+
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require 'CONFIG_ROOT/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+
+use POSIX();
+
+#workaround to suppress a warning when a variable is used only once
+my @dummy = ( ${Header::table2colour} );
+undef (@dummy);
+
+my %cgiparams=();
+my %logsettings=();
+my %ips=();
+my %selected=();
+my %checked=();
+my @log=();
+my $errormessage = '';
+
+my @shortmonths = ( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug',
+       'Sep', 'Oct', 'Nov', 'Dec' );
+my @longmonths = ( $Lang::tr{'january'}, $Lang::tr{'february'}, $Lang::tr{'march'},
+       $Lang::tr{'april'}, $Lang::tr{'may'}, $Lang::tr{'june'}, $Lang::tr{'july'}, $Lang::tr{'august'},
+       $Lang::tr{'september'}, $Lang::tr{'october'}, $Lang::tr{'november'},
+       $Lang::tr{'december'} );
+
+my @now = localtime();
+my $dow = $now[6];     # day of week
+my $doy = $now[7];     # day of year (0..364)
+my $tdoy = $now[7];
+my $year = $now[5]+1900;
+
+$cgiparams{'DAY'} = $now[3]; 
+$cgiparams{'MONTH'} = $now[4];
+$cgiparams{'SOURCE_IP'} = 'ALL';
+$cgiparams{'FILTER'} = "[.](gif|jpeg|jpg|png|css|js)\$";
+$cgiparams{'ENABLE_FILTER'} = 'off';
+$cgiparams{'ACTION'} = '';
+
+&Header::getcgihash(\%cgiparams);
+$logsettings{'LOGVIEW_REVERSE'} = 'off';
+&General::readhash("${General::swroot}/logging/settings", \%logsettings);
+${Header::viewsize} = defined ($logsettings{'LOGVIEW_VIEWSIZE'}) ? $logsettings{'LOGVIEW_VIEWSIZE'} : 150;
+
+if ($cgiparams{'ACTION'} eq '')
+{
+       $cgiparams{'ENABLE_FILTER'} = 'on';
+}
+
+if ($cgiparams{'ACTION'} eq $Lang::tr{'restore defaults'})
+{
+       $cgiparams{'FILTER'} = "[.](gif|jpeg|jpg|png|css|js)\$";
+       $cgiparams{'ENABLE_FILTER'} = 'off'; 
+}
+
+{
+    my %save=();
+    $save{'FILTER'} = $cgiparams{'FILTER'};
+    $save{'ENABLE_FILTER'} = $cgiparams{'ENABLE_FILTER'};
+    &General::writehash("${General::swroot}/proxy/viewersettings", \%save);
+    &General::readhash("${General::swroot}/proxy/viewersettings", \%save);
+}
+
+my $start = ($logsettings{'LOGVIEW_REVERSE'} eq 'on') ? 0x7FFFF000 : 0;        #index of first line number to display
+
+if ($ENV{'QUERY_STRING'} && $cgiparams{'ACTION'} ne $Lang::tr{'update'})
+{
+       my @temp = split(',',$ENV{'QUERY_STRING'});
+       $start = $temp[0];
+       $cgiparams{'MONTH'} = $temp[1];
+       $cgiparams{'DAY'} = $temp[2];  
+       $cgiparams{'SOURCE_IP'} = $temp[3];
+}
+
+if (!($cgiparams{'MONTH'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11)$/) ||
+        !($cgiparams{'DAY'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)$/))
+{
+        $cgiparams{'DAY'} = $now[3];
+        $cgiparams{'MONTH'} = $now[4];
+}
+elsif($cgiparams{'ACTION'} eq '>>')
+{
+        my @temp_then=();
+        my @temp_now = localtime(time);
+        $temp_now[4] = $cgiparams{'MONTH'};
+        $temp_now[3] = $cgiparams{'DAY'};
+       if ($cgiparams{'DAY'}) {
+           @temp_then = localtime(POSIX::mktime(@temp_now) + 86400);
+            ## Retrieve the same time on the next day +
+            ## 86400 seconds in a day
+           $cgiparams{'MONTH'} = $temp_then[4];
+           $cgiparams{'DAY'} = $temp_then[3];
+       } else {
+           $temp_now[3] = 1;
+           $temp_now[4] = ($temp_now[4]+1) %12;
+           @temp_then = localtime(POSIX::mktime(@temp_now) );
+           @temp_then[3] = 0;
+       }
+        $cgiparams{'MONTH'} = $temp_then[4];
+        $cgiparams{'DAY'} = $temp_then[3];
+}
+elsif($cgiparams{'ACTION'} eq '<<')
+{
+        my @temp_then=();
+        my @temp_now = localtime(time);
+        $temp_now[4] = $cgiparams{'MONTH'};
+        $temp_now[3] = $cgiparams{'DAY'};
+       if ($cgiparams{'DAY'}) {
+           @temp_then = localtime(POSIX::mktime(@temp_now) - 86400);
+            ## Retrieve the same time on the next day -
+            ## 86400 seconds in a day
+           $cgiparams{'MONTH'} = $temp_then[4];
+           $cgiparams{'DAY'} = $temp_then[3];
+       } else {
+           $temp_now[3] = 1;
+           $temp_now[4] = ($temp_now[4]-1) %12;
+           @temp_then = localtime(POSIX::mktime(@temp_now) );
+           @temp_then[3] = 0;
+       }
+        $cgiparams{'MONTH'} = $temp_then[4];
+        $cgiparams{'DAY'} = $temp_then[3];
+}
+
+# Find in which file.gz is the log. Can be calculated because WEEKLY ROTATING of *.log
+my $gzindex;
+my $daystr = $cgiparams{'DAY'} == 0 ? '' :$cgiparams{'DAY'} <= 9 ? "0$cgiparams{'DAY'}" : "$cgiparams{'DAY'}";
+
+{
+    my $xday;
+
+    # Calculate time. If future date, calculate for past year !!!
+    if (( $cgiparams{'MONTH'} eq $now[4]) && ($cgiparams{'DAY'} > $now[3]) ||
+       ( $cgiparams{'MONTH'}  > $now[4] ) ) {  
+       $xday = POSIX::mktime( 0, 0, 0, $cgiparams{'DAY'}, $cgiparams{'MONTH'}, $year - 1901 );
+       $daystr = "$longmonths[$cgiparams{'MONTH'}] $daystr, ". int($year-1);
+    } else {
+       $xday = POSIX::mktime( 0, 0, 0, $cgiparams{'DAY'}, $cgiparams{'MONTH'}, $year - 1900 );
+       $daystr = "$longmonths[$cgiparams{'MONTH'}] $daystr, $year";
+    }
+
+    # calculate end of active week (saturday 23H59)
+    my @then = ();
+    @then = localtime(time());
+    my $sunday = POSIX::mktime( 0, 0, 0, @then[3], @then[4], @then[5]);
+       $sunday += (6-$then[6]) * 86400;
+
+    # Convert delta in second to full weeks
+    $gzindex = int (($sunday-$xday)/604800 );
+}
+
+
+my $filter = $cgiparams{'ENABLE_FILTER'} eq 'on' ? $cgiparams{'FILTER'} : '';
+my $sourceip = $cgiparams{'SOURCE_IP'};
+my $sourceall =  $cgiparams{'SOURCE_IP'} eq 'ALL' ? 1 : 0;
+
+my $lines = 0;
+my $temp = ();
+my $thiscode = '$temp =~ /$filter/;';
+eval($thiscode);
+if ($@ ne '')
+{
+    $errormessage = "$Lang::tr{'bad ignore filter'}.$@<P>";
+    $filter = '';
+} else {
+    my $loop = 1;
+    my $filestr = 0;
+    my $lastdatetime;          # for debug
+
+    while ($gzindex >=0 && $loop) {
+       # calculate file name
+       if ($gzindex == 0) {
+           $filestr = "/var/log/squid/access.log";
+       } else {
+           $filestr = "/var/log/squid/access.log.$gzindex";
+           $filestr = "$filestr.gz" if -f "$filestr.gz";
+       }
+       # now read file if existing
+       if (open (FILE,($filestr =~ /.gz$/ ? "gzip -dc $filestr |" : $filestr))) {
+           #&General::log("reading $filestr");
+           my @temp_now = localtime(time);
+           $temp_now[4] = $cgiparams{'MONTH'};
+           $temp_now[3] = $cgiparams{'DAY'};
+           if ( (  $cgiparams{'MONTH'} eq $now[4]) && ($cgiparams{'DAY'} > $now[3]) ||
+                 ( $cgiparams{'MONTH'} > $now[4] ) ) {
+               $temp_now[5]--;         # past year
+           }
+
+           $temp_now[2] = $temp_now[1] = $temp_now[0] = 0; # start at 00:00:00
+           $temp_now[3] = 1 if ($cgiparams{'DAY'}==0); # All days selected, start at '1'
+            my $mintime = POSIX::mktime(@temp_now); 
+           my $maxtime;
+           if ($cgiparams{'DAY'}==0) {                 # full month
+               if ($temp_now[4]++ == 12){
+                   $temp_now[4] = 0;
+                   $temp_now[5]++;
+               };
+               $maxtime = POSIX::mktime(@temp_now); 
+           } else {
+               $maxtime = $mintime + 86400;            # full day
+           }
+           READ:while (<FILE>) {
+               my ($datetime,$do,$ip,$ray,$me,$far,$url,$so) = split;
+               $ips{$ip}++;
+               # for debug
+               #$lastdatetime = $datetime;
+
+               # collect lines between date && filter
+               if (( ($datetime>$mintime)&&($datetime<$maxtime)) && !($url =~ /$filter/) &&
+                  ((($ip eq $sourceip) || $sourceall)))
+               {
+                   # when standart viewing, just keep in memory the correct slices
+                   # it starts a '$start' and size is $viewport
+                   # If export, then keep all lines...
+                   if ($cgiparams{'ACTION'} eq $Lang::tr{'export'}){
+                       $log[$lines++] = "$datetime $ip $url";
+                   } else {
+                       if ($lines++ < ($start + $Header::viewsize)) {
+                           push(@log,"$datetime $ip $url");
+                           if (@log > $Header::viewsize) {
+                               shift (@log);
+                           }
+                       #} else { dont do this optimisation, need to count lines !
+                       #    $datetime = $maxtime; # we have read viewsize lines, stop main loop
+                       #    last READ;           # exit read file
+                       }
+                   }   
+               }
+
+               # finish loop when date of lines are past maxtime
+               $loop = ($datetime < $maxtime);
+           }
+           close (FILE);
+       }
+       $gzindex--;     # will try next gz file eg 40,39,38,.... because it may have holes when ipcop stopped
+                       # for a long time
+
+    }
+
+    #$errormessage="$errormessage$Lang::tr{'date not in logs'}: $filestr $Lang::tr{'could not be opened'}";
+    if (0) { # print last date record read
+       my ($SECdt, $MINdt, $HOURdt, $DAYdt, $MONTHdt, $YEARdt) = localtime($lastdatetime);
+       $SECdt = sprintf ("%.02d",$SECdt);
+       $MINdt = sprintf ("%.02d",$MINdt);
+       $HOURdt = sprintf ("%.02d",$HOURdt);
+       $DAYdt = sprintf ("%.02d",$DAYdt);
+       $MONTHdt = sprintf ("%.02d",$MONTHdt+1);
+       $YEARdt = sprintf ("%.04d",$YEARdt+1900);
+       &General::log ("$HOURdt:$MINdt:$SECdt, $DAYdt/$MONTHdt/$YEARdt--");
+    }
+}
+
+if ($cgiparams{'ACTION'} eq $Lang::tr{'export'})
+{
+       print "Content-type: text/plain\n\n";
+       print "IPCop proxy log\r\n";
+       print "$Lang::tr{'date'}: $daystr\r\n"; 
+       print "Source IP: $cgiparams{'SOURCE_IP'}\r\n";
+       if ($cgiparams{'ENABLE_FILTER'} eq 'on') {
+               print "Ignore filter: $cgiparams{'FILTER'}\r\n"; }
+       print "\r\n";
+
+       if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; }
+
+       foreach $_ (@log) {
+           my ($datetime,$ip,$url) = split;
+           my ($SECdt, $MINdt, $HOURdt, $DAYdt, $MONTHdt, $YEARdt) = localtime($datetime);
+           $SECdt = sprintf ("%.02d",$SECdt);
+           $MINdt = sprintf ("%.02d",$MINdt);
+           $HOURdt = sprintf ("%.02d",$HOURdt);
+           if ($cgiparams{'DAY'}==0) {                 # full month
+               $DAYdt = sprintf ("%.02d",$DAYdt);
+               print "$DAYdt/$HOURdt:$MINdt:$SECdt $ip $url\n";
+           } else {
+               print "$HOURdt:$MINdt:$SECdt $ip $url\n";
+           }
+       }
+       exit;
+}
+
+$selected{'SOURCE_IP'}{$cgiparams{'SOURCE_IP'}} = "selected='selected'";
+
+$checked{'ENABLE_FILTER'}{'off'} = '';
+$checked{'ENABLE_FILTER'}{'on'} = '';
+$checked{'ENABLE_FILTER'}{$cgiparams{'ENABLE_FILTER'}} = "checked='checked'";
+
+&Header::showhttpheaders();
+
+&Header::openpage($Lang::tr{'proxy log viewer'}, 1, '');
+
+&Header::openbigbox('100%', 'left', '', $errormessage);
+
+if ($errormessage) {
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
+       print "<font class='base'>$errormessage&nbsp;</font>\n";
+       &Header::closebox();
+}
+
+&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:");
+
+print <<END
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<table width='100%'>
+<tr>
+       <td width='10%' class='base'>$Lang::tr{'month'}:</td>
+       <td width='20%'>
+       <select name='MONTH'>
+END
+;
+
+for (my $month = 0; $month < 12; $month++)
+{
+       print "\t<option ";
+       if ($month == $cgiparams{'MONTH'}) {
+               print "selected='selected' "; }
+       print "value='$month'>$longmonths[$month]</option>\n";
+}
+print <<END
+       </select>
+       </td>
+       <td width='10%' class='base' align='right'>$Lang::tr{'day'}:&nbsp;</td>
+       <td width='10%'>
+       <select name='DAY'>
+END
+;
+print "<option value='0'>$Lang::tr{'all'}</option>";
+for (my $day = 1; $day <= 31; $day++) 
+{
+       print "\t<option ";
+       if ($day == $cgiparams{'DAY'}) {
+               print "selected='selected' "; }
+       print "value='$day'>$day</option>\n";
+}
+print <<END
+       </select>
+       </td>
+       <td width='5%'  align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='&lt;&lt;' /></td>
+       <td width='5%'  align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='&gt;&gt;' /></td>
+       <td width='25%' class='base'>$Lang::tr{'source ip'}:</td>
+       <td width='15%'>
+       <select name='SOURCE_IP'>
+       <option value='ALL' $selected{'SOURCE_IP'}{'ALL'}>$Lang::tr{'caps all'}</option>
+END
+;
+foreach my $ip (keys %ips) {
+       print "<option value='$ip' $selected{'SOURCE_IP'}{$ip}>$ip</option>\n"; }
+print <<END
+       </select>
+       </td>
+</tr>
+<tr>
+       <td class='base'>$Lang::tr{'ignore filter'}:</td>
+       <td colspan='5'><input type='text' name='FILTER' value='$cgiparams{'FILTER'}' size='40' /></td>
+       <td class='base'>$Lang::tr{'enable ignore filter'}:</td>
+       <td><input type='checkbox' name='ENABLE_FILTER' value='on' $checked{'ENABLE_FILTER'}{'on'} /></td>
+</tr>
+</table>
+<div align='center'>
+<table width='50%'>
+<tr>
+       <td align='center'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td>
+       <td align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
+       <td align='center'><input type='submit' name='ACTION' value='$Lang::tr{'export'}' /></td>
+</tr>
+</table>
+</div>
+</form>
+END
+;
+
+&Header::closebox();
+&Header::openbox('100%', 'left', $Lang::tr{'log'});
+
+
+$start = $lines - ${Header::viewsize} if ($start >= $lines - ${Header::viewsize});
+$start = 0 if ($start < 0);
+
+my $prev;
+    if ($start == 0) {
+       $prev = -1;
+    } else {
+       $prev = $start - ${Header::viewsize};
+       $prev = 0 if ( $prev < 0);
+    }
+
+my $next;
+    if ($start == $lines - ${Header::viewsize}) {
+       $next = -1;
+    } else {
+       $next = $start + ${Header::viewsize};
+       $next = $lines - ${Header::viewsize} if ($next >= $lines - ${Header::viewsize});
+    }
+
+if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; }
+
+print "<p><b>$Lang::tr{'web hits'} $daystr: $lines</b></p>";
+if ($lines != 0) { &oldernewer(); }
+print <<END
+<table width='100%'>
+<tr>
+<td width='10%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></td>
+<td width='15%' align='center' class='boldbase'><b>$Lang::tr{'source ip'}</b></td>
+<td width='75%' align='center' class='boldbase'><b>$Lang::tr{'website'}</b></td>
+</tr>
+END
+;
+my $ll = 0;
+foreach $_ (@log)
+{
+       if ($ll % 2) {
+               print "<tr bgcolor='${Header::table1colour}'>\n"; }
+       else {
+               print "<tr bgcolor='${Header::table2colour}'>\n"; }
+       my ($datetime,$ip,$url) = split;
+        my ($SECdt, $MINdt, $HOURdt, $DAYdt, $MONTHdt, $YEARdt) = localtime($datetime);
+       $SECdt = sprintf ("%.02d",$SECdt);
+       $MINdt = sprintf ("%.02d",$MINdt);
+       $HOURdt = sprintf ("%.02d",$HOURdt);
+
+       $url =~ /(^.{0,60})/;
+       my $part = $1;
+       unless (length($part) < 60) { $part = "${part}..."; }  
+       $url = &Header::cleanhtml($url,"y");
+       $part = &Header::cleanhtml($part,"y");
+       if ($cgiparams{'DAY'}==0) {                     # full month
+           $DAYdt = sprintf ("%.02d/",$DAYdt);
+       } else {
+           $DAYdt='';
+       }
+       print <<END
+       <td align='center'>$DAYdt$HOURdt:$MINdt:$SECdt</td>
+       <td align='center'>$ip</td>
+       <td align='left'><a href='$url' title='$url' target='_new'>$part</a></td>
+</tr>
+END
+       ;
+       $ll++;
+}
+
+print "</table>";
+
+&oldernewer();
+
+&Header::closebox();
+
+&Header::closebigbox();
+
+&Header::closepage();
+
+
+sub oldernewer
+{
+print <<END
+<table width='100%'>
+<tr>
+END
+;
+
+print "<td align='center' width='50%'>";
+if ($prev != -1) {
+        print "<a href='/cgi-bin/logs.cgi/proxylog.dat?$prev,$cgiparams{'MONTH'},$cgiparams{'DAY'},$cgiparams{'SOURCE_IP'}'>$Lang::tr{'older'}</a>"; }
+else {
+        print "$Lang::tr{'older'}"; }
+print "</td>\n";
+
+print "<td align='center' width='50%'>";
+if ($next >= 0 ) {
+        print "<a href='/cgi-bin/logs.cgi/proxylog.dat?$next,$cgiparams{'MONTH'},$cgiparams{'DAY'},$cgiparams{'SOURCE_IP'}'>$Lang::tr{'newer'}</a>"; }
+else {
+        print "$Lang::tr{'newer'}"; }
+print "</td>\n";
+
+print <<END
+</tr>
+</table>
+END
+;
+}
+
diff --git a/html/cgi-bin/logs.cgi/summary.dat b/html/cgi-bin/logs.cgi/summary.dat
new file mode 100644 (file)
index 0000000..273a862
--- /dev/null
@@ -0,0 +1,213 @@
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+# $Id: summary.dat,v 1.3.2.14 2005/07/10 00:48:42 franck78 Exp $
+#
+
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require 'CONFIG_ROOT/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+
+use POSIX();
+
+my %cgiparams=();
+my $errormessage = '';
+
+my @longmonths = ( $Lang::tr{'january'}, $Lang::tr{'february'}, $Lang::tr{'march'},
+       $Lang::tr{'april'}, $Lang::tr{'may'}, $Lang::tr{'june'}, $Lang::tr{'july'}, $Lang::tr{'august'},
+       $Lang::tr{'september'}, $Lang::tr{'october'}, $Lang::tr{'november'},
+       $Lang::tr{'december'} );
+
+my @now = localtime();
+my $year = $now[5]+1900;
+
+$cgiparams{'MONTH'} = '';
+$cgiparams{'DAY'} = '';
+$cgiparams{'ACTION'} = '';
+
+&Header::getcgihash(\%cgiparams);
+
+my $start = -1;
+if ($ENV{'QUERY_STRING'} && $cgiparams{'ACTION'} ne $Lang::tr{'update'}) {
+       my @temp = split(',',$ENV{'QUERY_STRING'});
+       $start = $temp[0];
+       $cgiparams{'MONTH'} = $temp[1];
+       $cgiparams{'DAY'} = $temp[2];
+}
+
+if (!($cgiparams{'MONTH'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11)$/) ||
+       !($cgiparams{'DAY'} =~ /^(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)$/)) {
+       # Reports are generated at the end of the day, so if nothing is selected
+       # we need to display yesterdays (todays won't have been generated yet)
+       my @temp_then=();
+       my @temp_now = localtime(time);
+       $temp_now[4] = $now[4];
+       $temp_now[3] = $now[3];
+       @temp_then = localtime(POSIX::mktime(@temp_now) - 86400);
+          ## Retrieve the same time on the previous day -
+          ## 86400 seconds in a day
+       $cgiparams{'MONTH'} = $temp_then[4];
+       $cgiparams{'DAY'} = $temp_then[3];
+}
+elsif($cgiparams{'ACTION'} eq '>>') {
+       my @temp_then=();
+       my @temp_now = localtime(time);
+       $temp_now[4] = $cgiparams{'MONTH'};
+       $temp_now[3] = $cgiparams{'DAY'};
+       @temp_then = localtime(POSIX::mktime(@temp_now) + 86400);
+          ## Retrieve the same time on the next day +
+          ## 86400 seconds in a day
+       $cgiparams{'MONTH'} = $temp_then[4];
+       $cgiparams{'DAY'} = $temp_then[3];
+}
+elsif($cgiparams{'ACTION'} eq '<<') {
+       my @temp_then=();
+       my @temp_now = localtime(time);
+       $temp_now[4] = $cgiparams{'MONTH'};
+       $temp_now[3] = $cgiparams{'DAY'};
+       @temp_then = localtime(POSIX::mktime(@temp_now) - 86400);
+          ## Retrieve the same time on the previous day -
+          ## 86400 seconds in a day
+       $cgiparams{'MONTH'} = $temp_then[4];
+       $cgiparams{'DAY'} = $temp_then[3];
+}
+
+if (($cgiparams{'DAY'} ne $now[3]) || ($cgiparams{'MONTH'} ne $now[4])) {
+       if ( ($cgiparams{'MONTH'} eq $now[4]) && ($cgiparams{'DAY'} > $now[3]) ||
+            ($cgiparams{'MONTH'} > $now[4]) ) {
+               $year = $year - 1;
+       }
+}
+
+my $monthnum = $cgiparams{'MONTH'} + 1;
+my $monthstr = $monthnum <= 9 ? "0$monthnum" : "$monthnum";
+my $longmonthstr = $longmonths[$cgiparams{'MONTH'}];
+my $daystr = $cgiparams{'DAY'} <= 9 ? "0$cgiparams{'DAY'}" : "$cgiparams{'DAY'}";
+
+my $skip=0;
+my $filestr="/var/log/logwatch/$year-$monthstr-$daystr";
+
+if (!(open (FILE,$filestr))) {
+       $errormessage = "$Lang::tr{'date not in logs'}: $filestr $Lang::tr{'could not be opened'}";
+       $skip=1;
+       # Note: This is in case the log does not exist for that date
+}
+
+if (! $skip && $cgiparams{'ACTION'} eq $Lang::tr{'export'}) {
+       print "Content-type: text/plain\n\n";
+
+        while (<FILE>) {
+               print "$_\r\n";
+       }
+       close (FILE);
+       exit 0;
+}
+
+&Header::showhttpheaders();
+
+&Header::openpage($Lang::tr{'log summary'}, 1, '');
+
+&Header::openbigbox('100%', 'left', '', $errormessage);
+
+if ($errormessage) {
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
+       print "<font class='base'>$errormessage&nbsp;</font>\n";
+       &Header::closebox();
+}
+
+&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:");
+
+print <<END
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<table width='100%'>
+<tr>
+       <td width='10%' class='base'>$Lang::tr{'month'}:</td>
+       <td width='25%'>
+       <select name='MONTH'>
+END
+;
+for (my $month = 0; $month < 12; $month++)
+{
+       print "\t<option ";
+       if ($month == $cgiparams{'MONTH'}) {
+               print "selected='selected' "; }
+       print "value='$month'>$longmonths[$month]</option>\n";
+}
+print <<END
+       </select>
+       </td>
+       <td width='10%' class='base'>$Lang::tr{'day'}:</td>
+       <td width='25%'>
+       <select name='DAY'>
+END
+;
+for (my $day = 1; $day <= 31; $day++) 
+{
+       print "\t<option ";
+       if ($day == $cgiparams{'DAY'}) {
+               print "selected='selected' "; }
+       print "value='$day'>$day</option>\n";
+}
+print <<END
+</select>
+</td>
+<td width='5%'  align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='&lt;&lt;' /></td>
+<td width='5%'  align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='&gt;&gt;' /></td>
+<td width='10%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
+<td width='10%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'export'}' /></td>
+</tr>
+</table>
+</form>
+END
+;
+
+&Header::closebox();
+
+my $header = 0;
+my @content=();
+
+if(!$skip)
+{
+  while (<FILE>) {
+    if (/^\s*--+ ([^-]+) Begin --+\s*$/) {
+      # New Section. open box
+      @content = ();
+      &Header::openbox('100%', 'left', $Lang::tr{"ls_\L$1"} ? $Lang::tr{"ls_\L$1"} : $1);
+      print "<pre>";
+    } elsif (/^\s*--+ ([^-]+) End --+\s*$/) {
+      # End of Section, kill leading and trailing blanks, print info, close
+      # box
+      while ( $content[0] =~ /^\s*$/ ) { shift @content; }
+      while ( $content[$#content] =~ /^\s*$/ ) { pop @content; }
+      foreach $_ (@content) { $_ =~ s/\s*$//; print &Header::cleanhtml($_,"y")."\n"; }
+      print "\n</pre>";
+      &Header::closebox();
+    } elsif (/^\s*#+ LogWatch [^#]+[)] #+\s*$/) {
+      # Start of logwatch header, skip it
+      $header = 1;
+    } elsif (/^\s*#+\s*$/) {
+      # End of logwatch header
+      $header = 0;
+    } elsif (/^\s*#+ LogWatch End #+\s*$/) {
+      # End of report
+    } elsif ($header eq 0) {
+      push(@content,$_);
+    }
+  }
+  close (FILE);
+}
+
+&Header::closebigbox();
+
+&Header::closepage();
diff --git a/html/cgi-bin/modem.cgi b/html/cgi-bin/modem.cgi
new file mode 100644 (file)
index 0000000..285466c
--- /dev/null
@@ -0,0 +1,120 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: modem.cgi,v 1.4.2.7 2005/02/22 22:21:56 gespinasse Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %modemsettings=();\r
+my $errormessage = '';\r
+\r
+&Header::showhttpheaders();\r
+\r
+$modemsettings{'ACTION'} = '';\r
+$modemsettings{'VALID'} = '';\r
+\r
+&Header::getcgihash(\%modemsettings);\r
+\r
+if ($modemsettings{'ACTION'} eq $Lang::tr{'save'})\r
+{ \r
+        if (!($modemsettings{'TIMEOUT'} =~ /^\d+$/))\r
+        {\r
+               $errormessage = $Lang::tr{'timeout must be a number'};\r
+               goto ERROR;\r
+        }\r
+ERROR:   \r
+        if ($errormessage) {\r
+                $modemsettings{'VALID'} = 'no'; }\r
+        else {\r
+                $modemsettings{'VALID'} = 'yes'; }\r
+\r
+       &General::writehash("${General::swroot}/modem/settings", \%modemsettings);\r
+}\r
+\r
+if ($modemsettings{'ACTION'} eq $Lang::tr{'restore defaults'})\r
+{\r
+       system('/bin/cp', "${General::swroot}/modem/defaults", "${General::swroot}/modem/settings", '-f');\r
+}\r
+\r
+&General::readhash("${General::swroot}/modem/settings", \%modemsettings);\r
+\r
+&Header::openpage($Lang::tr{'modem configuration'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<font class='base'>$errormessage&nbsp;</font>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+&Header::openbox('100%', 'left', "$Lang::tr{'modem configuration'}:");\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td width='25%' class='base'>$Lang::tr{'init string'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td width='25%'><input type='text' name='INIT' value='$modemsettings{'INIT'}' /></td>\r
+       <td width='25%' class='base'>$Lang::tr{'hangup string'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td width='25%'><input type='text' name='HANGUP' value='$modemsettings{'HANGUP'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td class='base'>$Lang::tr{'speaker on'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='SPEAKER_ON' value='$modemsettings{'SPEAKER_ON'}' /></td>\r
+       <td class='base'>$Lang::tr{'speaker off'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='SPEAKER_OFF' value='$modemsettings{'SPEAKER_OFF'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td class='base'>$Lang::tr{'tone dial'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='TONE_DIAL' value='$modemsettings{'TONE_DIAL'}' /></td>\r
+       <td class='base'>$Lang::tr{'pulse dial'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='PULSE_DIAL' value='$modemsettings{'PULSE_DIAL'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td class='base'>$Lang::tr{'connect timeout'}</td>\r
+       <td><input type='text' name='TIMEOUT' value='$modemsettings{'TIMEOUT'}' /></td>\r
+       <td class='base'>&nbsp;</td>\r
+       <td>&nbsp;</td>\r
+</tr>\r
+\r
+</table>\r
+<table width='100%'>\r
+<hr />\r
+<tr>\r
+       <td width='33%'>\r
+               <img src='/blob.gif' align='top' alt='*' />&nbsp;\r
+               <font class='base'>$Lang::tr{'this field may be blank'}</font>\r
+       </td>\r
+       <td width='33%' align='center'>\r
+               <input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' />\r
+       </td>\r
+       <td width='33%' align='center'>\r
+               <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />\r
+       </td>\r
+</tr>\r
+</table>\r
+</div>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+print "</form>\n";\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
diff --git a/html/cgi-bin/netstatus.cgi b/html/cgi-bin/netstatus.cgi
new file mode 100644 (file)
index 0000000..0598992
--- /dev/null
@@ -0,0 +1,222 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: netstatus.cgi,v 1.9.2.20 2005/11/05 15:46:25 gespinasse Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %dhcpsettings=();\r
+my %netsettings=();\r
+my %dhcpinfo=();\r
+my %pppsettings=();\r
+my $output='';\r
+\r
+&General::readhash("${General::swroot}/dhcp/settings", \%dhcpsettings);\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+&General::readhash("${General::swroot}/ppp/settings", \%pppsettings);\r
+&Header::showhttpheaders();\r
+&Header::openpage($Lang::tr{'network status information'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left');\r
+\r
+print "<table width='100%' cellspacing='0' cellpadding='5'border='0'>\n";\r
+print "<tr><td style='background-color: #EAE9EE;' align='left'>\n";\r
+print "<a href='#interfaces'>$Lang::tr{'interfaces'}</a> |\n";\r
+if ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/  && $netsettings{'RED_TYPE'} eq "DHCP") {\r
+    print "<a href='#reddhcp'>RED  $Lang::tr{'dhcp configuration'}</a> |\n";\r
+}\r
+if ($dhcpsettings{'ENABLE_GREEN'} eq 'on' || $dhcpsettings{'ENABLE_BLUE'} eq 'on') {\r
+    print "<a href='#leases'>$Lang::tr{'current dynamic leases'}</a> |\n";\r
+}\r
+if ($pppsettings{'TYPE'} =~ /^(bewanadsl|alcatelusbk|conexantpciadsl|eagleusbadsl)$/) {\r
+    print "<a href='#adsl'>$Lang::tr{'adsl settings'}</a> |\n";\r
+}\r
+print "<a href='#routing'>$Lang::tr{'routing table entries'}</a> |\n";\r
+print "<a href='#arp'> $Lang::tr{'arp table entries'}</a>\n";\r
+print "</td></tr></table>\n";\r
+\r
+print "<a name='interfaces'/>\n";\r
+&Header::openbox('100%', 'left', $Lang::tr{'interfaces'});\r
+$output = `/sbin/ifconfig -a`;\r
+$output = &Header::cleanhtml($output,"y");\r
+\r
+my @itfs = ('ORANGE','BLUE','GREEN');\r
+foreach my $itf (@itfs) {\r
+    my $ColorName='';\r
+    my $lc_itf=lc($itf);\r
+    my $dev = $netsettings{"${itf}_DEV"};\r
+    if ($dev){\r
+       $ColorName = "${lc_itf}"; #dereference variable name...\r
+       $output =~ s/$dev/<b><font color="$ColorName">$dev<\/font><\/b>/ ;\r
+    }\r
+}\r
+\r
+if (open(REDIFACE, "${General::swroot}/red/iface")) {\r
+    my $lc_itf='red';\r
+    my $reddev = <REDIFACE>;\r
+    close(REDIFACE);\r
+    chomp $reddev;\r
+    $output =~ s/$reddev/<b><font color='red'>${reddev}<\/font><\/b>/;\r
+}\r
+print "<pre>$output</pre>\n";\r
+&Header::closebox();\r
+\r
+\r
+if ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/  && $netsettings{'RED_TYPE'} eq "DHCP") {\r
+\r
+       print "<a name='reddhcp'/>\n";\r
+       &Header::openbox('100%', 'left', "RED $Lang::tr{'dhcp configuration'}");\r
+       if (-s "${General::swroot}/dhcpc/dhcpcd-$netsettings{'RED_DEV'}.info") {\r
+\r
+               &General::readhash("${General::swroot}/dhcpc/dhcpcd-$netsettings{'RED_DEV'}.info", \%dhcpinfo);\r
+\r
+               my $DNS1=`echo $dhcpinfo{'DNS'} | cut -f 1 -d ,`;\r
+               my $DNS2=`echo $dhcpinfo{'DNS'} | cut -f 2 -d ,`;\r
+\r
+               my $lsetme=0;\r
+               my $leasetime="";\r
+               if ($dhcpinfo{'LEASETIME'} ne "") {\r
+                       $lsetme=$dhcpinfo{'LEASETIME'};\r
+                       $lsetme=($lsetme/60);\r
+                       if ($lsetme > 59) {\r
+                               $lsetme=($lsetme/60); $leasetime=$lsetme." Hour";\r
+                       } else {\r
+                       $leasetime=$lsetme." Minute"; \r
+                       }\r
+                       if ($lsetme > 1) {\r
+                               $leasetime=$leasetime."s";\r
+                       }\r
+               }\r
+               my $rentme=0;\r
+               my $rnwltime="";\r
+               if ($dhcpinfo{'RENEWALTIME'} ne "") {\r
+                       $rentme=$dhcpinfo{'RENEWALTIME'};\r
+                       $rentme=($rentme/60);\r
+                       if ($rentme > 59){\r
+                               $rentme=($rentme/60); $rnwltime=$rentme." Hour";\r
+                       } else {\r
+                               $rnwltime=$rentme." Minute";\r
+                       }\r
+                       if ($rentme > 1){\r
+                               $rnwltime=$rnwltime."s";\r
+                       }\r
+               }\r
+               my $maxtme=0;\r
+               my $maxtime="";\r
+               if ($dhcpinfo{'REBINDTIME'} ne "") {\r
+                       $maxtme=$dhcpinfo{'REBINDTIME'};\r
+                       $maxtme=($maxtme/60);\r
+                       if ($maxtme > 59){\r
+                               $maxtme=($maxtme/60); $maxtime=$maxtme." Hour";\r
+                       } else {\r
+                               $maxtime=$maxtme." Minute";\r
+                       }\r
+                       if ($maxtme > 1) {\r
+                               $maxtime=$maxtime."s";\r
+                       }\r
+               }\r
+\r
+               print "<table width='100%'>";\r
+               if ($dhcpinfo{'HOSTNAME'}) {\r
+                       print "<tr><td width='30%'>$Lang::tr{'hostname'}</td><td>$dhcpinfo{'HOSTNAME'}.$dhcpinfo{'DOMAIN'}</td></tr>\n";\r
+               } else {\r
+                       print "<tr><td width='30%'>$Lang::tr{'domain'}</td><td>$dhcpinfo{'DOMAIN'}</td></tr>\n";\r
+               }\r
+               print <<END\r
+       <tr><td>$Lang::tr{'gateway'}</td><td>$dhcpinfo{'GATEWAY'}</td></tr>\r
+       <tr><td>$Lang::tr{'primary dns'}</td><td>$DNS1</td></tr>\r
+       <tr><td>$Lang::tr{'secondary dns'}</td><td>$DNS2</td></tr>\r
+       <tr><td>$Lang::tr{'dhcp server'}</td><td>$dhcpinfo{'DHCPSIADDR'}</td></tr>\r
+       <tr><td>$Lang::tr{'def lease time'}</td><td>$leasetime</td></tr>\r
+       <tr><td>$Lang::tr{'default renewal time'}</td><td>$rnwltime</td></tr>\r
+       <tr><td>$Lang::tr{'max renewal time'}</td><td>$maxtime</td></tr>\r
+    </table>\r
+END\r
+    ;\r
+       }\r
+       else\r
+       {\r
+               print "$Lang::tr{'no dhcp lease'}";\r
+       }\r
+       &Header::closebox();\r
+}\r
+\r
+if ($dhcpsettings{'ENABLE_GREEN'} eq 'on' || $dhcpsettings{'ENABLE_BLUE'} eq 'on') {\r
+\r
+       print "<a name='leases'/>";\r
+       &Header::CheckSortOrder;\r
+       &Header::PrintActualLeases;\r
+}\r
+\r
+if ( $netsettings{'CONFIG_TYPE'} =~ /^(0|1|4|5)$/  && (exists($pppsettings{'TYPE'})) ) {\r
+\r
+my $output1='';\r
+my $output2='';\r
+if ($pppsettings{'TYPE'} eq 'bewanadsl') {\r
+       print "<a name='adsl'/>\n";\r
+       &Header::openbox('100%', 'left', $Lang::tr{'adsl settings'});\r
+       $output1 = `/usr/bin/unicorn_status`;\r
+       $output1 = &Header::cleanhtml($output1,"y");\r
+       $output2 = `/bin/cat /proc/net/atm/UNICORN:*`;\r
+       $output2 = &Header::cleanhtml($output2,"y");\r
+       print "<pre>$output1$output2</pre>\n";\r
+       &Header::closebox();\r
+}\r
+if ($pppsettings{'TYPE'} eq 'alcatelusbk') {\r
+       print "<a name='adsl'/>\n";\r
+       &Header::openbox('100%', 'left', $Lang::tr{'adsl settings'});\r
+       $output = `/bin/cat /proc/net/atm/speedtch:*`;\r
+       $output = &Header::cleanhtml($output,"y");\r
+       print "<pre>$output</pre>\n";\r
+       &Header::closebox();\r
+}\r
+if ($pppsettings{'TYPE'} eq 'conexantpciadsl') {\r
+       print "<a name='adsl'/>\n";\r
+       &Header::openbox('100%', 'left', $Lang::tr{'adsl settings'});\r
+       $output = `/bin/cat /proc/net/atm/CnxAdsl:*`;\r
+       $output = &Header::cleanhtml($output,"y");\r
+       print "<pre>$output</pre>\n";\r
+       &Header::closebox();\r
+}\r
+if ($pppsettings{'TYPE'} eq 'eagleusbadsl') {\r
+       print "<a name='adsl'/>\n";\r
+       &Header::openbox('100%', 'left', $Lang::tr{'adsl settings'});\r
+       $output = `/usr/sbin/eaglestat`;\r
+       $output = &Header::cleanhtml($output,"y");\r
+       print "<pre>$output</pre>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+}\r
+\r
+print "<a name='routing'/>\n";\r
+&Header::openbox('100%', 'left', $Lang::tr{'routing table entries'});\r
+$output = `/sbin/route -n`;\r
+$output = &Header::cleanhtml($output,"y");\r
+print "<pre>$output</pre>\n";\r
+&Header::closebox();\r
+\r
+print "<a name='arp'/>\n";\r
+&Header::openbox('100%', 'left', $Lang::tr{'arp table entries'});\r
+$output = `/sbin/arp -n`;\r
+$output = &Header::cleanhtml($output,"y");\r
+print "<pre>$output</pre>\n";\r
+&Header::closebox();\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
diff --git a/html/cgi-bin/networks.cgi b/html/cgi-bin/networks.cgi
new file mode 100644 (file)
index 0000000..c5c9d6b
--- /dev/null
@@ -0,0 +1,420 @@
+#!/usr/bin/perl\r
+#\r
+# This file is part of the IPCop Firewall.\r
+#\r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+#\r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+#\r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+#\r
+# Copyright (C) 2003-09-22 Darren Critchley <darrenc@telus.net>\r
+#\r
+# $Id: networks.cgi,v 1.2.2.3 2005/04/29 23:37:06 franck78 Exp $\r
+#\r
+\r
+use strict;\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %netsettings=();\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+\r
+my @networks=();\r
+my $filename = "${General::swroot}/firewall/customnetworks";\r
+&setup_default_networks();\r
+\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'add'}){\r
+\r
+       &validateparams();\r
+       unless($errormessage){\r
+               $key++; # Add one to last sequence number\r
+               open(FILE,">>$filename") or die 'Unable to open custom networks file.';\r
+               flock FILE, 2;\r
+               print FILE "$key,$cgiparams{'NAME'},$cgiparams{'IPADDRESS'},$cgiparams{'NETMASK'}\n";\r
+               close(FILE);\r
+               &General::log("$Lang::tr{'network added'}: $cgiparams{'NAME'}");\r
+               undef %cgiparams;\r
+       }\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'update'})\r
+{\r
+       &validateparams();\r
+       # Darren Critchley - If there is an error don't waste any more processing time\r
+       if ($errormessage) { $cgiparams{'ACTION'} = $Lang::tr{'edit'}; goto UPD_ERROR; }\r
+\r
+       unless($errormessage){\r
+               open(FILE, $filename) or die 'Unable to open custom networks file.';\r
+               my @current = <FILE>;\r
+               close(FILE);\r
+               open(FILE, ">$filename") or die 'Unable to open config file.';\r
+               flock FILE, 2;\r
+               foreach my $line (@current) {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       if ($cgiparams{'KEY'} eq $temp[0]) {\r
+                               print FILE "$cgiparams{'KEY'},$cgiparams{'NAME'},$cgiparams{'IPADDRESS'},$cgiparams{'NETMASK'}\n";\r
+                       } else {\r
+                               print FILE "$line\n";\r
+                       }\r
+               }\r
+               close(FILE);\r
+               &General::log("$Lang::tr{'network updated'}: $cgiparams{'NAME'}");\r
+               undef %cgiparams;\r
+       }\r
+UPD_ERROR:\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'})\r
+{\r
+       open(FILE, "$filename") or die 'Unable to open custom networks file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+\r
+       unless ($errormessage)\r
+       {\r
+               foreach my $line (@current)\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       if ($cgiparams{'KEY'} eq $temp[0]) {\r
+                               $cgiparams{'NAME'} = $temp[1];\r
+                               $cgiparams{'IPADDRESS'} = $temp[2];\r
+                               $cgiparams{'NETMASK'} = $temp[3];\r
+                       }\r
+                       \r
+               }\r
+       }\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'})\r
+{\r
+       open(FILE, $filename) or die 'Unable to open custom networks file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+\r
+       open(FILE, ">$filename") or die 'Unable to open custom networks file.';\r
+       flock FILE, 2;\r
+       foreach my $line (@current)\r
+       {\r
+               chomp($line);\r
+               if ($line ne '') {              \r
+                       my @temp = split(/\,/,$line);\r
+                       if ($cgiparams{'KEY'} eq $temp[0]) {\r
+                               &General::log("$Lang::tr{'network removed'}: $temp[1]");\r
+                       } else {\r
+                                       print FILE "$temp[0],$temp[1],$temp[2],$temp[3]\n";\r
+                       }\r
+               }\r
+       }\r
+       close(FILE);\r
+       undef %cgiparams;\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'reset'})\r
+{\r
+       undef %cgiparams;\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq '')\r
+{\r
+       $cgiparams{'KEY'} = '';\r
+       $cgiparams{'IPADDRESS'} = '';\r
+       $cgiparams{'NETMASK'} = '';\r
+    $cgiparams{'NAME'} = '';\r
+}\r
+\r
+&Header::showhttpheaders();\r
+\r
+&Header::openpage($Lang::tr{'networks settings'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'LEFT', '', $errormessage);\r
+\r
+# DEBUG DEBUG\r
+#&Header::openbox('100%', 'LEFT', 'DEBUG');\r
+#foreach $line (keys %cgiparams) {\r
+#      print "<CLASS NAME='base'>$line = $cgiparams{$line}<BR>";\r
+#}\r
+#print "$ENV{'QUERY_STRING'}\n";\r
+#print "&nbsp;</CLASS>\n";\r
+#&Header::closebox();\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'LEFT', $Lang::tr{'error messages'});\r
+       print "<CLASS NAME='base'><FONT COLOR='${Header::colourred}'>$errormessage\n</FONT>";\r
+       print "&nbsp;</CLASS>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'edit network'}:");\r
+} else {\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'add network'}:");\r
+}\r
+print <<END\r
+<FORM METHOD='POST'>\r
+<DIV ALIGN='CENTER'>\r
+<TABLE WIDTH='100%'>\r
+<TR align="center">\r
+       <TD><strong>$Lang::tr{'name'}</strong></TD>\r
+       <TD><strong>$Lang::tr{'ip address'}</strong></TD>\r
+       <TD><strong>$Lang::tr{'netmask'}</strong></TD>\r
+       <TD>&nbsp;</TD>\r
+       <TD>&nbsp;</TD>\r
+       <TD>&nbsp;</TD>\r
+</TR>\r
+<TR align="center">\r
+       <TD>\r
+               <INPUT TYPE='TEXT' NAME='NAME' VALUE='$cgiparams{'NAME'}' SIZE='20' MAXLENGTH='20'>\r
+       </TD>\r
+       <TD>\r
+               <INPUT TYPE='TEXT' NAME='IPADDRESS' VALUE='$cgiparams{'IPADDRESS'}' SIZE='15' MAXLENGTH='15'>\r
+       </TD>\r
+       <TD>\r
+               <INPUT TYPE='TEXT' NAME='NETMASK' VALUE='$cgiparams{'NETMASK'}' SIZE='15' MAXLENGTH='15'>\r
+       </TD>\r
+END\r
+;\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){\r
+#   Darren Critchley - put in next release - author has authorized GPL inclusion\r
+#      print "<TD ALIGN='CENTER'><a href='ipcalc.cgi' target='_blank'>IP Calculator</a></TD>\n";\r
+       print "<TD ALIGN='CENTER'><INPUT TYPE='SUBMIT' NAME='ACTION' VALUE='$Lang::tr{'update'}'></TD>\n";\r
+       print "<INPUT TYPE='HIDDEN' NAME='KEY' VALUE='$cgiparams{'KEY'}'>\n";\r
+       print "<TD ALIGN='CENTER'><INPUT TYPE='SUBMIT' NAME='ACTION' VALUE='$Lang::tr{'reset'}'></TD>\n";\r
+} else {\r
+#   Darren Critchley - put in next release - author has authorized GPL inclusion\r
+#      print "<TD ALIGN='CENTER'><a href='ipcalc.cgi' target='_blank'>IP Calculator</a></TD>\n";\r
+       print "<TD ALIGN='CENTER'><INPUT TYPE='SUBMIT' NAME='ACTION' VALUE='$Lang::tr{'add'}'></TD>\n";\r
+       print "<TD ALIGN='CENTER'><INPUT TYPE='SUBMIT' NAME='ACTION' VALUE='$Lang::tr{'reset'}'></TD>\n";\r
+}\r
+print <<END   \r
+</TR>\r
+</TABLE>\r
+</DIV>\r
+</FORM>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%', 'LEFT', "$Lang::tr{'custom networks'}:");\r
+print <<END\r
+<DIV ALIGN='CENTER'>\r
+<TABLE WIDTH='100%' ALIGN='CENTER'>\r
+<TR align="center">\r
+       <TD><strong>$Lang::tr{'name'}</strong></TD>\r
+       <TD><strong>$Lang::tr{'ip address'}</strong></TD>\r
+       <TD><strong>$Lang::tr{'netmask'}</strong></TD>\r
+</TR>\r
+END\r
+;\r
+&display_custom_networks();\r
+print <<END\r
+</TABLE>\r
+</DIV>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%', 'LEFT', "$Lang::tr{'default networks'}:");\r
+print <<END\r
+<DIV ALIGN='CENTER'>\r
+<TABLE WIDTH='100%' ALIGN='CENTER'>\r
+<TR align="center">\r
+       <TD><strong>$Lang::tr{'name'}</strong></TD>\r
+       <TD><strong>$Lang::tr{'ip address'}</strong></TD>\r
+       <TD><strong>$Lang::tr{'netmask'}</strong></TD>\r
+</TR>\r
+END\r
+;\r
+&display_default_networks();\r
+print <<END\r
+</TABLE>\r
+</DIV>\r
+END\r
+;\r
+&Header::closebox();\r
\r
+    print "$Lang::tr{'this feature has been sponsored by'} : ";\r
+    print "<A HREF='http://www.kdi.ca/' TARGET='_blank'>Kobelt Development Inc.</A>.\n";\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
+sub display_custom_networks\r
+{\r
+       open(FILE, "$filename") or die 'Unable to open networks file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+\r
+       my $id = 0;\r
+       foreach $line (@current)\r
+       {\r
+               chomp($line);\r
+               if ($line ne ''){\r
+                       my @temp = split(/\,/,$line);\r
+                       # Darren Critchley highlight the row we are editing\r
+                       if ( $cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY'} eq $temp[0] ) { \r
+                               print "<TR BGCOLOR='${Header::colouryellow}'>\n";\r
+                       } else {\r
+                               if ($id % 2) {\r
+                                       print "<TR BGCOLOR='${Header::table1colour}'>\n"; \r
+                               } else {\r
+                       print "<TR BGCOLOR='${Header::table2colour}'>\n";\r
+                               }\r
+                       }\r
+                       print "<TD>$temp[1]</TD>\n";\r
+                       print "<TD ALIGN='CENTER'>$temp[2]</TD>\n";\r
+                       print "<TD ALIGN='CENTER'>$temp[3]</TD>\n";\r
+                       print <<END\r
+<FORM METHOD='POST' NAME='frm$temp[0]'>\r
+<TD ALIGN='CENTER'>\r
+       <INPUT TYPE='hidden' NAME='ACTION' VALUE='$Lang::tr{'edit'}'>\r
+       <INPUT TYPE='image' NAME='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' width='20' height='20' border='0'>\r
+       <INPUT TYPE='hidden' NAME='KEY' VALUE='$temp[0]'>\r
+</TD>\r
+</FORM>\r
+<FORM METHOD='POST' NAME='frm$temp[0]b'>\r
+<TD ALIGN='CENTER'>\r
+       <INPUT TYPE='hidden' NAME='ACTION' VALUE='$Lang::tr{'remove'}'>\r
+       <INPUT TYPE='image' NAME='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0'>\r
+       <INPUT TYPE='hidden' NAME='KEY' VALUE='$temp[0]'>\r
+</TD>\r
+</FORM>\r
+END\r
+;\r
+                       print "</TR>\n";\r
+                       $id++;\r
+               }\r
+       }\r
+}\r
+\r
+sub display_default_networks\r
+{\r
+       foreach $line (sort @networks)\r
+       {\r
+               my @temp = split(/\,/,$line);\r
+               if ($id % 2) {\r
+                       print "<TR BGCOLOR='${Header::table1colour}'>\n"; \r
+               } else {\r
+               print "<TR BGCOLOR='${Header::table2colour}'>\n";\r
+               }\r
+               print "<TD>$temp[0]</TD>\n";\r
+               print "<TD ALIGN='CENTER'>$temp[1]</TD>\n";\r
+               print "<TD ALIGN='CENTER'>$temp[2]</TD>\n";\r
+               print "</TR>\n";\r
+               $id++;\r
+       }\r
+}\r
+\r
+sub setup_default_networks\r
+{\r
+       # Get current defined networks (Red, Green, Blue, Orange)\r
+       my $line = "Any,0.0.0.0,0.0.0.0";\r
+       push (@networks, $line);\r
+       $line = "localhost,127.0.0.1,255.255.255.255";\r
+       push (@networks, $line);\r
+       $line = "localnet,127.0.0.0,255.0.0.0";\r
+       push (@networks, $line);\r
+       $line = "Private Network 10.0.0.0,10.0.0.0,255.0.0.0";\r
+       push (@networks, $line);\r
+       $line = "Private Network 172.16.0.0,172.16.0.0,255.240.0.0";\r
+       push (@networks, $line);\r
+       $line = "Private Network 192.168.0.0,192.168.0.0,255.255.0.0";\r
+       push (@networks, $line);\r
+       \r
+       my $red_address=`cat ${General::swroot}/red/local-ipaddress`;\r
+       $line = "Red Address,$red_address,";\r
+       push (@networks, $line);\r
+       \r
+       $line = "Green Address,$netsettings{'GREEN_ADDRESS'},255.255.255.255";\r
+       push (@networks, $line);\r
+       $line = "Green Network,$netsettings{'GREEN_NETADDRESS'},$netsettings{'GREEN_NETMASK'}";\r
+       push (@networks, $line);\r
+       \r
+       if ($netsettings{'ORANGE_DEV'}ne ''){\r
+               $line = "Orange Address,$netsettings{'ORANGE_ADDRESS'},255.255.255.255";\r
+               push (@networks, $line);\r
+               $line = "Orange Network,$netsettings{'ORANGE_NETADDRESS'},$netsettings{'ORANGE_NETMASK'}";\r
+               push (@networks, $line);\r
+       }       \r
+       \r
+       if ($netsettings{'BLUE_DEV'}ne ''){\r
+               $line = "Blue Address,$netsettings{'BLUE_ADDRESS'},255.255.255.255";\r
+               push (@networks, $line);\r
+               $line = "Blue Network,$netsettings{'BLUE_NETADDRESS'},$netsettings{'BLUE_NETMASK'}";\r
+               push (@networks, $line);\r
+       }       \r
+       open(FILE, "${General::swroot}/ethernet/aliases") or die 'Unable to open aliases file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+       my $ctr = 0;\r
+       foreach my $lne (@current)\r
+       {\r
+               if ($lne ne ''){\r
+                       chomp($lne);    \r
+                       my @temp = split(/\,/,$lne);\r
+                       if ($temp[2] eq '') {\r
+                               $temp[2] = "Alias $ctr : $temp[0]";\r
+                       }\r
+                       $line = "$temp[2],$temp[0],";\r
+                       push (@networks, $line);\r
+                       $ctr++;\r
+               }\r
+       }\r
+}\r
+\r
+# Validate Field Entries\r
+sub validateparams \r
+{\r
+       if ($cgiparams{'NAME'} eq '') {\r
+               $errormessage = $Lang::tr{'nonetworkname'};\r
+               return;\r
+       }\r
+       $cgiparams{'NAME'}=&Header::cleanhtml($cgiparams{'NAME'});\r
+       unless(&General::validip($cgiparams{'IPADDRESS'})){$errormessage = $Lang::tr{'invalid ip'}; }\r
+       unless($errormessage){\r
+               my @tmp = split(/\./,$cgiparams{'IPADDRESS'});\r
+               if ($cgiparams{'NETMASK'} eq '' && $tmp[3] ne '255' && $tmp[3] ne '0'){\r
+                       $cgiparams{'NETMASK'} = "255.255.255.255";\r
+               }\r
+       }\r
+       unless(&General::validmask($cgiparams{'NETMASK'})){$errormessage = $Lang::tr{'subnet is invalid'}; }\r
+       \r
+       open(FILE, $filename) or die 'Unable to open custom network file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+       foreach my $line (@current)\r
+       {\r
+               chomp($line);\r
+               if ($line ne '') {\r
+                       my @temp = split(/\,/,$line);\r
+                       if ($cgiparams{'NAME'} eq $temp[1] && $cgiparams{'KEY'} ne $temp[0]) {\r
+                               $errormessage=$Lang::tr{'duplicate name'};\r
+                               return;\r
+                       }\r
+                       $key=$temp[0];\r
+               }\r
+       }\r
+       foreach $line (@networks)\r
+       {\r
+               my @temp = split(/\,/,$line);\r
+                       if ($cgiparams{'NAME'} eq $temp[0]) {\r
+                               $errormessage=$Lang::tr{'duplicate name'};\r
+                               return;\r
+                       }\r
+       }\r
+}\r
diff --git a/html/cgi-bin/optionsfw.cgi b/html/cgi-bin/optionsfw.cgi
new file mode 100644 (file)
index 0000000..8782bdc
--- /dev/null
@@ -0,0 +1,98 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# Copyright (C) 01-02-2002 Graham Smith <grhm@grhm.co.uk>\r
+#\r
+# $Id: optionsfw.cgi,v 1.1.2.10 2005/10/03 00:34:10 gespinasse Exp $\r
+#\r
+#\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+\r
+my %checked =();     # Checkbox manipulations\r
+\r
+# File used\r
+my $filename = "${General::swroot}/optionsfw/settings";\r
+\r
+our %settings=();\r
+#Settings1\r
+$settings{'DISABLEPING'} = 'NO';\r
+$settings{'ACTION'} = '';              # add/edit/remove\r
+\r
+my $errormessage = '';\r
+my $warnmessage = '';\r
+\r
+&Header::showhttpheaders();\r
+\r
+#Get GUI values\r
+&Header::getcgihash(\%settings);\r
+\r
+if ($settings{'ACTION'} eq $Lang::tr{'save'}) {\r
+       if ($settings{'DISABLEPING'} !~ /^(NO|ONLYRED|ALL)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ERROR; }\r
+       unless ($errormessage) {                                        # Everything is ok, save settings\r
+               &General::writehash($filename, \%settings);             # Save good settings\r
+               $settings{'ACTION'} = $Lang::tr{'save'};                # Recreate  'ACTION'\r
+               system('/usr/local/bin/setfilters');\r
+       }\r
+\r
+       ERROR:                                                          # Leave the faulty field untouched\r
+} else {\r
+       &General::readhash($filename, \%settings);                      # Get saved settings and reset to good if needed\r
+}\r
+$checked{'DISABLEPING'}{'NO'} = '';\r
+$checked{'DISABLEPING'}{'ONLYRED'} = '';\r
+$checked{'DISABLEPING'}{'ALL'} = '';\r
+$checked{'DISABLEPING'}{$settings{'DISABLEPING'}} = "checked='checked'";\r
+\r
+&Header::openpage($Lang::tr{'options fw'}, 1, '');\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<font class='base'>$errormessage&nbsp;</font>";\r
+       &Header::closebox();\r
+}\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'options fw'});\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>";\r
+\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td class='base' width='100%' colspan='3'><b>$Lang::tr{'ping disabled'}</b></td>\r
+</tr>\r
+<tr>\r
+       <td class='base'><input type='radio' name='DISABLEPING' value='NO' $checked{'DISABLEPING'}{'NO'} />$Lang::tr{'no'}</td>\r
+       <td>&nbsp;</td>\r
+</tr>\r
+<tr>\r
+       <td><input type='radio' name='DISABLEPING' value='ONLYRED' $checked{'DISABLEPING'}{'ONLYRED'} />$Lang::tr{'only red'}</td>\r
+       <td width='80%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td><input type='radio' name='DISABLEPING' value='ALL' $checked{'DISABLEPING'}{'ALL'} />$Lang::tr{'all interfaces'}</td>\r
+       <td class='base' width='10%' align='right'><!-- Space for future online help link --></td>\r
+</tr>\r
+</table>\r
+</form>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
diff --git a/html/cgi-bin/portfw.cgi b/html/cgi-bin/portfw.cgi
new file mode 100644 (file)
index 0000000..bfa9e99
--- /dev/null
@@ -0,0 +1,1179 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+# Copyright (c) 2002/04/13 Steve Bootes - Add source IP support\r
+#\r
+# $Id: portfw.cgi,v 1.5.2.18 2005/05/02 16:19:49 eoberlander Exp $\r
+#\r
+#\r
+# Darren Critchley February 2003 - I added the multiple external access rules for each port forward\r
+# A couple of things to remember when reading the code\r
+#      There are two kinds of records in the config file, those with a number in the first field, and then 0,\r
+#              these are port forward rules, these records will have a 0 or 0.0.0.0 in position 9 (ORIG_IP)\r
+#              If there is a 0, it means that there are external access rules, otherwise the port is open to ALL.\r
+#      The second type of record is a number followed by a number which indicates that it is an external access\r
+#      rule. The first number indicates which Portfw rule it belongs to, and the second is just a unique key.\r
+#\r
+# Darren Critchley - March 5, 2003 - if you come along after me and work on this page, please comment your\r
+#              work. Put your name, and date and then your comment - it helps the person that comes along after you\r
+#              to figure out why and how things have changed, and it is considered good coding practice\r
+# Thanks . . . \r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::colouryellow} );\r
+undef (@dummy);\r
+\r
+my %cgiparams=();\r
+my %selected=();\r
+my %checked=();\r
+my $prtrange1=0;\r
+my $prtrange2=0;\r
+my $errormessage = '';\r
+my $filename = "${General::swroot}/portfw/config";\r
+my $aliasfile = "${General::swroot}/ethernet/aliases";\r
+\r
+&Header::showhttpheaders();\r
+\r
+$cgiparams{'ENABLED'} = 'off';\r
+$cgiparams{'KEY1'} = '0';\r
+$cgiparams{'KEY2'} = '0';\r
+$cgiparams{'PROTOCOL'} = '';\r
+$cgiparams{'SRC_PORT'} = '';\r
+$cgiparams{'DEST_IP'} = '';\r
+$cgiparams{'DEST_PORT'} = '';\r
+$cgiparams{'SRC_IP'} = '';\r
+$cgiparams{'ORIG_IP'} = '';\r
+$cgiparams{'REMARK'} = '';\r
+$cgiparams{'OVERRIDE'} = 'off';\r
+$cgiparams{'ACTION'} = '';\r
+\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+my $disable_all = "0";\r
+my $enable_all = "0";\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'add'})\r
+{\r
+       &valaddupdate();\r
+       \r
+       # Darren Critchley - if there is an error, don't waste any more time processing\r
+       if ($errormessage) { goto ERROR; }\r
+       \r
+       open(FILE, $filename) or die 'Unable to open config file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+       my $key1 = 0; # used for finding last sequence number used \r
+       foreach my $line (@current)\r
+       {\r
+               my @temp = split(/\,/,$line);\r
+\r
+               chomp ($temp[8]);\r
+               if ($cgiparams{'KEY2'} eq "0"){ # if key2 is 0 then it is a portfw addition\r
+                       if ( $cgiparams{'SRC_PORT'} eq $temp[3] &&\r
+                               $cgiparams{'PROTOCOL'} eq $temp[2] &&\r
+                               $cgiparams{'SRC_IP'} eq $temp[7])\r
+                       {\r
+                                $errormessage =  \r
+                                       "$Lang::tr{'source port in use'} $cgiparams{'SRC_PORT'}";\r
+                       }\r
+                       # Check if key2 = 0, if it is then it is a port forward entry and we want the sequence number\r
+                       if ( $temp[1] eq "0") {\r
+                               $key1=$temp[0];\r
+                       }\r
+                       # Darren Critchley - Duplicate or overlapping Port range check\r
+                       if ($temp[1] eq "0" && \r
+                               $cgiparams{'PROTOCOL'} eq $temp[2] &&\r
+                               $cgiparams{'SRC_IP'} eq $temp[7] &&\r
+                               $errormessage eq '') \r
+                       {\r
+                               &portchecks($temp[3], $temp[5]);\r
+                       }\r
+               } else {\r
+                       if ( $cgiparams{'KEY1'} eq $temp[0] &&\r
+                               $cgiparams{'ORIG_IP'} eq $temp[8])\r
+                       {\r
+                                $errormessage =  \r
+                                       "$Lang::tr{'source ip in use'} $cgiparams{'ORIG_IP'}";\r
+                       }\r
+               }\r
+       }\r
+\r
+ERROR:\r
+       unless ($errormessage)\r
+       {\r
+               # Darren Critchley - we only want to store ranges with Colons\r
+               $cgiparams{'SRC_PORT'} =~ tr/-/:/; \r
+               $cgiparams{'DEST_PORT'} =~ tr/-/:/;\r
+\r
+               if ($cgiparams{'KEY1'} eq "0") { # 0 in KEY1 indicates it is a portfw add\r
+                       $key1++; # Add one to last sequence number\r
+                       open(FILE,">>$filename") or die 'Unable to open config file.';\r
+                       flock FILE, 2;\r
+                               if ($cgiparams{'ORIG_IP'} eq '0.0.0.0/0') {\r
+                                       # if the default/all is taken, then write it to the rule\r
+                                               print FILE "$key1,0,$cgiparams{'PROTOCOL'},$cgiparams{'SRC_PORT'},$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'SRC_IP'},$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n";\r
+                       } else { # else create an extra record so it shows up \r
+                                       print FILE "$key1,0,$cgiparams{'PROTOCOL'},$cgiparams{'SRC_PORT'},$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'SRC_IP'},0,$cgiparams{'REMARK'}\n";\r
+                                               print FILE "$key1,1,$cgiparams{'PROTOCOL'},0,$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},0,$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n";\r
+                                       }                       \r
+                       close(FILE);\r
+                       undef %cgiparams;\r
+                       &General::log($Lang::tr{'forwarding rule added'});\r
+                       system('/usr/local/bin/setportfw');\r
+               } else { # else key1 eq 0\r
+                       my $insertpoint = ($cgiparams{'KEY2'} - 1);\r
+                       open(FILE, ">$filename") or die 'Unable to open config file.';\r
+                       flock FILE, 2;\r
+                       foreach my $line (@current) {\r
+                               chomp($line);\r
+                               my @temp = split(/\,/,$line);\r
+                               if ($cgiparams{'KEY1'} eq $temp[0] && $insertpoint eq $temp[1]) {\r
+                                       if ($temp[1] eq "0") { # this is the first xtaccess rule, therefore modify the portfw rule\r
+                                               $temp[8] = '0';\r
+                                       }\r
+                                       print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n";\r
+                                       print FILE "$cgiparams{'KEY1'},$cgiparams{'KEY2'},$cgiparams{'PROTOCOL'},0,$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},0,$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n";\r
+                               } else {\r
+                                       print FILE "$line\n";\r
+                               }\r
+                       }\r
+                       close(FILE);\r
+                       undef %cgiparams;\r
+                       &General::log($Lang::tr{'external access rule added'});\r
+                       system('/usr/local/bin/setportfw');\r
+               } # end if if KEY1 eq 0\r
+       } # end unless($errormessage)\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'update'})\r
+{\r
+       &valaddupdate();\r
+       \r
+       # Darren Critchley - If there is an error don't waste any more processing time\r
+       if ($errormessage) { $cgiparams{'ACTION'} = $Lang::tr{'edit'}; goto UPD_ERROR; }\r
+\r
+       open(FILE, $filename) or die 'Unable to open config file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+       my $disabledpfw = '0';\r
+       my $lastpfw = '';\r
+       my $xtaccessdel = '0';\r
+       \r
+       foreach my $line (@current)\r
+       {\r
+               my @temp = split(/\,/,$line);\r
+               if ( $temp[1] eq "0" ) { # keep track of the last portfw and if it is enabled\r
+                       $disabledpfw = $temp[6];\r
+                       $lastpfw = $temp[0];\r
+               }               \r
+               chomp ($temp[8]);\r
+               if ( $cgiparams{'SRC_PORT'} eq $temp[3] &&\r
+                       $cgiparams{'PROTOCOL'} eq $temp[2] &&\r
+                       $cgiparams{'SRC_IP'} eq $temp[7])\r
+               {\r
+                        if ($cgiparams{'KEY1'} ne $temp[0] && $cgiparams{'KEY2'} eq "0")\r
+                        { \r
+                        $errormessage =  \r
+                               "$Lang::tr{'source port in use'} $cgiparams{'SRC_PORT'}";\r
+                        }\r
+               }\r
+               if ($cgiparams{'ORIG_IP'} eq $temp[8]) \r
+               {\r
+                        if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} ne $temp[1])\r
+                        # If we have the same source ip within a portfw group, then we have a problem!\r
+                        {\r
+                               $errormessage =  "$Lang::tr{'source ip in use'} $cgiparams{'ORIG_IP'}";\r
+                               $cgiparams{'ACTION'} = $Lang::tr{'edit'};\r
+                        }\r
+               }\r
+               \r
+               # Darren Critchley - Flag when a user disables an xtaccess\r
+               if ($cgiparams{'KEY1'} eq $temp[0] &&\r
+                               $cgiparams{'KEY2'} eq $temp[1] &&\r
+                               $cgiparams{'KEY2'} ne "0" && # if KEY2 is 0 then it is a portfw\r
+                               $cgiparams{'ENABLED'} eq "off" &&\r
+                               $temp[6] eq "on") { # we have determined that someone has turned an xtaccess off\r
+                       $xtaccessdel = "1";             \r
+               }\r
+               \r
+               # Darren Critchley - Portfw enabled, then enable xtaccess for all associated xtaccess records\r
+               if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'KEY2'} eq "0" && $cgiparams{'ENABLED'} ne $temp[6]) \r
+               {\r
+                       $enable_all = "1";\r
+               } else {\r
+                       $enable_all = "0";\r
+               }\r
+               # Darren Critchley - Portfw disabled, then disable xtaccess for all associated xtaccess records\r
+               if ($cgiparams{'ENABLED'} eq "off" && $cgiparams{'KEY2'} eq "0") \r
+               {\r
+                       $disable_all = "1";\r
+               } else {\r
+                       $disable_all = "0";\r
+               }\r
+\r
+               # Darren Critchley - if we are enabling an xtaccess, only allow if the associated Portfw is enabled\r
+               if ($cgiparams{'KEY1'} eq $lastpfw && $cgiparams{'KEY2'} ne "0") { # identifies an xtaccess record in the group\r
+                       if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'ENABLED'} ne $temp[6] ){ # a change has been made\r
+                               if ($disabledpfw eq "off")\r
+                               { \r
+                                       $errormessage =  "$Lang::tr{'cant enable xtaccess'}";\r
+                                       $cgiparams{'ACTION'} = $Lang::tr{'edit'};\r
+                               }\r
+                       }\r
+               }\r
+               \r
+               # Darren Critchley - rule to stop someone from entering ALL into a external access rule, \r
+               # the portfw is the only place that ALL can be specified\r
+               if ($cgiparams{'KEY2'} ne "0" && $cgiparams{'ORIG_IP'} eq "0.0.0.0/0") {\r
+                       $errormessage =  "$Lang::tr{'xtaccess all error'}";\r
+                       $cgiparams{'ACTION'} = $Lang::tr{'edit'};\r
+               }\r
+               \r
+               # Darren Critchley - Duplicate or overlapping Port range check\r
+               if ($temp[1] eq "0" &&\r
+                       $cgiparams{'KEY1'} ne $temp[0] && \r
+                       $cgiparams{'PROTOCOL'} eq $temp[2] &&\r
+                       $cgiparams{'SRC_IP'} eq $temp[7] &&\r
+                       $errormessage eq '') \r
+               {\r
+                               &portchecks($temp[3], $temp[5]);\r
+               } # end port testing\r
+               \r
+       }\r
+       \r
+       # Darren Critchley - if an xtaccess was disabled, now we need to check to see if it was the only xtaccess\r
+       if($xtaccessdel eq "1") {\r
+               my $xctr = 0;\r
+               foreach my $line (@current)\r
+               {\r
+                       my @temp = split(/\,/,$line);\r
+                       if($temp[0] eq $cgiparams{'KEY1'} &&\r
+                               $temp[6] eq "on") { # we only want to count the enabled xtaccess's\r
+                               $xctr++;\r
+                       }\r
+               }\r
+               if ($xctr == 2){\r
+                       $disable_all = "1";\r
+               }\r
+       }\r
+\r
+UPD_ERROR:\r
+       unless ($errormessage)\r
+       {\r
+               # Darren Critchley - we only want to store ranges with Colons\r
+               $cgiparams{'SRC_PORT'} =~ tr/-/:/; \r
+               $cgiparams{'DEST_PORT'} =~ tr/-/:/;\r
+\r
+               open(FILE, ">$filename") or die 'Unable to open config file.';\r
+               flock FILE, 2;\r
+               foreach my $line (@current) {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1]) {\r
+               print FILE "$cgiparams{'KEY1'},$cgiparams{'KEY2'},$cgiparams{'PROTOCOL'},$cgiparams{'SRC_PORT'},$cgiparams{'DEST_IP'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'SRC_IP'},$cgiparams{'ORIG_IP'},$cgiparams{'REMARK'}\n";\r
+                       } else {\r
+                               # Darren Critchley - If it is a port forward record, then chances are good that a change was made to \r
+                               # Destination Ip or Port, and we need to update all the associated external access records\r
+                               if ($cgiparams{'KEY2'} eq "0" && $cgiparams{'KEY1'} eq $temp[0]) {\r
+                                       $temp[4] = $cgiparams{'DEST_IP'};\r
+                                       $temp[5] = $cgiparams{'DEST_PORT'};\r
+                                       $temp[2] = $cgiparams{'PROTOCOL'};\r
+                               }\r
+                               \r
+                               # Darren Critchley - If a Portfw has been disabled, then set all associated xtaccess as disabled\r
+                               if ( $disable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) {\r
+                                       $temp[6] = 'off';\r
+                               }\r
+                               if ( $enable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) {\r
+                                       $temp[6] = 'on';\r
+                               }\r
+                               # Darren Critchley - Deal with the override to allow ALL\r
+                               if ( $cgiparams{'OVERRIDE'} eq "on" && $temp[1] ne "0" && $cgiparams{'KEY1'} eq $temp[0] ) {\r
+                                       $temp[6] = 'off';\r
+                               }\r
+                       print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n";\r
+                       }\r
+               }\r
+               close(FILE);\r
+               undef %cgiparams;\r
+               &General::log($Lang::tr{'forwarding rule updated'});\r
+               system('/usr/local/bin/setportfw');\r
+       } \r
+       if ($errormessage) {\r
+       $cgiparams{'ACTION'} = $Lang::tr{'edit'};\r
+       }\r
+}\r
+\r
+# Darren Critchley - Allows rules to be enabled and disabled\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'})\r
+{\r
+       open(FILE, $filename) or die 'Unable to open config file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+       my $disabledpfw = '0';\r
+       my $lastpfw = '';\r
+       my $xtaccessdel = '0';\r
+       \r
+       foreach my $line (@current)\r
+       {\r
+               my @temp = split(/\,/,$line);\r
+               if ( $temp[1] eq "0" ) { # keep track of the last portfw and if it is enabled\r
+                       $disabledpfw = $temp[6];\r
+                       $lastpfw = $temp[0];\r
+               }               \r
+               # Darren Critchley - Flag when a user disables an xtaccess\r
+               if ($cgiparams{'KEY1'} eq $temp[0] &&\r
+                               $cgiparams{'KEY2'} eq $temp[1] &&\r
+                               $cgiparams{'KEY2'} ne "0" && # if KEY2 is 0 then it is a portfw\r
+                               $cgiparams{'ENABLED'} eq "off" &&\r
+                               $temp[6] eq "on") { # we have determined that someone has turned an xtaccess off\r
+                       $xtaccessdel = "1";             \r
+               }\r
+               \r
+               # Darren Critchley - Portfw enabled, then enable xtaccess for all associated xtaccess records\r
+               if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'KEY2'} eq "0" && $cgiparams{'ENABLED'} ne $temp[6]) \r
+               {\r
+                       $enable_all = "1";\r
+               } else {\r
+                       $enable_all = "0";\r
+               }\r
+               # Darren Critchley - Portfw disabled, then disable xtaccess for all associated xtaccess records\r
+               if ($cgiparams{'ENABLED'} eq "off" && $cgiparams{'KEY2'} eq "0") \r
+               {\r
+                       $disable_all = "1";\r
+               } else {\r
+                       $disable_all = "0";\r
+               }\r
+\r
+               # Darren Critchley - if we are enabling an xtaccess, only allow if the associated Portfw is enabled\r
+               if ($cgiparams{'KEY1'} eq $lastpfw && $cgiparams{'KEY2'} ne "0") { # identifies an xtaccess record in the group\r
+                       if ($cgiparams{'ENABLED'} eq "on" && $cgiparams{'ENABLED'} ne $temp[6] ){ # a change has been made\r
+                               if ($disabledpfw eq "off")\r
+                               { \r
+                                       $errormessage =  "$Lang::tr{'cant enable xtaccess'}";\r
+                                       goto TOGGLEEXIT;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+       \r
+       # Darren Critchley - if an xtaccess was disabled, now we need to check to see if it was the only xtaccess\r
+       if($xtaccessdel eq "1") {\r
+               my $xctr = 0;\r
+               foreach my $line (@current)\r
+               {\r
+                       my @temp = split(/\,/,$line);\r
+                       if($temp[0] eq $cgiparams{'KEY1'} &&\r
+                               $temp[6] eq "on") { # we only want to count the enabled xtaccess's\r
+                               $xctr++;\r
+                       }\r
+               }\r
+               if ($xctr == 2){\r
+                       $disable_all = "1";\r
+               }\r
+       }\r
+\r
+       open(FILE, ">$filename") or die 'Unable to open config file.';\r
+       flock FILE, 2;\r
+       foreach my $line (@current) {\r
+               chomp($line);\r
+               my @temp = split(/\,/,$line);\r
+               if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1]) {\r
+               print FILE "$cgiparams{'KEY1'},$cgiparams{'KEY2'},$temp[2],$temp[3],$temp[4],$temp[5],$cgiparams{'ENABLED'},$temp[7],$temp[8],$temp[9]\n";\r
+               } else {\r
+                       # Darren Critchley - If a Portfw has been disabled, then set all associated xtaccess as disabled\r
+                       if ( $disable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) {\r
+                               $temp[6] = 'off';\r
+                       }\r
+                       if ( $enable_all eq "1" && $cgiparams{'KEY1'} eq $temp[0] ) {\r
+                               $temp[6] = 'on';\r
+                       }\r
+               print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n";\r
+               }\r
+       }\r
+       close(FILE);\r
+       &General::log($Lang::tr{'forwarding rule updated'});\r
+       system('/usr/local/bin/setportfw');\r
+TOGGLEEXIT:\r
+       undef %cgiparams;\r
+} \r
+\r
+\r
+# Darren Critchley - broke out Edit routine from the delete routine - Edit routine now just puts values in fields\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'})\r
+{\r
+       open(FILE, "$filename") or die 'Unable to open config file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+\r
+       unless ($errormessage)\r
+       {\r
+               foreach my $line (@current)\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] ) {\r
+                               $cgiparams{'PROTOCOL'} = $temp[2];\r
+                               $cgiparams{'SRC_PORT'} = $temp[3];\r
+                               $cgiparams{'DEST_IP'} = $temp[4];\r
+                               $cgiparams{'DEST_PORT'} = $temp[5];\r
+                               $cgiparams{'ENABLED'} = $temp[6];\r
+                               $cgiparams{'SRC_IP'} = $temp[7];\r
+                               $cgiparams{'ORIG_IP'} = $temp[8];\r
+                               $cgiparams{'REMARK'} = $temp[9];\r
+                       }\r
+                       \r
+               }\r
+       }\r
+}\r
+\r
+# Darren Critchley - broke out Remove routine as the logic is getting too complex to be combined with the Edit\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'})\r
+{\r
+       open(FILE, "$filename") or die 'Unable to open config file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+       \r
+       # If the record being deleted is an xtaccess record, and it is the only one for a portfw record\r
+       # then we need to adjust the portfw record to be open to ALL ip addressess or an error will occur\r
+       # in setportfw.c\r
+       my $fixportfw = '0';\r
+       if ($cgiparams{'KEY2'} ne "0") {\r
+               my $counter = 0;\r
+               foreach my $line (@current)\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       if ($temp[0] eq $cgiparams{'KEY1'}) {\r
+                               $counter++;\r
+                       }\r
+               } \r
+               if ($counter eq 2) {\r
+                       $fixportfw = '1';\r
+               }\r
+       }\r
+       \r
+       unless ($errormessage)\r
+       {\r
+               open(FILE, ">$filename") or die 'Unable to open config file.';\r
+               flock FILE, 2;\r
+               my $linedeleted = 0;\r
+               foreach my $line (@current)\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+\r
+                       if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] ||\r
+                               $cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq "0" ) \r
+                       {\r
+                               $linedeleted = 1;\r
+                       } else {\r
+                               if ($temp[0] eq $cgiparams{'KEY1'} && $temp[1] eq "0" && $fixportfw eq "1") {\r
+                                       $temp[8] = '0.0.0.0/0';\r
+                               }\r
+                       print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7],$temp[8],$temp[9]\n";\r
+#                              print FILE "$line\n";\r
+                       }\r
+               }\r
+               close(FILE);\r
+               if ($linedeleted == 1) {\r
+                       &General::log($Lang::tr{'forwarding rule removed'});\r
+                       undef %cgiparams;\r
+               }\r
+               system('/usr/local/bin/setportfw');\r
+       }\r
+}\r
+\r
+# Darren Critchley - Added routine to allow external access rules to be added\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'})\r
+{\r
+       open(FILE, $filename) or die 'Unable to open config file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+       my $key = 0; # used for finding last sequence number used \r
+       foreach my $line (@current)\r
+       {\r
+               my @temp = split(/\,/,$line);\r
+               if ($temp[0] eq $cgiparams{'KEY1'}) {\r
+                       $key = $temp[1]\r
+               }\r
+               if ($cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] ) {\r
+                       $cgiparams{'PROTOCOL'} = $temp[2];\r
+                       $cgiparams{'SRC_PORT'} = $temp[3];\r
+                       $cgiparams{'DEST_IP'} = $temp[4];\r
+                       $cgiparams{'DEST_PORT'} = $temp[5];\r
+                       $cgiparams{'ENABLED'} = $temp[6];\r
+                       $cgiparams{'SRC_IP'} = $temp[7];\r
+                       $cgiparams{'ORIG_IP'} = '';\r
+                       $cgiparams{'REMARK'} = $temp[9];\r
+               }\r
+       }\r
+       $key++;\r
+       $cgiparams{'KEY2'} = $key;\r
+       # Until the ADD button is hit, there needs to be no change to portfw rules\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'reset'})\r
+{\r
+       undef %cgiparams;\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq '')\r
+{\r
+       $cgiparams{'PROTOCOL'} = 'tcp';\r
+       $cgiparams{'ENABLED'} = 'on';\r
+       $cgiparams{'SRC_IP'} = '0.0.0.0';\r
+}\r
+\r
+$selected{'PROTOCOL'}{'udp'} = '';\r
+$selected{'PROTOCOL'}{'tcp'} = '';\r
+$selected{'PROTOCOL'}{'gre'} = '';\r
+$selected{'PROTOCOL'}{$cgiparams{'PROTOCOL'}} = "selected='selected'";\r
+\r
+$selected{'SRC_IP'}{$cgiparams{'SRC_IP'}} = "selected='selected'";\r
+\r
+$checked{'ENABLED'}{'off'} = '';\r
+$checked{'ENABLED'}{'on'} = '';  \r
+$checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'";\r
+\r
+&Header::openpage($Lang::tr{'port forwarding configuration'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<class name='base'><font color='${Header::colourred}'>$errormessage\n</font>";\r
+       print "&nbsp;</class>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){\r
+       &Header::openbox('100%', 'left', $Lang::tr{'edit a rule'});\r
+} else {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'add a new rule'});\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY2'} ne "0" || $cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'}){ \r
+# if it is not a port forward record, don't validate as the fields are disabled\r
+       my $PROT = "\U$cgiparams{'PROTOCOL'}\E";\r
+       # Darren Critchley - Format the source and destination ports\r
+       my $dstprt = $cgiparams{'DEST_PORT'};\r
+       $dstprt =~ s/-/ - /;\r
+       $dstprt =~ s/:/ - /;\r
+\r
+print <<END\r
+<table>\r
+       <tr>\r
+               <td class='base'>$Lang::tr{'protocol'}: <b>$PROT</b></td>\r
+               <td width='20'>&nbsp;</td>\r
+               <td class='base' align='right'>$Lang::tr{'destination ip'}:&nbsp;</td>\r
+               <td><b>$cgiparams{'DEST_IP'}</b></td>\r
+               <td width='20'>&nbsp;</td>\r
+               <td class='base' align='right'>$Lang::tr{'destination port'}:&nbsp;</td>\r
+               <td><b>$dstprt</b></td>\r
+       </tr>\r
+</table>\r
+\r
+<input type='hidden' name='PROTOCOL' value='$cgiparams{'PROTOCOL'}' />\r
+<input type='hidden' name='SRC_IP' value='$cgiparams{'SRC_IP'}' />\r
+<input type='hidden' name='SRC_PORT' value='$cgiparams{'SRC_PORT'}' />\r
+<input type='hidden' name='DEST_IP' value='$cgiparams{'DEST_IP'}' />\r
+<input type='hidden' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' />\r
+END\r
+;\r
+} else {\r
+print <<END\r
+<table width='100%'>\r
+       <tr>\r
+               <td width='10%'>$Lang::tr{'protocol'}:&nbsp;</td>\r
+               <td width='15%'> \r
+               <select name='PROTOCOL'>\r
+                       <option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option>\r
+                       <option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option>\r
+                       <option value='gre' $selected{'PROTOCOL'}{'gre'}>GRE</option>\r
+               </select>\r
+               </td>\r
+               <td class='base' width='20%'><font color='${Header::colourred}'>$Lang::tr{'alias ip'}:</font></td>\r
+               <td>\r
+                       <select name='SRC_IP'>\r
+                       <option value='0.0.0.0' $selected{'SRC_IP'}{'0.0.0.0'}>DEFAULT IP</option>\r
+END\r
+;\r
+open(ALIASES, "$aliasfile") or die 'Unable to open aliases file.';\r
+while (<ALIASES>)\r
+{\r
+       chomp($_);\r
+       my @temp = split(/\,/,$_);\r
+       if ($temp[1] eq 'on') {\r
+               print "<option value='$temp[0]' $selected{'SRC_IP'}{$temp[0]}>$temp[0]";\r
+               if (defined $temp[2] and ($temp[2] ne '')) { print " ($temp[2])"; }\r
+               print "</option>\n";\r
+       }\r
+}\r
+close(ALIASES);\r
+print <<END\r
+                       </select>\r
+               </td>\r
+               <td class='base' width='20%'><font color='${Header::colourred}'>$Lang::tr{'source port'}:</font></td>\r
+               <td width='10%'><input type='text' name='SRC_PORT' value='$cgiparams{'SRC_PORT'}' size='8' /></td>\r
+       </tr>\r
+       <tr>\r
+               <td class='base'>&nbsp;</td>\r
+               <td>&nbsp;</td>\r
+               <td class='base'>$Lang::tr{'destination ip'}:</td>\r
+               <td><input type='text' name='DEST_IP' value='$cgiparams{'DEST_IP'}' size='15' /></td>\r
+               <td class='base'>$Lang::tr{'destination port'}:</td>\r
+               <td><input type='text' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='8' /></td>\r
+       </tr>\r
+</table>\r
+END\r
+;\r
+}\r
+\r
+print <<END\r
+<table>\r
+       <tr>\r
+               <td class='base'>$Lang::tr{'remark title'}&nbsp;<img src='/blob.gif' alt='*' />&nbsp;</td>\r
+               <td><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /></td>\r
+END\r
+;\r
+unless ($cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'} && $cgiparams{'ENABLED'} eq "off") {\r
+       print "<td width='20'>&nbsp;</td>";\r
+       print "<td>$Lang::tr{'enabled'}&nbsp;</td><td><input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td>\n";\r
+}\r
+print <<END\r
+       </tr>\r
+</table>\r
+END\r
+;\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY2'} eq "0" && ($cgiparams{'ORIG_IP'} eq "0" || $cgiparams{'ORIG_IP'} eq "0.0.0.0/0")){ \r
+# if it is a port forward rule with a 0 in the orig_port field, this means there are xtaccess records, and we\r
+# don't want to allow a person to change the orig_ip field as it will mess other logic up\r
+       print "<input type='hidden' name='ORIG_IP' value='$cgiparams{'ORIG_IP'}' />\n";\r
+} else {\r
+print <<END\r
+<table>\r
+       <tr>\r
+               <td class='base'><font class='boldbase' color='${Header::colourred}'>$Lang::tr{'source network'}</font>&nbsp;<img src='/blob.gif' alt='*' />&nbsp;</td>\r
+               <td><input type='text' name='ORIG_IP' value='$cgiparams{'ORIG_IP'}' size='15' /></td>\r
+       </tr>\r
+</table>\r
+END\r
+;\r
+}\r
+\r
+print <<END\r
+<table width='100%'>\r
+       <hr />\r
+       <tr>\r
+               <td class='base' width='25%'><img src='/blob.gif' alt ='*' align='top' />&nbsp;<font class='base'>$Lang::tr{'this field may be blank'}</font></td>\r
+END\r
+;\r
+\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){\r
+       if($cgiparams{'KEY2'} eq "0"){\r
+               print "<td width='35%' align='right'>$Lang::tr{'open to all'}:&nbsp;</td><td width='5%'><input type='checkbox' name='OVERRIDE' $checked{'OVERRIDE'}{'on'} /></td>\n";\r
+       } else {\r
+               print "<td width='40%'>&nbsp;</td>\n";\r
+       }\r
+       print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' />";\r
+       print "<input type='hidden' name='KEY1' value='$cgiparams{'KEY1'}' />";\r
+       print "<input type='hidden' name='KEY2' value='$cgiparams{'KEY2'}' /></TD>";\r
+       print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /></td>";\r
+       # on an edit and an xtaccess add, for some reason the "Reset" button stops working, so I make it a submit button\r
+} else {\r
+       print "<td width='30%'>&nbsp;</td>\n";\r
+       print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'add'}' /></td>";\r
+       if ($cgiparams{'ACTION'} eq $Lang::tr{'add xtaccess'}) {\r
+               print "<td align='center' width='15%'><input type='hidden' name='KEY1' value='$cgiparams{'KEY1'}' />";\r
+               print "<input type='hidden' name='KEY2' value='$cgiparams{'KEY2'}' />";\r
+               print "<input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /></td>";\r
+       } elsif ($errormessage ne '') {\r
+               print "<td align='center' width='15%'><input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /></td>";\r
+       } else {\r
+               print "<td align='center' width='15%'><input type='reset' name='ACTION' value='$Lang::tr{'reset'}' /></td>";\r
+       }\r
+}\r
+print <<END\r
+       <td width='5%' align='right'>\r
+               <a href='${General::adminmanualurl}/section-firewall.html#section-port-forwarding' target='_blank'>\r
+               <img src='/images/web-support.png' alt='$Lang::tr{'online help en'}' title='$Lang::tr{'online help en'}' /></a></td>\r
+       </tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+print "</form>\n";\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'current rules'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+<td width='7%' class='boldbase' align='center'><b>$Lang::tr{'proto'}</b></td>\r
+<td width='31%' class='boldbase' align='center'><b>$Lang::tr{'source'}</b></td>\r
+<td width='2%' class='boldbase' align='center'>&nbsp;</td>\r
+<td width='31%' class='boldbase' align='center'><b>$Lang::tr{'destination'}</b></td>\r
+<td width='24%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td>\r
+<td width='4%' class='boldbase' colspan='4' align='center'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+END\r
+;\r
+\r
+my $id = 0;\r
+my $xtaccesscolor = '#F6F4F4';\r
+open(RULES, "$filename") or die 'Unable to open config file.';\r
+while (<RULES>)\r
+{\r
+       my $protocol = '';\r
+       my $gif = '';\r
+       my $gdesc = '';\r
+       my $toggle = '';\r
+       chomp($_);\r
+       my @temp = split(/\,/,$_);\r
+       $temp[9] ='' unless defined $temp[9];# Glles ESpinasse : suppress warning on page init\r
+       if ($temp[2] eq 'udp') {\r
+               $protocol = 'UDP'; }\r
+       elsif ($temp[2] eq 'gre') {\r
+               $protocol = 'GRE' }\r
+       else {\r
+               $protocol = 'TCP' }\r
+       # Change bgcolor when a new portfw rule is added\r
+       if ($temp[1] eq "0"){\r
+               $id++;\r
+       }\r
+       # Darren Critchley highlight the row we are editing\r
+       if ( $cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY1'} eq $temp[0] && $cgiparams{'KEY2'} eq $temp[1] ) { \r
+               print "<tr bgcolor='${Header::colouryellow}'>\n";\r
+       } else {\r
+               if ($id % 2) {\r
+                       print "<tr bgcolor='${Header::table1colour}'>\n"; \r
+               }\r
+               else {\r
+                       print "<tr bgcolor='${Header::table2colour}'>\n";\r
+               }\r
+       }\r
+       \r
+       if ($temp[6] eq 'on') { $gif = 'on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};}\r
+               else { $gif = 'off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; }\r
+\r
+               # Darren Critchley - this code no longer works - should we remove?\r
+       # catch for 'old-style' rules file - assume default ip if\r
+       # none exists\r
+       if (!&General::validip($temp[7]) || $temp[7] eq '0.0.0.0') {\r
+               $temp[7] = 'DEFAULT IP'; }\r
+               if ($temp[1] eq '0') { # Port forwarding entry\r
+\r
+               # Darren Critchley - Format the source and destintation ports\r
+               my $srcprt = $temp[3];\r
+               $srcprt =~ s/-/ - /;\r
+               $srcprt =~ s/:/ - /;\r
+               my $dstprt = $temp[5];\r
+               $dstprt =~ s/-/ - /;\r
+               $dstprt =~ s/:/ - /;\r
+\r
+               # Darren Critchley - Get Port Service Name if we can - code borrowed from firewalllog.dat\r
+               $_=$temp[3];\r
+               if (/^\d+$/) {\r
+                       my $servi = uc(getservbyport($temp[3], lc($temp[2])));\r
+                       if ($servi ne '' && $temp[3] < 1024) {\r
+                               $srcprt = "$srcprt($servi)"; }\r
+               }\r
+               $_=$temp[5];\r
+               if (/^\d+$/) {\r
+                       my $servi = uc(getservbyport($temp[5], lc($temp[2])));\r
+                       if ($servi ne '' && $temp[5] < 1024) {\r
+                               $dstprt = "$dstprt($servi)"; }\r
+               }\r
+\r
+               # Darren Critchley - If the line is too long, wrap the port numbers\r
+               my $srcaddr = "$temp[7] : $srcprt";\r
+               if (length($srcaddr) > 22) {\r
+                       $srcaddr = "$temp[7] :<br /> $srcprt";\r
+               }\r
+               my $dstaddr = "$temp[4] : $dstprt";\r
+               if (length($dstaddr) > 26) {\r
+                       $dstaddr = "$temp[4] :<br /> $dstprt";\r
+               }\r
+print <<END\r
+<td align='center'>$protocol</td>\r
+<td align='center'>$srcaddr</td>\r
+<td align='center'><img src='/images/forward.gif' alt='=&gt;' /></td>\r
+<td align='center'>$dstaddr</td>\r
+<td align='left'>&nbsp;$temp[9]</td>\r
+<td align='center'>\r
+       <form method='post' name='frm$temp[0]c' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+       <input type='hidden' name='KEY1' value='$temp[0]' />\r
+       <input type='hidden' name='KEY2' value='$temp[1]' />\r
+       <input type='hidden' name='ENABLED' value='$toggle' />\r
+       </form>\r
+</td>\r
+\r
+<td align='center'>\r
+       <form method='post' name='frm$temp[0]' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'add xtaccess'}' />\r
+       <input type='image' name='$Lang::tr{'add xtaccess'}' src='/images/add.gif' alt='$Lang::tr{'add xtaccess'}' title='$Lang::tr{'add xtaccess'}' />\r
+       <input type='hidden' name='KEY1' value='$temp[0]' />\r
+       <input type='hidden' name='KEY2' value='$temp[1]' />\r
+       </form>\r
+</td>\r
+\r
+<td align='center'>\r
+       <form method='post' name='frm$temp[0]' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />\r
+       <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />\r
+       <input type='hidden' name='KEY1' value='$temp[0]' />\r
+       <input type='hidden' name='KEY2' value='$temp[1]' />\r
+       </form>\r
+</td>\r
+\r
+<td align='center'>\r
+       <form method='post' name='frm$temp[0]b' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />\r
+       <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />\r
+       <input type='hidden' name='KEY1' value='$temp[0]' />\r
+       <input type='hidden' name='KEY2' value='$temp[1]' />\r
+       </form>\r
+</td>\r
+\r
+</tr>\r
+END\r
+       ;\r
+       } else { # external access entry\r
+print <<END\r
+<td align='center'>&nbsp;</td>\r
+\r
+<td align='left' colspan='4'>&nbsp;<font color='${Header::colourred}'>$Lang::tr{'access allowed'}</font> $temp[8]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;($temp[9])</td>\r
+\r
+<td align='center'>\r
+       <form method='post' name='frm$temp[0]$temp[1]t' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$Lang::tr{'toggle enable disable'}' title='$Lang::tr{'toggle enable disable'}' />\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+       <input type='hidden' name='KEY1' value='$temp[0]' />\r
+       <input type='hidden' name='KEY2' value='$temp[1]' />\r
+       <input type='hidden' name='ENABLED' value='$toggle' />\r
+       </form>\r
+</td>\r
+\r
+<td align='center'>&nbsp;</td>\r
+\r
+<td align='center'>\r
+       <form method='post' name='frm$temp[0]$temp[1]' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />\r
+       <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />\r
+       <input type='hidden' name='KEY1' value='$temp[0]' />\r
+       <input type='hidden' name='KEY2' value='$temp[1]' />\r
+       </form>\r
+</td>\r
+\r
+<td align='center'>\r
+       <form method='post' name='frm$temp[0]b$temp[1]b' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />\r
+       <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />\r
+       <input type='hidden' name='KEY1' value='$temp[0]' />\r
+       <input type='hidden' name='KEY2' value='$temp[1]' />\r
+       </form>\r
+</td>\r
+\r
+</tr>\r
+END\r
+       ;\r
+       }\r
+}\r
+\r
+close(RULES);\r
+\r
+print "</table>";\r
+\r
+# If the fixed lease file contains entries, print Key to action icons\r
+if ( ! -z "$filename") {\r
+print <<END\r
+<table>\r
+<tr>\r
+       <td class='boldbase'>&nbsp;<b>$Lang::tr{'legend'}:&nbsp;</b></td>\r
+       <td><img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to disable'}</td>\r
+       <td>&nbsp;&nbsp;</td>\r
+       <td><img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to enable'}</td>\r
+       <td>&nbsp;&nbsp;</td>\r
+       <td><img src='/images/add.gif' alt='$Lang::tr{'add xtaccess'}' /></td>\r
+       <td class='base'>$Lang::tr{'add xtaccess'}</td>\r
+       <td>&nbsp;&nbsp;</td>\r
+       <td><img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>\r
+       <td class='base'>$Lang::tr{'edit'}</td>\r
+       <td>&nbsp;&nbsp;</td>\r
+       <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>\r
+       <td class='base'>$Lang::tr{'remove'}</td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+}\r
+\r
+&Header::closebox();\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
+# Validate Field Entries\r
+sub validateparams \r
+{\r
+       # Darren Critchley - Get rid of dashes in port ranges\r
+       $cgiparams{'DEST_PORT'}=~ tr/-/:/;\r
+       $cgiparams{'SRC_PORT'}=~ tr/-/:/;\r
+       \r
+       # Darren Critchley - code to substitue wildcards\r
+       if ($cgiparams{'SRC_PORT'} eq "*") {\r
+               $cgiparams{'SRC_PORT'} = "1:65535";\r
+       }\r
+       if ($cgiparams{'SRC_PORT'} =~ /^(\D)\:(\d+)$/) {\r
+               $cgiparams{'SRC_PORT'} = "1:$2";\r
+       }\r
+       if ($cgiparams{'SRC_PORT'} =~ /^(\d+)\:(\D)$/) {\r
+               $cgiparams{'SRC_PORT'} = "$1:65535";\r
+       }\r
+       if ($cgiparams{'DEST_PORT'} eq "*") {\r
+               $cgiparams{'DEST_PORT'} = "1:65535";\r
+       }\r
+       if ($cgiparams{'DEST_PORT'} =~ /^(\D)\:(\d+)$/) {\r
+               $cgiparams{'DEST_PORT'} = "1:$2";\r
+       }\r
+       if ($cgiparams{'DEST_PORT'} =~ /^(\d+)\:(\D)$/) {\r
+               $cgiparams{'DEST_PORT'} = "$1:65535";\r
+       }\r
+\r
+       # Darren Critchley - Add code for GRE protocol - we want to ignore ports, but we need a place holder\r
+       if ($cgiparams{'PROTOCOL'} eq 'gre') {\r
+               $cgiparams{'SRC_PORT'} = "GRE";\r
+               $cgiparams{'DEST_PORT'} = "GRE";\r
+       }\r
+\r
+       unless($cgiparams{'PROTOCOL'} =~ /^(tcp|udp|gre)$/) { $errormessage = $Lang::tr{'invalid input'}; }\r
+       # Darren Critchley - Changed how the error routine works a bit - for the validportrange check, we need to \r
+       # pass in src or dest to determine which side we are working with.\r
+       # the routine returns the complete error or ''\r
+       if ($cgiparams{'PROTOCOL'} ne 'gre') {\r
+               $errormessage = &General::validportrange($cgiparams{'SRC_PORT'}, 'src');\r
+       }\r
+       if( ($cgiparams{'ORIG_IP'} ne "0" && $cgiparams{'KEY2'} ne "0") || $cgiparams{'ACTION'} eq $Lang::tr{'add'}) { \r
+       # if it is a port forward record with 0 in orig_ip then ignore checking this field\r
+               unless(&General::validipormask($cgiparams{'ORIG_IP'}))\r
+               {\r
+                       if ($cgiparams{'ORIG_IP'} ne '') {\r
+                               $errormessage = $Lang::tr{'source ip bad'}; }\r
+                       else {\r
+                               $cgiparams{'ORIG_IP'} = '0.0.0.0/0'; }\r
+               }\r
+       }\r
+       # Darren Critchey - New rule that sets destination same as source if dest_port is blank.\r
+       if ($cgiparams{'DEST_PORT'} eq ''){\r
+               $cgiparams{'DEST_PORT'} = $cgiparams{'SRC_PORT'};\r
+       }\r
+       # Darren Critchey - Just in case error message is already set, this routine would wipe it out if\r
+       # we don't do a test here\r
+       if ($cgiparams{'PROTOCOL'} ne 'gre') {\r
+               unless($errormessage) {$errormessage = &General::validportrange($cgiparams{'DEST_PORT'}, 'dest');}\r
+       }\r
+       unless(&General::validip($cgiparams{'DEST_IP'})) { $errormessage = $Lang::tr{'destination ip bad'}; }\r
+       return;\r
+}\r
+\r
+# Darren Critchley - we want to make sure that a port range does not overlap another port range\r
+sub checkportoverlap\r
+{\r
+       my $portrange1 = $_[0]; # New port range\r
+       my $portrange2 = $_[1]; # existing port range\r
+       my @tempr1 = split(/\:/,$portrange1);\r
+       my @tempr2 = split(/\:/,$portrange2);\r
+\r
+       unless (&checkportinc($tempr1[0], $portrange2)){ return 0;}\r
+       unless (&checkportinc($tempr1[1], $portrange2)){ return 0;}\r
+       \r
+       unless (&checkportinc($tempr2[0], $portrange1)){ return 0;}\r
+       unless (&checkportinc($tempr2[1], $portrange1)){ return 0;}\r
+\r
+       return 1; # Everything checks out!\r
+}\r
+\r
+# Darren Critchley - we want to make sure that a port entry is not within an already existing range\r
+sub checkportinc\r
+{\r
+       my $port1 = $_[0]; # Port\r
+       my $portrange2 = $_[1]; # Port range\r
+       my @tempr1 = split(/\:/,$portrange2);\r
+\r
+       if ($port1 < $tempr1[0] || $port1 > $tempr1[1]) {\r
+               return 1; \r
+       } else {\r
+               return 0; \r
+       }\r
+}\r
+\r
+# Darren Critchley - certain ports are reserved for Ipcop \r
+# TCP 67,68,81,222,445\r
+# UDP 67,68\r
+# Params passed in -> port, rangeyn, protocol\r
+sub disallowreserved\r
+{\r
+       # port 67 and 68 same for tcp and udp, don't bother putting in an array\r
+       my $msg = "";\r
+       my @tcp_reserved = (81,222,445);\r
+       my $prt = $_[0]; # the port or range\r
+       my $ryn = $_[1]; # tells us whether or not it is a port range\r
+       my $prot = $_[2]; # protocol\r
+       my $srcdst = $_[3]; # source or destination\r
+       \r
+       if ($ryn) { # disect port range\r
+               if ($srcdst eq "src") {\r
+                       $msg = "$Lang::tr{'rsvd src port overlap'}";\r
+               } else {\r
+                       $msg = "$Lang::tr{'rsvd dst port overlap'}";\r
+               }\r
+               my @tmprng = split(/\:/,$prt);\r
+               unless (67 < $tmprng[0] || 67 > $tmprng[1]) { $errormessage="$msg 67"; return; }\r
+               unless (68 < $tmprng[0] || 68 > $tmprng[1]) { $errormessage="$msg 68"; return; }\r
+               if ($prot eq "tcp") {\r
+                       foreach my $prange (@tcp_reserved) {\r
+                               unless ($prange < $tmprng[0] || $prange > $tmprng[1]) { $errormessage="$msg $prange"; return; }\r
+                       }\r
+               }\r
+       } else {\r
+               if ($srcdst eq "src") {\r
+                       $msg = "$Lang::tr{'reserved src port'}";\r
+               } else {\r
+                       $msg = "$Lang::tr{'reserved dst port'}";\r
+               }\r
+               if ($prt == 67) { $errormessage="$msg 67"; return; }\r
+               if ($prt == 68) { $errormessage="$msg 68"; return; }\r
+               if ($prot eq "tcp") {\r
+                       foreach my $prange (@tcp_reserved) {\r
+                               if ($prange == $prt) { $errormessage="$msg $prange"; return; }\r
+                       }\r
+               }\r
+       }\r
+       return;\r
+}\r
+\r
+# Darren Critchley - Attempt to combine Add/Update validation as they are almost the same\r
+sub valaddupdate\r
+{\r
+       if ($cgiparams{'KEY2'} eq "0"){ # if it is a port forward rule, then validate properly\r
+               &validateparams();\r
+       } else { # it is an xtaccess rule, just check for a valid ip\r
+               unless(&General::validipormask($cgiparams{'ORIG_IP'}))\r
+               {\r
+                       if ($cgiparams{'ORIG_IP'} ne '') {\r
+                               $errormessage = $Lang::tr{'source ip bad'}; }\r
+                       else { # this rule stops someone from adding an ALL xtaccess record\r
+                               $errormessage = $Lang::tr{'xtaccess all error'}; \r
+                               $cgiparams{'ACTION'} = $Lang::tr{'add xtaccess'};\r
+                       }\r
+               }\r
+               # Darren Critchley - check for 0.0.0.0/0 - not allowed for xtaccess\r
+               if ($cgiparams{'ORIG_IP'} eq "0.0.0.0/0" || $cgiparams{'ORIG_IP'} eq "0.0.0.0") {\r
+                       $errormessage = $Lang::tr{'xtaccess all error'}; \r
+                       $cgiparams{'ACTION'} = $Lang::tr{'add xtaccess'};\r
+               }\r
+       }\r
+       # Darren Critchley - Remove commas from remarks\r
+       $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'});\r
+\r
+       # Darren Critchley - Check to see if we are working with port ranges\r
+       our ($prtrange1, $prtrange2);\r
+       $_ = $cgiparams{'SRC_PORT'};\r
+       if ($cgiparams{'KEY2'} eq "0" && m/:/){\r
+               $prtrange1 = 1;\r
+       }\r
+       if ($cgiparams{'SRC_IP'} eq '0.0.0.0') { # Dave Roberts - only check if using DEFAULT IP\r
+               if ($prtrange1 == 1){ # check for source ports reserved for Ipcop\r
+                       &disallowreserved($cgiparams{'SRC_PORT'},1,$cgiparams{'PROTOCOL'},"src");\r
+                       if ($errormessage) { goto EXITSUB; }\r
+               } else { # check for source port reserved for Ipcop\r
+                       &disallowreserved($cgiparams{'SRC_PORT'},0,$cgiparams{'PROTOCOL'},"src");\r
+                       if ($errormessage) { goto EXITSUB; }\r
+               }\r
+       }\r
+       \r
+       $_ = $cgiparams{'DEST_PORT'};\r
+       if ($cgiparams{'KEY2'} eq "0" && m/:/){\r
+               $prtrange2 = 1;\r
+       }\r
+       if ($cgiparams{'SRC_IP'} eq '0.0.0.0') { # Dave Roberts - only check if using DEFAULT IP\r
+               if ($prtrange2 == 1){ # check for destination ports reserved for IPCop\r
+                       &disallowreserved($cgiparams{'DEST_PORT'},1,$cgiparams{'PROTOCOL'},"dst");\r
+                       if ($errormessage) { goto EXITSUB; }\r
+               } else { # check for destination port reserved for IPCop\r
+                       &disallowreserved($cgiparams{'DEST_PORT'},0,$cgiparams{'PROTOCOL'},"dst");\r
+                       if ($errormessage) { goto EXITSUB; }\r
+               }\r
+       }\r
+       \r
+\r
+EXITSUB:\r
+       return;\r
+}\r
+\r
+# Darren Critchley - Duplicate or overlapping Port range check\r
+sub portchecks\r
+{\r
+       $_ = $_[0];\r
+       our ($prtrange1, $prtrange2);\r
+       if (m/:/ && $prtrange1 == 1) { # comparing two port ranges\r
+               unless (&checkportoverlap($cgiparams{'SRC_PORT'},$_[0])) {\r
+                       $errormessage = "$Lang::tr{'source port overlaps'} $_[0]";\r
+               }\r
+       }\r
+       if (m/:/ && $prtrange1 == 0 && $errormessage eq '') { # compare one port to a range\r
+               unless (&checkportinc($cgiparams{'SRC_PORT'}, $_[0])) {\r
+                       $errormessage = "$Lang::tr{'srcprt within existing'} $_[0]";\r
+               }\r
+       }\r
+       if (! m/:/ && $prtrange1 == 1 && $errormessage eq '') { # compare one port to a range\r
+               unless (&checkportinc($_[0], $cgiparams{'SRC_PORT'})) {\r
+                       $errormessage = "$Lang::tr{'srcprt range overlaps'} $_[0]";\r
+               }\r
+       }\r
+\r
+       if ($errormessage eq ''){\r
+               $_ = $_[1];\r
+               if (m/:/ && $prtrange2 == 1) { # if true then there is a port range\r
+                       unless (&checkportoverlap($cgiparams{'DEST_PORT'},$_[1])) {\r
+                               $errormessage = "$Lang::tr{'destination port overlaps'} $_[1]";\r
+                       }\r
+               }\r
+               if (m/:/ && $prtrange2 == 0 && $errormessage eq '') { # compare one port to a range\r
+                       unless (&checkportinc($cgiparams{'DEST_PORT'}, $_[1])) {\r
+                               $errormessage = "$Lang::tr{'dstprt within existing'} $_[1]";\r
+                       }\r
+               }\r
+               if (! m/:/ && $prtrange2 == 1 && $errormessage eq '') { # compare one port to a range\r
+                       unless (&checkportinc($_[1], $cgiparams{'DEST_PORT'})) {\r
+                               $errormessage = "$Lang::tr{'dstprt range overlaps'} $_[1]";\r
+                       }\r
+               }\r
+       }\r
+       return;\r
+}\r
diff --git a/html/cgi-bin/pppsetup.cgi b/html/cgi-bin/pppsetup.cgi
new file mode 100644 (file)
index 0000000..62c3e5d
--- /dev/null
@@ -0,0 +1,1205 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# Copyright (C) 03-Apr-2002 Guy Ellis <guy@traverse.com.au>\r
+#              - ISDN DOV support\r
+#              - ibod now an option\r
+#             - PCI ADSL support added\r
+#\r
+# $Id: pppsetup.cgi,v 1.17.2.49 2005/12/01 16:20:35 franck78 Exp $\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+our %pppsettings=();\r
+my %temppppsettings=();\r
+our %modemsettings=();\r
+our %isdnsettings=();\r
+our %netsettings=();\r
+my %selected=();\r
+my %checked=();\r
+my @profilenames=();\r
+my $errormessage = '';\r
+my $maxprofiles = 5;\r
+my $kernel=`/bin/uname -r | /usr/bin/tr -d '\012'`;\r
+\r
+&Header::showhttpheaders();\r
+\r
+$pppsettings{'ACTION'} = '';\r
+&initprofile();\r
+&Header::getcgihash(\%pppsettings);\r
+\r
+if ($pppsettings{'ACTION'} ne '' &&\r
+       (-e '/var/run/ppp-ipcop.pid' || -e "${General::swroot}/red/active"))\r
+{\r
+       $errormessage = $Lang::tr{'unable to alter profiles while red is active'};\r
+       # read in the current vars\r
+       %pppsettings = ();\r
+       $pppsettings{'VALID'} = '';\r
+       &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);\r
+}\r
+elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'})\r
+{\r
+       unless ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn|pppoe|pptp|alcatelusb|alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|fritzdsl|bewanadsl|eagleusbadsl)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ERROR; }\r
+       my $type = $pppsettings{'TYPE'};\r
+       &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);\r
+       $pppsettings{'TYPE'} = $type;\r
+}\r
+elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})\r
+{\r
+       if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'COMPORT'} !~ /^(ttyS0|ttyS1|ttyS2|ttyS3|ttyS4|usb\/ttyACM0|usb\/ttyACM1|usb\/ttyACM2|usb\/ttyACM3|isdn1|isdn2)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ERROR; }\r
+       if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'DTERATE'} !~ /^(9600|19200|38400|57600|115200|230400)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ERROR; }\r
+       if ($pppsettings{'TYPE'} eq 'modem' && $pppsettings{'DIALMODE'} !~ /^(T|P)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ERROR; }\r
+       if ($pppsettings{'AUTH'} !~ /^(pap-or-chap|pap|chap|standard-login-script|demon-login-script|other-login-script)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ERROR;\r
+       }\r
+\r
+       if ($pppsettings{'PROFILENAME'} eq '') {\r
+               $errormessage = $Lang::tr{'profile name not given'};\r
+               $pppsettings{'PROFILENAME'} = '';\r
+               goto ERROR; }\r
+       if ($pppsettings{'TYPE'} =~ /^(modem|isdn)$/) {\r
+               if ($pppsettings{'TELEPHONE'} eq '') {\r
+                       $errormessage = $Lang::tr{'telephone not set'}; \r
+                       goto ERROR; }\r
+               if (!($pppsettings{'TELEPHONE'} =~ /^[\d\*\#\,]+$/)) {\r
+                       $errormessage = $Lang::tr{'bad characters in the telephone number field'};\r
+                       goto ERROR; }\r
+       }\r
+       unless (($pppsettings{'PROTOCOL'} eq 'RFC1483' && $pppsettings{'METHOD'} =~ /^(STATIC|DHCP)$/)) {\r
+               if ($pppsettings{'USERNAME'} eq '') {\r
+                       $errormessage = $Lang::tr{'username not set'}; \r
+                       goto ERROR; }\r
+               if ($pppsettings{'PASSWORD'} eq '') {\r
+                       $errormessage = $Lang::tr{'password not set'};\r
+                       goto ERROR; }\r
+       }\r
+\r
+       if ($pppsettings{'TIMEOUT'} eq '') {\r
+               $errormessage = $Lang::tr{'idle timeout not set'};\r
+               goto ERROR; }\r
+       if (!($pppsettings{'TIMEOUT'} =~ /^\d+$/)) {\r
+               $errormessage = $Lang::tr{'only digits allowed in the idle timeout'};\r
+               goto ERROR; }\r
+\r
+       if ($pppsettings{'LOGINSCRIPT'} =~ /[.\/ ]/ ) {\r
+               $errormessage = $Lang::tr{'bad characters in script field'}; \r
+               goto ERROR; }\r
+\r
+       if ($pppsettings{'DNS1'})\r
+       {\r
+               if (!(&General::validip($pppsettings{'DNS1'}))) {\r
+                       $errormessage = $Lang::tr{'invalid primary dns'};\r
+                       goto ERROR;  }\r
+       }\r
+       if ($pppsettings{'DNS2'})\r
+       {\r
+               if (!(&General::validip($pppsettings{'DNS2'}))) {\r
+                       $errormessage = $Lang::tr{'invalid secondary dns'};\r
+                       goto ERROR; }\r
+       }\r
+\r
+       if ($pppsettings{'MAXRETRIES'} eq '') {\r
+               $errormessage = $Lang::tr{'max retries not set'};\r
+               goto ERROR; }\r
+       if (!($pppsettings{'MAXRETRIES'} =~ /^\d+$/)) {\r
+               $errormessage = $Lang::tr{'only digits allowed in max retries field'};\r
+               goto ERROR; }\r
+\r
+       if (!($pppsettings{'HOLDOFF'} =~ /^\d+$/)) {\r
+               $errormessage = $Lang::tr{'only digits allowed in holdoff field'};\r
+               goto ERROR; }\r
+\r
+       my $drivererror = 0;\r
+       if ($pppsettings{'TYPE'} =~ /^(alcatelusb|alcatelusbk)$/) {\r
+               my $modem = '';\r
+               my $speedtouch = &Header::speedtouchversion;\r
+               if ($speedtouch >=0 && $speedtouch <=4) {\r
+                       if ($speedtouch ==4) { $modem='v4_b'; } else { $modem='v0123'; }\r
+                       $pppsettings{'MODEM'} = $modem;\r
+               } else {\r
+                       $modem='v0123';\r
+                       $errormessage ="$Lang::tr{'unknown'} Rev $speedtouch";\r
+                       goto ERROR;\r
+               }\r
+               if (! -e "${General::swroot}/alcatelusb/firmware.$modem.bin") {\r
+                       $errormessage = $Lang::tr{'no alcatelusb firmware'};\r
+                       $drivererror = 1;\r
+                       goto ERROR;\r
+               }\r
+       }\r
+\r
+       if($pppsettings{'TYPE'} eq 'eciadsl' && (!(-e "${General::swroot}/eciadsl/synch.bin"))) {\r
+               $errormessage = $Lang::tr{'no eciadsl synch.bin file'};\r
+               $drivererror = 1;\r
+               goto ERROR; }\r
+\r
+       if($pppsettings{'TYPE'} eq 'fritzdsl' && (!(-e "/lib/modules/$kernel/misc/fcdslusb.o.gz"))) {\r
+               $errormessage = $Lang::tr{'no fritzdsl driver'};\r
+               $drivererror = 1;\r
+               goto ERROR; }\r
+\r
+       if( $pppsettings{'USEIBOD'} eq 'on' && $pppsettings{'COMPORT'} eq 'isdn1') {\r
+               $errormessage = $Lang::tr{'ibod for dual isdn only'};\r
+               goto ERROR; }\r
+\r
+       if ($pppsettings{'TYPE'} eq 'pptp') {\r
+               $errormessage = '';\r
+               if ($pppsettings{'METHOD'} eq 'STATIC') {\r
+                       if (! &General::validip($pppsettings{'ROUTERIP'})) {\r
+                               $errormessage = $Lang::tr{'router ip'}.' '.$Lang::tr{'invalid ip'};\r
+                       }\r
+               } else {\r
+                       if (($pppsettings{'DHCP_HOSTNAME'} ne '') && (! &General::validfqdn($pppsettings{'DHCP_HOSTNAME'})) ) {\r
+                               $errormessage = $errormessage.' '.$Lang::tr{'hostname'}.' '.$Lang::tr{'invalid hostname'};\r
+                       }\r
+               }\r
+               if ($errormessage ne '') {goto ERROR; }\r
+       }\r
+\r
+       if ($pppsettings{'TYPE'} =~ /^(alcatelusb|alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|fritzdsl|bewanadsl|eagleusbadsl)$/) {\r
+               if ( ($pppsettings{'VPI'} eq '') || ($pppsettings{'VCI'} eq '') ) {\r
+                       $errormessage = $Lang::tr{'invalid vpi vpci'};\r
+                       goto ERROR; }\r
+               if ( (!($pppsettings{'VPI'} =~ /^\d+$/)) || (!($pppsettings{'VCI'} =~ /^\d+$/)) ) {\r
+                       $errormessage = $Lang::tr{'invalid vpi vpci'};\r
+                       goto ERROR; }\r
+               if (($pppsettings{'VPI'} eq '0') && ($pppsettings{'VCI'} eq '0')) {\r
+                       $errormessage = $Lang::tr{'invalid vpi vpci'};\r
+                       goto ERROR; }\r
+               if ( $pppsettings{'PROTOCOL'} eq '' ) {\r
+                       $errormessage = $Lang::tr{'invalid input'};\r
+                       goto ERROR; }\r
+       }\r
+\r
+       if ( ($pppsettings{'PROTOCOL'} eq 'RFC1483') && ($pppsettings{'METHOD'} eq '') && \\r
+               ($pppsettings{'TYPE'} !~ /^(alcatelusb|fritzdsl)$/)) {\r
+                       $errormessage = $Lang::tr{'invalid input'};\r
+                       goto ERROR; }\r
+\r
+       if (($pppsettings{'PROTOCOL'} eq 'RFC1483' && $pppsettings{'METHOD'} eq 'DHCP')) {\r
+               if ($pppsettings{'DHCP_HOSTNAME'} ne '') {\r
+                       if (! &General::validfqdn($pppsettings{'DHCP_HOSTNAME'})) {\r
+                               $errormessage = $errormessage.' '.$Lang::tr{'hostname'}.': '.$Lang::tr{'invalid hostname'}; }\r
+               }\r
+       }\r
+\r
+       if (($pppsettings{'PROTOCOL'} eq 'RFC1483' && $pppsettings{'METHOD'} eq 'STATIC')) {\r
+               $errormessage = '';\r
+               if (! &General::validip($pppsettings{'IP'})) {\r
+                       $errormessage = $Lang::tr{'static ip'}.' '.$Lang::tr{'invalid ip'}; }\r
+               if (! &General::validip($pppsettings{'GATEWAY'})) {\r
+                       $errormessage = $errormessage.' '.$Lang::tr{'gateway ip'}.' '.$Lang::tr{'invalid ip'}; }\r
+               if (! &General::validmask($pppsettings{'NETMASK'})) {\r
+                       $errormessage = $errormessage.' '.$Lang::tr{'netmask'}.' '.$Lang::tr{'invalid netmask'}; }\r
+               if ($pppsettings{'BROADCAST'} ne '') {\r
+                       if (! &General::validip($pppsettings{'BROADCAST'})) {\r
+                                $errormessage = $errormessage.' '.$Lang::tr{'broadcast'}.' '.$Lang::tr{'invalid broadcast ip'}; }\r
+               }\r
+               if( $pppsettings{'DNS'} eq 'Automatic') {\r
+                       $errormessage = $Lang::tr{'invalid input'}; }\r
+               if ($errormessage ne '') {goto ERROR; }\r
+       }\r
+\r
+       if( $pppsettings{'PROTOCOL'} eq 'RFC1483' && $pppsettings{'METHOD'} ne 'PPPOE'  && \\r
+               $pppsettings{'RECONNECTION'} eq 'dialondemand' ) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ERROR; }\r
+\r
+       if( $pppsettings{'RECONNECTION'} eq 'dialondemand' && `/bin/cat ${General::swroot}/ddns/config` =~ /,on$/m ) {\r
+               $errormessage = $Lang::tr{'dod not compatible with ddns'};\r
+               goto ERROR; }\r
+\r
+       if ( ($pppsettings{'TYPE'} =~ /^(bewanadsl)$/) && $pppsettings{'MODEM'} eq '') {\r
+               $errormessage = $Lang::tr{'no modem selected'};\r
+               goto ERROR; }\r
+\r
+       if( $pppsettings{'PROTOCOL'} eq 'RFC1483') {\r
+               $pppsettings{'ENCAP'} = $pppsettings{'ENCAP_RFC1483'}; }\r
+       if( $pppsettings{'PROTOCOL'} eq 'RFC2364') {\r
+               $pppsettings{'ENCAP'} = $pppsettings{'ENCAP_RFC2364'}; }\r
+       delete $pppsettings{'ENCAP_RFC1483'};\r
+       delete $pppsettings{'ENCAP_RFC2364'};\r
+\r
+ERROR:\r
+       if ($errormessage) {\r
+               $pppsettings{'VALID'} = 'no'; }\r
+       else {\r
+               $pppsettings{'VALID'} = 'yes'; }\r
+\r
+       # write cgi vars to the file.\r
+       &General::writehash("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}",\r
+               \%pppsettings);\r
+\r
+       # make link and write secret file.\r
+       &updatesettings();\r
+       &writesecrets();\r
+\r
+       &General::log("$Lang::tr{'profile saved'} $pppsettings{'PROFILENAME'}");\r
+       if ($drivererror) {\r
+       my $refresh = "<META HTTP-EQUIV='refresh' CONTENT='1; URL=/cgi-bin/upload.cgi'>";\r
+               my $title = $Lang::tr{'upload'};\r
+               &Header::openpage($title, 0, $refresh);\r
+       }\r
+}\r
+elsif ($pppsettings{'ACTION'} eq $Lang::tr{'select'})\r
+{\r
+       my $profile = $pppsettings{'PROFILE'};\r
+       %temppppsettings = ();\r
+       $temppppsettings{'PROFILE'} = '';\r
+       &General::readhash("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}",\r
+               \%temppppsettings);\r
+\r
+       # make link.\r
+       &updatesettings(); \r
+\r
+       # read in the new params "early" so we can write secrets.\r
+       %pppsettings = ();\r
+       &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);\r
+       $pppsettings{'PROFILE'} = $profile;\r
+       &General::writehash("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}",\r
+               \%pppsettings);\r
+\r
+       &writesecrets();\r
+\r
+       &General::log("$Lang::tr{'profile made current'} $pppsettings{'PROFILENAME'}"); \r
+}\r
+elsif ($pppsettings{'ACTION'} eq $Lang::tr{'delete'})\r
+{\r
+       &General::log("$Lang::tr{'profile deleted'} $pppsettings{'PROFILENAME'}");\r
+\r
+       my $profile = $pppsettings{'PROFILE'};\r
+       truncate ("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}", 0);\r
+       \r
+       %temppppsettings = ();\r
+       $temppppsettings{'PROFILE'} = '';\r
+       &General::readhash("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}",\r
+               \%temppppsettings);\r
+\r
+       # make link.\r
+       &updatesettings(); \r
+\r
+       # read in the new params "early" so we can write secrets.\r
+       %pppsettings = ();\r
+       &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);\r
+       $pppsettings{'PROFILE'} = $profile;\r
+       &initprofile;\r
+       &General::writehash("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}",\r
+               \%pppsettings);\r
+}\r
+else\r
+{\r
+       # read in the current vars\r
+       %pppsettings = ();\r
+       $pppsettings{'VALID'} = '';\r
+       &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);\r
+}\r
+\r
+# read in the profile names into @profilenames.\r
+my $c=0;\r
+for ($c = 1; $c <= $maxprofiles; $c++)\r
+{\r
+       %temppppsettings = ();\r
+       $temppppsettings{'PROFILENAME'} = $Lang::tr{'empty'};\r
+       &General::readhash("${General::swroot}/ppp/settings-$c", \%temppppsettings);\r
+       $profilenames[$c] = $temppppsettings{'PROFILENAME'};\r
+}\r
+\r
+if ($pppsettings{'VALID'} eq '')\r
+{\r
+       if ($pppsettings{'PROFILE'} eq '') {\r
+               $pppsettings{'PROFILE'} = '1';\r
+               &initprofile();\r
+       }\r
+}\r
+for ($c = 1; $c <= $maxprofiles; $c++) {\r
+       $selected{'PROFILE'}{$c} = ''; }\r
+$selected{'PROFILE'}{$pppsettings{'PROFILE'}} = "selected='selected'";\r
+for ($c = 1; $c <= $maxprofiles; $c++) {\r
+       $selected{'BACKUPPROFILE'}{$c} = ''; }\r
+$selected{'BACKUPPROFILE'}{$pppsettings{'BACKUPPROFILE'}} = "selected='selected'";\r
+\r
+$selected{'TYPE'}{'modem'} = '';\r
+$selected{'TYPE'}{'serial'} = '';\r
+$selected{'TYPE'}{'isdn'} = '';\r
+$selected{'TYPE'}{'pppoe'} = '';\r
+$selected{'TYPE'}{'pptp'} = '';\r
+$selected{'TYPE'}{'alcatelusb'} = '';\r
+$selected{'TYPE'}{'alcatelusbk'} = '';\r
+$selected{'TYPE'}{'pulsardsl'} = '';\r
+$selected{'TYPE'}{'eciadsl'} = '';\r
+$selected{'TYPE'}{'fritzdsl'} = '';\r
+$selected{'TYPE'}{'bewanadsl'} = '';\r
+$selected{'TYPE'}{'eagleusbadsl'} = '';\r
+$selected{'TYPE'}{'conexantusbadsl'} = '';\r
+$selected{'TYPE'}{'conexantpciadsl'} = '';\r
+$selected{'TYPE'}{'amedynusbadsl'} = '';\r
+$selected{'TYPE'}{'3cp4218usbadsl'} = '';\r
+$selected{'TYPE'}{$pppsettings{'TYPE'}} = "selected='selected'";\r
+\r
+$checked{'DEBUG'}{'off'} = '';\r
+$checked{'DEBUG'}{'on'} = '';\r
+$checked{'DEBUG'}{$pppsettings{'DEBUG'}} = "checked='checked'";\r
+\r
+$selected{'COMPORT'}{'ttyS0'} = '';\r
+$selected{'COMPORT'}{'ttyS1'} = '';\r
+$selected{'COMPORT'}{'ttyS2'} = '';\r
+$selected{'COMPORT'}{'ttyS3'} = '';\r
+$selected{'COMPORT'}{'ttyS4'} = '';\r
+$selected{'COMPORT'}{'usb/ttyACM0'} = '';\r
+$selected{'COMPORT'}{'usb/ttyACM1'} = '';\r
+$selected{'COMPORT'}{'usb/ttyACM2'} = '';\r
+$selected{'COMPORT'}{'usb/ttyACM3'} = '';\r
+$selected{'COMPORT'}{'isdn1'} = '';\r
+$selected{'COMPORT'}{'isdn2'} = '';\r
+$selected{'COMPORT'}{$pppsettings{'COMPORT'}} = "selected='selected'";\r
+\r
+$selected{'DTERATE'}{'9600'} = '';\r
+$selected{'DTERATE'}{'19200'} = '';\r
+$selected{'DTERATE'}{'38400'} = '';\r
+$selected{'DTERATE'}{'57600'} = '';\r
+$selected{'DTERATE'}{'115200'} = '';\r
+$selected{'DTERATE'}{'230400'} = '';\r
+$selected{'DTERATE'}{$pppsettings{'DTERATE'}} = "selected='selected'";\r
+\r
+$checked{'SPEAKER'}{'off'} = '';\r
+$checked{'SPEAKER'}{'on'} = '';\r
+$checked{'SPEAKER'}{$pppsettings{'SPEAKER'}} = "checked='checked'";\r
+\r
+$selected{'DIALMODE'}{'T'} = '';\r
+$selected{'DIALMODE'}{'P'} = '';\r
+$selected{'DIALMODE'}{$pppsettings{'DIALMODE'}} = "selected='selected'";\r
+\r
+$checked{'RECONNECTION'}{'manual'} = '';\r
+$checked{'RECONNECTION'}{'persistent'} = '';\r
+$checked{'RECONNECTION'}{'dialondemand'} = '';\r
+$checked{'RECONNECTION'}{$pppsettings{'RECONNECTION'}} = "checked='checked'";\r
+\r
+$checked{'DIALONDEMANDDNS'}{'off'} = '';\r
+$checked{'DIALONDEMANDDNS'}{'on'} = '';\r
+$checked{'DIALONDEMANDDNS'}{$pppsettings{'DIALONDEMANDDNS'}} = "checked='checked'";\r
+\r
+$checked{'AUTOCONNECT'}{'off'} = '';\r
+$checked{'AUTOCONNECT'}{'on'} = ''; \r
+$checked{'AUTOCONNECT'}{$pppsettings{'AUTOCONNECT'}} = "checked='checked'";\r
+\r
+$checked{'SENDCR'}{'off'} = '';\r
+$checked{'SENDCR'}{'on'} = '';\r
+$checked{'SENDCR'}{$pppsettings{'SENDCR'}} = "checked='checked'";\r
+$checked{'USEDOV'}{'off'} = '';\r
+$checked{'USEDOV'}{'on'} = '';\r
+$checked{'USEDOV'}{$pppsettings{'USEDOV'}} = "checked='checked'";\r
+$checked{'USEIBOD'}{'off'} = '';\r
+$checked{'USEIBOD'}{'on'} = '';\r
+$checked{'USEIBOD'}{$pppsettings{'USEIBOD'}} = "checked='checked'";\r
+\r
+$checked{'MODEM'}{'PCIST'} = '';\r
+$checked{'MODEM'}{'USB'} = '';\r
+$checked{'MODEM'}{$pppsettings{'MODEM'}} = "checked='checked'";\r
+\r
+$selected{'LINE'}{'WO'} = '';\r
+$selected{'LINE'}{'ES'} = '';\r
+$selected{'LINE'}{'ES03'} = '';\r
+$selected{'LINE'}{'FR'} = '';\r
+$selected{'LINE'}{'FR04'} = '';\r
+$selected{'LINE'}{'FR10'} = '';\r
+$selected{'LINE'}{'IT'} = '';\r
+$selected{'LINE'}{$pppsettings{'LINE'}} = "selected='selected'";\r
+\r
+$checked{'MODULATION'}{'GDMT'} = '';\r
+$checked{'MODULATION'}{'ANSI'} = '';\r
+$checked{'MODULATION'}{'GLITE'} = '';\r
+$checked{'MODULATION'}{'AUTO'} = '';\r
+$checked{'MODULATION'}{$pppsettings{'MODULATION'}} = "checked='checked'";\r
+\r
+$checked{'PROTOCOL'}{'RFC1483'} = '';\r
+$checked{'PROTOCOL'}{'RFC2364'} = '';\r
+$checked{'PROTOCOL'}{$pppsettings{'PROTOCOL'}} = "checked='checked'";\r
+\r
+$selected{'ENCAP'}{'0'} = '';\r
+$selected{'ENCAP'}{'1'} = '';\r
+$selected{'ENCAP'}{'2'} = '';\r
+$selected{'ENCAP'}{'3'} = '';\r
+$selected{'ENCAP'}{'4'} = '';\r
+$selected{'ENCAP'}{$pppsettings{'ENCAP'}} = "selected='selected'";\r
+$checked{'METHOD'}{'STATIC'} = '';\r
+$checked{'METHOD'}{'PPPOE'} = '';\r
+$checked{'METHOD'}{'PPPOE_PLUGIN'} = '';\r
+$checked{'METHOD'}{'DHCP'} = '';\r
+$checked{'METHOD'}{$pppsettings{'METHOD'}} = "checked='checked'";\r
+\r
+$selected{'AUTH'}{'pap-or-chap'} = '';\r
+$selected{'AUTH'}{'pap'} = '';\r
+$selected{'AUTH'}{'chap'} = '';\r
+$selected{'AUTH'}{'standard-login-script'} = '';\r
+$selected{'AUTH'}{'demon-login-script'} = '';\r
+$selected{'AUTH'}{'other-login-script'} = '';\r
+$selected{'AUTH'}{$pppsettings{'AUTH'}} = "selected='selected'";\r
+\r
+$checked{'DNS'}{'Automatic'} = '';\r
+$checked{'DNS'}{'Manual'} = '';\r
+$checked{'DNS'}{$pppsettings{'DNS'}} = "checked='checked'";\r
+\r
+&Header::openpage($Lang::tr{'ppp setup'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<CLASS name='base'>$errormessage\n";\r
+       print "&nbsp;</CLASS>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+\r
+###\r
+### Box for selecting profile\r
+###\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+&Header::openbox('100%', 'left', $Lang::tr{'profiles'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td align='right'>$Lang::tr{'profile'}:</td>\r
+       <td>\r
+       <select name='PROFILE'>\r
+END\r
+;\r
+for ($c = 1; $c <= $maxprofiles; $c++)\r
+{\r
+       print "\t<option value='$c' $selected{'PROFILE'}{$c}>$c. $profilenames[$c]</option>\n";\r
+}\r
+print <<END\r
+       </select></td>\r
+       <td><input type='submit' name='ACTION' value='$Lang::tr{'select'}' /></td>\r
+       <td><input type='submit' name='ACTION' value='$Lang::tr{'delete'}' /></td>\r
+       <td width='30%'><input type='submit' name='ACTION' value='$Lang::tr{'restore'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+&Header::openbox('100%', 'left', $Lang::tr{'connection'}.':');\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td align='right'>$Lang::tr{'interface'}:</td>\r
+       <td>\r
+       <select name='TYPE'>\r
+       <option value='modem' $selected{'TYPE'}{'modem'}>$Lang::tr{'modem'}</option>\r
+       <option value='serial' $selected{'TYPE'}{'serial'}>$Lang::tr{'serial'}</option>\r
+END\r
+;\r
+if ($isdnsettings{'ENABLED'} eq 'on') {\r
+       print "\t<option value='isdn' $selected{'TYPE'}{'isdn'}>$Lang::tr{'isdn'}</option>\n";\r
+}\r
+if ($netsettings{'RED_TYPE'} eq 'PPPOE') {\r
+       print "\t<option value='pppoe' $selected{'TYPE'}{'pppoe'}>PPPoE</option>\n";\r
+}\r
+if ($netsettings{'RED_TYPE'} eq 'PPTP') {\r
+       print "\t<option value='pptp' $selected{'TYPE'}{'pptp'}>PPTP</option>\n";\r
+}\r
+if (-f "/proc/bus/usb/devices") {\r
+       print <<END\r
+       <option value='eciadsl' $selected{'TYPE'}{'eciadsl'}>ECI USB ADSL</option>\r
+       <option value='eagleusbadsl' $selected{'TYPE'}{'eagleusbadsl'}>Eagle USB ADSL (Acer Allied-Telesyn Comtrend D-Link Sagem USR)</option>\r
+       <option value='conexantusbadsl' $selected{'TYPE'}{'conexantusbadsl'}>Conexant USB(Aetra Amigo Draytek Etec Mac Olitec Vitelcom Zoom)</option>\r
+       <option value='amedynusbadsl' $selected{'TYPE'}{'amedynusbadsl'}>Zyxel 630-11 / Asus AAM6000UG USB ADSL</option>\r
+       <option value='3cp4218usbadsl' $selected{'TYPE'}{'3cp4218usbadsl'}>3Com USB AccessRunner</option>\r
+       <option value='alcatelusb' $selected{'TYPE'}{'alcatelusb'}>Speedtouch USB ADSL user mode driver</option>\r
+       <option value='alcatelusbk' $selected{'TYPE'}{'alcatelusbk'}>Speedtouch USB ADSL kernel mode driver</option>\r
+END\r
+;\r
+}\r
+       print <<END\r
+       <option value='fritzdsl' $selected{'TYPE'}{'fritzdsl'}>Fritz!DSL</option>\r
+       <option value='pulsardsl' $selected{'TYPE'}{'pulsardsl'}>Pulsar ADSL</option>\r
+       <option value='bewanadsl' $selected{'TYPE'}{'bewanadsl'}>Bewan ADSL PCI st/USB st</option>\r
+       <option value='conexantpciadsl' $selected{'TYPE'}{'conexantpciadsl'}>Conexant PCI ADSL</option>\r
+       </select></td>\r
+       <td width='50%'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' /></td>\r
+       </tr>\r
+       <tr>\r
+       <td align='right'>USB:</td>\r
+END\r
+;\r
+if (-f "/proc/bus/usb/devices") {\r
+       my $usb=`lsmod | cut -d ' ' -f1 | grep -E "hci"`;\r
+       if ($usb eq '') {\r
+               print "\t<td>$Lang::tr{'not running'}</td></tr>\n";\r
+       } else {\r
+               print "\t<td>$usb</td></tr>\n";\r
+       }\r
+}\r
+\r
+if ($pppsettings{'TYPE'}) {\r
+       print "</table><table width='100%'>";\r
+       if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/) {\r
+               print <<END\r
+<tr>\r
+       <td align='right'>$Lang::tr{'interface'}:</td>\r
+       <td><select name='COMPORT'>\r
+END\r
+;\r
+               if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ ) {\r
+                       print <<END\r
+               <option value='ttyS0' $selected{'COMPORT'}{'ttyS0'}>$Lang::tr{'modem on com1'}</option>\r
+               <option value='ttyS1' $selected{'COMPORT'}{'ttyS1'}>$Lang::tr{'modem on com2'}</option>\r
+               <option value='ttyS2' $selected{'COMPORT'}{'ttyS2'}>$Lang::tr{'modem on com3'}</option>\r
+               <option value='ttyS3' $selected{'COMPORT'}{'ttyS3'}>$Lang::tr{'modem on com4'}</option>\r
+               <option value='ttyS4' $selected{'COMPORT'}{'ttyS4'}>$Lang::tr{'modem on com5'}</option>\r
+               <option value='usb/ttyACM0' $selected{'COMPORT'}{'usb/ttyACM0'}>$Lang::tr{'usb modem on acm0'}</option>\r
+               <option value='usb/ttyACM1' $selected{'COMPORT'}{'usb/ttyACM1'}>$Lang::tr{'usb modem on acm1'}</option>\r
+               <option value='usb/ttyACM2' $selected{'COMPORT'}{'usb/ttyACM2'}>$Lang::tr{'usb modem on acm2'}</option>\r
+               <option value='usb/ttyACM3' $selected{'COMPORT'}{'usb/ttyACM3'}>$Lang::tr{'usb modem on acm3'}</option>\r
+       </select></td>\r
+END\r
+;\r
+               } elsif ($pppsettings{'TYPE'} eq 'isdn') {\r
+                       print <<END\r
+               <option value='isdn1' $selected{'COMPORT'}{'isdn1'}>$Lang::tr{'isdn1'}</option>\r
+               <option value='isdn2' $selected{'COMPORT'}{'isdn2'}>$Lang::tr{'isdn2'}</option>\r
+       </select></td>\r
+END\r
+;\r
+               }\r
+               if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ ) {\r
+                       print <<END\r
+       <td align='right'>$Lang::tr{'computer to modem rate'}</td>\r
+       <td><select name='DTERATE'>\r
+               <option value='9600' $selected{'DTERATE'}{'9600'}>9600</option>\r
+               <option value='19200' $selected{'DTERATE'}{'19200'}>19200</option>\r
+               <option value='38400' $selected{'DTERATE'}{'38400'}>38400</option>\r
+               <option value='57600' $selected{'DTERATE'}{'57600'}>57600</option>\r
+               <option value='115200' $selected{'DTERATE'}{'115200'}>115200</option>\r
+               <option value='230400' $selected{'DTERATE'}{'230400'}>230400</option>\r
+       </select></td>\r
+</tr>\r
+END\r
+;\r
+               } else {\r
+                       print "<td colspan='2'>&nbsp;</td></tr>\n";\r
+               }\r
+               if ($pppsettings{'TYPE'} =~ /^(modem|isdn)$/ ) {\r
+                       print "<tr><td align='right'>$Lang::tr{'number'}</td>\n";\r
+                       print "<td><input type='text' name='TELEPHONE' value='$pppsettings{'TELEPHONE'}' /></td>\n";\r
+                       if ($pppsettings{'TYPE'} eq 'modem' ) {\r
+                               print "<td align='right'>$Lang::tr{'modem speaker on'}</td>\n";\r
+                               print "<td><input type='checkbox' name='SPEAKER' $checked{'SPEAKER'}{'on'} /></td></tr>\n";\r
+                       } else {\r
+                               print "<td colspan='2'>&nbsp;</td></tr>\n";\r
+                       }\r
+               }\r
+       }\r
+       if ($pppsettings{'TYPE'} eq 'modem') {\r
+               print <<END\r
+<tr>\r
+       <td align='right'>$Lang::tr{'dialing mode'}</td>\r
+       <td><select name='DIALMODE'>\r
+               <option value='T' $selected{'DIALMODE'}{'T'}>$Lang::tr{'tone'}</option>\r
+               <option value='P' $selected{'DIALMODE'}{'P'}>$Lang::tr{'pulse'}</option>\r
+       </select></td>\r
+       <td align='right'>$Lang::tr{'send cr'}</td>\r
+       <td><input type='checkbox' name='SENDCR' $checked{'SENDCR'}{'on'} /></td>\r
+</tr>\r
+END\r
+; \r
+}\r
+\r
+print <<END\r
+<tr>\r
+       <td align='right'>$Lang::tr{'idle timeout'}</td>\r
+       <td><input type='text' size='5' name='TIMEOUT' value='$pppsettings{'TIMEOUT'}' /></td>\r
+       <td colspan='2'>&nbsp;</td>\r
+</tr>\r
+END\r
+;\r
+       if ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && ( $netsettings{'RED_TYPE'} eq "DHCP" || $netsettings{'RED_TYPE'} eq "STATIC") ) {\r
+               $pppsettings{'AUTOCONNECT'} = 'on';\r
+               print "<tr><td align='right'>$Lang::tr{'connect on ipcop restart'}</td>\n";\r
+               print "<td><input type='checkbox' disabled='disabled' name='AUTOCONNECT' value='on' $checked{'AUTOCONNECT'}{'on'} /></td>\n";\r
+       } else {\r
+               print "<tr><td align='right'>$Lang::tr{'connect on ipcop restart'}</td>\n";\r
+               print "<td><input type='checkbox' name='AUTOCONNECT' value='on' $checked{'AUTOCONNECT'}{'on'} /></td>\n";\r
+       }\r
+print <<END\r
+       <td align='right'>$Lang::tr{'connection debugging'}:</td>\r
+       <td><input type='checkbox' name='DEBUG' $checked{'DEBUG'}{'on'} /></td>\r
+</tr>\r
+<tr>\r
+       <td colspan='5'><br /><hr /><b>$Lang::tr{'reconnection'}:</b></td>\r
+</tr>\r
+<tr>\r
+       <td colspan='4'>\r
+               <input type='radio' name='RECONNECTION' value='manual' $checked{'RECONNECTION'}{'manual'} />$Lang::tr{'manual'}</td>\r
+</tr>\r
+END\r
+;\r
+if ($pppsettings{'TYPE'} ne 'isdn') {\r
+print <<END\r
+<tr>\r
+       <td>\r
+               <input type='radio' name='RECONNECTION' value='persistent' $checked{'RECONNECTION'}{'persistent'} />$Lang::tr{'persistent'}</td>\r
+       <td colspan='2' align='right'>$Lang::tr{'backupprofile'}:</td>\r
+       <td>\r
+       <select name='BACKUPPROFILE'>\r
+END\r
+;\r
+       for ($c = 1; $c <= $maxprofiles; $c++) {\r
+               print "\t<option value='$c' $selected{'BACKUPPROFILE'}{$c}>$c. $profilenames[$c]</option>\n";\r
+       }\r
+       print <<END\r
+       </select></td>\r
+</tr>\r
+END\r
+;\r
+}\r
+print <<END\r
+<tr>\r
+       <td>\r
+               <input type='radio' name='RECONNECTION' value='dialondemand' $checked{'RECONNECTION'}{'dialondemand'} />$Lang::tr{'dod'}</td>\r
+       <td colspan='2' align='right'>$Lang::tr{'dod for dns'}</td>\r
+       <td><input type='checkbox' name='DIALONDEMANDDNS' $checked{'DIALONDEMANDDNS'}{'on'} /></td>\r
+\r
+</tr>\r
+<tr>\r
+       <td align='right'>$Lang::tr{'holdoff'}:</td>\r
+       <td><input type='text' size='5' name='HOLDOFF' value='$pppsettings{'HOLDOFF'}' /></td>\r
+       <td align='right'>$Lang::tr{'maximum retries'}</td>\r
+       <td><input type='text' size='5' name='MAXRETRIES' value='$pppsettings{'MAXRETRIES'}' /></td>\r
+</tr>\r
+END\r
+;\r
+\r
+if ($pppsettings{'TYPE'} eq 'isdn') {\r
+       print <<END\r
+</table>\r
+<table width='100%'>\r
+<tr>\r
+       <td colspan='5'><br /><hr /><b>$Lang::tr{'isdn settings'}</b></td>\r
+</tr>\r
+<tr>\r
+       <td align='right'>$Lang::tr{'use ibod'}</td>\r
+       <td><input type='checkbox' name='USEIBOD' $checked{'USEIBOD'}{'on'} /></td>\r
+       <td align='right'>$Lang::tr{'use dov'}</td>\r
+       <td><input type='checkbox' name='USEDOV' $checked{'USEDOV'}{'on'} /></td>\r
+</tr>\r
+END\r
+;\r
+}\r
+\r
+if ($pppsettings{'TYPE'} eq 'pptp')\r
+{\r
+print <<END\r
+</table>\r
+\r
+<table width='100%'>\r
+<tr>\r
+       <td colspan='5'><br /><hr /><b>$Lang::tr{'pptp settings'}</b></td>\r
+</tr>\r
+<tr>\r
+       <td colspan='2' align='right'>$Lang::tr{'phonebook entry'}</td>\r
+       <td><input type='text' name='PHONEBOOK' value='$pppsettings{'PHONEBOOK'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td><input type='radio' name='METHOD' value='STATIC' $checked{'METHOD'}{'STATIC'} />$Lang::tr{'static ip'}</td>\r
+       <td align='right'>$Lang::tr{'router ip'}</td>\r
+       <td><input type='text' name='ROUTERIP' value='$pppsettings{'ROUTERIP'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td colspan='3'><hr /></td>\r
+</tr>\r
+<tr>\r
+       <td><input type='radio' name='METHOD' value='DHCP' $checked{'METHOD'}{'DHCP'} />$Lang::tr{'dhcp mode'}</td>\r
+       <td align='right'>$Lang::tr{'hostname'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='DHCP_HOSTNAME' value='$pppsettings{'DHCP_HOSTNAME'}' /></td>\r
+</tr>\r
+END\r
+;\r
+}\r
+if ($pppsettings{'TYPE'} eq 'pppoe')\r
+{\r
+print <<END\r
+</table>\r
+<table width='100%'>\r
+<tr>\r
+       <td colspan='5'><br /><hr /><b>$Lang::tr{'pppoe settings'}</b></td>\r
+</tr>\r
+END\r
+;\r
+}\r
+if ($pppsettings{'TYPE'} =~ /^(alcatelusb|alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|fritzdsl|bewanadsl|eagleusbadsl)$/)\r
+{\r
+\r
+print <<END\r
+</table>\r
+<table width='100%'>\r
+<tr>\r
+       <td colspan='5'><br /><hr /><b>$Lang::tr{'adsl settings'}:</b></td>\r
+</tr>\r
+<tr>\r
+       <td nowrap='nowrap' align='right'>$Lang::tr{'vpi number'}</td>\r
+       <td><input type='text' size='5' name='VPI' value='$pppsettings{'VPI'}' /></td>\r
+       <td align='right'>$Lang::tr{'vci number'}</td>\r
+       <td colspan='2'><input type='text' size='5' name='VCI' value='$pppsettings{'VCI'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td colspan='4'><hr /></td>\r
+</tr>\r
+END\r
+;\r
+}\r
+if ($pppsettings{'TYPE'} eq 'bewanadsl')\r
+{\r
+print <<END\r
+<tr>\r
+       <td align='right'>$Lang::tr{'modem'}:</td>\r
+       <td colspan='2' nowrap='nowrap'>\r
+               <input type='radio' name='MODEM' value='PCIST' $checked{'MODEM'}{'PCIST'} />Bewan ADSL PCI st</td>\r
+       <td colspan='2'><input type='radio' name='MODEM' value='USB' $checked{'MODEM'}{'USB'} />Bewan ADSL USB st</td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td colspan='4'><hr /></td>\r
+</tr>\r
+END\r
+;\r
+}\r
+if ($pppsettings{'TYPE'} =~ /^(3cp4218usbadsl|bewanadsl)$/)\r
+{\r
+print <<END\r
+<tr>\r
+       <td align='right'>$Lang::tr{'modulation'}:</td>\r
+       <td><input type='radio' name='MODULATION' value='AUTO' $checked{'MODULATION'}{'AUTO'} />$Lang::tr{'automatic'}</td>\r
+       <td><input type='radio' name='MODULATION' value='ANSI' $checked{'MODULATION'}{'ANSI'} />ANSI T1.483</td>\r
+       <td><input type='radio' name='MODULATION' value='GDMT' $checked{'MODULATION'}{'GDMT'} />G.DMT</td>\r
+       <td><input type='radio' name='MODULATION' value='GLITE' $checked{'MODULATION'}{'GLITE'} />G.Lite</td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td colspan='4'><hr /></td>\r
+</tr>\r
+END\r
+;\r
+}\r
+\r
+if ($pppsettings{'TYPE'} eq 'eagleusbadsl')\r
+{\r
+print <<END\r
+<tr>\r
+       <td align='right'>$Lang::tr{'country'}:</td>\r
+       <td>\r
+       <select name='LINE'>\r
+       <option value='WO' $selected{'LINE'}{'WO'}>$Lang::tr{'other countries'}</option>\r
+       <option value='ES' $selected{'LINE'}{'ES'}>ESPANA</option>\r
+       <option value='ES03' $selected{'LINE'}{'ES03'}>ESPANA03</option>\r
+       <option value='FR' $selected{'LINE'}{'FR'}>FRANCE</option>\r
+       <option value='FR04' $selected{'LINE'}{'FR04'}>FRANCE04</option>\r
+       <option value='FR10' $selected{'LINE'}{'FR04'}>FRANCE10</option>\r
+       <option value='IT' $selected{'LINE'}{'IT'}>ITALIA</option>\r
+       </select></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td colspan='4'><hr /></td>\r
+</tr>\r
+END\r
+;\r
+}\r
+if ($pppsettings{'TYPE'} eq 'eciadsl')\r
+{\r
+print <<END\r
+<tr>\r
+       <td align='right'>$Lang::tr{'modem'}:</td>\r
+       <td colspan='5'>\r
+               <select name='MODEM'>\r
+END\r
+;\r
+               open (MODEMS, "/etc/eciadsl/modems.db") or die 'Unable to open modems database.';\r
+               while (my $line = <MODEMS>) {\r
+                       $line =~ /^([\S\ ]+).*$/;\r
+                       my $modem = $1;\r
+                       $modem =~ s/^\s*(.*?)\s*$/$1/;\r
+                       print "<option value='$modem'";\r
+                       if ($pppsettings{'MODEM'} =~ /$modem/) { print " selected";}\r
+                       print ">$modem</option>\n";\r
+               }\r
+               close (MODEMS);\r
+\r
+print <<END\r
+               </select>\r
+       </td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td colspan='4'><hr /></td>\r
+</tr>\r
+END\r
+;\r
+}\r
+if ($pppsettings{'TYPE'} =~ /^(alcatelusb|alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|fritzdsl|bewanadsl|eagleusbadsl)$/)\r
+{\r
+print <<END\r
+<tr>\r
+       <td valign='top' align='right'>$Lang::tr{'protocol'}:</td>\r
+       <td nowrap='nowrap'>\r
+               <input type='radio' name='PROTOCOL' value='RFC2364' $checked{'PROTOCOL'}{'RFC2364'} />RFC2364 PPPoA</td>\r
+END\r
+;\r
+}\r
+if ($pppsettings{'TYPE'} eq 'alcatelusb')\r
+{\r
+       print "<td colspan=3>&nbsp;</td></tr>";\r
+}\r
+\r
+if ($pppsettings{'TYPE'} =~ /^(alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|bewanadsl|eagleusbadsl|fritzdsl)$/)\r
+{\r
+print <<END\r
+       <td align='right'>$Lang::tr{'encapsulation'}:</td>\r
+       <td colspan='2' width='30%'>\r
+               <select name='ENCAP_RFC2364'>\r
+               <option value='0' $selected{'ENCAP'}{'0'}>VCmux</option>\r
+               <option value='1' $selected{'ENCAP'}{'1'}>LLC</option>\r
+               </select>\r
+       </td>\r
+</tr>\r
+END\r
+;\r
+}\r
+if ($pppsettings{'TYPE'} =~ /^(alcatelusb|alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|fritzdsl|bewanadsl|eagleusbadsl)$/)\r
+{\r
+print <<END\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td colspan='4'><hr /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td valign='top'>\r
+               <input type='radio' name='PROTOCOL' value='RFC1483' $checked{'PROTOCOL'}{'RFC1483'} />RFC 1483 / 2684</td>\r
+END\r
+;\r
+}\r
+if ($pppsettings{'TYPE'} eq 'alcatelusb')\r
+{\r
+       print "<td colspan='3'>&nbsp;</td></tr>";\r
+}\r
+\r
+if ($pppsettings{'TYPE'} =~ /^(alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|bewanadsl|eagleusbadsl|fritzdsl)$/)\r
+{\r
+       if ($pppsettings{'TYPE'} ne 'fritzdsl')\r
+       {\r
+print <<END\r
+       <td align='right'>$Lang::tr{'encapsulation'}:</td>\r
+       <td colspan='2'>\r
+               <select name='ENCAP_RFC1483'>\r
+               <option value='0' $selected{'ENCAP'}{'0'}>BRIDGED_ETH_LLC</option>\r
+               <option value='1' $selected{'ENCAP'}{'1'}>BRIDGED_ETH_VC</option>\r
+               <option value='2' $selected{'ENCAP'}{'2'}>ROUTED_IP_LLC</option>\r
+               <option value='3' $selected{'ENCAP'}{'3'}>ROUTED_IP_VC</option>\r
+               </select>\r
+       </td>\r
+</tr>\r
+<tr>\r
+       <td colspan='2'>&nbsp;</td>\r
+       <td colspan='3'><hr /></td>\r
+</tr>\r
+END\r
+;\r
+       } else {\r
+print <<END\r
+       <td colspan='4'>PPPoE</td>\r
+</tr>\r
+END\r
+;\r
+       }\r
+}\r
+if ($pppsettings{'TYPE'} =~ /^(pppoe|alcatelusb|alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|bewanadsl|eagleusbadsl)$/)\r
+{\r
+print <<END\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td>&nbsp;</td>\r
+       <td><input type='radio' name='METHOD' value='PPPOE_PLUGIN' $checked{'METHOD'}{'PPPOE_PLUGIN'} />PPPoE plugin</td>\r
+       <td align='right'>$Lang::tr{'service name'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='SERVICENAME' value='$pppsettings{'SERVICENAME'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td>&nbsp;</td>\r
+       <td><input type='radio' name='METHOD' value='PPPOE' $checked{'METHOD'}{'PPPOE'} />$Lang::tr{'pppoe'}</td>\r
+       <td align='right'>$Lang::tr{'concentrator name'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='CONCENTRATORNAME' value='$pppsettings{'CONCENTRATORNAME'}' /></td>\r
+</tr>\r
+\r
+END\r
+;\r
+}\r
+if ($pppsettings{'TYPE'} =~ /^(alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|bewanadsl|eagleusbadsl)$/)\r
+{\r
+print <<END\r
+<tr>\r
+       <td colspan='2'>&nbsp;</td>\r
+       <td colspan='3'><hr /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td>&nbsp;</td>\r
+       <td rowspan='4'><input type='radio' name='METHOD' value='STATIC' $checked{'METHOD'}{'STATIC'} />$Lang::tr{'static ip'}</td>\r
+       <td align='right'>$Lang::tr{'static ip'}:</td>\r
+       <td><input type='text' size='16' name='IP' value='$pppsettings{'IP'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td>&nbsp;</td>\r
+       <td align='right'>$Lang::tr{'gateway ip'}:</td>\r
+       <td><input type='text' size='16' name='GATEWAY' value='$pppsettings{'GATEWAY'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td>&nbsp;</td>\r
+       <td align='right'>$Lang::tr{'netmask'}:</td>\r
+       <td><input type='text' size='16' name='NETMASK' value='$pppsettings{'NETMASK'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td>&nbsp;</td>\r
+       <td align='right' nowrap='nowrap'>$Lang::tr{'broadcast'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' size='16' name='BROADCAST' value='$pppsettings{'BROADCAST'}' /></td>\r
+</tr>\r
+END\r
+;\r
+       if ($pppsettings{'TYPE'} =~ /^(eciadsl|eagleusbadsl)$/)\r
+       {\r
+print <<END\r
+<tr>\r
+       <td colspan='2'>&nbsp;</td>\r
+       <td colspan='3'><hr /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td>&nbsp;</td>\r
+       <td><input type='radio' name='METHOD' value='DHCP' $checked{'METHOD'}{'DHCP'} />$Lang::tr{'dhcp mode'}</td>\r
+       <td align='right'>$Lang::tr{'hostname'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='DHCP_HOSTNAME' value='$pppsettings{'DHCP_HOSTNAME'}' /></td>\r
+</tr>\r
+END\r
+;\r
+       }\r
+}\r
+if ($pppsettings{'TYPE'} =~ /^(alcatelusb|alcatelusbk|eciadsl|fritzdsl)$/) {\r
+       print "<tr><td>&nbsp;</td><td colspan='4'><hr /></td></tr>";\r
+}\r
+if ($pppsettings{'TYPE'} =~ /^(alcatelusb|alcatelusbk)$/) {\r
+       my $speedtouch = &Header::speedtouchversion;\r
+       if (($speedtouch >= 0) && ($speedtouch <=4)) {\r
+               my $modem;\r
+               if ($speedtouch ==4) { $modem='v4_b'; } else { $modem='v0123'; }\r
+               print "<tr><td align='right'>$Lang::tr{'firmware'}:</td>";\r
+               if (-e "${General::swroot}/alcatelusb/firmware.$modem.bin") {\r
+                       print "<td>$Lang::tr{'present'}</td><td colspan='3'>&nbsp;</td></tr>\n";\r
+               } else {\r
+                       print "<td>$Lang::tr{'not present'}</td><td colspan='3'>&nbsp;</td></tr>\n";\r
+               }\r
+       } else {\r
+               print "<tr><td colspan='5'>$Lang::tr{'unknown'} Rev $speedtouch</td></tr>";\r
+       }\r
+} elsif ($pppsettings{'TYPE'} eq 'eciadsl') {\r
+       print "<tr><td align='right'>$Lang::tr{'driver'}:</td>";\r
+       if (-e "${General::swroot}/eciadsl/synch.bin") {\r
+               print "<td>$Lang::tr{'present'}</td><td colspan='3'>&nbsp;</td></tr>\n";\r
+       } else {\r
+               print "<td>$Lang::tr{'not present'}</td><td colspan='3'>&nbsp;</td></tr>\n"; }\r
+} elsif ($pppsettings{'TYPE'} eq 'fritzdsl') {\r
+       print "<tr><td align='right'>$Lang::tr{'driver'}:</td>";\r
+       if (-e "/lib/modules/$kernel/misc/fcdslusb.o.gz") {\r
+               print "<td>$Lang::tr{'present'}</td><td colspan='3'>&nbsp;</td></tr>\n";\r
+       } else {\r
+               print "<td>$Lang::tr{'not present'}</td><td colspan='3'>&nbsp;</td></tr>\n"; }\r
+}\r
+print <<END\r
+</table>\r
+<table width='100%'>\r
+<tr>\r
+       <td colspan='5'><br /><hr /><b>$Lang::tr{'authentication'}</b></td>\r
+</tr>\r
+<tr>\r
+       <td align='right'>$Lang::tr{'username'}</td>\r
+       <td><input type='text' name='USERNAME' value='$pppsettings{'USERNAME'}' /></td>\r
+       <td align='right'>$Lang::tr{'password'}</td>\r
+       <td><input type='password' name='PASSWORD' value='$pppsettings{'PASSWORD'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td align='right'>$Lang::tr{'method'}</td>\r
+       <td><select name='AUTH'>\r
+               <option value='pap-or-chap' $selected{'AUTH'}{'pap-or-chap'}>$Lang::tr{'pap or chap'}</option>\r
+               <option value='pap' $selected{'AUTH'}{'pap'}>PAP</option>\r
+               <option value='chap' $selected{'AUTH'}{'chap'}>CHAP</option>\r
+END\r
+;\r
+if ($pppsettings{'TYPE'} eq 'modem') {\r
+print <<END\r
+               <option value='standard-login-script' $selected{'AUTH'}{'standard-login-script'}>$Lang::tr{'standard login script'}</option>\r
+               <option value='demon-login-script' $selected{'AUTH'}{'demon-login-script'}>$Lang::tr{'demon login script'}</option>\r
+               <option value='other-login-script' $selected{'AUTH'}{'other-login-script'}>$Lang::tr{'other login script'}</option>\r
+END\r
+;\r
+}\r
+print <<END\r
+       </select></td>\r
+       <td align='right'>$Lang::tr{'script name'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td nowrap='nowrap'><input type='text' name='LOGINSCRIPT' value='$pppsettings{'LOGINSCRIPT'}' /></td>\r
+</tr>\r
+</table>\r
+<table width='100%'>\r
+<tr>\r
+       <td colspan='5'><br /><hr /><b>DNS:</b></td>\r
+</tr>\r
+<tr>\r
+       <td colspan='5'><input type='radio' name='DNS' value='Automatic' $checked{'DNS'}{'Automatic'} />$Lang::tr{'automatic'}</td>\r
+</tr>\r
+<tr>\r
+       <td><input type='radio' name='DNS' value='Manual' $checked{'DNS'}{'Manual'} />$Lang::tr{'manual'}</td>\r
+       <td align='right'>$Lang::tr{'primary dns'}</td>\r
+       <td><input type='text' size='16' name='DNS1' value='$pppsettings{'DNS1'}' /></td>\r
+       <td align='right'>$Lang::tr{'secondary dns'}</td>\r
+       <td><input type='text' size='16' name='DNS2' value='$pppsettings{'DNS2'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td colspan='5'><br /><hr /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td align='right'>$Lang::tr{'profile name'}</td>\r
+       <td><input type='text' name='PROFILENAME' value='$pppsettings{'PROFILENAME'}' /></td>\r
+       <td><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td colspan='5'><br /><hr /></td>\r
+</tr>\r
+<tr>\r
+       <td align='right'>$Lang::tr{'legend'}:</td>\r
+       <td><img src='/blob.gif' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+}\r
+\r
+print "</form>\n";\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
+sub updatesettings\r
+{\r
+       # make a link from the selected profile to the "default" one.\r
+       unlink("${General::swroot}/ppp/settings");\r
+       link("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}",\r
+               "${General::swroot}/ppp/settings");\r
+       system ("/bin/touch", "${General::swroot}/ppp/updatesettings");\r
+       if ($pppsettings{'TYPE'} eq 'eagleusbadsl') {\r
+               # eagle-usb.conf is in backup but link DSPcode.bin can't, so the link is created in rc.eagleusbadsl\r
+               open(FILE, ">/${General::swroot}/eagle-usb/eagle-usb.conf") or die "Unable to write eagle-usb.conf file";\r
+               flock(FILE, 2);\r
+               # decimal to hexa\r
+               $modemsettings{'VPI'} = uc(sprintf('%X', $pppsettings{'VPI'}));\r
+               $modemsettings{'VCI'} = uc(sprintf('%X', $pppsettings{'VCI'}));\r
+               if( $pppsettings{'PROTOCOL'} eq 'RFC1483') {\r
+                       $modemsettings{'Encapsulation'} =1+$pppsettings{'ENCAP'}\r
+               } elsif ( $pppsettings{'PROTOCOL'} eq 'RFC2364') {\r
+                       $modemsettings{'Encapsulation'} =6-$pppsettings{'ENCAP'}\r
+               }\r
+               print FILE "<eaglectrl>\n";\r
+               print FILE "VPI=$modemsettings{'VPI'}\n";\r
+               print FILE "VCI=$modemsettings{'VCI'}\n";\r
+               print FILE "Encapsulation=$modemsettings{'Encapsulation'}\n";\r
+               print FILE "Linetype=0A\n";\r
+               print FILE "RatePollFreq=00000009\n";\r
+               print FILE "</eaglectrl>\n";\r
+               close FILE;\r
+       }\r
+}\r
+\r
+sub writesecrets\r
+{\r
+       # write secrets file.\r
+       open(FILE, ">/${General::swroot}/ppp/secrets") or die "Unable to write secrets file.";\r
+       flock(FILE, 2);\r
+       my $username = $pppsettings{'USERNAME'};\r
+       my $password = $pppsettings{'PASSWORD'};\r
+       print FILE "'$username' * '$password'\n";\r
+       chmod 0600, "${General::swroot}/ppp/secrets";\r
+       close FILE;\r
+}\r
+\r
+sub initprofile\r
+{\r
+       $pppsettings{'PROFILENAME'} = $Lang::tr{'unnamed'};\r
+       $pppsettings{'COMPORT'} = 'ttyS0';\r
+       $pppsettings{'DTERATE'} = 115200;\r
+       $pppsettings{'SPEAKER'} = 'off';\r
+       $pppsettings{'RECONNECTION'} = 'manual';\r
+       $pppsettings{'DIALONDEMANDDNS'} = 'off';\r
+       $pppsettings{'AUTOCONNECT'} = 'off';\r
+       $pppsettings{'SENDCR'} = 'off';\r
+       $pppsettings{'USEIBOD'} = 'off';\r
+       $pppsettings{'USEDOV'} = 'off';\r
+       $pppsettings{'MODEM'} = 'PCIST';\r
+       $pppsettings{'LINE'} = 'WO';\r
+       $pppsettings{'ENCAP'} = '0';\r
+       $pppsettings{'PHONEBOOK'} = 'RELAY_PPP1';\r
+       $pppsettings{'PROTOCOL'} = 'RFC2364';\r
+       $pppsettings{'METHOD'} = 'PPPOE_PLUGIN';\r
+       $pppsettings{'DIALMODE'} = 'T';\r
+       $pppsettings{'MAXRETRIES'} = 5;\r
+       $pppsettings{'HOLDOFF'} = 30;\r
+       $pppsettings{'TIMEOUT'} = 15;\r
+       $pppsettings{'MODULATION'} = 'AUTO';\r
+       $pppsettings{'AUTH'} = 'pap-or-chap';\r
+       $pppsettings{'DNS'} = 'Automatic';\r
+       $pppsettings{'DEBUG'} = 'off';\r
+       $pppsettings{'BACKUPPROFILE'} = $pppsettings{'PROFILE'};\r
+\r
+       # Get ISDN settings so we can see if ISDN is enabled or not.\r
+       $isdnsettings{'ENABLED'} = 'off';\r
+       &General::readhash("${General::swroot}/isdn/settings", \%isdnsettings);\r
+       \r
+       # Get PPPoE settings so we can see if PPPoE is enabled or not.\r
+       &General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+\r
+       # empty profile partial pre-initialization\r
+       if ($netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/) {\r
+               $pppsettings{'TYPE'}=lc($netsettings{'RED_TYPE'});\r
+       } elsif ($isdnsettings{'ENABLED'} eq 'on') {\r
+               $pppsettings{'TYPE'}='isdn';\r
+       } else {\r
+               $pppsettings{'TYPE'}='modem';\r
+       }\r
+}\r
+\r
diff --git a/html/cgi-bin/proxy.cgi b/html/cgi-bin/proxy.cgi
new file mode 100644 (file)
index 0000000..ad2d1db
--- /dev/null
@@ -0,0 +1,421 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: proxy.cgi,v 1.13.2.23 2006/01/29 09:29:47 eoberlander Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %proxysettings=();\r
+my %netsettings=();\r
+my %mainsettings=();\r
+my $errormessage = '';\r
+my $NeedDoHTML = 1;\r
+\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);\r
+\r
+&Header::showhttpheaders();\r
+\r
+$proxysettings{'ACTION'} = '';\r
+$proxysettings{'VALID'} = '';\r
+\r
+$proxysettings{'UPSTREAM_PROXY'} = '';\r
+$proxysettings{'UPSTREAM_USER'} = '';\r
+$proxysettings{'UPSTREAM_PASSWORD'} = '';\r
+$proxysettings{'ENABLE'} = 'off';\r
+$proxysettings{'ENABLE_BLUE'} = 'off';\r
+$proxysettings{'CACHE_SIZE'} = '50';\r
+$proxysettings{'TRANSPARENT'} = 'off';\r
+$proxysettings{'TRANSPARENT_BLUE'} = 'off';\r
+$proxysettings{'MAX_SIZE'} = '4096';\r
+$proxysettings{'MIN_SIZE'} = '0';\r
+$proxysettings{'MAX_OUTGOING_SIZE'} = '0';\r
+$proxysettings{'MAX_INCOMING_SIZE'} = '0';\r
+$proxysettings{'LOGGING'} = 'off';\r
+$proxysettings{'PROXY_PORT'} = '800';\r
+$proxysettings{'EXTENSION_METHODS'} = '';\r
+\r
+&Header::getcgihash(\%proxysettings);\r
+\r
+my $needhup = 0;\r
+my $cachemem = '';\r
+\r
+if ($proxysettings{'ACTION'} eq $Lang::tr{'save'})\r
+{\r
+       \r
+       #assume error\r
+       my $configerror = 1;\r
+\r
+       if ($proxysettings{'ENABLE'} !~ /^(on|off)$/ || \r
+           $proxysettings{'TRANSPARENT'} !~ /^(on|off)$/ || \r
+           $proxysettings{'ENABLE_BLUE'} !~ /^(on|off)$/ || \r
+           $proxysettings{'TRANSPARENT_BLUE'} !~ /^(on|off)$/ ) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ERROR;\r
+       } \r
+       if (!($proxysettings{'CACHE_SIZE'} =~ /^\d+/) ||\r
+               ($proxysettings{'CACHE_SIZE'} < 10))\r
+       {\r
+               $errormessage = $Lang::tr{'invalid cache size'};\r
+               goto ERROR;\r
+       }               \r
+       if (!($proxysettings{'MAX_SIZE'} =~ /^\d+/))\r
+       {\r
+               $errormessage = $Lang::tr{'invalid maximum object size'};\r
+               goto ERROR;\r
+       }\r
+       if (!($proxysettings{'MIN_SIZE'} =~ /^\d+/))\r
+       {\r
+               $errormessage = $Lang::tr{'invalid minimum object size'};\r
+               goto ERROR;\r
+       }\r
+       if (!($proxysettings{'MAX_OUTGOING_SIZE'} =~ /^\d+/))\r
+       {\r
+               $errormessage = $Lang::tr{'invalid maximum outgoing size'};\r
+               goto ERROR;\r
+       }\r
+       if (!($proxysettings{'MAX_INCOMING_SIZE'} =~ /^\d+/))\r
+       {\r
+               $errormessage = $Lang::tr{'invalid maximum incoming size'};\r
+               goto ERROR;\r
+       }\r
+\r
+       if (!($proxysettings{'EXTENSION_METHODS'} =~ /^(|[A-Z0-9 _-]+)$/))\r
+       {\r
+               $errormessage = $Lang::tr{'squid extension methods invalid'};\r
+               goto ERROR;\r
+       }\r
+\r
+        # Quick parent proxy error checking of username and password info. If username password don't both exist give an error.\r
+        my $proxy1 = 'YES';\r
+        my $proxy2 = 'YES';\r
+        if (($proxysettings{'UPSTREAM_USER'} eq '')) {$proxy1 = '';}\r
+        if (($proxysettings{'UPSTREAM_PASSWORD'} eq '')) {$proxy2 = '';}\r
+        if (($proxy1 ne $proxy2))\r
+        {\r
+                $errormessage = $Lang::tr{'invalid upstream proxy username or password setting'};\r
+                goto ERROR;\r
+        }\r
+\r
+       $_ = $proxysettings{'UPSTREAM_PROXY'};\r
+       my ($remotehost, $remoteport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+       $remoteport = 80 if ($remoteport eq '');\r
+\r
+       $proxysettings{'VALID'} = 'yes';\r
+       &General::writehash("${General::swroot}/proxy/settings", \%proxysettings);\r
+\r
+       #\r
+       # NAH, 03-Jan-2004\r
+       #\r
+       my @free = `/usr/bin/free`;\r
+       $free[1] =~ m/(\d+)/;\r
+       $cachemem = int $1 / 10;\r
+       if ($cachemem < 4096) {\r
+               $cachemem = 4096;\r
+       }\r
+       if ($cachemem > $proxysettings{'CACHE_SIZE'} * 40) {\r
+               $cachemem = ( $proxysettings{'CACHE_SIZE'} * 40 );\r
+       }\r
+\r
+       open(FILE, ">/${General::swroot}/proxy/squid.conf") or die "Unable to write squid.conf file";\r
+       flock(FILE, 2);\r
+       print FILE <<END\r
+shutdown_lifetime 5 seconds\r
+icp_port 0\r
+\r
+http_port $netsettings{'GREEN_ADDRESS'}:$proxysettings{'PROXY_PORT'}\r
+END\r
+       ;\r
+       print FILE "\nextension_methods $proxysettings{'EXTENSION_METHODS'}\n" if ($proxysettings{'EXTENSION_METHODS'} ne '');\r
+\r
+       if ($netsettings{'BLUE_DEV'} && $proxysettings{'ENABLE_BLUE'} eq 'on') {\r
+               print FILE "http_port $netsettings{'BLUE_ADDRESS'}:$proxysettings{'PROXY_PORT'}\n";\r
+       }\r
+       print FILE <<END\r
+\r
+acl QUERY urlpath_regex cgi-bin \\?\r
+no_cache deny QUERY\r
+\r
+cache_effective_user squid\r
+cache_effective_group squid\r
+\r
+pid_filename /var/run/squid.pid\r
+\r
+END\r
+       ;\r
+\r
+       if ($proxysettings{'LOGGING'} eq 'on')\r
+       {\r
+                print FILE <<END\r
+cache_access_log /var/log/squid/access.log\r
+cache_log /var/log/squid/cache.log\r
+cache_store_log none\r
+\r
+END\r
+       ;} else {\r
+               print FILE <<END\r
+cache_access_log /dev/null\r
+cache_log /dev/null\r
+cache_store_log none\r
+\r
+END\r
+       ;}\r
+       print FILE <<END\r
+log_mime_hdrs off\r
+forwarded_for off\r
+\r
+END\r
+       ;\r
+\r
+        #Insert acl file and replace __VAR__ with correct values\r
+        my $blue_net = ''; #BLUE empty by default\r
+       my $blue_ip = '';\r
+       if ($netsettings{'BLUE_DEV'} && $proxysettings{'ENABLE_BLUE'} eq 'on') {\r
+           $blue_net = "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}";\r
+           $blue_ip  = "$netsettings{'BLUE_ADDRESS'}";\r
+       }\r
+       open (ACL, "${General::swroot}/proxy/acl") or die "Unable to open ACL list file";\r
+       while (<ACL>) {\r
+               $_ =~ s/__GREEN_IP__/$netsettings{'GREEN_ADDRESS'}/;\r
+               $_ =~ s/__GREEN_NET__/$netsettings{'GREEN_NETADDRESS'}\/$netsettings{'GREEN_NETMASK'}/;\r
+               $_ =~ s/__BLUE_IP__/$blue_ip/;\r
+               $_ =~ s/__BLUE_NET__/$blue_net/;\r
+               $_ =~ s/__PROXY_PORT__/$proxysettings{'PROXY_PORT'}/;\r
+               print FILE $_;\r
+       }\r
+       close (ACL);\r
+\r
+       # This value is in bytes, so we must turn it from KB into bytes\r
+       my $max_incoming_size = $proxysettings{'MAX_INCOMING_SIZE'} * 1024;\r
+\r
+       print FILE <<END\r
+\r
+maximum_object_size $proxysettings{'MAX_SIZE'} KB\r
+minimum_object_size $proxysettings{'MIN_SIZE'} KB\r
+\r
+cache_mem $cachemem KB\r
+cache_dir aufs /var/log/cache $proxysettings{'CACHE_SIZE'} 16 256\r
+\r
+request_body_max_size $proxysettings{'MAX_OUTGOING_SIZE'} KB\r
+reply_body_max_size $max_incoming_size allow all\r
+\r
+visible_hostname $mainsettings{'HOSTNAME'}.$mainsettings{'DOMAINNAME'}\r
+\r
+END\r
+       ;\r
+\r
+       # Write the parent proxy info, if needed.\r
+       if ($remotehost ne '')\r
+       {\r
+               # Enter authentication for the parent cache (format is login=user:password)\r
+               if ($proxy1 eq 'YES') {\r
+               print FILE <<END\r
+cache_peer $remotehost parent $remoteport 3130 login=$proxysettings{'UPSTREAM_USER'}:$proxysettings{'UPSTREAM_PASSWORD'} default no-query\r
+\r
+END\r
+               ; \r
+               } else {\r
+               # Not using authentication with the parent cache\r
+               print FILE <<END\r
+cache_peer $remotehost parent $remoteport 3130 default no-query\r
+\r
+END\r
+               ;\r
+               }\r
+               print FILE "never_direct allow all\n";\r
+       }\r
+       if (($proxysettings{'TRANSPARENT'} eq 'on') ||\r
+           ($proxysettings{'TRANSPARENT_BLUE'} eq 'on'))\r
+       {\r
+               print FILE <<END\r
+httpd_accel_host virtual \r
+httpd_accel_port 80 \r
+httpd_accel_with_proxy on\r
+httpd_accel_uses_host_header on \r
+END\r
+               ;\r
+       }\r
+       close FILE;\r
+       $configerror = 0;  ## a good config!\r
+\r
+ERROR:\r
+       unlink "${General::swroot}/proxy/enable";\r
+       unlink "${General::swroot}/proxy/transparent";\r
+       unlink "${General::swroot}/proxy/enable_blue";\r
+       unlink "${General::swroot}/proxy/transparent_blue";\r
+       &DoHTML;\r
+\r
+       if (!$configerror)\r
+       {\r
+               if ($proxysettings{'ENABLE'} eq 'on') {\r
+                       system ('/bin/touch', "${General::swroot}/proxy/enable"); }\r
+               if ($proxysettings{'TRANSPARENT'} eq 'on') {\r
+                       system ('/bin/touch', "${General::swroot}/proxy/transparent"); }\r
+               if ($proxysettings{'ENABLE_BLUE'} eq 'on') {\r
+                       system ('/bin/touch', "${General::swroot}/proxy/enable_blue"); }\r
+               if ($proxysettings{'TRANSPARENT_BLUE'} eq 'on') {\r
+                       system ('/bin/touch', "${General::swroot}/proxy/transparent_blue"); }\r
+               system('/usr/local/bin/restartsquid');\r
+       }\r
+}\r
+\r
+if ($proxysettings{'ACTION'} eq $Lang::tr{'clear cache'})\r
+{\r
+       &DoHTML;\r
+       system('/usr/local/bin/restartsquid','-f');\r
+}\r
+\r
+&DoHTML if $NeedDoHTML;\r
+\r
+\r
+sub DoHTML     {\r
+\r
+$NeedDoHTML = 0;\r
+&General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+\r
+my %checked=();\r
+\r
+$checked{'ENABLE'}{'off'} = '';\r
+$checked{'ENABLE'}{'on'} = '';\r
+$checked{'ENABLE'}{$proxysettings{'ENABLE'}} = "checked='checked'";\r
+\r
+$checked{'TRANSPARENT'}{'off'} = '';\r
+$checked{'TRANSPARENT'}{'on'} = '';\r
+$checked{'TRANSPARENT'}{$proxysettings{'TRANSPARENT'}} = "checked='checked'";\r
+\r
+$checked{'ENABLE_BLUE'}{'off'} = '';\r
+$checked{'ENABLE_BLUE'}{'on'} = '';\r
+$checked{'ENABLE_BLUE'}{$proxysettings{'ENABLE_BLUE'}} = "checked='checked'";\r
+\r
+$checked{'TRANSPARENT_BLUE'}{'off'} = '';\r
+$checked{'TRANSPARENT_BLUE'}{'on'} = '';\r
+$checked{'TRANSPARENT_BLUE'}{$proxysettings{'TRANSPARENT_BLUE'}} = "checked='checked'";\r
+\r
+$checked{'LOGGING'}{'off'} = '';\r
+$checked{'LOGGING'}{'on'} = '';\r
+$checked{'LOGGING'}{$proxysettings{'LOGGING'}} = "checked='checked'";\r
+\r
+&Header::openpage($Lang::tr{'web proxy configuration'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<font class='base'>$errormessage&nbsp;</font>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+&Header::openbox('100%', 'left', "$Lang::tr{'web proxy'}:");\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td width='25%' class='base'>$Lang::tr{'enabled on'} <font color="${Header::colourgreen}">Green</font>:</td>\r
+       <td width='15%'><input type='checkbox' name='ENABLE' $checked{'ENABLE'}{'on'} /></td>\r
+       <td width='30%' class='base'>$Lang::tr{'upstream proxy host:port'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td width='30%'><input type='text' name='UPSTREAM_PROXY' value='$proxysettings{'UPSTREAM_PROXY'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td class='base'>$Lang::tr{'transparent on'} <font color="${Header::colourgreen}">Green</font>:</td>\r
+       <td><input type='checkbox' name='TRANSPARENT' $checked{'TRANSPARENT'}{'on'} /></td>\r
+       <td class='base'>$Lang::tr{'upstream username'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='UPSTREAM_USER' value='$proxysettings{'UPSTREAM_USER'}' /></td>\r
+</tr>\r
+<tr>\r
+END\r
+;\r
+if ($netsettings{'BLUE_DEV'}) {\r
+       print "<td class='base'>$Lang::tr{'enabled on'} <font color='${Header::colourblue}'>Blue</font>:</td>";\r
+       print "<td><input type='checkbox' name='ENABLE_BLUE' $checked{'ENABLE_BLUE'}{'on'} /></td>";\r
+} else {\r
+       print "<td colspan='2'>&nbsp;</td>";\r
+}\r
+print <<END\r
+       <td class='base'>$Lang::tr{'upstream password'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='password' name='UPSTREAM_PASSWORD' value='$proxysettings{'UPSTREAM_PASSWORD'}' /></td>\r
+</tr>\r
+<tr>\r
+END\r
+;\r
+if ($netsettings{'BLUE_DEV'}) {\r
+       print "<td class='base'>$Lang::tr{'transparent on'} <font color='${Header::colourblue}'>Blue</font>:</td>";\r
+       print "<td><input type='checkbox' name='TRANSPARENT_BLUE' $checked{'TRANSPARENT_BLUE'}{'on'} /></td>";\r
+} else {\r
+       print "<td colspan='2'>&nbsp;</td>";\r
+}\r
+print <<END\r
+       <td class='base'>$Lang::tr{'proxy port'}:</td>\r
+       <td><input type='text' name='PROXY_PORT' value='$proxysettings{'PROXY_PORT'}' size='5' /></td>\r
+</tr>\r
+<tr>\r
+       <td class='base'>$Lang::tr{'log enabled'}:</td>\r
+       <td><input type='checkbox' name='LOGGING' $checked{'LOGGING'}{'on'} /></td>\r
+       <td>$Lang::tr{'squid extension methods'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='EXTENSION_METHODS' value='$proxysettings{'EXTENSION_METHODS'}' /></td>\r
+</tr>\r
+<!--TAG FOR ADDONS-->\r
+<tr>\r
+       <td colspan='4'><hr /><b>$Lang::tr{'cache management'}</b></td>\r
+</tr>\r
+<tr>\r
+       <td width='25%' class='base'>$Lang::tr{'cache size'}</td>\r
+       <td><input type='text' name='CACHE_SIZE' value='$proxysettings{'CACHE_SIZE'}' size='5' /></td>\r
+</tr>\r
+<tr>\r
+       <td class='base'>$Lang::tr{'min size'}</td>\r
+       <td><input type='text' name='MIN_SIZE' value='$proxysettings{'MIN_SIZE'}' size='5' /></td>\r
+       <td class='base'>$Lang::tr{'max size'}</td>\r
+       <td><input type='text' name='MAX_SIZE' value='$proxysettings{'MAX_SIZE'}' size='5' /></td>\r
+</tr>\r
+<tr>\r
+       <td colspan='4'><hr /><b>$Lang::tr{'transfer limits'}</b></td>\r
+</tr>\r
+<tr>\r
+       <td class='base'>$Lang::tr{'max incoming size'}</td>\r
+       <td><input type='text' name='MAX_INCOMING_SIZE' value='$proxysettings{'MAX_INCOMING_SIZE'}' size='5' /></td>\r
+       <td class='base'>$Lang::tr{'max outgoing size'}</td>\r
+       <td><input type='text' name='MAX_OUTGOING_SIZE' value='$proxysettings{'MAX_OUTGOING_SIZE'}' size='5' /></td>\r
+</tr>\r
+</table>\r
+<table width='100%'>\r
+<hr />\r
+<tr>\r
+       <td width='28%'>\r
+               <img src='/blob.gif' align='top' alt='*' />&nbsp;\r
+               <font class='base'>$Lang::tr{'this field may be blank'}</font>\r
+       </td>\r
+       <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'clear cache'}' /></td>\r
+       <td width=33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+       <td width='5%' align='right'>\r
+               <a href='${General::adminmanualurl}/services.html#services_webproxy' target='_blank'>\r
+               <img src='/images/web-support.png' title='$Lang::tr{'online help en'}' /></a></td>\r
+</tr>\r
+\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+print "</form>\n";\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
+} # end sub DoHTML\r
+1\r
diff --git a/html/cgi-bin/proxygraphs.cgi b/html/cgi-bin/proxygraphs.cgi
new file mode 100644 (file)
index 0000000..4e297b1
--- /dev/null
@@ -0,0 +1,63 @@
+#!/usr/bin/perl\r
+#\r
+# (c) 2002 Robert Wood <rob@empathymp3.co.uk>\r
+#\r
+# $Id: proxygraphs.cgi,v 1.2.2.5 2005/02/22 22:21:56 gespinasse Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %cgiparams=();\r
+my %pppsettings=();\r
+my %netsettings=();\r
+my @graphs=();\r
+\r
+&Header::showhttpheaders();\r
+\r
+my $dir = "/home/httpd/html/sgraph";\r
+$cgiparams{'ACTION'} = '';\r
+&Header::getcgihash(\%cgiparams);\r
+my $sgraphdir = "/home/httpd/html/sgraph";\r
+\r
+&Header::openpage($Lang::tr{'proxy access graphs'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left');\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'proxy access graphs'} . ":" );\r
+\r
+if (open(IPACHTML, "$sgraphdir/index.html"))\r
+{\r
+       my $skip = 1;\r
+       while (<IPACHTML>)\r
+       {\r
+               $skip = 1 if /^<HR>$/;\r
+               if ($skip)\r
+               {\r
+                       $skip = 0 if /<H1>/;\r
+                       next;\r
+               }\r
+               s/<IMG SRC=([^"'>]+)>/<img src='\/sgraph\/$1' alt='Graph' \/>/;\r
+               s/<HR>/<hr \/>/g;\r
+               s/<BR>/<br \/>/g;\r
+               s/<([^>]*)>/\L<$1>\E/g;\r
+               s/(size|align|border|color)=([^'"> ]+)/$1='$2'/g;\r
+               print;\r
+       }\r
+       close(IPACHTML);\r
+}\r
+else {\r
+       print $Lang::tr{'no information available'}; }\r
+\r
+&Header::closebox();\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
diff --git a/html/cgi-bin/remote.cgi b/html/cgi-bin/remote.cgi
new file mode 100644 (file)
index 0000000..581f4d2
--- /dev/null
@@ -0,0 +1,180 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: remote.cgi,v 1.6.2.8 2005/02/22 22:21:56 gespinasse Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %remotesettings=();\r
+my %checked=();\r
+my $errormessage='';\r
+\r
+&Header::showhttpheaders();\r
+\r
+$remotesettings{'ENABLE_SSH'} = 'off';\r
+$remotesettings{'ENABLE_SSH_PROTOCOL1'} = 'off';\r
+$remotesettings{'ENABLE_SSH_PORTFW'} = 'off';\r
+$remotesettings{'ACTION'} = '';\r
+&Header::getcgihash(\%remotesettings);\r
+\r
+if ($remotesettings{'ACTION'} eq $Lang::tr{'save'})\r
+{\r
+       # not existing here indicates the box is unticked\r
+       $remotesettings{'ENABLE_SSH_PASSWORDS'} = 'off' unless exists $remotesettings{'ENABLE_SSH_PASSWORDS'};\r
+       $remotesettings{'ENABLE_SSH_KEYS'} = 'off' unless exists $remotesettings{'ENABLE_SSH_KEYS'};\r
+\r
+\r
+       &General::writehash("${General::swroot}/remote/settings", \%remotesettings);\r
+       if ($remotesettings{'ENABLE_SSH'} eq 'on')\r
+       {\r
+               &General::log($Lang::tr{'ssh is enabled'});\r
+               if  ($remotesettings{'ENABLE_SSH_PASSWORDS'} eq 'off'\r
+                and $remotesettings{'ENABLE_SSH_KEYS'}      eq 'off')\r
+               {\r
+                       $errormessage = $Lang::tr{'ssh no auth'};\r
+               }\r
+               system ('/bin/touch', "${General::swroot}/remote/enablessh");\r
+       }\r
+       else\r
+       {\r
+               &General::log($Lang::tr{'ssh is disabled'});\r
+               unlink "${General::swroot}/remote/enablessh";\r
+       }\r
+\r
+       if ($remotesettings{'ENABLE_SSH_PROTOCOL1'} eq 'on')\r
+       {\r
+               &General::log($Lang::tr{'ssh1 enabled'});\r
+       }\r
+       else\r
+       {\r
+               &General::log($Lang::tr{'ssh1 disabled'});\r
+       }\r
+\r
+       system('/usr/local/bin/restartssh') == 0\r
+               or $errormessage = "$Lang::tr{'bad return code'} " . $?/256;\r
+}\r
+\r
+&General::readhash("${General::swroot}/remote/settings", \%remotesettings);\r
+\r
+# not existing here means they're undefined and the default value should be\r
+# used\r
+       $remotesettings{'ENABLE_SSH_PASSWORDS'} = 'on' unless exists $remotesettings{'ENABLE_SSH_PASSWORDS'};\r
+       $remotesettings{'ENABLE_SSH_KEYS'} = 'on' unless exists $remotesettings{'ENABLE_SSH_KEYS'};\r
+\r
+$checked{'ENABLE_SSH'}{'off'} = '';\r
+$checked{'ENABLE_SSH'}{'on'} = '';\r
+$checked{'ENABLE_SSH'}{$remotesettings{'ENABLE_SSH'}} = "checked='checked'";\r
+$checked{'ENABLE_SSH_PROTOCOL1'}{'off'} = '';\r
+$checked{'ENABLE_SSH_PROTOCOL1'}{'on'} = '';\r
+$checked{'ENABLE_SSH_PROTOCOL1'}{$remotesettings{'ENABLE_SSH_PROTOCOL1'}} = "checked='checked'";\r
+$checked{'ENABLE_SSH_PORTFW'}{'off'} = '';\r
+$checked{'ENABLE_SSH_PORTFW'}{'on'} = '';\r
+$checked{'ENABLE_SSH_PORTFW'}{$remotesettings{'ENABLE_SSH_PORTFW'}} = "checked='checked'";\r
+$checked{'ENABLE_SSH_PASSWORDS'}{'off'} = '';\r
+$checked{'ENABLE_SSH_PASSWORDS'}{'on'} = '';\r
+$checked{'ENABLE_SSH_PASSWORDS'}{$remotesettings{'ENABLE_SSH_PASSWORDS'}} = "checked='checked'";\r
+$checked{'ENABLE_SSH_KEYS'}{'off'} = '';\r
+$checked{'ENABLE_SSH_KEYS'}{'on'} = '';\r
+$checked{'ENABLE_SSH_KEYS'}{$remotesettings{'ENABLE_SSH_KEYS'}} = "checked='checked'";\r
+\r
+\r
+&Header::openpage($Lang::tr{'remote access'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<FONT CLASS='base'>$errormessage&nbsp;</FONT>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+&Header::openbox('100%', 'left', 'SSH:');\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td><input type='checkbox' name='ENABLE_SSH' $checked{'ENABLE_SSH'}{'on'} /></td>\r
+       <td class='base' colspan='2'>$Lang::tr{'ssh access'}</td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td><input type='checkbox' name='ENABLE_SSH_PROTOCOL1' $checked{'ENABLE_SSH_PROTOCOL1'}{'on'} /></td>\r
+       <td width='100%' class='base'>$Lang::tr{'ssh1 support'}</td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td><input type='checkbox' name='ENABLE_SSH_PORTFW' $checked{'ENABLE_SSH_PORTFW'}{'on'} /></td>\r
+       <td width='100%' class='base'>$Lang::tr{'ssh portfw'}</td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td><input type='checkbox' name='ENABLE_SSH_PASSWORDS' $checked{'ENABLE_SSH_PASSWORDS'}{'on'} /></td>\r
+       <td width='100%' class='base'>$Lang::tr{'ssh passwords'}</td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td><input type='checkbox' name='ENABLE_SSH_KEYS' $checked{'ENABLE_SSH_KEYS'}{'on'} /></td>\r
+       <td width='100%' class='base'>$Lang::tr{'ssh keys'}</td>\r
+</tr>\r
+<tr>\r
+       <td colspan='3' align='center'><hr /><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+print "</form>\n";\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'ssh host keys'});\r
+\r
+print "<table>\n";\r
+\r
+print <<END\r
+<tr><td class='boldbase'><b>$Lang::tr{'ssh key'}</b></td>\r
+    <td class='boldbase'><b>$Lang::tr{'ssh fingerprint'}</b></td>\r
+    <td class='boldbase'><b>$Lang::tr{'ssh key size'}</b></td></tr>\r
+END\r
+;\r
+\r
+&viewkey("/etc/ssh/ssh_host_key.pub","RSA1");\r
+&viewkey("/etc/ssh/ssh_host_rsa_key.pub","RSA2");\r
+&viewkey("/etc/ssh/ssh_host_dsa_key.pub","DSA");\r
+\r
+print "</table>\n";\r
+\r
+&Header::closebox();\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
+\r
+sub viewkey\r
+{\r
+  my $key = $_[0];\r
+  my $name = $_[1];\r
+\r
+  if ( -e $key )\r
+  {\r
+    my @temp = split(/ /,`/usr/bin/ssh-keygen -l -f $key`);\r
+    my $keysize = &Header::cleanhtml($temp[0],"y");\r
+    my $fingerprint = &Header::cleanhtml($temp[1],"y");\r
+    print "<tr><td>$key ($name)</td><td><code>$fingerprint</code></td><td align='center'>$keysize</td></tr>\n";\r
+  }\r
+}\r
diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi
new file mode 100644 (file)
index 0000000..688cdc9
--- /dev/null
@@ -0,0 +1,586 @@
+#!/usr/bin/perl\r
+#\r
+# This file is part of the IPCop Firewall.\r
+#\r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+#\r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+#\r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+#\r
+# Copyright (C) 2003-09-22 Darren Critchley <darrenc@telus.net>\r
+#\r
+# $Id: services.cgi,v 1.2.2.3 2005/04/29 23:37:07 franck78 Exp $\r
+#\r
+\r
+use strict;\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my @icmptypes = &get_icmptypes();\r
+\r
+&Header::showhttpheaders();\r
+\r
+my %cgiparams=();\r
+my %selected=();\r
+my %checked=();\r
+my $filename = "${General::swroot}/firewall/customservices";\r
+my $key = 0; # used for finding last sequence number used \r
+\r
+# Darren Critchley - vars for setting up sort order\r
+my $sort_col = '1';\r
+my $sort_type = 'a';\r
+my $sort_dir = 'asc';\r
+\r
+if ($ENV{'QUERY_STRING'} ne '') {\r
+       my ($item1, $item2, $item3) = split(/\&/,$ENV{'QUERY_STRING'});\r
+       if ($item1 ne '') {\r
+               ($junk, $sort_col) = split(/\=/,$item1)\r
+       }\r
+       if ($item2 ne '') {\r
+               ($junk, $sort_type) = split(/\=/,$item2)\r
+       }\r
+       if ($item3 ne '') {\r
+               ($junk, $sort_dir) = split(/\=/,$item3)\r
+       }\r
+}\r
+\r
+$cgiparams{'KEY'} = '';\r
+$cgiparams{'PORTS'} = '';\r
+$cgiparams{'PROTOCOL'} = '6';\r
+$cgiparams{'NAME'} = '';\r
+$cgiparams{'PORT_INVERT'} = 'off';\r
+$cgiparams{'PROTOCOL_INVERT'} = 'off';\r
+$cgiparams{'ICMP'} = 'BLANK';\r
+\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'add'}){\r
+\r
+       &validateparams();\r
+       unless($errormessage){\r
+               $key++; # Add one to last sequence number\r
+               open(FILE,">>$filename") or die 'Unable to open config file.';\r
+               flock FILE, 2;\r
+               print FILE "$key,$cgiparams{'NAME'},$cgiparams{'PORTS'},$cgiparams{'PROTOCOL'},$cgiparams{'PORT_INVERT'},$cgiparams{'PROTOCOL_INVERT'},$cgiparams{'ICMP'}\n";\r
+               close(FILE);\r
+               &General::log("$Lang::tr{'service added'}: $cgiparams{'NAME'}");\r
+               undef %cgiparams;\r
+       }\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'update'})\r
+{\r
+       &validateparams();\r
+       # Darren Critchley - If there is an error don't waste any more processing time\r
+       if ($errormessage) { $cgiparams{'ACTION'} = $Lang::tr{'edit'}; goto UPD_ERROR; }\r
+\r
+       unless($errormessage){\r
+               open(FILE, $filename) or die 'Unable to open custom services file.';\r
+               my @current = <FILE>;\r
+               close(FILE);\r
+               my $line;\r
+               open(FILE, ">$filename") or die 'Unable to open config file.';\r
+               flock FILE, 2;\r
+               foreach $line (@current) {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       if ($cgiparams{'KEY'} eq $temp[0]) {\r
+                               print FILE "$cgiparams{'KEY'},$cgiparams{'NAME'},$cgiparams{'PORTS'},$cgiparams{'PROTOCOL'},$cgiparams{'PORT_INVERT'},$cgiparams{'PROTOCOL_INVERT'},$cgiparams{'ICMP'}\n";\r
+                       } else {\r
+                               print FILE "$line\n";\r
+                       }\r
+               }\r
+               close(FILE);\r
+               &General::log("$Lang::tr{'service updated'}: $cgiparams{'NAME'}");\r
+               undef %cgiparams;\r
+       }\r
+UPD_ERROR:\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'})\r
+{\r
+       open(FILE, "$filename") or die 'Unable to open custom services file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+\r
+       unless ($errormessage)\r
+       {\r
+               foreach my $line (@current)\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       if ($cgiparams{'KEY'} eq $temp[0]) {\r
+                               $cgiparams{'NAME'} = $temp[1];\r
+                               $cgiparams{'PORTS'} = $temp[2];\r
+                               $cgiparams{'PROTOCOL'} = $temp[3];\r
+                               $cgiparams{'PORT_INVERT'} = $temp[4];\r
+                               $cgiparams{'PROTOCOL_INVERT'} = $temp[5];\r
+                               $cgiparams{'ICMP'} = $temp[6];\r
+                       }\r
+                       \r
+               }\r
+       }\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'})\r
+{\r
+       open(FILE, $filename) or die 'Unable to open custom services file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+\r
+       open(FILE, ">$filename") or die 'Unable to open custom services file.';\r
+       flock FILE, 2;\r
+       foreach my $line (@current)\r
+       {\r
+               chomp($line);\r
+               if ($line ne '') {              \r
+                       my @temp = split(/\,/,$line);\r
+                       if ($cgiparams{'KEY'} eq $temp[0]) {\r
+                               &General::log("$Lang::tr{'service removed'}: $temp[1]");\r
+                       } else {\r
+                                       print FILE "$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6]\n";\r
+                       }\r
+               }\r
+       }\r
+       close(FILE);\r
+       undef %cgiparams;\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'reset'})\r
+{\r
+       undef %cgiparams;\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq '')\r
+{\r
+       $cgiparams{'KEY'} = '';\r
+       $cgiparams{'PORTS'} = '';\r
+       $cgiparams{'PROTOCOL'} = '6';\r
+    $cgiparams{'NAME'} = '';\r
+       $cgiparams{'PORT_INVERT'} = 'off';\r
+       $cgiparams{'PROTOCOL_INVERT'} = 'off';\r
+       $cgiparams{'ICMP'} = 'BLANK';\r
+}\r
+\r
+# Darren Critchley - Bring in the protocols file built from /etc/protocols into hash %protocol\r
+require "${General::swroot}/firewall/protocols.pl";\r
+\r
+# Darren Critchley - figure out which protocol is selected\r
+$selected{'PROTOCOL'}{'tcpudp'}= '';\r
+$selected{'PROTOCOL'}{'all'}= '';\r
+foreach $line (keys %protocols) {\r
+#      $selected{'PROTOCOL'}{"$protocols{$line}"}= '';\r
+       $selected{'PROTOCOL'}{$line}= '';\r
+}\r
+$selected{'PROTOCOL'}{$cgiparams{'PROTOCOL'}} = 'SELECTED';\r
+\r
+# Darren Critchley - figure out which icmptype is selected\r
+$selected{'ICMP'}{$cgiparams{'ICMP'}} = 'SELECTED';\r
+\r
+$checked{'PORT_INVERT'}{'off'} = '';\r
+$checked{'PORT_INVERT'}{'on'} = '';\r
+$checked{'PORT_INVERT'}{$cgiparams{'PORT_INVERT'}} = 'CHECKED';\r
+$checked{'PROTOCOL_INVERT'}{'off'} = '';\r
+$checked{'PROTOCOL_INVERT'}{'on'} = '';\r
+$checked{'PROTOCOL_INVERT'}{$cgiparams{'PROTOCOL_INVERT'}} = 'CHECKED';\r
+\r
+&Header::openpage($Lang::tr{'services settings'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'LEFT', '', $errormessage);\r
+\r
+# DEBUG DEBUG\r
+#&Header::openbox('100%', 'LEFT', 'DEBUG');\r
+#foreach $line (keys %cgiparams) {\r
+#      print "<CLASS NAME='base'>$line = $cgiparams{$line}<BR>";\r
+#}\r
+#print "$sort_col\n";\r
+#print "$ENV{'QUERY_STRING'}\n";\r
+#print "&nbsp;</CLASS>\n";\r
+#&Header::closebox();\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'LEFT', $Lang::tr{'error messages'});\r
+       print "<CLASS NAME='base'><FONT COLOR='${Header::colourred}'>$errormessage\n</FONT>";\r
+       print "&nbsp;</CLASS>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'edit service'}:");\r
+} else {\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'add service'}:");\r
+}\r
+# Darren Critchley - Show protocols with TCP, UDP, etc at the top of the list.\r
+print <<END\r
+<FORM METHOD='POST'>\r
+<DIV ALIGN='CENTER'>\r
+<TABLE WIDTH='100%' ALIGN='CENTER'>\r
+<TR align="center">\r
+       <TD><strong>$Lang::tr{'servicename'}</strong></TD>\r
+       <TD ALIGN='RIGHT'><strong>$Lang::tr{'invert'}</strong></TD>\r
+       <TD><strong>$Lang::tr{'ports'}</strong></TD>\r
+       <TD ALIGN='RIGHT'><strong>$Lang::tr{'invert'}</strong></TD>\r
+       <TD><strong>$Lang::tr{'protocol'}</strong></TD>\r
+       <TD>&nbsp;</TD>\r
+       <TD>&nbsp;</TD>\r
+</TR>\r
+<TR align="center">\r
+       <TD>\r
+               <INPUT TYPE='TEXT' NAME='NAME' VALUE='$cgiparams{'NAME'}' SIZE='20' MAXLENGTH='20'>\r
+       </TD>\r
+       <TD ALIGN='RIGHT'>\r
+               <INPUT TYPE='CHECKBOX' NAME='PORT_INVERT' $checked{'PORT_INVERT'}{'on'}>\r
+       </TD>\r
+       <TD>\r
+               <INPUT TYPE='TEXT' NAME='PORTS' VALUE='$cgiparams{'PORTS'}' SIZE='15' MAXLENGTH='11'>\r
+       </TD>\r
+       <TD ALIGN='RIGHT'>\r
+               <INPUT TYPE='CHECKBOX' NAME='PROTOCOL_INVERT' $checked{'PROTOCOL_INVERT'}{'on'}>\r
+       </TD>\r
+    <TD ALIGN='LEFT'>\r
+               <SELECT NAME='PROTOCOL'>\r
+                       <OPTION VALUE='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</OPTION>\r
+                       <OPTION VALUE='udp' $selected{'PROTOCOL'}{'udp'}>UDP</OPTION>\r
+                       <OPTION VALUE='tcpudp' $selected{'PROTOCOL'}{'tcpudp'}>TCP & UDP</OPTION>\r
+                       <OPTION VALUE='all' $selected{'PROTOCOL'}{'all'}>ALL</OPTION>\r
+                       <OPTION VALUE='icmp' $selected{'PROTOCOL'}{'icmp'}>ICMP</OPTION>\r
+                       <OPTION VALUE='gre' $selected{'PROTOCOL'}{'gre'}>GRE</OPTION>\r
+END\r
+;\r
+foreach $line (sort keys %protocols) {\r
+       # Darren Critchley - do not have duplicates in the list\r
+       if ($protocols{$line} ne '6' && $protocols{$line} ne '17' && $protocols{$line} ne '1' && $protocols{$line} ne '47'){\r
+#              print "<OPTION VALUE='$line' $selected{'PROTOCOL'}{$protocols{$line}}>".uc($line)."</OPTION>\n";\r
+               print "<OPTION VALUE='$line' $selected{'PROTOCOL'}{$line}>".uc($line)."</OPTION>\n";\r
+       }\r
+}\r
+print <<END\r
+               </SELECT>\r
+       </TD>\r
+</TR>\r
+<TR>\r
+       <TD>&nbsp;</TD>\r
+       <TD>&nbsp;</TD>\r
+       <TD>&nbsp;</TD>\r
+       <TD><strong>$Lang::tr{'icmp type'}:</strong></TD>\r
+       <TD ALIGN='LEFT'>\r
+                       <SELECT NAME='ICMP'>\r
+                               <OPTION VALUE='BLANK' $selected{'ICMP'}{'BLANK'}>Valid ICMP Types</OPTION>\r
+END\r
+;\r
+foreach $line (@icmptypes) {\r
+       if ($cgiparams{'ICMP'} eq $line){\r
+               print "<OPTION VALUE='$line' SELECTED>$line</OPTION>\n";\r
+       } else {\r
+               print "<OPTION VALUE='$line' >$line</OPTION>\n";\r
+       }\r
+}\r
+print <<END\r
+                       </SELECT>\r
+       </TD>\r
+</TR>\r
+<TR>\r
+END\r
+;\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){\r
+       print "<TD ALIGN='CENTER'><INPUT TYPE='SUBMIT' NAME='ACTION' VALUE='$Lang::tr{'update'}'></TD>\n";\r
+       print "<INPUT TYPE='HIDDEN' NAME='KEY' VALUE='$cgiparams{'KEY'}'>\n";\r
+       print "<TD ALIGN='CENTER'><INPUT TYPE='SUBMIT' NAME='ACTION' VALUE='$Lang::tr{'reset'}'></TD>\n";\r
+} else {\r
+       print "<TD ALIGN='CENTER'><INPUT TYPE='SUBMIT' NAME='ACTION' VALUE='$Lang::tr{'add'}'></TD>\n";\r
+       print "<TD ALIGN='CENTER'><INPUT TYPE='SUBMIT' NAME='ACTION' VALUE='$Lang::tr{'reset'}'></TD>\n";\r
+}\r
+print <<END\r
+</TR>\r
+</TABLE>\r
+</DIV>\r
+</FORM>\r
+END\r
+;\r
+\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%', 'LEFT', "$Lang::tr{'custom services'}:");\r
+print <<END\r
+<DIV ALIGN='CENTER'>\r
+<TABLE WIDTH='100%' ALIGN='CENTER'>\r
+<TR align="center">\r
+END\r
+;\r
+\r
+if ($sort_dir eq 'asc' && $sort_col eq '2') {\r
+       print "<TD WIDTH='25%'><strong><a href='services.cgi?sortcol=2&srtype=a&srtdir=dsc' title='$Lang::tr{'sort descending'}'>$Lang::tr{'servicename'}</a></strong></TD>\n";\r
+} else {\r
+       print "<TD WIDTH='25%'><strong><a href='services.cgi?sortcol=2&srtype=a&srtdir=asc' title='$Lang::tr{'sort ascending'}'>$Lang::tr{'servicename'}</a></strong></TD>\n";\r
+}\r
+if ($sort_dir eq 'asc' && $sort_col eq '3') {\r
+       print "<TD WIDTH='25%'><strong><a href='services.cgi?sortcol=3&srtype=n&srtdir=dsc' title='$Lang::tr{'sort descending'}'>$Lang::tr{'ports'}</a></strong></TD>\n";\r
+} else {\r
+       print "<TD WIDTH='25%'><strong><a href='services.cgi?sortcol=3&srtype=n&srtdir=asc' title='$Lang::tr{'sort ascending'}'>$Lang::tr{'ports'}</a></strong></TD>\n";\r
+}\r
+if ($sort_dir eq 'asc' && $sort_col eq '4') {\r
+       print "<TD WIDTH='25%'><strong><a href='services.cgi?sortcol=4&srtype=a&srtdir=dsc' title='$Lang::tr{'sort descending'}'>$Lang::tr{'protocol'}</a></strong></TD>\n";\r
+} else {\r
+       print "<TD WIDTH='25%'><strong><a href='services.cgi?sortcol=4&srtype=a&srtdir=asc' title='$Lang::tr{'sort ascending'}'>$Lang::tr{'protocol'}</a></strong></TD>\n";\r
+}\r
+\r
+print <<END\r
+       <TD WIDTH='25%'><strong>$Lang::tr{'icmp type'}</strong></TD>\r
+       <TD WIDTH='5%'>&nbsp;</TD>\r
+       <TD WIDTH='5%'>&nbsp;</TD>\r
+</TR>\r
+END\r
+;\r
+&display_custom_services();\r
+print <<END\r
+</TABLE>\r
+</DIV>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%', 'LEFT', "$Lang::tr{'default services'}:");\r
+print <<END\r
+<DIV ALIGN='CENTER'>\r
+<TABLE WIDTH='100%' ALIGN='CENTER'>\r
+<TR align="center">\r
+       <TD><strong>$Lang::tr{'servicename'}</strong></TD>\r
+       <TD><strong>$Lang::tr{'ports'}</strong></TD>\r
+       <TD><strong>$Lang::tr{'protocol'}</strong></TD>\r
+</TR>\r
+END\r
+;\r
+&display_default_services();\r
+print <<END\r
+</TABLE>\r
+</DIV>\r
+END\r
+;\r
+&Header::closebox();\r
\r
+    print "$Lang::tr{'this feature has been sponsored by'} : ";\r
+    print "<A HREF='http://www.kdi.ca/' TARGET='_blank'>Kobelt Development Inc.</A>.\n";\r
+\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
+sub display_custom_services\r
+{\r
+       \r
+       open(FILE, "$filename") or die 'Unable to open services file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+\r
+       my $id = 0;\r
+       my $port_inv = '';\r
+       my $prot_inv = '';\r
+       my $port_inv_tail = '';\r
+       my $prot_inv_tail = '';\r
+       my @outarray = &General::srtarray($sort_col,$sort_type,$sort_dir,@current);\r
+       foreach $line (@outarray)\r
+       {\r
+               chomp($line);\r
+               if ($line ne ''){\r
+                       my @temp = split(/\,/,$line);\r
+                       # Darren Critchley highlight the row we are editing\r
+                       if ( $cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY'} eq $temp[0] ) { \r
+                               print "<TR BGCOLOR='${Header::colouryellow}'>\n";\r
+                       } else {\r
+                               if ($id % 2) {\r
+                                       print "<TR BGCOLOR='${Header::table1colour}'>\n"; \r
+                               } else {\r
+                       print "<TR BGCOLOR='${Header::table2colour}'>\n";\r
+                               }\r
+                       }\r
+                       print "<TD>$temp[1]</TD>\n";\r
+                       if ($temp[4] eq 'on'){$port_inv = " <strong><font color='RED'>! (</font></strong>";$port_inv_tail = "<strong><font color='RED'>)</font></strong>";}else{$port_inv='';$port_inv_tail='';}\r
+                       print "<TD ALIGN='CENTER'>" . $port_inv . &cleanport("$temp[2]") . $port_inv_tail . "</TD>\n";\r
+                       if ($temp[5] eq 'on'){$prot_inv = " <strong><font color='RED'>! (</font></strong>";$prot_inv_tail = "<strong><font color='RED'>)</font></strong>";}else{$prot_inv='';$prot_inv_tail='';}\r
+                       print "<TD ALIGN='CENTER'>" . $prot_inv . &cleanprotocol("$temp[3]") . $prot_inv_tail . "</TD>\n";\r
+                       if ($temp[6] eq 'BLANK') {\r
+                               print "<TD ALIGN='CENTER'>N/A</TD>\n";\r
+                       } else {\r
+                               print "<TD ALIGN='CENTER'>$temp[6]</TD>\n";\r
+                       }\r
+                       print <<END\r
+<FORM METHOD='POST' NAME='frm$temp[0]'>\r
+<TD ALIGN='CENTER'>\r
+       <INPUT TYPE='hidden' NAME='ACTION' VALUE='$Lang::tr{'edit'}'>\r
+       <INPUT TYPE='image' NAME='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' width='20' height='20' border='0'>\r
+       <INPUT TYPE='hidden' NAME='KEY' VALUE='$temp[0]'>\r
+</TD>\r
+</FORM>\r
+<FORM METHOD='POST' NAME='frm$temp[0]b'>\r
+<TD ALIGN='CENTER'>\r
+       <INPUT TYPE='hidden' NAME='ACTION' VALUE='$Lang::tr{'remove'}'>\r
+       <INPUT TYPE='image' NAME='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0'>\r
+       <INPUT TYPE='hidden' NAME='KEY' VALUE='$temp[0]'>\r
+</TD>\r
+</FORM>\r
+END\r
+;\r
+                       print "</TR>\n";\r
+                       $id++;\r
+               }\r
+       }\r
+}\r
+\r
+sub display_default_services\r
+{\r
+       my $fname = "${General::swroot}/firewall/defaultservices";\r
+       my $prev = "";\r
+       my $newline="";\r
+       \r
+       open(FILE, "$fname") or die 'Unable to open default services file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+       \r
+       my $id = 0;\r
+       \r
+       foreach my $line (sort @current)\r
+       {\r
+               my @temp = split(/\,/,$line);\r
+               if ($id % 2) {\r
+                       print "<TR BGCOLOR='${Header::table1colour}'>\n"; \r
+               } else {\r
+               print "<TR BGCOLOR='${Header::table2colour}'>\n";\r
+               }\r
+               print "<TD>$temp[0]</TD>\n";\r
+               print "<TD ALIGN='CENTER'>$temp[1]</TD>\n";\r
+               print "<TD ALIGN='CENTER'>" . &cleanprotocol("$temp[2]") . "</TD>\n";\r
+               print "</TR>\n";\r
+               $id++;\r
+       }\r
+}\r
+\r
+sub cleanprotocol\r
+{\r
+       my $prtcl = $_[0];\r
+       chomp($prtcl);\r
+       if ($prtcl eq 'tcpudp') {\r
+               $prtcl = 'TCP & UDP';\r
+       } else {\r
+               $prtcl = uc($prtcl);\r
+       }\r
+       return $prtcl;\r
+}\r
+\r
+sub cleanport\r
+{\r
+       my $prt = $_[0];\r
+       chomp($prt);\r
+       # Darren Critchley - Format the ports\r
+       $prt =~ s/-/ - /;\r
+       $prt =~ s/:/ - /;\r
+       return $prt;\r
+}\r
+\r
+# Validate Field Entries\r
+sub validateparams \r
+{\r
+       $erromessage='';\r
+       if ($cgiparams{'PROTOCOL'} eq 'tcp' || $cgiparams{'PROTOCOL'} eq 'udp' || $cgiparams{'PROTOCOL'} eq 'tcpudp' || $cgiparams{'PROTOCOL'} eq 'all') {\r
+               # Darren Critchley - Get rid of dashes in port ranges\r
+               $cgiparams{'PORTS'}=~ tr/-/:/;\r
+               # Darren Critchley - code to substitue wildcards\r
+               if ($cgiparams{'PORTS'} eq "*") {\r
+                       $cgiparams{'PORTS'} = "1:65535";\r
+               }\r
+               if ($cgiparams{'PORTS'} =~ /^(\D)\:(\d+)$/) {\r
+                       $cgiparams{'PORTS'} = "1:$2";\r
+               }\r
+               if ($cgiparams{'PORTS'} =~ /^(\d+)\:(\D)$/) {\r
+                       $cgiparams{'PORTS'} = "$1:65535";\r
+               }\r
+               # Darren Critchley - watch the order here, the validportrange sets errormessage=''\r
+               $errormessage = &General::validportrange($cgiparams{'PORTS'}, 'src');\r
+               if ($errormessage) {return;}\r
+       } else {\r
+               $cgiparams{'PORTS'} = "";\r
+       }\r
+       if ($cgiparams{'PROTOCOL'} eq 'tcp') {\r
+               $cgiparams{'ICMP'} = "BLANK";\r
+       }\r
+       \r
+       if($cgiparams{'PORTS'} eq '' && $cgiparams{'PORT_INVERT'} ne 'off'){\r
+               $cgiparams{'PORT_INVERT'} = 'off';\r
+       }\r
+       if ($cgiparams{'NAME'} eq '') {\r
+               $errormessage = $Lang::tr{'noservicename'};\r
+               return;\r
+       }\r
+       if ($cgiparams{'PROTOCOL'} eq 'icmp' && $cgiparams{'ICMP'} eq 'BLANK'){\r
+               $errormessage = $Lang::tr{'icmp selected but no type'};\r
+               return;\r
+       }\r
+    unless($errormessage){\r
+               $cgiparams{'NAME'}=&Header::cleanhtml($cgiparams{'NAME'});\r
+               open(FILE, $filename) or die 'Unable to open custom services file.';\r
+               my @current = <FILE>;\r
+               close(FILE);\r
+               foreach my $line (@current)\r
+               {\r
+                       chomp($line);\r
+                       if ($line ne '') {\r
+                               my @temp = split(/\,/,$line);\r
+                               if ($cgiparams{'NAME'} eq $temp[1] && $cgiparams{'KEY'} ne $temp[0]) {\r
+                                       $errormessage=$Lang::tr{'duplicate name'};\r
+                                       return;\r
+                               }\r
+                               $key=$temp[0];\r
+                       }\r
+               }\r
+               unless($errormessage){\r
+                       my $fname = "${General::swroot}/firewall/defaultservices";\r
+                       my $prev = "";\r
+                       my $newline="";\r
+                       \r
+                       open(FILE, "$fname") or die 'Unable to open default services file.';\r
+                       my @current = <FILE>;\r
+                       close(FILE);\r
+                       \r
+                       foreach my $line (sort @current)\r
+                       {\r
+                               my @temp = split(/\,/,$line);\r
+                               if ($cgiparams{'NAME'} eq $temp[0]) {\r
+                                       $errormessage=$Lang::tr{'duplicate name'};\r
+                                       return;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+sub get_icmptypes\r
+{\r
+       my $fname = "${General::swroot}/firewall/icmptypes";\r
+       my $newline="";\r
+       my @newarray=();\r
+       \r
+       open(FILE, "$fname") or die 'Unable to open icmp file.';\r
+       my @current = <FILE>;\r
+       close(FILE);\r
+\r
+       foreach $newline (sort @current)\r
+       {\r
+               chomp ($newline);\r
+               if (substr($newline, 0, 1) ne "#") {\r
+                       push (@newarray, $newline);\r
+               }\r
+       }\r
+       return (@newarray);\r
+}\r
+\r
diff --git a/html/cgi-bin/shaping.cgi b/html/cgi-bin/shaping.cgi
new file mode 100644 (file)
index 0000000..381bbf1
--- /dev/null
@@ -0,0 +1,367 @@
+#!/usr/bin/perl\r
+#\r
+#  Traffic shaping CGI\r
+#\r
+#  Copyright 2003-04-06 David Kilpatrick <dave@thunder.com.au>\r
+#\r
+# $Id: shaping.cgi,v 1.3.2.15 2005/02/27 13:42:05 eoberlander Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::table2colour}, ${Header::colouryellow} );\r
+undef (@dummy);\r
+\r
+my %shapingsettings=();\r
+my $configfile = "${General::swroot}/shaping/config";\r
+my $settingsfile = "${General::swroot}/shaping/settings";\r
+my $errormessage = '';\r
+\r
+&Header::showhttpheaders();\r
+\r
+$shapingsettings{'ACTION'} = '';\r
+$shapingsettings{'ENABLE'} = 'off';\r
+$shapingsettings{'VALID'} = '';\r
+$shapingsettings{'UPLINK'} = '';\r
+$shapingsettings{'DOWNLINK'} = '';\r
+$shapingsettings{'SERVICE_ENABLED'} = '';\r
+$shapingsettings{'SERVICE_PROT'} = '';\r
+$shapingsettings{'SERVICE_PRIO'} = '';\r
+$shapingsettings{'SERVICE_PORT'} = '';\r
+\r
+&Header::getcgihash(\%shapingsettings);\r
+\r
+open(FILE, "$configfile") or die 'Unable to open shaping config file.';\r
+my @current = <FILE>;\r
+close(FILE);\r
+\r
+if ($shapingsettings{'ACTION'} eq $Lang::tr{'save'})\r
+{\r
+       if (!($shapingsettings{'UPLINK'} =~ /^\d+$/) ||\r
+          ($shapingsettings{'UPLINK'} < 2))\r
+       {\r
+               $errormessage = $Lang::tr{'invalid uplink speed'};\r
+               goto ERROR;\r
+       }\r
+\r
+       if (!($shapingsettings{'DOWNLINK'} =~ /^\d+$/) ||\r
+            ($shapingsettings{'DOWNLINK'} < 2))\r
+       {\r
+               $errormessage = $Lang::tr{'invalid downlink speed'};\r
+               goto ERROR;\r
+       }\r
+\r
+ERROR:\r
+       if ($errormessage) {\r
+               $shapingsettings{'VALID'} = 'no'; }\r
+       else {\r
+               $shapingsettings{'VALID'} = 'yes'; }\r
+       \r
+       open(FILE,">$settingsfile") or die 'Unable to open shaping settings file.';\r
+       flock FILE, 2;\r
+       print FILE "VALID=$shapingsettings{'VALID'}\n";\r
+       print FILE "ENABLE=$shapingsettings{'ENABLE'}\n";\r
+       print FILE "UPLINK=$shapingsettings{'UPLINK'}\n";\r
+       print FILE "DOWNLINK=$shapingsettings{'DOWNLINK'}\n";\r
+       close FILE;\r
+\r
+       if ($shapingsettings{'VALID'} eq 'yes') {\r
+               system('/usr/local/bin/restartshaping');\r
+       }\r
+}\r
+if ($shapingsettings{'ACTION'} eq $Lang::tr{'add'})\r
+{\r
+       unless($shapingsettings{'SERVICE_PROT'} =~ /^(tcp|udp)$/) { $errormessage = $Lang::tr{'invalid input'}; }\r
+       unless($shapingsettings{'SERVICE_PRIO'} =~ /^(10|20|30)$/) { $errormessage = $Lang::tr{'invalid input'}; }\r
+       unless(&General::validport($shapingsettings{'SERVICE_PORT'})) { $errormessage = $Lang::tr{'invalid port'}; }\r
+\r
+       if ( ! $errormessage)\r
+       {\r
+               if ($shapingsettings{'EDITING'} eq 'no')\r
+               {\r
+                       open(FILE,">>$configfile") or die 'Unable to open shaping config file';\r
+                       flock FILE, 2;\r
+                       print FILE "$shapingsettings{'SERVICE_PROT'},$shapingsettings{'SERVICE_PORT'},$shapingsettings{'SERVICE_PRIO'},$shapingsettings{'SERVICE_ENABLED'}\n";\r
+               } else {\r
+                       open(FILE,">$configfile") or die 'Unable to open shaping config file';\r
+                       flock FILE, 2;\r
+                       my $id = 0;\r
+                       foreach my $line (@current)\r
+                       {\r
+                               $id++;\r
+                               chomp($line);\r
+                               my @temp = split(/\,/,$line);\r
+                               if ($shapingsettings{'EDITING'} eq $id) {\r
+                                       print FILE "$shapingsettings{'SERVICE_PROT'},$shapingsettings{'SERVICE_PORT'},$shapingsettings{'SERVICE_PRIO'},$shapingsettings{'SERVICE_ENABLED'}\n";\r
+                               } else {\r
+                                       print FILE "$line\n";\r
+                               }\r
+                       }\r
+               }\r
+               close FILE;\r
+               undef %shapingsettings;\r
+               system ('/usr/local/bin/restartshaping');\r
+       } else {\r
+               # stay on edit mode if an error occur\r
+               if ($shapingsettings{'EDITING'} ne 'no')\r
+               {\r
+                       $shapingsettings{'ACTION'} = $Lang::tr{'edit'};\r
+                       $shapingsettings{'ID'} = $shapingsettings{'EDITING'};\r
+               }\r
+       }\r
+}\r
+\r
+if ($shapingsettings{'ACTION'} eq $Lang::tr{'edit'})\r
+{\r
+       my $id = 0;\r
+       foreach my $line (@current)\r
+       {\r
+               $id++;\r
+               if ($shapingsettings{"ID"} eq $id)\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       $shapingsettings{'SERVICE_PROT'} = $temp[0];\r
+                       $shapingsettings{'SERVICE_PORT'} = $temp[1];\r
+                       $shapingsettings{'SERVICE_PRIO'} = $temp[2];\r
+                       $shapingsettings{'SERVICE_ENABLED'} = $temp[3];\r
+               }\r
+       }\r
+}\r
+\r
+if ($shapingsettings{'ACTION'} eq $Lang::tr{'remove'} || $shapingsettings{'ACTION'} eq $Lang::tr{'toggle enable disable'})\r
+{\r
+       open(FILE, ">$configfile") or die 'Unable to open config file.';\r
+       flock FILE, 2;\r
+       my $id = 0;\r
+       foreach my $line (@current)\r
+       {\r
+               $id++;\r
+               unless ($shapingsettings{"ID"} eq $id) { print FILE "$line"; }\r
+               elsif ($shapingsettings{'ACTION'} eq $Lang::tr{'toggle enable disable'})\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       if ($temp[3] eq "on") {\r
+                               print FILE "$temp[0],$temp[1],$temp[2],off\n";\r
+                       } else {\r
+                               print FILE "$temp[0],$temp[1],$temp[2],on\n";\r
+                       }\r
+               }\r
+       }\r
+       close(FILE);\r
+       system ('/usr/local/bin/restartshaping');\r
+}\r
+\r
+&General::readhash("${General::swroot}/shaping/settings", \%shapingsettings);\r
+\r
+if ($shapingsettings{'ACTION'} eq '')\r
+{\r
+       $shapingsettings{'SERVICE_ENABLED'} = 'on';\r
+       $shapingsettings{'SERVICE_PROT'} = 'tcp';\r
+       $shapingsettings{'SERVICE_PRIO'} = '20';\r
+       $shapingsettings{'SERVICE_PORT'} = '';\r
+}\r
+\r
+my %checked=();\r
+$checked{'ENABLE'}{'off'} = '';\r
+$checked{'ENABLE'}{'on'} = '';\r
+$checked{'ENABLE'}{$shapingsettings{'ENABLE'}} = "checked='checked'";\r
+\r
+my %service_checked=();\r
+$service_checked{'SERVICE_ENABLED'}{'off'} = '';\r
+$service_checked{'SERVICE_ENABLED'}{'on'} = '';\r
+$service_checked{'SERVICE_ENABLED'}{$shapingsettings{'SERVICE_ENABLED'}} = "checked='checked'";\r
+\r
+my %service_selected=();\r
+$service_selected{'SERVICE_PROT'}{'udp'} = '';\r
+$service_selected{'SERVICE_PROT'}{'tcp'} = '';\r
+$service_selected{'SERVICE_PROT'}{$shapingsettings{'SERVICE_PROT'}} = "selected='selected'";\r
+\r
+$service_selected{'SERVICE_PRIO'}{'10'} = '';\r
+$service_selected{'SERVICE_PRIO'}{'20'} = '';\r
+$service_selected{'SERVICE_PRIO'}{'30'} = '';\r
+$service_selected{'SERVICE_PRIO'}{$shapingsettings{'SERVICE_PRIO'}} = "selected='selected'";\r
+\r
+&Header::openpage($Lang::tr{'traffic shaping settings'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<font class='base'>$errormessage&nbsp;</font>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:");\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td><input type='checkbox' name='ENABLE' $checked{'ENABLE'}{'on'} /></td>\r
+       <td class='base' colspan='2'>$Lang::tr{'traffic shaping'}</td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td width='30%' class='base'>$Lang::tr{'downlink speed'}:&nbsp;</td>\r
+       <td width='70%'><input type='text' name='DOWNLINK' value='$shapingsettings{'DOWNLINK'}' size='5' /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td class='base'>$Lang::tr{'uplink speed'}:&nbsp;</td>\r
+       <td><input type='text' name='UPLINK' value='$shapingsettings{'UPLINK'}' size='5' /></td>\r
+</tr>\r
+</table>\r
+<table width='100%'>\r
+<hr />\r
+<tr>\r
+       <td width='50%'> &nbsp; </td>\r
+       <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox;\r
+\r
+print "</form>\n";\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+my $buttontext = $Lang::tr{'add'};\r
+if($shapingsettings{'ACTION'} eq $Lang::tr{'edit'}) {\r
+       $buttontext = $Lang::tr{'update'};\r
+       &Header::openbox('100%', 'left', $Lang::tr{'edit service'});\r
+} else {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'add service'});\r
+}\r
+\r
+print <<END\r
+\r
+<table width='100%'>\r
+<tr>\r
+       <td class='base'>$Lang::tr{'priority'}:&nbsp;</td>\r
+       <td><select name='SERVICE_PRIO'>\r
+               <option value='10' $service_selected{'SERVICE_PRIO'}{'10'}>$Lang::tr{'high'}</option>\r
+               <option value='20' $service_selected{'SERVICE_PRIO'}{'20'}>$Lang::tr{'medium'}</option>\r
+               <option value='30' $service_selected{'SERVICE_PRIO'}{'30'}>$Lang::tr{'low'}</option>\r
+       </select></td>\r
+       <td width='20%' class='base' align='right'>$Lang::tr{'port'}:&nbsp;</td>\r
+       <td><input type='text' name='SERVICE_PORT' value='$shapingsettings{'SERVICE_PORT'}' size='5' /></td>\r
+       <td width='20%' class='base' align='right'>$Lang::tr{'protocol'}:&nbsp;</td>\r
+       <td><select name='SERVICE_PROT'>\r
+                               <option value='tcp' $service_selected{'SERVICE_PROT'}{'tcp'}>TCP</option>\r
+                               <option value='udp' $service_selected{'SERVICE_PROT'}{'udp'}>UDP</option>\r
+                       </select></td>\r
+       <td width='20%' class='base' align='right'>$Lang::tr{'enabled'}&nbsp;</td> \r
+       <td width='20%'><input type='checkbox' name='SERVICE_ENABLED' $service_checked{'SERVICE_ENABLED'}{'on'} /></td>\r
+</tr>\r
+</table>\r
+<table width='100%'>\r
+<hr />\r
+<tr>\r
+       <td width='50%'>&nbsp;</td>\r
+       <td width='50%' align='center'><input type='submit' name='SUBMIT' value='$buttontext' /><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox;\r
+\r
+if ($shapingsettings{'ACTION'} eq $Lang::tr{'edit'}) {\r
+       print "<input type='hidden' name='EDITING' value='$shapingsettings{'ID'}' />\n";\r
+} else {\r
+       print "<input type='hidden' name='EDITING' value='no' />\n";\r
+}\r
+\r
+print "</form>\n";\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'shaping list options'});\r
+print <<END\r
+<table width='100%' align='center'>\r
+<tr>\r
+       <td width='33%' align='center' class='boldbase'><b>$Lang::tr{'priority'}</b></td>\r
+       <td width='33%' align='center' class='boldbase'><b>$Lang::tr{'port'}</b></td>\r
+       <td width='33%' align='center' class='boldbase'><b>$Lang::tr{'protocol'}</b></td>\r
+       <td align='center' class='boldbase' colspan='3'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+END\r
+;\r
+\r
+my $id = 0;\r
+open(SERVICES, "$configfile") or die 'Unable to open shaping config file.';\r
+while (<SERVICES>)\r
+{\r
+       my $gif = '';\r
+       my $prio = '';\r
+       my $gdesc = '';\r
+       $id++;\r
+       chomp($_);\r
+       my @temp = split(/\,/,$_);\r
+       if ($temp[3] eq "on") {\r
+               $gif = 'on.gif';  $gdesc=$Lang::tr{'click to disable'}; }\r
+       else {\r
+               $gif = 'off.gif'; $gdesc=$Lang::tr{'click to enable'};  }\r
+       if ($shapingsettings{'ACTION'} eq $Lang::tr{'edit'} && $shapingsettings{'ID'} eq $id) {\r
+               print "<tr bgcolor='${Header::colouryellow}'>\n"; }\r
+       elsif ($id % 2) {\r
+               print "<tr bgcolor='${Header::table1colour}'>\n"; }\r
+       else {\r
+               print "<tr bgcolor='${Header::table2colour}'>\n"; }\r
+       if ($temp[2] eq "10") { $prio = $Lang::tr{'high'}; }\r
+       if ($temp[2] eq "20") { $prio = $Lang::tr{'medium'}; }\r
+       if ($temp[2] eq "30") { $prio = $Lang::tr{'low'}; }\r
+       \r
+print <<END\r
+<td align='center'>$prio</td>\r
+<td align='center'>$temp[1]</td>\r
+<td align='center'>$temp[0]</td>\r
+\r
+<td align='center'>\r
+       <form method='post' action='$ENV{'SCRIPT_NAME'}' name='frma$id'>\r
+       <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+       <input type='hidden' name='ID' value='$id' />\r
+       </form>\r
+</td>\r
+\r
+<td align='center'>\r
+       <form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' title='$Lang::tr{'edit'}' alt='$Lang::tr{'edit'}' />\r
+       <input type='hidden' name='ID' value='$id' />\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />\r
+       </form>\r
+</td>\r
+\r
+<td align='center'>\r
+       <form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' />\r
+       <input type='hidden' name='ID' value='$id' />\r
+       <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />\r
+       </form>\r
+</td>\r
+\r
+</tr>\r
+END\r
+;\r
+}\r
+close(SERVICES);\r
+\r
+print <<END\r
+</table>\r
+END\r
+;\r
+&Header::closebox;\r
+\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage;\r
diff --git a/html/cgi-bin/shutdown.cgi b/html/cgi-bin/shutdown.cgi
new file mode 100644 (file)
index 0000000..2f62c78
--- /dev/null
@@ -0,0 +1,253 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: shutdown.cgi,v 1.5.2.10 2006/01/02 16:21:00 eoberlander Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %cgiparams=();\r
+my $death = 0;\r
+my $rebirth = 0;\r
+my $default_time = '03:15';\r
+\r
+&Header::showhttpheaders();\r
+\r
+$cgiparams{'ACTION'} = '';\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) {\r
+       $death = 1;\r
+       &General::log($Lang::tr{'shutting down ipcop'});\r
+       #system '/usr/local/bin/ipcopdeath';\r
+       system '/usr/local/bin/ipcopreboot down';\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) {\r
+       $rebirth = 1;\r
+       &General::log($Lang::tr{'rebooting ipcop'});\r
+       #system '/usr/local/bin/ipcoprebirth';\r
+       system '/usr/local/bin/ipcopreboot boot';\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) {\r
+       my $days='';\r
+       my $n = 1;\r
+       # build list of days\r
+       map ($cgiparams{$_} eq 'on' ?  $days .= ",".$n++ : $n++ ,\r
+           ('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY') );\r
+\r
+       # if days is empty, it is a remove else it is a change\r
+       if (length ($days)){\r
+           substr($days,0,1) = '';     #kill front comma\r
+           &General::log("Scheduling reboot on $days at $cgiparams{'TIME'}");\r
+           my $min;\r
+           my $hour;\r
+           ($hour,$min) = split (':', $cgiparams{'TIME'});\r
+           $days = "'*'" if ($days eq '1,2,3,4,5,6,7');\r
+           my $mode = ($cgiparams{'MODE'} eq 'halt') ? '-h' : '-r';\r
+           system "/usr/local/bin/ipcopreboot cron+ $min $hour $days $mode"; #reboot checks values of $hour & $min\r
+       } else {\r
+           &General::log("Remove scheduled reboot");\r
+           system '/usr/local/bin/ipcopreboot cron-';\r
+       }\r
+}\r
+if ($death == 0 && $rebirth == 0) {\r
+\r
+       &Header::openpage($Lang::tr{'shutdown control'}, 1, '');\r
+\r
+       &Header::openbigbox('100%', 'left');\r
+\r
+       print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+       &Header::openbox('100%', 'left', $Lang::tr{'shutdown2'});\r
+       print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' /></td>\r
+       <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+       ;\r
+       &Header::closebox();\r
+\r
+       &Header::openbox('100%', 'left', $Lang::tr{'reboot schedule'});\r
+       my %checked=();\r
+       my $reboot_at = $default_time;\r
+       my $days = '';\r
+\r
+       #decode the shutdown line stored in crontab\r
+       #get the line\r
+       open(FILE, "/usr/local/bin/ipcopreboot cron?|");\r
+       my $schedule = <FILE>;\r
+       close (FILE);\r
+\r
+       if ($schedule) { # something exist\r
+           $schedule =~ /(\d+) (\d+) \* \* ([1234567*,]+) .* (-[h|r])/;\r
+           $reboot_at = sprintf("%.02d",$2) . ':' . sprintf("%.02d",$1);  # hour (03:45)\r
+           $days = $3;         # 1,2,3... or *\r
+           if ($4 eq '-h') {\r
+                $checked{'MODE'}{'halt'} = "checked='checked'";\r
+            } else {\r
+                $checked{'MODE'}{'reboot'} = "checked='checked'";\r
+            }\r
+       }\r
+       #decode $days\r
+       if ($days eq '*') {\r
+           $checked{'MONDAY'} = "checked='checked'";\r
+           $checked{'TUESDAY'} = "checked='checked'";\r
+           $checked{'WEDNESDAY'} = "checked='checked'";\r
+           $checked{'THURSDAY'} = "checked='checked'";\r
+           $checked{'FRIDAY'} = "checked='checked'";\r
+           $checked{'SATURDAY'} = "checked='checked'";\r
+           $checked{'SUNDAY'} = "checked='checked'";\r
+       } else {\r
+           $checked{'MONDAY'} = "checked='checked'"    if ($days =~ /1/);\r
+           $checked{'TUESDAY'} = "checked='checked'"   if ($days =~ /2/);\r
+           $checked{'WEDNESDAY'} = "checked='checked'" if ($days =~ /3/);\r
+           $checked{'THURSDAY'} = "checked='checked'"  if ($days =~ /4/);\r
+           $checked{'FRIDAY'} = "checked='checked'"    if ($days =~ /5/);\r
+           $checked{'SATURDAY'} = "checked='checked'"  if ($days =~ /6/);\r
+           $checked{'SUNDAY'} = "checked='checked'"    if ($days =~ /7/);          \r
+       }\r
+\r
+       print <<END\r
+<table width='100%'>\r
+<tr>\r
+    <td class='boldbase' colspan='2'><b>$Lang::tr{'time'}</b></td>\r
+    <td class='boldbase' colspan='2'><b>$Lang::tr{'day'}</b></td>\r
+    <td class='boldbase'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+<tr>\r
+END\r
+        ;\r
+        print "<td align='left' width='15%' class='base' valign='top' rowspan='2'>", &select_hour_var("TIME", $reboot_at);\r
+        print <<END\r
+</td>\r
+    <td>\r
+        <input type='checkbox' name='MONDAY'    $checked{'MONDAY'}></td>\r
+    <td width='15%' class='base'>\r
+        $Lang::tr{'monday'}</td>\r
+    <td>\r
+        <input type='radio' name='MODE' value='reboot' $checked{'MODE'}{'reboot'} /></td>\r
+    <td width='70%' class='base'>$Lang::tr{'reboot'}</td></tr>\r
+<tr>\r
+    <td>\r
+        <input type='checkbox' name='TUESDAY'   $checked{'TUESDAY'}></td>\r
+    <td width='15%' class='base'>\r
+        $Lang::tr{'tuesday'}</td>\r
+    <td>\r
+        <input type='radio' name='MODE' value='halt' $checked{'MODE'}{'halt'} /></td>\r
+    <td class='base'>$Lang::tr{'shutdown'}</td></tr>\r
+<tr>\r
+    <td>&nbsp;</td>\r
+    <td>\r
+        <input type='checkbox' name='WEDNESDAY' $checked{'WEDNESDAY'}></td>\r
+    <td width='15%' class='base'>\r
+        $Lang::tr{'wednesday'}</td></tr>\r
+<tr>\r
+    <td>&nbsp;</td>\r
+    <td>\r
+        <input type='checkbox' name='THURSDAY'  $checked{'THURSDAY'}></td>\r
+    <td width='15%' class='base'>\r
+        $Lang::tr{'thursday'}</td></tr>\r
+<tr>\r
+    <td>&nbsp;</td>\r
+    <td>\r
+        <input type='checkbox' name='FRIDAY'    $checked{'FRIDAY'}></td>\r
+    <td width='15%' class='base'>\r
+        $Lang::tr{'friday'}</td></tr>\r
+<tr>\r
+    <td>&nbsp;</td>\r
+    <td>\r
+        <input type='checkbox' name='SATURDAY'  $checked{'SATURDAY'}></td>\r
+    <td width='15%' class='base'>\r
+        $Lang::tr{'saturday'}</td></tr>\r
+<tr>\r
+    <td>&nbsp;</td>\r
+    <td>\r
+        <input type='checkbox' name='SUNDAY'    $checked{'SUNDAY'}></td>\r
+    <td width='15%' class='base'>\r
+        $Lang::tr{'sunday'}</td></tr>\r
+</table>\r
+\r
+<table width='100%'>\r
+<hr />\r
+<tr>\r
+    <td width='60%'>&nbsp;</td>\r
+    <td width='30%' align='center'>\r
+        <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />\r
+    </td>\r
+    <td width='10%' align='right'>\r
+        <a href='${General::adminmanualurl}/system.html#shutdown' target='_blank'>\r
+        <img src='/images/web-support.png' title='$Lang::tr{'online help en'}' /></a></td>\r
+</tr>\r
+</table>\r
+\r
+END\r
+;\r
+       &Header::closebox();\r
+       print "</form>\n";\r
+} else {\r
+       my $message='';\r
+       my $title='';\r
+       my $refresh = "<meta http-equiv='refresh' content='5; URL=/cgi-bin/index.cgi' />";\r
+       if ($death) {\r
+               $title = $Lang::tr{'shutting down'};\r
+               $message = $Lang::tr{'ipcop has now shutdown'};\r
+       } else {\r
+               $title = $Lang::tr{'rebooting'};\r
+               $message = $Lang::tr{'ipcop has now rebooted'};\r
+       }\r
+       &Header::openpage($title, 0, $refresh);\r
+\r
+       &Header::openbigbox('100%', 'center');\r
+       print <<END\r
+<div align='center'>\r
+<table width='100%' bgcolor='#ffffff'>\r
+<tr><td align='center'>\r
+<br /><br /><img src='/ipcop_big.gif' /><br /><br /><br />\r
+</td></tr>\r
+</table>\r
+<br />\r
+<font size='6'>$message</font>\r
+</div>\r
+END\r
+       ;\r
+}\r
+\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+\r
+\r
+# Create a named select box containing valid times from quarter to quarter.\r
+sub select_hour_var {\r
+       # Create a variable containing the SELECT with selected value variable name and current value selected\r
+        my $select_hour_var = shift;\r
+       my $selected_hour = shift;\r
+\r
+       my $select_hour = "<select name='$select_hour_var'>";\r
+       my $hh = 0;\r
+       my $mm = 15;\r
+       my $str = '00:00';\r
+       for (my $x=0; $x<(24*4); $x++) {\r
+           my $check = $selected_hour eq $str ?  "selected='selected'" : '';\r
+           $select_hour .= "<Option $check value='$str'>$str";\r
+           $str = sprintf("%.02d", $hh) . ":" . sprintf("%.02d", $mm);\r
+           $mm += 15;\r
+           if ($mm==60) {$mm=0; $hh++; }\r
+       }\r
+       $select_hour .= "</select>\n";\r
+       return ($select_hour);\r
+}\r
diff --git a/html/cgi-bin/status.cgi b/html/cgi-bin/status.cgi
new file mode 100644 (file)
index 0000000..14899d4
--- /dev/null
@@ -0,0 +1,325 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: status.cgi,v 1.6.2.7 2005/02/24 07:44:35 gespinasse Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::colourred} );\r
+undef (@dummy);\r
+\r
+my %netsettings=();\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+\r
+my %cgiparams=();\r
+# Maps a nice printable name to the changing part of the pid file, which\r
+# is also the name of the program\r
+my %servicenames =\r
+(\r
+       $Lang::tr{'dhcp server'} => 'dhcpd',\r
+       $Lang::tr{'web server'} => 'httpd',\r
+       $Lang::tr{'cron server'} => 'fcron',\r
+       $Lang::tr{'dns proxy server'} => 'dnsmasq',\r
+       $Lang::tr{'logging server'} => 'syslogd',\r
+       $Lang::tr{'kernel logging server'} => 'klogd',\r
+       $Lang::tr{'ntp server'} => 'ntpd',\r
+       $Lang::tr{'secure shell server'} => 'sshd',\r
+       $Lang::tr{'vpn'} => 'pluto',\r
+       $Lang::tr{'web proxy'} => 'squid'\r
+);\r
+\r
+my $iface = '';\r
+if (open(FILE, "${General::swroot}/red/iface"))\r
+{\r
+       $iface = <FILE>;\r
+       close FILE;\r
+       chomp $iface;\r
+}\r
+$servicenames{"$Lang::tr{'intrusion detection system'} (RED)"}   = "snort_${iface}";\r
+$servicenames{"$Lang::tr{'intrusion detection system'} (GREEN)"} = "snort_$netsettings{'GREEN_DEV'}";\r
+if ($netsettings{'ORANGE_DEV'} ne '') {\r
+       $servicenames{"$Lang::tr{'intrusion detection system'} (ORANGE)"} = "snort_$netsettings{'ORANGE_DEV'}";\r
+}\r
+if ($netsettings{'BLUE_DEV'} ne '') {\r
+       $servicenames{"$Lang::tr{'intrusion detection system'} (BLUE)"} = "snort_$netsettings{'BLUE_DEV'}";\r
+}\r
+\r
+&Header::showhttpheaders();\r
+\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+&Header::openpage($Lang::tr{'status information'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left');\r
+\r
+print <<END\r
+<table width='100%' cellspacing='0' cellpadding='5'border='0'>\r
+<tr><td style="background-color: #EAE9EE;" align='left'>\r
+    <a href='#services'>$Lang::tr{'services'}</a> |\r
+    <a href='#memory'>$Lang::tr{'memory'}</a> |\r
+    <a href='#disk'>$Lang::tr{'disk usage'}</a> |\r
+    <a href='#uptime'>$Lang::tr{'uptime and users'}</a> |\r
+    <a href='#modules'>$Lang::tr{'loaded modules'}</a> |\r
+    <a href='#kernel'>$Lang::tr{'kernel version'}</a>\r
+</td></tr></table>\r
+END\r
+;\r
+\r
+print "<a name='services'/>\n"; \r
+&Header::openbox('100%', 'left', $Lang::tr{'services'});\r
+\r
+print <<END\r
+<div align='center'>\r
+<table width='60%' cellspacing='0' border='0'>\r
+END\r
+;\r
+\r
+my $lines = 0;\r
+my $key = '';\r
+foreach $key (sort keys %servicenames)\r
+{\r
+       if ($lines % 2) {\r
+               print "<tr bgcolor='${Header::table1colour}'>\n"; }\r
+       else {\r
+               print "<tr bgcolor='${Header::table2colour}'>\n"; }\r
+       print "<td align='left'>$key</td>\n";\r
+       my $shortname = $servicenames{$key};\r
+       my $status = &isrunning($shortname);\r
+       print "$status\n";\r
+       print "</tr>\n";\r
+       $lines++;\r
+}\r
+\r
+\r
+print "</table></div>\n";\r
+\r
+&Header::closebox();\r
+\r
+print "<a name='memory'/>\n";\r
+&Header::openbox('100%', 'left', $Lang::tr{'memory'});\r
+print "<table><tr><td><table>";\r
+my $ram=0;\r
+my $size=0;\r
+my $used=0;\r
+my $free=0;\r
+my $percent=0;\r
+my $shared=0;\r
+my $buffers=0;\r
+my $cached=0;\r
+open(FREE,'/usr/bin/free |');\r
+while(<FREE>)\r
+{\r
+       if ($_ =~ m/^\s+total\s+used\s+free\s+shared\s+buffers\s+cached$/ )\r
+       {\r
+    print <<END\r
+<tr>\r
+<td>&nbsp;</td>\r
+<td align='center' class='boldbase'><b>$Lang::tr{'size'}</b></td>\r
+<td align='center' class='boldbase'><b>$Lang::tr{'used'}</b></td>\r
+<td align='center' class='boldbase'><b>$Lang::tr{'free'}</b></td>\r
+<td align='left' class='boldbase' colspan='2'><b>$Lang::tr{'percentage'}</b></td>\r
+</tr>\r
+END\r
+;\r
+  } else {\r
+    if ($_ =~ m/^Mem:\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)$/) {\r
+      ($ram,$size,$used,$free,$shared,$buffers,$cached) = ($1,$1,$2,$3,$4,$5,$6);\r
+      ($percent = ($used/$size)*100) =~ s/^(\d+)(\.\d+)?$/$1%/;\r
+      print <<END\r
+<tr>\r
+<td class='boldbase'><b>$Lang::tr{'ram'}</b></td>\r
+<td align='right'>$size</td>\r
+END\r
+;\r
+    } elsif ($_ =~ m/^Swap:\s+(\d+)\s+(\d+)\s+(\d+)$/) {\r
+      ($size,$used,$free) = ($1,$2,$3);\r
+      if ($size != 0)\r
+      {\r
+        ($percent = ($used/$size)*100) =~ s/^(\d+)(\.\d+)?$/$1%/;\r
+      } else {\r
+        ($percent = '');\r
+      }\r
+      print <<END\r
+<tr>\r
+<td class='boldbase'><b>$Lang::tr{'swap'}</b></td>\r
+<td align='right'>$size</td>\r
+END\r
+;\r
+    } elsif ($ram and $_ =~ m/^-\/\+ buffers\/cache:\s+(\d+)\s+(\d+)$/ ) {\r
+      ($used,$free) = ($1,$2);\r
+      ($percent = ($used/$ram)*100) =~ s/^(\d+)(\.\d+)?$/$1%/;\r
+      print "<tr><td colspan='2' class='boldbase'><b>$Lang::tr{'excluding buffers and cache'}</b></td>"\r
+    }\r
+    print <<END\r
+<td align='right'>$used</td>\r
+<td align='right'>$free</td>\r
+<td>\r
+END\r
+;\r
+    &percentbar($percent);\r
+    print <<END\r
+</td>\r
+<td align='right'>$percent</td>\r
+</tr>\r
+END\r
+;\r
+  }\r
+}\r
+close FREE;\r
+print <<END\r
+</table></td><td>\r
+<table>\r
+<tr><td class='boldbase'><b>$Lang::tr{'shared'}</b></td><td align='right'>$shared</td></tr>\r
+<tr><td class='boldbase'><b>$Lang::tr{'buffers'}</b></td><td align='right'>$buffers</td></tr>\r
+<tr><td class='boldbase'><b>$Lang::tr{'cached'}</b></td><td align='right'>$cached</td></tr>\r
+</table>\r
+</td></tr></table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+print "<a name='disk'/>\n";\r
+&Header::openbox('100%', 'left', $Lang::tr{'disk usage'});\r
+print "<table>\n";\r
+open(DF,'/bin/df -B M -x rootfs|');\r
+while(<DF>)\r
+{\r
+       if ($_ =~ m/^Filesystem/ )\r
+       {\r
+               print <<END\r
+<tr>\r
+<td align='left' class='boldbase'><b>$Lang::tr{'device'}</b></td>\r
+<td align='left' class='boldbase'><b>$Lang::tr{'mounted on'}</b></td>\r
+<td align='center' class='boldbase'><b>$Lang::tr{'size'}</b></td>\r
+<td align='center' class='boldbase'><b>$Lang::tr{'used'}</b></td>\r
+<td align='center' class='boldbase'><b>$Lang::tr{'free'}</b></td>\r
+<td align='left' class='boldbase' colspan='2'><b>$Lang::tr{'percentage'}</b></td>\r
+</tr>\r
+END\r
+;\r
+       }\r
+       else\r
+       {\r
+               my ($device,$size,$used,$free,$percent,$mount) = split;\r
+               print <<END\r
+<tr>\r
+<td>$device</td>\r
+<td>$mount</td>\r
+<td align='right'>$size</td>\r
+<td align='right'>$used</td>\r
+<td align='right'>$free</td>\r
+<td>\r
+END\r
+;\r
+               &percentbar($percent);\r
+               print <<END\r
+</td>\r
+<td align='right'>$percent</td>\r
+</tr>\r
+END\r
+;\r
+       }\r
+}\r
+close DF;\r
+print "</table>\n";\r
+&Header::closebox();\r
+\r
+print "<a name='uptime'/>\n";\r
+&Header::openbox('100%', 'left', $Lang::tr{'uptime and users'});\r
+my $output = `/usr/bin/w`;\r
+$output = &Header::cleanhtml($output,"y");\r
+print "<pre>$output</pre>\n";\r
+&Header::closebox();\r
+\r
+print "<a name='modules'/>\n";\r
+&Header::openbox('100%', 'left', $Lang::tr{'loaded modules'});\r
+$output = qx+/sbin/lsmod+;\r
+($output = &Header::cleanhtml($output,"y")) =~ s/\[.*\]//g;\r
+print "<pre>\n$output\n</pre>\n";\r
+&Header::closebox();\r
+\r
+print "<a name='kernel'/>\n";\r
+&Header::openbox('100%', 'left', $Lang::tr{'kernel version'});\r
+print "<pre>\n";\r
+print `/bin/uname -a`;\r
+print "</pre>\n";\r
+&Header::closebox();\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
+sub isrunning\r
+{\r
+       my $cmd = $_[0];\r
+       my $status = "<td bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td>";\r
+       my $pid = '';\r
+       my $testcmd = '';\r
+       my $exename;\r
+\r
+       $cmd =~ /(^[a-z]+)/;\r
+       $exename = $1;\r
+\r
+       if (open(FILE, "/var/run/${cmd}.pid"))\r
+       {\r
+               $pid = <FILE>; chomp $pid;\r
+               close FILE;\r
+               if (open(FILE, "/proc/${pid}/status"))\r
+               {\r
+                       while (<FILE>)\r
+                       {\r
+                               if (/^Name:\W+(.*)/) {\r
+                                       $testcmd = $1; }\r
+                       }\r
+                       close FILE;\r
+                       if ($testcmd =~ /$exename/)\r
+                       {\r
+                               $status = "<td bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td>";\r
+                       }\r
+               }\r
+       }\r
+\r
+       return $status;\r
+}\r
+\r
+sub percentbar\r
+{\r
+  my $percent = $_[0];\r
+  my $fg = '#a0a0a0';\r
+  my $bg = '#e2e2e2';\r
+\r
+  if ($percent =~ m/^(\d+)%$/ )\r
+  {\r
+    print <<END\r
+<table width='100' border='1' cellspacing='0' cellpadding='0' style='border-width:1px;border-style:solid;border-color:$fg;width:100px;height:10px;'>\r
+<tr>\r
+END\r
+;\r
+    if ($percent eq "100%") {\r
+      print "<td width='100%' bgcolor='$fg' style='background-color:$fg;border-style:solid;border-width:1px;border-color:$bg'>"\r
+    } elsif ($percent eq "0%") {\r
+      print "<td width='100%' bgcolor='$bg' style='background-color:$bg;border-style:solid;border-width:1px;border-color:$bg'>"\r
+    } else {\r
+      print "<td width='$percent' bgcolor='$fg' style='background-color:$fg;border-style:solid;border-width:1px;border-color:$bg'></td><td width='" . (100-$1) . "%' bgcolor='$bg' style='background-color:$bg;border-style:solid;border-width:1px;border-color:$bg'>"\r
+    }\r
+    print <<END\r
+<img src='/images/null.gif' width='1' height='1' alt='' /></td></tr></table>\r
+END\r
+;\r
+  }\r
+}\r
diff --git a/html/cgi-bin/time.cgi b/html/cgi-bin/time.cgi
new file mode 100644 (file)
index 0000000..4f4a739
--- /dev/null
@@ -0,0 +1,391 @@
+#!/usr/bin/perl\r
+#\r
+# IPCop CGIs\r
+#\r
+# This file is part of the IPCop Project\r
+# \r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) Eric Oberlander June 2002\r
+#\r
+# (c) Darren Critchley June 2003 - added real time clock setting, etc\r
+#\r
+# $Id: time.cgi,v 1.4.2.11 2005/05/28 12:16:18 eoberlander Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %timesettings=();\r
+my $errormessage = '';\r
+\r
+&Header::showhttpheaders();\r
+\r
+$timesettings{'ACTION'} = '';\r
+$timesettings{'VALID'} = '';\r
+\r
+$timesettings{'ENABLENTP'} = 'off';\r
+$timesettings{'NTP_ADDR_1'} = '';\r
+$timesettings{'NTP_ADDR_2'} = '';\r
+$timesettings{'UPDATE_METHOD'} = 'manually';\r
+$timesettings{'UPDATE_VALUE'} = '0';\r
+$timesettings{'UPDATE_PERIOD'} = '';\r
+$timesettings{'ENABLECLNTP'} = 'off';\r
+$timesettings{'SETHOUR'} = '';\r
+$timesettings{'SETMINUTES'} = '';\r
+$timesettings{'SETDAY'} = '';\r
+$timesettings{'SETMONTH'} = '';\r
+$timesettings{'SETYEAR'} = '';\r
+\r
+&Header::getcgihash(\%timesettings);\r
+\r
+if ($timesettings{'ACTION'} eq $Lang::tr{'instant update'})\r
+{\r
+       if ($timesettings{'SETHOUR'} eq '' || $timesettings{'SETHOUR'} < 0 || $timesettings{'SETHOUR'} > 23) {\r
+               $errormessage = $Lang::tr{'invalid time entered'};\r
+               goto UPDTERROR;\r
+       }\r
+       if ($timesettings{'SETMINUTES'} eq '' || $timesettings{'SETMINUTES'} < 0 || $timesettings{'SETMINUTES'} > 59) {\r
+               $errormessage = $Lang::tr{'invalid time entered'};\r
+               goto UPDTERROR;\r
+       }\r
+       if ($timesettings{'SETDAY'} eq '' || $timesettings{'SETDAY'} < 1 || $timesettings{'SETDAY'} > 31) {\r
+               $errormessage = $Lang::tr{'invalid date entered'};\r
+               goto UPDTERROR;\r
+       }\r
+       if ($timesettings{'SETMONTH'} eq '' || $timesettings{'SETMONTH'} < 1 || $timesettings{'SETMONTH'} > 12) {\r
+               $errormessage = $Lang::tr{'invalid date entered'};\r
+               goto UPDTERROR;\r
+       }\r
+       if ($timesettings{'SETYEAR'} eq '' || $timesettings{'SETYEAR'} < 2003 || $timesettings{'SETYEAR'} > 2030) {\r
+               $errormessage = $Lang::tr{'invalid date entered'};\r
+               goto UPDTERROR;\r
+       }\r
+\r
+UPDTERROR:\r
+       if ($errormessage) {\r
+               $timesettings{'VALID'} = 'no'; }\r
+       else {\r
+               $timesettings{'VALID'} = 'yes'; }\r
+\r
+       if ($timesettings{'VALID'} eq 'yes') {\r
+               # we want date in YYYY-MM-DD HH:MM format for date command\r
+               # EAO changed datestring to ISO 6801 format 2003-08-11\r
+               my $datestring = "$timesettings{'SETYEAR'}-$timesettings{'SETMONTH'}-$timesettings{'SETDAY'}";\r
+               my $timestring = "$timesettings{'SETHOUR'}:$timesettings{'SETMINUTES'}";\r
+               # EAO setdate.c also revised for ISO 6801 date format 2003-08-11\r
+               system ('/usr/local/bin/setdate', $datestring, $timestring);\r
+               &General::log("$Lang::tr{'time date manually reset'} $datestring $timestring");\r
+       }\r
+       unless ($errormessage) {\r
+               undef %timesettings;\r
+       }\r
+}\r
+\r
+if ($timesettings{'ACTION'} eq $Lang::tr{'save'})\r
+{ \r
+       if ($timesettings{'ENABLENTP'} eq 'on')\r
+       {\r
+               if ( ! ( &General::validfqdn($timesettings{'NTP_ADDR_1'}) ||\r
+                        &General::validip  ($timesettings{'NTP_ADDR_1'})))\r
+               {\r
+                       $errormessage = $Lang::tr{'invalid primary ntp'};\r
+                       goto ERROR;\r
+               }\r
+       }\r
+       if ($timesettings{'NTP_ADDR_2'})\r
+       {\r
+               if ( ! ( &General::validfqdn($timesettings{'NTP_ADDR_2'}) ||\r
+                        &General::validip  ($timesettings{'NTP_ADDR_2'})))\r
+               {\r
+                       $errormessage = $Lang::tr{'invalid secondary ntp'};\r
+                       goto ERROR;\r
+               }\r
+       }\r
+       if (!($timesettings{'NTP_ADDR_1'}) && $timesettings{'NTP_ADDR_2'})\r
+       {\r
+               $errormessage = $Lang::tr{'cannot specify secondary ntp without specifying primary'};\r
+               goto ERROR;\r
+       }\r
+\r
+       if (!($timesettings{'UPDATE_VALUE'} =~ /^\d+$/) || $timesettings{'UPDATE_VALUE'} <= 0)\r
+       {\r
+               $errormessage = $Lang::tr{'invalid time period'};\r
+               goto ERROR;\r
+       }\r
+\r
+       if ($timesettings{'ENABLENTP'} ne "on" && $timesettings{'ENABLECLNTP'} eq "on")\r
+       {\r
+               $errormessage = $Lang::tr{'ntp must be enabled to have clients'};\r
+               goto ERROR;\r
+       }\r
+       if ($timesettings{'ENABLENTP'} eq "on" && !($timesettings{'NTP_ADDR_1'}) && !($timesettings{'NTP_ADDR_2'}))\r
+       {\r
+               $errormessage = $Lang::tr{'cannot enable ntp without specifying primary'};\r
+               goto ERROR;\r
+       }\r
+ERROR:\r
+       if ($errormessage) {\r
+               $timesettings{'VALID'} = 'no'; }\r
+       else {\r
+               $timesettings{'VALID'} = 'yes'; }\r
+\r
+               &General::writehash("${General::swroot}/time/settings", \%timesettings);\r
+               open(FILE, ">/${General::swroot}/time/settime.conf") or die "Unable to write settime.conf file";\r
+               flock(FILE, 2);\r
+               print FILE "$timesettings{'NTP_ADDR_1'} $timesettings{'NTP_ADDR_2'}\n";\r
+               close FILE;\r
+\r
+               my $updateperiod=0;\r
+\r
+               if  ($timesettings{'UPDATE_PERIOD'} eq 'daily') {\r
+                       $updateperiod = $timesettings{'UPDATE_VALUE'} * 1440; }\r
+               elsif  ($timesettings{'UPDATE_PERIOD'} eq 'weekly') {\r
+                       $updateperiod = $timesettings{'UPDATE_VALUE'} * 10080; }\r
+               elsif  ($timesettings{'UPDATE_PERIOD'} eq 'monthly') {\r
+                       $updateperiod = $timesettings{'UPDATE_VALUE'} * 40320; }\r
+               else {\r
+                       $updateperiod = $timesettings{'UPDATE_VALUE'} * 60; }\r
+\r
+               $updateperiod = $updateperiod - 5;\r
+\r
+               if ($updateperiod <= 5) {\r
+                       $updateperiod = 5; }\r
+\r
+               open(FILE, ">/${General::swroot}/time/counter.conf") or die "Unable to write counter.conf file";\r
+               flock(FILE, 2);\r
+               print FILE "$updateperiod\n";\r
+               close FILE;\r
+\r
+       if ($timesettings{'ENABLENTP'} eq 'on' && $timesettings{'VALID'} eq 'yes')\r
+       {\r
+               system ('/bin/touch', "${General::swroot}/time/enable");\r
+               &General::log($Lang::tr{'ntp syncro enabled'});\r
+               unlink "${General::swroot}/time/counter";\r
+               if ($timesettings{'UPDATE_METHOD'} eq 'periodically')\r
+               {\r
+                       open(FILE, ">/${General::swroot}/time/counter") or die "Unable to write counter file";\r
+                       flock(FILE, 2);\r
+                       print FILE "$updateperiod\n";\r
+                       close FILE;\r
+               }\r
+               if ($timesettings{'ENABLECLNTP'} eq 'on') # DPC added to 1.3.1\r
+               {\r
+                       system ('/bin/touch', "${General::swroot}/time/allowclients"); # DPC added to 1.3.1\r
+                       &General::log($Lang::tr{'ntpd restarted'}); # DPC added to 1.3.1\r
+               } else {\r
+                       unlink "${General::swroot}/time/allowclients";\r
+               }\r
+       \r
+       }\r
+       else\r
+       {\r
+               unlink "${General::swroot}/time/enable";\r
+               unlink "${General::swroot}/time/settimenow";\r
+               unlink "${General::swroot}/time/allowclients"; # DPC added to 1.3.1\r
+               &General::log($Lang::tr{'ntp syncro disabled'})\r
+       }\r
+       if (! $errormessage) {\r
+               system ('/usr/local/bin/restartntpd'); # DPC added to 1.3.1\r
+       }\r
+}\r
+\r
+# To enter an ' into a pushbutton solution is to use &#039; in it's definition\r
+# but returned value when pressed is ' not the code. Cleanhtml recode the ' to enable comparison.\r
+$timesettings{'ACTION'} = &Header::cleanhtml ($timesettings{'ACTION'});\r
+if ($timesettings{'ACTION'} eq $Lang::tr{'set time now'} && $timesettings{'ENABLENTP'} eq 'on')\r
+{\r
+       system ('/bin/touch', "${General::swroot}/time/settimenow");\r
+}\r
+\r
+&General::readhash("${General::swroot}/time/settings", \%timesettings);\r
+\r
+if ($timesettings{'VALID'} eq '')\r
+{\r
+       $timesettings{'ENABLENTP'} = 'off';\r
+       $timesettings{'UPDATE_METHOD'} = 'manually';\r
+       $timesettings{'UPDATE_VALUE'} = '1';\r
+       $timesettings{'UPDATE_PERIOD'} = 'daily';\r
+       $timesettings{'NTP_ADDR_1'} = 'pool.ntp.org';\r
+       $timesettings{'NTP_ADDR_2'} = 'pool.ntp.org';\r
+}\r
+\r
+unless ($errormessage) {\r
+       $timesettings{'SETMONTH'} = `date +'%m %e %Y %H %M'|cut -c 1-2`;\r
+       $timesettings{'SETDAY'} = `date +'%m %e %Y %H %M'|cut -c 4-5`;\r
+       $timesettings{'SETYEAR'} = `date +'%m %e %Y %H %M'|cut -c 7-10`;\r
+       $timesettings{'SETHOUR'} = `date +'%m %e %Y %H %M'|cut -c 12-13`;\r
+       $timesettings{'SETMINUTES'} = `date +'%m %e %Y %H %M'|cut -c 15-16`;\r
+       $_=$timesettings{'SETDAY'};\r
+       $timesettings{'SETDAY'}=~ tr/ /0/;\r
+}\r
+\r
+my %selected=();\r
+my %checked=();\r
+\r
+$checked{'ENABLENTP'}{'off'} = '';\r
+$checked{'ENABLENTP'}{'on'} = '';\r
+$checked{'ENABLENTP'}{$timesettings{'ENABLENTP'}} = "checked='checked'";\r
+\r
+$checked{'ENABLECLNTP'}{'off'} = '';\r
+$checked{'ENABLECLNTP'}{'on'} = '';\r
+$checked{'ENABLECLNTP'}{$timesettings{'ENABLECLNTP'}} = "checked='checked'";\r
+\r
+$checked{'UPDATE_METHOD'}{'manually'} = '';\r
+$checked{'UPDATE_METHOD'}{'periodically'} = '';\r
+$checked{'UPDATE_METHOD'}{$timesettings{'UPDATE_METHOD'}} = "checked='checked'";\r
+\r
+$selected{'UPDATE_PERIOD'}{'hourly'} = '';\r
+$selected{'UPDATE_PERIOD'}{'daily'} = '';\r
+$selected{'UPDATE_PERIOD'}{'weekly'} = '';\r
+$selected{'UPDATE_PERIOD'}{'monthly'} = '';\r
+$selected{'UPDATE_PERIOD'}{$timesettings{'UPDATE_PERIOD'}} = "selected='selected'";\r
+\r
+# added to v0.0.4 to refresh screen if syncro event queued \r
+my $refresh = '';\r
+if ( -e "${General::swroot}/time/settimenow") {\r
+       $refresh = "<meta http-equiv='refresh' content='60;' />";\r
+}\r
+\r
+&Header::openpage($Lang::tr{'ntp configuration'}, 1, $refresh);\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+# DPC move error message to top so it is seen!\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<font class='base'>$errormessage&nbsp;</font>\n";\r
+       &Header::closebox();\r
+       }\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'network time'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td><input type='checkbox' name='ENABLENTP' $checked{'ENABLENTP'}{'on'} /></td>\r
+       <td width='100%' colspan='4' class='base'>$Lang::tr{'network time from'}</td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td width='100%' class='base' colspan='4'>\r
+END\r
+;\r
+\r
+if ( -e "${General::swroot}/time/lastset")\r
+{\r
+       print "$Lang::tr{'clock last synchronized at'}\n";\r
+       my $output = `cat ${General::swroot}/time/lastset`;\r
+       print $output;\r
+}\r
+else\r
+{\r
+       print "$Lang::tr{'clock has not been synchronized'}\n";\r
+}\r
+\r
+print <<END\r
+</td></tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td width='25%' class='base'>$Lang::tr{'primary ntp server'}:</td>\r
+       <td width='25%'><input type='text' name='NTP_ADDR_1' value='$timesettings{'NTP_ADDR_1'}' /></td>\r
+       <td width='25%' class='base'>$Lang::tr{'secondary ntp server'}: &nbsp;<img src='/blob.gif' align='top' alt='*' /></td>\r
+       <td width='25%'><input type='text' name='NTP_ADDR_2' value='$timesettings{'NTP_ADDR_2'}' /></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td class='base' colspan='4'><input type='checkbox' name='ENABLECLNTP' $checked{'ENABLECLNTP'}{'on'} /> $Lang::tr{'clenabled'}</td>\r
+</tr>\r
+</table>\r
+<table width='100%'>\r
+<tr>\r
+       <td colspan='4'><hr /><b>$Lang::tr{'update time'}</b></td>\r
+</tr>\r
+<tr>\r
+       <td>&nbsp;</td>\r
+       <td class='base' colspan='2'>$Lang::tr{'set time now help'}</td>\r
+</tr>\r
+<tr>\r
+       <td class='base'><input type='radio' name='UPDATE_METHOD' value='periodically' $checked{'UPDATE_METHOD'}{'periodically'} /></td>\r
+       <td width='15%'>$Lang::tr{'every'}: </td>\r
+       <td width='35%'><input type='text' name='UPDATE_VALUE' size='3' maxlength='3' value='$timesettings{'UPDATE_VALUE'}' />\r
+       <select name='UPDATE_PERIOD'>\r
+               <option value='hourly' $selected{'UPDATE_PERIOD'}{'hourly'}>$Lang::tr{'hours'}</option>\r
+               <option value='daily' $selected{'UPDATE_PERIOD'}{'daily'}>$Lang::tr{'days'}</option>\r
+               <option value='weekly' $selected{'UPDATE_PERIOD'}{'weekly'}>$Lang::tr{'weeks'}</option>\r
+               <option value='monthly' $selected{'UPDATE_PERIOD'}{'monthly'}>$Lang::tr{'months'}</option>\r
+       </select></td>\r
+       <td width='50%'>&nbsp;</td>\r
+</tr>\r
+<tr>\r
+       <td class='base'><input type='radio' name='UPDATE_METHOD' value='manually' $checked{'UPDATE_METHOD'}{'manually'} /></td>\r
+       <td colspan='2'>$Lang::tr{'manually'}</td>\r
+</tr>\r
+END\r
+;\r
+\r
+if ( -e "${General::swroot}/time/settimenow") {\r
+       print "<tr>\n<td align='center'><img src='/images/clock.gif' alt='' /></td>\n";\r
+       print "<td colspan='2'><font color='red'>$Lang::tr{'waiting to synchronize clock'}...</font></td></tr>\n";\r
+}\r
+print <<END\r
+</table>\r
+<br />\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+       <td width='30%'><img src='/blob.gif' alt='*' /> $Lang::tr{'this field may be blank'}</td>\r
+       <td width='40%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'set time now'}' /></td>\r
+       <td width='25%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+       <td width='5%' align='right'>\r
+               <a href='${General::adminmanualurl}/services.html#services_time' target='_blank'><img src='/images/web-support.png' title='$Lang::tr{'online help en'}' /></a>\r
+       </td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'update time'});\r
+\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td width='65%' class='base'>\r
+       <table> \r
+       <tr>\r
+               <td>$Lang::tr{'year'}:&nbsp;</td>\r
+               <td><input type='text' name='SETYEAR' size='4' maxlength='4' value='$timesettings{'SETYEAR'}' /></td>\r
+               <td>&nbsp;$Lang::tr{'month'}:&nbsp;</td>\r
+               <td><input type='text' name='SETMONTH' size='2' maxlength='2' value='$timesettings{'SETMONTH'}' /></td>\r
+               <td>&nbsp;$Lang::tr{'day'}:&nbsp;</td>\r
+               <td><input type='text' name='SETDAY' size='2' maxlength='2' value='$timesettings{'SETDAY'}' /></td>\r
+               <td>&nbsp;&nbsp;&nbsp;&nbsp;$Lang::tr{'hours2'}:&nbsp;</td>\r
+               <td><input type='text' name='SETHOUR' size='2' maxlength='2' value='$timesettings{'SETHOUR'}' /></td>\r
+               <td>&nbsp;$Lang::tr{'minutes'}:&nbsp;</td>\r
+               <td><input type='text' name='SETMINUTES' size='2' maxlength='2' value='$timesettings{'SETMINUTES'}' /></td>\r
+       </tr>   \r
+       </table>\r
+       </td>\r
+       <td width='35%' align='center' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'instant update'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+print "</form>\n";\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
diff --git a/html/cgi-bin/updates.cgi b/html/cgi-bin/updates.cgi
new file mode 100644 (file)
index 0000000..d8abb66
--- /dev/null
@@ -0,0 +1,269 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: updates.cgi,v 1.9.2.22 2005/12/01 20:41:53 franck78 Exp $\r
+#\r
+\r
+use LWP::UserAgent;\r
+use File::Copy;\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( $General::version );\r
+undef (@dummy);\r
+my $warnmessage='';\r
+my $errormessage='';\r
+my @av=('');\r
+my @pf=('');\r
+\r
+&Header::showhttpheaders();\r
+\r
+my %uploadsettings=();\r
+$uploadsettings{'ACTION'} = '';\r
+\r
+&Header::getcgihash(\%uploadsettings, {'wantfile' => 1, 'filevar' => 'FH'});\r
+\r
+if ($uploadsettings{'ACTION'} eq $Lang::tr{'upload'}) {\r
+# This code do not serve a lot because $General::version cannot change while the module is loaded. So no change\r
+# can appear. More, this call should be called 'after' update is done !\r
+#      my $return = &downloadlist();\r
+#      if ($return && $return->is_success) {\r
+#              if (open(LIST, ">${General::swroot}/patches/available")){\r
+#                      flock LIST, 2;\r
+#                      my @this = split(/----START LIST----\n/,$return->content);\r
+#                      print LIST $this[1];\r
+#                      close(LIST);\r
+#              } else {\r
+#                      $errormessage = $Lang::tr{'could not open available updates file'};\r
+#              }\r
+#      } else {\r
+#              if (open(LIST, "<${General::swroot}/patches/available")) {\r
+#                      my @list = <LIST>;\r
+#                      close(LIST);\r
+#              }\r
+#              $warnmessage = $Lang::tr{'could not download the available updates list'};\r
+#      }\r
+\r
+\r
+       if (copy ($uploadsettings{'FH'}, "/var/patches/patch-$$.tar.gz.gpg") != 1) {\r
+               $errormessage = $!;\r
+       } else {\r
+               my $exitcode = system("/usr/local/bin/installpackage $$ > /dev/null") >> 8;\r
+               if ($exitcode == 0) {\r
+                       #Hack to get correct version displayed after update\r
+                       open (XX,"perl -e \"require'${General::swroot}/general-functions.pl';print \\\$General::version\"|");\r
+                       $General::version=<XX>;\r
+                       close (XX);\r
+                       &General::log("$Lang::tr{'the following update was successfully installed'} ($General::version)");\r
+               }\r
+               elsif($exitcode == 2) {\r
+                       $errormessage = "$Lang::tr{'could not create directory'}";\r
+               }\r
+               elsif($exitcode == 3) {\r
+                       $errormessage = "$Lang::tr{'this is not an authorised update'}";\r
+               }\r
+               elsif($exitcode == 4) {\r
+                       $errormessage = "$Lang::tr{'this is not a valid archive'}";\r
+               }\r
+               elsif($exitcode == 5) {\r
+                       $errormessage = "$Lang::tr{'could not open update information file'}";\r
+               }\r
+               elsif($exitcode == 6) {\r
+                       $errormessage = "$Lang::tr{'could not open installed updates file'}";\r
+               }\r
+               elsif($exitcode == 7) {\r
+                       $errormessage = "$Lang::tr{'this update is already installed'}";\r
+               }\r
+               elsif($exitcode == 11) {\r
+                       $errormessage = "$Lang::tr{'not enough disk space'}";\r
+               } else {\r
+                       $errormessage = "$Lang::tr{'package failed to install'}";\r
+               }\r
+       }\r
+}\r
+elsif ($uploadsettings{'ACTION'} eq $Lang::tr{'refresh update list'}) {\r
+       my $return = &downloadlist();\r
+       if ($return && $return->is_success) {\r
+               if (open(LIST, ">${General::swroot}/patches/available")) {\r
+                       flock LIST, 2;\r
+                       my @this = split(/----START LIST----\n/,$return->content);\r
+                       print LIST $this[1];\r
+                       close(LIST);\r
+                       &General::log($Lang::tr{'successfully refreshed updates list'});\r
+               } else {\r
+                       $errormessage = $Lang::tr{'could not open available updates file'};\r
+               }\r
+       } else {\r
+               $errormessage = $Lang::tr{'could not download the available updates list'}; \r
+       }\r
+}\r
+elsif ($uploadsettings{'ACTION'} eq "$Lang::tr{'clear cache'} (squid)") {\r
+        system('/usr/local/bin/restartsquid','-f');\r
+}\r
+               \r
+if (!open(AV, "<${General::swroot}/patches/available")) {\r
+    $errormessage = $Lang::tr{'could not open available updates file'};\r
+} else {\r
+    @av = <AV>;\r
+    close(AV);\r
+}\r
+if (!open (PF, "<${General::swroot}/patches/installed")) {\r
+    $errormessage = $Lang::tr{'could not open installed updates file'};\r
+} else {\r
+    @pf = <PF>;\r
+    close (PF);\r
+    #substract installed patch from list displayed (AV list may not be updated)\r
+    foreach my $P (@pf) {\r
+       $P =~ /^(...)/;\r
+       my $order=$1;\r
+       my $idx=0;\r
+       foreach my $A (@av) {\r
+           $A =~ /^(...)/;\r
+           if ($1 eq $order) { # match\r
+               splice (@av,$idx,1);\r
+               last;\r
+           }\r
+           $idx++;\r
+       }       \r
+    }\r
+}\r
+\r
+&Header::openpage($Lang::tr{'updates'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', 'download.png', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print $errormessage;\r
+       print "&nbsp;";\r
+       &Header::closebox();\r
+}\r
+\r
+if ($warnmessage) {\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'warning messages'}:");\r
+       print "<CLASS NAME='base'>$warnmessage \n";\r
+       print "&nbsp;</CLASS>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'available updates'});\r
+\r
+if ( defined $av[0] ) {\r
+       print $Lang::tr{'there are updates available'};\r
+       print qq|<table width='100%' border='0' cellpadding='2' cellspacing='0'>\r
+<tr>\r
+<td width='5%'><b>$Lang::tr{'id'}</b></td>\r
+<td width='15%'><b>$Lang::tr{'title'}</b></td>\r
+<td width='50%'><b>$Lang::tr{'description'}</b></td>\r
+<td width='15%'><b>$Lang::tr{'released'}</b></td>\r
+<td width='15%'>&nbsp;</td>\r
+</tr>\r
+|;\r
+       foreach (@av) {\r
+               my @temp = split(/\|/,$_);\r
+               print "<tr><td valign='top'>$temp[0]</td><td valign='top'>$temp[1]</td><td valign='top'>$temp[2]</td><td valign='top'>$temp[3]</td><td valign='top'><a href='$temp[4]' target='_new'>$Lang::tr{'info'}</a></td></tr>";\r
+       }\r
+       print "</table>";\r
+\r
+\r
+} else {\r
+       print $Lang::tr{'all updates installed'};\r
+}\r
+\r
+print qq|<hr /><br>\r
+$Lang::tr{'to install an update'}\r
+<br />\r
+<form method='post' action='/cgi-bin/updates.cgi' enctype='multipart/form-data'>\r
+<table>\r
+<tr>\r
+<td align='right' class='base'>\r
+<b>$Lang::tr{'upload update file'}</b></td>\r
+<td><input type="file" size='40' name="FH" /> <input type='submit' name='ACTION' value='$Lang::tr{'upload'}' />\r
+</td></tr>\r
+</table>|;\r
+\r
+print "<b>$Lang::tr{'disk usage'}</b>";\r
+open (XX,'df -h / /var/log|');\r
+my @df=<XX>;\r
+close (XX);\r
+print "<table cellpadding='2'>";\r
+map ( $_ =~ s/ +/<td>/g,@df);  # tablify each line!\r
+print "<tr><td>$df[0]</tr>";\r
+print "<tr><td>$df[1]</tr>";\r
+print "<tr><td>$df[2]<td><input type='submit' name='ACTION' value='$Lang::tr{'clear cache'} (squid)' /></tr>";\r
+print "</table>";\r
+\r
+print "\n<hr />";\r
+print "\n<table width='100%'>\n<tr>";\r
+print "\n\t<td width='50%'>&nbsp;</td>";\r
+print "\n\t<td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'refresh update list'}' /></td></tr>";\r
+print "\n</table>\n";\r
+print "</form>";\r
+\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%', 'LEFT', $Lang::tr{'installed updates'});\r
+\r
+print qq|<table width='100%' border='0' cellpadding='2' cellspacing='0'>\r
+<tr>\r
+<td width='5%'><b>$Lang::tr{'id'}</b></td>\r
+<td width='15%'><b>$Lang::tr{'title'}</b></td>\r
+<td width='50%'><b>$Lang::tr{'description'}</b></td>\r
+<td width='15%'><b>$Lang::tr{'released'}</b></td>\r
+<td width='15%'><b>$Lang::tr{'installed'}</b></td>\r
+</tr>\r
+|;\r
+\r
+foreach my $pf (@pf) {\r
+       next if $pf =~ m/^#/;\r
+       my @temp = split(/\|/,$pf);\r
+#???   @av = grep(!/^$temp[0]/, @av);\r
+       print "<tr><td valign='top'>" . join("</td><td valign='top'>",@temp) . "</td></tr>";\r
+}\r
+close(PF);\r
+\r
+print "</table>";\r
+\r
+&Header::closebox();\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
+sub downloadlist {\r
+       unless (-e "${General::swroot}/red/active") {\r
+               return 0;\r
+       }\r
+\r
+       my $downloader = LWP::UserAgent->new;\r
+       $downloader->timeout(5);\r
+\r
+       my %proxysettings=();\r
+       &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+\r
+       if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+               if ($proxysettings{'UPSTREAM_USER'}) {\r
+                       $downloader->proxy("http","http://$proxysettings{'UPSTREAM_USER'}:$proxysettings{'UPSTREAM_PASSWORD'}@"."$peer:$peerport/");\r
+               } else {\r
+                       $downloader->proxy("http","http://$peer:$peerport/");\r
+               }\r
+       }\r
+\r
+       return $downloader->get("http://www.ipcop.org/patches/${General::version}", 'Cache-Control', 'no-cache');\r
+\r
+}\r
diff --git a/html/cgi-bin/upload.cgi b/html/cgi-bin/upload.cgi
new file mode 100644 (file)
index 0000000..59395fe
--- /dev/null
@@ -0,0 +1,187 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: upload.cgi,v 1.2.2.21 2005/08/14 23:43:38 gespinasse Exp $\r
+#\r
+\r
+use File::Copy;\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %uploadsettings=();\r
+my $errormessage = '';\r
+\r
+&Header::showhttpheaders();\r
+$uploadsettings{'ACTION'} = '';\r
+\r
+&Header::getcgihash(\%uploadsettings, {'wantfile' => 1, 'filevar' => 'FH'});\r
+\r
+my $extraspeedtouchmessage='';\r
+my $extrafritzdslmessage='';\r
+my $extraeciadslmessage='';\r
+my $modem='';\r
+my $firmwarename='';\r
+my $kernel='';\r
+\r
+my $speedtouch = &Header::speedtouchversion;\r
+if ($speedtouch == 4) {\r
+       $modem='v4_b';\r
+       $firmwarename="$Lang::tr{'upload'} ZZZL_3.012";\r
+} else {\r
+       $modem='v0123';\r
+       $firmwarename="$Lang::tr{'upload'} KQD6_3.012";\r
+}\r
+\r
+$kernel=`/bin/uname -r | /usr/bin/tr -d '\012'`;\r
+\r
+if ($uploadsettings{'ACTION'} eq $firmwarename) {\r
+       if ($modem eq 'v0123' || $modem eq 'v4_b') {\r
+               if (copy ($uploadsettings{'FH'}, "${General::swroot}/alcatelusb/firmware.$modem.bin") != 1) {\r
+                       $errormessage = $!;\r
+               } else {\r
+                       $extraspeedtouchmessage = $Lang::tr{'upload successful'};\r
+               }\r
+       }\r
+}\r
+elsif ($uploadsettings{'ACTION'} eq "$Lang::tr{'upload'} fcdsl-${General::version}.tgz")\r
+{\r
+       if (copy ($uploadsettings{'FH'}, "/var/patches/fcdsl-x.tgz") != 1) {\r
+               $errormessage = $!;\r
+       } else {\r
+               $extrafritzdslmessage = $Lang::tr{'upload successful'};\r
+       }\r
+}\r
+elsif ($uploadsettings{'ACTION'} eq $Lang::tr{'upload synch.bin'})\r
+{\r
+       if (copy ($uploadsettings{'FH'}, "${General::swroot}/eciadsl/synch.bin") != 1) {\r
+               $errormessage = $!;\r
+       } else {\r
+               $extraeciadslmessage = $Lang::tr{'upload successful'};\r
+       }\r
+}\r
+\r
+&Header::openpage($Lang::tr{'firmware upload'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<font class='base'>$errormessage&nbsp;</font>\n";\r
+       &Header::closebox();\r
+}\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}' enctype='multipart/form-data'>\n";\r
+\r
+&Header::openbox('100%','left', $Lang::tr{'alcatelusb upload'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td colspan='4'>$Lang::tr{'alcatelusb help'}<br />\r
+       URL: <a href='http://www.speedtouch.com/support.htm'>http://www.speedtouch.com/support.htm</a>\r
+       </td>\r
+</tr>\r
+<tr><td colspan='4'>$Lang::tr{'modem'}: Rev <b>$speedtouch</b></td></tr>\r
+<tr>\r
+       <td width='5%' class='base' nowrap='nowrap'>$Lang::tr{'upload file'}:&nbsp;</td>\r
+       <td width='45%'><input type="file" size='30' name="FH" /></td>\r
+       <td width='35%' align='center'><input type='submit' name='ACTION' value='$firmwarename' /></td>\r
+       <td width='15%'>\r
+END\r
+;\r
+if (-e "${General::swroot}/alcatelusb/firmware.$modem.bin") {\r
+       if ($extraspeedtouchmessage ne '') {\r
+               print ("$extraspeedtouchmessage</td>");\r
+       } else {\r
+               print ("$Lang::tr{'present'}</td>");\r
+       }\r
+} else {\r
+       print ("$Lang::tr{'not present'}</td>");\r
+}\r
+print <<END\r
+</tr>\r
+</table>\r
+END\r
+;\r
+\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%','left', $Lang::tr{'eciadsl upload'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td colspan='4'>$Lang::tr{'eciadsl help'}<br />\r
+       URL: <a href='http://eciadsl.flashtux.org/'>http://eciadsl.flashtux.org/</a>\r
+       </td>\r
+</tr>\r
+<tr>\r
+       <td width='5%' class='base' nowrap='nowrap'>$Lang::tr{'upload file'}:&nbsp;</td>\r
+       <td width='45%'><input type="file" size='30' name="FH" /></td>\r
+       <td width='35%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'upload synch.bin'}' /></td>\r
+       <td width='15%'>\r
+END\r
+;\r
+if (-e "${General::swroot}/eciadsl/synch.bin") {\r
+       if ($extraeciadslmessage ne '') {\r
+               print ("$extraeciadslmessage</td>");\r
+       } else {\r
+               print ("$Lang::tr{'present'}</td>");\r
+       }\r
+} else {\r
+       print ("$Lang::tr{'not present'}</td>");\r
+}\r
+print <<END\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%','left', $Lang::tr{'fritzdsl upload'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+       <td colspan='4'>$Lang::tr{'fritzdsl help'}<br />\r
+       URL: <a href='http://www.ipcop.org/'>http://www.ipcop.org/</a>\r
+       </td>\r
+</tr>\r
+<tr>\r
+       <td width='5%' class='base' nowrap='nowrap'>$Lang::tr{'upload file'}:&nbsp;</td>\r
+       <td width='45%'><input type="file" size='30' name="FH" /></td>\r
+       <td width='35%' align='center'><input type='submit' name='ACTION' value="$Lang::tr{'upload'} fcdsl-${General::version}.tgz"/></td>\r
+       <td width='15%'>\r
+END\r
+;\r
+if ($extrafritzdslmessage ne '') {\r
+       print ("$extrafritzdslmessage</td></tr><tr><td>&nbsp;</td><td><pre>");\r
+       print `/usr/local/bin/installfcdsl`;\r
+       print ("</pre></td>");\r
+} else {\r
+       if (-e "/lib/modules/$kernel/misc/fcdsl.o.gz") {\r
+               print ("$Lang::tr{'present'}</td>");\r
+       } else {\r
+               print ("$Lang::tr{'not present'}</td>");\r
+       }\r
+}\r
+print <<END\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+print "</form>\n";\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi
new file mode 100644 (file)
index 0000000..1aa7984
--- /dev/null
@@ -0,0 +1,2580 @@
+#!/usr/bin/perl\r
+#\r
+# This file is part of the IPCop Firewall.\r
+#\r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+#\r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+#\r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+#\r
+# Copyright (C) 2003-05-25 Mark Wormgoor <mark@wormgoor.com>\r
+#\r
+# $Id: vpnmain.cgi,v 1.10.2.69 2006/01/31 02:07:19 franck78 Exp $\r
+#\r
+\r
+use Net::DNS;\r
+use File::Copy;\r
+use File::Temp qw/ tempfile tempdir /;\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+require "${General::swroot}/countries.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::colourgreen} );\r
+undef (@dummy);\r
+\r
+###\r
+### Initialize variables\r
+###\r
+my $sleepDelay = '4s'; # after a call to ipsecctrl S or R, wait this delay (seconds) before reading status\r
+                       # (let the ipsec do its job)\r
+my %netsettings=();\r
+my %cgiparams=();\r
+my %vpnsettings=();\r
+my %checked=();\r
+my %confighash=();\r
+my %cahash=();\r
+my %selected=();\r
+my $warnmessage = '';\r
+my $errormessage = '';\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+$cgiparams{'ENABLED'} = 'off';\r
+$cgiparams{'ENABLED_BLUE'} = 'off';\r
+$cgiparams{'EDIT_ADVANCED'} = 'off';\r
+$cgiparams{'NAT'} = 'off';\r
+$cgiparams{'COMPRESSION'} = 'off';\r
+$cgiparams{'ONLY_PROPOSED'} = 'off';\r
+$cgiparams{'ACTION'} = '';\r
+$cgiparams{'CA_NAME'} = '';\r
+$cgiparams{'DBG_CRYPT'} = '';\r
+$cgiparams{'DBG_PARSING'} = '';\r
+$cgiparams{'DBG_EMITTING'} = '';\r
+$cgiparams{'DBG_CONTROL'} = '';\r
+$cgiparams{'DBG_KLIPS'} = '';\r
+$cgiparams{'DBG_DNS'} = '';\r
+$cgiparams{'DBG_NAT_T'} = '';\r
+\r
+&Header::getcgihash(\%cgiparams, {'wantfile' => 1, 'filevar' => 'FH'});\r
+\r
+###\r
+### Useful functions\r
+###\r
+sub valid_dns_host {\r
+       my $hostname = $_[0];\r
+       unless ($hostname) { return "No hostname"};\r
+       my $res = new Net::DNS::Resolver;\r
+       my $query = $res->search("$hostname");\r
+       if ($query) {\r
+               foreach my $rr ($query->answer) {\r
+                       ## Potential bug - we are only looking at A records:\r
+                       return 0 if $rr->type eq "A";\r
+               }\r
+       } else {\r
+               return $res->errorstring;\r
+       }\r
+}\r
+\r
+#\r
+# old version: maintain serial number to one, without explication. \r
+# this      : let the counter go, so that each cert is numbered.\r
+#\r
+sub cleanssldatabase\r
+{\r
+    if (open(FILE, ">${General::swroot}/certs/serial")) {\r
+       print FILE "01";\r
+       close FILE;\r
+    }\r
+    if (open(FILE, ">${General::swroot}/certs/index.txt")) {\r
+       print FILE "";\r
+       close FILE;\r
+    }\r
+    unlink ("${General::swroot}/certs/index.txt.old");\r
+    unlink ("${General::swroot}/certs/serial.old");\r
+    unlink ("${General::swroot}/certs/01.pem");\r
+}\r
+sub newcleanssldatabase\r
+{\r
+    if (! -s "${General::swroot}/certs/serial" )  {\r
+        open(FILE, ">${General::swroot}/certs/serial");\r
+       print FILE "01";\r
+       close FILE;\r
+    }\r
+    if (! -s ">${General::swroot}/certs/index.txt") {\r
+       system ("touch ${General::swroot}/certs/index.txt");\r
+    }\r
+    unlink ("${General::swroot}/certs/index.txt.old");\r
+    unlink ("${General::swroot}/certs/serial.old");\r
+#   unlink ("${General::swroot}/certs/01.pem");                numbering evolves. Wrong place to delete\r
+}\r
+                                                           \r
+sub writeipsecfiles {\r
+    my %lconfighash = ();\r
+    my %lvpnsettings = ();\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%lconfighash);\r
+    &General::readhash("${General::swroot}/vpn/settings", \%lvpnsettings);\r
+\r
+    open(CONF,    ">${General::swroot}/vpn/ipsec.conf") or die "Unable to open ${General::swroot}/vpn/ipsec.conf: $!";\r
+    open(SECRETS, ">${General::swroot}/vpn/ipsec.secrets") or die "Unable to open ${General::swroot}/vpn/ipsec.secrets: $!";\r
+    flock CONF, 2;\r
+    flock SECRETS, 2;\r
+    print CONF "config setup\n";\r
+    if ($lvpnsettings{'ENABLED_BLUE'} eq 'on')\r
+    {\r
+       if ($lvpnsettings{'ENABLED'} eq 'on')\r
+       {\r
+               print CONF "\tinterfaces=\"%defaultroute ipsec1=$netsettings{'BLUE_DEV'}\"\n";\r
+       } else {\r
+               print CONF "\tinterfaces=ipsec0=$netsettings{'BLUE_DEV'}\n";\r
+       }\r
+    } else {\r
+       print CONF "\tinterfaces=%defaultroute\n";\r
+    }\r
+    \r
+    my $plutodebug = '';                       # build debug list\r
+    map ($plutodebug .= $lvpnsettings{$_} eq 'on' ? lc (substr($_,4)).' ' : '',\r
+       ('DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL',\r
+        'DBG_KLIPS','DBG_DNS','DBG_NAT_T'));\r
+    $plutodebug = 'none' if $plutodebug eq '';  # if nothing selected, use 'none'.\r
+    print CONF "\tklipsdebug=none\n";\r
+    print CONF "\tplutodebug=\"$plutodebug\"\n";\r
+    print CONF "\tplutoload=%search\n";\r
+    print CONF "\tplutostart=%search\n";\r
+    print CONF "\tuniqueids=yes\n";\r
+    print CONF "\tnat_traversal=yes\n";\r
+    print CONF "\toverridemtu=$lvpnsettings{'VPN_OVERRIDE_MTU'}\n" if ($lvpnsettings{'VPN_OVERRIDE_MTU'} ne '');\r
+    print CONF "\tvirtual_private=%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/16";\r
+    print CONF ",%v4:!$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}";\r
+    if (length($netsettings{'ORANGE_DEV'}) > 2) {\r
+       print CONF ",%v4:!$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}";\r
+    }\r
+    if (length($netsettings{'BLUE_DEV'}) > 2) {\r
+       print CONF ",%v4:!$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}";\r
+    }\r
+    foreach my $key (keys %lconfighash) {\r
+       if ($lconfighash{$key}[3] eq 'net') {\r
+           print CONF ",%v4:!$lconfighash{$key}[11]";\r
+       }\r
+    }\r
+    print CONF "\n\n";\r
+    print CONF "conn %default\n";\r
+    print CONF "\tkeyingtries=0\n";\r
+    print CONF "\tdisablearrivalcheck=no\n";\r
+    print CONF "\n";\r
+\r
+    if (-f "${General::swroot}/certs/hostkey.pem") {\r
+        print SECRETS ": RSA ${General::swroot}/certs/hostkey.pem\n"\r
+    }\r
+\r
+    foreach my $key (keys %lconfighash) {\r
+       if ($lconfighash{$key}[0] eq 'on') {\r
+           if ($lconfighash{$key}[10] eq '') { $lconfighash{$key}[10] = '%any'; }\r
+\r
+           print CONF "conn $lconfighash{$key}[1]\n";\r
+           #always choose LEFT localside for roadwarrior\r
+           if ($lconfighash{$key}[3] eq 'host' || $lconfighash{$key}[6] eq 'left') {\r
+               if ($lconfighash{$key}[26] eq 'BLUE')\r
+               {\r
+                   print CONF "\tleft=$netsettings{'BLUE_ADDRESS'}\n";\r
+#                  print CONF "\tleftnexthop=$netsettings{'BLUE_NETADDRESS'}\n";\r
+               } \r
+               elsif ($lconfighash{$key}[26] eq 'ORANGE')\r
+               {\r
+                   print CONF "\tleft=$netsettings{'ORANGE_ADDRESS'}\n";\r
+               } \r
+               elsif ($lconfighash{$key}[26] eq 'GREEN')\r
+               {\r
+                   print CONF "\tleft=$netsettings{'GREEN_ADDRESS'}\n";\r
+               } \r
+               elsif ($lconfighash{$key}[26] eq 'RED')\r
+               {\r
+                   print CONF "\tleft=$lvpnsettings{'VPN_IP'}\n";\r
+                   print CONF "\tleftnexthop=%defaultroute\n" if ($lvpnsettings{'VPN_IP'} ne '%defaultroute');\r
+               }\r
+               print CONF "\tleftsubnet=$lconfighash{$key}[8]\n";\r
+               print CONF "\tright=$lconfighash{$key}[10]\n";\r
+               if ($lconfighash{$key}[3] eq 'net') {\r
+                   print CONF "\trightsubnet=$lconfighash{$key}[11]\n";\r
+                   print CONF "\trightnexthop=%defaultroute\n";\r
+               } elsif ($lconfighash{$key}[10] eq '%any' && $lconfighash{$key}[14] eq 'on') {\r
+                   print CONF "\trightsubnet=vhost:%no,%priv\n";\r
+               }\r
+               if ($lconfighash{$key}[4] eq 'cert') {\r
+                   print CONF "\tleftcert=${General::swroot}/certs/hostcert.pem\n";\r
+                   print CONF "\trightcert=${General::swroot}/certs/$lconfighash{$key}[1]cert.pem\n";\r
+               }\r
+           } else {\r
+               print CONF "\tright=$lvpnsettings{'VPN_IP'}\n";\r
+               print CONF "\trightsubnet=$lconfighash{$key}[8]\n";\r
+               print CONF "\trightnexthop=%defaultroute\n"  if ($lvpnsettings{'VPN_IP'} ne '%defaultroute');\r
+               print CONF "\tleft=$lconfighash{$key}[10]\n";\r
+               if ($lconfighash{$key}[3] eq 'net') {\r
+                   print CONF "\tleftsubnet=$lconfighash{$key}[11]\n";\r
+                   print CONF "\tleftnexthop=%defaultroute\n";\r
+               }\r
+               if ($lconfighash{$key}[4] eq 'cert') {\r
+                   print CONF "\trightcert=${General::swroot}/certs/hostcert.pem\n";\r
+                   print CONF "\tleftcert=${General::swroot}/certs/$lconfighash{$key}[1]cert.pem\n";\r
+               }\r
+           }\r
+           print CONF "\tleftid=$lconfighash{$key}[7]\n" if ($lconfighash{$key}[7]);\r
+           print CONF "\trightid=$lconfighash{$key}[9]\n" if ($lconfighash{$key}[9]);\r
+\r
+           # Algorithms\r
+           if ($lconfighash{$key}[18] && $lconfighash{$key}[19] && $lconfighash{$key}[20]) {\r
+               print CONF "\tike=";\r
+               my @encs   = split('\|', $lconfighash{$key}[18]);\r
+               my @ints   = split('\|', $lconfighash{$key}[19]);\r
+               my @groups = split('\|', $lconfighash{$key}[20]);\r
+               my $comma = 0;\r
+               foreach my $i (@encs) {\r
+                   foreach my $j (@ints) {\r
+                       foreach my $k (@groups) {\r
+                           if ($comma != 0) { print CONF ","; } else { $comma = 1; }\r
+                           print CONF "$i-$j-modp$k";\r
+                       }\r
+                   }\r
+               }\r
+               if ($lconfighash{$key}[24] eq 'on') {\r
+                   print CONF "!\n";\r
+               } else {\r
+                   print CONF "\n";\r
+               }\r
+           }\r
+           if ($lconfighash{$key}[21] && $lconfighash{$key}[22]) {\r
+               print CONF "\tesp=";\r
+               my @encs   = split('\|', $lconfighash{$key}[21]);\r
+               my @ints   = split('\|', $lconfighash{$key}[22]);\r
+               my $comma = 0;\r
+               foreach my $i (@encs) {\r
+                   foreach my $j (@ints) {\r
+                       if ($comma != 0) { print CONF ","; } else { $comma = 1; }\r
+                       print CONF "$i-$j";\r
+                   }\r
+               }\r
+               if ($lconfighash{$key}[24] eq 'on') {\r
+                   print CONF "!\n";\r
+               } else {\r
+                   print CONF "\n";\r
+               }\r
+           }\r
+           if ($lconfighash{$key}[23]) {\r
+               print CONF "\tpfsgroup=$lconfighash{$key}[23]\n";\r
+           }\r
+\r
+           # Lifetimes\r
+           if ($lconfighash{$key}[16]) {\r
+               print CONF "\tikelifetime=$lconfighash{$key}[16]h\n";\r
+           }\r
+           if ($lconfighash{$key}[17]) {\r
+               print CONF "\tkeylife=$lconfighash{$key}[17]h\n";\r
+           }\r
+\r
+           # Compression\r
+           if ($lconfighash{$key}[13] eq 'on') {\r
+               print CONF "\tcompress=yes\n";\r
+           }\r
+\r
+           # Dead Peer Detection\r
+           print CONF "\tdpddelay=30\n";\r
+           print CONF "\tdpdtimeout=120\n";\r
+           print CONF "\tdpdaction=$lconfighash{$key}[27]\n";\r
+           \r
+           # Disable pfs ?\r
+           print CONF "\tpfs=$lconfighash{$key}[28]\n";\r
+\r
+           # Print Authentication details\r
+           if ($lconfighash{$key}[4] eq 'psk') {\r
+               if ($lconfighash{$key}[6] eq 'left'){\r
+                   if ($lconfighash{$key}[26] eq 'BLUE') {\r
+                       print SECRETS ($lconfighash{$key}[7] ? $lconfighash{$key}[7] : $netsettings{'BLUE_ADDRESS'}) . " ";\r
+                       print SECRETS $lconfighash{$key}[9] ? $lconfighash{$key}[9] : $lconfighash{$key}[10];\r
+                       print SECRETS " : PSK \"$lconfighash{$key}[5]\"\n";\r
+                   } else {\r
+                       print SECRETS ($lconfighash{$key}[7] ? $lconfighash{$key}[7] : $lvpnsettings{'VPN_IP'}) . " ";\r
+                       print SECRETS $lconfighash{$key}[9] ? $lconfighash{$key}[9] : $lconfighash{$key}[10];\r
+                       print SECRETS " : PSK \"$lconfighash{$key}[5]\"\n";\r
+                   }\r
+               } else {\r
+                   if ($lconfighash{$key}[26] eq 'BLUE') {\r
+                       print SECRETS ($lconfighash{$key}[9] ? $lconfighash{$key}[9] : $netsettings{'BLUE_ADDRESS'}) . " ";\r
+                       print SECRETS $lconfighash{$key}[7] ? $lconfighash{$key}[7] : $lconfighash{$key}[10];\r
+                       print SECRETS " : PSK \"$lconfighash{$key}[5]\"\n";\r
+                   } else {\r
+                       print SECRETS ($lconfighash{$key}[9] ? $lconfighash{$key}[9] : $lvpnsettings{'VPN_IP'}) . " ";\r
+                       print SECRETS $lconfighash{$key}[7] ? $lconfighash{$key}[7] : $lconfighash{$key}[10];\r
+                       print SECRETS " : PSK \"$lconfighash{$key}[5]\"\n";\r
+                   }\r
+               }\r
+\r
+               print CONF "\tauthby=secret\n";\r
+           } else {\r
+               print CONF "\tauthby=rsasig\n";\r
+           }\r
+\r
+           # Automatically start only if a net-to-net connection\r
+           if ($lconfighash{$key}[3] eq 'host') {\r
+               print CONF "\tauto=add\n";\r
+           } else {\r
+               print CONF "\tauto=start\n";\r
+           }\r
+           print CONF "\n";\r
+       }#on\r
+    }#foreach key\r
+\r
+    close(CONF);\r
+    close(SECRETS);\r
+}\r
+\r
+###\r
+### Save main settings\r
+###\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cgiparams{'KEY'} eq '') {\r
+    &General::readhash("${General::swroot}/vpn/settings", \%vpnsettings);\r
+    unless (&General::validfqdn($cgiparams{'VPN_IP'}) || &General::validip($cgiparams{'VPN_IP'})\r
+           || $cgiparams{'VPN_IP'} eq '%defaultroute' ) {\r
+       $errormessage = $Lang::tr{'invalid input for hostname'};\r
+       goto SAVE_ERROR;\r
+    }\r
+\r
+    unless ($cgiparams{'VPN_DELAYED_START'} =~ /^[0-9]{1,3}$/ ) { #allow 0-999 seconds !\r
+       $errormessage = $Lang::tr{'invalid time period'};\r
+       goto SAVE_ERROR;\r
+    }\r
+\r
+    unless ($cgiparams{'VPN_OVERRIDE_MTU'} =~ /^(|[0-9]{1,5})$/ ) { #allow 0-99999\r
+       $errormessage = $Lang::tr{'vpn mtu invalid'};\r
+       goto SAVE_ERROR;\r
+    }\r
+\r
+    map ($vpnsettings{$_} = $cgiparams{$_},\r
+       ('ENABLED','ENABLED_BLUE','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL',\r
+        'DBG_KLIPS','DBG_DNS','DBG_NAT_T'));\r
+\r
+    $vpnsettings{'VPN_IP'} = $cgiparams{'VPN_IP'};\r
+    $vpnsettings{'VPN_DELAYED_START'} = $cgiparams{'VPN_DELAYED_START'};\r
+    $vpnsettings{'VPN_OVERRIDE_MTU'} = $cgiparams{'VPN_OVERRIDE_MTU'};\r
+    &General::writehash("${General::swroot}/vpn/settings", \%vpnsettings);\r
+    &writeipsecfiles();\r
+    if ($vpnsettings{'ENABLED'} eq 'on' ||\r
+       $vpnsettings{'ENABLED_BLUE'} eq 'on') {\r
+       system('/usr/local/bin/ipsecctrl', 'S');\r
+    } else {\r
+       system('/usr/local/bin/ipsecctrl', 'D');\r
+    }\r
+    sleep $sleepDelay;\r
+    SAVE_ERROR:\r
+###\r
+### Reset all step 2\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reset'} && $cgiparams{'AREUSURE'} eq 'yes') {\r
+    my $file = '';\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+\r
+    foreach my $key (keys %confighash) {\r
+       if ($confighash{$key}[4] eq 'cert') {\r
+           delete $confighash{$key};\r
+       }\r
+    }\r
+    while ($file = glob("${General::swroot}/{ca,certs,crls,private}/*")) {\r
+       unlink $file\r
+    }\r
+    &cleanssldatabase();\r
+    if (open(FILE, ">${General::swroot}/vpn/caconfig")) {\r
+        print FILE "";\r
+        close FILE;\r
+    }\r
+    &General::writehasharray("${General::swroot}/vpn/config", \%confighash);\r
+    &writeipsecfiles();\r
+    system('/usr/local/bin/ipsecctrl', 'R');\r
+    sleep $sleepDelay;\r
+\r
+###\r
+### Reset all step 1\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reset'}) {\r
+    &Header::showhttpheaders();\r
+    &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');\r
+    &Header::openbigbox('100%', 'LEFT', '', '');\r
+    &Header::openbox('100%', 'LEFT', $Lang::tr{'are you sure'});\r
+    print <<END\r
+       <table><form method='post'><input type='hidden' name='AREUSURE' value='yes' />\r
+           <tr><td align='center'>\r
+               <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}</font></b>: \r
+               $Lang::tr{'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections'}\r
+           <tr><td align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reset'}' />\r
+               <input type='submit' name='ACTION' value='$Lang::tr{'cancel'}' /></td></tr>\r
+       </form></table>\r
+END\r
+    ;\r
+    &Header::closebox();\r
+    &Header::closebigbox();\r
+    &Header::closepage();\r
+    exit (0);\r
+\r
+###\r
+### Upload CA Certificate\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'upload ca certificate'}) {\r
+    &General::readhasharray("${General::swroot}/vpn/caconfig", \%cahash);\r
+\r
+    if ($cgiparams{'CA_NAME'} !~ /^[a-zA-Z0-9]+$/) {\r
+       $errormessage = $Lang::tr{'name must only contain characters'};\r
+       goto UPLOADCA_ERROR;\r
+    }\r
+\r
+    if (length($cgiparams{'CA_NAME'}) >60) {\r
+       $errormessage = $Lang::tr{'name too long'};\r
+       goto VPNCONF_ERROR;\r
+    }\r
+\r
+    if ($cgiparams{'CA_NAME'} eq 'ca') {\r
+       $errormessage = $Lang::tr{'name is invalid'};\r
+       goto UPLOAD_CA_ERROR;\r
+    }\r
+\r
+    # Check if there is no other entry with this name\r
+    foreach my $key (keys %cahash) {\r
+       if ($cahash{$key}[0] eq $cgiparams{'CA_NAME'}) {\r
+           $errormessage = $Lang::tr{'a ca certificate with this name already exists'};\r
+           goto UPLOADCA_ERROR;\r
+       }\r
+    }\r
+\r
+    if (ref ($cgiparams{'FH'}) ne 'Fh') {\r
+       $errormessage = $Lang::tr{'there was no file upload'};\r
+       goto UPLOADCA_ERROR;\r
+    }\r
+    # Move uploaded ca to a temporary file\r
+    (my $fh, my $filename) = tempfile( );\r
+    if (copy ($cgiparams{'FH'}, $fh) != 1) {\r
+       $errormessage = $!;\r
+       goto UPLOADCA_ERROR;\r
+    }\r
+    my $temp = `/usr/bin/openssl x509 -text -in $filename`;\r
+    if ($temp !~ /CA:TRUE/i) {\r
+       $errormessage = $Lang::tr{'not a valid ca certificate'};\r
+       unlink ($filename);\r
+       goto UPLOADCA_ERROR;\r
+    } else {\r
+       move($filename, "${General::swroot}/ca/$cgiparams{'CA_NAME'}cert.pem");\r
+       if ($? ne 0) {\r
+           $errormessage = "$Lang::tr{'certificate file move failed'}: $!";\r
+           unlink ($filename);\r
+           goto UPLOADCA_ERROR;\r
+       }\r
+    }\r
+\r
+    my $casubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/ca/$cgiparams{'CA_NAME'}cert.pem`;\r
+    $casubject    =~ /Subject: (.*)[\n]/;\r
+    $casubject    = $1;\r
+    $casubject    =~ s+/Email+, E+;\r
+    $casubject    =~ s/ ST=/ S=/;\r
+    $casubject    = &Header::cleanhtml($casubject);\r
+\r
+    my $key = &General::findhasharraykey (\%cahash);\r
+    $cahash{$key}[0] = $cgiparams{'CA_NAME'};\r
+    $cahash{$key}[1] = $casubject;\r
+    &General::writehasharray("${General::swroot}/vpn/caconfig", \%cahash);\r
+    system('/usr/local/bin/ipsecctrl', 'R');\r
+    sleep $sleepDelay;\r
+\r
+    UPLOADCA_ERROR:\r
+\r
+###\r
+### Display ca certificate\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'show ca certificate'}) {\r
+    &General::readhasharray("${General::swroot}/vpn/caconfig", \%cahash);\r
+\r
+    if ( -f "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem") {\r
+       &Header::showhttpheaders();\r
+       &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');\r
+       &Header::openbigbox('100%', 'LEFT', '', '');\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'ca certificate'}:");\r
+       my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`;\r
+       $output = &Header::cleanhtml($output,"y");\r
+       print "<pre>$output</pre>\n";\r
+       &Header::closebox();\r
+       print "<div align='center'><a href='/cgi-bin/vpnmain.cgi'>$Lang::tr{'back'}</a></div>";\r
+       &Header::closebigbox();\r
+       &Header::closepage();\r
+       exit(0);\r
+    } else {\r
+       $errormessage = $Lang::tr{'invalid key'};\r
+    }\r
+\r
+###\r
+### Download ca certificate\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'download ca certificate'}) {\r
+    &General::readhasharray("${General::swroot}/vpn/caconfig", \%cahash);\r
+\r
+    if ( -f "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) {\r
+       print "Content-Type: application/octet-stream\r\n";\r
+       print "Content-Disposition: filename=$cahash{$cgiparams{'KEY'}}[0]cert.pem\r\n\r\n";\r
+       print `/usr/bin/openssl x509 -in ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`;\r
+       exit(0);\r
+    } else {\r
+       $errormessage = $Lang::tr{'invalid key'};\r
+    }\r
+\r
+###\r
+### Remove ca certificate (step 2)\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'remove ca certificate'} && $cgiparams{'AREUSURE'} eq 'yes') {\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+    &General::readhasharray("${General::swroot}/vpn/caconfig", \%cahash);\r
+\r
+    if ( -f "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) {\r
+       foreach my $key (keys %confighash) {\r
+           my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem ${General::swroot}/certs/$confighash{$key}[1]cert.pem`;\r
+           if ($test =~ /: OK/) {\r
+               # Delete connection\r
+               if ($vpnsettings{'ENABLED'} eq 'on' ||\r
+                   $vpnsettings{'ENABLED_BLUE'} eq 'on') {\r
+                   system('/usr/local/bin/ipsecctrl', 'D', $key);\r
+               }\r
+               unlink ("${General::swroot}/certs/$confighash{$key}[1]cert.pem");\r
+               unlink ("${General::swroot}/certs/$confighash{$key}[1].p12");\r
+               delete $confighash{$key};\r
+               &General::writehasharray("${General::swroot}/vpn/config", \%confighash);\r
+               &writeipsecfiles();\r
+           }\r
+       }\r
+       unlink ("${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem");\r
+       delete $cahash{$cgiparams{'KEY'}};\r
+       &General::writehasharray("${General::swroot}/vpn/caconfig", \%cahash);\r
+       system('/usr/local/bin/ipsecctrl', 'R');\r
+       sleep $sleepDelay;\r
+    } else {\r
+       $errormessage = $Lang::tr{'invalid key'};\r
+    }\r
+###\r
+### Remove ca certificate (step 1)\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'remove ca certificate'}) {\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+    &General::readhasharray("${General::swroot}/vpn/caconfig", \%cahash);\r
+\r
+    my $assignedcerts = 0;\r
+    if ( -f "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) {\r
+       foreach my $key (keys %confighash) {\r
+           my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem ${General::swroot}/certs/$confighash{$key}[1]cert.pem`;\r
+           if ($test =~ /: OK/) {\r
+               $assignedcerts++;\r
+           }\r
+       }\r
+       if ($assignedcerts) {\r
+           &Header::showhttpheaders();\r
+           &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');\r
+           &Header::openbigbox('100%', 'LEFT', '', '');\r
+           &Header::openbox('100%', 'LEFT', $Lang::tr{'are you sure'});\r
+           print <<END\r
+               <table><form method='post'><input type='hidden' name='AREUSURE' value='yes' />\r
+                      <input type='hidden' name='KEY' value='$cgiparams{'KEY'}' />\r
+                   <tr><td align='center'>\r
+                       <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}</font></b>: $assignedcerts\r
+                       $Lang::tr{'connections are associated with this ca.  deleting the ca will delete these connections as well.'}\r
+                   <tr><td align='center'><input type='submit' name='ACTION' value='$Lang::tr{'remove ca certificate'}' />\r
+                       <input type='submit' name='ACTION' value='$Lang::tr{'cancel'}' /></td></tr>\r
+               </form></table>\r
+END\r
+           ;\r
+           &Header::closebox();\r
+           &Header::closebigbox();\r
+           &Header::closepage();\r
+           exit (0);\r
+       } else {\r
+           unlink ("${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem");\r
+           delete $cahash{$cgiparams{'KEY'}};\r
+           &General::writehasharray("${General::swroot}/vpn/caconfig", \%cahash);\r
+           system('/usr/local/bin/ipsecctrl', 'R');\r
+           sleep $sleepDelay;\r
+       }\r
+    } else {\r
+       $errormessage = $Lang::tr{'invalid key'};\r
+    }\r
+\r
+###\r
+### Display root certificate\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'} ||\r
+       $cgiparams{'ACTION'} eq $Lang::tr{'show host certificate'}) {\r
+    my $output;\r
+    &Header::showhttpheaders();\r
+    &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');\r
+    &Header::openbigbox('100%', 'LEFT', '', '');\r
+    if ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'}) {\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'root certificate'}:");\r
+       $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ca/cacert.pem`;\r
+    } else {\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'host certificate'}:");\r
+       $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/hostcert.pem`;\r
+    }\r
+    $output = &Header::cleanhtml($output,"y");\r
+    print "<pre>$output</pre>\n";\r
+    &Header::closebox();\r
+    print "<div align='center'><a href='/cgi-bin/vpnmain.cgi'>$Lang::tr{'back'}</a></div>";\r
+    &Header::closebigbox();\r
+    &Header::closepage();\r
+    exit(0);\r
+\r
+###\r
+### Download root certificate\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'download root certificate'}) {\r
+    if ( -f "${General::swroot}/ca/cacert.pem" ) {\r
+       print "Content-Type: application/octet-stream\r\n";\r
+       print "Content-Disposition: filename=cacert.pem\r\n\r\n";\r
+       print `/usr/bin/openssl x509 -in ${General::swroot}/ca/cacert.pem`;\r
+       exit(0);\r
+    }\r
+###\r
+### Download host certificate\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'download host certificate'}) {\r
+    if ( -f "${General::swroot}/certs/hostcert.pem" ) {\r
+       print "Content-Type: application/octet-stream\r\n";\r
+       print "Content-Disposition: filename=hostcert.pem\r\n\r\n";\r
+       print `/usr/bin/openssl x509 -in ${General::swroot}/certs/hostcert.pem`;\r
+       exit(0);\r
+    }\r
+###\r
+### Form for generating a root certificate\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'generate root/host certificates'} ||\r
+        $cgiparams{'ACTION'} eq $Lang::tr{'upload p12 file'}) {\r
+\r
+    &General::readhash("${General::swroot}/vpn/settings", \%vpnsettings);\r
+    if (-f "${General::swroot}/ca/cacert.pem") {\r
+       $errormessage = $Lang::tr{'valid root certificate already exists'};\r
+       $cgiparams{'ACTION'} = '';\r
+       goto ROOTCERT_ERROR;\r
+    }\r
+\r
+    if (($cgiparams{'ROOTCERT_HOSTNAME'} eq '') && -e "${General::swroot}/red/active") {\r
+       if (open(IPADDR, "${General::swroot}/red/local-ipaddress")) {\r
+           my $ipaddr = <IPADDR>;\r
+           close IPADDR;\r
+           chomp ($ipaddr);\r
+           $cgiparams{'ROOTCERT_HOSTNAME'} = (gethostbyaddr(pack("C4", split(/\./, $ipaddr)), 2))[0];\r
+           if ($cgiparams{'ROOTCERT_HOSTNAME'} eq '') {\r
+               $cgiparams{'ROOTCERT_HOSTNAME'} = $ipaddr;\r
+           }\r
+       }\r
+    } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'upload p12 file'}) {\r
+\r
+       if (ref ($cgiparams{'FH'}) ne 'Fh') {\r
+           $errormessage = $Lang::tr{'there was no file upload'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+\r
+       # Move uploaded certificate request to a temporary file\r
+       (my $fh, my $filename) = tempfile( );\r
+       if (copy ($cgiparams{'FH'}, $fh) != 1) {\r
+           $errormessage = $!;\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+\r
+       # Create a temporary dirctory\r
+       my $tempdir = tempdir( CLEANUP => 1 );\r
+\r
+       # Extract the CA certificate from the file\r
+       my $pid = open(OPENSSL, "|-");\r
+       $SIG{ALRM} = sub { $errormessage = $Lang::tr{'broken pipe'}; goto ROOTCERT_ERROR;};\r
+       if ($pid) {     # parent\r
+           if ($cgiparams{'P12_PASS'} ne '') {\r
+               print OPENSSL "$cgiparams{'P12_PASS'}\n";\r
+           }\r
+           close (OPENSSL);\r
+           if ($?) {\r
+               $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+               unlink ($filename);\r
+               goto ROOTCERT_ERROR;\r
+           }\r
+       } else {        # child\r
+           unless (exec ('/usr/bin/openssl', 'pkcs12', '-cacerts', '-nokeys',\r
+                   '-in', $filename,\r
+                   '-out', "$tempdir/cacert.pem")) {\r
+               $errormessage = "$Lang::tr{'cant start openssl'}: $!";\r
+               unlink ($filename);\r
+               goto ROOTCERT_ERROR;\r
+           }\r
+       }\r
+\r
+       # Extract the Host certificate from the file\r
+       $pid = open(OPENSSL, "|-");\r
+       $SIG{ALRM} = sub { $errormessage = $Lang::tr{'broken pipe'}; goto ROOTCERT_ERROR;};\r
+       if ($pid) {     # parent\r
+           if ($cgiparams{'P12_PASS'} ne '') {\r
+               print OPENSSL "$cgiparams{'P12_PASS'}\n";\r
+           }\r
+           close (OPENSSL);\r
+           if ($?) {\r
+               $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+               unlink ($filename);\r
+               goto ROOTCERT_ERROR;\r
+           }\r
+       } else {        # child\r
+           unless (exec ('/usr/bin/openssl', 'pkcs12', '-clcerts', '-nokeys',\r
+                   '-in', $filename,\r
+                   '-out', "$tempdir/hostcert.pem")) {\r
+               $errormessage = "$Lang::tr{'cant start openssl'}: $!";\r
+               unlink ($filename);\r
+               goto ROOTCERT_ERROR;\r
+           }\r
+       }\r
+\r
+       # Extract the Host key from the file\r
+       $pid = open(OPENSSL, "|-");\r
+       $SIG{ALRM} = sub { $errormessage = $Lang::tr{'broken pipe'}; goto ROOTCERT_ERROR;};\r
+       if ($pid) {     # parent\r
+           if ($cgiparams{'P12_PASS'} ne '') {\r
+               print OPENSSL "$cgiparams{'P12_PASS'}\n";\r
+           }\r
+           close (OPENSSL);\r
+           if ($?) {\r
+               $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+               unlink ($filename);\r
+               goto ROOTCERT_ERROR;\r
+           }\r
+       } else {        # child\r
+           unless (exec ('/usr/bin/openssl', 'pkcs12', '-nocerts',\r
+                   '-nodes',\r
+                   '-in', $filename,\r
+                   '-out', "$tempdir/hostkey.pem")) {\r
+               $errormessage = "$Lang::tr{'cant start openssl'}: $!";\r
+               unlink ($filename);\r
+               goto ROOTCERT_ERROR;\r
+           }\r
+       }\r
+\r
+       move("$tempdir/cacert.pem", "${General::swroot}/ca/cacert.pem");\r
+       if ($? ne 0) {\r
+           $errormessage = "$Lang::tr{'certificate file move failed'}: $!";\r
+           unlink ($filename);\r
+           unlink ("${General::swroot}/ca/cacert.pem");\r
+           unlink ("${General::swroot}/certs/hostcert.pem");\r
+           unlink ("${General::swroot}/certs/hostkey.pem");\r
+           goto ROOTCERT_ERROR;\r
+        }\r
+\r
+       move("$tempdir/hostcert.pem", "${General::swroot}/certs/hostcert.pem");\r
+       if ($? ne 0) {\r
+           $errormessage = "$Lang::tr{'certificate file move failed'}: $!";\r
+           unlink ($filename);\r
+           unlink ("${General::swroot}/ca/cacert.pem");\r
+           unlink ("${General::swroot}/certs/hostcert.pem");\r
+           unlink ("${General::swroot}/certs/hostkey.pem");\r
+           goto ROOTCERT_ERROR;\r
+        }\r
+\r
+       move("$tempdir/hostkey.pem", "${General::swroot}/certs/hostkey.pem");\r
+       if ($? ne 0) {\r
+           $errormessage = "$Lang::tr{'certificate file move failed'}: $!";\r
+           unlink ($filename);\r
+           unlink ("${General::swroot}/ca/cacert.pem");\r
+           unlink ("${General::swroot}/certs/hostcert.pem");\r
+           unlink ("${General::swroot}/certs/hostkey.pem");\r
+           goto ROOTCERT_ERROR;\r
+        }\r
+\r
+       # Create an empty CRL\r
+       system('/usr/bin/openssl', 'ca', '-gencrl',\r
+               '-out', "${General::swroot}/crls/cacrl.pem");\r
+       if ($?) {\r
+           $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+           unlink ("${General::swroot}/certs/hostkey.pem");\r
+           unlink ("${General::swroot}/certs/hostcert.pem");\r
+           unlink ("${General::swroot}/ca/cacert.pem");\r
+           unlink ("${General::swroot}/crls/cacrl.pem");\r
+           &cleanssldatabase();\r
+           goto ROOTCERT_ERROR;\r
+       } else {\r
+           &cleanssldatabase();\r
+       }\r
+\r
+       goto ROOTCERT_SUCCESS;\r
+\r
+    } elsif ($cgiparams{'ROOTCERT_COUNTRY'} ne '') {\r
+\r
+       # Validate input since the form was submitted\r
+       if ($cgiparams{'ROOTCERT_ORGANIZATION'} eq ''){\r
+           $errormessage = $Lang::tr{'organization cant be empty'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+       if (length($cgiparams{'ROOTCERT_ORGANIZATION'}) >60) {\r
+           $errormessage = $Lang::tr{'organization too long'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+       if ($cgiparams{'ROOTCERT_ORGANIZATION'} !~ /^[a-zA-Z0-9 ,\.\-_]*$/) {\r
+           $errormessage = $Lang::tr{'invalid input for organization'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+       if ($cgiparams{'ROOTCERT_HOSTNAME'} eq ''){\r
+           $errormessage = $Lang::tr{'hostname cant be empty'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+       unless (&General::validfqdn($cgiparams{'ROOTCERT_HOSTNAME'}) || &General::validip($cgiparams{'ROOTCERT_HOSTNAME'})) {\r
+           $errormessage = $Lang::tr{'invalid input for hostname'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+       if ($cgiparams{'ROOTCERT_EMAIL'} ne '' && (! &General::validemail($cgiparams{'ROOTCERT_EMAIL'}))) {\r
+           $errormessage = $Lang::tr{'invalid input for e-mail address'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+       if (length($cgiparams{'ROOTCERT_EMAIL'}) > 40) {\r
+           $errormessage = $Lang::tr{'e-mail address too long'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+       if ($cgiparams{'ROOTCERT_OU'} ne '' && $cgiparams{'ROOTCERT_OU'} !~ /^[a-zA-Z0-9 ,\.\-_]*$/) {\r
+           $errormessage = $Lang::tr{'invalid input for department'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+       if ($cgiparams{'ROOTCERT_CITY'} ne '' && $cgiparams{'ROOTCERT_CITY'} !~ /^[a-zA-Z0-9 ,\.\-_]*$/) {\r
+           $errormessage = $Lang::tr{'invalid input for city'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+       if ($cgiparams{'ROOTCERT_STATE'} ne '' && $cgiparams{'ROOTCERT_STATE'} !~ /^[a-zA-Z0-9 ,\.\-_]*$/) {\r
+           $errormessage = $Lang::tr{'invalid input for state or province'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+       if ($cgiparams{'ROOTCERT_COUNTRY'} !~ /^[A-Z]*$/) {\r
+           $errormessage = $Lang::tr{'invalid input for country'};\r
+           goto ROOTCERT_ERROR;\r
+       }\r
+\r
+       # Copy the cgisettings to vpnsettings and save the configfile\r
+       $vpnsettings{'ROOTCERT_ORGANIZATION'}   = $cgiparams{'ROOTCERT_ORGANIZATION'};\r
+       $vpnsettings{'ROOTCERT_HOSTNAME'}       = $cgiparams{'ROOTCERT_HOSTNAME'};\r
+       $vpnsettings{'ROOTCERT_EMAIL'}          = $cgiparams{'ROOTCERT_EMAIL'};\r
+       $vpnsettings{'ROOTCERT_OU'}             = $cgiparams{'ROOTCERT_OU'};\r
+       $vpnsettings{'ROOTCERT_CITY'}           = $cgiparams{'ROOTCERT_CITY'};\r
+       $vpnsettings{'ROOTCERT_STATE'}          = $cgiparams{'ROOTCERT_STATE'};\r
+       $vpnsettings{'ROOTCERT_COUNTRY'}        = $cgiparams{'ROOTCERT_COUNTRY'};\r
+       &General::writehash("${General::swroot}/vpn/settings", \%vpnsettings);\r
+\r
+       # Replace empty strings with a .\r
+       (my $ou = $cgiparams{'ROOTCERT_OU'}) =~ s/^\s*$/\./;\r
+       (my $city = $cgiparams{'ROOTCERT_CITY'}) =~ s/^\s*$/\./;\r
+       (my $state = $cgiparams{'ROOTCERT_STATE'}) =~ s/^\s*$/\./;\r
+\r
+       # Create the CA certificate\r
+       my $pid = open(OPENSSL, "|-");\r
+       $SIG{ALRM} = sub { $errormessage = $Lang::tr{'broken pipe'}; goto ROOTCERT_ERROR;};\r
+       if ($pid) {     # parent\r
+           print OPENSSL "$cgiparams{'ROOTCERT_COUNTRY'}\n";\r
+           print OPENSSL "$state\n";\r
+           print OPENSSL "$city\n";\r
+           print OPENSSL "$cgiparams{'ROOTCERT_ORGANIZATION'}\n";\r
+           print OPENSSL "$ou\n";\r
+           print OPENSSL "$cgiparams{'ROOTCERT_ORGANIZATION'} CA\n";\r
+           print OPENSSL "$cgiparams{'ROOTCERT_EMAIL'}\n";\r
+           close (OPENSSL);\r
+           if ($?) {\r
+               $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+               unlink ("${General::swroot}/private/cakey.pem");\r
+               unlink ("${General::swroot}/ca/cacert.pem");\r
+               goto ROOTCERT_ERROR;\r
+           }\r
+       } else {        # child\r
+           unless (exec ('/usr/bin/openssl', 'req', '-x509', '-nodes', '-rand', '/proc/interrupts:/proc/net/rt_cache',\r
+                       '-days', '999999', '-newkey', 'rsa:2048',\r
+                       '-keyout', "${General::swroot}/private/cakey.pem",\r
+                       '-out', "${General::swroot}/ca/cacert.pem")) {\r
+               $errormessage = "$Lang::tr{'cant start openssl'}: $!";\r
+               goto ROOTCERT_ERROR;\r
+           }\r
+       }\r
+\r
+       # Create the Host certificate request\r
+       $pid = open(OPENSSL, "|-");\r
+       $SIG{ALRM} = sub { $errormessage = $Lang::tr{'broken pipe'}; goto ROOTCERT_ERROR;};\r
+       if ($pid) {     # parent\r
+           print OPENSSL "$cgiparams{'ROOTCERT_COUNTRY'}\n";\r
+           print OPENSSL "$state\n";\r
+           print OPENSSL "$city\n";\r
+           print OPENSSL "$cgiparams{'ROOTCERT_ORGANIZATION'}\n";\r
+           print OPENSSL "$ou\n";\r
+           print OPENSSL "$cgiparams{'ROOTCERT_HOSTNAME'}\n";\r
+           print OPENSSL "$cgiparams{'ROOTCERT_EMAIL'}\n";\r
+           print OPENSSL ".\n";\r
+           print OPENSSL ".\n";\r
+           close (OPENSSL);\r
+           if ($?) {\r
+               $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+               unlink ("${General::swroot}/certs/hostkey.pem");\r
+               unlink ("${General::swroot}/certs/hostreq.pem");\r
+               goto ROOTCERT_ERROR;\r
+           }\r
+       } else {        # child\r
+           unless (exec ('/usr/bin/openssl', 'req', '-nodes', '-rand', '/proc/interrupts:/proc/net/rt_cache',\r
+                       '-newkey', 'rsa:1024',\r
+                       '-keyout', "${General::swroot}/certs/hostkey.pem",\r
+                       '-out', "${General::swroot}/certs/hostreq.pem")) {\r
+               $errormessage = "$Lang::tr{'cant start openssl'}: $!";\r
+               unlink ("${General::swroot}/certs/hostkey.pem");\r
+               unlink ("${General::swroot}/certs/hostreq.pem");\r
+               unlink ("${General::swroot}/private/cakey.pem");\r
+               unlink ("${General::swroot}/ca/cacert.pem");\r
+               goto ROOTCERT_ERROR;\r
+           }\r
+       }\r
+       \r
+       # Sign the host certificate request\r
+       system('/usr/bin/openssl', 'ca', '-days', '999999',\r
+               '-batch', '-notext',\r
+               '-in',  "${General::swroot}/certs/hostreq.pem",\r
+               '-out', "${General::swroot}/certs/hostcert.pem");\r
+       if ($?) {\r
+           $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+           unlink ("${General::swroot}/private/cakey.pem");\r
+           unlink ("${General::swroot}/ca/cacert.pem");\r
+           unlink ("${General::swroot}/certs/hostkey.pem");\r
+           unlink ("${General::swroot}/certs/hostreq.pem");\r
+           unlink ("${General::swroot}/certs/hostcert.pem");\r
+           &cleanssldatabase();\r
+           goto ROOTCERT_ERROR;\r
+       } else {\r
+           unlink ("${General::swroot}/certs/hostreq.pem");\r
+           &cleanssldatabase();\r
+       }\r
+\r
+       # Create an empty CRL\r
+       system('/usr/bin/openssl', 'ca', '-gencrl',\r
+               '-out', "${General::swroot}/crls/cacrl.pem");\r
+       if ($?) {\r
+           $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+           unlink ("${General::swroot}/certs/hostkey.pem");\r
+           unlink ("${General::swroot}/certs/hostcert.pem");\r
+           unlink ("${General::swroot}/ca/cacert.pem");\r
+           unlink ("${General::swroot}/crls/cacrl.pem");\r
+           &cleanssldatabase();\r
+           goto ROOTCERT_ERROR;\r
+       } else {\r
+           &cleanssldatabase();\r
+       }\r
+       goto ROOTCERT_SUCCESS;\r
+    }\r
+    ROOTCERT_ERROR:\r
+    if ($cgiparams{'ACTION'} ne '') {\r
+       &Header::showhttpheaders();\r
+       &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');\r
+       &Header::openbigbox('100%', 'LEFT', '', $errormessage);\r
+       if ($errormessage) {\r
+           &Header::openbox('100%', 'LEFT', $Lang::tr{'error messages'});\r
+           print "<class name='base'>$errormessage";\r
+           print "&nbsp;</class>";\r
+           &Header::closebox();\r
+       }\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'generate root/host certificates'}:");\r
+       print <<END\r
+       <form method='post' enctype='multipart/form-data'>\r
+       <table width='100%' border='0' cellspacing='1' cellpadding='0'>\r
+       <tr><td width='30%' class='base'>$Lang::tr{'organization name'}:</td>\r
+           <td width='35%' class='base' nowrap='nowrap'><input type='text' name='ROOTCERT_ORGANIZATION' value='$cgiparams{'ROOTCERT_ORGANIZATION'}' size='32' /></td>\r
+           <td width='35%' colspan='2'>&nbsp;</td></tr>\r
+       <tr><td class='base'>$Lang::tr{'ipcops hostname'}:</td>\r
+           <td class='base' nowrap='nowrap'><input type='text' name='ROOTCERT_HOSTNAME' value='$cgiparams{'ROOTCERT_HOSTNAME'}' size='32' /></td>\r
+           <td colspan='2'>&nbsp;</td></tr>\r
+       <tr><td class='base'>$Lang::tr{'your e-mail'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+           <td class='base' nowrap='nowrap'><input type='text' name='ROOTCERT_EMAIL' value='$cgiparams{'ROOTCERT_EMAIL'}' size='32' /></td>\r
+           <td colspan='2'>&nbsp;</td></tr>\r
+       <tr><td class='base'>$Lang::tr{'your department'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+           <td class='base' nowrap='nowrap'><input type='text' name='ROOTCERT_OU' value='$cgiparams{'ROOTCERT_OU'}' size='32' /></td>\r
+           <td colspan='2'>&nbsp;</td></tr>\r
+       <tr><td class='base'>$Lang::tr{'city'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+           <td class='base' nowrap='nowrap'><input type='text' name='ROOTCERT_CITY' value='$cgiparams{'ROOTCERT_CITY'}' size='32' /></td>\r
+           <td colspan='2'>&nbsp;</td></tr>\r
+       <tr><td class='base'>$Lang::tr{'state or province'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+           <td class='base' nowrap='nowrap'><input type='text' name='ROOTCERT_STATE' value='$cgiparams{'ROOTCERT_STATE'}' size='32' /></td>\r
+           <td colspan='2'>&nbsp;</td></tr>\r
+       <tr><td class='base'>$Lang::tr{'country'}:</td>\r
+           <td class='base'><select name='ROOTCERT_COUNTRY'>\r
+END\r
+       ;\r
+       foreach my $country (sort keys %{Countries::countries}) {\r
+           print "<option value='$Countries::countries{$country}'";\r
+           if ( $Countries::countries{$country} eq $cgiparams{'ROOTCERT_COUNTRY'} ) {\r
+               print " selected='selected'";\r
+           }\r
+           print ">$country</option>";\r
+       }\r
+       print <<END\r
+           </select></td>\r
+           <td colspan='2'>&nbsp;</td></tr>\r
+       <tr><td>&nbsp;</td>\r
+           <td><br /><input type='submit' name='ACTION' value='$Lang::tr{'generate root/host certificates'}' /><br /><br /></td>\r
+           <td>&nbsp;</td><td>&nbsp;</td></tr>\r
+       <tr><td class='base' align='left' valign='top'>\r
+           <img src='/blob.gif' valign='top' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td>\r
+           <td class='base' align='left'>\r
+           <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}</font></b>: \r
+           $Lang::tr{'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient'}\r
+       </td></tr>\r
+       <tr><td colspan='4'><hr /></td></tr>\r
+       <tr><td class='base' nowrap='nowrap'>$Lang::tr{'upload p12 file'}:</td>\r
+           <td nowrap='nowrap'><input type='file' name='FH' size='32'></td>\r
+           <td colspan='2'>&nbsp;</td></tr>\r
+       <tr><td class='base'>$Lang::tr{'pkcs12 file password'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+           <td class='base' nowrap='nowrap'><input type='password' name='P12_PASS' value='$cgiparams{'P12_PASS'}' size='32' /></td>\r
+            <td colspan='2'>&nbsp;</td></tr>\r
+       <tr><td>&nbsp;</td>\r
+           <td><input type='submit' name='ACTION' value='$Lang::tr{'upload p12 file'}' /></td>\r
+            <td colspan='2'>&nbsp;</td></tr>\r
+       <tr><td class='base' colspan='4' align='left'>\r
+           <img src='/blob.gif' valign='top' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td></tr>\r
+       </form></table>\r
+END\r
+       ;\r
+       &Header::closebox();\r
+\r
+       &Header::closebigbox();\r
+       &Header::closepage();\r
+        exit(0)\r
+    }\r
+\r
+    ROOTCERT_SUCCESS:\r
+    if ($vpnsettings{'ENABLED'} eq 'on' ||\r
+       $vpnsettings{'ENABLE_BLUE'} eq 'on') {\r
+       system('/usr/local/bin/ipsecctrl', 'S');\r
+       sleep $sleepDelay;\r
+    }\r
+###\r
+### Download PKCS12 file\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'download pkcs12 file'}) {\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+\r
+    print "Content-Disposition: filename=" . $confighash{$cgiparams{'KEY'}}[1] . ".p12\r\n";\r
+    print "Content-Type: application/octet-stream\r\n\r\n";\r
+    print `/bin/cat ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1].p12`;\r
+    exit (0);\r
+\r
+###\r
+### Display certificate\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'show certificate'}) {\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+\r
+    if ( -f "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem") {\r
+       &Header::showhttpheaders();\r
+       &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');\r
+       &Header::openbigbox('100%', 'LEFT', '', '');\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'certificate'}:");\r
+       my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`;\r
+       $output = &Header::cleanhtml($output,"y");\r
+       print "<pre>$output</pre>\n";\r
+       &Header::closebox();\r
+       print "<div align='center'><a href='/cgi-bin/vpnmain.cgi'>$Lang::tr{'back'}</a></div>";\r
+       &Header::closebigbox();\r
+       &Header::closepage();\r
+       exit(0);\r
+    }\r
+\r
+###\r
+### Download Certificate\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'download certificate'}) {\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+\r
+    if ( -f "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem") {\r
+       print "Content-Disposition: filename=" . $confighash{$cgiparams{'KEY'}}[1] . "cert.pem\r\n";\r
+       print "Content-Type: application/octet-stream\r\n\r\n";\r
+       print `/bin/cat ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`;\r
+       exit (0);\r
+    }\r
+\r
+###\r
+### Enable/Disable connection\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'}) {\r
+    \r
+    &General::readhash("${General::swroot}/vpn/settings", \%vpnsettings);\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+\r
+    if ($confighash{$cgiparams{'KEY'}}) {\r
+       if ($confighash{$cgiparams{'KEY'}}[0] eq 'off') {\r
+           $confighash{$cgiparams{'KEY'}}[0] = 'on';\r
+           &General::writehasharray("${General::swroot}/vpn/config", \%confighash);\r
+           &writeipsecfiles();\r
+           if ($vpnsettings{'ENABLED'} eq 'on' ||\r
+               $vpnsettings{'ENABLED_BLUE'} eq 'on') {\r
+               system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'});\r
+               sleep $sleepDelay;\r
+           }\r
+       } else {\r
+           $confighash{$cgiparams{'KEY'}}[0] = 'off';\r
+           if ($vpnsettings{'ENABLED'} eq 'on' ||\r
+               $vpnsettings{'ENABLED_BLUE'} eq 'on') {\r
+               system('/usr/local/bin/ipsecctrl', 'D', $cgiparams{'KEY'});\r
+           }\r
+           &General::writehasharray("${General::swroot}/vpn/config", \%confighash);\r
+           &writeipsecfiles();\r
+       }\r
+    } else {\r
+       $errormessage = $Lang::tr{'invalid key'};\r
+    }\r
+\r
+###\r
+### Restart connection\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'restart'}) {\r
+    &General::readhash("${General::swroot}/vpn/settings", \%vpnsettings);\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+\r
+    if ($confighash{$cgiparams{'KEY'}}) {\r
+       if ($vpnsettings{'ENABLED'} eq 'on' ||\r
+           $vpnsettings{'ENABLED_BLUE'} eq 'on') {\r
+           system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'});\r
+           sleep $sleepDelay;\r
+       }\r
+    } else {\r
+       $errormessage = $Lang::tr{'invalid key'};\r
+    }\r
+\r
+###\r
+### Remove connection\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) {\r
+    &General::readhash("${General::swroot}/vpn/settings", \%vpnsettings);\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+\r
+    if ($confighash{$cgiparams{'KEY'}}) {\r
+       if ($vpnsettings{'ENABLED'} eq 'on' ||\r
+           $vpnsettings{'ENABLED_BLUE'} eq 'on') {\r
+           system('/usr/local/bin/ipsecctrl', 'D', $cgiparams{'KEY'});\r
+       }\r
+       unlink ("${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem");\r
+       unlink ("${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1].p12");\r
+       delete $confighash{$cgiparams{'KEY'}};\r
+       &General::writehasharray("${General::swroot}/vpn/config", \%confighash);\r
+       &writeipsecfiles();\r
+    } else {\r
+       $errormessage = $Lang::tr{'invalid key'};\r
+    }\r
+\r
+###\r
+### Choose between adding a host-net or net-net connection\r
+###\r
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'add'} && $cgiparams{'TYPE'} eq '') {\r
+       &General::readhash("${General::swroot}/vpn/settings", \%vpnsettings);\r
+       &Header::showhttpheaders();\r
+       &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');\r
+       &Header::openbigbox('100%', 'LEFT', '', '');\r
+       &Header::openbox('100%', 'LEFT', $Lang::tr{'connection type'});\r
+       print <<END\r
+           <b>$Lang::tr{'connection type'}:</b><br />\r
+           <table><form method='post'>\r
+           <tr><td><input type='radio' name='TYPE' value='host' checked /></td>\r
+               <td class='base'>$Lang::tr{'host to net vpn'}</td></tr>\r
+           <tr><td><input type='radio' name='TYPE' value='net' /></td>\r
+               <td class='base'>$Lang::tr{'net to net vpn'}</td></tr>\r
+           <tr><td align='center' colspan='2'><input type='submit' name='ACTION' value='$Lang::tr{'add'}' /></td></tr>\r
+           </form></table>\r
+END\r
+       ;\r
+       &Header::closebox();\r
+       &Header::closebigbox();\r
+       &Header::closepage();\r
+       exit (0);\r
+###\r
+### Adding a new connection\r
+###\r
+} elsif (($cgiparams{'ACTION'} eq $Lang::tr{'add'}) ||\r
+        ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) ||\r
+        ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'ADVANCED'} eq '')) {\r
+\r
+    &General::readhash("${General::swroot}/vpn/settings", \%vpnsettings);\r
+    &General::readhasharray("${General::swroot}/vpn/caconfig", \%cahash);\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+\r
+    if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) {\r
+       if (! $confighash{$cgiparams{'KEY'}}[0]) {\r
+           $errormessage = $Lang::tr{'invalid key'};\r
+           goto VPNCONF_END;\r
+       }\r
+       $cgiparams{'ENABLED'}   = $confighash{$cgiparams{'KEY'}}[0];\r
+       $cgiparams{'NAME'}      = $confighash{$cgiparams{'KEY'}}[1];\r
+       $cgiparams{'TYPE'}      = $confighash{$cgiparams{'KEY'}}[3];\r
+       $cgiparams{'AUTH'}      = $confighash{$cgiparams{'KEY'}}[4];\r
+       $cgiparams{'PSK'}       = $confighash{$cgiparams{'KEY'}}[5];\r
+       $cgiparams{'SIDE'}      = $confighash{$cgiparams{'KEY'}}[6];\r
+       $cgiparams{'LOCAL_ID'}  = $confighash{$cgiparams{'KEY'}}[7];\r
+       $cgiparams{'LOCAL_SUBNET'} = $confighash{$cgiparams{'KEY'}}[8];\r
+       $cgiparams{'REMOTE_ID'} = $confighash{$cgiparams{'KEY'}}[9];\r
+       $cgiparams{'REMOTE'}    = $confighash{$cgiparams{'KEY'}}[10];\r
+       $cgiparams{'REMOTE_SUBNET'} = $confighash{$cgiparams{'KEY'}}[11];\r
+       $cgiparams{'REMARK'}    = $confighash{$cgiparams{'KEY'}}[25];\r
+       $cgiparams{'INTERFACE'} = $confighash{$cgiparams{'KEY'}}[26];\r
+       $cgiparams{'DPD_ACTION'}= $confighash{$cgiparams{'KEY'}}[27];\r
+       $cgiparams{'PFS_YES_NO'}= $confighash{$cgiparams{'KEY'}}[28];\r
+\r
+    } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) {\r
+       $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'});\r
+       if ($cgiparams{'TYPE'} !~ /^(host|net)$/) {\r
+           $errormessage = $Lang::tr{'connection type is invalid'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+\r
+       if ($cgiparams{'NAME'} !~ /^[a-zA-Z0-9]+$/) {\r
+           $errormessage = $Lang::tr{'name must only contain characters'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+\r
+       if ($cgiparams{'NAME'} =~ /^(host|01|block|private|clear|packetdefault)$/) {\r
+           $errormessage = $Lang::tr{'name is invalid'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+\r
+       if (length($cgiparams{'NAME'}) >60) {\r
+           $errormessage = $Lang::tr{'name too long'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+\r
+       if (($cgiparams{'TYPE'} eq 'net') && ($cgiparams{'SIDE'} !~ /^(left|right)$/)) {\r
+           $errormessage = $Lang::tr{'ipcop side is invalid'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+\r
+       # Check if there is no other entry with this name\r
+       if (! $cgiparams{'KEY'}) {\r
+           foreach my $key (keys %confighash) {\r
+               if ($confighash{$key}[1] eq $cgiparams{'NAME'}) {\r
+                   $errormessage = $Lang::tr{'a connection with this name already exists'};\r
+                   goto VPNCONF_ERROR;\r
+               }\r
+           }\r
+       }\r
+\r
+       if (($cgiparams{'TYPE'} eq 'net') && (! $cgiparams{'REMOTE'})) {\r
+           $errormessage = $Lang::tr{'invalid input for remote host/ip'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+\r
+       if ($cgiparams{'REMOTE'}) {\r
+           if (! &General::validip($cgiparams{'REMOTE'})) {\r
+               if (! &General::validfqdn ($cgiparams{'REMOTE'}))  {\r
+                   $errormessage = $Lang::tr{'invalid input for remote host/ip'};\r
+                   goto VPNCONF_ERROR;\r
+               } else {\r
+                   if (&valid_dns_host($cgiparams{'REMOTE'})) {\r
+                       $warnmessage = "$Lang::tr{'check vpn lr'} $cgiparams{'REMOTE'}. $Lang::tr{'dns check failed'}";\r
+                   }\r
+               }\r
+           }\r
+       }\r
+\r
+        unless (&General::validipandmask($cgiparams{'LOCAL_SUBNET'})) {\r
+            $errormessage = $Lang::tr{'local subnet is invalid'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+\r
+       # Check if there is no other entry without IP-address and PSK\r
+       if ($cgiparams{'REMOTE'} eq '') {\r
+           foreach my $key (keys %confighash) {\r
+               if(($cgiparams{'KEY'} ne $key) && \r
+                  ($confighash{$key}[4] eq 'psk' || $cgiparams{'AUTH'} eq 'psk') && \r
+                   $confighash{$key}[10] eq '') {\r
+                       $errormessage = $Lang::tr{'you can only define one roadwarrior connection when using pre-shared key authentication'};\r
+                       goto VPNCONF_ERROR;\r
+               }\r
+           }\r
+       }\r
+       if (($cgiparams{'TYPE'} eq 'net') && (! &General::validipandmask($cgiparams{'REMOTE_SUBNET'}))) {\r
+            $errormessage = $Lang::tr{'remote subnet is invalid'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+\r
+       if ($cgiparams{'ENABLED'} !~ /^(on|off)$/) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+       if ($cgiparams{'EDIT_ADVANCED'} !~ /^(on|off)$/) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+\r
+       if (($cgiparams{'LOCAL_ID'} !~ /^(|@[a-zA-Z0-9_.-]*)$/) ||\r
+           ($cgiparams{'REMOTE_ID'} !~ /^(|@[a-zA-Z0-9_.-]*)$/) ||\r
+           (($cgiparams{'REMOTE_ID'} eq $cgiparams{'LOCAL_ID'}) && ($cgiparams{'LOCAL_ID'} ne ''))\r
+          ) {\r
+           $errormessage = $Lang::tr{'invalid local-remote id'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+       \r
+       if ($cgiparams{'AUTH'} eq 'psk')  {\r
+           if (! length($cgiparams{'PSK'}) ) {\r
+               $errormessage = $Lang::tr{'pre-shared key is too short'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if ($cgiparams{'PSK'} =~ /['",&]/) {        # " ' correct coloring syntax editor !\r
+               $errormessage = $Lang::tr{'invalid characters found in pre-shared key'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+       } elsif ($cgiparams{'AUTH'} eq 'certreq') {\r
+           if ($cgiparams{'KEY'}) {\r
+               $errormessage = $Lang::tr{'cant change certificates'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if (ref ($cgiparams{'FH'}) ne 'Fh') {\r
+               $errormessage = $Lang::tr{'there was no file upload'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+\r
+           # Move uploaded certificate request to a temporary file\r
+           (my $fh, my $filename) = tempfile( );\r
+           if (copy ($cgiparams{'FH'}, $fh) != 1) {\r
+               $errormessage = $!;\r
+               goto VPNCONF_ERROR;\r
+           }\r
+\r
+           # Sign the certificate request and move it\r
+           # Sign the host certificate request\r
+           system('/usr/bin/openssl', 'ca', '-days', '999999',\r
+               '-batch', '-notext',\r
+               '-in', $filename,\r
+               '-out', "${General::swroot}/certs/$cgiparams{'NAME'}cert.pem");\r
+           if ($?) {\r
+               $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+               unlink ($filename);\r
+               unlink ("${General::swroot}/certs/$cgiparams{'NAME'}cert.pem");\r
+               &cleanssldatabase();\r
+               goto VPNCONF_ERROR;\r
+           } else {\r
+               unlink ($filename);\r
+               &cleanssldatabase();\r
+           }\r
+\r
+           my $temp = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/$cgiparams{'NAME'}cert.pem`;\r
+           $temp =~ /Subject:.*CN=(.*)[\n]/;\r
+           $temp = $1;\r
+           $temp =~ s+/Email+, E+;\r
+           $temp =~ s/ ST=/ S=/;\r
+           $cgiparams{'CERT_NAME'} = $temp;\r
+           $cgiparams{'CERT_NAME'} =~ s/,//g;\r
+           $cgiparams{'CERT_NAME'} =~ s/\'//g;\r
+           if ($cgiparams{'CERT_NAME'} eq '') {\r
+               $errormessage = $Lang::tr{'could not retrieve common name from certificate'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+       } elsif ($cgiparams{'AUTH'} eq 'certfile') {\r
+           if ($cgiparams{'KEY'}) {\r
+               $errormessage = $Lang::tr{'cant change certificates'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if (ref ($cgiparams{'FH'}) ne 'Fh') {\r
+               $errormessage = $Lang::tr{'there was no file upload'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           # Move uploaded certificate to a temporary file\r
+           (my $fh, my $filename) = tempfile( );\r
+           if (copy ($cgiparams{'FH'}, $fh) != 1) {\r
+               $errormessage = $!;\r
+               goto VPNCONF_ERROR;\r
+           }\r
+\r
+           # Verify the certificate has a valid CA and move it\r
+           my $validca = 0;\r
+           my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/cacert.pem $filename`;\r
+           if ($test =~ /: OK/) {\r
+               $validca = 1;\r
+           } else {\r
+               foreach my $key (keys %cahash) {\r
+                   $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/$cahash{$key}[0]cert.pem $filename`;\r
+                   if ($test =~ /: OK/) {\r
+                       $validca = 1;\r
+                   }\r
+               }\r
+           }\r
+           if (! $validca) {\r
+               $errormessage = $Lang::tr{'certificate does not have a valid ca associated with it'};\r
+               unlink ($filename);\r
+               goto VPNCONF_ERROR;\r
+           } else {\r
+               move($filename, "${General::swroot}/certs/$cgiparams{'NAME'}cert.pem");\r
+               if ($? ne 0) {\r
+                   $errormessage = "$Lang::tr{'certificate file move failed'}: $!";\r
+                   unlink ($filename);\r
+                   goto VPNCONF_ERROR;\r
+               }\r
+           }\r
+\r
+           my $temp = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/$cgiparams{'NAME'}cert.pem`;\r
+           $temp =~ /Subject:.*CN=(.*)[\n]/;\r
+           $temp = $1;\r
+           $temp =~ s+/Email+, E+;\r
+           $temp =~ s/ ST=/ S=/;\r
+           $cgiparams{'CERT_NAME'} = $temp;\r
+           $cgiparams{'CERT_NAME'} =~ s/,//g;\r
+           $cgiparams{'CERT_NAME'} =~ s/\'//g;\r
+           if ($cgiparams{'CERT_NAME'} eq '') {\r
+               unlink ("${General::swroot}/certs/$cgiparams{'NAME'}cert.pem");\r
+               $errormessage = $Lang::tr{'could not retrieve common name from certificate'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+       } elsif ($cgiparams{'AUTH'} eq 'certgen') {\r
+           if ($cgiparams{'KEY'}) {\r
+               $errormessage = $Lang::tr{'cant change certificates'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           # Validate input since the form was submitted\r
+           if (length($cgiparams{'CERT_NAME'}) >60) {\r
+               $errormessage = $Lang::tr{'name too long'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if ($cgiparams{'CERT_NAME'} !~ /^[a-zA-Z0-9 ,\.\-_]+$/) {\r
+               $errormessage = $Lang::tr{'invalid input for name'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if ($cgiparams{'CERT_EMAIL'} ne '' && (! &General::validemail($cgiparams{'CERT_EMAIL'}))) {\r
+               $errormessage = $Lang::tr{'invalid input for e-mail address'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if (length($cgiparams{'CERT_EMAIL'}) > 40) {\r
+               $errormessage = $Lang::tr{'e-mail address too long'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if ($cgiparams{'CERT_OU'} ne '' && $cgiparams{'CERT_OU'} !~ /^[a-zA-Z0-9 ,\.\-_]*$/) {\r
+               $errormessage = $Lang::tr{'invalid input for department'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if (length($cgiparams{'CERT_ORGANIZATION'}) >60) {\r
+               $errormessage = $Lang::tr{'organization too long'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if ($cgiparams{'CERT_ORGANIZATION'} !~ /^[a-zA-Z0-9 ,\.\-_]+$/) {\r
+               $errormessage = $Lang::tr{'invalid input for organization'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if ($cgiparams{'CERT_CITY'} ne '' && $cgiparams{'CERT_CITY'} !~ /^[a-zA-Z0-9 ,\.\-_]*$/) {\r
+               $errormessage = $Lang::tr{'invalid input for city'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if ($cgiparams{'CERT_STATE'} ne '' && $cgiparams{'CERT_STATE'} !~ /^[a-zA-Z0-9 ,\.\-_]*$/) {\r
+               $errormessage = $Lang::tr{'invalid input for state or province'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if ($cgiparams{'CERT_COUNTRY'} !~ /^[A-Z]*$/) {\r
+               $errormessage = $Lang::tr{'invalid input for country'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if (length($cgiparams{'CERT_PASS1'}) < 5) {\r
+               $errormessage = $Lang::tr{'password too short'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+           if ($cgiparams{'CERT_PASS1'} ne $cgiparams{'CERT_PASS2'}) {\r
+               $errormessage = $Lang::tr{'passwords do not match'};\r
+               goto VPNCONF_ERROR;\r
+           }\r
+\r
+           # Replace empty strings with a .\r
+           (my $ou = $cgiparams{'CERT_OU'}) =~ s/^\s*$/\./;\r
+           (my $city = $cgiparams{'CERT_CITY'}) =~ s/^\s*$/\./;\r
+           (my $state = $cgiparams{'CERT_STATE'}) =~ s/^\s*$/\./;\r
+\r
+           # Create the Host certificate request\r
+           my $pid = open(OPENSSL, "|-");\r
+           $SIG{ALRM} = sub { $errormessage = $Lang::tr{'broken pipe'}; goto VPNCONF_ERROR;};\r
+           if ($pid) { # parent\r
+               print OPENSSL "$cgiparams{'CERT_COUNTRY'}\n";\r
+               print OPENSSL "$state\n";\r
+               print OPENSSL "$city\n";\r
+               print OPENSSL "$cgiparams{'CERT_ORGANIZATION'}\n";\r
+               print OPENSSL "$ou\n";\r
+               print OPENSSL "$cgiparams{'CERT_NAME'}\n";\r
+               print OPENSSL "$cgiparams{'CERT_EMAIL'}\n";\r
+               print OPENSSL ".\n";\r
+               print OPENSSL ".\n";\r
+               close (OPENSSL);\r
+               if ($?) {\r
+                   $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+                   unlink ("${General::swroot}/certs/$cgiparams{'NAME'}key.pem");\r
+                   unlink ("${General::swroot}/certs/$cgiparams{'NAME'}req.pem");\r
+                   goto VPNCONF_ERROR;\r
+               }\r
+           } else {    # child\r
+               unless (exec ('/usr/bin/openssl', 'req', '-nodes', '-rand', '/proc/interrupts:/proc/net/rt_cache',\r
+                       '-newkey', 'rsa:1024',\r
+                       '-keyout', "${General::swroot}/certs/$cgiparams{'NAME'}key.pem",\r
+                       '-out', "${General::swroot}/certs/$cgiparams{'NAME'}req.pem")) {\r
+                   $errormessage = "$Lang::tr{'cant start openssl'}: $!";\r
+                   unlink ("${General::swroot}/certs/$cgiparams{'NAME'}key.pem");\r
+                   unlink ("${General::swroot}/certs/$cgiparams{'NAME'}req.pem");\r
+                   goto VPNCONF_ERROR;\r
+               }\r
+           }\r
+       \r
+           # Sign the host certificate request\r
+           system('/usr/bin/openssl', 'ca', '-days', '999999',\r
+               '-batch', '-notext',\r
+               '-in',  "${General::swroot}/certs/$cgiparams{'NAME'}req.pem",\r
+               '-out', "${General::swroot}/certs/$cgiparams{'NAME'}cert.pem");\r
+           if ($?) {\r
+               $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+               unlink ("${General::swroot}/certs/$cgiparams{'NAME'}key.pem");\r
+               unlink ("${General::swroot}/certs/$cgiparams{'NAME'}req.pem");\r
+               unlink ("${General::swroot}/certs/$cgiparams{'NAME'}cert.pem");\r
+               &cleanssldatabase();\r
+               goto VPNCONF_ERROR;\r
+           } else {\r
+               unlink ("${General::swroot}/certs/$cgiparams{'NAME'}req.pem");\r
+               &cleanssldatabase();\r
+           }\r
+\r
+           # Create the pkcs12 file\r
+           system('/usr/bin/openssl', 'pkcs12', '-export', \r
+               '-inkey', "${General::swroot}/certs/$cgiparams{'NAME'}key.pem",\r
+               '-in', "${General::swroot}/certs/$cgiparams{'NAME'}cert.pem",\r
+               '-name', $cgiparams{'NAME'},\r
+               '-passout', "pass:$cgiparams{'CERT_PASS1'}",\r
+               '-certfile', "${General::swroot}/ca/cacert.pem", \r
+               '-caname', "$vpnsettings{'ROOTCERT_ORGANIZATION'} CA",\r
+               '-out', "${General::swroot}/certs/$cgiparams{'NAME'}.p12");\r
+           if ($?) {\r
+               $errormessage = "$Lang::tr{'openssl produced an error'}: $?";\r
+               unlink ("${General::swroot}/certs/$cgiparams{'NAME'}key.pem");\r
+               unlink ("${General::swroot}/certs/$cgiparams{'NAME'}cert.pem");\r
+               unlink ("${General::swroot}/certs/$cgiparams{'NAME'}.p12");\r
+               goto VPNCONF_ERROR;\r
+           } else {\r
+               unlink ("${General::swroot}/certs/$cgiparams{'NAME'}key.pem");\r
+           }\r
+       } elsif ($cgiparams{'AUTH'} eq 'cert') {\r
+           ;# Nothing, just editing\r
+       } else {\r
+           $errormessage = $Lang::tr{'invalid input for authentication method'};\r
+           goto VPNCONF_ERROR;\r
+       }\r
+\r
+       # Check if there is no other entry with this common name\r
+       if ((! $cgiparams{'KEY'}) && ($cgiparams{'AUTH'} ne 'psk')) {\r
+           foreach my $key (keys %confighash) {\r
+               if ($confighash{$key}[2] eq $cgiparams{'CERT_NAME'}) {\r
+                   $errormessage = $Lang::tr{'a connection with this common name already exists'};\r
+                   goto VPNCONF_ERROR;\r
+               }\r
+           }\r
+       }\r
+\r
+        # Save the config\r
+       my $key = $cgiparams{'KEY'};\r
+       if (! $key) {\r
+           $key = &General::findhasharraykey (\%confighash);\r
+           foreach my $i (0 .. 28) { $confighash{$key}[$i] = "";}\r
+       }\r
+       $confighash{$key}[0] = $cgiparams{'ENABLED'};\r
+       $confighash{$key}[1] = $cgiparams{'NAME'};\r
+       if ((! $cgiparams{'KEY'}) && $cgiparams{'AUTH'} ne 'psk') {\r
+           $confighash{$key}[2] = $cgiparams{'CERT_NAME'};\r
+       }\r
+       $confighash{$key}[3] = $cgiparams{'TYPE'};\r
+       if ($cgiparams{'AUTH'} eq 'psk') {\r
+           $confighash{$key}[4] = 'psk';\r
+           $confighash{$key}[5] = $cgiparams{'PSK'};\r
+       } else {\r
+           $confighash{$key}[4] = 'cert';\r
+       }\r
+       if ($cgiparams{'TYPE'} eq 'net') {\r
+           $confighash{$key}[6] = $cgiparams{'SIDE'};\r
+           $confighash{$key}[11] = $cgiparams{'REMOTE_SUBNET'};\r
+       }\r
+       $confighash{$key}[7] = $cgiparams{'LOCAL_ID'};\r
+       $confighash{$key}[8] = $cgiparams{'LOCAL_SUBNET'};\r
+       $confighash{$key}[9] = $cgiparams{'REMOTE_ID'};\r
+       $confighash{$key}[10] = $cgiparams{'REMOTE'};\r
+       $confighash{$key}[25] = $cgiparams{'REMARK'};\r
+       $confighash{$key}[26] = $cgiparams{'INTERFACE'};\r
+       $confighash{$key}[27] = $cgiparams{'DPD_ACTION'};\r
+       $confighash{$key}[28] = $cgiparams{'PFS_YES_NO'};\r
+\r
+       #use default advanced value\r
+       $confighash{$key}[14] = 'on';\r
+       $confighash{$key}[13] = 'off';\r
+       $confighash{$key}[18] = 'aes128|3des';\r
+       $confighash{$key}[19] = 'sha|md5';\r
+       $confighash{$key}[20] = '1536|1024';\r
+       $confighash{$key}[16] = '1';\r
+       $confighash{$key}[21] = 'aes128|3des';\r
+       $confighash{$key}[22] = 'sha1|md5';\r
+       $confighash{$key}[23] = '';\r
+       $confighash{$key}[17] = '8';\r
+       $confighash{$key}[24] = 'off';\r
+\r
+       #free unused fields!\r
+       #$confighash{$key}[12] = '';\r
+       #$confighash{$key}[15] = '';\r
+\r
+       &General::writehasharray("${General::swroot}/vpn/config", \%confighash);\r
+       &writeipsecfiles();\r
+       if ($vpnsettings{'ENABLED'} eq 'on' ||\r
+           $vpnsettings{'ENABLED_BLUE'} eq 'on') {\r
+           system('/usr/local/bin/ipsecctrl', 'S', $key);\r
+           sleep $sleepDelay;\r
+       }\r
+       if ($cgiparams{'EDIT_ADVANCED'} eq 'on') {\r
+           $cgiparams{'KEY'} = $key;\r
+           $cgiparams{'ACTION'} = $Lang::tr{'advanced'};\r
+       }\r
+       goto VPNCONF_END;\r
+    } else { # add new connection\r
+        $cgiparams{'ENABLED'} = 'on';\r
+       $cgiparams{'SIDE'} = 'left';\r
+       if ( ! -f "${General::swroot}/private/cakey.pem" ) {\r
+           $cgiparams{'AUTH'} = 'psk';\r
+       } elsif ( ! -f "${General::swroot}/ca/cacert.pem") {\r
+           $cgiparams{'AUTH'} = 'certfile';\r
+       } else {\r
+            $cgiparams{'AUTH'} = 'certgen';\r
+       }\r
+       $cgiparams{'LOCAL_SUBNET'}      ="$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}";\r
+       $cgiparams{'CERT_ORGANIZATION'} = $vpnsettings{'ROOTCERT_ORGANIZATION'};\r
+       $cgiparams{'CERT_CITY'}         = $vpnsettings{'ROOTCERT_CITY'};\r
+       $cgiparams{'CERT_STATE'}        = $vpnsettings{'ROOTCERT_STATE'};\r
+       $cgiparams{'CERT_COUNTRY'}      = $vpnsettings{'ROOTCERT_COUNTRY'};\r
+\r
+       # choose appropriate dpd action \r
+       if ($cgiparams{'TYPE'} eq 'host') {\r
+           $cgiparams{'DPD_ACTION'} = 'clear';\r
+       } else {\r
+           $cgiparams{'DPD_ACTION'} = 'hold';  #restart when available!\r
+       }\r
+\r
+       # Default is yes for 'pfs'\r
+       $cgiparams{'PFS_YES_NO'}     = 'yes';\r
+       \r
+       # ID are empty\r
+       $cgiparams{'LOCAL_ID'}  = '';\r
+       $cgiparams{'REMOTE_ID'} = '';\r
+       \r
+    }\r
+\r
+    VPNCONF_ERROR:\r
+    $checked{'ENABLED'}{'off'} = '';\r
+    $checked{'ENABLED'}{'on'} = '';\r
+    $checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'";\r
+    $checked{'ENABLED_BLUE'}{'off'} = '';\r
+    $checked{'ENABLED_BLUE'}{'on'} = '';\r
+    $checked{'ENABLED_BLUE'}{$cgiparams{'ENABLED_BLUE'}} = "checked='checked'";\r
+\r
+    $checked{'EDIT_ADVANCED'}{'off'} = '';\r
+    $checked{'EDIT_ADVANCED'}{'on'} = '';\r
+    $checked{'EDIT_ADVANCED'}{$cgiparams{'EDIT_ADVANCED'}} = "checked='checked'";\r
+\r
+    $selected{'SIDE'}{'left'} = '';\r
+    $selected{'SIDE'}{'right'} = '';\r
+    $selected{'SIDE'}{$cgiparams{'SIDE'}} = "selected='selected'";\r
+\r
+    $checked{'AUTH'}{'psk'} = '';\r
+    $checked{'AUTH'}{'certreq'} = '';\r
+    $checked{'AUTH'}{'certgen'} = '';\r
+    $checked{'AUTH'}{'certfile'} = '';\r
+    $checked{'AUTH'}{$cgiparams{'AUTH'}} = "checked='checked'";\r
+\r
+    $selected{'INTERFACE'}{$cgiparams{'INTERFACE'}} = "selected='selected'";\r
+    $selected{'DPD_ACTION'}{$cgiparams{'DPD_ACTION'}} = "selected='selected'";\r
+    $selected{'PFS_YES_NO'}{$cgiparams{'PFS_YES_NO'}} = "selected='selected'";\r
+\r
+    if (1) {\r
+       &Header::showhttpheaders();\r
+       &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');\r
+       &Header::openbigbox('100%', 'LEFT', '', $errormessage);\r
+       if ($errormessage) {\r
+           &Header::openbox('100%', 'LEFT', $Lang::tr{'error messages'});\r
+           print "<class name='base'>$errormessage";\r
+           print "&nbsp;</class>";\r
+           &Header::closebox();\r
+       }\r
+\r
+       if ($warnmessage) {\r
+           &Header::openbox('100%', 'LEFT', "$Lang::tr{'warning messages'}:");\r
+           print "<class name='base'>$warnmessage";\r
+           print "&nbsp;</class>";\r
+           &Header::closebox();\r
+       }\r
+\r
+       print "<form method='post' enctype='multipart/form-data'>";\r
+       print "<input type='hidden' name='TYPE' value='$cgiparams{'TYPE'}' />";\r
+\r
+       if ($cgiparams{'KEY'}) {\r
+           print "<input type='hidden' name='KEY' value='$cgiparams{'KEY'}' />";\r
+           print "<input type='hidden' name='AUTH' value='$cgiparams{'AUTH'}' />";\r
+       }\r
+\r
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'connection'}:");\r
+       print "<table width='100%'>";\r
+       print "<tr><td width='25%' class='boldbase'>$Lang::tr{'name'}:</td>";\r
+       if ($cgiparams{'KEY'}) {\r
+           print "<td width='25%' class='base'><input type='hidden' name='NAME' value='$cgiparams{'NAME'}' /><b>$cgiparams{'NAME'}</b></td>";\r
+       } else {\r
+           print "<td width='25%'><input type='text' name='NAME' value='$cgiparams{'NAME'}' maxlength='20' size='30' /></td>";\r
+       }\r
+       print "<td>$Lang::tr{'enabled'}</td><td><input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td></tr>";\r
+       \r
+       if ($cgiparams{'TYPE'} eq 'host') {\r
+\r
+           print "<tr><td>$Lang::tr{'interface'}</td>";\r
+           print "<td><select name='INTERFACE'>";\r
+           print "<option value='RED' $selected{'INTERFACE'}{'RED'}>RED</option>";\r
+           print "<option value='BLUE' $selected{'INTERFACE'}{'BLUE'}>BLUE</option>" if ($netsettings{'BLUE_DEV'} ne '');\r
+#          print "<option value='GREEN' $selected{'INTERFACE'}{'GREEN'}>GREEN</option>";\r
+#          print "<option value='ORANGE' $selected{'INTERFACE'}{'ORANGE'}>ORANGE</option>";\r
+           print "</select></td></tr>";\r
+           print <<END\r
+               <tr><td class='boldbase'>$Lang::tr{'local subnet'}</td>\r
+                   <td><input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size='30' /></td>\r
+                   <td colspan='2'>&nbsp;</td></tr>\r
+               <tr><td class='boldbase'>$Lang::tr{'remote host/ip'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+                   <td><input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size='30' /></td>\r
+                   <td colspan='2'>&nbsp;</td></tr>\r
+END\r
+           ;\r
+       } else {\r
+           print <<END\r
+               <tr><input type='hidden' name='INTERFACE' value='RED' />\r
+                   <td class='boldbase' nowrap='nowrap'>$Lang::tr{'ipcop side'}</td>\r
+                   <td><select name='SIDE'><option value='left' $selected{'SIDE'}{'left'}>left</option>\r
+                                           <option value='right' $selected{'SIDE'}{'right'}>right</option></select></td>\r
+                   <td class='boldbase'>$Lang::tr{'remote host/ip'}:</td>\r
+                   <td><input type='TEXT' name='REMOTE' value='$cgiparams{'REMOTE'}' size ='30' /></td></tr>\r
+               <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td>\r
+                   <td><input type='TEXT' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size='30' /></td>\r
+                   <td class='boldbase' nowrap='nowrap'>$Lang::tr{'remote subnet'}</td>\r
+                   <td><input type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size='30' /></td></tr>\r
+END\r
+           ;\r
+       }\r
+       print <<END\r
+       <tr><td>$Lang::tr{'dpd action'}:</td>\r
+       <td><select name='DPD_ACTION'>\r
+           <option value='clear' $selected{'DPD_ACTION'}{'clear'}>clear</option>\r
+           <option value='hold' $selected{'DPD_ACTION'}{'hold'}>hold</option>\r
+           <option value='restart' $selected{'DPD_ACTION'}{'restart'}>restart</option>\r
+       </select>&nbsp; <a href='http://www.openswan.com/docs/local/README.DPD'>?</a></td>\r
+<!--   http://www.openswan.com/docs/local/README.DPD\r
+       http://bugs.xelerance.com/view.php?id=156\r
+       restart = clear + reinitiate connection\r
+-->    <td width='25%'>$Lang::tr{'pfs yes no'}:</td>\r
+       <td width='25%'><select name='PFS_YES_NO'>\r
+           <option value='yes' $selected{'PFS_YES_NO'}{'yes'}>$Lang::tr{'yes'}</option>\r
+           <option value='no' $selected{'PFS_YES_NO'}{'no'}>$Lang::tr{'no'}</option>\r
+       </select></td></tr>\r
+       <td><b>$Lang::tr{'options'}</b></td>\r
+       <tr><td class='boldbase'>leftid:&nbsp;<img src='/blob.gif' alt='*' />\r
+       <br />($Lang::tr{'eg'} <tt>&#64;xy.example.com</tt>)</td>\r
+       <td><input type='text' name='LOCAL_ID' value='$cgiparams{'LOCAL_ID'}' maxlength='50' /></td>\r
+       <td class='boldbase'>rightid:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td><input type='text' name='REMOTE_ID' value='$cgiparams{'REMOTE_ID'}' maxlength='50' /></td></tr>\r
+       <tr><td class='boldbase'>$Lang::tr{'remark title'}&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td colspan='3'><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /></td></tr>\r
+END\r
+       ;\r
+       if (!$cgiparams{'KEY'}) {\r
+           print "<tr><td colspan='3'><input type='checkbox' name='EDIT_ADVANCED' $checked{'EDIT_ADVANCED'}{'on'} /> $Lang::tr{'edit advanced settings when done'}</td></tr>";\r
+       }\r
+       print "</table>";\r
+       &Header::closebox();\r
+       \r
+       if ($cgiparams{'KEY'} && $cgiparams{'AUTH'} eq 'psk') {\r
+           &Header::openbox('100%', 'LEFT', $Lang::tr{'authentication'});\r
+           print <<END\r
+           <table width='100%' cellpadding='0' cellspacing='5' border='0'>\r
+           <tr><td class='base' width='50%'>$Lang::tr{'use a pre-shared key'}</td>\r
+               <td class='base' width='50%'><input type='text' name='PSK' size='30' value='$cgiparams{'PSK'}' /></td></tr>\r
+           </table>\r
+END\r
+           ;\r
+           &Header::closebox();\r
+       } elsif (! $cgiparams{'KEY'}) {\r
+           my $disabled='';\r
+           my $cakeydisabled='';\r
+           my $cacrtdisabled='';\r
+           if ( ! -f "${General::swroot}/private/cakey.pem" ) { $cakeydisabled = "disabled='disabled'" } else { $cakeydisabled = "" };\r
+           if ( ! -f "${General::swroot}/ca/cacert.pem" ) { $cacrtdisabled = "disabled='disabled'" } else { $cacrtdisabled = "" };\r
+           &Header::openbox('100%', 'LEFT', $Lang::tr{'authentication'});\r
+           print <<END\r
+           <table width='100%' cellpadding='0' cellspacing='5' border='0'>\r
+           <tr><td width='5%'><input type='radio' name='AUTH' value='psk' $checked{'AUTH'}{'psk'} /></td>\r
+               <td class='base' width='45%'>$Lang::tr{'use a pre-shared key'}</td>\r
+               <td class='base' width='50%'><input type='text' name='PSK' size='30' value='$cgiparams{'PSK'}' /></td></tr>\r
+           <tr><td colspan='3' bgcolor='#000000'><img src='/images/null.gif' width='1' height='1' border='0' /></td></tr>\r
+           <tr><td><input type='radio' name='AUTH' value='certreq' $checked{'AUTH'}{'certreq'} $cakeydisabled /></td>\r
+               <td class='base'>$Lang::tr{'upload a certificate request'}</td>\r
+               <td class='base' rowspan='2'><input type='file' name='FH' size='30' $cacrtdisabled></td></tr>\r
+           <tr><td><input type='radio' name='AUTH' value='certfile' $checked{'AUTH'}{'certfile'} $cacrtdisabled /></td>\r
+               <td class='base'>$Lang::tr{'upload a certificate'}</td></tr>\r
+           <tr><td colspan='3' bgcolor='#000000'><img src='/images/null.gif' width='1' height='1' BORDER='0' /></td></tr>\r
+           <tr><td><input type='radio' name='AUTH' value='certgen' $checked{'AUTH'}{'certgen'} $cakeydisabled /></td>\r
+               <td class='base'>$Lang::tr{'generate a certificate'}</td><td>&nbsp;</td></tr>\r
+           <tr><td>&nbsp;</td>\r
+               <td class='base'>$Lang::tr{'users fullname or system hostname'}:</td>\r
+               <td class='base' nowrap='nowrap'><input type='text' name='CERT_NAME' value='$cgiparams{'CERT_NAME'}' SIZE='32' $cakeydisabled /></td></tr>\r
+           <tr><td>&nbsp;</td>\r
+               <td class='base'>$Lang::tr{'users email'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+               <td class='base' nowrap='nowrap'><input type='text' name='CERT_EMAIL' value='$cgiparams{'CERT_EMAIL'}' SIZE='32' $cakeydisabled /></td></tr>\r
+           <tr><td>&nbsp;</td>\r
+               <td class='base'>$Lang::tr{'users department'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+               <td class='base' nowrap='nowrap'><input type='text' name='CERT_OU' value='$cgiparams{'CERT_OU'}' SIZE='32' $cakeydisabled /></td></tr>\r
+           <tr><td>&nbsp;</td>\r
+               <td class='base'>$Lang::tr{'organization name'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+               <td class='base' nowrap='nowrap'><input type='text' name='CERT_ORGANIZATION' value='$cgiparams{'CERT_ORGANIZATION'}' SIZE='32' $cakeydisabled /></td></tr>\r
+           <tr><td>&nbsp;</td>\r
+               <td class='base'>$Lang::tr{'city'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+               <td class='base' nowrap='nowrap'><input type='text' name='CERT_CITY' value='$cgiparams{'CERT_CITY'}' SIZE='32' $cakeydisabled /></td></tr>\r
+           <tr><td>&nbsp;</td>\r
+               <td class='base'>$Lang::tr{'state or province'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+               <td class='base' nowrap='nowrap'><input type='text' name='CERT_STATE' value='$cgiparams{'CERT_STATE'}' SIZE='32' $cakeydisabled /></td></tr>\r
+           <tr><td>&nbsp;</td>\r
+               <td class='base'>$Lang::tr{'country'}:</td>\r
+               <td class='base'><select name='CERT_COUNTRY' $cakeydisabled>\r
+END\r
+           ;\r
+           foreach my $country (sort keys %{Countries::countries}) {\r
+               print "\t\t\t<option value='$Countries::countries{$country}'";\r
+               if ( $Countries::countries{$country} eq $cgiparams{'CERT_COUNTRY'} ) {\r
+                   print " selected='selected'";\r
+               }\r
+               print ">$country</option>\n";\r
+           }\r
+           print <<END\r
+               </select></td></tr>\r
+           <tr><td>&nbsp;</td>\r
+               <td class='base'>$Lang::tr{'pkcs12 file password'}:</td>\r
+               <td class='base' nowrap='nowrap'><input type='password' name='CERT_PASS1' value='$cgiparams{'CERT_PASS1'}' size='32' $cakeydisabled /></td></tr>\r
+           <tr><td>&nbsp;</td><td class='base'>$Lang::tr{'pkcs12 file password'}:<BR>($Lang::tr{'confirmation'})</td>\r
+               <td class='base' nowrap='nowrap'><input type='password' name='CERT_PASS2' value='$cgiparams{'CERT_PASS2'}' size='32' $cakeydisabled /></td></tr>\r
+           </table>\r
+END\r
+           ;\r
+           &Header::closebox();\r
+       }\r
+\r
+       print "<div align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' />";\r
+       if ($cgiparams{'KEY'}) {\r
+           print "<input type='submit' name='ACTION' value='$Lang::tr{'advanced'}' />";\r
+       }\r
+       print "<input type='submit' name='ACTION' value='$Lang::tr{'cancel'}' /></div></form>";\r
+       &Header::closebigbox();\r
+       &Header::closepage();\r
+       exit (0);\r
+    }\r
+    VPNCONF_END:\r
+}\r
+\r
+###\r
+### Advanced settings\r
+###\r
+if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||\r
+       ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'ADVANCED'} eq 'yes')) {\r
+    &General::readhash("${General::swroot}/vpn/settings", \%vpnsettings);\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+    if (! $confighash{$cgiparams{'KEY'}}) {\r
+       $errormessage = $Lang::tr{'invalid key'};\r
+       goto ADVANCED_END;\r
+    }\r
+\r
+    if ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) {\r
+       if ($cgiparams{'NAT'} !~ /^(on|off)$/) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       if ($cgiparams{'COMPRESSION'} !~ /^(on|off)$/) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       if ($cgiparams{'NAT'} eq 'on' && $cgiparams{'COMPRESSION'} eq 'on') {\r
+           $errormessage = $Lang::tr{'cannot enable both nat traversal and compression'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       my @temp = split('\|', $cgiparams{'IKE_ENCRYPTION'});\r
+       if ($#temp < 0) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       foreach my $val (@temp) {\r
+           if ($val !~ /^(aes256|aes128|3des|twofish256|twofish128|serpent256|serpent128|blowfish256|blowfish128|cast128)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ADVANCED_ERROR;\r
+           }\r
+       }\r
+       @temp = split('\|', $cgiparams{'IKE_INTEGRITY'});\r
+       if ($#temp < 0) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       foreach my $val (@temp) {\r
+           if ($val !~ /^(sha2_512|sha2_256|sha|md5)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ADVANCED_ERROR;\r
+           }\r
+       }\r
+       @temp = split('\|', $cgiparams{'IKE_GROUPTYPE'});\r
+       if ($#temp < 0) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       foreach my $val (@temp) {\r
+           if ($val !~ /^(768|1024|1536|2048|3072|4096|6144|8192)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ADVANCED_ERROR;\r
+           }\r
+       }\r
+       if ($cgiparams{'IKE_LIFETIME'} !~ /^\d+$/) {\r
+           $errormessage = $Lang::tr{'invalid input for ike lifetime'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       if ($cgiparams{'IKE_LIFETIME'} < 1 || $cgiparams{'IKE_LIFETIME'} > 8) {\r
+           $errormessage = $Lang::tr{'ike lifetime should be between 1 and 8 hours'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       @temp = split('\|', $cgiparams{'ESP_ENCRYPTION'});\r
+       if ($#temp < 0) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       foreach my $val (@temp) {\r
+           if ($val !~ /^(aes256|aes128|3des|twofish256|twofish128|serpent256|serpent128|blowfish256|blowfish128)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ADVANCED_ERROR;\r
+           }\r
+       }\r
+       @temp = split('\|', $cgiparams{'ESP_INTEGRITY'});\r
+       if ($#temp < 0) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       foreach my $val (@temp) {\r
+           if ($val !~ /^(sha2_512|sha2_256|sha1|md5)$/) {\r
+               $errormessage = $Lang::tr{'invalid input'};\r
+               goto ADVANCED_ERROR;\r
+           }\r
+       }\r
+       if ($cgiparams{'ESP_GROUPTYPE'} ne '' &&\r
+           $cgiparams{'ESP_GROUPTYPE'} !~  /^modp(768|1024|1536|2048|3072|4096)$/) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+\r
+       if ($cgiparams{'ESP_KEYLIFE'} !~ /^\d+$/) {\r
+           $errormessage = $Lang::tr{'invalid input for esp keylife'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       if ($cgiparams{'ESP_KEYLIFE'} < 1 || $cgiparams{'ESP_KEYLIFE'} > 24) {\r
+           $errormessage = $Lang::tr{'esp keylife should be between 1 and 24 hours'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       if ($cgiparams{'ONLY_PROPOSED'} !~ /^(on|off)$/) {\r
+           $errormessage = $Lang::tr{'invalid input'};\r
+           goto ADVANCED_ERROR;\r
+       }\r
+       $confighash{$cgiparams{'KEY'}}[14] = $cgiparams{'NAT'};\r
+       $confighash{$cgiparams{'KEY'}}[13] = $cgiparams{'COMPRESSION'};\r
+       $confighash{$cgiparams{'KEY'}}[18] = $cgiparams{'IKE_ENCRYPTION'};\r
+       $confighash{$cgiparams{'KEY'}}[19] = $cgiparams{'IKE_INTEGRITY'};\r
+       $confighash{$cgiparams{'KEY'}}[20] = $cgiparams{'IKE_GROUPTYPE'};\r
+       $confighash{$cgiparams{'KEY'}}[16] = $cgiparams{'IKE_LIFETIME'};\r
+       $confighash{$cgiparams{'KEY'}}[21] = $cgiparams{'ESP_ENCRYPTION'};\r
+       $confighash{$cgiparams{'KEY'}}[22] = $cgiparams{'ESP_INTEGRITY'};\r
+       $confighash{$cgiparams{'KEY'}}[23] = $cgiparams{'ESP_GROUPTYPE'};\r
+       $confighash{$cgiparams{'KEY'}}[17] = $cgiparams{'ESP_KEYLIFE'};\r
+       $confighash{$cgiparams{'KEY'}}[24] = $cgiparams{'ONLY_PROPOSED'};\r
+       &General::writehasharray("${General::swroot}/vpn/config", \%confighash);\r
+       &writeipsecfiles();\r
+       if ($vpnsettings{'ENABLED'} eq 'on' ||\r
+           $vpnsettings{'ENABLED_BLUE'} eq 'on') {\r
+           system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'});\r
+           sleep $sleepDelay;\r
+       }\r
+       goto ADVANCED_END;\r
+    } else {\r
+\r
+       $cgiparams{'NAT'}            = $confighash{$cgiparams{'KEY'}}[14];\r
+       $cgiparams{'COMPRESSION'}    = $confighash{$cgiparams{'KEY'}}[13];\r
+       $cgiparams{'IKE_ENCRYPTION'} = $confighash{$cgiparams{'KEY'}}[18];\r
+       $cgiparams{'IKE_INTEGRITY'}  = $confighash{$cgiparams{'KEY'}}[19];\r
+       $cgiparams{'IKE_GROUPTYPE'}  = $confighash{$cgiparams{'KEY'}}[20];\r
+       $cgiparams{'IKE_LIFETIME'}   = $confighash{$cgiparams{'KEY'}}[16];\r
+       $cgiparams{'ESP_ENCRYPTION'} = $confighash{$cgiparams{'KEY'}}[21];\r
+       $cgiparams{'ESP_INTEGRITY'}  = $confighash{$cgiparams{'KEY'}}[22];\r
+       $cgiparams{'ESP_GROUPTYPE'}  = $confighash{$cgiparams{'KEY'}}[23];\r
+       $cgiparams{'ESP_KEYLIFE'}    = $confighash{$cgiparams{'KEY'}}[17];\r
+       $cgiparams{'ONLY_PROPOSED'}  = $confighash{$cgiparams{'KEY'}}[24];\r
\r
+       if ($confighash{$cgiparams{'KEY'}}[3] eq 'net' || $confighash{$cgiparams{'KEY'}}[10]) {\r
+           $cgiparams{'NAT'}            = 'off';\r
+       }\r
+    }\r
+\r
+    ADVANCED_ERROR:\r
+    $checked{'NAT'}{'off'} = '';\r
+    $checked{'NAT'}{'on'} = '';\r
+    $checked{'NAT'}{$cgiparams{'NAT'}} = "checked='checked'";\r
+    $checked{'COMPRESSION'}{'off'} = '';\r
+    $checked{'COMPRESSION'}{'on'} = '';\r
+    $checked{'COMPRESSION'}{$cgiparams{'COMPRESSION'}} = "checked='checked'";\r
+    $checked{'IKE_ENCRYPTION'}{'aes256'} = '';\r
+    $checked{'IKE_ENCRYPTION'}{'aes128'} = '';\r
+    $checked{'IKE_ENCRYPTION'}{'3des'} = '';\r
+    $checked{'IKE_ENCRYPTION'}{'twofish256'} = '';\r
+    $checked{'IKE_ENCRYPTION'}{'twofish128'} = '';\r
+    $checked{'IKE_ENCRYPTION'}{'serpent256'} = '';\r
+    $checked{'IKE_ENCRYPTION'}{'serpent128'} = '';\r
+    $checked{'IKE_ENCRYPTION'}{'blowfish256'} = '';\r
+    $checked{'IKE_ENCRYPTION'}{'blowfish128'} = '';\r
+    $checked{'IKE_ENCRYPTION'}{'cast128'} = '';\r
+    my @temp = split('\|', $cgiparams{'IKE_ENCRYPTION'});\r
+    foreach my $key (@temp) {$checked{'IKE_ENCRYPTION'}{$key} = "selected='selected'"; }\r
+    $checked{'IKE_INTEGRITY'}{'sha2_512'} = '';\r
+    $checked{'IKE_INTEGRITY'}{'sha2_256'} = '';\r
+    $checked{'IKE_INTEGRITY'}{'sha'} = '';\r
+    $checked{'IKE_INTEGRITY'}{'md5'} = '';\r
+    @temp = split('\|', $cgiparams{'IKE_INTEGRITY'});\r
+    foreach my $key (@temp) {$checked{'IKE_INTEGRITY'}{$key} = "selected='selected'"; }\r
+    $checked{'IKE_GROUPTYPE'}{'768'} = '';\r
+    $checked{'IKE_GROUPTYPE'}{'1024'} = '';\r
+    $checked{'IKE_GROUPTYPE'}{'1536'} = '';\r
+    $checked{'IKE_GROUPTYPE'}{'2048'} = '';\r
+    $checked{'IKE_GROUPTYPE'}{'3072'} = '';\r
+    $checked{'IKE_GROUPTYPE'}{'4096'} = '';\r
+    $checked{'IKE_GROUPTYPE'}{'6144'} = '';\r
+    $checked{'IKE_GROUPTYPE'}{'8192'} = '';\r
+    @temp = split('\|', $cgiparams{'IKE_GROUPTYPE'});\r
+    foreach my $key (@temp) {$checked{'IKE_GROUPTYPE'}{$key} = "selected='selected'"; }\r
+    $checked{'ESP_ENCRYPTION'}{'aes256'} = '';\r
+    $checked{'ESP_ENCRYPTION'}{'aes128'} = '';\r
+    $checked{'ESP_ENCRYPTION'}{'3des'} = '';\r
+    $checked{'ESP_ENCRYPTION'}{'twofish256'} = '';\r
+    $checked{'ESP_ENCRYPTION'}{'twofish128'} = '';\r
+    $checked{'ESP_ENCRYPTION'}{'serpent256'} = '';\r
+    $checked{'ESP_ENCRYPTION'}{'serpent128'} = '';\r
+    $checked{'ESP_ENCRYPTION'}{'blowfish256'} = '';\r
+    $checked{'ESP_ENCRYPTION'}{'blowfish128'} = '';\r
+    @temp = split('\|', $cgiparams{'ESP_ENCRYPTION'});\r
+    foreach my $key (@temp) {$checked{'ESP_ENCRYPTION'}{$key} = "selected='selected'"; }\r
+    $checked{'ESP_INTEGRITY'}{'sha2_512'} = '';\r
+    $checked{'ESP_INTEGRITY'}{'sha2_256'} = '';\r
+    $checked{'ESP_INTEGRITY'}{'sha1'} = '';\r
+    $checked{'ESP_INTEGRITY'}{'md5'} = '';\r
+    @temp = split('\|', $cgiparams{'ESP_INTEGRITY'});\r
+    foreach my $key (@temp) {$checked{'ESP_INTEGRITY'}{$key} = "selected='selected'"; }\r
+    $checked{'ESP_GROUPTYPE'}{'modp768'} = '';\r
+    $checked{'ESP_GROUPTYPE'}{'modp1024'} = '';\r
+    $checked{'ESP_GROUPTYPE'}{'modp1536'} = '';\r
+    $checked{'ESP_GROUPTYPE'}{'modp2048'} = '';\r
+    $checked{'ESP_GROUPTYPE'}{'modp3072'} = '';\r
+    $checked{'ESP_GROUPTYPE'}{'modp4096'} = '';\r
+    $checked{'ESP_GROUPTYPE'}{$cgiparams{'ESP_GROUPTYPE'}} = "selected='selected'";\r
+    $checked{'ONLY_PROPOSED'}{'off'} = '';\r
+    $checked{'ONLY_PROPOSED'}{'on'} = '';\r
+    $checked{'ONLY_PROPOSED'}{$cgiparams{'ONLY_PROPOSED'}} = "checked='checked'";\r
+\r
+    &Header::showhttpheaders();\r
+    &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');\r
+    &Header::openbigbox('100%', 'LEFT', '', $errormessage);\r
+\r
+    if ($errormessage) {\r
+       &Header::openbox('100%', 'LEFT', $Lang::tr{'error messages'});\r
+       print "<class name='base'>$errormessage";\r
+       print "&nbsp;</class>";\r
+       &Header::closebox();\r
+    }\r
+\r
+    if ($warnmessage) {\r
+       &Header::openbox('100%', 'LEFT', $Lang::tr{'warning messages'});\r
+       print "<class name='base'>$warnmessage";\r
+       print "&nbsp;</class>";\r
+       &Header::closebox();\r
+    }\r
+\r
+    print "<form method='post' enctype='multipart/form-data'>\n";\r
+    print "<input type='hidden' name='ADVANCED' value='yes' />\n";\r
+    print "<input type='hidden' name='KEY' value='$cgiparams{'KEY'}' />\n";\r
+\r
+    &Header::openbox('100%', 'LEFT', "$Lang::tr{'advanced'}:");\r
+    print "<table width='100%'>\n";\r
+    print "<tr><td width='25%' class='boldbase'>$Lang::tr{'compression'}</td>\n";\r
+    print "<td width='25%'><input type='checkbox' name='COMPRESSION' $checked{'COMPRESSION'}{'on'} /></td>\n";\r
+    if ($confighash{$cgiparams{'KEY'}}[3] eq 'net') {\r
+       print "<td width='25%'><input type='hidden' name='NAT' value='off' /></td><td width='25%'>&nbsp;</td></tr>\n";\r
+    } elsif ($confighash{$cgiparams{'KEY'}}[10]) {\r
+       print "<td width='25%' class='boldbase'>$Lang::tr{'nat-traversal'}</td>\n";\r
+       print "<td width='25%'><input type='checkbox' name='NAT' $checked{'NAT'}{'on'} disabled='disabled' /></td></tr>\n";\r
+    } else {\r
+       print "<td width='25%' class='boldbase'>$Lang::tr{'nat-traversal'}</td>\n";\r
+       print "<td width='25%'><input type='checkbox' name='NAT' $checked{'NAT'}{'on'} /></td></tr>\n";\r
+    }\r
+    print <<EOF\r
+       <tr><td width='25%' class='boldbase' valign='top'>$Lang::tr{'ike encryption'}</td>\r
+           <td width='25%' valign='top'><select name='IKE_ENCRYPTION' multiple='multiple' size='4'>\r
+                       <option value='aes256' $checked{'IKE_ENCRYPTION'}{'aes256'}>AES (256 bit)</option>\r
+                       <option value='aes128' $checked{'IKE_ENCRYPTION'}{'aes128'}>AES (128 bit)</option>\r
+                       <option value='3des' $checked{'IKE_ENCRYPTION'}{'3des'}>3DES</option>\r
+                       <option value='twofish256' $checked{'IKE_ENCRYPTION'}{'twofish256'}>Twofish (256 bit)</option>\r
+                       <option value='twofish128' $checked{'IKE_ENCRYPTION'}{'twofish128'}>Twofish (128 bit)</option>\r
+                       <option value='serpent256' $checked{'IKE_ENCRYPTION'}{'serpent256'}>Serpent (256 bit)</option>\r
+                       <option value='serpent128' $checked{'IKE_ENCRYPTION'}{'serpent128'}>Serpent (128 bit)</option>\r
+                       <option value='blowfish256' $checked{'IKE_ENCRYPTION'}{'blowfish256'}>Blowfish (256 bit)</option>\r
+                       <option value='blowfish128' $checked{'IKE_ENCRYPTION'}{'blowfish128'}>Blowfish (128 bit)</option>\r
+                       <option value='cast128' $checked{'IKE_ENCRYPTION'}{'cast128'}>Cast (128 bit)</option></SELECT></td>\r
+           <td width='25%' class='boldbase' valign='top'>$Lang::tr{'ike integrity'}</td>\r
+           <td width='25%' valign='top'><select name='IKE_INTEGRITY' multiple='multiple' size='4'>\r
+                       <option value='sha2_512' $checked{'IKE_INTEGRITY'}{'sha2_512'}>SHA2 (512)</option>\r
+                       <option value='sha2_256' $checked{'IKE_INTEGRITY'}{'sha2_256'}>SHA2 (256)</option>\r
+                       <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA</option>\r
+                       <option value='md5' $checked{'IKE_INTEGRITY'}{'md5'}>MD5</option></SELECT></td></tr>\r
+       <tr><td width='25%' class='boldbase' valign='top'>$Lang::tr{'ike lifetime'}</td>\r
+           <td width='25%' valign='top'><input type='text' name='IKE_LIFETIME' value='$cgiparams{'IKE_LIFETIME'}' SIZE='5'> $Lang::tr{'hours'}</td>\r
+           <td width='25%' class='boldbase' valign='top'>$Lang::tr{'ike grouptype'}</td>\r
+           <td width='25%' valign='top'><select name='IKE_GROUPTYPE' multiple='multiple' size='4'>\r
+                       <option value='8192' $checked{'IKE_GROUPTYPE'}{'8192'}>MODP-8192</option>\r
+                       <option value='6144' $checked{'IKE_GROUPTYPE'}{'6144'}>MODP-6144</option>\r
+                       <option value='4096' $checked{'IKE_GROUPTYPE'}{'4096'}>MODP-4096</option>\r
+                       <option value='3072' $checked{'IKE_GROUPTYPE'}{'3072'}>MODP-3072</option>\r
+                       <option value='2048' $checked{'IKE_GROUPTYPE'}{'2048'}>MODP-2048</option>\r
+                       <option value='1536' $checked{'IKE_GROUPTYPE'}{'1536'}>MODP-1536</option>\r
+                       <option value='1024' $checked{'IKE_GROUPTYPE'}{'1024'}>MODP-1024</option>\r
+                       <option value='768'  $checked{'IKE_GROUPTYPE'}{'768'}>MODP-768</option></select></td></tr>\r
+       <tr><td width='25%' class='boldbase' valign='top'>$Lang::tr{'esp encryption'}</td>\r
+           <td width='25%' valign='top'><select name='ESP_ENCRYPTION' multiple='multiple' size='4'>\r
+                       <option value='aes256' $checked{'ESP_ENCRYPTION'}{'aes256'}>AES (256 bit)</option>\r
+                       <option value='aes128' $checked{'ESP_ENCRYPTION'}{'aes128'}>AES (128 bit)</option>\r
+                       <option value='3des' $checked{'ESP_ENCRYPTION'}{'3des'}>3DES</option>\r
+                       <option value='twofish256' $checked{'ESP_ENCRYPTION'}{'twofish256'}>Twofish (256 bit)</option>\r
+                       <option value='twofish128' $checked{'ESP_ENCRYPTION'}{'twofish128'}>Twofish (128 bit)</option>\r
+                       <option value='serpent256' $checked{'ESP_ENCRYPTION'}{'serpent256'}>Serpent (256 bit)</option>\r
+                       <option value='serpent128' $checked{'ESP_ENCRYPTION'}{'serpent128'}>Serpent (128 bit)</option>\r
+                       <option value='blowfish256' $checked{'ESP_ENCRYPTION'}{'blowfish256'}>Blowfish (256 bit)</option>\r
+                       <option value='blowfish128' $checked{'ESP_ENCRYPTION'}{'blowfish128'}>Blowfish (128 bit)</option></select></td>\r
+           <td width='25%' class='boldbase' valign='top'>$Lang::tr{'esp integrity'}</td>\r
+           <td width='25%' valign='top'><select name='ESP_INTEGRITY' multiple='multiple' size='4'>\r
+                       <option value='sha2_512' $checked{'ESP_INTEGRITY'}{'sha2_512'}>SHA2 (512)</option>\r
+                       <option value='sha2_256' $checked{'ESP_INTEGRITY'}{'sha2_256'}>SHA2 (256)</option>\r
+                       <option value='sha1' $checked{'ESP_INTEGRITY'}{'sha1'}>SHA1</option>\r
+                       <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5</option></select></td></tr>\r
+       <tr><td width='25%' class='boldbase' valign='top'>$Lang::tr{'esp keylife'}</td>\r
+           <td width='25%' valign='top'><input type='text' name='ESP_KEYLIFE' value='$cgiparams{'ESP_KEYLIFE'}' size='5' /> $Lang::tr{'hours'}</td>\r
+           <td width='25%' class='boldbase' valign='top'>$Lang::tr{'esp grouptype'}</td>\r
+           <td width='25%' valign='top'><select name='ESP_GROUPTYPE'>\r
+                       <option value=''>$Lang::tr{'phase1 group'}</option>\r
+                       <option value='modp4096' $checked{'ESP_GROUPTYPE'}{'modp4096'}>MODP-4096</option>\r
+                       <option value='modp3072' $checked{'ESP_GROUPTYPE'}{'modp3072'}>MODP-3072</option>\r
+                       <option value='modp2048' $checked{'ESP_GROUPTYPE'}{'modp2048'}>MODP-2048</option>\r
+                       <option value='modp1536' $checked{'ESP_GROUPTYPE'}{'modp1536'}>MODP-1536</option>\r
+                       <option value='modp1024' $checked{'ESP_GROUPTYPE'}{'modp1024'}>MODP-1024</option>\r
+                       <option value='modp768'  $checked{'ESP_GROUPTYPE'}{'modp768'}>MODP-768</option></select></td></tr>\r
+       <tr><td colspan='4'><input type='CHECKBOX' name='ONLY_PROPOSED' $checked{'ONLY_PROPOSED'}{'on'} />\r
+               $Lang::tr{'use only proposed settings'}</td></tr>\r
+       </table>\r
+EOF\r
+    ;\r
+    &Header::closebox();\r
+    print "<div align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' />";\r
+    print "<input type='submit' name='ACTION' value='$Lang::tr{'cancel'}' /></div></form>";\r
+    &Header::closebigbox();\r
+    &Header::closepage();\r
+    exit(0);\r
+\r
+    ADVANCED_END:\r
+}\r
+\r
+###\r
+### Default status page\r
+###\r
+    %cgiparams = ();\r
+    %cahash = ();\r
+    %confighash = ();\r
+    &General::readhash("${General::swroot}/vpn/settings", \%cgiparams);\r
+    &General::readhasharray("${General::swroot}/vpn/caconfig", \%cahash);\r
+    &General::readhasharray("${General::swroot}/vpn/config", \%confighash);\r
+\r
+    my @status = `/usr/sbin/ipsec auto --status`;\r
+\r
+    # suggest a default name for this side\r
+    if ($cgiparams{'VPN_IP'} eq '' && -e "${General::swroot}/red/active") {\r
+       if (open(IPADDR, "${General::swroot}/red/local-ipaddress")) {\r
+           my $ipaddr = <IPADDR>;\r
+           close IPADDR;\r
+           chomp ($ipaddr);\r
+           $cgiparams{'VPN_IP'} = (gethostbyaddr(pack("C4", split(/\./, $ipaddr)), 2))[0];\r
+           if ($cgiparams{'VPN_IP'} eq '') {\r
+               $cgiparams{'VPN_IP'} = $ipaddr;\r
+           }\r
+       }\r
+    }\r
+    # no IP found, use %defaultroute\r
+    $cgiparams{'VPN_IP'} ='%defaultroute' if ($cgiparams{'VPN_IP'} eq '');\r
+    \r
+    $cgiparams{'VPN_DELAYED_START'} = 0 if (! defined ($cgiparams{'VPN_DELAYED_START'}));\r
+    map ($checked{$_} = $cgiparams{$_} eq 'on' ? "checked='checked'" : '',\r
+       ('ENABLED','ENABLED_BLUE','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL',\r
+        'DBG_KLIPS','DBG_DNS','DBG_NAT_T'));\r
+\r
+\r
+    &Header::showhttpheaders();\r
+    &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');\r
+    &Header::openbigbox('100%', 'LEFT', '', $errormessage);\r
+\r
+    if ($errormessage) {\r
+       &Header::openbox('100%', 'LEFT', $Lang::tr{'error messages'});\r
+       print "<class name='base'>$errormessage\n";\r
+       print "&nbsp;</class>\n";\r
+       &Header::closebox();\r
+    }\r
+\r
+    &Header::openbox('100%', 'LEFT', $Lang::tr{'global settings'});\r
+    print <<END\r
+    <form method='post'>\r
+    <table width='100%'>\r
+    <tr>\r
+       <td width='25%' class='base' nowrap='nowrap'>$Lang::tr{'local vpn hostname/ip'}:</td>\r
+       <td width='25%'><input type='text' name='VPN_IP' value='$cgiparams{'VPN_IP'}' /></td>\r
+       <td width='25%' class='base'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED' $checked{'ENABLED'} /></td>\r
+    </tr>\r
+END\r
+    ;\r
+    if ($netsettings{'BLUE_DEV'} ne '') {\r
+    print <<END\r
+    <tr>\r
+       <td width='25%' class='base' nowrap='nowrap'>$Lang::tr{'vpn on blue'}:</td>\r
+       <td></td>\r
+       <td width='25%' class='base'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED_BLUE' $checked{'ENABLED_BLUE'} /></td>\r
+    </tr>\r
+END\r
+    ;\r
+    }\r
+print <<END\r
+       <td width='25%' class='base' nowrap='nowrap'>$Lang::tr{'vpn delayed start'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td width='25%'><input type='text' name='VPN_DELAYED_START' value='$cgiparams{'VPN_DELAYED_START'}' /></td>\r
+       <td width='25%' class='base' nowrap='nowrap'>$Lang::tr{'override mtu'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+       <td width='25%'><input type='text' name='VPN_OVERRIDE_MTU' value='$cgiparams{'VPN_OVERRIDE_MTU'}' /></td>\r
+</table>\r
+<table width='100%'>\r
+<tr><td>PLUTO DEBUG</td>\r
+    <td>crypt:<input type='checkbox' name='DBG_CRYPT' $checked{'DBG_CRYPT'} /></td>\r
+    <td>parsing:<input type='checkbox' name='DBG_PARSING' $checked{'DBG_PARSING'} /></td>\r
+    <td>emitting:<input type='checkbox' name='DBG_EMITTING' $checked{'DBG_EMITTING'} /></td>\r
+    <td>control:<input type='checkbox' name='DBG_CONTROL' $checked{'DBG_CONTROL'} /></td>\r
+    <td>klips:<input type='checkbox' name='DBG_KLIPS' $checked{'DBG_KLIPS'} /></td>\r
+    <td>dns:<input type='checkbox' name='DBG_DNS' $checked{'DBG_DNS'} /></td>\r
+    <td>nat_t:<input type='checkbox' name='DBG_NAT_T' $checked{'DBG_NAT_T'} /></td>\r
+</tr></table>\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td>\r
+    <td width='70%' class='base'>$Lang::tr{'vpn delayed start help'}</td>\r
+    <td width='30%' align='center' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+;              \r
+    print "</form>";\r
+    &Header::closebox();\r
+\r
+    &Header::openbox('100%', 'LEFT', $Lang::tr{'connection status and controlc'});\r
+    print <<END\r
+    <table width='100%' border='0' cellspacing='1' cellpadding='0'>\r
+    <tr>\r
+       <td width='10%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></td>\r
+       <td width='22%' class='boldbase' align='center'><b>$Lang::tr{'type'}</b></td>\r
+       <td width='23%' class='boldbase' align='center'><b>$Lang::tr{'common name'}</b></td>\r
+       <td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b><br /><img src='/images/null.gif' width='125' height='1' border='0' alt='L2089' /></td>\r
+       <td width='10%' class='boldbase' align='center'><b>$Lang::tr{'status'}</b></td>\r
+       <td width='5%' class='boldbase' colspan='6' align='center'><b>$Lang::tr{'action'}</b></td>\r
+    </tr>\r
+END\r
+    ;\r
+    my $id = 0;\r
+    my $gif;\r
+    foreach my $key (keys %confighash) {\r
+       if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; }\r
+\r
+       if ($id % 2) {\r
+           print "<tr bgcolor='${Header::table1colour}'>\n";\r
+       } else {\r
+           print "<tr bgcolor='${Header::table2colour}'>\n";\r
+       }\r
+       print "<td align='center' nowrap='nowrap'>$confighash{$key}[1]</td>";\r
+       print "<td align='center' nowrap='nowrap'>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td>";\r
+       if ($confighash{$key}[4] eq 'cert') {\r
+           print "<td align='left' nowrap='nowrap'>$confighash{$key}[2]</td>";\r
+       } else {\r
+           print "<td align='left'>&nbsp;</td>";\r
+       }\r
+       print "<td align='center'>$confighash{$key}[25]</td>";\r
+       my $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>";\r
+       if ($confighash{$key}[0] eq 'off') {\r
+           $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourblue}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>";\r
+       } else {\r
+           foreach my $line (@status) {\r
+               if ($line =~ /\"$confighash{$key}[1]\".*IPsec SA established/) {\r
+                   $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></td></tr></table>";\r
+               }\r
+           }\r
+       }\r
+       print <<END\r
+       <td align='center'>$active</td>\r
+       <form method='post' name='frm${key}a'><td align='center'>\r
+           <input type='image'  name='$Lang::tr{'restart'}' src='/images/reload.gif' alt='$Lang::tr{'restart'}' title='$Lang::tr{'restart'}' border='0' />\r
+           <input type='hidden' name='ACTION' value='$Lang::tr{'restart'}' />\r
+           <input type='hidden' name='KEY' value='$key' />\r
+       </td></form>\r
+END\r
+       ;\r
+       if ($confighash{$key}[4] eq 'cert') {\r
+           print <<END\r
+           <form method='post' name='frm${key}b'><td align='center'>\r
+               <input type='image' name='$Lang::tr{'show certificate'}' src='/images/info.gif' alt='$Lang::tr{'show certificate'}' title='$Lang::tr{'show certificate'}' border='0' />\r
+               <input type='hidden' name='ACTION' value='$Lang::tr{'show certificate'}' />\r
+               <input type='hidden' name='KEY' value='$key' />\r
+           </td></form>\r
+END\r
+       ; } else {\r
+           print "<td>&nbsp;</td>";\r
+       }\r
+       if ($confighash{$key}[4] eq 'cert' && -f "${General::swroot}/certs/$confighash{$key}[1].p12") { \r
+           print <<END\r
+           <form method='post' name='frm${key}c'><td align='center'>\r
+               <input type='image' name='$Lang::tr{'download pkcs12 file'}' src='/images/floppy.gif' alt='$Lang::tr{'download pkcs12 file'}' title='$Lang::tr{'download pkcs12 file'}' border='0' />\r
+               <input type='hidden' name='ACTION' value='$Lang::tr{'download pkcs12 file'}' />\r
+               <input type='hidden' name='KEY' value='$key' />\r
+           </td></form>\r
+END\r
+       ; } elsif ($confighash{$key}[4] eq 'cert') {\r
+           print <<END\r
+           <form method='post' name='frm${key}c'><td align='center'>\r
+               <input type='image' name='$Lang::tr{'download certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download certificate'}' title='$Lang::tr{'download certificate'}' border='0' />\r
+               <input type='hidden' name='ACTION' value='$Lang::tr{'download certificate'}' />\r
+               <input type='hidden' name='KEY' value='$key' />\r
+           </td></form>\r
+END\r
+       ; } else {\r
+           print "<td>&nbsp;</td>";\r
+       }\r
+       print <<END\r
+       <form method='post' name='frm${key}d'><td align='center'>\r
+           <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$Lang::tr{'toggle enable disable'}' title='$Lang::tr{'toggle enable disable'}' border='0' />\r
+           <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+           <input type='hidden' name='KEY' value='$key' />\r
+       </td></form>\r
+\r
+       <form method='post' name='frm${key}e'><td align='center'>\r
+           <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />\r
+           <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' width='20' height='20' border='0'/>\r
+           <input type='hidden' name='KEY' value='$key' />\r
+       </td></form>\r
+       <form method='post' name='frm${key}f'><td align='center'>\r
+           <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />\r
+           <input type='image'  name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0' />\r
+           <input type='hidden' name='KEY' value='$key' />\r
+       </td></form>\r
+       </tr>\r
+END\r
+       ;\r
+       $id++;\r
+    }\r
+    ;\r
+\r
+    # If the config file contains entries, print Key to action icons\r
+    if ( $id ) {\r
+    print <<END\r
+    <table>\r
+    <tr>\r
+       <td class='boldbase'>&nbsp; <b>$Lang::tr{'legend'}:</b></td>\r
+       <td>&nbsp; <img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to disable'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/info.gif' alt='$Lang::tr{'show certificate'}' /></td>\r
+       <td class='base'>$Lang::tr{'show certificate'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>\r
+       <td class='base'>$Lang::tr{'edit'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>\r
+       <td class='base'>$Lang::tr{'remove'}</td>\r
+    </tr>\r
+    <tr>\r
+       <td>&nbsp; </td>\r
+       <td>&nbsp; <img src='/images/off.gif' alt='?OFF' /></td>\r
+       <td class='base'>$Lang::tr{'click to enable'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/floppy.gif' alt='?FLOPPY' /></td>\r
+       <td class='base'>$Lang::tr{'download certificate'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/reload.gif' alt='?RELOAD'/></td>\r
+       <td class='base'>$Lang::tr{'restart'}</td>\r
+    </tr>\r
+    </table>\r
+END\r
+    ;\r
+    }\r
+\r
+    print <<END\r
+    <table width='100%'>\r
+    <form method='post'>\r
+    <tr><td align='center' colspan='9'><input type='submit' name='ACTION' value='$Lang::tr{'add'}' /></td></tr>\r
+    </form>\r
+    </table>\r
+END\r
+    ;\r
+    &Header::closebox();\r
+\r
+    &Header::openbox('100%', 'LEFT', "$Lang::tr{'certificate authorities'}:");\r
+    print <<EOF\r
+    <table width='100%' border='0' cellspacing='1' cellpadding='0'>\r
+    <tr>\r
+       <td width='25%' class='boldbase' align='center'><b>$Lang::tr{'name'}</b></td>\r
+       <td width='65%' class='boldbase' align='center'><b>$Lang::tr{'subject'}</b></td>\r
+       <td width='10%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td>\r
+    </tr>\r
+EOF\r
+    ;\r
+    if (-f "${General::swroot}/ca/cacert.pem") {\r
+       my $casubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/ca/cacert.pem`;\r
+       $casubject    =~ /Subject: (.*)[\n]/;\r
+       $casubject    = $1;\r
+       $casubject    =~ s+/Email+, E+;\r
+       $casubject    =~ s/ ST=/ S=/;\r
+\r
+       print <<END\r
+       <tr bgcolor='${Header::table2colour}'>\r
+       <td class='base'>$Lang::tr{'root certificate'}</td>\r
+       <td class='base'>$casubject</td>\r
+       <form method='post' name='frmrootcrta'><td width='3%' align='center'>\r
+           <input type='hidden' name='ACTION' value='$Lang::tr{'show root certificate'}' />\r
+           <input type='image' name='$Lang::tr{'edit'}' src='/images/info.gif' alt='$Lang::tr{'show root certificate'}' title='$Lang::tr{'show root certificate'}' width='20' height='20' border='0' />\r
+       </td></form>\r
+       <form method='post' name='frmrootcrtb'><td width='3%' align='center'>\r
+           <input type='image' name='$Lang::tr{'download root certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download root certificate'}' title='$Lang::tr{'download root certificate'}' border='0' />\r
+           <input type='hidden' name='ACTION' value='$Lang::tr{'download root certificate'}' />\r
+       </td></form>\r
+       <td width='4%'>&nbsp;</td></tr>\r
+END\r
+       ;\r
+    } else {\r
+       # display rootcert generation buttons\r
+       print <<END\r
+       <tr bgcolor='${Header::table2colour}'>\r
+       <td class='base'>$Lang::tr{'root certificate'}:</td>\r
+       <td class='base'>$Lang::tr{'not present'}</td>\r
+       <td colspan='3'>&nbsp;</td></tr>\r
+END\r
+       ;\r
+    }\r
+\r
+    if (-f "${General::swroot}/certs/hostcert.pem") {\r
+       my $hostsubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/hostcert.pem`;\r
+       $hostsubject    =~ /Subject: (.*)[\n]/;\r
+       $hostsubject    = $1;\r
+       $hostsubject    =~ s+/Email+, E+;\r
+       $hostsubject    =~ s/ ST=/ S=/;\r
+\r
+       print <<END\r
+       <tr bgcolor='${Header::table1colour}'>\r
+       <td class='base'>$Lang::tr{'host certificate'}</td>\r
+       <td class='base'>$hostsubject</td>\r
+       <form method='post' name='frmhostcrta'><td width='3%' align='center'>\r
+           <input type='hidden' name='ACTION' value='$Lang::tr{'show host certificate'}' />\r
+           <input type='image' name='$Lang::tr{'show host certificate'}' src='/images/info.gif' alt='$Lang::tr{'show host certificate'}' title='$Lang::tr{'show host certificate'}' width='20' height='20' border='0' />\r
+       </td></form>\r
+       <form method='post' name='frmhostcrtb'><td width='3%' align='center'>\r
+           <input type='image' name='$Lang::tr{'download host certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download host certificate'}' title='$Lang::tr{'download host certificate'}' border='0' />\r
+           <input type='hidden' name='ACTION' value='$Lang::tr{'download host certificate'}' />\r
+       </td></form>\r
+       <td width='4%'>&nbsp;</td></tr>\r
+END\r
+       ;\r
+    } else {\r
+       # Nothing\r
+       print <<END\r
+       <tr bgcolor='${Header::table1colour}'>\r
+       <td width='25%' class='base'>$Lang::tr{'host certificate'}:</td>\r
+       <td class='base'>$Lang::tr{'not present'}</td>\r
+       </td><td colspan='3'>&nbsp;</td></tr>\r
+END\r
+       ;\r
+    }\r
+\r
+    if (! -f "${General::swroot}/ca/cacert.pem") {\r
+        print "<tr><td colspan='5' align='center'><form method='post'>";\r
+       print "<input type='submit' name='ACTION' value='$Lang::tr{'generate root/host certificates'}' />";\r
+        print "</form></td></tr>\n";\r
+    }\r
+\r
+    if (keys %cahash > 0) {\r
+       foreach my $key (keys %cahash) {\r
+           if (($key + 1) % 2) {\r
+               print "<tr bgcolor='${Header::table1colour}'>\n";\r
+           } else {\r
+               print "<tr bgcolor='${Header::table2colour}'>\n";\r
+           }\r
+           print "<td class='base'>$cahash{$key}[0]</td>\n";\r
+           print "<td class='base'>$cahash{$key}[1]</td>\n";\r
+           print <<END\r
+           <form method='post' name='cafrm${key}a'><td align='center'>\r
+               <input type='image' name='$Lang::tr{'show ca certificate'}' src='/images/info.gif' alt='$Lang::tr{'show ca certificate'}' title='$Lang::tr{'show ca certificate'}' border='0' />\r
+               <input type='hidden' name='ACTION' value='$Lang::tr{'show ca certificate'}' />\r
+               <input type='hidden' name='KEY' value='$key' />\r
+           </td></form>\r
+           <form method='post' name='cafrm${key}b'><td align='center'>\r
+               <input type='image' name='$Lang::tr{'download ca certificate'}' src='/images/floppy.gif' alt='$Lang::tr{'download ca certificate'}' title='$Lang::tr{'download ca certificate'}' border='0' />\r
+               <input type='hidden' name='ACTION' value='$Lang::tr{'download ca certificate'}' />\r
+               <input type='hidden' name='KEY' value='$key' />\r
+           </td></form>\r
+           <form method='post' name='cafrm${key}c'><td align='center'>\r
+               <input type='hidden' name='ACTION' value='$Lang::tr{'remove ca certificate'}' />\r
+               <input type='image'  name='$Lang::tr{'remove ca certificate'}' src='/images/delete.gif' alt='$Lang::tr{'remove ca certificate'}' title='$Lang::tr{'remove ca certificate'}' width='20' height='20' border='0' />\r
+               <input type='hidden' name='KEY' value='$key' />\r
+           </td></form></tr>\r
+END\r
+           ;\r
+       }\r
+    }\r
+\r
+    print "</table>";\r
+\r
+    # If the file contains entries, print Key to action icons\r
+    if ( -f "${General::swroot}/ca/cacert.pem") {\r
+    print <<END\r
+    <table>\r
+    <tr>\r
+       <td class='boldbase'>&nbsp; <b>$Lang::tr{'legend'}:</b></td>\r
+       <td>&nbsp; &nbsp; <img src='/images/info.gif' alt='$Lang::tr{'show certificate'}' /></td>\r
+       <td class='base'>$Lang::tr{'show certificate'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/floppy.gif' alt='$Lang::tr{'download certificate'}' /></td>\r
+       <td class='base'>$Lang::tr{'download certificate'}</td>\r
+    </tr>\r
+    </table>\r
+END\r
+    ;\r
+    }\r
+    print <<END\r
+    <form method='post' enctype='multipart/form-data'>\r
+    <table width='100%' border='0' cellspacing='1' cellpadding='0'>\r
+    <tr><td class='base' nowrap='nowrap'>$Lang::tr{'ca name'}:</td>\r
+    <td nowrap='nowrap'><input type='text' name='CA_NAME' value='$cgiparams{'CA_NAME'}' size='15' />\r
+    <td nowrap='nowrap'><input type='file' name='FH' size='30' /></td>\r
+    <td nowrap='nowrap'><input type='submit' name='ACTION' value='$Lang::tr{'upload ca certificate'}' /></td>\r
+    </tr></table></form>\r
+END\r
+    ;\r
+    &Header::closebox();\r
+\r
+    print "<div align='center'><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /></div></form>\n";\r
+    print "$Lang::tr{'this feature has been sponsored by'} : ";\r
+    print "<a href='http://www.seminolegas.com/' target='_blank'>Seminole Canada Gas Company</a>.\n";\r
+\r
+    &Header::closebigbox();\r
+    &Header::closepage();\r
diff --git a/html/cgi-bin/wireless.cgi b/html/cgi-bin/wireless.cgi
new file mode 100644 (file)
index 0000000..8b2bbb8
--- /dev/null
@@ -0,0 +1,508 @@
+#!/usr/bin/perl\r
+#\r
+# IPCop CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) 2003 Alan Hourihane <alanh@fairlite.demon.co.uk>\r
+# (c) 2005 Eric Oberlander, Robert Kerr - Inline editing & DHCP leases\r
+#\r
+# $Id: wireless.cgi,v 1.4.2.15 2005/06/11 12:14:49 eoberlander Exp $\r
+#\r
+\r
+use strict;\r
+use Time::Local;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::colouryellow} );\r
+undef (@dummy);\r
+\r
+my %cgiparams=();\r
+my %checked=();\r
+my $errormessage = '';\r
+my $filename = "${General::swroot}/wireless/config";\r
+my $hostsfile = "${General::swroot}/main/hosts";\r
+our %dhcpsettings=(); \r
+our %netsettings=();\r
+\r
+$cgiparams{'ENABLED'} = 'off';\r
+$cgiparams{'ACTION'} = '';\r
+$cgiparams{'VALID'} = '';\r
+$cgiparams{'SOURCE_IP'} ='';\r
+$cgiparams{'SOURCE_MAC'} ='';\r
+$cgiparams{'REMARK'} ='';\r
+\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+&General::readhash("${General::swroot}/dhcp/settings", \%dhcpsettings);\r
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);\r
+\r
+&Header::showhttpheaders();\r
+\r
+open(FILE, $filename) or die 'Unable to open config file.';\r
+my @current = <FILE>;\r
+close(FILE);\r
+\r
+if ($cgiparams{'ACTION'} eq 'add')\r
+{\r
+\r
+       if ($cgiparams{'SOURCE_IP'} eq '' && $cgiparams{'SOURCE_MAC'} eq '')\r
+       {\r
+               goto ADDEXIT;\r
+       }\r
+\r
+       $cgiparams{'SOURCE_MAC'} =~ tr/-/:/;\r
+\r
+       my $key = 0;\r
+       foreach my $line (@current)\r
+       {\r
+               $key++;\r
+               my @temp = split(/\,/,$line);\r
+\r
+               if ($temp[1] ne '' && $cgiparams{'SOURCE_IP'} eq $temp[1] && $cgiparams{'EDITING'} ne $key)\r
+               {\r
+                       $errormessage = $Lang::tr{'duplicate ip'};\r
+                       goto ADDERROR;\r
+               }\r
+               if ($temp[2] ne '' && lc($cgiparams{'SOURCE_MAC'}) eq lc($temp[2]) && $cgiparams{'EDITING'} ne $key)\r
+               {\r
+                       $errormessage = $Lang::tr{'duplicate mac'};\r
+                       goto ADDERROR;\r
+               }\r
+       }\r
+\r
+       if ($cgiparams{'SOURCE_IP'} eq '')\r
+       {\r
+               $cgiparams{'SOURCE_IP'} = 'NONE';\r
+       } else {\r
+               unless(&General::validip($cgiparams{'SOURCE_IP'})) \r
+               {\r
+                       $errormessage = $Lang::tr{'invalid fixed ip address'}; \r
+                       goto ADDERROR;\r
+               }\r
+       }\r
+       if ($cgiparams{'SOURCE_MAC'} eq '')\r
+       {\r
+               $cgiparams{'SOURCE_MAC'} = 'NONE';\r
+       } else {\r
+               unless(&General::validmac($cgiparams{'SOURCE_MAC'})) \r
+               { \r
+                       $errormessage = $Lang::tr{'invalid fixed mac address'}; \r
+               }\r
+       }\r
+\r
+ADDERROR:\r
+       if ($errormessage)\r
+       {\r
+               $cgiparams{'SOURCE_MAC'} = '' if $cgiparams{'SOURCE_MAC'} eq 'NONE';\r
+               $cgiparams{'SOURCE_IP'} = '' if $cgiparams{'SOURCE_IP'} eq 'NONE';\r
+       } else {\r
+               if ($cgiparams{'EDITING'} eq 'no') {\r
+                       open(FILE,">>$filename") or die 'Unable to open config file.';\r
+                       flock FILE, 2;\r
+                       print FILE "$key,$cgiparams{'SOURCE_IP'},$cgiparams{'SOURCE_MAC'},$cgiparams{'ENABLED'},$cgiparams{'REMARK'}\n";\r
+               } else {\r
+                       open(FILE,">$filename") or die 'Unable to open config file.';\r
+                       flock FILE, 2;\r
+                       my $id = 0;\r
+                       foreach my $line (@current)\r
+                       {\r
+                               $id++;\r
+                               if ($cgiparams{'EDITING'} eq $id) {\r
+                                       print FILE "$id,$cgiparams{'SOURCE_IP'},$cgiparams{'SOURCE_MAC'},$cgiparams{'ENABLED'},$cgiparams{'REMARK'}\n";\r
+                               } else { print FILE "$line"; }\r
+                       }\r
+               }\r
+               close(FILE);\r
+               undef %cgiparams;\r
+               &General::log($Lang::tr{'wireless config added'});\r
+               system('/usr/local/bin/restartwireless');\r
+       }\r
+ADDEXIT:\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq 'edit')\r
+{\r
+       my $id = 0;\r
+       foreach my $line (@current)\r
+       {\r
+               $id++;\r
+               if ($cgiparams{'ID'} eq $id)\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       $cgiparams{'SOURCE_IP'}  = $temp[1];\r
+                       $cgiparams{'SOURCE_MAC'} = $temp[2];\r
+                       $cgiparams{'ENABLED'}    = $temp[3];\r
+                       $cgiparams{'REMARK'}     = $temp[4];\r
+                       $cgiparams{'SOURCE_IP'} = '' if $cgiparams{'SOURCE_IP'} eq 'NONE';\r
+                       $cgiparams{'SOURCE_MAC'} = '' if $cgiparams{'SOURCE_MAC'} eq 'NONE';\r
+               }\r
+       }\r
+       &General::log($Lang::tr{'wireless config changed'});\r
+       system('/usr/local/bin/restartwireless');\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq 'remove' || $cgiparams{'ACTION'} eq 'toggle')\r
+{\r
+       my $id = 0;\r
+       open(FILE, ">$filename") or die 'Unable to open config file.';\r
+       flock FILE, 2;\r
+       foreach my $line (@current)\r
+       {\r
+               $id++;\r
+               unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; }\r
+               elsif ($cgiparams{'ACTION'} eq 'toggle')\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       print FILE "$temp[0],$temp[1],$temp[2],$cgiparams{'ENABLE'},$temp[4]\n";\r
+               }\r
+       }\r
+       close(FILE);\r
+       &General::log($Lang::tr{'wireless config changed'});\r
+       system('/usr/local/bin/restartwireless');\r
+}\r
+\r
+\r
+$checked{'ENABLED'}{'off'} = '';\r
+$checked{'ENABLED'}{'on'} = '';\r
+$checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'";\r
+\r
+\r
+&Header::openpage($Lang::tr{'wireless configuration'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<class name='base'>$errormessage\n";\r
+       print "&nbsp;</class>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+my $buttontext = $Lang::tr{'add'};\r
+if ($cgiparams{'ACTION'} eq 'edit') {\r
+       &Header::openbox('100%', 'left', "$Lang::tr{'edit device'}");\r
+       $buttontext = $Lang::tr{'update'};\r
+} else {\r
+       &Header::openbox('100%', 'left', "$Lang::tr{'add device'}");\r
+}\r
+\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+<td width='25%' class='base'>$Lang::tr{'source ip'}:&nbsp;</td>\r
+<td width='25%' ><input type='text' name='SOURCE_IP' value='$cgiparams{'SOURCE_IP'}' size='25' /></td>\r
+<td width='25%' class='base' align='right'>$Lang::tr{'enabled'}&nbsp;</td>\r
+<td width='25%'><input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td>\r
+</tr>\r
+<tr>\r
+<td width='25%' class='base'>$Lang::tr{'source'} $Lang::tr{'mac address'}:&nbsp;</td>\r
+<td colspan='3'><input type='text' name='SOURCE_MAC' value='$cgiparams{'SOURCE_MAC'}' size='25' /></td>\r
+</tr>\r
+<tr>\r
+<td width='25%' class='base'>$Lang::tr{'remark'}:&nbsp;<img src='/blob.gif' alt='*' /></td>\r
+<td colspan='3'><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='40' /></td>\r
+</tr>\r
+</table>\r
+<hr />\r
+<table width='100%'>\r
+<tr>\r
+    <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td>\r
+    <td width='55%' class='base'>$Lang::tr{'this field may be blank'}</td>\r
+    <td width='40%' align='center'>\r
+      <input type='hidden' name='ACTION' value='add' />\r
+      <input type='submit' name='SUBMIT' value='$buttontext' />\r
+    </td>\r
+    <td width='5%' align='right'>\r
+    <a href='${General::adminmanualurl}/section-firewall.html#section-blue-access' target='_blank'>\r
+    <img src='/images/web-support.png' alt='$Lang::tr{'online help en'}' title='$Lang::tr{'online help en'}' /></a></td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+\r
+if ($cgiparams{'ACTION'} eq 'edit') {\r
+       print "<input type='hidden' name='EDITING' value='$cgiparams{'ID'}' />\n";\r
+} else {\r
+       print "<input type='hidden' name='EDITING' value='no' />\n";\r
+}\r
+\r
+&Header::closebox();\r
+\r
+print "</form>\n";\r
+\r
+&Header::openbox('100%', 'left', "$Lang::tr{'devices on blue'}");\r
+print <<END\r
+<div align='center'>\r
+END\r
+;\r
+open (FILE, "$filename");\r
+my @current = <FILE>;\r
+close (FILE);\r
+\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+<td align='center' width='20%'><b>$Lang::tr{'hostname'}</b></td>\r
+<td align='center' width='20%'><b>$Lang::tr{'source ip'}</b></td>\r
+<td align='center' width='20%'><b>$Lang::tr{'mac address'}</b></td>\r
+<td align='center' width='35%'><b>$Lang::tr{'remark'}</b></td>\r
+<td align='center' colspan='3'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+END\r
+;\r
+\r
+my $id = 0;\r
+\r
+open (HOSTFILE, "$hostsfile");\r
+my @curhosts = <HOSTFILE>;\r
+close (HOSTFILE);\r
+\r
+my $connstate = &Header::connectionstatus();\r
+my @arp = `/sbin/arp -n`;\r
+shift @arp;\r
+\r
+foreach my $line (@current)\r
+{\r
+       $id++;\r
+       chomp($line);\r
+       my $gif = "";\r
+       my $gdesc = "";\r
+       my $hname = "";\r
+       my $toggle = "";\r
+       my @temp = split(/\,/,$line);\r
+       my $wirelessid = $temp[0];\r
+       my $sourceip = $temp[1];\r
+       my $sourcemac = $temp[2];\r
+       if ( $sourceip eq 'NONE' ) {\r
+               foreach my $aline ( @arp )\r
+               {\r
+                       chomp($aline);\r
+                       my @atemp = split( m{\s+}, $aline );\r
+                       my $aipaddr = $atemp[0];\r
+                       my $amacaddr = lc( $atemp[2] );\r
+                       if ( $amacaddr eq $sourcemac ) {\r
+                               $sourceip = $aipaddr;\r
+                               last;\r
+                       }\r
+               }\r
+       }\r
+\r
+       # SourceIP could now have been set by the ARP probe.\r
+       if ( $sourceip ne 'NONE' ) {\r
+               foreach my $hline (@curhosts)\r
+               {\r
+                       chomp($hline);\r
+                       my @htemp = split(/\,/,$hline);\r
+                       my $hkey = $htemp[0];\r
+                       my $hipaddr = $htemp[1];\r
+                       my $hostname = $htemp[2];\r
+                       my $domainname = $htemp[3];\r
+                       if ($sourceip eq $hipaddr) {\r
+                               $hname = "$hostname.$domainname";\r
+                               last;\r
+                       }\r
+               }\r
+               if ( $hname eq "" ) {\r
+                       my ($aliases, $addrtype, $length, @addrs);\r
+                       ($hname, $aliases, $addrtype, $length, @addrs) = \r
+                               gethostbyaddr(pack("C4", split(/\./,  $sourceip)), 2);\r
+               }\r
+       }\r
+\r
+       if ($temp[3] eq 'on') { $gif = 'on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};}\r
+               else { $gif = 'off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'};}\r
+\r
+       my $remark    = &Header::cleanhtml($temp[4]);\r
+\r
+       if ($cgiparams{'ACTION'} eq 'edit' && $cgiparams{'ID'} eq $id) {\r
+               print "<tr bgcolor='${Header::colouryellow}'>\n";\r
+       } elsif ($id % 2) {\r
+               print "<tr bgcolor='${Header::table1colour}'>\n";\r
+       } else {\r
+               print "<tr bgcolor='${Header::table2colour}'>\n";\r
+       }\r
+       print "<td align='center'>$hname</td>\n";\r
+       print "<td align='center'>$sourceip</td>\n";\r
+       print "<td align='center'>$sourcemac</td>\n";\r
+       print "<td align='center'>$remark</td>\n";\r
+print<<END\r
+<td align='center'>\r
+       <form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />\r
+       <input type='hidden' name='ACTION' value='toggle'}' />\r
+       <input type='hidden' name='ID' value='$id' />\r
+       <input type='hidden' name='ENABLE' value='$toggle' />\r
+       </form>\r
+</td>\r
+\r
+<td align='center'>\r
+       <form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='hidden' name='ACTION' value='edit' />\r
+       <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />\r
+       <input type='hidden' name='ID' value='$id' />\r
+       </form>\r
+</td>\r
+\r
+<td align='center'>\r
+       <form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='hidden' name='ACTION' value='remove' />\r
+       <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />\r
+       <input type='hidden' name='ID' value='$id' />\r
+       </form>\r
+</td>\r
+END\r
+       ;\r
+       print "</tr>\n";\r
+}\r
+print "</table>\n";\r
+\r
+print "</div>\n";\r
+\r
+&Header::closebox();\r
+\r
+if ( $dhcpsettings{"ENABLE_BLUE"} eq 'on') {\r
+       &printblueleases;\r
+}\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
+\r
+sub printblueleases\r
+{\r
+       our %entries = ();\r
+\r
+       sub blueleasesort {\r
+               # Sort by IP address\r
+               my $qs ='IPADDR';\r
+               my @a = split(/\./,$entries{$a}->{$qs});\r
+               my @b = split(/\./,$entries{$b}->{$qs});\r
+               ($a[0]<=>$b[0]) ||\r
+               ($a[1]<=>$b[1]) ||\r
+               ($a[2]<=>$b[2]) ||\r
+               ($a[3]<=>$b[3]);\r
+       }\r
+\r
+       &Header::openbox('100%', 'left', "$Lang::tr{'current dhcp leases on blue'}");\r
+       print <<END\r
+<table width='100%'>\r
+<tr>\r
+<td width='25%' align='center'><b>$Lang::tr{'ip address'}</b></td>\r
+<td width='25%' align='center'><b>$Lang::tr{'mac address'}</b></td>\r
+<td width='20%' align='center'><b>$Lang::tr{'hostname'}</b></td>\r
+<td width='30%' align='center'><b>$Lang::tr{'lease expires'} (local time d/m/y)</b></td>\r
+</tr>\r
+END\r
+       ;\r
+\r
+       my ($ip, $endtime, $ether, $hostname, @record, $record);\r
+       open(LEASES,"/var/state/dhcp/dhcpd.leases") or die "Can't open dhcpd.leases";\r
+       while (my $line = <LEASES>) {\r
+               next if( $line =~ /^\s*#/ );\r
+               chomp($line);\r
+               my @temp = split (' ', $line);\r
+\r
+               if ($line =~ /^\s*lease/) {\r
+                       $ip = $temp[1];\r
+                       # All fields are not necessarily read. Clear everything\r
+                       $endtime = 0;\r
+                       $ether = "";\r
+                       $hostname = "";\r
+               } elsif ($line =~ /^\s*ends never;/) {\r
+                       $endtime = 'never';\r
+               } elsif ($line =~ /^\s*ends/) {\r
+                       $line =~ /(\d+)\/(\d+)\/(\d+) (\d+):(\d+):(\d+)/;\r
+                       $endtime = timegm($6, $5, $4, $3, $2 - 1, $1 - 1900);\r
+               } elsif ($line =~ /^\s*hardware ethernet/) {\r
+                       $ether = $temp[2];\r
+                       $ether =~ s/;//g;\r
+               } elsif ($line =~ /^\s*client-hostname/) {\r
+                       shift (@temp);\r
+                       $hostname = join (' ',@temp);\r
+                       $hostname =~ s/;//g;\r
+                       $hostname =~ s/\"//g;\r
+               } elsif ($line eq "}") {\r
+                       # Select records in Blue subnet\r
+                       if ( &General::IpInSubnet ( $ip,\r
+                               $netsettings{"BLUE_NETADDRESS"},\r
+                               $netsettings{"BLUE_NETMASK"} ) ) {\r
+                               @record = ('IPADDR',$ip,'ENDTIME',$endtime,'ETHER',$ether,'HOSTNAME',$hostname);\r
+                               $record = {};                                   # create a reference to empty hash\r
+                               %{$record} = @record;                           # populate that hash with @record\r
+                               $entries{$record->{'IPADDR'}} = $record;        # add this to a hash of hashes\r
+                       }\r
+               }\r
+       }\r
+       close(LEASES);\r
+\r
+       my $id = 0;\r
+       foreach my $key (sort blueleasesort keys %entries) {\r
+\r
+               my $hostname = &Header::cleanhtml($entries{$key}->{HOSTNAME},"y");\r
+\r
+               if ($id % 2) {\r
+                       print "<tr bgcolor='$Header::table2colour'>";\r
+               } else {\r
+                       print "<tr bgcolor='$Header::table1colour'>";\r
+               }\r
+\r
+               print <<END\r
+<td align='center'>$entries{$key}->{IPADDR}</td>\r
+<td align='center'>$entries{$key}->{ETHER}</td>\r
+<td align='center'>&nbsp;$hostname </td>\r
+<td align='center'>\r
+END\r
+               ;\r
+\r
+               if ($entries{$key}->{ENDTIME} eq 'never') {\r
+                       print "$Lang::tr{'no time limit'}";\r
+               } else {\r
+                       my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst);\r
+                       ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst) = localtime ($entries{$key}->{ENDTIME});\r
+                       my $enddate = sprintf ("%02d/%02d/%d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec);\r
+\r
+                       if ($entries{$key}->{ENDTIME} < time() ){\r
+                               print "<strike>$enddate</strike>";\r
+                       } else {\r
+                               print "$enddate";\r
+                       }\r
+               }\r
+\r
+               if ( $hostname eq '' ) {\r
+                       $hostname = $Lang::tr{'device'};\r
+               }\r
+\r
+               print <<END\r
+<td align='center'>\r
+       <form method='post' name='frmd$id' action='$ENV{'SCRIPT_NAME'}'>\r
+       <input type='hidden' name='ACTION' value='add' />\r
+       <input type='hidden' name='SOURCE_IP' value='' />\r
+       <input type='hidden' name='SOURCE_MAC' value='$entries{$key}->{ETHER}' />\r
+       <input type='hidden' name='REMARK' value='$hostname $Lang::tr{'added from dhcp lease list'}' />\r
+       <input type='hidden' name='ENABLED' value='on' />\r
+       <input type='hidden' name='EDITING' value='no' />\r
+       <input type='image' name='$Lang::tr{'add device'}' src='/images/addblue.gif' alt='$Lang::tr{'add device'}' title='$Lang::tr{'add device'}' />\r
+       </form>\r
+</td></tr>\r
+END\r
+               ;\r
+               $id++;\r
+       }\r
+\r
+       print "</table>";\r
+       &Header::closebox();\r
+}\r
+\r
diff --git a/html/cgi-bin/xtaccess.cgi b/html/cgi-bin/xtaccess.cgi
new file mode 100644 (file)
index 0000000..72d7976
--- /dev/null
@@ -0,0 +1,363 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+# Copyright (c) 2002/04/13 Steve Bootes - Add destination IP support\r
+#\r
+# $Id: xtaccess.cgi,v 1.6.2.15 2005/03/05 08:44:32 eoberlander Exp $\r
+#\r
\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+#workaround to suppress a warning when a variable is used only once\r
+my @dummy = ( ${Header::colouryellow} );\r
+undef (@dummy);\r
+\r
+my %cgiparams=();\r
+my %checked=();\r
+my %selected=();\r
+my $errormessage = '';\r
+my $filename = "${General::swroot}/xtaccess/config";\r
+my $aliasfile = "${General::swroot}/ethernet/aliases";\r
+my $changed = 'no';\r
+\r
+&Header::showhttpheaders();\r
+\r
+$cgiparams{'ENABLED'} = 'off';\r
+$cgiparams{'ACTION'} = '';\r
+$cgiparams{'SRC'} = '';\r
+$cgiparams{'DEST_PORT'} = '';\r
+$cgiparams{'REMARK'} ='';\r
+&Header::getcgihash(\%cgiparams);\r
+open(FILE, $filename) or die 'Unable to open config file.';\r
+my @current = <FILE>;\r
+close(FILE);\r
+\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'add'})\r
+{\r
+       unless($cgiparams{'PROTOCOL'} =~ /^(tcp|udp)$/) { $errormessage = $Lang::tr{'invalid input'}; }\r
+       unless(&General::validipormask($cgiparams{'SRC'}))\r
+       {\r
+               if ($cgiparams{'SRC'} ne '') {\r
+                       $errormessage = $Lang::tr{'source ip bad'}; }\r
+               else {\r
+                       $cgiparams{'SRC'} = '0.0.0.0/0'; }\r
+       }\r
+       unless($errormessage){ $errormessage = &General::validportrange($cgiparams{'DEST_PORT'},'dst'); }\r
+       if ( ! $errormessage)\r
+       {\r
+           $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'});\r
+\r
+               if($cgiparams{'EDITING'} eq 'no') {\r
+                       open(FILE,">>$filename") or die 'Unable to open config file.';\r
+                       flock FILE, 2;\r
+                       print FILE "$cgiparams{'PROTOCOL'},$cgiparams{'SRC'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'DEST'},$cgiparams{'REMARK'}\n";\r
+               } else {\r
+                       open(FILE, ">$filename") or die 'Unable to open config file.';\r
+                       flock FILE, 2;\r
+                       my $id = 0;\r
+                       foreach my $line (@current)\r
+                       {\r
+                               $id++;\r
+                               if ($cgiparams{'EDITING'} eq $id) {\r
+                                       print FILE "$cgiparams{'PROTOCOL'},$cgiparams{'SRC'},$cgiparams{'DEST_PORT'},$cgiparams{'ENABLED'},$cgiparams{'DEST'},$cgiparams{'REMARK'}\n";\r
+                               } else { print FILE "$line"; }\r
+                       }\r
+               }\r
+               close(FILE);\r
+               undef %cgiparams;\r
+               $changed = 'yes';\r
+               &General::log($Lang::tr{'external access rule added'});\r
+               system('/usr/local/bin/setxtaccess');\r
+       } else {\r
+               # stay on edit mode if an error occur\r
+               if ($cgiparams{'EDITING'} ne 'no')\r
+               {\r
+                       $cgiparams{'ACTION'} = $Lang::tr{'edit'};\r
+                       $cgiparams{'ID'} = $cgiparams{'EDITING'};\r
+               }\r
+       }\r
+}\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'})\r
+{\r
+       my $id = 0;\r
+       open(FILE, ">$filename") or die 'Unable to open config file.';\r
+       flock FILE, 2;\r
+       foreach my $line (@current)\r
+       {\r
+               $id++;\r
+               unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; }\r
+       }\r
+       close(FILE);\r
+       system('/usr/local/bin/setxtaccess');\r
+       &General::log($Lang::tr{'external access rule removed'});\r
+}\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'})\r
+{\r
+       open(FILE, ">$filename") or die 'Unable to open config file.';\r
+       flock FILE, 2;\r
+       my $id = 0;\r
+       foreach my $line (@current)\r
+       {\r
+               $id++;\r
+               unless ($cgiparams{'ID'} eq $id) { print FILE "$line"; }\r
+               else\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       print FILE "$temp[0],$temp[1],$temp[2],$cgiparams{'ENABLE'},$temp[4],$temp[5]\n";\r
+               }\r
+       }\r
+       close(FILE);\r
+       system('/usr/local/bin/setxtaccess');\r
+}\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'})\r
+{\r
+       my $id = 0;\r
+       foreach my $line (@current)\r
+       {\r
+               $id++;\r
+               if ($cgiparams{'ID'} eq $id)\r
+               {\r
+                       chomp($line);\r
+                       my @temp = split(/\,/,$line);\r
+                       $cgiparams{'PROTOCOL'} = $temp[0];\r
+                       $cgiparams{'SRC'} = $temp[1];\r
+                       $cgiparams{'DEST_PORT'} = $temp[2];\r
+                       $cgiparams{'ENABLED'} = $temp[3];\r
+                       $cgiparams{'DEST'} = $temp[4];\r
+                       $cgiparams{'REMARK'} = $temp[5];\r
+               }\r
+       }\r
+}\r
+\r
+if ($cgiparams{'ACTION'} eq '')\r
+{\r
+       $cgiparams{'PROTOCOL'} = 'tcp';\r
+       $cgiparams{'DEST'} = '0.0.0.0';\r
+       $cgiparams{'ENABLED'} = 'on';\r
+}\r
+\r
+$selected{'PROTOCOL'}{'udp'} = '';\r
+$selected{'PROTOCOL'}{'tcp'} = '';\r
+$selected{'PROTOCOL'}{$cgiparams{'PROTOCOL'}} = "selected='selected'";\r
+\r
+$selected{'DEST'}{$cgiparams{'DEST'}} = "selected='selected'";\r
+\r
+$checked{'ENABLED'}{'off'} = '';\r
+$checked{'ENABLED'}{'on'} = '';\r
+$checked{'ENABLED'}{$cgiparams{'ENABLED'}} = "checked='checked'";\r
+\r
+&Header::openpage($Lang::tr{'external access configuration'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+       print "<class name='base'>$errormessage\n";\r
+       print "&nbsp;</class>\n";\r
+       &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+my $buttontext = $Lang::tr{'add'};\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'edit a rule'});\r
+       $buttontext = $Lang::tr{'update'};\r
+} else {\r
+       &Header::openbox('100%', 'left', $Lang::tr{'add a new rule'});\r
+}\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+<td width='10%'>\r
+<select name='PROTOCOL'>\r
+<option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option>\r
+<option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option>\r
+</select>\r
+</td>\r
+<td class='base'><font color='${Header::colourred}'>$Lang::tr{'source network'}</font></td>\r
+<td><input type='text' name='SRC' value='$cgiparams{'SRC'}' size='32' /></td>\r
+<td class='base'><font color='${Header::colourred}'>$Lang::tr{'destination port'}:</font></td>\r
+<td><input type='text' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='5' /></td>\r
+</tr>\r
+</table>\r
+<table width='100%'>\r
+<tr>\r
+<td width='10%' class='base'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED' $checked{'ENABLED'}{'on'} /></td>\r
+<td class='base'><font color='${Header::colourred}'>$Lang::tr{'destination ip'}:&nbsp;</font>\r
+<select name='DEST'>\r
+<option value='0.0.0.0' $selected{'DEST'}{'0.0.0.0'}>DEFAULT IP</option>\r
+END\r
+;\r
+\r
+open(ALIASES, "$aliasfile") or die 'Unable to open aliases file.';\r
+while (<ALIASES>)\r
+{\r
+       chomp($_);\r
+       my @temp = split(/\,/,$_);\r
+       if ($temp[1] eq 'on') {\r
+               print "<option value='$temp[0]' $selected{'DEST'}{$temp[0]}>$temp[0]";\r
+               if (defined $temp[2] and ($temp[2] ne '')) { print " ($temp[2])"; }\r
+               print "</option>\n";\r
+       }\r
+}\r
+close(ALIASES);\r
+print <<END\r
+</select>\r
+</td>\r
+</tr>\r
+</table>\r
+<table width='100%'>\r
+<tr>\r
+<td width ='10%' class='base'>\r
+<font class='boldbase'>$Lang::tr{'remark'}:</font>&nbsp;<img src='/blob.gif' alt='*' />\r
+</td>\r
+<td width='65%'>\r
+<input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' />\r
+</td>\r
+<td width='25%' align='center'>\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'add'}' />\r
+<input type='submit' name='SUBMIT' value='$buttontext' />\r
+</td>\r
+</tr>\r
+</table>\r
+<table width='100%'>\r
+<tr>\r
+<td class='base' width='30%'><img src='/blob.gif' alt ='*' align='top' />&nbsp;<font class='base'>$Lang::tr{'this field may be blank'}</font>\r
+</td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) {\r
+       print "<input type='hidden' name='EDITING' value='$cgiparams{'ID'}' />\n";\r
+} else {\r
+       print "<input type='hidden' name='EDITING' value='no' />\n";\r
+}\r
+\r
+&Header::closebox();\r
+print "</form>\n";\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'current rules'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+<td width='10%' class='boldbase' align='center'><b>$Lang::tr{'proto'}</b></td>\r
+<td width='20%' class='boldbase' align='center'><b>$Lang::tr{'source ip'}</b></td>\r
+<td width='20%' class='boldbase' align='center'><b>$Lang::tr{'destination ip'}</b></td>\r
+<td width='15%' class='boldbase' align='center'><b>$Lang::tr{'destination port'}</b></td>\r
+<td width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></td>\r
+<td width='5%' class='boldbase' colspan='3' align='center'><b>$Lang::tr{'action'}</b></td>\r
+</tr>\r
+END\r
+;\r
+\r
+# If something has happened re-read config\r
+if($cgiparams{'ACTION'} ne '' or $changed ne 'no')\r
+{\r
+       open(FILE, $filename) or die 'Unable to open config file.';\r
+       @current = <FILE>;\r
+       close(FILE);\r
+}\r
+my $id = 0;\r
+foreach my $line (@current)\r
+{\r
+       $id++;\r
+       chomp($line);\r
+       my @temp = split(/\,/,$line);\r
+       my $protocol = '';\r
+       my $gif = '';\r
+       my $gdesc = '';\r
+       my $toggle = '';\r
+       if ($temp[0] eq 'udp') {\r
+               $protocol = 'UDP'; }\r
+       else {\r
+               $protocol = 'TCP' }\r
+       if($cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'ID'} eq $id) {\r
+               print "<tr bgcolor='${Header::colouryellow}'>\n"; }\r
+       elsif ($id % 2) {\r
+               print "<tr bgcolor='${Header::table1colour}'>\n"; }\r
+       else {\r
+               print "<tr bgcolor='${Header::table2colour}'>\n"; }\r
+       if ($temp[3] eq 'on') { $gif='on.gif'; $toggle='off'; $gdesc=$Lang::tr{'click to disable'};}\r
+       else { $gif='off.gif'; $toggle='on'; $gdesc=$Lang::tr{'click to enable'}; }\r
+       if ($temp[1] eq '0.0.0.0/0') {\r
+               $temp[1] = $Lang::tr{'caps all'}; }\r
+       # catch for 'old-style' rules file - assume default ip if\r
+       # none exists\r
+       if (!&General::validip($temp[4]) || $temp[4] eq '0.0.0.0') {\r
+               $temp[4] = 'DEFAULT IP'; }\r
+       $temp[5] = '' unless defined $temp[5];\r
+print <<END\r
+<td align='center'>$protocol</td>\r
+<td align='center'>$temp[1]</td>\r
+<td align='center'>$temp[4]</td>\r
+<td align='center'>$temp[2]</td>\r
+<td align='left'>&nbsp;$temp[5]</td>\r
+<td align='center'>\r
+<form method='post' name='frma$id' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' title='$gdesc' alt='$gdesc' />\r
+<input type='hidden' name='ID' value='$id' />\r
+<input type='hidden' name='ENABLE' value='$toggle' />\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />\r
+</form>\r
+</td>\r
+<td align='center'>\r
+<form method='post' name='frmb$id' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' title='$Lang::tr{'edit'}' alt='$Lang::tr{'edit'}' />\r
+<input type='hidden' name='ID' value='$id' />\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />\r
+</form>\r
+</td>\r
+<td align='center'>\r
+<form method='post' name='frmc$id' action='$ENV{'SCRIPT_NAME'}'>\r
+<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' />\r
+<input type='hidden' name='ID' value='$id' />\r
+<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />\r
+</form>\r
+</td>\r
+\r
+</tr>\r
+END\r
+       ;\r
+}\r
+print "</table>\n";\r
+\r
+# If the xt access file contains entries, print Key to action icons\r
+if ( ! -z "$filename") {\r
+print <<END\r
+<table>\r
+<tr>\r
+       <td class='boldbase'>&nbsp; <b>$Lang::tr{'legend'}:</b></td>\r
+       <td>&nbsp; <img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to disable'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td>\r
+       <td class='base'>$Lang::tr{'click to enable'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>\r
+       <td class='base'>$Lang::tr{'edit'}</td>\r
+       <td>&nbsp; &nbsp; <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>\r
+       <td class='base'>$Lang::tr{'remove'}</td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+}\r
+\r
+&Header::closebox();\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r
diff --git a/html/html/CVS/Entries b/html/html/CVS/Entries
new file mode 100644 (file)
index 0000000..d4fc2ad
--- /dev/null
@@ -0,0 +1,6 @@
+/blob.gif/1.3/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/favicon.ico/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/index.cgi/1.4/Thu Dec 11 11:06:41 2003//TIPCOP_v1_4_0
+/ipcop_big.gif/1.4/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+D/images////
+D/include////
diff --git a/html/html/CVS/Repository b/html/html/CVS/Repository
new file mode 100644 (file)
index 0000000..424e624
--- /dev/null
@@ -0,0 +1 @@
+ipcop/html/html
diff --git a/html/html/CVS/Root b/html/html/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/html/html/CVS/Tag b/html/html/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/html/html/blob.gif b/html/html/blob.gif
new file mode 100644 (file)
index 0000000..2b63747
Binary files /dev/null and b/html/html/blob.gif differ
diff --git a/html/html/favicon.ico b/html/html/favicon.ico
new file mode 100644 (file)
index 0000000..8fcd713
Binary files /dev/null and b/html/html/favicon.ico differ
diff --git a/html/html/images/CVS/Entries b/html/html/images/CVS/Entries
new file mode 100644 (file)
index 0000000..6a58641
--- /dev/null
@@ -0,0 +1,25 @@
+/add.gif/1.4/Mon Mar  1 09:00:30 2004/-kb/TIPCOP_v1_4_0
+/addblue.gif/1.1.2.1/Sat May 21 08:07:47 2005/-kb/TIPCOP_v1_4_0
+/bounceback.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/boxbottom1.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/boxbottom2.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/boxbottom3.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/boxleft.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/boxright.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/boxtop1.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/boxtop2.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/boxtop3.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/clock.gif/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/delete.gif/1.3/Mon Feb 23 08:47:53 2004/-kb/TIPCOP_v1_4_0
+/download.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/edit.gif/1.4/Mon Mar  1 09:00:30 2004/-kb/TIPCOP_v1_4_0
+/floppy.gif/1.4/Mon Mar  1 09:00:30 2004/-kb/TIPCOP_v1_4_0
+/forward.gif/1.2.2.1/Sat Dec 18 17:25:09 2004/-kb/TIPCOP_v1_4_0
+/header.png/1.2/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/info.gif/1.3/Sun Feb 29 12:55:39 2004/-kb/TIPCOP_v1_4_0
+/null.gif/1.3/Thu Dec 11 11:06:41 2003/-kb/TIPCOP_v1_4_0
+/off.gif/1.4/Sat Feb 28 13:29:28 2004/-kb/TIPCOP_v1_4_0
+/on.gif/1.4/Sat Feb 28 13:29:28 2004/-kb/TIPCOP_v1_4_0
+/reload.gif/1.3/Mon Mar  1 09:00:30 2004/-kb/TIPCOP_v1_4_0
+/web-support.png/1.1.2.1/Sat Mar 26 07:11:11 2005/-kb/TIPCOP_v1_4_0
+D
diff --git a/html/html/images/CVS/Repository b/html/html/images/CVS/Repository
new file mode 100644 (file)
index 0000000..c06ad22
--- /dev/null
@@ -0,0 +1 @@
+ipcop/html/html/images
diff --git a/html/html/images/CVS/Root b/html/html/images/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/html/html/images/CVS/Tag b/html/html/images/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/html/html/images/add.gif b/html/html/images/add.gif
new file mode 100644 (file)
index 0000000..993167d
Binary files /dev/null and b/html/html/images/add.gif differ
diff --git a/html/html/images/addblue.gif b/html/html/images/addblue.gif
new file mode 100644 (file)
index 0000000..9a8ffb7
Binary files /dev/null and b/html/html/images/addblue.gif differ
diff --git a/html/html/images/bounceback.png b/html/html/images/bounceback.png
new file mode 100644 (file)
index 0000000..d10b0ef
Binary files /dev/null and b/html/html/images/bounceback.png differ
diff --git a/html/html/images/boxbottom1.png b/html/html/images/boxbottom1.png
new file mode 100644 (file)
index 0000000..ac30c96
Binary files /dev/null and b/html/html/images/boxbottom1.png differ
diff --git a/html/html/images/boxbottom2.png b/html/html/images/boxbottom2.png
new file mode 100644 (file)
index 0000000..f8bff54
Binary files /dev/null and b/html/html/images/boxbottom2.png differ
diff --git a/html/html/images/boxbottom3.png b/html/html/images/boxbottom3.png
new file mode 100644 (file)
index 0000000..44bebe1
Binary files /dev/null and b/html/html/images/boxbottom3.png differ
diff --git a/html/html/images/boxleft.png b/html/html/images/boxleft.png
new file mode 100644 (file)
index 0000000..6ed550a
Binary files /dev/null and b/html/html/images/boxleft.png differ
diff --git a/html/html/images/boxright.png b/html/html/images/boxright.png
new file mode 100644 (file)
index 0000000..b2bb534
Binary files /dev/null and b/html/html/images/boxright.png differ
diff --git a/html/html/images/boxtop1.png b/html/html/images/boxtop1.png
new file mode 100644 (file)
index 0000000..1e41b24
Binary files /dev/null and b/html/html/images/boxtop1.png differ
diff --git a/html/html/images/boxtop2.png b/html/html/images/boxtop2.png
new file mode 100644 (file)
index 0000000..01ebb03
Binary files /dev/null and b/html/html/images/boxtop2.png differ
diff --git a/html/html/images/boxtop3.png b/html/html/images/boxtop3.png
new file mode 100644 (file)
index 0000000..77374ea
Binary files /dev/null and b/html/html/images/boxtop3.png differ
diff --git a/html/html/images/clock.gif b/html/html/images/clock.gif
new file mode 100644 (file)
index 0000000..3104e94
Binary files /dev/null and b/html/html/images/clock.gif differ
diff --git a/html/html/images/delete.gif b/html/html/images/delete.gif
new file mode 100644 (file)
index 0000000..855a9b3
Binary files /dev/null and b/html/html/images/delete.gif differ
diff --git a/html/html/images/download.png b/html/html/images/download.png
new file mode 100644 (file)
index 0000000..28b85cf
Binary files /dev/null and b/html/html/images/download.png differ
diff --git a/html/html/images/edit.gif b/html/html/images/edit.gif
new file mode 100644 (file)
index 0000000..c749f46
Binary files /dev/null and b/html/html/images/edit.gif differ
diff --git a/html/html/images/floppy.gif b/html/html/images/floppy.gif
new file mode 100644 (file)
index 0000000..7db2f32
Binary files /dev/null and b/html/html/images/floppy.gif differ
diff --git a/html/html/images/forward.gif b/html/html/images/forward.gif
new file mode 100644 (file)
index 0000000..d8e09bf
Binary files /dev/null and b/html/html/images/forward.gif differ
diff --git a/html/html/images/header.png b/html/html/images/header.png
new file mode 100644 (file)
index 0000000..bbf8902
Binary files /dev/null and b/html/html/images/header.png differ
diff --git a/html/html/images/info.gif b/html/html/images/info.gif
new file mode 100644 (file)
index 0000000..71ed917
Binary files /dev/null and b/html/html/images/info.gif differ
diff --git a/html/html/images/null.gif b/html/html/images/null.gif
new file mode 100644 (file)
index 0000000..35d42e8
Binary files /dev/null and b/html/html/images/null.gif differ
diff --git a/html/html/images/off.gif b/html/html/images/off.gif
new file mode 100644 (file)
index 0000000..2fa5122
Binary files /dev/null and b/html/html/images/off.gif differ
diff --git a/html/html/images/on.gif b/html/html/images/on.gif
new file mode 100644 (file)
index 0000000..a690ee7
Binary files /dev/null and b/html/html/images/on.gif differ
diff --git a/html/html/images/reload.gif b/html/html/images/reload.gif
new file mode 100644 (file)
index 0000000..a456e7e
Binary files /dev/null and b/html/html/images/reload.gif differ
diff --git a/html/html/images/web-support.png b/html/html/images/web-support.png
new file mode 100644 (file)
index 0000000..8f580cf
Binary files /dev/null and b/html/html/images/web-support.png differ
diff --git a/html/html/include/CVS/Entries b/html/html/include/CVS/Entries
new file mode 100644 (file)
index 0000000..e77d464
--- /dev/null
@@ -0,0 +1,3 @@
+/domMenu.js/1.2.2.1/Thu Jul  1 18:59:12 2004//TIPCOP_v1_4_0
+/ipcop.css/1.5.2.1/Sat Apr 17 17:10:24 2004//TIPCOP_v1_4_0
+D
diff --git a/html/html/include/CVS/Repository b/html/html/include/CVS/Repository
new file mode 100644 (file)
index 0000000..625b853
--- /dev/null
@@ -0,0 +1 @@
+ipcop/html/html/include
diff --git a/html/html/include/CVS/Root b/html/html/include/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/html/html/include/CVS/Tag b/html/html/include/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/html/html/include/domMenu.js b/html/html/include/domMenu.js
new file mode 100644 (file)
index 0000000..7ce4dbd
--- /dev/null
@@ -0,0 +1,1167 @@
+// {{{ docs <-- this is a VIM (text editor) text fold
+
+/**
+ * DOM Menu 0.3.2
+ *
+ * Summary: Allows developers to add dynamic drop down menus on webpages.  The
+ *          menu can either be horizontal or vertical, and can open in either
+ *          direction.  It has both edge detection and <select> tag detection
+ *          (for browsers that cannot hide these form elements).  The styles
+ *          for the menu items are controlled almost entirely through CSS and
+ *          the menus are created and destroyed using the DOM.  Menu configuration
+ *          is done using a custom Hash() class and is very portable from a PHP
+ *          type array structure.
+ *
+ * Maintainer: Dan Allen <dan@mojavelinux.com>
+ *
+ * License: LGPL - however, if you use this library, please post to my forum where you
+ *          use it so that I get a chance to see my baby in action.  If you are doing
+ *          this for commercial work perhaps you could send me a few Starbucks Coffee
+ *          gift dollars to encourage future developement (NOT REQUIRED).  E-mail me
+ *          for and address.
+ *
+ * Homepage: http://www.mojavelinux.com/forum/viewtopic.php
+ *
+ * Freshmeat Project: http://freshmeat.net/projects/dommenu/?topic_id=92
+ *
+ * Updated: 2003/01/04
+ *
+ * Supported Browsers: Mozilla (Gecko), IE 5+, Konqueror, (not finished Opera 7), Netscape 4
+ *
+ * Usage: 
+ *
+ * Menu Options: Each option is followed by the value for that option. The options avaiable are:
+ *            'contents'
+ *            'rolloverContents',
+ *            'uri' (may be javascript)
+ *            'statusText'
+ *            'target'
+ *            [0-9] an index to create a submenu item
+ *
+ * API:
+ *
+ * menuElementObject {
+ *     ** properties **
+ *     data
+ *       contents
+ *       uri
+ *       target
+ *       statusText
+ *       parentElement
+ *       subMenu
+ *       childElements
+ *       level
+ *       index (index within this level)
+ *     id
+ *     className
+ *     style
+ *     cellSpacing (Konq only)
+ *     
+ *     ** events **
+ *     mouseover/click -> domMenu_openEvent
+ *     mouseout        -> domMenu_closeEvent
+ *     click           -> domMenu_resolveLink
+ * }
+ *
+ * If there is a non-negative click open delay, then any uri of the element will be ignored
+ *
+ * The alternate contents for a hover element are treated by creating to <span> wrapper elements
+ * and then alternating the display of them.  This avoids the need for innerHTML, which can
+ * do nasty things to the browsers.  If <span> turns out to be a bad choice for tags, then a
+ * non-HTML element can be used instead.
+ *
+**/
+
+// }}}
+// {{{ settings (editable)
+
+var domMenu_data = new domMenu_Hash();
+var domMenu_settings = new domMenu_Hash();
+
+domMenu_settings.setItem('global', new domMenu_Hash(
+    'menuBarClass', 'domMenu_menuBar',
+    'menuElementClass', 'domMenu_menuElement',
+    'menuElementHoverClass', 'domMenu_menuElementHover',
+    'menuElementActiveClass', 'domMenu_menuElementHover',
+    'subMenuBarClass', 'domMenu_subMenuBar',
+    'subMenuElementClass', 'domMenu_subMenuElement',
+    'subMenuElementHoverClass', 'domMenu_subMenuElementHover',
+    'subMenuElementActiveClass', 'domMenu_subMenuElementHover',
+    'subMenuElementHeadingClass', 'domMenu_subMenuElementHeading',
+    'menuBarWidth', '100%',
+    'subMenuMinWidth', 'inherit',
+    'distributeSpace', true,
+    'axis', 'horizontal',
+    'verticalExpand', 'south',
+    'horizontalExpand', 'east',
+    'subMenuWidthCorrection', 0,
+    'verticalSubMenuOffsetY', 0,
+    'verticalSubMenuOffsetX', 0,
+    'horizontalSubMenuOffsetX', 0,
+    'horizontalSubMenuOffsetY', 0,
+    'screenPadding', 0,
+    'openMouseoverMenuDelay', 300,
+    'openMousedownMenuDelay', -1,
+    'closeMouseoutMenuDelay', 800,
+    'closeClickMenuDelay', -1,
+    'openMouseoverSubMenuDelay', 300,
+    'openClickSubMenuDelay', -1,
+    'closeMouseoutSubMenuDelay', 300,
+    'closeClickSubMenuDelay', -1,
+    'baseZIndex', 100
+));
+
+// }}}
+// {{{ global variables
+
+/**
+ * Browser variables
+ * @var domMenu_is{Browser}
+ */
+var domMenu_userAgent = navigator.userAgent.toLowerCase();
+var domMenu_isOpera = domMenu_userAgent.indexOf('opera 7') != -1 ? 1 : 0;
+var domMenu_isKonq = domMenu_userAgent.indexOf('konq') != -1 ? 1 : 0;
+var domMenu_isIE = !domMenu_isKonq && !domMenu_isOpera && document.all ? 1 : 0;
+var domMenu_isIE50 = domMenu_isIE && domMenu_userAgent.indexOf('msie 5.0') != -1;
+var domMenu_isIE55 = domMenu_isIE && domMenu_userAgent.indexOf('msie 5.5') != -1;
+var domMenu_isIE5 = domMenu_isIE50 || domMenu_isIE55;
+var domMenu_isGecko = !domMenu_isKonq && domMenu_userAgent.indexOf('gecko') != -1 ? 1 : 0;
+
+/**
+ * Passport to use the menu system, checked before performing menu manipulation
+ * @var domMenu_useLibrary
+ */
+var domMenu_useLibrary = domMenu_isIE || domMenu_isGecko || domMenu_isKonq || domMenu_isOpera ? 1 : 0;
+
+/**
+ * The data for the menu is stored here, loaded from an external file
+ * @hash domMenu_data
+ */
+var domMenu_data;
+
+var domMenu_selectElements;
+var domMenu_scrollbarWidth = 14;
+var domMenu_eventTo = domMenu_isIE ? 'toElement' : 'relatedTarget';
+var domMenu_eventFrom = domMenu_isIE ? 'fromElement' : 'relatedTarget';
+
+var domMenu_activeElement = new domMenu_Hash();
+
+/**
+ * Array of hashes listing the timouts currently running for opening/closing menus
+ * @array domMenu_timeouts
+ */
+var domMenu_timeouts = new Array();
+domMenu_timeouts['open'] = new domMenu_Hash();
+domMenu_timeouts['close'] = new domMenu_Hash();
+
+var domMenu_timeoutStates = new Array();
+domMenu_timeoutStates['open'] = new domMenu_Hash();
+domMenu_timeoutStates['close'] = new domMenu_Hash();
+
+/**
+ * Style to use for a link pointer, which is different between Gecko and IE
+ * @var domMenu_pointerStyle
+ */
+var domMenu_pointerStyle = domMenu_isIE ? 'hand' : 'pointer';
+
+// }}}
+// {{{ domMenu_Hash()
+
+function domMenu_Hash() {
+    var argIndex = 0;
+    this.length = 0;
+    this.numericLength = 0; 
+    this.items = new Array();
+    while (arguments.length > argIndex) {
+        this.items[arguments[argIndex]] = arguments[argIndex + 1];
+        if (arguments[argIndex] == parseInt(arguments[argIndex])) {
+            this.numericLength++;
+        }
+
+        this.length++;
+        argIndex += 2;
+    }
+
+    this.removeItem = function(in_key)
+    {
+        var tmp_value;
+        if (typeof(this.items[in_key]) != 'undefined') {
+            this.length--;
+            if (in_key == parseInt(in_key)) {
+                this.numericLength--;
+            }
+
+            tmp_value = this.items[in_key];
+            delete this.items[in_key];
+        }
+        
+        return tmp_value;
+    }
+
+    this.getItem = function(in_key)
+    {
+        return this.items[in_key];
+    }
+
+    this.setItem = function(in_key, in_value)
+    {
+        if (typeof(this.items[in_key]) == 'undefined') {
+            this.length++;
+            if (in_key == parseInt(in_key)) {
+                this.numericLength++;
+            }
+        }
+        
+        this.items[in_key] = in_value;
+    }
+
+    this.hasItem = function(in_key)
+    {
+        return typeof(this.items[in_key]) != 'undefined';
+    }
+    
+    this.merge = function(in_hash)
+    {
+        for (var tmp_key in in_hash.items) {
+            if (typeof(this.items[tmp_key]) == 'undefined') {
+                this.length++;
+                if (tmp_key == parseInt(tmp_key)) {
+                    this.numericLength++;
+                }
+            }
+
+            this.items[tmp_key] = in_hash.items[tmp_key];
+        }
+    }
+
+    this.compare = function(in_hash)
+    {
+        if (this.length != in_hash.length) {
+            return false;
+        }
+
+        for (var tmp_key in this.items) {
+            if (this.items[tmp_key] != in_hash.items[tmp_key]) {
+                return false;
+            }
+        }
+        
+        return true;
+    }
+}
+
+// }}}
+// {{{ domMenu_activate()
+
+function domMenu_activate(in_containerId)
+{
+    var container;
+    var data;
+
+    // make sure we can use the menu system and this is a valid menu
+    if (!domMenu_useLibrary || !(container = document.getElementById(in_containerId)) || !(data = domMenu_data.items[in_containerId])) {
+        return;
+    }
+
+    // start with the global settings and merge in the local changes
+    if (!domMenu_settings.hasItem(in_containerId)) {
+        domMenu_settings.setItem(in_containerId, new domMenu_Hash());
+    }
+
+    var settings = domMenu_settings.items[in_containerId];
+    for (var i in domMenu_settings.items['global'].items) {
+        if (!settings.hasItem(i)) {
+            settings.setItem(i, domMenu_settings.items['global'].items[i]);
+        }
+    }
+
+    // populate the zero level element
+    container.data = new domMenu_Hash(
+        'parentElement', false,
+        'numChildren', data.numericLength,
+        'childElements', new domMenu_Hash(),
+        'level', 0,
+        'index', 1
+    );
+    
+    // if we choose to distribute either height or width, determine ratio of each cell
+    var distributeRatio = Math.round(100/container.data.items['numChildren']) + '%';
+    
+    // the first menu is the rootMenu, which is a child of the zero level element
+    var rootMenu = document.createElement('div');
+    rootMenu.id = in_containerId + '[0]';
+    rootMenu.className = settings.items['menuBarClass'];
+    container.data.setItem('subMenu', rootMenu);
+
+    var rootMenuTable = rootMenu.appendChild(document.createElement('table'));
+    if (domMenu_isKonq) {
+        rootMenuTable.cellSpacing = 0;
+    }
+
+    rootMenuTable.style.border = 0;
+    rootMenuTable.style.borderCollapse = 'collapse';
+    rootMenuTable.style.width = settings.items['menuBarWidth'];
+    var rootMenuTableBody = rootMenuTable.appendChild(document.createElement('tbody'));
+
+    var numSiblings = container.data.items['numChildren'];
+    for (var index = 1; index <= numSiblings; index++) {
+        // create a row the first time if horizontal or each time if vertical
+        if (index == 1 || settings.items['axis'] == 'vertical') {
+            var rootMenuTableRow = rootMenuTableBody.appendChild(document.createElement('tr'));
+        }
+
+        // create an instance of the root level menu element
+        var rootMenuTableCell = rootMenuTableRow.appendChild(document.createElement('td'));
+        rootMenuTableCell.style.padding = 0;
+        rootMenuTableCell.id = in_containerId + '[' + index + ']';
+        // add element to list of parent children
+        container.data.items['childElements'].setItem(rootMenuTableCell.id, rootMenuTableCell);
+
+        // assign the settings to the root level element
+        // {!} this is a problem if two menus are using the same data {!}
+        rootMenuTableCell.data = data.items[index];
+        rootMenuTableCell.data.merge(new domMenu_Hash(
+            'basename', in_containerId,
+            'parentElement', container,
+            'numChildren', rootMenuTableCell.data.numericLength,
+            'childElements', new domMenu_Hash(),
+            'offsets', new domMenu_Hash(),
+            'level', container.data.items['level'] + 1,
+            'index', index
+        ));
+
+        // assign the styles
+        rootMenuTableCell.style.cursor = 'default';
+        if (settings.items['axis'] == 'horizontal') {
+            if (settings.items['distributeSpace']) {
+                rootMenuTableCell.style.width = distributeRatio;
+            }
+        }
+
+        var rootElement = rootMenuTableCell.appendChild(document.createElement('div'));
+        rootElement.className = settings.items['menuElementClass'];
+        // fill in the menu element contents
+        rootElement.innerHTML = '<span>' + rootMenuTableCell.data.items['contents'] + '</span>' + (rootMenuTableCell.data.hasItem('contentsHover') ? '<span style="display: none;">' + rootMenuTableCell.data.items['contentsHover'] + '</span>' : '');
+
+        // attach the events
+        rootMenuTableCell.onmouseover = function(in_event) { domMenu_openEvent(this, in_event, settings.items['openMouseoverMenuDelay']); };
+        rootMenuTableCell.onmouseout = function(in_event) { domMenu_closeEvent(this, in_event); };
+
+        if (settings.items['openMousedownMenuDelay'] >= 0 && rootMenuTableCell.data.items['numChildren']) {
+            rootMenuTableCell.onmousedown = function(in_event) { domMenu_openEvent(this, in_event, settings.items['openMousedownMenuDelay']); };
+            // cancel mouseup so that it doesn't propogate to global mouseup event
+            rootMenuTableCell.onmouseup = function(in_event) { var eventObj = domMenu_isIE ? event : in_event; eventObj.cancelBubble = true; };
+            if (domMenu_isIE) {
+                rootMenuTableCell.ondblclick = function(in_event) { domMenu_openEvent(this, in_event, settings.items['openMousedownMenuDelay']); };
+            }
+        }
+        else if (rootMenuTableCell.data.items['uri']) {
+            rootMenuTableCell.style.cursor = domMenu_pointerStyle;
+            rootMenuTableCell.onclick = function(in_event) { domMenu_resolveLink(this, in_event); };
+        }
+
+        // prevent highlighting of text
+        if (domMenu_isIE) {
+            rootMenuTableCell.onselectstart = function() { return false; };
+        }
+
+        rootMenuTableCell.oncontextmenu = function() { return false; };
+    }
+    
+    // add the menu rootMenu to the zero level element
+    rootMenu = container.appendChild(rootMenu);
+
+    // even though most cases the top level menu does not go away, it could
+    // if this menu system is used by another process
+    domMenu_detectCollisions(rootMenu);
+}
+
+// }}}
+// {{{ domMenu_activateSubMenu()
+
+function domMenu_activateSubMenu(in_parentElement)
+{
+    // see if submenu already exists
+    if (in_parentElement.data.hasItem('subMenu')) {
+        domMenu_toggleSubMenu(in_parentElement, 'visible');
+        return;
+    }
+
+    var settings = domMenu_settings.items[in_parentElement.data.items['basename']];
+
+    // build the submenu
+    var menu = document.createElement('div');
+    menu.id = in_parentElement.id + '[0]';
+    menu.className = settings.items['subMenuBarClass'];
+    menu.style.zIndex = settings.items['baseZIndex'];
+    menu.style.position = 'absolute';
+    // position the menu in the upper left corner hidden so that we can work on it
+    menu.style.visibility = 'hidden';
+    menu.style.top = 0;
+    menu.style.left = 0;
+
+    in_parentElement.data.setItem('subMenu', menu);
+
+    var menuTable = menu.appendChild(document.createElement('table'));
+    // ** opera wants to make absolute tables width 100% **
+    if (domMenu_isOpera) {
+        menuTable.style.width = '1px';
+        menuTable.style.whiteSpace = 'nowrap';
+    }
+
+    if (domMenu_isKonq) {
+        menuTable.cellSpacing = 0;
+    }
+
+    menuTable.style.border = 0;
+    menuTable.style.borderCollapse = 'collapse';
+    var menuTableBody = menuTable.appendChild(document.createElement('tbody'));
+
+    var numSiblings = in_parentElement.data.items['numChildren'];
+    for (var index = 1; index <= numSiblings; index++) {
+        var dataIndex = in_parentElement.data.items['level'] == 1 && settings.items['verticalExpand'] == 'north' && settings.items['axis'] == 'horizontal' ? numSiblings + 1 - index : index;
+        var menuTableCell = menuTableBody.appendChild(document.createElement('tr')).appendChild(document.createElement('td'));
+        menuTableCell.style.padding = 0;
+        menuTableCell.id = in_parentElement.id + '[' + dataIndex + ']';
+
+        // add element to list of parent children
+        in_parentElement.data.items['childElements'].setItem(menuTableCell.id, menuTableCell);
+
+        // assign the settings to nth level element
+        menuTableCell.data = in_parentElement.data.items[dataIndex];
+        menuTableCell.data.merge(new domMenu_Hash(
+            'basename', in_parentElement.data.items['basename'],
+            'parentElement', in_parentElement,
+            'numChildren', menuTableCell.data.numericLength,
+            'childElements', new domMenu_Hash(),
+            'offsets', new domMenu_Hash(),
+            'level', in_parentElement.data.items['level'] + 1,
+            'index', index
+        ));
+        
+        // assign the styles
+        var parentStyle = in_parentElement.data.items['level'] == 1 ? in_parentElement.parentNode.style : in_parentElement.style;
+        menuTableCell.style.cursor = 'default';
+        
+        var element = menuTableCell.appendChild(document.createElement('div')); 
+        var outerElement = element;
+        outerElement.className = settings.items['subMenuElementClass']; 
+
+        if (menuTableCell.data.items['numChildren']) {
+            element = outerElement.appendChild(document.createElement('div'));
+            // {!} depends on which way we are opening {!}
+            element.style.backgroundImage = 'url(arrow.gif)';
+            element.style.backgroundRepeat = 'no-repeat';
+            element.style.backgroundPosition = 'right center';
+            // add appropriate padding to fit the arrow
+            element.style.paddingRight = '12px';
+        }
+
+        // fill in the menu item contents
+        element.innerHTML = menuTableCell.data.items['contents'];
+
+        // attach the events
+        menuTableCell.onmouseover = function(in_event) { domMenu_openEvent(this, in_event, settings.items['openMouseoverSubMenuDelay']); };
+        menuTableCell.onmouseout = function(in_event) { domMenu_closeEvent(this, in_event); };
+
+        if (settings.items['openClickSubMenuDelay'] >= 0 && menuTableCell.data.items['numChildren']) {
+            menuTableCell.onmousedown = function(in_event) { domMenu_openEvent(this, in_event, settings.items['openClickSubMenuDelay']); };
+            menuTableCell.onmouseup = function(in_event) { var eventObj = domMenu_isIE ? event : in_event; eventObj.cancelBubble = true; };
+            if (domMenu_isIE) {
+                menuTableCell.ondblclick = function(in_event) { domMenu_openEvent(this, in_event, settings.items['openClickSubMenuDelay']); };
+            }
+        }
+        else if (menuTableCell.data.items['uri']) {
+            menuTableCell.style.cursor = domMenu_pointerStyle;
+            menuTableCell.onclick = function(in_event) { domMenu_resolveLink(this, in_event); };
+        }
+        else if (!menuTableCell.data.items['numChildren']) {
+            outerElement.className += ' ' + settings.items['subMenuElementHeadingClass'];
+        }
+
+        // prevent highlighting of text
+        if (domMenu_isIE) {
+            menuTableCell.onselectstart = function() { return false; };
+        }
+
+        menuTableCell.oncontextmenu = function() { return false; };
+    }
+
+    menu = document.body.appendChild(menu);
+    domMenu_toggleSubMenu(in_parentElement, 'visible');
+}
+
+// }}}
+// {{{ domMenu_changeActivePath()
+
+/**
+ * Close the old active path up to the new active element
+ * and return the value of the new active element (or the same if unchanged)
+ * If the new active element is not set, the top level is assumed
+ *
+ * @return mixed new active element or false if not set
+ */
+function domMenu_changeActivePath(in_newActiveElement, in_oldActiveElement, in_closeDelay)
+{
+    // protect against crap
+    if (!in_oldActiveElement && !in_newActiveElement) {
+        return false;
+    }
+
+    // cancel open timeouts since we know we are opening something different now
+    for (var i in domMenu_timeouts['open'].items) {
+        domMenu_cancelTimeout(i, 'open');
+    }
+
+    // grab some info about this menu system
+    var basename = in_oldActiveElement ? in_oldActiveElement.data.items['basename'] : in_newActiveElement.data.items['basename'];
+    var settings = domMenu_settings.items[basename];
+
+    // build the old and new paths
+    var oldActivePath = new domMenu_Hash();
+    if (in_oldActiveElement) {
+        var tmp_oldActivePathElement = in_oldActiveElement;
+        do {
+            oldActivePath.setItem(tmp_oldActivePathElement.id, tmp_oldActivePathElement); 
+        } while ((tmp_oldActivePathElement = tmp_oldActivePathElement.data.items['parentElement']) && tmp_oldActivePathElement.id != basename);
+
+        // unhighlight the old active element if it doesn't have children open
+        if (!in_oldActiveElement.data.items['subMenu'] || in_oldActiveElement.data.items['subMenu'].style.visibility == 'hidden') {
+            domMenu_toggleHighlight(in_oldActiveElement, false);
+        }
+    }
+
+    var newActivePath = new domMenu_Hash();
+    var intersectPoint;
+    if (in_newActiveElement) {
+        var actualActiveElement = in_newActiveElement;
+        window.status = in_newActiveElement.data.items['statusText'] + ' ';
+
+        // in the event we have no old active element, just highlight new one and return
+        // without setting the new active element (handled later)
+        if (!in_oldActiveElement) {
+            domMenu_cancelTimeout(in_newActiveElement.id, 'close'); 
+            domMenu_toggleHighlight(in_newActiveElement, true);
+            return false;
+        }
+        // if the new element is in the path of the old element, then pretend event is
+        // on the old active element
+        else if (oldActivePath.hasItem(in_newActiveElement.id)) {
+            in_newActiveElement = in_oldActiveElement;
+        }
+
+        var tmp_newActivePathElement = in_newActiveElement;
+        do {
+            // if we have met up with the old active path, then record merge point
+            if (!intersectPoint && oldActivePath.hasItem(tmp_newActivePathElement.id)) {
+                intersectPoint = tmp_newActivePathElement;
+            }
+
+            newActivePath.setItem(tmp_newActivePathElement.id, tmp_newActivePathElement); 
+            domMenu_cancelTimeout(tmp_newActivePathElement.id, 'close'); 
+            // {!} this is ugly {!}
+            if (tmp_newActivePathElement != in_oldActiveElement || actualActiveElement == in_oldActiveElement) {
+                domMenu_toggleHighlight(tmp_newActivePathElement, true);
+            }
+        } while ((tmp_newActivePathElement = tmp_newActivePathElement.data.items['parentElement']) && tmp_newActivePathElement.id != basename);
+
+        // if we move to the child of the old active element
+        if (in_newActiveElement.data.items['parentElement'] == in_oldActiveElement) {
+            return in_newActiveElement;
+        }
+        // if the new active element is in the old active path
+        else if (in_newActiveElement == in_oldActiveElement) {
+            return in_newActiveElement;
+        }
+
+        // find the sibling element
+        var intersectSibling;
+        if (intersectPoint) {
+            for (var i in oldActivePath.items) {
+                if (oldActivePath.items[i].data.items['parentElement'] == intersectPoint) {
+                    intersectSibling = oldActivePath.items[i];
+                    break;
+                }
+            }
+        }
+
+        var isRootLevel = in_newActiveElement.data.items['level'] == 1 ? true : false;
+        var closeDelay = isRootLevel ? settings.items['closeMouseoutMenuDelay'] : settings.items['closeMouseoutSubMenuDelay'];
+    }
+    else {
+        var isRootLevel = false;
+        var closeDelay = settings.items['closeMouseoutMenuDelay'];
+        window.status = window.defaultStatus;
+    }
+
+    // override the close delay with that passed in
+    if (typeof(in_closeDelay) != 'undefined') {
+        closeDelay = in_closeDelay;
+    }
+
+    // if there is an intersect sibling, then we need to work from there up to 
+    // preserve the active path
+    if (intersectSibling) {
+        // only if this is not the root level to we allow the scheduled close
+        // events to persist...otherwise we close immediately
+        if (!isRootLevel) {
+            // toggle the sibling highlight (only one sibling highlighted at a time)
+            domMenu_toggleHighlight(intersectSibling, false);
+        }
+        // we are moving to another top level menu
+        // {!} clean this up {!}
+        else {
+            // add lingering menus outside of old active path to active path
+            for (var i in domMenu_timeouts['close'].items) {
+                if (!oldActivePath.hasItem(i)) {
+                    var tmp_element = document.getElementById(i);
+                    if (tmp_element.data.items['basename'] == basename) {
+                        oldActivePath.setItem(i, tmp_element);
+                    }
+                }
+            }
+        }
+    }
+
+    // schedule the old active path to be closed
+    for (var i in oldActivePath.items) {
+        if (newActivePath.hasItem(i)) {
+            continue;
+        }
+
+        // make sure we don't double schedule here
+        domMenu_cancelTimeout(i, 'close');
+
+        if (isRootLevel) {
+            domMenu_toggleHighlight(oldActivePath.items[i], false); 
+            domMenu_toggleSubMenu(oldActivePath.items[i], 'hidden');
+        }
+        else {
+            var tmp_args = new Array();
+            tmp_args[0] = oldActivePath.items[i];
+            var tmp_function = 'domMenu_toggleHighlight(argv[0], false); domMenu_toggleSubMenu(argv[0], ' + domMenu_quote('hidden') + ');';
+            // if this is the top level, then the menu is being deactivated
+            if (oldActivePath.items[i].data.items['level'] == 1) {
+                tmp_function += ' domMenu_activeElement.setItem(' + domMenu_quote(basename) + ', false);';
+            }
+
+            domMenu_callTimeout(tmp_function, closeDelay, tmp_args, i, 'close');
+        }
+    }
+    
+    return in_newActiveElement;
+}
+
+// }}}
+// {{{ domMenu_deactivate()
+
+function domMenu_deactivate(in_basename, in_delay)
+{
+    if (!in_delay) {
+        in_delay = 0;
+    }
+
+    domMenu_changeActivePath(false, domMenu_activeElement.items[in_basename], in_delay);
+}
+
+// }}}
+// {{{ domMenu_openEvent()
+
+/**
+ * Handle the mouse event to open a menu
+ *
+ * When an event is received to open the menu, this function is
+ * called, handles reinitialization of the menu state and sets
+ * a timeout interval for opening the submenu (if one exists)
+ */
+function domMenu_openEvent(in_this, in_event, in_openDelay)
+{
+    if (domMenu_isGecko) {
+        try {
+            window.getSelection().removeAllRanges();
+        } catch (e) {}
+    }
+
+    // setup the cross-browser event object and target
+    var eventObj = domMenu_isIE ? event : in_event;
+    var currentTarget = domMenu_isIE ? in_this : eventObj.currentTarget;
+    var basename = currentTarget.data.items['basename'];
+
+    // if we are moving amoungst children of the same element, just ignore event
+    if (eventObj.type != 'mousedown' && domMenu_getElement(eventObj[domMenu_eventFrom], basename) == currentTarget) {
+        return;
+    }
+
+    // if we click on an open menu, close it
+    if (eventObj.type == 'mousedown' && domMenu_activeElement.items[basename]) {
+        var settings = domMenu_settings.items[basename];
+        domMenu_changeActivePath(false, domMenu_activeElement.items[basename], currentTarget.data.items['level'] == 1 ? settings.items['closeClickMenuDelay'] : settings.items['closeClickSubMenuDelay']);
+        return;
+    }
+
+    // if this element has children, popup the child menu
+    if (currentTarget.data.items['numChildren']) {
+        // the top level menus have no delay when moving between them
+        // so activate submenu immediately
+        if (currentTarget.data.items['level'] == 1 && domMenu_activeElement.items[basename]) {
+            // ** I place changeActivePath() call here so the hiding of selects does not flicker **
+            // {!} instead I could tell changeActivePath to clear select ownership but not
+            // toggle visibility....hmmm....{!}
+            domMenu_activateSubMenu(currentTarget);
+            // clear the active path and initialize the new one
+            domMenu_activeElement.setItem(basename, domMenu_changeActivePath(currentTarget, domMenu_activeElement.items[basename]));
+        }
+        else {
+            // clear the active path and initialize the new one
+            domMenu_activeElement.setItem(basename, domMenu_changeActivePath(currentTarget, domMenu_activeElement.items[basename]));
+            var tmp_args = new Array();
+            tmp_args[0] = currentTarget;
+            var tmp_function = 'if (!domMenu_activeElement.items[' + domMenu_quote(basename) + ']) { domMenu_activeElement.setItem(' + domMenu_quote(basename) + ', argv[0]); } domMenu_activateSubMenu(argv[0]);';
+            domMenu_callTimeout(tmp_function, in_openDelay, tmp_args, currentTarget.id, 'open');
+        }
+    }
+    else {
+        // clear the active path and initialize the new one
+        domMenu_activeElement.setItem(basename, domMenu_changeActivePath(currentTarget, domMenu_activeElement.items[basename]));
+    }
+}
+
+// }}}
+// {{{ domMenu_closeEvent()
+
+/**
+ * Handle the mouse event to close a menu
+ *
+ * When an mouseout event is received to close the menu, this function is
+ * called, sets a timeout interval for closing the menu.
+ */
+function domMenu_closeEvent(in_this, in_event)
+{
+    // setup the cross-browser event object and target
+    var eventObj = domMenu_isIE ? event : in_event;
+    var currentTarget = domMenu_isIE ? in_this : eventObj.currentTarget;
+    var basename = currentTarget.data.items['basename'];
+    var relatedTarget = domMenu_getElement(eventObj[domMenu_eventTo], basename);
+
+    // if the related target is not a menu element then we left the menu system
+    // at this point (or cannot discern where we are in the menu)
+    if (domMenu_activeElement.items[basename]) {
+        if (!relatedTarget) {
+            domMenu_changeActivePath(false, domMenu_activeElement.items[basename]);
+        }
+    }
+    // we are highlighting the top level, but menu is not yet 'active'
+    else {
+        if (currentTarget != relatedTarget) {
+            domMenu_cancelTimeout(currentTarget.id, 'open');
+            domMenu_toggleHighlight(currentTarget, false);
+        }
+    }
+}    
+
+// }}}
+// {{{ domMenu_getElement()
+
+function domMenu_getElement(in_object, in_basename)
+{
+    while (in_object) {
+        try {
+            if (in_object.id && in_object.id.search(new RegExp('^' + in_basename + '(\\[[0-9]\\])*\\[[0-9]\\]$')) == 0) {
+                return in_object;
+            }
+            else {
+                in_object = in_object.parentNode;
+            }
+        }
+        catch(e) {
+            return false;
+        }
+    }
+    
+    return false;
+}
+
+// }}}
+// {{{ domMenu_detectCollisions()
+
+function domMenu_detectCollisions(in_menuObj, in_recover)
+{
+    // no need to do anything for opera
+    if (domMenu_isOpera) {
+        return;
+    }
+
+    if (typeof(domMenu_selectElements) == 'undefined') {
+        domMenu_selectElements = document.getElementsByTagName('select');
+    }
+    
+    // if we don't have a menu, then unhide selects
+    if (in_recover) {
+        for (var cnt = 0; cnt < domMenu_selectElements.length; cnt++) {
+            if (domMenu_isGecko && domMenu_selectElements[cnt].size <= 1 && !domMenu_selectElements[cnt].multiple) {
+                continue;
+            }
+
+            var thisSelect = domMenu_selectElements[cnt];
+            thisSelect.hideList.removeItem(in_menuObj.id);
+            if (!thisSelect.hideList.length) {
+                domMenu_selectElements[cnt].style.visibility = 'visible';
+            }
+        }
+
+        return;
+    }
+
+    // okay, in_menu exists, let's hunt and destroy
+    var menuOffsets = domMenu_getOffsets(in_menuObj);
+
+    for (var cnt = 0; cnt < domMenu_selectElements.length; cnt++) {
+        var thisSelect = domMenu_selectElements[cnt];
+
+        // mozilla doesn't have a problem with regular selects
+        if (domMenu_isGecko && thisSelect.size <= 1 && !thisSelect.multiple) {
+            continue;
+        }
+
+        // {!} make sure this hash is congruent with domTT hash {!}
+        if (!thisSelect.hideList) {
+            thisSelect.hideList = new domMenu_Hash();
+        }
+
+        var selectOffsets = domMenu_getOffsets(thisSelect); 
+        // for mozilla we only have to worry about the scrollbar itself
+        if (domMenu_isGecko) {
+            selectOffsets.setItem('left', selectOffsets.items['left'] + thisSelect.offsetWidth - domMenu_scrollbarWidth);
+            selectOffsets.setItem('leftCenter', selectOffsets.items['left'] + domMenu_scrollbarWidth/2);
+            selectOffsets.setItem('radius', Math.max(thisSelect.offsetHeight, domMenu_scrollbarWidth/2));
+        }
+
+        var center2centerDistance = Math.sqrt(Math.pow(selectOffsets.items['leftCenter'] - menuOffsets.items['leftCenter'], 2) + Math.pow(selectOffsets.items['topCenter'] - menuOffsets.items['topCenter'], 2));
+        var radiusSum = selectOffsets.items['radius'] + menuOffsets.items['radius'];
+        // the encompassing circles are overlapping, get in for a closer look
+        if (center2centerDistance < radiusSum) {
+            // tip is left of select
+            if ((menuOffsets.items['leftCenter'] <= selectOffsets.items['leftCenter'] && menuOffsets.items['right'] < selectOffsets.items['left']) ||
+            // tip is right of select
+                (menuOffsets.items['leftCenter'] > selectOffsets.items['leftCenter'] && menuOffsets.items['left'] > selectOffsets.items['right']) ||
+            // tip is above select
+                (menuOffsets.items['topCenter'] <= selectOffsets.items['topCenter'] && menuOffsets.items['bottom'] < selectOffsets.items['top']) ||
+            // tip is below select
+                (menuOffsets.items['topCenter'] > selectOffsets.items['topCenter'] && menuOffsets.items['top'] > selectOffsets.items['bottom'])) {
+                thisSelect.hideList.removeItem(in_menuObj.id);
+                if (!thisSelect.hideList.length) {
+                    thisSelect.style.visibility = 'visible';
+                }
+            }
+            else {
+                thisSelect.hideList.setItem(in_menuObj.id, true);
+                thisSelect.style.visibility = 'hidden';
+            }
+        }
+    }
+}
+
+// }}}
+// {{{ domMenu_getOffsets()
+
+function domMenu_getOffsets(in_object)
+{
+    var originalObject = in_object;
+    var originalWidth = in_object.offsetWidth;
+    var originalHeight = in_object.offsetHeight;
+    var offsetLeft = 0;
+    var offsetTop = 0;
+
+    while (in_object) {
+        offsetLeft += in_object.offsetLeft;
+        offsetTop += in_object.offsetTop;
+        in_object = in_object.offsetParent;
+    }
+    
+    return new domMenu_Hash(
+        'left',       offsetLeft,
+        'top',        offsetTop,
+        'right',      offsetLeft + originalWidth,
+        'bottom',     offsetTop + originalHeight,
+        'leftCenter', offsetLeft + originalWidth/2,
+        'topCenter',  offsetTop + originalHeight/2,
+        'radius',     Math.max(originalWidth, originalHeight) 
+    );
+}
+
+// }}}
+// {{{ domMenu_callTimeout()
+
+function domMenu_callTimeout(in_function, in_timeout, in_args, in_basename, in_type)
+{
+    if (in_timeout == 0) {
+        var tmp_function = new Function('argv', in_function);
+        tmp_function(in_args);
+    }
+    else if (in_timeout > 0) {
+        // after we complete the timeout call, we want to remove the reference, so always add that
+        var tmp_function = new Function('argv', in_function + ' domMenu_timeouts[' + domMenu_quote(in_type) + '].removeItem(' + domMenu_quote(in_basename) + ');');
+
+        var tmp_args = new Array();
+        for (var i = 0; i < in_args.length; i++) {
+            tmp_args[i] = in_args[i];
+        }
+
+        if (!domMenu_isKonq && !domMenu_isIE50) {
+            domMenu_timeouts[in_type].setItem(in_basename, setTimeout(function() { tmp_function(tmp_args); }, in_timeout));
+        }
+        else {
+            var tmp_data = new Array();
+            tmp_data['function'] = tmp_function;
+            tmp_data['args'] = tmp_args;
+            domMenu_timeoutStates[in_type].setItem(in_basename, tmp_data);
+            var tmp_type = domMenu_quote(in_type);
+            var tmp_basename = domMenu_quote(in_basename);
+
+            domMenu_timeouts[in_type].setItem(in_basename, setTimeout('domMenu_timeoutStates[' + tmp_type + '].items[' + tmp_basename + '][' + domMenu_quote('function') + '](domMenu_timeoutStates[' + tmp_type + '].items[' + tmp_basename + '][' + domMenu_quote('args') + ']); domMenu_timeoutStates[' + tmp_type + '].removeItem(' + tmp_basename + ');', in_timeout));
+        }
+    }
+}
+
+// }}}
+// {{{ domMenu_cancelTimeout()
+
+function domMenu_cancelTimeout(in_basename, in_type)
+{
+    // take advantage of browsers which use the anonymous function
+    if (!domMenu_isKonq && !domMenu_isIE50) {
+        clearTimeout(domMenu_timeouts[in_type].removeItem(in_basename));
+    }
+    else {
+        // if konqueror, we only want to clearTimeout if it is still running
+        if (domMenu_timeoutStates[in_type].hasItem(in_basename)) {
+            clearTimeout(domMenu_timeouts[in_type].removeItem(in_basename));
+            domMenu_timeoutStates[in_type].removeItem(in_basename);
+        }
+    }
+}
+
+// }}}
+// {{{ domMenu_correctEdgeBleed()
+
+function domMenu_correctEdgeBleed(in_width, in_height, in_x, in_y, in_padding, in_axis)
+{
+    if (domMenu_isIE && !domMenu_isIE5) {
+        var pageHeight = document.documentElement.clientHeight;
+    }
+    else if (!domMenu_isKonq) {
+        var pageHeight = document.body.clientHeight;
+    }
+    else {
+        var pageHeight = window.innerHeight;
+    }
+
+    var pageYOffset = domMenu_isIE ? document.body.scrollTop : window.pageYOffset;
+    var pageXOffset = domMenu_isIE ? document.body.scrollLeft : window.pageXOffset;
+    
+
+    if (in_axis == 'horizontal') {
+        var bleedRight = (in_x - pageXOffset) + in_width - (document.body.clientWidth - in_padding);
+        var bleedLeft = (in_x - pageXOffset) - in_padding;
+
+        // we are bleeding off the right, move menu to stay on page
+        if (bleedRight > 0) {
+            in_x -= bleedRight;
+        }
+
+        // we are bleeding to the left, move menu over to stay on page
+        // we don't want an 'else if' here, because if it doesn't fit we will bleed off the right
+        if (bleedLeft < 0) {
+            in_x += bleedLeft;
+        }
+    }
+    else {
+        var bleedTop = (in_y - pageYOffset) - in_padding;
+        var bleedBottom = (in_y - pageYOffset) + in_height - (pageHeight - in_padding);
+        
+        // if we are bleeding off the bottom, move menu to stay on page
+        if (bleedBottom > 0) {
+            in_y -= bleedBottom;
+        }
+
+        // if we are bleeding off the top, move menu down
+        // we don't want an 'else if' here, because if we just can't fit it, bleed off the bottom
+        if (bleedTop < 0) {
+            in_y += bleedTop;
+        }
+    }
+    
+    return new Array(in_x, in_y);
+}
+
+// }}}
+// {{{ domMenu_toggleSubMenu()
+
+function domMenu_toggleSubMenu(in_parentElement, in_style)
+{
+    var subMenu = in_parentElement.data.items['subMenu'];
+    if (subMenu && subMenu.style.visibility != in_style) {
+        var settings = domMenu_settings.items[in_parentElement.data.items['basename']];
+        var prefix = in_parentElement.data.items['level'] == 1 ? 'menu' : 'subMenu';
+        var className = settings.items[prefix + 'ElementClass'];
+               // :BUG: this is a problem if submenus click to open, then it won't
+               // have the right class when you click to close
+               if (in_style == 'visible') {
+            className += ' ' + settings.items[prefix + 'Element' + (in_style == 'visible' ? 'Active' : 'Hover') + 'Class'];
+               }
+
+        in_parentElement.firstChild.className = className;
+        
+        // position our submenu
+        if (in_style == 'visible') {
+            var tmp_offsets = domMenu_getOffsets(in_parentElement);
+            if (in_parentElement.data.items['level'] == 1) {
+                tmp_offsets.items['top'] += settings.items['verticalSubMenuOffsetY'];
+                tmp_offsets.items['bottom'] += settings.items['verticalSubMenuOffsetY'];
+                tmp_offsets.items['left'] += settings.items['verticalSubMenuOffsetX'];
+                tmp_offsets.items['right'] += settings.items['verticalSubMenuOffsetX'];
+            }
+
+            // reposition if there was a change in the parent position/size
+            if (!in_parentElement.data.items['offsets'].compare(tmp_offsets)) {
+                in_parentElement.data.items['offsets'] = tmp_offsets;
+
+                if (settings.items['axis'] == 'horizontal' && in_parentElement.data.items['level'] == 1) {
+                    var xCoor = tmp_offsets.items['left'];
+                    if (settings.items['verticalExpand'] == 'north') {
+                        var yCoor = tmp_offsets.items['top'] - subMenu.offsetHeight - settings.items['verticalSubMenuOffsetY'];
+                    }
+                    else {
+                        var yCoor = tmp_offsets.items['bottom'];
+                    }
+                }
+                else {
+                    var xCoor = tmp_offsets.items['right'] + settings.items['horizontalSubMenuOffsetX'];
+                    var yCoor = tmp_offsets.items['top'] + settings.items['horizontalSubMenuOffsetY'];
+                }
+
+                var minWidth = settings.items['subMenuMinWidth'];
+                var renderedWidth = subMenu.offsetWidth;
+                if (minWidth == 'inherit') {
+                    minWidth = in_parentElement.offsetWidth + settings.items['subMenuWidthCorrection'];
+                }
+                else if (minWidth == 'auto') {
+                    minWidth = renderedWidth;
+                }
+
+                if (domMenu_isKonq) {
+                    // change with width of the first cell
+                    subMenu.firstChild.firstChild.firstChild.firstChild.style.width = Math.max(minWidth, renderedWidth) + 'px';
+                }
+                else {
+                    // change the width of the table
+                    subMenu.firstChild.style.width = Math.max(minWidth, renderedWidth) + 'px';
+                }
+                
+                var coordinates = domMenu_correctEdgeBleed(subMenu.offsetWidth, subMenu.offsetHeight, xCoor, yCoor, settings.items['screenPadding'], settings.items['axis']);
+                subMenu.style.left = coordinates[0] + 'px';
+                subMenu.style.top = coordinates[1] + 'px';
+
+                // ** if we inherit, it is necessary to check the parent element width again **
+                if (settings.items['axis'] == 'horizontal' && settings.items['subMenuMinWidth'] == 'inherit') {
+                    subMenu.firstChild.style.width = Math.max(in_parentElement.offsetWidth + settings.items['subMenuWidthCorrection'], renderedWidth) + 'px';
+                }
+            }
+        }
+
+        // force konqueror to change the styles
+        if (domMenu_isKonq) {
+            in_parentElement.firstChild.style.display = 'none';
+            in_parentElement.firstChild.style.display = '';
+        }
+
+        subMenu.style.visibility = in_style;
+        domMenu_detectCollisions(subMenu, (in_style == 'hidden'));
+    }
+}
+
+// }}}
+// {{{ domMenu_toggleHighlight()
+
+function domMenu_toggleHighlight(in_element, in_status)
+{
+    // if this is a heading, don't change the style
+    if (!in_element.data.items['numChildren'] && !in_element.data.items['uri']) {
+        return;
+    }
+
+    var settings = domMenu_settings.items[in_element.data.items['basename']];
+    var prefix = in_element.data.items['level'] == 1 ? 'menu' : 'subMenu';
+    var className = settings.items[prefix + 'ElementClass'];
+    var highlightElement = in_element.firstChild;
+
+    var pseudoClass;
+    if (in_status) {
+        if (in_element.data.hasItem('subMenu') && in_element.data.items['subMenu'].style.visibility == 'visible') {
+            pseudoClass = 'Active';
+        }
+        else if (in_element.data.items['numChildren'] || in_element.data.items['uri']) {
+            pseudoClass = 'Hover';
+        }
+    }
+
+    if (pseudoClass) {
+        className += ' ' + settings.items[prefix + 'Element' + pseudoClass + 'Class'];
+        // if we are changing to hover, change the alt contents (only change if needs it)
+        if (highlightElement.childNodes.length == 2 && highlightElement.lastChild.style.display == 'none') {
+            highlightElement.firstChild.style.display = 'none';
+            highlightElement.lastChild.style.display = '';
+        }
+    }
+    else {
+        // if we are changing to non-hover, change the alt contents (only change if needs it)
+        if (highlightElement.childNodes.length == 2 && highlightElement.firstChild.style.display == 'none') {
+            highlightElement.lastChild.style.display = 'none';
+            highlightElement.firstChild.style.display = '';
+        }
+    }
+
+    highlightElement.className = className;
+
+    // force konqueror to change the styles
+    if (domMenu_isKonq) {
+        highlightElement.style.display = 'none';
+        highlightElement.style.display = '';
+    }
+}
+
+// }}}
+// {{{ domMenu_resolveLink()
+
+function domMenu_resolveLink(in_this, in_event)
+{
+    var eventObj = domMenu_isIE ? event : in_event;
+    var currentTarget = domMenu_isIE ? in_this : eventObj.currentTarget;
+    var basename = currentTarget.data.items['basename'];
+
+    // close the menu system immediately when we resolve the uri
+    domMenu_changeActivePath(false, domMenu_activeElement.items[basename], 0);
+
+    if (currentTarget.data.items['uri']) {
+        window.status = 'Resolving Link...';
+
+        // open in current window
+        if (!currentTarget.data.items['target'] || currentTarget.data.items['target'] == '_self') {
+            window.location = currentTarget.data.items['uri'];
+        }
+        // open in new window
+        else {
+            window.open(currentTarget.data.items['uri'], currentTarget.data.items['target']);
+        }
+    }
+}
+
+// }}}
+// {{{ domMenu_quote()
+
+function domMenu_quote(in_string)
+{
+    return "'" + in_string.replace(new RegExp("'", 'g'), "\\'") + "'";
+}
+
+// }}}
diff --git a/html/html/include/ipcop.css b/html/html/include/ipcop.css
new file mode 100644 (file)
index 0000000..576c49e
--- /dev/null
@@ -0,0 +1,122 @@
+body {\r
+    margin: 0px;\r
+    padding: 0px;\r
+    background: url(/images/header.png) no-repeat;\r
+    background-color: #D7D8E8;\r
+    color: #000000;\r
+    font-family: Verdana, Tahoma, Arial, Sans-serif;\r
+    font-size: 11px;\r
+}\r
+\r
+td {\r
+    font-size: 11px;\r
+}\r
+\r
+img {\r
+    border: 0;\r
+    border-width : 0; \r
+    border-style : none; \r
+    border-color : inherit; \r
+}\r
+\r
+pre {\r
+    font-size: 12px;\r
+}\r
+\r
+a {\r
+    color: #000000;\r
+}\r
+\r
+form {\r
+    margin: 0;\r
+    padding: 0;\r
+}\r
+\r
+td.ipcop_menuLocationMain {\r
+    color: #FFFFFF;\r
+    font-family: Verdana, Tahoma, Arial, Sans-serif;\r
+    font-size: 16px;\r
+    font-weight: bold;\r
+    font-variant: small-caps;\r
+}\r
+\r
+td.ipcop_menuLocationSub {\r
+    color: #FFFFFF;\r
+    font-family: Verdana, Tahoma, Arial, Sans-serif;\r
+    font-size: 11px;\r
+    font-weight: bold;\r
+    font-variant: small-caps;\r
+}\r
+\r
+td.ipcop_Version {\r
+    color: #10044A;\r
+    font-size: 10px;\r
+    font-weight: bold;\r
+}\r
+\r
+/* Dommenu */\r
+.ipcop_menuElementTD {\r
+    border: 0;\r
+    color: #DEDFEF;\r
+    font-size: 11px;\r
+    font-weight: bold;\r
+    text-decoration: none;\r
+    width: 90px;\r
+    padding: 0px 0px 5px 0px;\r
+    margin: 0px 10px 0px 10px;\r
+}\r
+\r
+.ipcop_menuElementNoJS {\r
+    color: #DEDFEF;\r
+    font-size: 11px;\r
+    font-weight: bold;\r
+    text-decoration: none;\r
+    padding: 0px 0px 5px 0px;\r
+    margin: 0px 10px 0px 10px;\r
+}\r
+\r
+div.ipcop_menuBar {\r
+    margin-bottom: 1px;\r
+}\r
+\r
+div.ipcop_subMenuBar {\r
+    border: 0;\r
+    background-color: #6B69AD;\r
+}\r
+\r
+div.ipcop_menuElement, div.ipcop_subMenuElement {\r
+    border: 0;\r
+    color: #DEDFEF;\r
+    font-variant: small-caps;\r
+    font-size: 11px;\r
+    font-weight: bold;\r
+}\r
+\r
+div.ipcop_menuElement {\r
+    width: 70px;\r
+    margin: 4px 10px 4px 10px;\r
+}\r
+\r
+div.ipcop_menuElementHover {\r
+    color: #FFFFFF;\r
+}\r
+\r
+div.ipcop_subMenuElement {\r
+    padding: 3px;\r
+    color: #DEDFEF;\r
+}\r
+div.ipcop_subMenuElementHover {\r
+    padding: 3px;\r
+    color: #FFFFFF;\r
+}\r
+\r
+/* Connection Status */\r
+span.ipcop_StatusBig {\r
+    font-weight: bold;\r
+    font-size: 14px;\r
+}\r
+\r
+span.ipcop_StatusBigRed {\r
+    color: #FF0000;\r
+    font-weight: bold;\r
+}\r
diff --git a/html/html/index.cgi b/html/html/index.cgi
new file mode 100644 (file)
index 0000000..caea89a
--- /dev/null
@@ -0,0 +1,8 @@
+#!/usr/bin/perl\r
+\r
+#\r
+# $Id: index.cgi,v 1.4 2003/12/11 11:06:41 riddles Exp $\r
+#\r
+\r
+print "Status: 302 Moved\n";\r
+print "Location: /cgi-bin/index.cgi\n\n";\r
diff --git a/html/html/ipcop_big.gif b/html/html/ipcop_big.gif
new file mode 100644 (file)
index 0000000..5d393cf
Binary files /dev/null and b/html/html/ipcop_big.gif differ
diff --git a/langs/CVS/Entries b/langs/CVS/Entries
new file mode 100644 (file)
index 0000000..2ebc240
--- /dev/null
@@ -0,0 +1,30 @@
+/list/1.5.2.11/Thu Feb  2 15:52:28 2006//TIPCOP_v1_4_0
+D/bz////
+D/cs////
+D/da////
+D/de////
+D/el////
+D/en////
+D/es////
+D/fa////
+D/fi////
+D/fr////
+D/hu////
+D/it////
+D/la////
+D/lt////
+D/nl////
+D/no////
+D/pl////
+D/pt////
+D/ro////
+D/ru////
+D/sk////
+D/sl////
+D/so////
+D/sv////
+D/th////
+D/tr////
+D/vi////
+D/zh////
+D/zt////
diff --git a/langs/CVS/Repository b/langs/CVS/Repository
new file mode 100644 (file)
index 0000000..0ceb199
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs
diff --git a/langs/CVS/Root b/langs/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/CVS/Tag b/langs/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/bz/CVS/Entries b/langs/bz/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/bz/CVS/Repository b/langs/bz/CVS/Repository
new file mode 100644 (file)
index 0000000..72f3ab5
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/bz
diff --git a/langs/bz/CVS/Root b/langs/bz/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/bz/CVS/Tag b/langs/bz/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/bz/cgi-bin/CVS/Entries b/langs/bz/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..56a86ee
--- /dev/null
@@ -0,0 +1,2 @@
+/bz.pl/1.8.2.25/Sat Aug 27 06:05:36 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/bz/cgi-bin/CVS/Repository b/langs/bz/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..224d22f
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/bz/cgi-bin
diff --git a/langs/bz/cgi-bin/CVS/Root b/langs/bz/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/bz/cgi-bin/CVS/Tag b/langs/bz/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/bz/cgi-bin/bz.pl b/langs/bz/cgi-bin/bz.pl
new file mode 100644 (file)
index 0000000..2b31587
--- /dev/null
@@ -0,0 +1,941 @@
+# Brazilian Portuguese (bz) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Edson - Empresa, Claudio C. Porto, Adilson Oliveira, Mauricio Andrade,\r
+# Wladimir Nunes \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Um Certificado CA com este nome já existe', \r
+'a connection with this common name already exists' => 'Uma conexão com este nome comum já existe', \r
+'a connection with this name already exists' => 'Uma conexão com este nome já existe', \r
+'access allowed' => 'Acesso permitido de:', \r
+'access refused with this oinkcode' => 'Acesso recusado com este Código Oink', \r
+'action' => 'Ação', \r
+'add' => 'Adicionar', \r
+'add a host' => 'Adicionar um host:', \r
+'add a new rule' => 'Adicionar uma nova regra:', \r
+'add device' => 'Adiciona dispositivo', \r
+'add network' => 'Adicionar rede', \r
+'add new alias' => 'Adicionar um novo apelido:', \r
+'add new lease' => 'Adicionar um novo lease fixo', \r
+'add service' => 'Adicionar serviço', \r
+'add xtaccess' => 'Adicionar Acesso Externo', \r
+'added from dhcp lease list' => 'adicionado da lista de leases do DHCP', \r
+'admin user password has been changed' => 'A senha do usuário Admin foi trocada.', \r
+'administrator user password' => 'Senha do usuário Admin:', \r
+'adsl settings' => 'Configurações ADSL', \r
+'advanced' => 'Avançado', \r
+'again' => 'Novamente:', \r
+'alcatelusb help' => 'Para utilizar o modem Speedtouch USB você precisa carregar o firmware para o seu IPCop. Por favor, baixe o pacote <b>Firmware Embarcado</b> de speedtouch.com, descompacte-o e então envie o arquivo apropriado no seu modem: KQD6_3.xxx quando Rev<4 ou ZZZL_3.xxx para Rev=4 usando o formulário abaixo.', \r
+'alcatelusb upload' => 'Enviar o Firmware USB Speedtouch', \r
+'alias ip' => 'Apelido IP', \r
+'aliases' => 'Apelidos', \r
+'aliases not active' => 'Os apelidos não serão ativados a menos que a interface VERMELHA seja ESTÁTICA', \r
+'all' => 'Todos', \r
+'all interfaces' => 'Todas as interfaces', \r
+'all updates installed' => 'Todas as atualizações instaladas', \r
+'alt dialup' => 'Discagem', \r
+'alt home' => 'Principal', \r
+'alt information' => 'Informação', \r
+'alt logs' => 'Logs', \r
+'alt services' => 'Serviços', \r
+'alt system' => 'Sistema', \r
+'alt vpn' => 'VPNs', \r
+'and' => 'E', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Aplicar agora', \r
+'april' => 'Abril', \r
+'archive not exist' => 'Arquivo de configuração não existe.', \r
+'are you sure' => 'Você tem certeza?', \r
+'arp table entries' => 'Tabela de Entradas ARP', \r
+'august' => 'Agosto', \r
+'authentication' => 'Autenticação:', \r
+'automatic' => 'Automático', \r
+'available updates' => 'Atualizações disponíveis:', \r
+'average' => 'Média', \r
+'avoid dod' => 'Não use esta opção com Discagem por Demanda! Usual se seu IPCop estiver por trás de um roteador. Seu IP VERMELHO precisa estar dentro de uma das três redes de números reservadas. Ex: 10/8, 172.16/12, 192.168/16', \r
+'back' => 'VOLTAR', \r
+'backup' => 'Cópia de Segurança', \r
+'backup config floppy' => 'Configuração de Cópia de Segurança - Disquete', \r
+'backup configuration' => 'Configuração da Cópia de Segurança:', \r
+'backup sets' => 'Conjuntos da Cópia de Segurança', \r
+'backup to floppy' => 'Cópia de segurança para o disquete', \r
+'backupprofile' => 'No caso de falha de reconexão, comute para o perfil', \r
+'bad characters in script field' => 'Caracteres errados no campo do script', \r
+'bad characters in the telephone number field' => 'Caracteres errados no campo do número do telefone.', \r
+'bad destination range' => 'A faixa de portas Destino teve um primeiro valor maior ou igual ao segundo valor', \r
+'bad ignore filter' => 'Filtro de exclusão errado:', \r
+'bad return code' => 'Programa auxiliar retornou um código de erro', \r
+'bad source range' => 'A faixa de portas Origem teve um primeiro valor maior ou igual ao segundo valor.', \r
+'beep when ppp connects or disconnects' => 'Bipe quando ppp conecta ou desconecta', \r
+'behind a proxy' => 'Por trás de um proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'AZUL', \r
+'blue access' => 'Acesso Azul', \r
+'blue interface' => 'Interface azul', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Pipe quebrado', \r
+'buffered memory' => 'Memória Buffer', \r
+'buffers' => 'buffers', \r
+'bytes per second' => 'Bytes por segundo', \r
+'ca certificate' => 'Certificado CA', \r
+'ca name' => 'Nome CA', \r
+'cache management' => 'Gerenciamento do cache', \r
+'cache size' => 'Tamanho do Cache (MB):', \r
+'cached' => 'em cache', \r
+'cached memory' => 'Memória em Cache', \r
+'cancel' => 'Cancelar', \r
+'cannot enable both nat traversal and compression' => 'Impossível habilitar NAT Transversal e Compressão.', \r
+'cannot enable ntp without specifying primary' => 'Impossível habilitar NTP sem especificação do primário.', \r
+'cannot specify secondary dns without specifying primary' => 'Impossível especificar o DNS Secundário sem especificar o Primário.', \r
+'cannot specify secondary ntp without specifying primary' => 'Impossível especificar o Servidor NTP Secundário sem especificar o Primário', \r
+'cannot specify secondary wins without specifying primary' => 'Impossível especificar WINS secundário sem especificar o primário.', \r
+'cant change certificates' => 'Impossível trocar certificados.', \r
+'cant enable xtaccess' => 'A regra associada ao encaminhamento de porta está desabilitada, consequentemente você não pode habilitar acessos externos para esta regra.', \r
+'cant start openssl' => 'Impossível iniciar o OpenSSL', \r
+'caps all' => 'TODOS', \r
+'capsclosed' => 'FECHADO', \r
+'capsopen' => 'ABERTO', \r
+'capswarning' => 'ATENÇÃO', \r
+'cert' => 'Certificado', \r
+'certificate' => 'Certificado', \r
+'certificate authorities' => 'Autoridades Certificadoras', \r
+'certificate does not have a valid ca associated with it' => 'O Certificado não possui uma CA válida associada a ele.', \r
+'certificate file move failed' => 'Falha ao mover o arquivo do Certificado', \r
+'cfg restart' => 'Uma reinicialização é recomendada após restaurar um arquivo de configuração.', \r
+'chain' => 'Chain', \r
+'change passwords' => 'Alterar senhas', \r
+'check vpn lr' => 'Verificação', \r
+'city' => 'Cidade', \r
+'clear cache' => 'Limpar o cache', \r
+'clenabled' => 'Fornece hora para a rede local', \r
+'click to disable' => 'Clique para desabilitar', \r
+'click to enable' => 'Clique para habilitar', \r
+'clock has not been synchronized' => 'O relógio não foi sincronizado', \r
+'clock last synchronized at' => 'O relógio foi sincronizado pela última vez em', \r
+'common name' => 'Nome Comum', \r
+'compression' => 'Compressão:', \r
+'computer to modem rate' => 'Taxa do computador para o modem:', \r
+'concentrator name' => 'Nome do concentrador:', \r
+'confirmation' => 'Confirmação', \r
+'connect on ipcop restart' => 'Conectar ao reinicializar IPCop:', \r
+'connect the modem' => 'Conectar o modem', \r
+'connect timeout' => 'Tempo de expiração de conexão:', \r
+'connected' => 'Conectado', \r
+'connecting' => 'Conectando...', \r
+'connection' => 'Conexão', \r
+'connection debugging' => 'Depuração da conexão', \r
+'connection status and controlc' => 'Situação e controle da conexão:', \r
+'connection tracking' => 'Rastreio de Conexões do IPTables', \r
+'connection type' => 'Tipo de conexão', \r
+'connection type is invalid' => 'Tipo de conexão invalida.', \r
+'connections' => 'Conexões', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'Conexões estão associadas com esta CA. Excluindo a CA serão excluidas essas conexões também.', \r
+'could not be opened' => 'não foi possível abrir', \r
+'could not connect to' => 'Não foi possível conectar a', \r
+'could not connect to www ipcop org' => 'Não foi possível conectar ao www.ipcop.org', \r
+'could not create directory' => 'Não foi possível criar diretório', \r
+'could not download latest patch list' => 'Não foi possível baixar a última lista de correções (não conectado).', \r
+'could not download latest updates' => 'Não foi possível baixar as últimas atualizações.', \r
+'could not download the available updates list' => 'Não foi possível baixar a lista de atualizações disponíveis.', \r
+'could not open available updates file' => 'Não foi possível abrir arquivo de atualizações disponível.', \r
+'could not open installed updates file' => 'Não foi possível abrir o arquivo de atualizações instalado.', \r
+'could not open update information file' => 'Não foi possível abrir o arquivo de informação de atualização. O arquivo de atualização está corrompido.', \r
+'could not retrieve common name from certificate' => 'Não foi possível resgatar o nome comum do certificado.', \r
+'country' => 'País', \r
+'cpu usage per' => 'Uso % da CPU', \r
+'create' => 'Criar', \r
+'credits' => 'Créditos', \r
+'cron server' => 'Servidor CRON', \r
+'current' => 'Atual', \r
+'current aliases' => 'Aliases atuais:', \r
+'current dhcp leases on blue' => 'Leases atuais do DHCP em Azul', \r
+'current dynamic leases' => 'Leases dinâmicos atuais', \r
+'current fixed leases' => 'Leases fixos atuais', \r
+'current hosts' => 'hosts atuais:', \r
+'current profile' => 'Perfil atual:', \r
+'current rules' => 'Regras atuais:', \r
+'custom networks' => 'Redes personalizadas', \r
+'custom services' => 'Serviços personalizados', \r
+'dat without key' => 'Um arquivo criptografado não pode ser restaurado sem a chave.', \r
+'date' => 'Data', \r
+'date not in logs' => 'Não há nenhum (ou parte) log para o dia consultado', \r
+'day' => 'Dia', \r
+'day after' => 'Dia seguinte', \r
+'day before' => 'Dia anterior', \r
+'days' => 'dias', \r
+'ddns hostname added' => 'Hostname do DNS dinâmico adicionado', \r
+'ddns hostname modified' => 'Hostname do DNS dinâmico modificado', \r
+'ddns hostname removed' => 'Hostname do DNS dinâmico removido', \r
+'ddns minimize updates' => 'Minimiza atualizações: antes de uma atualização, compara o IP no DNS para "[host.]domínio" com o IP Vermelho.', \r
+'ddns noip prefix' => 'Para usar o no-ip em modo agrupado, prefixe o hostname com <b>%</b>', \r
+'december' => 'Dezembro', \r
+'def lease time' => 'Tempo de Lease Padrão', \r
+'default lease time' => 'Tempo padrão do lease (minutos):', \r
+'default networks' => 'Redes Padrões', \r
+'default renewal time' => 'Tempo de renovação padrão', \r
+'default services' => 'Serviços padrões', \r
+'delete' => 'Remover', \r
+'demon login script' => 'Serviço do script de login', \r
+'description' => 'Descrição', \r
+'dest ip and port' => 'IP Dest.:Porta', \r
+'destination' => 'Destino', \r
+'destination ip' => 'IP de destino', \r
+'destination ip bad' => 'IP de destino inválido', \r
+'destination net' => 'Rede de Destino', \r
+'destination port' => 'Porta de destino', \r
+'destination port numbers' => 'A porta de destino precisa ser um número de porta ou faixa de portas válidos.', \r
+'destination port overlaps' => 'Faixa de portas de destino sobrepõe-se à faixa de portas existente.', \r
+'detail level' => 'Nível de detalhe', \r
+'device' => 'Dispositivo', \r
+'devices on blue' => 'Dispositivos em Azul', \r
+'dhcp advopt add' => 'Adiciona opção DHCP', \r
+'dhcp advopt added' => 'Opção DHCP adicionada', \r
+'dhcp advopt blank value' => 'O valor da opção DHCP não pode estar vazio.', \r
+'dhcp advopt custom definition' => 'Sua definição de opções customizadas', \r
+'dhcp advopt definition' => 'Definição', \r
+'dhcp advopt definition exists' => 'Opção de definição já existe. Você pode apenas edita-lo ou remover-lo.', \r
+'dhcp advopt edit' => 'Editar opção DHCP', \r
+'dhcp advopt help' => 'Listar opções', \r
+'dhcp advopt list' => 'Lista de opções DHCP', \r
+'dhcp advopt modified' => 'Opção DHCP modificada', \r
+'dhcp advopt name' => 'Nome da opção', \r
+'dhcp advopt removed' => 'Opção DHCP removida', \r
+'dhcp advopt scope' => 'Escopo da opção', \r
+'dhcp advopt scope global' => 'Global', \r
+'dhcp advopt scope help' => 'Escopo global ou limite global para as interfaces assinaladas.', \r
+'dhcp advopt unknown' => 'Nome da opção DHCP não reconhecido.', \r
+'dhcp advopt value' => 'Valor da opção', \r
+'dhcp allow bootp' => 'Permite clientes bootp', \r
+'dhcp configuration' => 'Configuração do DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'Servidor DHCP', \r
+'dhcp server disabled' => 'Servidor DHCP desabilitado. Parado.', \r
+'dhcp server disabled on blue interface' => 'Servidor DHCP desabilitado na interface AZUL', \r
+'dhcp server enabled' => 'Servidor DHCP habilitado. Reinicializando.', \r
+'dhcp server enabled on blue interface' => 'Servidor DHCP habilitado na interface AZUL', \r
+'dial' => 'Conectar', \r
+'dial user password' => 'Senha do usuário de discagem:', \r
+'dial user password has been changed' => 'A senha do usuário de discagem foi alterada.', \r
+'dialing mode' => 'Modo de discagem:', \r
+'dialup settings' => 'Configurações de discagem', \r
+'disk access per' => 'Acessos a Disco por', \r
+'disk usage' => 'Uso do disco:', \r
+'display' => 'Mostre', \r
+'display hostname in window title' => 'Exibe hostname no título da janela', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Configuração de acesso para a DMZ', \r
+'dmz pinhole rule added' => 'Regra de acesso para a DMZ adicionada; reinicializando acessos para a DMZ.', \r
+'dmz pinhole rule removed' => 'Acesso para a DMZ removido; reinicializando acessos para a DMZ.', \r
+'dmzpinholes for same net not necessary' => 'Furos na DMZ não são necessários para a mesma rede. Selecione redes de origem e destino diferentes.', \r
+'dns check failed' => 'Falha na verificação do DNS', \r
+'dns proxy server' => 'Servidor proxy DNS', \r
+'do not log this port list' => 'Elimine esta lista de portas imediatamente antes de registra-las (reduz o tamanho do log).', \r
+'dod' => 'Discagem por Demanda', \r
+'dod for dns' => 'Discagem por Demanda de DNS:', \r
+'dod not compatible with ddns' => 'Discagem por demanda não é compatível com serviços de DNS dinâmico', \r
+'dod waiting' => 'Discagem por Demanda aguardando.', \r
+'domain' => 'Domínio', \r
+'domain name' => 'Nome do domínio', \r
+'domain name suffix' => 'Sufixo do domínio.', \r
+'domain not set' => 'Domínio não configurado.', \r
+'downlink speed' => 'Velocidade de download (kbit/seg)', \r
+'download ca certificate' => 'Baixar o Certificado CA', \r
+'download certificate' => 'Baixar Certificado', \r
+'download host certificate' => 'Baixar Certificado Host', \r
+'download new ruleset' => 'Baixar novo conjunto de regras', \r
+'download pkcs12 file' => 'Baixar arquivo PKCS12', \r
+'download root certificate' => 'Baixar Certificado Raiz', \r
+'dpd action' => 'Detecção de Parceiro Inativo', \r
+'driver' => 'Driver', \r
+'dst port' => 'Porta Dst', \r
+'dstprt range overlaps' => 'Faixa de portas destino sobrepõe-se às portas já definidas.', \r
+'dstprt within existing' => 'Porta destino está contida em uma faixa de portas já definida.', \r
+'duplicate ip' => 'Endereço IP inserido duplicado', \r
+'duplicate ip bold' => 'IPs duplicados estão em <b>negrito</b>', \r
+'duplicate mac' => 'Endereço MAC fornecido duplicado', \r
+'duplicate name' => 'Este nome já está sendo usado, por favor, escolha outro.', \r
+'dyn dns source choice' => 'O(s) provedor(es) de DNS dinâmico receberão um endereço IP para este IPCop de:', \r
+'dynamic dns' => 'DNS Dinâmico', \r
+'dynamic dns client' => 'Cliente de DNS Dinâmico', \r
+'e-mail address too long' => 'Endereço de email muito grande. Não deve ter mais que 40 caracteres.', \r
+'eciadsl help' => 'Para utilizar o modem ECI ADSL você precisa enviar um arquivo synch.bin para seu IPCop. Por favor, baixe o arquivo do site da ECIADSL e envie o arquivo <B>synch.bin</B> usando o formulário abaixo.', \r
+'eciadsl upload' => 'Enviar arquivo synch.bin do ECI ADSL.', \r
+'edit' => 'Editar', \r
+'edit a rule' => 'Modificar uma regra existente:', \r
+'edit advanced settings when done' => 'Editar configurações avançadas quando concluído.', \r
+'edit an existing alias' => 'Editar apelido existente', \r
+'edit an existing host' => 'Editar um host existente', \r
+'edit an existing lease' => 'Editar um lease existente', \r
+'edit device' => 'Editar dispositivo', \r
+'edit hosts' => 'Editar Hosts', \r
+'edit network' => 'Editar rede', \r
+'edit service' => 'Editar serviço', \r
+'empty' => 'Vazio', \r
+'enable ignore filter' => 'Habilitar ignorar o filtro', \r
+'enable javascript' => 'Habilitar javascript', \r
+'enable wildcards' => 'Habilitar coringas:', \r
+'enabled' => 'Habilitado:', \r
+'enabled on' => 'Habilitado', \r
+'enabledtitle' => 'Habilitado', \r
+'encapsulation' => 'Encapsulamento', \r
+'encrypted' => 'Encriptado', \r
+'end address' => 'Endereço final:', \r
+'err bk 1' => 'Erro criando arquivo', \r
+'err bk 2 key' => 'Erro criando arquivo de chave', \r
+'err bk 3 tar' => 'Erro adicionando arquivos', \r
+'err bk 4 gz' => 'Erro compactando o arquivo', \r
+'err bk 5 encrypt' => 'Erro encriptando o arquivo', \r
+'err rs 1' => 'Erro restaurando o arquivo', \r
+'err rs 6 decrypt' => 'Erro decriptando o arquivo', \r
+'err rs 7 untartst' => 'Arquivo decriptado inválido', \r
+'err rs 8 untar' => 'Erro descompactando arquivo', \r
+'error messages' => 'Mensagens de erro:', \r
+'esp encryption' => 'Encriptação ESP:', \r
+'esp grouptype' => 'Tipo de grupo ESP:', \r
+'esp integrity' => 'Integridade ESP:', \r
+'esp keylife' => 'Vida da chave ESP:', \r
+'esp keylife should be between 1 and 24 hours' => 'Vida da chave ESP deve ser entre 1 e 24 horas.', \r
+'every' => 'Cada', \r
+'excluding buffers and cache' => '-/+ buffers/cache', \r
+'expected' => 'Esperado', \r
+'expires' => 'Expira', \r
+'export' => 'Exportar', \r
+'external access' => 'Acesso Externo', \r
+'external access configuration' => 'Configuração de acesso externo', \r
+'external access rule added' => 'Regra de acesso externo adicionada; reinicializando controlador de acesso', \r
+'external access rule removed' => 'Regra de acesso externo removida; reiniciando controlador de acesso', \r
+'external aliases configuration' => 'Configuração de aliases externos.', \r
+'february' => 'Fevereiro', \r
+'fetch ip from' => 'Consiga o IP público real com a ajuda de um servidor externo', \r
+'filename' => 'Nome do arquivo', \r
+'filesystem full' => 'Sistema de arquivos cheio.', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Número total de hits do firewall para', \r
+'firewall log' => 'Log do firewall', \r
+'firewall log viewer' => 'Visualizador de log do firewall', \r
+'firewall logs' => 'Logs do Firewall', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Envio de Firmware/Drivers', \r
+'fixed ip lease added' => 'Lease de IP fixo adicionado', \r
+'fixed ip lease modified' => 'Lease de IP fixo modificado', \r
+'fixed ip lease removed' => 'Lease de IP fixo removido', \r
+'force update' => 'Forçar atualização', \r
+'forwarding rule added' => 'Regra de encaminhamento adicionada; reinicializando encaminhador', \r
+'forwarding rule removed' => 'Regra de forward removida; reiniciando forwarder', \r
+'forwarding rule updated' => 'Regra de forward atualizada; reiniciando forwarder', \r
+'free' => 'Livre', \r
+'free memory' => 'Memória Livre', \r
+'free swap' => 'Swap Livre', \r
+'friday' => 'Sexta-feira', \r
+'fritzdsl help' => 'Para utilizar um dos modems Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb, você deve enviar um arquivo para o seu IPCop. Por favor, baixe o arquivo tar correspondente do site do IPCop e envie o arquivo <b>fcdsl-(your_version).tgz</b> inteiro usando o formulário abaixo.', \r
+'fritzdsl upload' => 'Envio do Driver do Fritz!DSL', \r
+'from' => 'De', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Gateway', \r
+'gateway ip' => 'IP do Gateway', \r
+'generate a certificate' => 'Gerar um certificado:', \r
+'generate root/host certificates' => 'Gerar Certificados Raiz/Host', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'A geração dos certificados de raiz e de host pode levar um longo tempo, até vários minutos em equipamentos mais antigos. Por favor, seja paciente.', \r
+'global settings' => 'Configurações globais', \r
+'graph' => 'Gráfico', \r
+'graph per' => 'Gráfico por', \r
+'green' => 'VERDE', \r
+'green interface' => 'Interface Verde', \r
+'gui settings' => 'Configurações da GUI', \r
+'gz with key' => 'Apenas um arquivo critografado pode ser restaurado nesta máquina.', \r
+'hangup' => 'Desconecte', \r
+'hangup string' => 'Encerrar:', \r
+'high' => 'Alto', \r
+'high memory usage' => 'Alto uso de memória', \r
+'holdoff' => 'Tempo de posse (em segundos)', \r
+'host' => 'Host', \r
+'host certificate' => 'Certificado do Host', \r
+'host configuration' => 'Configuração do Host', \r
+'host ip' => 'Endereço IP do Host', \r
+'host to net vpn' => 'VPN Host-para-Rede (RoadWarrior)', \r
+'hostname' => 'Hostname', \r
+'hostname and domain already in use' => 'Hostname e domínio já em uso.', \r
+'hostname cant be empty' => 'O hostname não pode ser vazio.', \r
+'hostname not set' => 'Hostname não configurado.', \r
+'hosts config added' => 'configuração dos hosts adicionada', \r
+'hosts config changed' => 'configuração dos hosts modificada', \r
+'hours' => 'horas', \r
+'hours2' => 'Horas', \r
+'ibod for dual isdn only' => 'iBOD só pode ser usado com ISDN dupla.', \r
+'icmp selected but no type' => 'Protocolo ICMP selecionado mas tipo de ICMP não especificado.', \r
+'icmp type' => 'Tipo de ICMP', \r
+'id' => 'ID', \r
+'idle' => 'Ocioso', \r
+'idle cpu' => 'CPU ociosa', \r
+'idle cpu usage' => 'CPU sem uso.', \r
+'idle timeout' => 'Tempo de expiração por ociosidade (mins; 0 para desabilitar):', \r
+'idle timeout not set' => 'Tempo de expiração de por inatividade não configurado.', \r
+'ids log viewer' => 'Visualizador de log do IDS', \r
+'ids logs' => 'Logs do IDS', \r
+'ids rules license' => 'Para utilizar Sourcefire VRT Certified Rules você precisa se registrar.', \r
+'ids rules license2' => 'Reconheça a licença, receba a senha por email e conecte ao site. Vá para', \r
+'ids rules license3' => 'aperte o botão \'Get Code\' abaixo e copie os 40 caracteres do Código Oink no campo abaixo.', \r
+'ids rules update' => 'Atualizar regras do Snort', \r
+'iface' => 'Iface', \r
+'ignore filter' => 'Ignore filtro', \r
+'ike encryption' => 'Encriptação IKE:', \r
+'ike grouptype' => 'Tipo de grupo IKE:', \r
+'ike integrity' => 'Integridade do IKE:', \r
+'ike lifetime' => 'Tempo de vida do IKE:', \r
+'ike lifetime should be between 1 and 8 hours' => 'O tempo de vida do IKE deve ser entre 1 e 8 horas.', \r
+'import' => 'Importar', \r
+'in' => 'Ent.', \r
+'incoming traffic in bytes per second' => 'Tráfego de entrada em Bytes por Segundo', \r
+'info' => 'Informação', \r
+'init string' => 'Inicialização:', \r
+'insert floppy' => 'Para fazer uma cópia de segurança em um disquete, insira um disquete formatado no drive do IPCop e clique <i>Cópia de segurança para o disquete</i> para criar uma cópia de segurança da configuração do sistema. Por favor, examine os resultados cuidadosamente para certificar-se de que a cópia foi completada com sucesso. Isto pode levar algum tempo para completar, então, por favor, seja paciente.<p>', \r
+'install new update' => 'Instalar nova atualização:', \r
+'installed' => 'Instalado', \r
+'installed updates' => 'Atualizações instaladas:', \r
+'instant update' => 'Atualização imediata', \r
+'interface' => 'Interface:', \r
+'interfaces' => 'Interfaces:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Detecção de intrusão', \r
+'intrusion detection system' => 'Sistema de Detecção de Intrusão', \r
+'intrusion detection system log viewer' => 'Visualizador do Log do Sistema de Detecção de Intrusão(IDS)', \r
+'intrusion detection system2' => 'Sistema de Detecção de Intrusão:', \r
+'invalid broadcast ip' => 'IP de broadcast Inválido', \r
+'invalid cache size' => 'Tamanho do cache inválido.', \r
+'invalid characters found in pre-shared key' => 'Caracteres inválidos encontrados na chave pré-compartilhada.', \r
+'invalid date entered' => 'Data de entrada Inválida', \r
+'invalid default lease time' => 'Tempo de lease padrão inválido.', \r
+'invalid domain name' => 'Nome de domínio inválido', \r
+'invalid downlink speed' => 'Velocidade de downlink Inválida', \r
+'invalid end address' => 'Endereço final inválido.', \r
+'invalid fixed ip address' => 'Endereço IP fixo inválido.', \r
+'invalid fixed mac address' => 'Endereço MAC fixo inválido.', \r
+'invalid hostname' => 'Hostname inválido.', \r
+'invalid input' => 'Entrada inválida.', \r
+'invalid input for authentication method' => 'Entrada inválida para método de autenticação.', \r
+'invalid input for city' => 'Entrada inválida para cidade.', \r
+'invalid input for country' => 'Entrada inválida para país.', \r
+'invalid input for department' => 'Entrada inválida para departamento.', \r
+'invalid input for e-mail address' => 'Entrada inválida para endereço de email.', \r
+'invalid input for esp keylife' => 'Entrada inválida para Arquivo Chave ESP', \r
+'invalid input for hostname' => 'Entrada inválida para nome de host.', \r
+'invalid input for ike lifetime' => 'Entrada inválida para tempo de vida IKE.', \r
+'invalid input for name' => 'Entrada inválida para nome.', \r
+'invalid input for oink code' => 'Entrada inválida no Código Oink', \r
+'invalid input for organization' => 'Entrada inválida para organização.', \r
+'invalid input for remote host/ip' => 'Entrada inválida para host/ip remoto.', \r
+'invalid input for state or province' => 'Entrada inválida para estado ou província.', \r
+'invalid ip' => 'Endereço IP inválido.', \r
+'invalid keep time' => 'Tempo de permanência deve ser um número válido.', \r
+'invalid key' => 'Chave inválida.', \r
+'invalid loaded file' => 'Arquivo carregado inválido', \r
+'invalid logserver address' => 'Endereço do servidor syslogd inválido', \r
+'invalid max lease time' => 'Tempo de lease máximo inválido.', \r
+'invalid maximum incoming size' => 'Tamanho máximo de entrada inválido.', \r
+'invalid maximum object size' => 'Tamanho máximo de objeto inválido.', \r
+'invalid maximum outgoing size' => 'Tamanho máximo de saída inválido.', \r
+'invalid md5sum' => 'MD5Sum Inválido', \r
+'invalid minimum object size' => 'Tamanho mínimo de objeto inválido.', \r
+'invalid netmask' => 'Máscara de Rede Inválida', \r
+'invalid port' => 'Porta Inválida. Coloque um valor de porta válido.', \r
+'invalid port list' => 'A sintaxe da lista de portas é: porta[,porta]... onde porta se encontra em /etc/services ou é um número', \r
+'invalid primary dns' => 'DNS primário inválido.', \r
+'invalid primary ntp' => 'Endereço do servidor NTP primário inválido.', \r
+'invalid secondary dns' => 'DNS secundário inválido.', \r
+'invalid secondary ntp' => 'Endereço do servidor NTP secundário inválido.', \r
+'invalid start address' => 'Endereço inicial inválido.', \r
+'invalid time entered' => 'Tempo fornecido inválido. ', \r
+'invalid time period' => 'Período de tempo inválido.', \r
+'invalid uplink speed' => 'Velocidade de Uplink Inválida', \r
+'invalid upstream proxy username or password setting' => 'Usuário ou senha do proxy de saída inválidos.', \r
+'invalid vpi vpci' => 'Configuração VPI/VPCI Inválida', \r
+'invalid wins address' => 'Endereço do servidor WINS inválido.', \r
+'invert' => 'Inverter', \r
+'ip address' => 'Endereço IP', \r
+'ip address in use' => 'Endereço IP já em uso.', \r
+'ip alias added' => 'Alias de IP externo adicionado.', \r
+'ip alias changed' => 'Alias de IP externo mudou', \r
+'ip alias removed' => 'Alias de IP externo removido', \r
+'ip info' => 'Informação do IP', \r
+'ipcop has now rebooted' => 'O IPCop foi reinicializado', \r
+'ipcop has now shutdown' => 'O IPCop foi finalizado.', \r
+'ipcop side' => 'Lado do IPCop:', \r
+'ipcop side is invalid' => 'Lado do IPCop é inválido.', \r
+'ipcops hostname' => 'Nome de host do IPCop', \r
+'ipinfo' => 'Informação do IP', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Configurações ISDN adicionais:', \r
+'isdn1' => 'RDIS Simples', \r
+'isdn2' => 'RDIS Dupla', \r
+'january' => 'Janeiro', \r
+'javascript menu error1' => 'Se os menús não estão funcionando, desabilite o Javascript na', \r
+'javascript menu error2' => 'página.', \r
+'july' => 'Julho', \r
+'june' => 'Junho', \r
+'kernel' => 'Kernel', \r
+'kernel logging server' => 'Servidor de logs do kernel', \r
+'kernel version' => 'Versão do kernel:', \r
+'lan' => 'Rede Local', \r
+'languagepurpose' => 'Selecione o idioma que você deseja que o IPCop utilize:', \r
+'lease expires' => 'Lease expirado', \r
+'legend' => 'Legenda', \r
+'line' => 'Linha', \r
+'loaded modules' => 'Módulos carregados:', \r
+'local ntp server specified but not enabled' => 'Servidor NTP local especificado mas não habilitado.', \r
+'local subnet' => 'Sub-rede Local:', \r
+'local subnet is invalid' => 'Sub-rede local inválida.', \r
+'local vpn hostname/ip' => 'Hostname/IP da VPN local.', \r
+'log' => 'Log:', \r
+'log enabled' => 'Log Habilitado', \r
+'log lines per page' => 'Linhas por página', \r
+'log server address' => 'Servidor Syslog', \r
+'log settings' => 'Configuração Log', \r
+'log summaries' => 'Resumos do Log', \r
+'log summary' => 'Resumo do Log', \r
+'log viewer' => 'Visualizador do Log', \r
+'log viewing options' => 'Opções de visualização do log', \r
+'logging server' => 'Servidor de Log', \r
+'loginlogout' => 'Login/Logout', \r
+'lookup failed' => 'Lookup reverso falhou', \r
+'low' => 'Baixo', \r
+'ls_dhcpd' => 'Servidor DHCP:', \r
+'ls_disk space' => 'Espaço em disco:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'Servidor HTTP:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kernel e Firewall:', \r
+'ls_modprobe' => 'Carregador do módulo:', \r
+'ls_pam_unix' => 'Logins de usuário local:', \r
+'ls_sshd' => 'Logins de usuário remoto:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'Endereço MAC', \r
+'mac address in use' => 'Endereço MAC já em uso', \r
+'main page' => 'Página principal', \r
+'manual' => 'Manual', \r
+'manual control and status' => 'Controle manual e situação:', \r
+'manually' => 'Manualmente', \r
+'march' => 'Março', \r
+'marked' => 'Marcado', \r
+'max incoming size' => 'Tamanho máx. de entrada (KB):', \r
+'max lease time' => 'Tempo máx. de lease (minutos):', \r
+'max outgoing size' => 'Tamanho máx. de saída (KB):', \r
+'max renewal time' => 'Tempo Máximo de Renovação', \r
+'max retries not set' => 'Tentativas máximas não configuradas.', \r
+'max size' => 'Tamanho máx. do objeto (KB):', \r
+'maximal' => 'Máximo', \r
+'maximum retries' => 'Num. max. de tentativas:', \r
+'may' => 'Maio', \r
+'medium' => 'Médio', \r
+'memory' => 'Memória:', \r
+'memory usage per' => 'Uso de Memória por', \r
+'method' => 'Método:', \r
+'min size' => 'Tam. min. de objeto (KB):', \r
+'minutes' => 'Minutos', \r
+'missing dat' => 'Arquivo Encriptado não encontrado', \r
+'missing gz' => 'Arquivo Decriptado não encontrado', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Configuração do modem', \r
+'modem on com1' => 'Modem na com1', \r
+'modem on com2' => 'Modem na COM2', \r
+'modem on com3' => 'Modem na COM3', \r
+'modem on com4' => 'Modem na COM4', \r
+'modem on com5' => 'Modem na COM5', \r
+'modem settings have errors' => 'Existem erros nas configurações do modem', \r
+'modem speaker on' => 'Alto-falante do modem ligado:', \r
+'modulation' => 'Modulação', \r
+'monday' => 'Segunda-feira', \r
+'month' => 'Mês', \r
+'months' => 'meses', \r
+'mounted on' => 'Montado', \r
+'name' => 'Nome', \r
+'name is invalid' => 'Nome inválido', \r
+'name must only contain characters' => 'Nome deve conter apenas caracteres.', \r
+'name too long' => 'Nome completo do usuário ou hostname do sistema muito longos.', \r
+'nat-traversal' => 'Nat Traversal:', \r
+'net' => 'Rede', \r
+'net to net vpn' => 'Rede Privativa Virtual Rede-à-Rede', \r
+'netmask' => 'Máscara de Rede', \r
+'network' => 'Rede', \r
+'network added' => 'Rede personalizada Adicionada', \r
+'network configuration' => 'Configuração de Rede', \r
+'network removed' => 'Rede personalizada removida', \r
+'network status information' => 'Informação de Situação da Rede', \r
+'network time' => 'Use um Servidor de Tempo de Rede:', \r
+'network time from' => 'Obtenha a hora de um Servidor de Tempo da Rede', \r
+'network traffic graphs' => 'Gráficos de tráfego da rede', \r
+'network updated' => 'Rede personalizada Atualizada', \r
+'networks settings' => 'Firewall - Configurações de rede', \r
+'new optionsfw later' => 'Suas modificações serão ativadas na próxima reinicialização.', \r
+'new optionsfw must boot' => 'Você precisa reiniciar seu IPCop', \r
+'newer' => 'Posteriores', \r
+'next address' => 'Próximo Endereço', \r
+'no' => 'Não', \r
+'no alcatelusb firmware' => 'Falta o firmware do Alcatel USB. Por favor, carregue-o.', \r
+'no cfg upload' => 'Nenhum dado foi enviado', \r
+'no dhcp lease' => 'Nenhum empréstimo DHCP foi conseguido', \r
+'no eciadsl synch.bin file' => 'Falta o arquivo synch.in do ECI ADSL. Por favor, carregue-o.', \r
+'no fritzdsl driver' => 'Driver Fritz!DSL não existe. Por favor, carregue-o.', \r
+'no information available' => 'Informação não disponível.', \r
+'no modem selected' => 'Modem não selecionado', \r
+'no set selected' => 'Nenhuma faixa foi selecionada.', \r
+'no time limit' => 'tempo ilimitado', \r
+'none found' => 'nenhum encontrado', \r
+'nonetworkname' => 'Nome de Rede não digitado', \r
+'noservicename' => 'Serviço de Nome não digitado', \r
+'not a valid ca certificate' => 'Certificado CA inválido.', \r
+'not enough disk space' => 'Espaço em disco insuficiente', \r
+'not present' => '<b>Não</b> presente', \r
+'not running' => 'parado', \r
+'november' => 'Novembro', \r
+'ntp configuration' => 'Configuração do NTP', \r
+'ntp must be enabled to have clients' => 'NTP precisa ser habilitado para ter clientes.', \r
+'ntp server' => 'Servidor NTP', \r
+'ntp syncro disabled' => 'Sincronização NPT desligada', \r
+'ntp syncro enabled' => 'Sincronização NTP habilitada', \r
+'ntpd restarted' => 'ntpd reiniciado', \r
+'number' => 'Número:', \r
+'october' => 'Outubro', \r
+'older' => 'Anteriores', \r
+'online help en' => 'Ajuda Online (em Inglês)', \r
+'only digits allowed in holdoff field' => 'Somente dígitos são permitidos no campo holdoff.', \r
+'only digits allowed in max retries field' => 'Apenas digitos são permitidos no campo de máximo de tentativas.', \r
+'only digits allowed in the idle timeout' => 'Apenas números são permitidos no campo de tempo de queda por inatividade.', \r
+'only red' => 'Apenas Vermelho', \r
+'open to all' => 'Permite acesso externo para TODOS', \r
+'openssl produced an error' => 'OpenSSL produziu um erro', \r
+'options' => 'Opções', \r
+'options fw' => 'Opções do firewall', \r
+'optionsfw portlist hint' => 'A lista de portas deve ser separada por vírgulas (p.e. 137, 138). Você pode especificar até 15 portas por protocolo.', \r
+'optionsfw warning' => 'Modificar estas opções implica reiniciar o firewall.', \r
+'orange' => 'LARANJA', \r
+'organization cant be empty' => 'Organização não pode ser vazio.', \r
+'organization name' => 'Nome da Organização', \r
+'organization too long' => 'Organização muito grande; o nome não deve ter mais que 60 caracteres.', \r
+'original' => 'Original', \r
+'other countries' => 'Outros países', \r
+'other login script' => 'Outro script de login', \r
+'out' => 'Sair', \r
+'outgoing traffic in bytes per second' => 'Tráfego de Saída em Bytes por Segundo', \r
+'package failed to install' => 'A instalação do pacote falhou.', \r
+'pap or chap' => 'PAP ou CHAP', \r
+'password' => 'Senha:', \r
+'password contains illegal characters' => 'Senha contém caracteres inválidos.', \r
+'password not set' => 'Senha não configurada.', \r
+'password too short' => 'Senha é muito pequena.', \r
+'passwords do not match' => 'Senhas não conferem.', \r
+'passwords must be at least 6 characters in length' => 'As senhas precisam possuir no mínimo 6 caracteres.', \r
+'percentage' => 'Porcentagem', \r
+'persistent' => 'Persistente', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Grupo da Fase1', \r
+'phonebook entry' => 'Entrada da agenda telefônica:', \r
+'ping disabled' => 'Desabilita resposta ping', \r
+'pkcs12 file password' => 'Arquivo de Senha PKCS12', \r
+'port' => 'Porta', \r
+'port forwarding configuration' => 'Configuração de forwarding de porta', \r
+'ports' => 'Portas', \r
+'pots' => 'Linha Telefônica Analógica', \r
+'ppp setup' => 'Configuração de PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Configurações adicionais do PPPoE:', \r
+'pptp settings' => 'Configurações adicionais do PPTP', \r
+'pre-shared key is too short' => 'Chave pré-compartilhada é muito pequena.', \r
+'present' => 'Presente', \r
+'primary dns' => 'DNS primário:', \r
+'primary ntp server' => 'Servidor NTP primário', \r
+'primary wins server address' => 'Endereço do servidor WINS primário.', \r
+'priority' => 'Prioridade', \r
+'profile' => 'Perfil', \r
+'profile deleted' => 'Perfil apagado:', \r
+'profile has errors' => 'Perfil tem erros', \r
+'profile made current' => 'Perfil corrente:', \r
+'profile name' => 'Nome do perfil:', \r
+'profile name not given' => 'Falta nome do perfil.', \r
+'profile saved' => 'Perfil salvo:', \r
+'profiles' => 'Perfís:', \r
+'proto' => 'Proto', \r
+'protocol' => 'Protocolo', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Gráficos de acesso do proxy', \r
+'proxy log viewer' => 'Visualizador do Log do proxy', \r
+'proxy logs' => 'Logs do Proxy', \r
+'proxy port' => 'Porta do Proxy', \r
+'psk' => 'PSK', \r
+'pulse' => 'Pulso', \r
+'pulse dial' => 'Discador de Pulso:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Setores Lidos', \r
+'reboot' => 'Reinicializar', \r
+'rebooting' => 'Reinicializando', \r
+'rebooting ipcop' => 'Reinicializando IPCop', \r
+'reconnection' => 'Reconectar', \r
+'references' => 'Referências', \r
+'refresh' => 'Atualizar', \r
+'refresh index page while connected' => 'Recarregue a página index.cgi enquanto estiver conectado.', \r
+'refresh update list' => 'Atualizar lista de atualizações', \r
+'registered user rules' => 'Regras Sourcefire VRT para usuários registrados', \r
+'released' => 'Liberado', \r
+'remark' => 'Observação', \r
+'remark title' => 'Observação:', \r
+'remote access' => 'Acesso remoto', \r
+'remote host/ip' => 'Host/IP Remoto', \r
+'remote logging' => 'Registro remoto', \r
+'remote subnet' => 'Subrede remota:', \r
+'remote subnet is invalid' => 'Subrede remota é inválida.', \r
+'remove' => 'Remove', \r
+'remove ca certificate' => 'Remove Certificado CA', \r
+'reserved dst port' => 'Porta de destino é reservada para uso exclusivo do IPCop:', \r
+'reserved src port' => 'Porta de origem é reservada para uso exclusivo do IPCop:', \r
+'reset' => 'Reset', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Reiniciando a configuração da VPN removerá o CA raiz, o certificado do host e todas as conexões baseadas em certificados.', \r
+'restart' => 'Reiniciar', \r
+'restore' => 'Restaurar', \r
+'restore defaults' => 'Valores predeterminados', \r
+'restore hardware settings' => 'Restaurar configuração de Hardware', \r
+'reverse sort' => 'Ordenado em ordem cronológica inversa.', \r
+'root certificate' => 'Certificado Raiz', \r
+'root path' => 'Caminho da Raiz', \r
+'router ip' => 'Endereço IP do Router:', \r
+'routing table entries' => 'Entradas na Tabela de Roteamento:', \r
+'rsvd dst port overlap' => 'Faixa de portas destino sobrepões-se à porta reservada para o IPCop:', \r
+'rsvd src port overlap' => 'Faixa de portas origem sobrepõe-se à porta reservada para o IPCop:', \r
+'rules already up to date' => 'Regras já atualizadas', \r
+'running' => 'Ativo', \r
+'saturday' => 'Sábado', \r
+'save' => 'Salvar', \r
+'save error' => 'Impossibilitado de salvar arquivo de configuração', \r
+'script name' => 'Nome do script:', \r
+'secondary dns' => 'DNS secundário:', \r
+'secondary ntp server' => 'Servidor NTP Secundário', \r
+'secondary wins server address' => 'Endereço do Servidor WINS Secundário', \r
+'seconds' => 'Segs', \r
+'section' => 'Seção', \r
+'sectors read from disk per second' => 'Setores lidos do disco por segundo', \r
+'sectors written to disk per second' => 'Setores escritos no disco por segundo', \r
+'secure shell server' => 'Servidor de shell seguro', \r
+'select' => 'Selecione', \r
+'select dest net' => 'Selecione uma rede de destino.', \r
+'select source net' => 'Selecione uma rede de origem. Se você não tiver uma rede Laranja ou Azul, você não precisa de furos de DMZ.', \r
+'send cr' => 'O ISP requer Retorno da Portadora', \r
+'september' => 'Setembro', \r
+'serial' => 'Serial', \r
+'service' => 'Serviço', \r
+'service added' => 'Serviço de rede personalizado adicionado', \r
+'service name' => 'Nome do serviço:', \r
+'service removed' => 'Serviço de rede personalizado removido', \r
+'service updated' => 'Serviço de rede personalizado atualizado', \r
+'servicename' => 'Serviço de Nome', \r
+'services' => 'Serviços:', \r
+'services settings' => 'Firewall - Configuração de Serviços', \r
+'set time now' => 'Ajuste Tempo Agora', \r
+'set time now help' => 'Para enfileirar um evento de sincronização de tempo a qualquer momento (mesmo enquanto usando uma programação repetida), aperte o botão <i>Ajuste Tempo Agora</i>. Note, por favor, que pode demorar cinco minutos ou mais, antes que o evento de sincronismo ocorra.', \r
+'settings' => 'Configurações', \r
+'shaping add options' => 'Adicionar serviço', \r
+'shaping list options' => 'Serviços de controle de tráfego', \r
+'shared' => 'compartilhado', \r
+'shared memory' => 'Memória Compartilhada', \r
+'show ca certificate' => 'Mostra Certificado CA', \r
+'show certificate' => 'Mostra Certificado', \r
+'show host certificate' => 'Mostra Certificado Host', \r
+'show root certificate' => 'Mostra Certificado Raiz', \r
+'shutdown' => 'Desligar', \r
+'shutdown control' => 'Controle de desligar', \r
+'shutdown2' => 'Desligar:', \r
+'shutting down' => 'Desligando', \r
+'shutting down ipcop' => 'Desligando IPCop', \r
+'size' => 'Tamanho', \r
+'snort hits' => 'Número total de regras de Intrusão ativadas para', \r
+'sort ascending' => 'Classificação Ascendente', \r
+'sort descending' => 'Classificação Descendente', \r
+'sound' => 'Som', \r
+'source' => 'Origem', \r
+'source ip' => 'IP origem', \r
+'source ip and port' => 'IP Origem:Porta', \r
+'source ip bad' => 'Endereço IP ou endereço de rede inválidos.', \r
+'source ip in use' => 'IP origem em uso:', \r
+'source net' => 'Rede Origem', \r
+'source network' => 'IP ou rede de origem (vazio para "TUDO"):', \r
+'source port' => 'Porta origem', \r
+'source port in use' => 'Porta origem em uso:', \r
+'source port numbers' => 'Porta origem deve ter um número de porta válido ou de faixa válido.', \r
+'source port overlaps' => 'Faixa da portas origem sobrepõe-se a uma faixa de portas existente.', \r
+'speaker off' => 'Altofalante desligado:', \r
+'speaker on' => 'Altofalante ligado:', \r
+'src port' => 'Porta Orig', \r
+'srcprt range overlaps' => 'Faixa de portas origem se sobrepõe a uma porta já definida.', \r
+'srcprt within existing' => 'Porta origem está dentro de uma faixa de portas já definida.', \r
+'ssdmz pinholes' => 'Furos da DMZ', \r
+'ssh access' => 'Acesso SSH', \r
+'ssh fingerprint' => 'Fingerprint', \r
+'ssh host keys' => 'Chaves Host SSH', \r
+'ssh is disabled' => 'SSH está desabilitado. Parando.', \r
+'ssh is enabled' => 'SSH está habilitado. Re-iniciando.', \r
+'ssh key' => 'Chave', \r
+'ssh key size' => 'Tamanho (bits)', \r
+'ssh keys' => 'Permita autenticação baseada em chave pública', \r
+'ssh no auth' => 'Você não permitiu nenhum método de autenticação, isso irá impedir seu login.', \r
+'ssh passwords' => 'Permitir autenticação baseada em senha', \r
+'ssh portfw' => 'Permitir o Redirecionamento TCP', \r
+'ssh1 disabled' => 'SSHv1 está Desabilitado, um cliente com a versão 2 será requerido.', \r
+'ssh1 enabled' => 'Habilitar SSHv1, para suportar clientes antigo.', \r
+'ssh1 support' => 'Suporte protocolo SSH versão 1 (requerido somente para clientes antigo)', \r
+'ssnetwork status' => 'Situação da rede', \r
+'sspasswords' => 'Senhas', \r
+'ssport forwarding' => 'Forwarding de porta', \r
+'ssproxy graphs' => 'Gráficos do proxy', \r
+'sssystem status' => 'Situação do sistema', \r
+'sstraffic graphs' => 'Gráficos de tráfego', \r
+'standard login script' => 'Script de login padrão', \r
+'start address' => 'Endereço inicial', \r
+'state or province' => 'Estado ou Província', \r
+'static ip' => 'IP fixo', \r
+'status' => 'Situação', \r
+'status information' => 'Informação de situação', \r
+'stopped' => 'Parado', \r
+'subject' => 'Assunto', \r
+'subnet is invalid' => 'Másca de rede Inválida', \r
+'subscripted user rules' => 'Regras Sourcefire VRT com assinatura', \r
+'successfully refreshed updates list' => 'Lista de atualizações atualizada com sucesso.', \r
+'summaries kept' => 'Manter sumários por', \r
+'sunday' => 'Domingo', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Uso de swap por', \r
+'system cpu' => 'CPU do Sistema', \r
+'system cpu usage' => 'Uso da CPU do Sistema', \r
+'system graphs' => 'Gráfico do Sistema', \r
+'system log viewer' => 'Visualizar o Log do Sistema', \r
+'system logs' => 'Logs do Sistema', \r
+'system status information' => 'Informação de Situação do Sistema', \r
+'telephone not set' => 'Telefone não indicado.', \r
+'the following update was successfully installed' => 'A atualização seguinte foi instalada com sucesso', \r
+'the statistics were last updated at' => 'As estatísticas foram atualizadas pela última vez em', \r
+'there are updates' => 'Existem atualizações disponíveis para seu sistema. Por favor vá até a seção de "Atualizações" para mais informações.', \r
+'there are updates available' => 'Existem atualizações disponíveis para seu sistema. Recomendamos fortemente que as instale o mais rápido possível.', \r
+'there was no file upload' => 'Não houve envio de arquivo.', \r
+'this feature has been sponsored by' => 'Este recurso foi patrocinado por', \r
+'this field may be blank' => 'Este campo pode ficar vazio.', \r
+'this is not a valid archive' => 'Este não é um arquivo válido.', \r
+'this is not an authorised update' => 'Esta não é uma atualização autorizada.', \r
+'this update is already installed' => 'Esta atualização já está instalada.', \r
+'thursday' => 'Quinta-feira', \r
+'time' => 'Hora', \r
+'time date manually reset' => 'Data/Hora reconfiguradas manualmente.', \r
+'time server' => 'Servidor de Horário', \r
+'timeout must be a number' => 'Timeout deve ser um número.', \r
+'title' => 'Título', \r
+'to' => 'Para', \r
+'to install an update' => 'Para instalar uma atualização, por favor, forneça o arquivo .tgz.gpg abaixo:', \r
+'toggle enable disable' => 'Habilita ou Desabilita', \r
+'tone' => 'Tom', \r
+'tone dial' => 'Discagem por tom:', \r
+'total hits for log section' => 'Acertos Totais Por Sessão de Log', \r
+'traffic on' => 'Tráfego ativo', \r
+'traffic shaping' => 'Controle de Tráfego', \r
+'traffic shaping settings' => 'Configurações do Controle de Tráfego', \r
+'transfer limits' => 'Limites de Transferência', \r
+'transparent on' => 'Transparente Ativo', \r
+'tuesday' => 'Terça-feira', \r
+'type' => 'Tipo:', \r
+'unable to alter profiles while red is active' => 'Impossibilitado de alterar os perfis enquanto a VERMELHA estiver ativa.', \r
+'unable to contact' => 'Impossibilitado de contatar.', \r
+'unencrypted' => 'Decriptado', \r
+'unknown' => 'DESCONHECIDO', \r
+'unnamed' => 'Sem nome', \r
+'update' => 'Atualizar', \r
+'update time' => 'Atualizar a hora:', \r
+'update transcript' => 'Atualizar transcrições', \r
+'updates' => 'Atualizações', \r
+'updates installed' => 'Atualizações Instalada.', \r
+'updates is old1' => 'Seu arquivo de atualização é', \r
+'updates is old2' => 'dias sem atualização. Recomendamos que você atualize na página <b>Sistema>Atualizações</b>.', \r
+'uplink speed' => 'Velocidade do Uplink (kbit/sec)', \r
+'upload' => 'Enviar', \r
+'upload a certificate' => 'Enviar um certificado:', \r
+'upload a certificate request' => 'Enviar uma requisição de certificado:', \r
+'upload ca certificate' => 'Enviar um Certificado CA', \r
+'upload fcdsl.o' => 'Transferir fcdsl.o', \r
+'upload file' => 'Enviar arquivo', \r
+'upload p12 file' => 'Enviar um arquivo PKCS12', \r
+'upload successful' => 'Enviado com sucesso.', \r
+'upload synch.bin' => 'Carregar synch.bin', \r
+'upload update file' => 'Carregar arquivo de atualização:', \r
+'upstream password' => 'Senha de Upstream:', \r
+'upstream proxy host:port' => 'Proxy de Upstream (host:porta)', \r
+'upstream username' => 'Nome de usuário do Upstream:', \r
+'uptime and users' => 'Tempo ativo e usuários:', \r
+'usb modem on acm0' => 'Modem USB em ACM0', \r
+'usb modem on acm1' => 'Modem USB em ACM1', \r
+'usb modem on acm2' => 'Modem USB em ACM2', \r
+'usb modem on acm3' => 'Modem USB em ACM3', \r
+'use' => 'Uso', \r
+'use a pre-shared key' => 'Use uma Chave Pré-compartilhada:', \r
+'use dov' => 'Usar DOV (Dados Sobre Voz)', \r
+'use ibod' => 'Usar largura de banda por Requisito (iBOD)', \r
+'use ipcop red ip' => 'O IP Vermelho clássico usado pelo IPCop durante a conexão.', \r
+'use only proposed settings' => 'Utilizar apenas configurações propostas.', \r
+'used' => 'Usado', \r
+'used memory' => 'Memória Usada', \r
+'used swap' => 'Swap Usado', \r
+'user cpu' => 'Uso da CPU', \r
+'user cpu usage' => 'Utilização da CPU pelo usuário.', \r
+'username' => 'Nome do usuário:', \r
+'username not set' => 'Nome do usuário não indicado.', \r
+'users department' => 'Departamento do usuário', \r
+'users email' => 'Endereço de Email do usuário', \r
+'users fullname or system hostname' => 'Nome Completo do Usuário ou Hostname do Sistema', \r
+'valid root certificate already exists' => 'Um certificado raiz válido já existe.', \r
+'vci number' => 'Número VCI:', \r
+'virtual private networking' => 'Rede Virtual Privativa (VPN)', \r
+'vpi number' => 'Número VPI:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'Confiuração da VPN - Principal', \r
+'vpn on blue' => 'VPN Ativa em AZUL', \r
+'waiting to synchronize clock' => 'Aguardando a sincronização do relógio', \r
+'warning messages' => 'Mensagens de Advertência', \r
+'web hits' => 'Quantidade de Sites coincidentes com o critério selecionado', \r
+'web proxy' => 'Proxy Web', \r
+'web proxy configuration' => 'Configuração do Proxy Web', \r
+'web server' => 'Servidor Web', \r
+'website' => 'Website', \r
+'wednesday' => 'Quarta-feira', \r
+'week' => 'Semana', \r
+'weeks' => 'semanas', \r
+'wildcards' => 'Wildcards', \r
+'wireless' => 'Wireless', \r
+'wireless config added' => 'Configuração wireless adicionada', \r
+'wireless config changed' => 'Configuração wireless modificada', \r
+'wireless configuration' => 'Configuração de Wireless', \r
+'written sectors' => 'Setores Escritos', \r
+'xtaccess all error' => 'Você não pode definir um acesso externo para TODOS, isto é feito no registro de redirecionamento de portas.', \r
+'year' => 'Ano', \r
+'yes' => 'Sim', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Você pode definir apenas uma conexão Roadwarrior quando estiver usando chaves de autenticação pré-compartilhadas.<br/>Ou você já tem uma conexãoone Roadwarrior com chave de autenticação pré-compartilhada ou você está tentando adicionar uma agora.', \r
+'your department' => 'Seu Departamento', \r
+'your e-mail' => 'Seu E-Mail', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/bz/install/CVS/Entries b/langs/bz/install/CVS/Entries
new file mode 100644 (file)
index 0000000..7a67e34
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_bz.c/1.9.2.9/Mon Dec 12 09:23:22 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/bz/install/CVS/Repository b/langs/bz/install/CVS/Repository
new file mode 100644 (file)
index 0000000..b944f6b
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/bz/install
diff --git a/langs/bz/install/CVS/Root b/langs/bz/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/bz/install/CVS/Tag b/langs/bz/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/bz/install/lang_bz.c b/langs/bz/install/lang_bz.c
new file mode 100644 (file)
index 0000000..ca94f6f
--- /dev/null
@@ -0,0 +1,508 @@
+/*\r
+ * Brazilian Portuguese (bz) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Edson - Empresa, Claudio C. Porto, Adilson Oliveira, Mauricio Andrade,\r
+ * Wladimir Nunes \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *bz_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Configurações de endereço",\r
+/* TR_ADMIN_PASSWORD */\r
+"Senha de administrador",\r
+/* TR_AGAIN_PROMPT */\r
+"Novamente:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Todas as placas alocadas com sucesso.",\r
+/* TR_AUTODETECT */\r
+"* AUTO-DETECÇÃO *",\r
+/* TR_BUILDING_INITRD */\r
+"Construindo INITRD...",\r
+/* TR_CANCEL */\r
+"Cancela",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Atribuição da placa",\r
+/* TR_CHECKING */\r
+"Verificando URL...",\r
+/* TR_CHECKING_FOR */\r
+"Procurando por: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Escolha a placa ISDN instalada neste computador.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Escolha o protocolo ISDN requerido.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Configure o servidor DHCP entrando com as informações.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Configure a rede",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Você agora deve configurar a rede primeiro carregando o driver correto para a interface VERDE. Você pode fazer isso por teste automático da placa de rede ou escolhendo o driver correto da lista. Note que se houver mais de uma placa de rede instalada você estará habilitado a configurar as outras após a conclusão da instalação. Note também que se você tiver mais do que uma placa de rede do mesmo tipo da definida como VERDE e cada placa precisar de parâmetros especiais do módulo, você deve entrar com estes parâmetros para todas as placas desse tipo de modo que todas ativem-se quando você configurar a interface VERDE.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Configure os drivers de rede e a qual interface cada placa pertence. A configuração atual é a seguinte:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Configure o CD-ROM escolhendo o endereço de I/O e/ou o IRQ apropriados.",\r
+/* TR_CONGRATULATIONS */\r
+"Parabéns!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s foi instalado com sucesso. Por favor remova qualquer disquete ou CD-ROM do computador. Se o sistema falhar ao iniciar, por favor, tente iniciar de um disquete DOS e execute 'FDISK /MBR' para re-criar o Master Boot Record. O programa de configuração será executado agora e permitirá configurar o ISDN, placas de rede e senhas do sistema. Depois da configuração concluída você poderá apontar seu web browser para http://%s:81 ou https://%s:445 (ou como tiver nomeado seu %s) e configurar o discador (se necessário) e acesso remoto. Lembre-se de configurar a senha para o usuário 'discador' no %s se você quiser que usuários não administradores do %s possam controlar o link.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Seu disco rígido é muito pequeno mas você pode continuar sem qualquer área de troca (swap). Use com cuidado.",\r
+/* TR_CURRENT_CONFIG */\r
+"Configuração atual: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Gateway Padrão:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Gateway Padrão\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Lease padrão (mins):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Tempo de lease padrão\n",\r
+/* TR_DETECTED */\r
+"Detectado um: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Hostname DHCP:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Hostname DHCP\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Configuração do servidor DHCP",\r
+/* TR_DISABLED */\r
+"Desativado",\r
+/* TR_DISABLE_ISDN */\r
+"Desabilita ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"Seu disco rígido é muito pequeno.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Configurações de DNS e Gateway",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Forneça as informações de DNS e gateway. Estas configurações apenas serão usadas com IP Estático (e DHCP se o DNS estiver configurado) na interface VERMELHA.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Sua configuração não utiliza um adaptador ethernet como interface VERMELHA. As informações de DNS e Gateway para usuários de conexão discada são realizadas automaticamente após a discagem.",\r
+/* TR_DOMAINNAME */\r
+"Nome de Domínio",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Nome do Domínio não pode ser vazio.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Nome de Domínio não pode ter espaços.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"O nome de Domínio só pode conter letras, números, hífens e períodos.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Sufixo do domínio:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Sufixo do domínio\n",\r
+/* TR_DONE */\r
+"Pronto",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nVocê quer mudar estes parâmetros?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Atribuições de drivers e placas",\r
+/* TR_ENABLED */\r
+"Habilitado",\r
+/* TR_ENABLE_ISDN */\r
+"Habilita ISDN",\r
+/* TR_END_ADDRESS */\r
+"Endereço final:",\r
+/* TR_END_ADDRESS_CR */\r
+"Endereço final\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Alguns cartões ISDN (especialmente os ISA) podem requerer parâmetros adicionais do módulo para configurações de IRQ e endereços de I/O. Se você tiver uma placa ISDN, informe estes parâmetros extras aqui. Por exemplo: \"io=0x280 irq=9\". Eles serão usados durante a detecção da placa.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Entre com a senha admin do %s. Este é o usuário para entrar nas páginas web de administração do %s.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Entre com o Nome de Domínio",\r
+/* TR_ENTER_HOSTNAME */\r
+"Entre com o hostname desta máquina.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Entre com a informação do endereço IP",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"A detecção automática da placa de rede falhou. Entre com o driver e parâmetros opcionais usados para esta placa de rede.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Entre com a senha do usuário 'root'. Autentique-se com este usuário para acesso via linha de comandos.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Entre com a senha do usuário 'setup'. Este é o usuário que deve ser usado para acessar o programa setup.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Entre com a informação do endereço IP para a interface %s.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Entre com o número de telefone local (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Entre a URL para os arquivos ipcop-<versão>.tgz images/scsidrv-<versão>.img. ATENÇÃO: DNS não disponível. A URL deve ser http://X.X.X.X/<diretório>",\r
+/* TR_ERROR */\r
+"Erro",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Erro gravando a configuração.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Extraindo módulos...",\r
+/* TR_FAILED_TO_FIND */\r
+"Falha ao buscar arquivo na URL.",\r
+/* TR_FOUND_NIC */\r
+"%s detectou o seguinte NIC em sua máquina: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"1TR6 Alemão",\r
+/* TR_HELPLINE */\r
+"             <Tab>/<Alt-Tab> entre elementos  |  <Espaço> seleciona",\r
+/* TR_HOSTNAME */\r
+"Hostname",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Nome do host não pode ficar vazio.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Nome do host não pode conter espaços.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"O hostname só pode conter letras, números e hífens.",\r
+/* TR_INITIALISING_ISDN */\r
+"Inicializando ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Por favor insira o CD %s no drive de CD-ROM",\r
+/* TR_INSERT_FLOPPY */\r
+"Por favor, insira o disquete com o driver %s.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Instalação cancelada.",\r
+/* TR_INSTALLING_FILES */\r
+"Instalando arquivos...",\r
+/* TR_INSTALLING_GRUB */\r
+"Instalando GRUB...",\r
+/* TR_INTERFACE */\r
+"Interface %s",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Falha ao iniciar a interface.",\r
+/* TR_INVALID_FIELDS */\r
+"Os seguintes campos são inválidos:\n\n",\r
+/* TR_INVALID_IO */\r
+"A porta de I/O fornecida é inválida.",\r
+/* TR_INVALID_IRQ */\r
+"O IRQ fornecido é inválido.",\r
+/* TR_IP_ADDRESS_CR */\r
+"Endereço de IP\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"Endereço de IP:",\r
+/* TR_ISDN_CARD */\r
+"Placa ISDN",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"Placa ISDN não detectada. Você pode precisar especificar parâmetros adicionais se a placa for do tipo ISA ou tiver requerimentos especiais.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Seleção de placa ISDN.",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Configuração do ISDN.",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Menu de configuração do ISDN.",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN não configurada. Parece que alguns parâmetros não foram selecionados.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN não configurada ainda. Selecione o ítem que deseja configurar.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Seleção de protocolo ISDN.",\r
+/* TR_ISDN_STATUS */\r
+"ISDN atual é %s.\n\n Protocolo: %s\n Placa: %s\n Telefone local: %s\n\n Selecione o item que deseja configurar ou escolha usar os valores correntes.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Mapeamento de teclado",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Escolha o tipo de teclado que você esta usando da lista abaixo.",\r
+/* TR_LEASED_LINE */\r
+"Linha leased",\r
+/* TR_LOADING_MODULE */\r
+"Carregando módulo...",\r
+/* TR_LOADING_PCMCIA */\r
+"Carregando módulos PCMCIA...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Procurando por: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Criando sistema de arquivos de boot...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Criando sistema de arquivos de registro...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Criando sistema de arquivos raiz...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Criando espaço de troca...",\r
+/* TR_MANUAL */\r
+"* MANUAL *",\r
+/* TR_MAX_LEASE */\r
+"Lease max. (mins):",\r
+/* TR_MAX_LEASE_CR */\r
+"Tempo max. de lease\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Faltando informações de IP na interface BLUE.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Faltando informações de IP na interface LARANJA.",\r
+/* TR_MISSING_RED_IP */\r
+"Falta informação IP da interface VERMELHA.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Nome do módulo não pode estar vazio.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Entre o nome do módulo e os parâmetros para o driver que você quer usar.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Montando o sistema de arquivos boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Montando o sistema de arquivos log...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Montando o sistema de arquivos raiz...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Montando partição de troca...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Número de telefone local (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Máscara de rede:",\r
+/* TR_NETWORKING */\r
+"Rede",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Endereço de rede\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Endereço de rede:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Menu de configuração de rede",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Tipo de configuração de rede",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Selecione a configuração de rede para %s. Os tipos de configuração seguintes listam quais interfaces tem ethernet conectada. Se você mudar esta configuração, uma reinicialização da rede será necessária e você terá que reconfigurar os drivers de rede alocados.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Máscara de rede\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Configuração de rede falhou.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Não foram alocados cartões suficientes.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Interface BLUE não foi atribuida.",\r
+/* TR_NO_CDROM */\r
+"CD-ROM não encontrado.",\r
+/* TR_NO_HARDDISK */\r
+"Disco Rígido não encontrado.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Ipcop tarball não foi encontrado no Servidor Web.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Nenhuma interface LARANJA atribuida.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Nenhuma interface VERMELHA atribuida.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Nenhuma imagem SCSI foi encontrada no Web Server.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Nenhuma placa disponível foi encontrado mas são necessárias. Você pode escolher usar a auto-detecção para procurar por mais placas ou escolher um driver da lista.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Particionando disco...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Senhas não conferem.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"A senha não pode estar em branco.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"A senha não pode conter espaços.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Senha:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Número do telefone não pode ser vazio.",\r
+/* TR_PREPARE_HARDDISK */\r
+"O programa de instalação preparará agora o harddisk em %s. Primeiramente o disco será particionado e então as partições terão um sistema de arquivos posto nas mesmas.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Pressione OK para reiniciar.",\r
+/* TR_PRIMARY_DNS */\r
+"DNS Primário:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"DNS primário\n",\r
+/* TR_PROBE */\r
+"Teste",\r
+/* TR_PROBE_FAILED */\r
+"Auto detecção falhou.",\r
+/* TR_PROBING_SCSI */\r
+"Conferindo dispositivos SCSI...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Problema configurando a senha admin do %s.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Problema configurando a senha 'root'.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Problema configurando a senha 'setup' do %s.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protocolo/País",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Levantando a rede...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Derrubando a rede...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Derrubando a rede não local...",\r
+/* TR_QUIT */\r
+"Sair",\r
+/* TR_RED_IN_USE */\r
+"A ISDN (ou outra conexão externa) em uso. Não se pode configurar a ISDN enquanto a interface VERMELHA estiver ativa.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nQuando a configuração estiver completa, uma reinicialização da rede será requerida.",\r
+/* TR_RESTORE */\r
+"Restaurar",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Se você tiver um disquete com a configuração do sistema %s, coloque-o no drive e acione o botão Restaurar.",\r
+/* TR_ROOT_PASSWORD */\r
+"senha de root",\r
+/* TR_SECONDARY_DNS */\r
+"DNS secundário:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"DNS secundário\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"DNS secundário especificado sem um DNS primário",\r
+/* TR_SECTION_MENU */\r
+"Menu de seleção",\r
+/* TR_SELECT */\r
+"Selecionar",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Selecione o tipo do CD-ROM",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Nenhum CD-ROM foi detectado nesta máquina. Por favor, selecione qual dos seguintes drivers você quer usar para que %s possa acessar o CD-ROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Selecione a mídia de instalação",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s pode ser instalado de multiplas fontes. A mais simples é usar o CD-ROM da máquina. Se o computador não tiver um, você pode instalar via outra máquina na rede que tenha os arquivos de instalação disponíveis via HTTP. Neste caso um disquete com os drivers de rede serão necessários.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Selecione o controlador de rede",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Selecione o driver para a placa de rede que está instalada nesta máquina. Se você selecionar MANUAL, lhe será dada a oportunidade de entrar com o nome do módulo e parâmetros para drivers que tiverem necessidades especiais como placas ISA.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Selecione a interface que deseja reconfigurar.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Selecione o ítem que deseja configurar.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Definindo a senha do administrador do %s...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Definindo a senha do 'root'...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Definindo a senha do 'setup'...",\r
+/* TR_SETUP_FINISHED */\r
+"Configuração concluída. Pressione OK para reinicializar.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"A configuração inicial não foi inteiramente concluída. Você deve assegurar que a configuração foi finalizada apropriadamente executando a configuração novamente no shell.",\r
+/* TR_SETUP_PASSWORD */\r
+"Senha do 'setup'",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Configure os parâmetros adicionais do módulo",\r
+/* TR_SINGLE_GREEN */\r
+"Sua configuração está definida para uma interface VERDE apenas.",\r
+/* TR_SKIP */\r
+"Pule",\r
+/* TR_START_ADDRESS */\r
+"Endereço inicial:",\r
+/* TR_START_ADDRESS_CR */\r
+"Endereço inicial\n",\r
+/* TR_STATIC */\r
+"Estático",\r
+/* TR_SUGGEST_IO */\r
+"(sugestão %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(sugestão %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Este módulo já está carregado.",\r
+/* TR_TIMEZONE */\r
+"Fuso horário",\r
+/* TR_TIMEZONE_LONG */\r
+"Escolha o fuso horário em que você se encontra da lista abaixo.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Impossibilitado de ejetar o CD-ROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Impossibilitado de extrair os módulos.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Não foi possível encontrar quaisquer drivers adicionais.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Não foi possível encontrar uma placa ISDN. Pode ser necessário especificar parâmetros adicionais para o módulo se a placa for do tipo ISA ou tiver requerimentos especiais.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Impossibilitado de inicializar o ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Impossibilitado de instalar arquivos.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Impossibilitado de instalar o GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Impossibilitado de carregar o módulo do driver.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Impossibilitado de criar arquivos de boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Impossibilitado de criar o arquivo de log do sistema.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Impossibilitado de criar o arquivo do sistema raiz.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Impossibilitado de criar o espaço de troca (swap).",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Impossibilitado de criar a ligação simbólica /dev/harddisk",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Impossibilitado de criar a ligação simbólica /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Impossibilitado de criar a ligação simbólica /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Impossibilitado de criar a ligação simbólica /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Impossibilitado de criar a ligação simbólica /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Impossibilitado de criar a ligação simbólica /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Impossibilitado de montar o sistema de arquivos boot.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Impossibilitado de montar o sistema de arquivos de registro.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Impossibilitado montar o sistema de arquivos proc.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Impossibilitado montar o sistema de arquivos raiz.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Impossibilitado de montar a partição de troca (swap).",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Impossibilitado de abrir o arquivo principal de hosts.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Impossibilitado de abrir o arquivo de configuração.",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Impossibilitado de particionar o disco.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Impossibilitado de remover os arquivos temporários.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Impossibilitado de configurar o nome do host.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Impossibilitado de desmontar o CD-ROM/disquete.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Impossibilitado de desmontar o disco rígido.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Impossibilitado de gravar /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Impossibilitado de gravar /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Impossibilitado de gravar /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Impossibilitado de gravar /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Impossibilitado de gravar /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Impossibilitado de gravar %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Impossibilitado de gravar %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Impossibilitado de gravar %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Existe uma placa ethernet não reclamada:\n%s\n\nVocê pode associa-la a:",\r
+/* TR_UNKNOWN */\r
+"DESCONHECIDO",\r
+/* TR_UNSET */\r
+"UNSET",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"ATENÇÃO",\r
+/* TR_WARNING_LONG */\r
+"Se você mudar este endereço IP e estiver conectado remotamente, sua conexão à máquina %s será interrompida e você terá que se reconectar no novo IP. Esta é uma operação arriscada e deve ser tentada apenas se você tiver acesso físico à maquina para o caso de algo sair errado.",\r
+/* TR_WELCOME */\r
+"Bem-vindo ao programa de instalação do %s. Ao selecionar Cancelar em qualquer das próximas telas o computador será reinicializado.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"A sua configuração definida como uma simples interface VERDE, que já possui um driver atribuído.",\r
+}; \r
+  \r
diff --git a/langs/cs/CVS/Entries b/langs/cs/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/cs/CVS/Repository b/langs/cs/CVS/Repository
new file mode 100644 (file)
index 0000000..8e783c9
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/cs
diff --git a/langs/cs/CVS/Root b/langs/cs/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/cs/CVS/Tag b/langs/cs/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/cs/cgi-bin/CVS/Entries b/langs/cs/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..6c4b969
--- /dev/null
@@ -0,0 +1,2 @@
+/cs.pl/1.8.2.24/Tue Jul  5 20:39:17 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/cs/cgi-bin/CVS/Repository b/langs/cs/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..e7ed51f
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/cs/cgi-bin
diff --git a/langs/cs/cgi-bin/CVS/Root b/langs/cs/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/cs/cgi-bin/CVS/Tag b/langs/cs/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/cs/cgi-bin/cs.pl b/langs/cs/cgi-bin/cs.pl
new file mode 100644 (file)
index 0000000..07f229d
--- /dev/null
@@ -0,0 +1,863 @@
+# Czech  (cs) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 petr, Peter Dvoracek, Jakub Moc \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Certifikát CA s tímto názvem již existuje.', \r
+'a connection with this common name already exists' => 'Připojení s tímto obecným názvem již existuje.', \r
+'a connection with this name already exists' => 'Připojení s tímto názvem již existuje.', \r
+'access allowed' => 'Přístup povolen z:', \r
+'action' => 'Akce', \r
+'add' => 'Přidat', \r
+'add a host' => 'Přidat počítač:', \r
+'add a new rule' => 'Přidat nové pravidlo:', \r
+'add network' => 'Přidat síť', \r
+'add new alias' => 'Přidat nový alias:', \r
+'add new lease' => 'Přidat trvalé zapůjčení', \r
+'add service' => 'Přidat službu', \r
+'add xtaccess' => 'Přidat externí přístup', \r
+'admin user password has been changed' => 'Heslo uživatele Admin bylo změněno', \r
+'administrator user password' => 'Heslo uživatele Admin:', \r
+'adsl settings' => 'Nastavení ADSL', \r
+'advanced' => 'Pokročilé', \r
+'again' => 'Znovu:', \r
+'alcatelusb help' => 'K využití modemu Speedtouch USB je nutné nahrát firmware na počítač, kde běží IPCop. Stáhněte prosím balíček <b>Embedded Firmware</b> z webu speedtouch.com, rozbalte a poté nahrajte příslušný soubor pro svůj modem pomocí následujícího formuláře. KQD6_3.xxx pro Rev<4 nebo ZZZL_3.xxx pro Rev=4.', \r
+'alcatelusb upload' => 'Přenést firmware pro Speedtouch USB ', \r
+'alias ip' => 'IP aliasu', \r
+'aliases' => 'Aliasy', \r
+'aliases not active' => 'Aliasy nebudou aktivní, pokud adresa IP rozhraní RED nebude STATICKÁ', \r
+'all updates installed' => 'Všechny aktualizace byly nainstalovány', \r
+'alt dialup' => 'Vytáčení', \r
+'alt home' => 'Domů', \r
+'alt information' => 'Informace', \r
+'alt logs' => 'Záznamy', \r
+'alt services' => 'Služby', \r
+'alt system' => 'Systém', \r
+'alt vpn' => 'VPN', \r
+'ansi t1.483' => 'ANSI T1.493', \r
+'april' => 'duben', \r
+'archive not exist' => 'Archiv nastavení neexistuje', \r
+'are you sure' => 'Jste si jisti?', \r
+'arp table entries' => 'Položky tabulky ARP', \r
+'august' => 'srpen', \r
+'authentication' => 'Ověření:', \r
+'automatic' => 'Automaticky', \r
+'available updates' => 'Dostupné aktualizace:', \r
+'average' => 'Průměrný', \r
+'back' => 'ZPĚT', \r
+'backup' => 'Zálohovat', \r
+'backup config floppy' => 'Zálohovat nastavení - disketa', \r
+'backup configuration' => 'Zálohovat nastavení:', \r
+'backup sets' => 'Sady záloh', \r
+'backup to floppy' => 'Zálohovat na disketu', \r
+'backupprofile' => 'V případě selhání opětovného připojení přepnout na profil', \r
+'bad characters in script field' => 'Nesprávné znaky v poli skript', \r
+'bad characters in the telephone number field' => 'Nesprávné znaky v poli telefonní číslo', \r
+'bad destination range' => 'Rozsah cílových portů má první hodnotu větší nebo rovnu druhé. ', \r
+'bad ignore filter' => 'Filtr je chybný:', \r
+'bad return code' => 'Pomocný program vrátil chybový kód', \r
+'bad source range' => 'Rozsah zdrojových portů má první hodnotu větší nebo rovnu druhé.', \r
+'beep when ppp connects or disconnects' => 'Pípnout při připojení nebo odpojení', \r
+'behind a proxy' => 'Za proxy serverem:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'BLUE', \r
+'blue access' => 'Přístup k BLUE', \r
+'blue interface' => 'BLUE rozhraní', \r
+'broadcast' => 'Všesměrové vysílání (broadcast)', \r
+'broken pipe' => 'Přerušená roura', \r
+'buffered memory' => 'Buffered paměť', \r
+'buffers' => 'buffery', \r
+'bytes per second' => 'Bajty za sekundu', \r
+'ca certificate' => 'Certifikát CA', \r
+'ca name' => 'Název CA', \r
+'cache management' => 'Správa cache', \r
+'cache size' => 'Velikost cache (MB):', \r
+'cached' => 'v cache', \r
+'cached memory' => 'Cached paměť', \r
+'cancel' => 'Zrušit', \r
+'cannot enable both nat traversal and compression' => 'Nelze současně povolit NAT Traversal i kompresi.', \r
+'cannot enable ntp without specifying primary' => 'Nelze povolit NTP bez zadání primárního serveru.', \r
+'cannot specify secondary dns without specifying primary' => 'Nelze zadat sekundární DNS bez zadání primárního DNS.', \r
+'cannot specify secondary ntp without specifying primary' => 'Nelze zadat sekundární NTP server bez zadání primárního NTP serveru', \r
+'cannot specify secondary wins without specifying primary' => 'Nelze zadat sekundární WINS server bez zadání primárního.', \r
+'cant change certificates' => 'Nelze změnit certifikáty.', \r
+'cant enable xtaccess' => 'Přidružené pravidlo pro mapování portů je zakázáno, proto nelze pro toto pravidlo povolit externí přístup.', \r
+'cant start openssl' => 'Nelze spustit OpenSSL.', \r
+'caps all' => 'VŠE', \r
+'capsclosed' => 'ZAVŘENÝ', \r
+'capsopen' => 'OTEVŘENÝ', \r
+'capswarning' => 'POZOR', \r
+'cert' => 'Certifikát', \r
+'certificate' => 'Certifikát', \r
+'certificate authorities' => 'Certifikační autority', \r
+'certificate does not have a valid ca associated with it' => 'K certifikátu není přiřazena platná CA.', \r
+'certificate file move failed' => 'Přesun souboru certifikátu se nezdařil', \r
+'cfg restart' => 'Po obnovení konfigurace z archivu je doporučeno restartovat počítač.', \r
+'chain' => 'Řetězec', \r
+'change passwords' => 'Změna hesel', \r
+'check vpn lr' => 'Zkontrolovat', \r
+'city' => 'Město', \r
+'clear cache' => 'Vymazat cache', \r
+'clenabled' => 'Poskytovat čas pro místní síť', \r
+'click to disable' => 'Povolen (klikněte pro zakázání)', \r
+'click to enable' => 'Zakázán (klikněte pro povolení)', \r
+'clock has not been synchronized' => 'Čas nebyl synchronizován', \r
+'clock last synchronized at' => 'Čas byl naposledy synchronizován v', \r
+'common name' => 'Obecný název (Common Name)', \r
+'compression' => 'Komprese:', \r
+'computer to modem rate' => 'Rychlost počítač-modem:', \r
+'concentrator name' => 'Název koncentrátoru', \r
+'confirmation' => 'potvrzení', \r
+'connect on ipcop restart' => 'Obnovit připojení po restartu IPCop:', \r
+'connect the modem' => 'Připojit modem', \r
+'connect timeout' => 'Časová prodleva připojení:', \r
+'connected' => 'Připojeno', \r
+'connecting' => 'Připojuje se...', \r
+'connection' => 'Připojení', \r
+'connection debugging' => 'Ladění připojení', \r
+'connection status and controlc' => 'Stav a ovládání připojení:', \r
+'connection tracking' => 'IPTables - sledování připojení', \r
+'connection type' => 'Druh připojení', \r
+'connection type is invalid' => 'Druh připojení je neplatný.', \r
+'connections' => 'Připojení', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'K této CA jsou přiřazena připojení. Při odstranění CA budou odstraněna rovněž tato připojení.', \r
+'could not be opened' => 'nelze otevřít', \r
+'could not connect to' => 'Nelze se připojit k ', \r
+'could not connect to www ipcop org' => 'Nelze se připojit k www.ipcop.org', \r
+'could not create directory' => 'Nelze vytvořit adresář.', \r
+'could not download latest patch list' => 'Nelze stáhnout nejnovější seznam oprav (nepřipojeno)', \r
+'could not download latest updates' => 'Nelze stáhnout nejnovější aktualizace.', \r
+'could not download the available updates list' => 'Nelze stáhnout seznam aktualizací.', \r
+'could not open available updates file' => 'Nelze otevřít soubor dostupných aktualizací.', \r
+'could not open installed updates file' => 'Nelze otevřít soubor nainstalovaných aktualizací', \r
+'could not open update information file' => 'Nelze otevřít soubor aktualizace. Soubor je poškozený.', \r
+'could not retrieve common name from certificate' => 'Vyhledání obecného názvu v certifikátu se nezdařilo.', \r
+'country' => 'Země', \r
+'cpu usage per' => 'Využití CPU za', \r
+'create' => 'Vytvořit', \r
+'credits' => 'Poděkování', \r
+'cron server' => 'Server CRON', \r
+'current' => 'Aktuální', \r
+'current aliases' => 'Stávající aliasy:', \r
+'current dynamic leases' => 'Aktuální dynamická zapůjčení', \r
+'current fixed leases' => 'Aktuální trvalá zapůjčení', \r
+'current hosts' => 'Stávající hostitelské počítače:', \r
+'current profile' => 'Aktuální profil:', \r
+'current rules' => 'Stávající pravidla', \r
+'custom networks' => 'Uživatelské sítě', \r
+'custom services' => 'Uživatelské služby', \r
+'dat without key' => 'Šifrovaný archiv není možno obnovit bez klíče.', \r
+'date' => 'Datum', \r
+'date not in logs' => 'Pro dotazovaný den není záznam, nebo je pouze částečný', \r
+'day' => 'Den', \r
+'day after' => 'Den poté', \r
+'day before' => 'Den předtím', \r
+'days' => 'dny', \r
+'ddns hostname added' => 'Byl přidán název počítače dynamického DNS', \r
+'ddns hostname removed' => 'Název počítače dynamického DNS byl odebrán', \r
+'december' => 'prosinec', \r
+'def lease time' => 'Implicitní čas zapůjčení', \r
+'default lease time' => 'Implicitní čas zapůjčení (min):', \r
+'default networks' => 'Implicitní sítě', \r
+'default renewal time' => 'Implicitní čas obnovení', \r
+'default services' => 'Implicitní služby', \r
+'delete' => 'Odstranit', \r
+'demon login script' => 'Demon přihlašovací skript', \r
+'description' => 'Popis', \r
+'dest ip and port' => 'Cíl. IP:Port:', \r
+'destination' => 'Cílový', \r
+'destination ip' => 'Cílová IP', \r
+'destination ip bad' => 'Neplatná cílová IP', \r
+'destination net' => 'Cílová síť', \r
+'destination port' => 'Cílový port', \r
+'destination port numbers' => 'Cílový port musí být platný port nebo rozsah portů.', \r
+'destination port overlaps' => 'Cílový port se překrývá s již existujícím rozsahem portů.', \r
+'detail level' => 'Úroveň podrobností', \r
+'device' => 'zařízení', \r
+'dhcp configuration' => 'Nastavení DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'Server DHCP', \r
+'dhcp server disabled' => 'Server DHCP je zakázán. Zastaven.', \r
+'dhcp server disabled on blue interface' => 'Server DHCP na rozhraní BLUE je zakázán', \r
+'dhcp server enabled' => 'Server DHCP je povolen. Restartuje se.', \r
+'dhcp server enabled on blue interface' => 'Server DHCP na rozhraní BLUE je povolen', \r
+'dial' => 'Připojit', \r
+'dial user password' => 'Heslo uživatele pro vytáčení:', \r
+'dial user password has been changed' => 'Heslo uživatele pro vytáčení bylo změněno.', \r
+'dialing mode' => 'Způsob vytáčení:', \r
+'dialup settings' => 'Nastavení vytáčení', \r
+'disk access per' => 'Přístupy na disk za', \r
+'disk usage' => 'Využití disku:', \r
+'display hostname in window title' => 'Zobrazit název počítače v názvu okna', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Nastavení DMZ pinhole', \r
+'dmz pinhole rule added' => 'Pravidlo DMZ pinhole přidáno; restartuji DMZ pinhole', \r
+'dmz pinhole rule removed' => 'Pravidlo DMZ pinhole odebráno; restartuji DMZ pinhole', \r
+'dmzpinholes for same net not necessary' => 'DMZ pinholes není třeba nastavovat pro stejnou síť. Vyberte jinou zdrojovou nebo cílovou síť.', \r
+'dns check failed' => 'Ověření DNS selhalo', \r
+'dns proxy server' => 'Server proxy pro DNS', \r
+'dod' => 'Vytáčet na vyžádání', \r
+'dod for dns' => 'Vytáčet na vyžádání pro DNS:', \r
+'dod waiting' => 'Čekání při vytáčení na vyžádání', \r
+'domain' => 'Doména', \r
+'domain name' => 'Název domény', \r
+'domain name suffix' => 'Přípona názvu domény', \r
+'domain not set' => 'Doména není nastavena.', \r
+'downlink speed' => 'Rychlost downlinku (kbit/s)', \r
+'download ca certificate' => 'Stáhnout certifikát CA', \r
+'download certificate' => 'Stáhnout certifikát', \r
+'download host certificate' => 'Stáhnout certifikát hostitele', \r
+'download new ruleset' => 'Stáhnout novou sadu pravidel', \r
+'download pkcs12 file' => 'Stáhnout soubor PKCS12', \r
+'download root certificate' => 'Stáhnout kořenový certifikát', \r
+'driver' => 'Ovladač', \r
+'dst port' => 'Cíl. Port', \r
+'dstprt range overlaps' => 'Cílový rozsah portů se překrývá s již definovaným portem.', \r
+'dstprt within existing' => 'Cílový port je uvnitř již definovaného rozsahu portů.', \r
+'duplicate ip' => 'Zadána duplicitní adresa IP', \r
+'duplicate mac' => 'Zadána duplicitní adresa MAC', \r
+'duplicate name' => 'Tento název se již používá, zvolte jiný.', \r
+'dynamic dns' => 'Dynamické DNS', \r
+'dynamic dns client' => 'Klient dynamického DNS', \r
+'e-mail address too long' => 'E-mailová adresa je příliš dlouhá; délka by neměla přesáhnout 40 znaků.', \r
+'eciadsl help' => 'Pro použití ECI ADSL modemu musíte nahrát soubor synch.bin. Prosím stáhněte jej ze stránek ECIADSL a nahrajte soubor <strong>synch.bin</strong> pomocí následujícího formuláře.', \r
+'eciadsl upload' => 'Nahrát ECI ADSL Synch.bin soubor', \r
+'edit' => 'Upravit', \r
+'edit a rule' => 'Upravit existující pravidlo:', \r
+'edit advanced settings when done' => 'Po dokončení upravit pokročilá nastavení.', \r
+'edit an existing alias' => 'Upravit existující alias', \r
+'edit an existing host' => 'Upravit existujícího hostitele', \r
+'edit an existing lease' => 'Upravit stávající zapůjčení', \r
+'edit hosts' => 'Upravit hostitelské počítače', \r
+'edit network' => 'Upravit síť', \r
+'edit service' => 'Upravit službu', \r
+'empty' => 'Prázdný', \r
+'enable ignore filter' => 'Povolit filtr', \r
+'enable javascript' => 'Povolit Javascript', \r
+'enable wildcards' => 'Povolit zástupné znaky:', \r
+'enabled' => 'Povolen:', \r
+'enabled on' => 'Povoleno na', \r
+'enabledtitle' => 'Povolen', \r
+'encapsulation' => 'Zapouzdření', \r
+'encrypted' => 'Šifrovaný', \r
+'end address' => 'Koncová adresa:', \r
+'err bk 1' => 'Chyba při vytváření archívu', \r
+'err bk 2 key' => 'Chyba při vytváření souboru klíče', \r
+'err bk 3 tar' => 'Chyba při přidávání souborů do archívu', \r
+'err bk 4 gz' => 'Chyba při kompresi archívu', \r
+'err bk 5 encrypt' => 'Chyba při šifrování archívu', \r
+'err rs 1' => 'Chyba při obnovení archívu', \r
+'err rs 6 decrypt' => 'Chyba při dešifrování archívu', \r
+'err rs 7 untartst' => 'Neplatný dešifrovaný archív', \r
+'err rs 8 untar' => 'Chyba při dekompresi archívu', \r
+'error messages' => 'Chybové zprávy:', \r
+'esp encryption' => 'ESP šifrování:', \r
+'esp grouptype' => 'ESP Grouptype:', \r
+'esp integrity' => 'ESP Integrity:', \r
+'esp keylife' => 'ESP Keylife:', \r
+'esp keylife should be between 1 and 24 hours' => 'Hodnota ESP Keylife by měla být mezi 1 - 24 hodinami.', \r
+'every' => 'Každý', \r
+'excluding buffers and cache' => '-/+ buffery/cache', \r
+'expected' => 'Předpokládaná', \r
+'expires' => 'Vyprší', \r
+'export' => 'Export', \r
+'external access' => 'Externí přístup', \r
+'external access configuration' => 'Nastavení externího přístupu', \r
+'external access rule added' => 'Pravidlo pro externí přístup přidáno; restartuji kontrolu přístupu', \r
+'external access rule removed' => 'Pravidlo pro externí přístup odebráno; restartuji kontrolu přístupu', \r
+'external aliases configuration' => 'Nastavení externích aliasů', \r
+'february' => 'únor', \r
+'fetch ip from' => 'Odhadnout skutečnou veřejnou IP adresu s pomocí vnějšího serveru', \r
+'filename' => 'Název souboru', \r
+'filesystem full' => 'Souborový systém je plný', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Celkový počet aktivních záznamů firewallu', \r
+'firewall log' => 'Záznam firewallu', \r
+'firewall log viewer' => 'Prohlížeč záznamů firewallu', \r
+'firewall logs' => 'Záznamy firewallu', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Nahrát Firmware/Ovladače', \r
+'fixed ip lease added' => 'Trvalé zapůjčení IP přidáno', \r
+'fixed ip lease modified' => 'Trvalé zapůjčení IP změněno', \r
+'fixed ip lease removed' => 'Trvalé zapůjčení IP odebráno', \r
+'force update' => 'Nuceně aktualizovat', \r
+'forwarding rule added' => 'Mapovací pravidlo přidáno; restartuji forwarder', \r
+'forwarding rule removed' => 'Mapovací pravidlo odebráno; restartuji forwarder', \r
+'forwarding rule updated' => 'Mapovací pravidlo aktualizováno; restartuji forwarder', \r
+'free' => 'Volná', \r
+'free memory' => 'Volná paměť', \r
+'free swap' => 'Volný swap', \r
+'fritzdsl upload' => 'Nahrát ovladač Fritz!DSL', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Brána', \r
+'gateway ip' => 'IP adresa brány', \r
+'generate a certificate' => 'Vygenerovat certifikát:', \r
+'generate root/host certificates' => 'Generovat kořenový/hostitelský certifikát', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generování kořenového a hostitelského certifikátu může trvat dlouho. Na starším hardwaru to může trvat až několik minut. Prosíme o trpělivost.', \r
+'global settings' => 'Globální nastavení', \r
+'graph' => 'Graf', \r
+'graph per' => 'Graf za', \r
+'green' => 'GREEN', \r
+'green interface' => 'Rozhraní GREEN', \r
+'gui settings' => 'Nastavení uživatelského rozhraní', \r
+'gz with key' => 'Na tomto počítači lze obnovit pouze šifrovaný archív.', \r
+'hangup' => 'Odpojit', \r
+'hangup string' => 'Zavěsit:', \r
+'high' => 'Vysoká', \r
+'high memory usage' => 'Využití horní paměti', \r
+'holdoff' => 'Doba přidržení (v sekundách)', \r
+'host' => 'Hostitel', \r
+'host certificate' => 'Hostitelský certifikát', \r
+'host configuration' => 'Nastavení počítače', \r
+'host ip' => 'IP adresa hostitele', \r
+'host to net vpn' => 'Virtuální soukromá síť (VPN) Host-to-Net (RoadWarrior)', \r
+'hostname' => 'Název počítače', \r
+'hostname and domain already in use' => 'Název počítače a doména jsou již používány.', \r
+'hostname cant be empty' => 'Název počítače musí být vyplněný.', \r
+'hostname not set' => 'Název počítače není nastaven.', \r
+'hosts config added' => 'konfigurace hostitelů přidána', \r
+'hosts config changed' => 'konfigurace hostitelů změněna', \r
+'hours' => 'hodiny', \r
+'hours2' => 'Hodiny', \r
+'ibod for dual isdn only' => 'Používat šířku pásma dle požadavku (iBOD) lze pouze s dvojkanálovým ISDN.', \r
+'icmp selected but no type' => 'Vybrán ICMP protokol, ale nezvolen žádný ICMP typ.', \r
+'icmp type' => 'ICMP typ', \r
+'id' => 'ID', \r
+'idle' => 'Nečinný', \r
+'idle cpu' => 'CPU - nečinnost ', \r
+'idle cpu usage' => 'Využití CPU - nečinnost', \r
+'idle timeout' => 'Odpojit po (minuty; 0 - vypnuto):', \r
+'idle timeout not set' => 'Odpojení při nečinnosti není nastaveno.', \r
+'ids log viewer' => 'Prohlížeč záznamů IDS', \r
+'ids logs' => 'Záznamy IDS', \r
+'iface' => 'Rozhr.', \r
+'ignore filter' => 'Nezobrazovat soubory typu', \r
+'ike encryption' => 'IKE šifrování:', \r
+'ike grouptype' => 'IKE Grouptype:', \r
+'ike integrity' => 'IKE Integrity:', \r
+'ike lifetime' => 'IKE Lifetime:', \r
+'ike lifetime should be between 1 and 8 hours' => 'Hodnota IKE lifetime by měla být mezi 1 - 8 hodinami.', \r
+'import' => 'Import', \r
+'in' => 'IN', \r
+'incoming traffic in bytes per second' => 'Příchozí provoz v B/s', \r
+'info' => 'Info', \r
+'init string' => 'Init:', \r
+'insert floppy' => 'Chcete-li zazálohovat systémovou konfiguraci, vložte naformátovanou disketu do mechaniky na IPCOPu a klepněte na <i>Zálohovat na disketu</i>.  Prosím, ověřte, že záloha proběhla v pořádku.<p>', \r
+'install new update' => 'Instalovat aktualizaci:', \r
+'installed' => 'Nainstalováno', \r
+'installed updates' => 'Nainstalované aktualizace:', \r
+'instant update' => 'Nastavit ihned', \r
+'interface' => 'Rozhraní:', \r
+'interfaces' => 'Rozhraní:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Detekce vniknutí', \r
+'intrusion detection system' => 'Systém detekce vniknutí (IDS)', \r
+'intrusion detection system log viewer' => 'Prohlížeč záznamů systému detekce vniknutí', \r
+'intrusion detection system2' => 'Systém detekce vniknutí (IDS):', \r
+'invalid broadcast ip' => 'Neplatná adresa IP všesměrového vysílání (broadcast)', \r
+'invalid cache size' => 'Neplatná velikost cache.', \r
+'invalid characters found in pre-shared key' => 'Sdílený klíč (PSK) obsahuje neplatné znaky.', \r
+'invalid date entered' => 'Zadáno neplatné datum.', \r
+'invalid default lease time' => 'Neplatný implicitní čas zapůjčení.', \r
+'invalid domain name' => 'Neplatný název domény.', \r
+'invalid downlink speed' => 'Neplatná rychlost downlinku.', \r
+'invalid end address' => 'Neplatná konečná adresa.', \r
+'invalid fixed ip address' => 'Neplatná pevná adresa IP', \r
+'invalid fixed mac address' => 'Neplatná pevná adresa MAC', \r
+'invalid hostname' => 'Neplatný název počítače.', \r
+'invalid input' => 'Neplatný vstup', \r
+'invalid input for authentication method' => 'Neplatný vstup - metoda ověření.', \r
+'invalid input for city' => 'Neplatný vstup - město.', \r
+'invalid input for country' => 'Neplatný vstup - země.', \r
+'invalid input for department' => 'Neplatný vstup - oddělení.', \r
+'invalid input for e-mail address' => 'Neplatný vstup - emailová adresa.', \r
+'invalid input for esp keylife' => 'Neplatný vstup - ESP Keylife', \r
+'invalid input for hostname' => 'Neplatný vstup - jméno počítače.', \r
+'invalid input for ike lifetime' => 'Neplatný vstup - IKE lifetime', \r
+'invalid input for name' => 'Neplatný vstup - úplné jméno uživatele nebo jméno počítače', \r
+'invalid input for organization' => 'Neplatný vstup - organizace.', \r
+'invalid input for remote host/ip' => 'Neplatný vstup - vzdálený hostitel/IP.', \r
+'invalid input for state or province' => 'Neplatný vstup - stát nebo provincie.', \r
+'invalid ip' => 'Neplatná adresa IP', \r
+'invalid keep time' => 'Doba uchovávání záznamů musí být platné číslo', \r
+'invalid key' => 'Neplatný klíč.', \r
+'invalid logserver address' => 'Neplatná adresa syslogd serveru', \r
+'invalid max lease time' => 'Neplatný maximální čas zapůjčení.', \r
+'invalid maximum incoming size' => 'Neplatná max. velikost příchozího souboru.', \r
+'invalid maximum object size' => 'Neplatná maximální velikost objektu.', \r
+'invalid maximum outgoing size' => 'Neplatná max. velikost odchozího souboru.', \r
+'invalid md5sum' => 'Chybný kontrolní součet MD5.', \r
+'invalid minimum object size' => 'Neplatná minimální velikost objektu.', \r
+'invalid netmask' => 'Neplatná maska sítě', \r
+'invalid port' => 'Neplatný port. Je nutno zadat platné číslo portu.', \r
+'invalid primary dns' => 'Neplatný primární DNS.', \r
+'invalid primary ntp' => 'Neplatná adresa primárního serveru NTP', \r
+'invalid secondary dns' => 'Neplatný sekundární DNS.', \r
+'invalid secondary ntp' => 'Neplatná adresa sekundárního serveru NTP', \r
+'invalid start address' => 'Neplatná počáteční adresa.', \r
+'invalid time entered' => 'Zadán neplatný čas.', \r
+'invalid time period' => 'Neplatná doba opakování', \r
+'invalid uplink speed' => 'Neplatná rychlost uplinku.', \r
+'invalid upstream proxy username or password setting' => 'Neplatné uživatelské jméno nebo heslo pro nadřazený proxy server.', \r
+'invalid vpi vpci' => 'Chybná nastavení VPI/VPCI', \r
+'invalid wins address' => 'Neplatná adresa WINS serveru.', \r
+'invert' => 'Invertovat', \r
+'ip address' => 'adresa IP', \r
+'ip address in use' => 'Adresa IP je již používaná.', \r
+'ip alias added' => 'Alias externí adresy IP byl přidán', \r
+'ip alias changed' => 'Alias externí IP byl změněn', \r
+'ip alias removed' => 'Alias externí adresy IP byl odebrán', \r
+'ip info' => 'IP informace', \r
+'ipcop has now rebooted' => 'IPCop je nyní restartován.', \r
+'ipcop has now shutdown' => 'IPCop se vypíná.', \r
+'ipcop side' => 'IPCop strana:', \r
+'ipcop side is invalid' => 'IPCop strana je neplatná.', \r
+'ipcops hostname' => 'Název počítače IPCop', \r
+'ipinfo' => 'IP info', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Rozšiřující nastavení ISDN:', \r
+'isdn1' => 'Jednokanálové ISDN', \r
+'isdn2' => 'Dvojkanálové ISDN', \r
+'january' => 'leden', \r
+'javascript menu error1' => 'Pokud nefungují rozbalovací nabídky, vypněte Javascript na', \r
+'javascript menu error2' => 'stránce.', \r
+'july' => 'červenec', \r
+'june' => 'červen', \r
+'kernel' => 'Jádro', \r
+'kernel logging server' => 'Server protokolování jádra', \r
+'kernel version' => 'Verze jádra:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Vyberte jazyk, který chcete používat:', \r
+'lease expires' => 'Zapůjčení vyprší', \r
+'legend' => 'Legenda', \r
+'line' => 'Linka', \r
+'loaded modules' => 'Zavedené moduly:', \r
+'local ntp server specified but not enabled' => 'Lokální NTP server je uveden, ale není povolen.', \r
+'local subnet' => 'Lokální podsíť:', \r
+'local subnet is invalid' => 'Lokální podsíť je neplatná.', \r
+'local vpn hostname/ip' => 'Lokální VPN hostitel/IP', \r
+'log' => 'Záznam:', \r
+'log enabled' => 'Povolit záznam', \r
+'log server address' => 'Syslog server', \r
+'log settings' => 'Nastavení záznamů', \r
+'log summaries' => 'Přehledy záznamů', \r
+'log summary' => 'Přehled záznamů', \r
+'log viewer' => 'Prohlížeč záznamů', \r
+'log viewing options' => 'Volby pro prohlížení záznamů', \r
+'logging server' => 'Záznamový server', \r
+'loginlogout' => 'Přihlásit/Odhlásit', \r
+'lookup failed' => 'Reverzní vyhledávání neúspěšné', \r
+'low' => 'Nízká', \r
+'ls_dhcpd' => 'Server DHCP:', \r
+'ls_free/swan' => 'VPN', \r
+'ls_httpd' => 'Server HTTP:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Jádro a firewall:', \r
+'ls_modprobe' => 'Zaváděč modulů:', \r
+'ls_pam_unix' => 'Lokální přihlášení uživatelů:', \r
+'ls_sshd' => 'Vzdálená přihlášení uživatelů:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'Adresa MAC', \r
+'mac address in use' => 'Adresa MAC je již používána', \r
+'main page' => 'Hlavní stránka', \r
+'manual' => 'Ruční', \r
+'manual control and status' => 'Ruční ovládání a stav:', \r
+'manually' => 'Ručně', \r
+'march' => 'březen', \r
+'marked' => 'Příznak', \r
+'max incoming size' => 'Max. velikost příchozího souboru (KB):', \r
+'max lease time' => 'Max. čas zapůjčení (minuty):', \r
+'max outgoing size' => 'Max. velikost odchozího souboru (KB):', \r
+'max renewal time' => 'Maximální čas obnovení', \r
+'max retries not set' => 'Max. počet pokusů není nastaven.', \r
+'max size' => 'Max. velikost objektu (KB):', \r
+'maximal' => 'Maximální', \r
+'maximum retries' => 'Max. počet pokusů:', \r
+'may' => 'květen', \r
+'medium' => 'Střední', \r
+'memory' => 'Paměť:', \r
+'memory usage per' => 'Využití paměti za', \r
+'method' => 'Metoda:', \r
+'min size' => 'Min. velikost objektu (KB):', \r
+'minutes' => 'Minuty', \r
+'missing dat' => 'Šifrovaný archív nebyl nalezen', \r
+'missing gz' => 'Nešifrovaný archív nebyl nalezen', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Nastavení modemu', \r
+'modem on com1' => 'Modem na COM1', \r
+'modem on com2' => 'Modem na COM2', \r
+'modem on com3' => 'Modem na COM3', \r
+'modem on com4' => 'Modem na COM4', \r
+'modem on com5' => 'Modem na COM5', \r
+'modem settings have errors' => 'V nastavení modemu jsou chyby', \r
+'modem speaker on' => 'Zapnout reproduktor modemu:', \r
+'modulation' => 'Modulace', \r
+'month' => 'Měsíc', \r
+'months' => 'měsíce', \r
+'mounted on' => 'Připojen k', \r
+'name' => 'Jméno', \r
+'name is invalid' => 'Jméno je neplatné', \r
+'name must only contain characters' => 'Jméno musí obsahovat pouze znaky.', \r
+'name too long' => 'Příliš dlouhé jméno uživatele nebo název počítače.', \r
+'nat-traversal' => 'NAT Traversal:', \r
+'net' => 'Síť', \r
+'net to net vpn' => 'Virtuální privátní síť (VPN) Net-to-Net', \r
+'netmask' => 'Maska sítě', \r
+'network' => 'Síť', \r
+'network added' => 'Uživatelská síť přidána', \r
+'network configuration' => 'Nastavení sítě', \r
+'network removed' => 'Uživatelská síť odebrána', \r
+'network status information' => 'Informace o stavu sítě', \r
+'network time' => 'Použít NTP server:', \r
+'network time from' => 'Zjistit čas z NTP serveru', \r
+'network traffic graphs' => 'Grafy síťového provozu', \r
+'network updated' => 'Uživatelská síť aktualizována', \r
+'networks settings' => 'Firewall - nastavení sítě', \r
+'newer' => 'Novější', \r
+'next address' => 'Další adresa', \r
+'no alcatelusb firmware' => 'Firmware pro Alcatel USB není k dispozici. Prosím nahrajte jej.', \r
+'no cfg upload' => 'Nebyly nahrány žádné údaje', \r
+'no dhcp lease' => 'Nebylo možno získat DHCP zapůjčení', \r
+'no eciadsl synch.bin file' => 'Soubor ECI ADSL synch.bin není k dispozici. Prosím nahrajte jej.', \r
+'no fritzdsl driver' => 'Ovladač Fritz!DSL nenalezen. Prosím nahrajte jej.', \r
+'no information available' => 'Informace není k dispozici.', \r
+'no modem selected' => 'Nebyl vybrán žádný modem', \r
+'no set selected' => 'Nebyla vybrána žádná sada', \r
+'none found' => 'Nic nebylo nalezeno', \r
+'nonetworkname' => 'Jméno sítě nezadáno', \r
+'noservicename' => 'Jméno služby nezadáno', \r
+'not a valid ca certificate' => 'Toto není platný certifikát CA.', \r
+'not present' => '<B>NE</b>přítomný', \r
+'not running' => 'neběží', \r
+'november' => 'listopad', \r
+'ntp configuration' => 'Nastavení NTP', \r
+'ntp must be enabled to have clients' => 'NTP musí být povolen, aby mohl mít klienty.', \r
+'ntp server' => 'NTP server', \r
+'ntp syncro disabled' => 'NTP synchronizace zakázána', \r
+'ntp syncro enabled' => 'NTP synchronizace povolena', \r
+'ntpd restarted' => 'ntpd restartován', \r
+'number' => 'Číslo:', \r
+'october' => 'říjen', \r
+'older' => 'Starší', \r
+'only digits allowed in holdoff field' => 'V poli doba přidržení jsou povolena pouze čísla', \r
+'only digits allowed in max retries field' => 'V poli "max. počet pokusů" jsou povolena jen čísla.', \r
+'only digits allowed in the idle timeout' => 'V poli "odpojit po" jsou povolena jen čísla.', \r
+'open to all' => 'Povolit externí přístup ze VŠECH IP adres', \r
+'openssl produced an error' => 'OpenSSL způsobilo chybu', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'Organizace nesmí být nevyplněna.', \r
+'organization name' => 'Jméno organizace', \r
+'organization too long' => 'Položka organizace je příliš dlouhá; délka by neměla přesáhnout 60 znaků.', \r
+'original' => 'Původní', \r
+'other countries' => 'Jiné země', \r
+'other login script' => 'Jiný přihlašovací skript', \r
+'out' => 'OUT', \r
+'outgoing traffic in bytes per second' => 'Odchozí provoz v B/s', \r
+'package failed to install' => 'Instalace balíčku se nezdařila.', \r
+'pap or chap' => 'PAP nebo CHAP', \r
+'password' => 'Heslo:', \r
+'password contains illegal characters' => 'Heslo obsahuje nepřípustné znaky.', \r
+'password not set' => 'Heslo nenastaveno.', \r
+'password too short' => 'Heslo je příliš krátké.', \r
+'passwords do not match' => 'Hesla nesouhlasí.', \r
+'passwords must be at least 6 characters in length' => 'Hesla musí mít nejméně 6 znaků', \r
+'percentage' => 'Procento', \r
+'persistent' => 'Trvalé', \r
+'phase1 group' => 'Phase1 Group', \r
+'phonebook entry' => 'Položka tel. seznamu:', \r
+'pkcs12 file password' => 'Heslo PKCS12 souboru', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Nastavení mapování portů', \r
+'ports' => 'Porty', \r
+'pots' => 'Klasická analogová linka', \r
+'ppp setup' => 'Nastavení PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Rozšiřující nastavení PPPoE:', \r
+'pptp settings' => 'Rozšiřující nastavení PPTP:', \r
+'pre-shared key is too short' => 'Sdílený klíč (PSK) je příliš krátký.', \r
+'present' => 'Přítomný', \r
+'primary dns' => 'Primární DNS:', \r
+'primary ntp server' => 'Primární NTP server', \r
+'primary wins server address' => 'Adresa primárního WINS serveru', \r
+'priority' => 'Priorita', \r
+'profile' => 'Profil', \r
+'profile deleted' => 'Profil vymazán:', \r
+'profile has errors' => 'Profil obsahuje chyby', \r
+'profile made current' => 'Profil nastaven jako aktivní:', \r
+'profile name' => 'Název profilu:', \r
+'profile name not given' => 'Název profilu nebyl zadán.', \r
+'profile saved' => 'Profil uložen:', \r
+'profiles' => 'Profily:', \r
+'proto' => 'Proto', \r
+'protocol' => 'Protokol', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Grafy proxy přístupů', \r
+'proxy log viewer' => 'Prohlížeč záznamů proxy', \r
+'proxy logs' => 'Záznamy proxy', \r
+'proxy port' => 'Proxy port', \r
+'psk' => 'PSK', \r
+'pulse' => 'Pulzní', \r
+'pulse dial' => 'Pulzní vytáčení:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Přečtené sektory', \r
+'reboot' => 'Restart', \r
+'rebooting' => 'Restartuji', \r
+'rebooting ipcop' => 'Restartuji IPCop', \r
+'reconnection' => 'Opakované připojení', \r
+'references' => 'Odkazy', \r
+'refresh' => 'Obnovit', \r
+'refresh index page while connected' => 'Obnovovat index.cgi po dobu připojení', \r
+'refresh update list' => 'Obnovit seznam aktualizací', \r
+'released' => 'Uvolněno', \r
+'remark' => 'Poznámka', \r
+'remark title' => 'Poznámka:', \r
+'remote access' => 'Vzdálený přístup', \r
+'remote host/ip' => 'Vzdálený hostitel/IP', \r
+'remote logging' => 'Vzdálené zaznamenávání', \r
+'remote subnet' => 'Vzdálená podsíť:', \r
+'remote subnet is invalid' => 'Vzdálená podsíť je neplatná.', \r
+'remove' => 'Odebrat', \r
+'remove ca certificate' => 'Odebrat certifikát CA', \r
+'reserved dst port' => 'Cílový port je rezervován výhradně pro IPCop:', \r
+'reserved src port' => 'Zdrojový port je rezervován výhradně pro IPCop:', \r
+'reset' => 'Reset', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Resetováním nastavení VPN bude odstraněna kořenová CA, hostitelský certifikát a veškerá připojení založená na certifikátech.', \r
+'restart' => 'Restart', \r
+'restore' => 'Obnovit', \r
+'restore defaults' => 'Obnovit výchozí hodnoty', \r
+'restore hardware settings' => 'Obnovit nastavení hardware', \r
+'reverse sort' => 'Třídit v obráceném chronologickém pořadí', \r
+'root certificate' => 'Kořenový certifikát', \r
+'root path' => 'Cesta ke kořenovému adresáři', \r
+'router ip' => 'IP adresa routeru:', \r
+'routing table entries' => 'Položky směrovací tabulky:', \r
+'rsvd dst port overlap' => 'Cílový rozsah portů se překrývá s portem rezervovaným pro IPCop:', \r
+'rsvd src port overlap' => 'Zdrojový rozsah portů se překrývá s portem rezervovaným pro IPCop:', \r
+'running' => 'BĚŽÍ', \r
+'save' => 'Uložit', \r
+'save error' => 'Nelze uložit soubor archivu nastavení', \r
+'script name' => 'Název skriptu:', \r
+'secondary dns' => 'Sekundární DNS:', \r
+'secondary ntp server' => 'Sekundární NTP server', \r
+'secondary wins server address' => 'Adresa sekundárního WINS serveru', \r
+'seconds' => 's', \r
+'section' => 'Sekce', \r
+'sectors read from disk per second' => 'Sektory přečtené z disku za sekundu', \r
+'sectors written to disk per second' => 'Sektory zapsané na disk za sekundu', \r
+'secure shell server' => 'SSH server', \r
+'select' => 'Vybrat', \r
+'select dest net' => 'Vyberte cílovou síť.', \r
+'select source net' => 'Vyberte zdrojovou síť. Pokud nemáte nestavenu ORANGE nebo BLUE síť, pak nepotřebujete DMZ Pinholes.', \r
+'send cr' => 'ISP vyžaduje znak Carriage Return:', \r
+'september' => 'září', \r
+'serial' => 'Sériové', \r
+'service' => 'Služba', \r
+'service added' => 'Uživatelská síťová služba přidána', \r
+'service name' => 'Název služby:', \r
+'service removed' => 'Uživatelská síťová služba odebrána', \r
+'service updated' => 'Uživatelská síťová služba aktualizována', \r
+'servicename' => 'Jméno služby', \r
+'services' => 'Služby:', \r
+'services settings' => 'Firewall - nastavení služeb', \r
+'set time now' => 'Nastavit čas ihned', \r
+'settings' => 'Nastavení', \r
+'shaping add options' => 'Přidat službu', \r
+'shaping list options' => 'Služby Traffic shaping', \r
+'shared' => 'sdílená', \r
+'shared memory' => 'Sdílená paměť', \r
+'show ca certificate' => 'Zobrazit certifikát CA', \r
+'show certificate' => 'Zobrazit certifikát', \r
+'show host certificate' => 'Zobrazit hostitelský certifikát', \r
+'show root certificate' => 'Zobrazit kořenový certifikát', \r
+'shutdown' => 'Vypnout', \r
+'shutdown control' => 'Ovládání vypínání', \r
+'shutdown2' => 'Vypnout:', \r
+'shutting down' => 'Vypínám', \r
+'shutting down ipcop' => 'IPCop se vypíná', \r
+'size' => 'Velikost', \r
+'snort hits' => 'Celkový počet aktivovaných pravidel detekce vniknutí', \r
+'sort ascending' => 'Seřadit vzestupně', \r
+'sort descending' => 'Seřadit sestupně', \r
+'sound' => 'Zvuk', \r
+'source' => 'Zdroj', \r
+'source ip' => 'Zdrojová IP', \r
+'source ip and port' => 'Zdrojová IP:Port', \r
+'source ip bad' => 'Neplatná IP adresa nebo adresa sítě.', \r
+'source ip in use' => 'Používaná zdrojová IP:', \r
+'source net' => 'Zdrojová síť', \r
+'source network' => 'Zdrojová IP nebo síť (prázdné pro "VŠE"):', \r
+'source port' => 'Zdrojový port', \r
+'source port in use' => 'Používaný zdrojový port:', \r
+'source port numbers' => 'Zdrojový port musí být platné číslo portu nebo rozsah portů.', \r
+'source port overlaps' => 'Zdrojový port se překrývá s již existujícím rozsahem portů.', \r
+'speaker off' => 'Vypnout reproduktor:', \r
+'speaker on' => 'Zapnout reproduktor:', \r
+'src port' => 'Zdr. port', \r
+'srcprt range overlaps' => 'Zdrojový rozsah portů se překrývá s již definovaným portem.', \r
+'srcprt within existing' => 'Zdrojový port je uvnitř již definovaného rozsahu portů.', \r
+'ssdmz pinholes' => 'DMZ pinholes', \r
+'ssh access' => 'SSH přístup', \r
+'ssh fingerprint' => 'Fingerprint', \r
+'ssh host keys' => 'SSH klíče', \r
+'ssh is disabled' => 'SSH je zakázán. Zastavuji.', \r
+'ssh is enabled' => 'SSH je povolen. Restartuji.', \r
+'ssh key' => 'Klíč', \r
+'ssh key size' => 'Velikost (bitů)', \r
+'ssh keys' => 'Povolit ověření pomocí veřejného klíče', \r
+'ssh no auth' => 'Nezvolena žádná z metod ověření; přihlášení nebude možné', \r
+'ssh passwords' => 'Povolit ověření pomocí hesla', \r
+'ssh portfw' => 'Povolit přesměrování TCP ', \r
+'ssh1 disabled' => 'SSHv1 zakázáno. Bude nutné použít klienta verze 2.', \r
+'ssh1 enabled' => 'SSHv1 povoleno, starší verze klientů budou podporovány.', \r
+'ssh1 support' => 'Podpora SSH protokolu verze 1 (vyžadována pouze pro starší verze klientů)', \r
+'ssnetwork status' => 'Stav sítě', \r
+'sspasswords' => 'Hesla', \r
+'ssport forwarding' => 'Mapování portů', \r
+'ssproxy graphs' => 'Grafy proxy', \r
+'sssystem status' => 'Stav systému', \r
+'sstraffic graphs' => 'Grafy provozu', \r
+'standard login script' => 'Standardní přihlašovací skript', \r
+'start address' => 'Počáteční adresa:', \r
+'state or province' => 'Stát nebo provincie', \r
+'static ip' => 'Statická IP', \r
+'status' => 'Stav', \r
+'status information' => 'Informace o stavu', \r
+'stopped' => 'ZASTAVEN', \r
+'subject' => 'Subjekt', \r
+'subnet is invalid' => 'Neplatná maska sítě', \r
+'successfully refreshed updates list' => 'Seznam aktualizací úspěšně obnoven.', \r
+'summaries kept' => 'Uchovávat záznamy', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Využití swapu za', \r
+'system cpu' => 'CPU - systém', \r
+'system cpu usage' => 'Využití CPU - systém', \r
+'system graphs' => 'Systémové grafy', \r
+'system log viewer' => 'Prohlížeč systémových záznamů', \r
+'system logs' => 'Systémové záznamy', \r
+'system status information' => 'Informace o stavu systému', \r
+'telephone not set' => 'Telefon nenastaven.', \r
+'the following update was successfully installed' => 'Následující aktualizace byla úspěšně nainstalována', \r
+'the statistics were last updated at' => 'Statistiky byly naposled aktualizovány v', \r
+'there are updates' => 'Pro váš systém jsou k dispozici aktualizace. Pro více informací navštivte prosím sekci "Aktualizace".', \r
+'there are updates available' => 'Pro váš systém jsou dostupné tyto aktualizace. Důrazně doporučujeme provést aktualizaci co nejdříve.', \r
+'there was no file upload' => 'Nebyl nahrán žádný soubor.', \r
+'this feature has been sponsored by' => 'Tuto funkci sponzoruje', \r
+'this field may be blank' => 'Toto pole může být prázdné.', \r
+'this is not a valid archive' => 'Tento archiv není platný.', \r
+'this is not an authorised update' => 'Toto není autorizovaná aktualizace.', \r
+'this update is already installed' => 'Tato aktualizace je již nainstalována.', \r
+'time' => 'Čas', \r
+'time date manually reset' => 'Čas/datum ručně nastaveno.', \r
+'time server' => 'Časový server', \r
+'timeout must be a number' => 'Timeout musí být číslo.', \r
+'title' => 'Název', \r
+'to install an update' => 'Pro nainstalování aktualizace nahrajte prosím soubor .tgz.gpg dole:', \r
+'toggle enable disable' => 'Povolit nebo Zakázat', \r
+'tone' => 'Tónový', \r
+'tone dial' => 'Tónové vytáčení:', \r
+'traffic on' => 'Provoz na', \r
+'traffic shaping' => 'Traffic shaping', \r
+'traffic shaping settings' => 'Nastavení Traffic shaping', \r
+'transfer limits' => 'Omezení přenosu', \r
+'transparent on' => 'Transparentní na', \r
+'type' => 'Typ:', \r
+'unable to alter profiles while red is active' => 'Nelze měnit profily, dokud je RED aktivní.', \r
+'unable to contact' => 'Nelze navázat spojení s', \r
+'unencrypted' => 'Nešifrovaný', \r
+'unknown' => 'NEZNÁMÝ', \r
+'unnamed' => 'Nepojmenovaný', \r
+'update' => 'Aktualizovat', \r
+'update time' => 'Aktualizovat čas:', \r
+'update transcript' => 'Aktualizovat záznam', \r
+'updates' => 'Aktualizace', \r
+'updates installed' => 'Nainstalované aktualizace', \r
+'updates is old1' => 'Váš soubor aktualizace je starý', \r
+'updates is old2' => 'dnů. Doporučujeme jej aktualizovat na stránce  <b>Systém/Aktualizace</b>.', \r
+'uplink speed' => 'Rychlost uplinku (kbit/s)', \r
+'upload' => 'Nahrát', \r
+'upload a certificate' => 'Nahrát certifikát:', \r
+'upload a certificate request' => 'Nahrát žádost o certifikát:', \r
+'upload ca certificate' => 'Nahrát certifikát CA', \r
+'upload fcdsl.o' => 'Nahrát fcdsl.o', \r
+'upload file' => 'Nahrát soubor', \r
+'upload p12 file' => 'Nahrát PKCS12 soubor', \r
+'upload successful' => 'Nahráno v pořádku.', \r
+'upload synch.bin' => 'Nahrát synch.bin', \r
+'upload update file' => 'Nahrát aktualizační soubor:', \r
+'upstream password' => 'Heslo pro nadřazenou proxy:', \r
+'upstream proxy host:port' => 'Nadřazená proxy (počítač:port)', \r
+'upstream username' => 'Uživ. jméno pro nadřazenou proxy:', \r
+'uptime and users' => 'Doba provozu a uživatelé', \r
+'usb modem on acm0' => 'USB modem na ACM0', \r
+'usb modem on acm1' => 'USB modem na ACM1', \r
+'usb modem on acm2' => 'USB modem na ACM2', \r
+'usb modem on acm3' => 'USB modem na ACM3', \r
+'use' => 'Použít', \r
+'use a pre-shared key' => 'Použít sdílený klíč (PSK):', \r
+'use dov' => 'Používat hlasová data (Data Over Voice):', \r
+'use ibod' => 'Používat šířku pásma dle požadavku (iBOD):', \r
+'use only proposed settings' => 'Použít pouze navrhovaná nastavení.', \r
+'used' => 'Používaná', \r
+'used memory' => 'Využitá paměť', \r
+'used swap' => 'Využitý swap', \r
+'user cpu' => 'CPU - uživatel ', \r
+'user cpu usage' => 'Využití CPU - uživatel', \r
+'username' => 'Jméno uživatele:', \r
+'username not set' => 'Jméno uživatele není nastaveno.', \r
+'users department' => 'Oddělení uživatele', \r
+'users email' => 'E-mailová adresa uživatele', \r
+'users fullname or system hostname' => 'Úplné jméno uživatele nebo jméno počítače', \r
+'valid root certificate already exists' => 'Již existuje platný kořenový certifikát.', \r
+'vci number' => 'Hodnota VCI:', \r
+'virtual private networking' => 'Virtuální soukromá síť (VPN)', \r
+'vpi number' => 'Hodnota VPI:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'Nastavení VPN - Hlavní', \r
+'vpn on blue' => 'VPN na BLUE', \r
+'waiting to synchronize clock' => 'Čekání na synchronizaci času', \r
+'warning messages' => 'Varovné zprávy', \r
+'web hits' => 'Celkový počet WWW stránek odpovídajících zvoleným kritériím', \r
+'web proxy' => 'Webová proxy', \r
+'web proxy configuration' => 'Nastavení webové proxy', \r
+'web server' => 'WWW server', \r
+'website' => 'WWW stránka', \r
+'week' => 'Týden', \r
+'weeks' => 'týdny', \r
+'wildcards' => 'Zástupné znaky', \r
+'wireless' => 'Wireless', \r
+'wireless config added' => 'Wireless konfigurace přidána', \r
+'wireless config changed' => 'Wireless konfigurace změněna', \r
+'wireless configuration' => 'Nastavení Wireless', \r
+'written sectors' => 'Zapsané sektory', \r
+'xtaccess all error' => 'Nemůžete nastavit externí přístup na VŠE, toto se nastavuje v záznamu mapování portů.', \r
+'year' => 'Rok', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Při použití ověřování pomocí sdíleného klíče (PSK) lze definovat pouze jedno Roadwarrior připojení.<br />Buď již máte Roadwarrior připojení s ověřováním pomocí sdíleného klíče, nebo se nyní toto připojení pokoušíte přidat.', \r
+'your department' => 'Vaše oddělení', \r
+'your e-mail' => 'Vaše e-mailová adresa', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/cs/install/CVS/Entries b/langs/cs/install/CVS/Entries
new file mode 100644 (file)
index 0000000..028f61d
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_cs.c/1.10.2.5/Mon Dec 12 09:23:23 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/cs/install/CVS/Repository b/langs/cs/install/CVS/Repository
new file mode 100644 (file)
index 0000000..3997800
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/cs/install
diff --git a/langs/cs/install/CVS/Root b/langs/cs/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/cs/install/CVS/Tag b/langs/cs/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/cs/install/lang_cs.c b/langs/cs/install/lang_cs.c
new file mode 100644 (file)
index 0000000..91d711a
--- /dev/null
@@ -0,0 +1,507 @@
+/*\r
+ * Czech  (cs) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 petr, Peter Dvoracek, Jakub Moc \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *cs_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Nastavení adres",\r
+/* TR_ADMIN_PASSWORD */\r
+"Heslo uživatele Admin",\r
+/* TR_AGAIN_PROMPT */\r
+"Znovu:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Všechny karty úspěšně přiděleny.",\r
+/* TR_AUTODETECT */\r
+"* AUTODETEKCE *",\r
+/* TR_BUILDING_INITRD */\r
+"Vytvářím INITRD...",\r
+/* TR_CANCEL */\r
+"Zrušit",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Přidělování karet",\r
+/* TR_CHECKING */\r
+"Kontroluji URL...",\r
+/* TR_CHECKING_FOR */\r
+"Kontrola: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Vyberte instalovanou ISDN kartu.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Vyberte požadovaný ISDN protokol.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Nastavte DHCP server zadáním požadovaných informací.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Nastavení sítě",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Nyní je nutno nastavit připojení k síti, a to nejprve zavedením odpovídajícího ovladače pro GREEN rozhraní. To lze učinit buď pomocí automatického vyhledání síťové karty, nebo vybráním tohoto ovladače ze seznamu. Pokud máte více síťových karet, budete moci zbývající nastavit později během instalace. Upozorňujeme rovněž, že pokud máte další karty stejného typu, jako je karta GREEN rozhraní a každá z nich vyžaduje zvláštní parametry modulu, měli byste tyto parametry zadat pro všechny karty příslušného typu tak, aby mohly být po nastavení GREEN rozhraní aktivovány.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Nastavte síťové ovladače a přiřaďte karty příslušným rozhraním. Současná konfigurace je následující:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Nastavte CDROM výběrem odpovídající IO adresy a/nebo IRQ.",\r
+/* TR_CONGRATULATIONS */\r
+"Gratuluji!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"Instalace %s byla úspěšně dokončena. Prosím vyjměte všechna média (diskety a CDROM), která jsou v mechanikách počítače. Nyní bude spuštěn Setup a budete moci nastavit ISDN, síťové karty a systémová hesla. Po dokončení této fáze se připojte pomocí prohlížeče na adresu http://%s:81 nebo https://%s:445 (nebo upravte adresu podle zvoleného jména počítače, kde je %s nainstalován) a nastavte vytáčené připojení (je-li třeba) a vzdálený přístup. Pokud chcete uživatelům umožnit ovládat připojení, nezapomeňte nastavit heslo pro uživatele 'dial'.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Váš pevný disk je velmi malý, ale lze pokračovat bez swap oddílu. (Totu možnost použít jen s opatrností).",\r
+/* TR_CURRENT_CONFIG */\r
+"Aktuální nastavení: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Výchozí brána:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Výchozí brána\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Výchozí čas zapůjčení (min):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Výchozí čas zapůjčení\n",\r
+/* TR_DETECTED */\r
+"Nalezen: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Jméno DHCP serveru:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Jméno DHCP serveru\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Nastavení DHCP serveru",\r
+/* TR_DISABLED */\r
+"Vypnutý",\r
+/* TR_DISABLE_ISDN */\r
+"Zakázat ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"Váš pevný disk je příliš malý.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Nastavení DNS a brány",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Zadejte údaje o DNS a bráně. Tato nastavení se používají pouze pokud je DHCP na RED rozhraní zakázáno.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Vaše nastavení nevyužívá ethernetový adaptér pro RED rozhraní. Údaje o DNS a bráně pro dialup uživatele se nastavují automaticky v okamžiku vytáčení.",\r
+/* TR_DOMAINNAME */\r
+"Doménové jméno",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Jméno domény nesmí být nevyplněné.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Doménové jméno nesmí obsahovat mezery.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Jméno domény smí obsahovat pouze písmena, čísla, pomlčky a tečky.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Přípona doménového jména:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Přípona doménového jména\n",\r
+/* TR_DONE */\r
+"Hotovo",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nChcete změnit tato nastavení?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Přidělení ovladačů a karet",\r
+/* TR_ENABLED */\r
+"Povoleno",\r
+/* TR_ENABLE_ISDN */\r
+"Povolit ISDN",\r
+/* TR_END_ADDRESS */\r
+"Koncová adresa:",\r
+/* TR_END_ADDRESS_CR */\r
+"Koncová adresa\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Některé ISDN karty (zvláště ISA) mohou vyžadovat upřesňující parametry modulu pro nastavení údajů o IRQ a adrese IO portu. Pokud vlastníte takovou kartu, zadejte příslušné parametry zde. Např.: \"io=0x280 irq=9\". Ty budou použity při detekci karty.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Zadejte heslo %s admin uživatele. Tento účet slouží k přihlášení k %s webovému administračnímu rozhraní.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Zadejte doménové jméno",\r
+/* TR_ENTER_HOSTNAME */\r
+"Zadejte jméno počítače.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Zadejte IP adresu",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Automatická detekce síťové karty se nezdařila. Zadejte ovladač a volitelné parametry pro síťovou kartu.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Zadejte heslo uživatele 'root'. Přihlašte se jako tento uživatel pro přístup prostřednictvím příkazové řádky.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Zadejte heslo uživatele 'setup'. Přihlašte se jako tento uživatel pro přístup k programu setup.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Zadejte IP adresu rozhraní %s.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Zadejte své telefonní číslo (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Zadejte cestu (URL) k souborům ipcop-<version>.tgz a images/scsidrv-<version>.img. POZOR: DNS není k dispozici! Cesta by měla být ve tvaru http://X.X.X.X/<adresář>",\r
+/* TR_ERROR */\r
+"Chyba",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Chyba při zápisu údajů o nastavení.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Rozbaluji moduly...",\r
+/* TR_FAILED_TO_FIND */\r
+"Vyhledání souboru v daném URL se nezdařilo.",\r
+/* TR_FOUND_NIC */\r
+"%s nalezl ve vašem počítači následující síťový adaptér: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"German 1TR6",\r
+/* TR_HELPLINE */\r
+"                 <Tab>/<Alt-Tab> pro přepnutí | <Space> pro výběr",\r
+/* TR_HOSTNAME */\r
+"Jméno počítače",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Jméno počítače nesmí být nevyplněné.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Jméno počítače nesmí obsahovat mezery.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Jméno počítače smí obsahovat pouze písmena, čísla a pomlčky.",\r
+/* TR_INITIALISING_ISDN */\r
+"Inicializuji ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Prosím vložte %s CD do CDROM mechaniky.",\r
+/* TR_INSERT_FLOPPY */\r
+"Prosím vložte %s disketu s ovladači do disketové mechaniky.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Instalace zrušena.",\r
+/* TR_INSTALLING_FILES */\r
+"Instaluji soubory...",\r
+/* TR_INSTALLING_GRUB */\r
+"Instaluji GRUB...",\r
+/* TR_INTERFACE */\r
+"%s rozhraní",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Spuštění rozhraní se nezdařilo.",\r
+/* TR_INVALID_FIELDS */\r
+"Následující pole jsou chybně vyplněna:\n\n",\r
+/* TR_INVALID_IO */\r
+"Zadané údaje o IO portu jsou neplatné.",\r
+/* TR_INVALID_IRQ */\r
+"Zadané údaje o IRQ jsou neplatné.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP adresa\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP adresa:",\r
+/* TR_ISDN_CARD */\r
+"ISDN adaptér",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"ISDN karta nenalezena. Jestliže se jedná o kartu typu ISA nebo kartu, která má zvláštní požadavky, bude zřejmě nutno zadat upřesňující parametry modulu.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Výběr ISDN adaptéru",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Nastavení ISDN",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Menu pro nastavení ISDN",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN není nastaveno. Některé položky nebyly vybrány.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN dosud není nastaveno. Zvolte položku, kterou chcete nastavit.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Výběr ISDN protokolu",\r
+/* TR_ISDN_STATUS */\r
+"Současné nastavení ISDN %s\n\n Protokol: %s\n Karta: %s\n Vaše telefonní číslo: %s\n\nZvolte položku, kterou chcete překonfigurovat, nebo můžete použít stávající nastavení.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Rozložení klávesnice",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Vyberte typ klávesnice z níže uvedeného seznamu.",\r
+/* TR_LEASED_LINE */\r
+"Pevná linka",\r
+/* TR_LOADING_MODULE */\r
+"Zavádím modul...",\r
+/* TR_LOADING_PCMCIA */\r
+"Zavádím PCMCIA moduly...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Vyhledávám: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Vytvářím souborový systém /boot...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Vytvářím souborový systém /log...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Vytvářím kořenový souborový systém...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Vytvářím swap oddíl...",\r
+/* TR_MANUAL */\r
+"* RUČNÍ *",\r
+/* TR_MAX_LEASE */\r
+"Max. čas zapůjčení (minuty):",\r
+/* TR_MAX_LEASE_CR */\r
+"Max. čas zapůjčení\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Chybí údaj o IP adrese BLUE rozhraní.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Chybí údaj o IP adrese ORANGE rozhraní.",\r
+/* TR_MISSING_RED_IP */\r
+"Chybí údaj o IP adrese RED rozhraní.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Jméno modulu nesmí být prázdné.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Zadejte jméno modulu a požadované parametry ovladače.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Připojuji souborový systém /boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Připojuji souborový systém /log...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Připojuji kořenový souborový systém...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Připojuji swap oddíl...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Vaše telefonní číslo (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Maska sítě:",\r
+/* TR_NETWORKING */\r
+"Sítě",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Adresa sítě\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Adresa sítě:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Menu pro nastavení sítě",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Typ konfigurace sítě",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Vyberte nastavení sítě pro %s. Následující typy konfigurace obsahují seznam rozhraní připojených k ethernetu. Pokud nastavení změníte, bude třeba síť restartovat a rovněž bude nutno nastavit přiřazení síťových ovladačů.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Maska sítě\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Nastavení sítě se nezdařilo.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Nebyl přidělen dostatečný počet karet.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Nebylo přiděleno žádné BLUE rozhraní.",\r
+/* TR_NO_CDROM */\r
+"Nenalezena žádná CD-ROM mechanika.",\r
+/* TR_NO_HARDDISK */\r
+"Nenalezen žádný pevný disk.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Ipcop tarball nebyl na webovém serveru nalezen.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Nebylo přiděleno žádné ORANGE rozhraní.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Nebylo přiděleno žádné RED rozhraní.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"SCSI image nebyla na webovém serveru nalezena.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Nezbývají žádné nepřidělené karty, přičemž jsou vyžadovány další. K jejich vyhledání můžete využít autodetekci, nebo zvolit odpovídající ovladač ze seznamu.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Rozděluji disk...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Hesla nesouhlasí.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Heslo nesmí být prázdné.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Heslo nesmí obsahovat mezery.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Heslo:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Telefonní číslo nesmí být nevyplněné.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Instalační program nyní připraví pevný disk na %s. Nejdříve bude disk rozdělen na oddíly, poté bude na těchto oddílech vytvořen systém souborů.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Pro restartování stiskněte OK",\r
+/* TR_PRIMARY_DNS */\r
+"Primární DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Primární DNS\n",\r
+/* TR_PROBE */\r
+"Vyhledat",\r
+/* TR_PROBE_FAILED */\r
+"Automatická detekce se nezdařila.",\r
+/* TR_PROBING_SCSI */\r
+"Detekuji SCSI zařízení...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Při nastavování %s admin hesla nastaly potíže.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Při nastavování hesla uživatele 'root' nastaly potíže.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Při nastavování hesla uživatele 'setup' nastaly potíže.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protokol/Země",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Spouštím síť...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Zastavuji síť...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Zastavuji vzdálenou síť...",\r
+/* TR_QUIT */\r
+"Skončit",\r
+/* TR_RED_IN_USE */\r
+"ISDN (nebo jiné externí připojení) je právě používáno. Nelze konfigurovat ISDN, dokud je RED rozhraní aktivní.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nPo dokončení nastavení bude třeba restartovat síť.",\r
+/* TR_RESTORE */\r
+"Obnovit",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Pokud máte disketu se zálohou systémové konfigurace %s, vložte ji nyní do disketové mechaniky a stiskněte tlačítko Obnovit.",\r
+/* TR_ROOT_PASSWORD */\r
+"'root' heslo",\r
+/* TR_SECONDARY_DNS */\r
+"Sekundární DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Sekundární DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Sekundární DNS server uveden bez zadání primárního DNS",\r
+/* TR_SECTION_MENU */\r
+"Menu",\r
+/* TR_SELECT */\r
+"Vybrat",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Vyberte typ CDROM",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"V tomto počítači nebyla nalezena žádná mechanika CD-ROM. Vyberte prosím, který z následujících ovladačů chcete použít, aby %s mohl získat přístup k CD-ROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Vyberte instalační médium",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s lze nainstalovat z různých zdrojů. Nejjednodušší je využít CDROM mechaniku počítače. Není-li k dispozici, je možno instalovat s pomocí jiného počítače na síti LAN, který poskytuje instalační soubory prostřednictvím HTTP protokolu. V takovém případě je nutno vytvořit síťovou instalační disketu.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Vyberte síťový ovladač",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Zvolte ovladač síťové karty nainstalované na tomto počítači. Pokud vyberete možnost RUČNÍ, budete moci zadat jméno modulu ovladače a také parametry ovladače pro karty se zvláštními požadavky, např. ISA karty.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Vyberte rozhraní, které chcete překonfigurovat.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Zvolte položku, kterou chcete nastavit.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Nastavuji %s admin heslo...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Nastavuji heslo uživatele 'root'...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Nastavuji heslo uživatele 'setup'...",\r
+/* TR_SETUP_FINISHED */\r
+"Instalace dokončena. Stiskněte Ok pro restart počítače.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Počáteční nastavení nebylo zcela dokončeno. Je bezpodmínečně nutné zajistit jeho správné dokončení opětovným spuštěním programu setup z příkazové řádky.",\r
+/* TR_SETUP_PASSWORD */\r
+"'setup' heslo",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Nastavte upřesňující parametry modulu",\r
+/* TR_SINGLE_GREEN */\r
+"Vaše konfigurace je nastavena pro jediné GREEN rozhraní.",\r
+/* TR_SKIP */\r
+"Přeskočit",\r
+/* TR_START_ADDRESS */\r
+"Počáteční adresa:",\r
+/* TR_START_ADDRESS_CR */\r
+"Počáteční adresa\n",\r
+/* TR_STATIC */\r
+"Statická",\r
+/* TR_SUGGEST_IO */\r
+"(navrhuji %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(navrhuji %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Tento ovladač je již zaveden.",\r
+/* TR_TIMEZONE */\r
+"Časové pásmo",\r
+/* TR_TIMEZONE_LONG */\r
+"Vyberte časové pásmo, v němž se nacházíte, z následujícího seznamu.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Nelze vysunout CDROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Nelze rozbalit moduly.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Nelze nalézt jakékoliv další ovladače.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Nelze nalézt ISDN kartu. Je třeba specifikovat další parametry, pokud je karta typu ISA nebo má zvláštní požadavky.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Nelze inicializovat ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Nelze instalovat soubory.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Nelze instalovat GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Nelze načíst modul ovladače.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Nelze vytvořit souborový systém /boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Nelze vytvořit souborový systém /log.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Nelze vytvořit kořenový souborový systém.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Nelze vytvořit swap oddíl.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Nelze vytvořit symbolický odkaz /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Nelze vytvořit symbolický odkaz /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Nelze vytvořit symbolický odkaz /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Nelze vytvořit symbolický odkaz /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Nelze vytvořit symbolický odkaz /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Nelze vytvořit symbolický odkaz /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Nelze připojit souborový systém /boot.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Nelze připojit souborový systém /log.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Nelze připojit souborový systém /proc.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Nelze připojit kořenový souborový systém.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Nelze připojit swap oddíl.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Nelze otevřít soubor 'hosts'.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Nelze otevřit soubor nastavení.",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Nelze rozdělit disk.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Nelze odstranit dočasné stažené soubory.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Nelze nastavit jméno počítače.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Nelze odpojit CDROM/disketu.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Nelze odpojit pevný disk.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Nelze zapsat do /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Nelze zapsat do /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Nelze zapsat do /etc/hosts",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Nelze zapsat do /etc/hosts.allow",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Nelze zapsat do /etc/hosts.deny",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Nelze zapsat do %s/ethernet/settings",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Nelze zapsat do %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Nelze zapsat do %s/main/settings",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Dosud není přidělen ethernet adaptér typu:\n%s\n\nMůžete jej přidělit rozhraním:",\r
+/* TR_UNKNOWN */\r
+"NEZNÁMÝ",\r
+/* TR_UNSET */\r
+"NENASTAVEN",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"VAROVÁNÍ",\r
+/* TR_WARNING_LONG */\r
+"Pokud změníte tuto IP adresu a jste přihlášeni prostřednictvím vzdáleného přístupu, Vaše spojení s %s bude přerušeno a budete se muset znovu připojit k nové IP adrese. Jedná se o riskantní operaci, o kterou byste se měli pokusit pouze tehdy, pokud máte fyzický přístup k počítači, pro případ, že by se operace nezdařila.",\r
+/* TR_WELCOME */\r
+"Instalační program %s Vás vítá. Volbou Zrušit na libovolné následující obrazovce restartujete počítač.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Vaše konfigurace je nastavena pro jediné GREEN rozhraní, které již má přiděleno ovladač.",\r
+}; \r
+  \r
diff --git a/langs/da/CVS/Entries b/langs/da/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/da/CVS/Repository b/langs/da/CVS/Repository
new file mode 100644 (file)
index 0000000..f9de3f3
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/da
diff --git a/langs/da/CVS/Root b/langs/da/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/da/CVS/Tag b/langs/da/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/da/cgi-bin/CVS/Entries b/langs/da/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..b4261e5
--- /dev/null
@@ -0,0 +1,2 @@
+/da.pl/1.8.2.31/Fri Jan 13 08:50:19 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/da/cgi-bin/CVS/Repository b/langs/da/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..5d19d9e
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/da/cgi-bin
diff --git a/langs/da/cgi-bin/CVS/Root b/langs/da/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/da/cgi-bin/CVS/Tag b/langs/da/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/da/cgi-bin/da.pl b/langs/da/cgi-bin/da.pl
new file mode 100644 (file)
index 0000000..09a9415
--- /dev/null
@@ -0,0 +1,947 @@
+# Danish (da) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Michael Rasmussen\r
+#  \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Et CA certifikat eksisterer allerede med det navn.', \r
+'a connection with this common name already exists' => 'En opkobling med dette \'common name\' eksisterer allerede.', \r
+'a connection with this name already exists' => 'En opkobling med dette navn eksisterer allerede', \r
+'access allowed' => 'Adgang tilladt fra:', \r
+'access refused with this oinkcode' => 'Adgang nægtet med denne oinkcode', \r
+'action' => 'Udførelse', \r
+'add' => 'Tilføj', \r
+'add a host' => 'Tilføj en host:', \r
+'add a new rule' => 'Tilføj en ny regel:', \r
+'add device' => 'Tilføj enhed', \r
+'add network' => 'Tilføj netværk', \r
+'add new alias' => 'Tilføj et nyt alias:', \r
+'add new lease' => 'Tilføj en ny statisk adresse', \r
+'add service' => 'Tilføj service', \r
+'add xtaccess' => 'Tilføj ekstern adgang', \r
+'added from dhcp lease list' => 'Tilføjet fra DHCP lease liste', \r
+'admin user password has been changed' => 'Administrators password er blevet ændret.', \r
+'administrator user password' => 'Administrators password:', \r
+'adsl settings' => 'ADSL indstillinger', \r
+'advanced' => 'Avanceret', \r
+'again' => 'Igen:', \r
+'alcatelusb help' => 'For at kunne anvende dit Speedtouch USB modem, skal du oplægge firmwaren på din IPCop boks. Venligst hent den <b>Embedede Firmware</b> pakke fra speedtouch.com. Unzip pakken og oplæg den passende fil for dit modem: KQD6_3.xxx når Rev<4, eller ZZZL_3.xxx hvis din Rev=4 med nedenstående formular.', \r
+'alcatelusb upload' => 'Oplæg Speedtouch USB Firmware', \r
+'alias ip' => 'Alias IP', \r
+'aliases' => 'aliaser', \r
+'aliases not active' => 'Alias vil ikke være aktivt, hvis ikke det RØD(e) interface sættes til STATISK', \r
+'all' => 'Alle', \r
+'all interfaces' => 'Alle interface', \r
+'all updates installed' => 'Alle opdateringer er installeret', \r
+'alt dialup' => 'Ring op', \r
+'alt home' => 'Hjem', \r
+'alt information' => 'Information', \r
+'alt logs' => 'Logfiler', \r
+'alt services' => 'Tjenester', \r
+'alt system' => 'System', \r
+'alt vpn' => 'VPNs', \r
+'and' => 'Og', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Tilføj nu', \r
+'april' => 'april', \r
+'archive not exist' => 'Konfigurationsarkivet eksisterer ikke', \r
+'are you sure' => 'Er du sikker?', \r
+'arp table entries' => 'Adresser i ARP tabellen', \r
+'august' => 'august', \r
+'authentication' => 'Autentification:', \r
+'automatic' => 'Automatisk', \r
+'available updates' => 'Tilgængelige opdateringer:', \r
+'average' => 'Gennemsnit', \r
+'avoid dod' => 'Brug ikke denne indstilling med Dial on Demand! Hovedsageligt brugt hvis din IPCop er placeret bag en router. Din Røde IP skal være placeret indenfor de tre reserverede netværksnumre - 10/8, 172.16/12 eller 192.168/16', \r
+'back' => 'Tilbage', \r
+'backup' => 'Backup', \r
+'backup config floppy' => 'Backupkonfiguration - floppy disk', \r
+'backup configuration' => 'Backup Konfiguration:', \r
+'backup sets' => 'Backupsæt', \r
+'backup to floppy' => 'Backup til floppy', \r
+'backupprofile' => 'Hvis genopkobling fejler, skal du skifte til profil', \r
+'bad characters in script field' => 'Ulovligt tegn i scriptfeltet', \r
+'bad characters in the telephone number field' => 'Ulovlige tegn i telefonnummer feltet.', \r
+'bad destination range' => 'Nummerrækken for porte på destination har en start-IP, der er højere end slut-IP.', \r
+'bad ignore filter' => 'Dårligt ignorer filter:', \r
+'bad return code' => 'Hjælpeprogram returnerede en fejlkode', \r
+'bad source range' => 'Nummerrækkefølgen for port på source har en start-IP, der er større end eller lig med slut-IP.', \r
+'beep when ppp connects or disconnects' => 'Alarmer når IPCop tilslutter eller lægger på', \r
+'behind a proxy' => 'Bagved en proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'BLÅ', \r
+'blue access' => 'BLÅ forbindelse', \r
+'blue interface' => 'Blåt interface', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Broken pipe', \r
+'buffered memory' => 'Bufferet hukommelse', \r
+'buffers' => 'buffere', \r
+'bytes per second' => 'Bytes per sekund', \r
+'ca certificate' => 'CA certifikat', \r
+'ca name' => 'CA navn', \r
+'cache management' => 'Cache administration', \r
+'cache size' => 'Cache størrelse (MB):', \r
+'cached' => 'cached', \r
+'cached memory' => 'Cached hukommelse', \r
+'cancel' => 'Fortryd', \r
+'cannot enable both nat traversal and compression' => 'Kan ikke aktivere både \'NAT Traversal\' og kompression.', \r
+'cannot enable ntp without specifying primary' => 'NTP kan ikke aktiveres uden angivelse af primær', \r
+'cannot specify secondary dns without specifying primary' => 'Specifikation af sekundær DNS er ikke tilladt uden en primær DNS.', \r
+'cannot specify secondary ntp without specifying primary' => 'Før du har angivet en primær ntp server, kan du ikke angive en sekundær', \r
+'cannot specify secondary wins without specifying primary' => 'Kan ikke specificere sekundær WINS uden at specificere primær.', \r
+'cant change certificates' => 'Kan ikke ændre certifikater.', \r
+'cant enable xtaccess' => 'Den associerede port forwarding regel er deaktiveret. Du kan derfor ikke aktivere ekstern adgang for denne regel.', \r
+'cant start openssl' => 'Kan ikke starte OpenSSL', \r
+'caps all' => 'ALLE', \r
+'capsclosed' => 'LUKKET', \r
+'capsopen' => 'ÅBEN', \r
+'capswarning' => 'ADVARSEL', \r
+'cert' => 'Certifikat', \r
+'certificate' => 'Certifikat', \r
+'certificate authorities' => 'Certifikatmyndigheder', \r
+'certificate does not have a valid ca associated with it' => 'Certifikatet har ikke en valid CA tilknyttet.', \r
+'certificate file move failed' => 'Flytning af certifikat fil fejlede', \r
+'cfg restart' => 'En genstart er anbefalet efter gendannelse af konfigurationsarkiv', \r
+'chain' => 'Kæde', \r
+'change passwords' => 'Ændre passwords', \r
+'check vpn lr' => 'Check', \r
+'city' => 'By', \r
+'clear cache' => 'Rens cache', \r
+'clenabled' => 'Tilbyd synkronisering af tid til lokalt netværk', \r
+'click to disable' => 'Aktiveret (click for at deaktivere)', \r
+'click to enable' => 'Deaktiveret (click for at aktivere)', \r
+'clock has not been synchronized' => 'Uret er ikke blevet synkroniseret', \r
+'clock last synchronized at' => 'Uret blev sidst synkroniseret', \r
+'common name' => 'fælles navn', \r
+'compression' => 'Komprimering:', \r
+'computer to modem rate' => 'Computer til modem rate:', \r
+'concentrator name' => 'Koncentrator navn:', \r
+'confirmation' => 'bekræftelse', \r
+'connect on ipcop restart' => 'Tilslut når IPCop genstarter:', \r
+'connect the modem' => 'Tilslut modem', \r
+'connect timeout' => 'Aktiver timeout:', \r
+'connected' => 'Tilsluttet', \r
+'connecting' => 'Tilslutter...', \r
+'connection' => 'Forbindelse', \r
+'connection debugging' => 'Fejlfinding på forbindelse', \r
+'connection status and controlc' => 'Forbindelsesstatus og kontrol:', \r
+'connection tracking' => 'IPTables forbindelsesovervågning', \r
+'connection type' => 'Forbindelsestype', \r
+'connection type is invalid' => 'Forbindelsestype er ulovlig.', \r
+'connections' => 'Opkoblinger', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'Opkoblinger er tilknyttet dette CA. Sletter du dette CA, vil du ligeså slette disse opkoblinger.', \r
+'could not be opened' => 'kunne ikke åbnes', \r
+'could not connect to' => 'Kunne ikke få forbindelse med', \r
+'could not connect to www ipcop org' => 'Kunne ikke opkoble til www.ipcop.org', \r
+'could not create directory' => 'Kunne ikke oprette katalog.', \r
+'could not download latest patch list' => 'Kunne ikke hente den sidste patchlist (Ikke tilsluttet).', \r
+'could not download latest updates' => 'Kunne ikke hente seneste opdateringer', \r
+'could not download the available updates list' => 'Kunne ikke hente listen over tilgængelige opdateringer.', \r
+'could not open available updates file' => 'Kunne ikke åbne filen med tilgængelige opdateringer.', \r
+'could not open installed updates file' => 'Kunne ikke åbne filen over installerede opdateringer', \r
+'could not open update information file' => 'Kunne ikke åbne informationsfilen fra opdateringsfilen.  Opdateringsfilen indeholder fejl.', \r
+'could not retrieve common name from certificate' => 'Kunne ikke hente \'common name\' fra certifikatet.', \r
+'country' => 'Land', \r
+'cpu usage per' => 'CPU forbrug per', \r
+'create' => 'Opret', \r
+'credits' => 'Anerkendelser', \r
+'cron server' => 'CRON server', \r
+'current' => 'Nuværende', \r
+'current aliases' => 'Nuværende aliaser:', \r
+'current dhcp leases on blue' => 'Nuværende DHCP leases på Blå', \r
+'current dynamic leases' => 'Nuværende dynamiske leases', \r
+'current fixed leases' => 'Nuværende statiske adresser', \r
+'current hosts' => 'Nuværende hosts:', \r
+'current profile' => 'Nuværende profil:', \r
+'current rules' => 'Nuværende regler:', \r
+'custom networks' => 'Tilrettede netværk', \r
+'custom services' => 'Tilrettede services', \r
+'dat without key' => 'Et krypteret arkiv kan ikke genskabes uden nøgle.', \r
+'date' => 'Dato', \r
+'date not in logs' => 'Ingen, eller kun delvis, log findes for den ønskede dag', \r
+'day' => 'Dag', \r
+'day after' => 'Dag efter', \r
+'day before' => 'Dag før', \r
+'days' => 'dage', \r
+'ddns hostname added' => 'Dynamisk DNS hostnavn tilføjet', \r
+'ddns hostname modified' => 'Dynamisk DNS hostnavn er ændret', \r
+'ddns hostname removed' => 'Dynamic DNS hostnavn fjernet', \r
+'ddns minimize updates' => 'Minimer opdateringer: Før update køres, sammenlignes IP for hostname i dns "[host.]domain" mod RØD IP.', \r
+'ddns noip prefix' => 'For at bruge no-ip i gruppe tilstand, prefix hostnavn med <b>%</b>', \r
+'december' => 'december', \r
+'def lease time' => 'Forvalgt leasetid', \r
+'default lease time' => 'Forvalgt udløbstid (min):', \r
+'default networks' => 'Forvalgte netværk', \r
+'default renewal time' => 'Forvalgt fornyelsestid', \r
+'default services' => 'Forvalgte services', \r
+'delete' => 'Slet', \r
+'demon login script' => 'Dæmon login script', \r
+'description' => 'Beskrivelse', \r
+'dest ip and port' => 'Dest. IP:port', \r
+'destination' => 'Destination', \r
+'destination ip' => 'Destination IP', \r
+'destination ip bad' => 'Ulovlig destination IP', \r
+'destination ip or net' => 'Destination - IP eller net', \r
+'destination net' => 'Destinationsnet', \r
+'destination port' => 'Destination port', \r
+'destination port numbers' => 'Destinationsport skal være et validt portnummer eller portrækkefølge.', \r
+'destination port overlaps' => 'Nummerrækkefølge for porte overlapper eksisterende nummerrækkefølge.', \r
+'detail level' => 'Detaljeringsniveau', \r
+'device' => 'Device', \r
+'devices on blue' => 'Enheder på Blå', \r
+'dhcp advopt add' => 'DHCP tilføj option', \r
+'dhcp advopt added' => 'DHCP option tilføjet', \r
+'dhcp advopt blank value' => 'Værdi for DHCP option kan ikke være tom.', \r
+'dhcp advopt custom definition' => 'Din tilpassede option definition', \r
+'dhcp advopt definition' => 'Definition', \r
+'dhcp advopt definition exists' => 'Definition af option findes allerede. Du kan kun rette eller fjerne den.', \r
+'dhcp advopt edit' => 'DHCP ret option', \r
+'dhcp advopt help' => 'List options', \r
+'dhcp advopt list' => 'DHCP options liste', \r
+'dhcp advopt modified' => 'DHCP option opdateret', \r
+'dhcp advopt name' => 'Option navn', \r
+'dhcp advopt removed' => 'DHCP option fjernet', \r
+'dhcp advopt scope' => 'Option rækkevidde', \r
+'dhcp advopt scope global' => 'Global', \r
+'dhcp advopt scope help' => 'Global rækkevidde eller begræns rækkevidde til markerede interfaces.', \r
+'dhcp advopt unknown' => 'DHCP option navn kendes ikke', \r
+'dhcp advopt value' => 'Option værdi', \r
+'dhcp allow bootp' => 'Tillad bootp klienter', \r
+'dhcp configuration' => 'DHCP konfiguration', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP server', \r
+'dhcp server disabled' => 'DHCP server deaktiveret.  Stoppet.', \r
+'dhcp server disabled on blue interface' => 'DHCP server er frakoblet på det BLÅ interface', \r
+'dhcp server enabled' => 'DHCP server er aktiveret.  Genstarter.', \r
+'dhcp server enabled on blue interface' => 'DHCP server er aktiveret på det BLÅ interface', \r
+'dial' => 'Ring op', \r
+'dial user password' => 'Opringningspassword:', \r
+'dial user password has been changed' => 'Opringningspassword er blevet ændret.', \r
+'dialing mode' => 'Ringop mode:', \r
+'dialup settings' => 'Opkaldsindstillinger', \r
+'disk access per' => 'Disktilgang per', \r
+'disk usage' => 'Diskforbrug:', \r
+'display' => 'Display', \r
+'display hostname in window title' => 'Vis hostnavn i vinduets titlelinje', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'DMZ gennemgang konfiguration', \r
+'dmz pinhole rule added' => 'DMZ gennemgangsregel tilføjet; genstarter DMZ gennemgang', \r
+'dmz pinhole rule removed' => 'DMZ gennemgangsregel fjernet; genstarter DMZ gennemgang', \r
+'dmzpinholes for same net not necessary' => 'DMZ gennemgang er ikke nødvendig for samme net. Vælg et andet source net eller destination net.', \r
+'dns check failed' => 'DNS check fejlede', \r
+'dns proxy server' => 'DNS proxy server', \r
+'do not log this port list' => 'Drop denne portliste inden logning (reducere loggens størrelse)', \r
+'dod' => 'Dial on Demand', \r
+'dod for dns' => 'Dial on Demand for DNS:', \r
+'dod not compatible with ddns' => 'Dial on demand er ikke kompatibel med dynamisk dns', \r
+'dod waiting' => 'Dial on demand venter', \r
+'domain' => 'Domæne', \r
+'domain name' => 'Domænenavn', \r
+'domain name suffix' => 'Domænets efternavn:', \r
+'domain not set' => 'Domæne er ikke angivet.', \r
+'downlink speed' => 'Downlink hastighed (Kbit/sek)', \r
+'download ca certificate' => 'Hent CA certifikat', \r
+'download certificate' => 'Hent certificat', \r
+'download host certificate' => 'Hent Hostcertifikat', \r
+'download new ruleset' => 'Hent nyt regelsæt', \r
+'download pkcs12 file' => 'Hent pkcs12 fil', \r
+'download root certificate' => 'Hent rodcertifikat', \r
+'dpd action' => 'Aktivering for detektering af døde peers', \r
+'driver' => 'Driver', \r
+'dst port' => 'Dst Port', \r
+'dstprt range overlaps' => 'Nummerrækkefølge for destinationsport overlapper en allerede defineret port.', \r
+'dstprt within existing' => 'Destinationsport ligger indenfor en allerede defineret portrækkefølge.', \r
+'duplicate ip' => 'Den indtastede IP adresse findes i forvejen', \r
+'duplicate ip bold' => 'Duplikerede adresser er skrevet med <b>fed</b>', \r
+'duplicate mac' => 'Dupliker indtastet MAC adresse', \r
+'duplicate name' => 'Dette navn anvendes allerede. Vælg et andet.', \r
+'dyn dns source choice' => 'Dynamisk DNS udbyder(e) vil modtage en IP adresse for denne IPCop fra:', \r
+'dynamic dns' => 'Dynamisk DNS', \r
+'dynamic dns client' => 'Dynamisk DNS klient', \r
+'e-mail address too long' => 'Email adresse er for lang; Den bør ikke være længere end 40 tegn.', \r
+'eciadsl help' => 'For at kunne benytte ECI ADSL modem, skal du oplægge en synch.bin fil på IPCop boxen. Hent venligst filen fra ECIADSLs website og oplæg filen <b>synch.bin</b> ved hjælp af følgende form.', \r
+'eciadsl upload' => 'Oplæg ECI ADSL Synch.bin fil', \r
+'edit' => 'Ret', \r
+'edit a rule' => 'Ret en eksisterende regel:', \r
+'edit advanced settings when done' => 'Editer avancerede opsætninger efter udførsel.', \r
+'edit an existing alias' => 'Ret et eksisterende alias', \r
+'edit an existing host' => 'Ret en eksisterende host', \r
+'edit an existing lease' => 'Ret en eksisterende lease', \r
+'edit device' => 'Ret enhed', \r
+'edit hosts' => 'Editer Hosts', \r
+'edit network' => 'Ret netværk', \r
+'edit service' => 'Ret service', \r
+'empty' => 'Tom', \r
+'enable ignore filter' => 'Aktiver ignorer filter', \r
+'enable javascript' => 'Aktiver Javascript', \r
+'enable wildcards' => 'Aktiver jokere:', \r
+'enabled' => 'Aktiveret:', \r
+'enabled on' => 'Aktiveret på', \r
+'enabledtitle' => 'Aktiveret', \r
+'encapsulation' => 'Indkapsling', \r
+'encrypted' => 'Krypteret', \r
+'end address' => 'Slutadresse:', \r
+'err bk 1' => 'Fejl ved oprettelse af arkiv', \r
+'err bk 2 key' => 'Fejl ved skabelse af nøglefil', \r
+'err bk 3 tar' => 'Fejl ved tilføjelse af filer til arkiv', \r
+'err bk 4 gz' => 'Fejl ved komprimering af arkiv', \r
+'err bk 5 encrypt' => 'Fejl ved kryptering af arkiv', \r
+'err rs 1' => 'Fejl ved genskabelse af arkiv', \r
+'err rs 6 decrypt' => 'Fejl ved dekryptering af arkiv', \r
+'err rs 7 untartst' => 'Ugyldigt dekrypteret arkiv', \r
+'err rs 8 untar' => 'Fejl ved udpakning af arkiv', \r
+'error messages' => 'Fejlmeddelelser:', \r
+'esp encryption' => 'ESP kryptering:', \r
+'esp grouptype' => 'ESP gruppetype:', \r
+'esp integrity' => 'ESP integritet:', \r
+'esp keylife' => 'ESP nøgletid:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP Keylife skal være mellem 1 eller 24 timer.', \r
+'every' => 'Hver', \r
+'excluding buffers and cache' => '-/+ buffere/cache', \r
+'expected' => 'Forventet', \r
+'expires' => 'Udløber', \r
+'export' => 'Eksporter', \r
+'external access' => 'Ekstern adgang', \r
+'external access configuration' => 'Ekstern adgang konfiguration', \r
+'external access rule added' => 'Ekstern adgangsregel tilføjet; genstarter adgangskontrol', \r
+'external access rule removed' => 'Ekstern adgangsregel fjernet; genstarter adgangskontrol', \r
+'external aliases configuration' => 'Konfiguration af ekstern alias', \r
+'february' => 'februar', \r
+'fetch ip from' => 'Gæt den rigtige offentlige IP med hjælp fra en ekstern server', \r
+'filename' => 'Filnavn', \r
+'filesystem full' => 'Filsystemet er fyldt', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Totalt antal firewall-hits for', \r
+'firewall log' => 'Firewall log', \r
+'firewall log viewer' => 'Firewall log viser', \r
+'firewall logs' => 'Firewall log', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Oplæg Firmware / Drivers', \r
+'fixed ip lease added' => 'Statisk IP adresse tilføjet', \r
+'fixed ip lease modified' => 'Fast IP lease ændret', \r
+'fixed ip lease removed' => 'Statisk IP adresse fjernet', \r
+'force update' => 'Tvungen opdatering', \r
+'forwarding rule added' => 'Forwarding regel tilføjet; genstarter forwarder', \r
+'forwarding rule removed' => 'Forwarding regel fjernet; genstarter forwarder', \r
+'forwarding rule updated' => 'Forwarding regel er opdateret. Genstarter forwarder', \r
+'free' => 'Fri', \r
+'free memory' => 'Fri hukommelse', \r
+'free swap' => 'Fri swap', \r
+'friday' => 'fredag', \r
+'fritzdsl help' => 'Før du kan anvende et Fritz!DSL modem af typen fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb, skal du først oplægge en driverpakke til IPCop. Hent venligt denne driverpakke der stemmer overens med din version fra IPCop\'s website, og oplæg hele pakken <b>fcdsl-(din_version).tgz</b> med nedenstående form.', \r
+'fritzdsl upload' => 'Upload Fritz!DSL driveren', \r
+'from' => 'fra', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Gateway', \r
+'gateway ip' => 'Gateway IP', \r
+'generate a certificate' => 'Generer et certifikat:', \r
+'generate root/host certificates' => 'Generer rod/host certifikater', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generering af rod- og host certifikat kan tage lang tid. Det kan tage op til flere minutter på ældre hardware, så hav tålmodighed.', \r
+'global settings' => 'Globale indstillinger', \r
+'graph' => 'Graf', \r
+'graph per' => 'Graf per', \r
+'green' => 'GRØN', \r
+'green interface' => 'Grønt interface', \r
+'gui settings' => 'GUI indstillinger', \r
+'gz with key' => 'Kun et krypteret arkiv kan blive genskabt på denne maskine.', \r
+'hangup' => 'Læg på', \r
+'hangup string' => 'Læg på:', \r
+'high' => 'Høj', \r
+'high memory usage' => 'Øvre hukommelsesbrug', \r
+'holdoff' => 'Holdoff tid (i sekunder)', \r
+'host' => 'Host', \r
+'host certificate' => 'Host certifikat', \r
+'host configuration' => 'Host konfiguration', \r
+'host ip' => 'Host IP adresse', \r
+'host to net vpn' => 'Host-til-net virtuelt privat netværk (RoadWarrior)', \r
+'hostname' => 'Hostnavn', \r
+'hostname and domain already in use' => 'Hostnavn og domæne er allerede ibrug.', \r
+'hostname cant be empty' => 'Hostnavn kan ikke være tomt.', \r
+'hostname not set' => 'Hostnavn er ikke angivet.', \r
+'hosts config added' => 'host config tilføjet', \r
+'hosts config changed' => 'host config ændret', \r
+'hours' => 'timer', \r
+'hours2' => 'Timer', \r
+'ibod for dual isdn only' => 'iBOD kan kun benyttes med dual ISDN.', \r
+'icmp selected but no type' => 'ICMP er valgt som protokol, men ingen ICMP-type er specificeret.', \r
+'icmp type' => 'ICMP-type', \r
+'id' => 'ID', \r
+'idle' => 'Ledig', \r
+'idle cpu' => 'CPU er ledig', \r
+'idle cpu usage' => 'Ledig CPU tid', \r
+'idle timeout' => 'Ledig timeout (min; 0 deaktiverer):', \r
+'idle timeout not set' => 'Ledig timeout er ikke angivet.', \r
+'ids log viewer' => 'IDS log viser', \r
+'ids logs' => 'IDS log', \r
+'ids rules license' => 'For at aktivere Sourcefire VRT certificerede regler, skal du registrere dig på', \r
+'ids rules license2' => 'Accepter licensen, modtag dit password med email, og log dig på sitet. Gå til', \r
+'ids rules license3' => 'tryk på \'Get Code\' knappen nederst, og kopier den 40 tegn lange Oink Code.', \r
+'ids rules update' => 'Opdater Snort regler', \r
+'iface' => 'Tilslutning', \r
+'ignore filter' => 'Ignorer filter', \r
+'ike encryption' => 'IKE kryptering:', \r
+'ike grouptype' => 'IKE gruppetype:', \r
+'ike integrity' => 'IKE integritet:', \r
+'ike lifetime' => 'IKE levetid:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE lifetime skal være mellem 1 eller 8 timer.', \r
+'import' => 'Import', \r
+'in' => 'Inn', \r
+'incoming traffic in bytes per second' => 'Inkommen trafik i Bytes per sekund', \r
+'info' => 'Info', \r
+'init string' => 'Init:', \r
+'insert floppy' => 'Indsæt en formateret diskette i diskettedrevet og tryk <i>Backup til floppy</i> for at foretage backup af systemkonfigurationen.  Undersøg resultatet nøje så du er sikker på, at backuppen gik godt.<p>', \r
+'install new update' => 'Installer ny opdatering:', \r
+'installed' => 'Installeret', \r
+'installed updates' => 'Installerede opdateringer:', \r
+'instant update' => 'Opdater nu', \r
+'interface' => 'Interface', \r
+'interfaces' => 'Interfaces:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Indbrudsovervågning', \r
+'intrusion detection system' => 'Indbrudsovervågningssystem', \r
+'intrusion detection system log viewer' => 'Indbrudsovervågning system log viser', \r
+'intrusion detection system2' => 'Indbrugsovervågningssystem:', \r
+'invalid broadcast ip' => 'Ulovlig broadcast IP', \r
+'invalid cache size' => 'Ulovlig cache størrelse.', \r
+'invalid characters found in pre-shared key' => 'Ulovlige tegn fundet i pre-delt nøgle.', \r
+'invalid date entered' => 'Ulovlig dato indtastet.', \r
+'invalid default lease time' => 'Ulovlig forvalgt udløbstid.', \r
+'invalid domain name' => 'Ulovligt domænenavn.', \r
+'invalid downlink speed' => 'Ulovlig downlink hastighed.', \r
+'invalid end address' => 'Ulovlig slutadresse.', \r
+'invalid fixed ip address' => 'Ulovlig statisk IP adresse', \r
+'invalid fixed mac address' => 'Ulovlig statisk MAC adresse', \r
+'invalid hostname' => 'Ulovligt hostnavn.', \r
+'invalid input' => 'Ulovlig input', \r
+'invalid input for authentication method' => 'Ulovlig valg for autentificeringsmetode.', \r
+'invalid input for city' => 'Ulovligt valg for by.', \r
+'invalid input for country' => 'Ulovligt valg for land.', \r
+'invalid input for department' => 'Ulovligt valg for afdeling.', \r
+'invalid input for e-mail address' => 'Ulovligt valg for email adresse.', \r
+'invalid input for esp keylife' => 'Ulovligt valg for ESP-nøglens levetid.', \r
+'invalid input for hostname' => 'Ulovligt valg for hostnavn.', \r
+'invalid input for ike lifetime' => 'Ulovligt valg for IKE levetid', \r
+'invalid input for name' => 'Ulovligt valg for brugerens fulde navn eller systemets hostnavn', \r
+'invalid input for oink code' => 'Forkert input for Oink Code', \r
+'invalid input for organization' => 'Ulovligt valg for organisation', \r
+'invalid input for remote host/ip' => 'Ulovligt valg for remote host/ip.', \r
+'invalid input for state or province' => 'Ulovligt valg for amt eller kommune.', \r
+'invalid ip' => 'Ulovlig IP adresse', \r
+'invalid keep time' => 'Keep time skal være et tilladt tal', \r
+'invalid key' => 'Ulovlig nøgle.', \r
+'invalid loaded file' => 'Forkert indlæst fil', \r
+'invalid logserver address' => 'Ulovlig syslogd server adresse', \r
+'invalid max lease time' => 'Ulovlig maksimal udløbstid.', \r
+'invalid maximum incoming size' => 'Ulovlig maximum indgående størrelse.', \r
+'invalid maximum object size' => 'Ulovlig maksimal objekt størrelse.', \r
+'invalid maximum outgoing size' => 'Ulovlig maksimal udgående størrelse.', \r
+'invalid md5sum' => 'Ulovlig MD5sum.', \r
+'invalid minimum object size' => 'Ulovlig mindste objekt størrelse.', \r
+'invalid netmask' => 'Ulovlig netmaske', \r
+'invalid port' => 'Ulovlig port. Skal være lovligt portnummer.', \r
+'invalid port list' => 'Syntaks for portliste: port[,port]... hvor port findes i /etc/services, eller er et nummer', \r
+'invalid primary dns' => 'Ulovlig primær DNS.', \r
+'invalid primary ntp' => 'Ulovlig primær NTP server adresse', \r
+'invalid secondary dns' => 'Ulovlig sekundær DNS.', \r
+'invalid secondary ntp' => 'Ulovlig sekundær NTP server adresse', \r
+'invalid start address' => 'Ulovlig startadresse.', \r
+'invalid time entered' => 'Ulovlig tid indtastet.', \r
+'invalid time period' => 'Ulovlig tidsperiode', \r
+'invalid uplink speed' => 'Ulovlig uplink hastighed.', \r
+'invalid upstream proxy username or password setting' => 'Forkert brugernavn eller password for upstream-proxy.', \r
+'invalid vpi vpci' => 'Ulovlig VPI/VPCI opsætning', \r
+'invalid wins address' => 'Ulovlig Wins Server adresse', \r
+'invert' => 'Inverter', \r
+'ip address' => 'IP adresse', \r
+'ip address in use' => 'IP adressen er allerede i brug', \r
+'ip address outside subnets' => 'IP adresse er udenfor lokalt subnet(s)', \r
+'ip alias added' => 'Ekstern IP alias tilføjet', \r
+'ip alias changed' => 'Ekstern IP alias ændret', \r
+'ip alias removed' => 'Ekstern IP alias fjernet', \r
+'ip info' => 'IP Information', \r
+'ipcop has now rebooted' => 'IPCop er nu genstarted.', \r
+'ipcop has now shutdown' => 'IPCop er nu stoppet.', \r
+'ipcop side' => 'IPCop side:', \r
+'ipcop side is invalid' => 'IPCop side er ulovlig.', \r
+'ipcops hostname' => 'IPCops hostnavn', \r
+'ipinfo' => 'IP info', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Ekstra ISDN instillinger:', \r
+'isdn1' => 'Enkelt linje ISDN', \r
+'isdn2' => 'Dobbelt linje ISDN', \r
+'january' => 'januar', \r
+'javascript menu error1' => 'Hvis drop-down menuer ikke virker, skal du slå Javascript fra på', \r
+'javascript menu error2' => 'siden.', \r
+'july' => 'july', \r
+'june' => 'juni', \r
+'kernel' => 'Kerne', \r
+'kernel logging server' => 'Kerne log server', \r
+'kernel version' => 'Kerneversion:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Vælg sprog i IPCop:', \r
+'lease expires' => 'Lease udløber', \r
+'legend' => 'Beskrivelse', \r
+'line' => 'Linje', \r
+'loaded modules' => 'Indlæste moduler:', \r
+'local ntp server specified but not enabled' => 'Lokal NTP server er specificeret, men den er ikke aktiveret', \r
+'local subnet' => 'Lokalt subnet:', \r
+'local subnet is invalid' => 'Lokalt subnet er ulovligt.', \r
+'local vpn hostname/ip' => 'Lokalt VPN hostnavn/IP', \r
+'log' => 'Log:', \r
+'log enabled' => 'Log aktiveret', \r
+'log lines per page' => 'Linjer per side', \r
+'log server address' => 'Syslog server', \r
+'log settings' => 'logindstillinger', \r
+'log summaries' => 'Log oversigt', \r
+'log summary' => 'Log oversigt', \r
+'log viewer' => 'Log viser', \r
+'log viewing options' => 'Logvisningsmuligheder', \r
+'logging server' => 'Log server', \r
+'loginlogout' => 'Login/Logout', \r
+'lookup failed' => 'Reverse søgning fejlede', \r
+'low' => 'Lav', \r
+'ls_dhcpd' => 'DHCP server:', \r
+'ls_disk space' => 'Diskplads:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP server:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kerne eller firewall:', \r
+'ls_modprobe' => 'Modul indlæser:', \r
+'ls_pam_unix' => 'Login fra lokale brugere:', \r
+'ls_sshd' => 'Login fra remote brugere:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'MAC adresse', \r
+'mac address in use' => 'MAC adressen er allerede i brug', \r
+'main page' => 'Forside', \r
+'manual' => 'Manuel', \r
+'manual control and status' => 'Manuel kontrol og status:', \r
+'manually' => 'Manuelt', \r
+'march' => 'marts', \r
+'marked' => 'Markeret', \r
+'max incoming size' => 'Maksimal indgående størrelse (KB):', \r
+'max lease time' => 'Maksimal udløbstid (min):', \r
+'max outgoing size' => 'Maksimal udgående størrelse (KB):', \r
+'max renewal time' => 'Maksimal fornyelsestid', \r
+'max retries not set' => 'Maksimal antal forsøg ikke angivet.', \r
+'max size' => 'Maksimal objekt størrelse (KB):', \r
+'maximal' => 'Maksimal', \r
+'maximum retries' => 'Masimal antal forsøg:', \r
+'may' => 'maj', \r
+'medium' => 'Medium', \r
+'memory' => 'Hukommelse:', \r
+'memory usage per' => 'Hukommelsesforbrug per', \r
+'method' => 'Metode:', \r
+'min size' => 'Minimal objekt størrelse (KB):', \r
+'minutes' => 'Minutter', \r
+'missing dat' => 'Krypteret arkiv blev ikke fundet', \r
+'missing gz' => 'Ukrypteret arkiv blev ikke fundet', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Modem konfiguration', \r
+'modem on com1' => 'Modem på COM1', \r
+'modem on com2' => 'Modem på COM2', \r
+'modem on com3' => 'Modem på COM3', \r
+'modem on com4' => 'Modem på COM4', \r
+'modem on com5' => 'Modem på COM5', \r
+'modem settings have errors' => 'Modemindstillinger indeholder fejl', \r
+'modem speaker on' => 'Modemhøjtaler aktiveret:', \r
+'modulation' => 'Modulation', \r
+'monday' => 'mandag', \r
+'month' => 'Måned', \r
+'months' => 'måneder', \r
+'mounted on' => 'Monteret på', \r
+'name' => 'Navn', \r
+'name is invalid' => 'Navn er ulovligt', \r
+'name must only contain characters' => 'Navn må kun indeholde bogstaver.', \r
+'name too long' => 'Brugers fulde navn eller systemets hostnavn er for langt', \r
+'nat-traversal' => 'NAT traversering:', \r
+'net' => 'Net', \r
+'net to net vpn' => 'Net-til-net virtuelt privat netværk (VPN)', \r
+'netmask' => 'Netmaske', \r
+'network' => 'Netværk', \r
+'network added' => 'Tilrettet netværk tilføjet', \r
+'network configuration' => 'Netværkskonfiguration', \r
+'network removed' => 'Tilrettet netværk slettet', \r
+'network status information' => 'Information om netværksstatus', \r
+'network time' => 'Brug en netværkstidsserver (NTP):', \r
+'network time from' => 'Hent tid fra en Network Time Server', \r
+'network traffic graphs' => 'Grafer over netværkstrafik', \r
+'network updated' => 'Tilrettet netværk opdateret', \r
+'networks settings' => 'Firewall - netværksindstillinger', \r
+'new optionsfw later' => 'Din(e) ændring(er) vil blive aktiveret ved næste genstart', \r
+'new optionsfw must boot' => 'Du skal genstarte IPCOP', \r
+'newer' => 'Nyere', \r
+'next address' => 'Næste adresse', \r
+'no' => 'nej', \r
+'no alcatelusb firmware' => 'Ingen USB ADSL firmware. Oplæg venligst firmvære.', \r
+'no cfg upload' => 'Ingen data blev oploadet', \r
+'no dhcp lease' => 'Ingen DHCP lease er blevet forespurgt', \r
+'no eciadsl synch.bin file' => 'Ingen ECI ADSL synch.bin fil fundet. Oplæg den venligst.', \r
+'no fritzdsl driver' => 'Ingen Fritz!DSL driver. Upload den.', \r
+'no information available' => 'Ingen information tilgængelig.', \r
+'no modem selected' => 'Intet modem valgt', \r
+'no set selected' => 'Intet sæt var valgt', \r
+'no time limit' => 'ubegrænset tid', \r
+'none found' => 'ingen fundet', \r
+'nonetworkname' => 'Intet netværksnavn indtastet', \r
+'noservicename' => 'Intet servicenavn indtastet', \r
+'not a valid ca certificate' => 'CA certifikat er ikke gyldigt.', \r
+'not enough disk space' => 'Ikke nok diskplads', \r
+'not present' => '<b>Ikke</b> tilgængelig', \r
+'not running' => 'Kører ikke', \r
+'november' => 'november', \r
+'ntp configuration' => 'NTP konfiguration', \r
+'ntp must be enabled to have clients' => 'NTP skal være aktiveret for at have klienter tilsluttet.', \r
+'ntp server' => 'NTP server', \r
+'ntp syncro disabled' => 'NTP synkronisering deaktiveret', \r
+'ntp syncro enabled' => 'NTP synkronisering aktiveret', \r
+'ntpd restarted' => 'ntpd er genstartet', \r
+'number' => 'Nummer:', \r
+'october' => 'oktober', \r
+'older' => 'Ældre', \r
+'online help en' => 'Online hjælp (på engelsk)', \r
+'only digits allowed in holdoff field' => 'Kun tal er tilladt i holdoff feltet', \r
+'only digits allowed in max retries field' => 'Kun tal kan indtastes i feltet maksimal antal forsøg.', \r
+'only digits allowed in the idle timeout' => 'Kun tal kan indtastes i feltet ledig timeout.', \r
+'only red' => 'Kun RØD', \r
+'open to all' => 'Overskriv ekstern tilgang for ALLE.', \r
+'openssl produced an error' => 'OpenSSL frembragte en fejl', \r
+'options' => 'Muligheder', \r
+'options fw' => 'Firewall muligheder', \r
+'optionsfw portlist hint' => 'Listen af porte skal være kommasepareret (f.eks. 137,138). Du kan maksimalt specificere 15 porte per protokol.', \r
+'optionsfw warning' => 'Ændringer af disse muligheder kræver en genstart af firewall', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'Organisation skal være udfyldt.', \r
+'organization name' => 'Organisationsnavn', \r
+'organization too long' => 'Organisation er for langt; det kan højest være på 60 tegn.', \r
+'original' => 'Original', \r
+'other countries' => 'Andre lande', \r
+'other login script' => 'Andet login script', \r
+'out' => 'Ud', \r
+'outgoing traffic in bytes per second' => 'Udgående trafik i Bytes per sekund', \r
+'package failed to install' => 'Pakken fejlede under installation.', \r
+'pap or chap' => 'PAP eller CHAP', \r
+'password' => 'Password:', \r
+'password contains illegal characters' => 'Password indeholder ulovlige tegn.', \r
+'password not set' => 'Password er ikke angivet.', \r
+'password too short' => 'Password er for kort.', \r
+'passwords do not match' => 'Passwords er ikke ens.', \r
+'passwords must be at least 6 characters in length' => 'Passwords skal mindst have en længde på 6 tegn', \r
+'percentage' => 'Procent', \r
+'persistent' => 'Persistent', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Phase1 gruppe', \r
+'phonebook entry' => 'Telefonbogsregistrering:', \r
+'ping disabled' => 'Deaktiver svar på ping', \r
+'pkcs12 file password' => 'Password for PKCS12 fil', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Port forwarding konfiguration', \r
+'ports' => 'Porte', \r
+'pots' => 'Klasisk analog linje', \r
+'ppp setup' => 'PPP setup', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Ekstra PPPoE indstillinger:', \r
+'pptp settings' => 'Ekstra PPTP indstillinger:', \r
+'pre-shared key is too short' => 'Nøgle for indledende kontakt er for kort.', \r
+'present' => 'Tilgængelig', \r
+'primary dns' => 'Primær DNS:', \r
+'primary ntp server' => 'Primær NTP Server', \r
+'primary wins server address' => 'Primær WINS server adresse', \r
+'priority' => 'Prioritet', \r
+'profile' => 'Profil', \r
+'profile deleted' => 'Profil er slettet:', \r
+'profile has errors' => 'Profil indeholder fejl', \r
+'profile made current' => 'Profil er nu aktiv:', \r
+'profile name' => 'Profilnavn:', \r
+'profile name not given' => 'Profilnavn er ikke oplyst.', \r
+'profile saved' => 'Profil gemt:', \r
+'profiles' => 'Profiler:', \r
+'proto' => 'Proto', \r
+'protocol' => 'Proto', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Proxy tilgangsgrafer', \r
+'proxy log viewer' => 'Proxy log viser', \r
+'proxy logs' => 'Proxy log', \r
+'proxy port' => 'Proxy port', \r
+'psk' => 'PSK', \r
+'pulse' => 'Pulse', \r
+'pulse dial' => 'Pulse ring:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Læs sektorer', \r
+'reboot' => 'Genstart', \r
+'reboot schedule' => 'Planlagt genstart af IPCop', \r
+'rebooting' => 'Genstarter', \r
+'rebooting ipcop' => 'Genstarter IPCop', \r
+'reconnection' => 'Reconnecter', \r
+'references' => 'Referencer', \r
+'refresh' => 'Genopfrisk', \r
+'refresh index page while connected' => 'Opdater index.cgi mens der er connected', \r
+'refresh update list' => 'Genopfrisk opdateringslisten', \r
+'registered user rules' => 'Sourcefire VRT regler for registrerede brugere', \r
+'released' => 'Version', \r
+'remark' => 'Bemærk', \r
+'remark title' => 'Bemærk:', \r
+'remote access' => 'Fjernadgang', \r
+'remote host/ip' => 'Remote Host/IP', \r
+'remote logging' => 'Fjernlogning', \r
+'remote subnet' => 'Remote subnet:', \r
+'remote subnet is invalid' => 'Remote subnet er ulovligt.', \r
+'remove' => 'Fjern', \r
+'remove ca certificate' => 'Fjern CA certificat', \r
+'reserved dst port' => 'Destinationsport er reserveret for IPCop:', \r
+'reserved src port' => 'Sourceport er reserveret for IPCop:', \r
+'reset' => 'Reset', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Hvis du resetter VPN konfigurationen, vil du fjerne rod-CA, host-certifikatet samt alle certifikatbaserede opkoblinger', \r
+'restart' => 'Genstart', \r
+'restore' => 'Genopret', \r
+'restore defaults' => 'Genopret forvalgte værdier', \r
+'restore hardware settings' => 'Genskab hardware indstillinger', \r
+'reverse sort' => 'Sorter i omvendt kronologisk orden', \r
+'root certificate' => 'Root certifikat', \r
+'root path' => 'Sti til øverste niveau i filsystemet', \r
+'router ip' => 'Router IP adresse:', \r
+'routing table entries' => 'Adresser i routningstabellen', \r
+'rsvd dst port overlap' => 'Nummerrækkefølge for destinationsport overlapper port reserveret for IPCop:', \r
+'rsvd src port overlap' => 'Nummerrækkefølge for sourceport overlapper port reserveret for IPCop:', \r
+'rules already up to date' => 'Regler er allerede opdaterede', \r
+'running' => 'KØRER', \r
+'saturday' => 'lørdag', \r
+'save' => 'Gem', \r
+'save error' => 'Ikke muligt at gemme konfigurationsarkiv filen', \r
+'script name' => 'Scriptnavn:', \r
+'secondary dns' => 'Sekundær DNS:', \r
+'secondary ntp server' => 'Sekundær NTP Server', \r
+'secondary wins server address' => 'Adresse på alternativ WINS server', \r
+'seconds' => 'Sek.', \r
+'section' => 'Sektion', \r
+'sectors read from disk per second' => 'Sektorer læst fra disk per sekund', \r
+'sectors written to disk per second' => 'Sektorer skrevet til disk per sekund', \r
+'secure shell server' => 'Sikker shell server', \r
+'select' => 'Vælg', \r
+'select dest net' => 'Vælg et destinationsnet.', \r
+'select source net' => 'Vælg sourcenet. Har du ikke konfigureret et Orange eller Blåt net, er der ikke behov for DMZ-gennemgang.', \r
+'send cr' => 'ISP kræver linjeskift:', \r
+'september' => 'september', \r
+'serial' => 'Seriel', \r
+'service' => 'Tjeneste', \r
+'service added' => 'Tilrettet netværksservice tilføjet', \r
+'service name' => 'Tjenestenavn:', \r
+'service removed' => 'Tilrettet netværksservice slettet', \r
+'service updated' => 'Tilrettet netværksservice opdateret', \r
+'servicename' => 'Servicenavn', \r
+'services' => 'Tjenester:', \r
+'services settings' => 'Firewall - serviceindstillinger', \r
+'set time now' => 'Sæt tid nu', \r
+'set time now help' => 'For at sætte et synkroniseringsevent i kø til enhver tid (selvom der benyttes en repeterende plan) tryk på <i>Sæt tid nu</i> knappen. Vær opmærksom på, at der kan gå fem minutter eller mere, før synkronisering finder sted.', \r
+'settings' => 'Opsætninger', \r
+'shaping add options' => 'Tilføj service', \r
+'shaping list options' => 'Trafik shaping service', \r
+'shared' => 'delt', \r
+'shared memory' => 'Delt hukommelse', \r
+'show ca certificate' => 'Vis CA certifikat', \r
+'show certificate' => 'Vis certifikat', \r
+'show host certificate' => 'Vis host certifikat', \r
+'show root certificate' => 'Vis root certifikat', \r
+'shutdown' => 'Luk ned', \r
+'shutdown control' => 'Nedlukningskontrol', \r
+'shutdown2' => 'Luk ned:', \r
+'shutting down' => 'Lukker ned', \r
+'shutting down ipcop' => 'Nedlukker IPCop', \r
+'size' => 'Størrelse', \r
+'snort hits' => 'Totalt antal indtrængningsregler aktiveret for', \r
+'sort ascending' => 'Sorter stigende', \r
+'sort descending' => 'Sorter faldende', \r
+'sound' => 'Lyd', \r
+'source' => 'Source', \r
+'source ip' => 'Source IP', \r
+'source ip and port' => 'Source IP:Port', \r
+'source ip bad' => 'Ikke en lovlig IP- eller netværksadresse.', \r
+'source ip in use' => 'Source IP i brug:', \r
+'source ip or net' => 'Source - IP eller net', \r
+'source net' => 'Source net', \r
+'source network' => 'Source IP, eller netværk (blank for "ALLE"):', \r
+'source port' => 'Source port', \r
+'source port in use' => 'Source port er i brug:', \r
+'source port numbers' => 'Source port skal være indenfor en tilladt portrække.', \r
+'source port overlaps' => 'Portrække for sourceport overlapper en eksisterende portrække.', \r
+'speaker off' => 'Højtaler fra:', \r
+'speaker on' => 'Højtaler til:', \r
+'src port' => 'Src Port', \r
+'srcprt range overlaps' => 'Source portrække overlapper en allerede defineret port.', \r
+'srcprt within existing' => 'Source port er indenfor en allerede defineret portrække.', \r
+'ssdmz pinholes' => 'DMZ gennemgang', \r
+'ssh access' => 'SSH adgang', \r
+'ssh fingerprint' => 'Fingeraftryk', \r
+'ssh host keys' => 'SSH host signaturer', \r
+'ssh is disabled' => 'SSH er deaktiveret.  Stopper.', \r
+'ssh is enabled' => 'SSH er aktiveret.  Genstarter.', \r
+'ssh key' => 'Signatur', \r
+'ssh key size' => 'Størrelse (bits)', \r
+'ssh keys' => 'Tillad offentlig nøglebaseret autentifikation', \r
+'ssh no auth' => 'Du har ikke tilladt nogen autentifikationsmetode; du vil derfor ikke kunne logge dig på', \r
+'ssh passwords' => 'Tillad password baseret autentifikation', \r
+'ssh portfw' => 'Tillad TCP routening', \r
+'ssh1 disabled' => 'SSHv1 deaktiveret. En version 2 klient er påkrævet.', \r
+'ssh1 enabled' => 'SSHv1 er aktiveret. Gamle klienter er understøttet.', \r
+'ssh1 support' => 'Understøt SSH protokol version 1 (kun påkrævet for gamle klienter)', \r
+'ssnetwork status' => 'Netværksstatus', \r
+'sspasswords' => 'Passwords', \r
+'ssport forwarding' => 'Port forwarding', \r
+'ssproxy graphs' => 'Proxy grafer', \r
+'sssystem status' => 'Systemstatus', \r
+'sstraffic graphs' => 'Trafik grafer', \r
+'standard login script' => 'Standard login script', \r
+'start address' => 'Startadresse:', \r
+'state or province' => 'Amt', \r
+'static ip' => 'Statisk IP', \r
+'status' => 'Status', \r
+'status information' => 'Status information', \r
+'stopped' => 'STOPPET', \r
+'subject' => 'Emne', \r
+'subnet is invalid' => 'Netmasken er ulovlig', \r
+'subscripted user rules' => 'Sourcefire VRT regler med tilmelding', \r
+'successfully refreshed updates list' => 'Opfriskede updateringslisten.', \r
+'summaries kept' => 'Behold oversigt for', \r
+'sunday' => 'søndag', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Swap brug per', \r
+'system cpu' => 'System CPU', \r
+'system cpu usage' => 'System CPU brug', \r
+'system graphs' => 'System grafer', \r
+'system log viewer' => 'System log viser', \r
+'system logs' => 'System log', \r
+'system status information' => 'Information om systemstatus', \r
+'telephone not set' => 'Telefonnummer er ikke angivet.', \r
+'the following update was successfully installed' => 'Den følgende opdatering blev installeret', \r
+'the statistics were last updated at' => 'Statistikken blev senest opdateret', \r
+'there are updates' => 'Der er opdateringer tilgængelige for dit system. Gå til sektionen "Opdateringer" for mere information.', \r
+'there are updates available' => 'Der er opdateringer tilgængelig til dit system. Det er af stor væsentlighed, at du får opdateret dit system så hurtigt så muligt.', \r
+'there was no file upload' => 'Ingen fil blev uploadet.', \r
+'this feature has been sponsored by' => 'Denne funktion er blevet sponsoreret af', \r
+'this field may be blank' => 'Dette felt må være blank.', \r
+'this is not a valid archive' => 'Dette er ikke et lovligt arkiv.', \r
+'this is not an authorised update' => 'Dette er ikke en autoriseret opdatering.', \r
+'this update is already installed' => 'Denne opdatering er allerede installeret.', \r
+'thursday' => 'torsdag', \r
+'time' => 'Tid', \r
+'time date manually reset' => 'Tid/dato sat manuelt.', \r
+'time server' => 'Tidsserver', \r
+'timeout must be a number' => 'Timeout skal være et nummer.', \r
+'title' => 'Titel', \r
+'to' => 'til', \r
+'to install an update' => 'For at installere en opdatering skal nedenstående .tgz.gpg fil oplægges:', \r
+'toggle enable disable' => 'Aktiver eller deaktiver', \r
+'tone' => 'Tone', \r
+'tone dial' => 'Tone ring:', \r
+'total hits for log section' => 'Total antal hits for denne log sektion', \r
+'traffic on' => 'Trafik på', \r
+'traffic shaping' => 'Trafik shaping', \r
+'traffic shaping settings' => 'Trafik shaping opsætning', \r
+'transfer limits' => 'Overførselslimit', \r
+'transparent on' => 'Transparent på', \r
+'tuesday' => 'tirsdag', \r
+'type' => 'Type:', \r
+'unable to alter profiles while red is active' => 'Ændring af profil er ikke mulig sålænge RØD er aktiv.', \r
+'unable to contact' => 'Kunne ikke kontakte', \r
+'unencrypted' => 'Ukrypteret', \r
+'unknown' => 'UKENDT', \r
+'unnamed' => 'Unavngivet', \r
+'update' => 'Opdatering', \r
+'update time' => 'Opdater uret:', \r
+'update transcript' => 'Updater transcript', \r
+'updates' => 'Opdateringer', \r
+'updates installed' => 'Opdateringer installeret', \r
+'updates is old1' => 'Din opdateringsfil er', \r
+'updates is old2' => 'dage gammel. Det anbefales at opdatere det fra siden "Opdateringer".', \r
+'uplink speed' => 'Uplink hastighed (Kbit/sek)', \r
+'upload' => 'Oplæg', \r
+'upload a certificate' => 'Upload et certifikat:', \r
+'upload a certificate request' => 'Upload et certifikat forespørgsel:', \r
+'upload ca certificate' => 'Upload CA certifikat', \r
+'upload fcdsl.o' => 'Upload fcdsl.o', \r
+'upload file' => 'Oplæg fil', \r
+'upload p12 file' => 'Upload PKCS12 fil', \r
+'upload successful' => 'Oplægning gennemført.', \r
+'upload synch.bin' => 'Oplæg synch.bin', \r
+'upload update file' => 'Oplæg opdateringsfil:', \r
+'upstream password' => 'Upstream password:', \r
+'upstream proxy host:port' => 'Udgående proxy (host:port)', \r
+'upstream username' => 'Upstream brugernavn:', \r
+'uptime and users' => 'Oppetid og brugere:', \r
+'usb modem on acm0' => 'USB modem på ACM0', \r
+'usb modem on acm1' => 'USB modem på ACM1', \r
+'usb modem on acm2' => 'USB modem på ACM2', \r
+'usb modem on acm3' => 'USB modem på ACM3', \r
+'use' => 'Brug', \r
+'use a pre-shared key' => 'Brug en forvalgt fælles nøgle:', \r
+'use dov' => 'Brug DOV (Data Over Voice)', \r
+'use ibod' => 'Brug båndbredde efter behov - BOD (iBOD):', \r
+'use ipcop red ip' => 'Det klassiske RØDE IP brugt af IPCop ved tilslutning', \r
+'use only proposed settings' => 'Brug kun foreslåede indstillinger.', \r
+'used' => 'I brug', \r
+'used memory' => 'Brugt hukommelse', \r
+'used swap' => 'Brugt swap', \r
+'user cpu' => 'Bruger CPU', \r
+'user cpu usage' => 'Bruger CPU brug', \r
+'username' => 'Brugernavn:', \r
+'username not set' => 'Brugernavn er ikke angivet.', \r
+'users department' => 'Brugers afdeling', \r
+'users email' => 'Brugers email adresse', \r
+'users fullname or system hostname' => 'Brugers fulde navn eller systemets hostnavn', \r
+'valid root certificate already exists' => 'Et validt rodcertifikat eksisterer allerede.', \r
+'vci number' => 'VCI nummer:', \r
+'virtual private networking' => 'Virtuelt privat netværk (VPN)', \r
+'vpi number' => 'VPI nummer:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN konfiguration - hoveddel', \r
+'vpn delayed start' => 'Vent med opstart af VPN (sekunder)', \r
+'vpn delayed start help' => 'Hvis det er nødvendigt, kan afventning for opstart af VPN sikre at opdatering af Dynamisk DNS effektueres. 60 er den normale værdi, når RØD har dynamisk IP.', \r
+'vpn on blue' => 'VPN på BLÅ', \r
+'waiting to synchronize clock' => 'Venter på at synkronisere uret', \r
+'warning messages' => 'Advarselsmeddelelser', \r
+'web hits' => 'Totalt antal af websites der matcher valgte kriterier for', \r
+'web proxy' => 'Web proxy', \r
+'web proxy configuration' => 'Web proxy konfiguration', \r
+'web server' => 'Web server', \r
+'website' => 'Website', \r
+'wednesday' => 'onsdag', \r
+'week' => 'Uge', \r
+'weeks' => 'uger', \r
+'wildcards' => 'Jokere', \r
+'wireless' => 'Trådløs', \r
+'wireless config added' => 'Trådløs config tilføjet', \r
+'wireless config changed' => 'Trådløs config ændret', \r
+'wireless configuration' => 'Konfiguration af trådløs', \r
+'written sectors' => 'Skrevne sektorer', \r
+'xtaccess all error' => 'Du kan ikke sætte en eksterne tilgang til ALLE, det skal gøres i portforwarding.', \r
+'year' => 'År', \r
+'yes' => 'ja', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Du kan kun definere en Roadwarrior opkobling, når du benytter pre-delt nøgle autentifikation.<br />Enten har du allerede en Roadwarrior opkobling, eller også prøver du at tilføje en nu.', \r
+'your department' => 'Din afdeling', \r
+'your e-mail' => 'Din email adresse', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/da/install/CVS/Entries b/langs/da/install/CVS/Entries
new file mode 100644 (file)
index 0000000..2add020
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_da.c/1.7.2.9/Fri Jan 13 08:50:19 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/da/install/CVS/Repository b/langs/da/install/CVS/Repository
new file mode 100644 (file)
index 0000000..5f66ea8
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/da/install
diff --git a/langs/da/install/CVS/Root b/langs/da/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/da/install/CVS/Tag b/langs/da/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/da/install/lang_da.c b/langs/da/install/lang_da.c
new file mode 100644 (file)
index 0000000..7cfb3fd
--- /dev/null
@@ -0,0 +1,508 @@
+/*\r
+ * Danish (da) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Michael Rasmussen\r
+ *  \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *da_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Adresseindstilling",\r
+/* TR_ADMIN_PASSWORD */\r
+"Admin password",\r
+/* TR_AGAIN_PROMPT */\r
+"Igen:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Alle kort fik korrekt tildelt driver.",\r
+/* TR_AUTODETECT */\r
+"* AUTOSØGNING *",\r
+/* TR_BUILDING_INITRD */\r
+"Bygger INITRD...",\r
+/* TR_CANCEL */\r
+"Afbryd",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Tildel kort",\r
+/* TR_CHECKING */\r
+"Undersøger URL...",\r
+/* TR_CHECKING_FOR */\r
+"Undersøger for: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Vælg ISDN kort installeret i denne computer.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Vælg den ISDN protokol du bruger.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Konfigurer DHCP serveren ved at indtaste information om indstilling.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Konfigurer netværket",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Du skal nu konfigurere netværketet ved først at indlæse korrekt driver for det GRØNNE interface. Du kan gøre dette enten ved autosøgning for et netkort, eller ved at vælge korrekt driver fra en liste. Bemærk, hvis du har mere end et netkort installeret, er det muligt senere i installationen at konfigurere de øvrige netkort. Bemærk også, hvis du har flere end et kort af samme type som det GRØNNE, og hvert netkort kræver særlige parametre, skal du indtaste parametre for alle kort samtidigt, så alle netkort kan aktiveres, når du skal konfigurere det GRØNNE interface.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Konfigurer netværksdriver og hvilket interface, hvert kort skal tildeles.  Nuværende konfiguration ser ud på følgende måde:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Konfigurer CDROM drevet ved at vælge korrekt IO adresse og/eller IRQ.",\r
+/* TR_CONGRATULATIONS */\r
+"Tillykke!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"Installering af %s gik godt. Fjern venligst enhver diskette eller CDROM fra maskinen. Setup vil nu blive afviklet, så du kan konfigurere ISDN,  netværkskort og system password. Efter gennemførelse af Setup skal du kalde adressen http://%s:81 eller https://%s:445 (eller det navn du gav din %s) fra din browser, og konfigurere din modemforbindelse (hvis det er krævet) og fjernadgang. Husk at angive et password for %s 'dial' brugeren, hvis du vil have, at ingen %s 'admin' brugere skal kunne kontrollere forbindelsen.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Din harddisk er meget lille, du kan dog forsætte uden aktivering af swap. (Kan ikke anbefales).",\r
+/* TR_CURRENT_CONFIG */\r
+"Nuværende konfiguration: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Forvalgt Gateway:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Forvalgt Gateway\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Forvalgt udløb (min):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Forvalgt udløbstid\n",\r
+/* TR_DETECTED */\r
+"Fundet et: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"DHCP hostnavn:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"DHCP hostnavn\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"DHCP server konfiguration",\r
+/* TR_DISABLED */\r
+"Deaktiveret",\r
+/* TR_DISABLE_ISDN */\r
+"Deaktiver ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"Din harddisk er for lille.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"DNS og Gateway indstillinger",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Indtast DNS og gateway information.  Disse indstillinger bliver kun brugt, hvis DHCP er deaktiveret på det RØDE interface.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Din konfiguration indeholder ikke opsætning af et ethernet kort for det RØDE interface.  DNS og Gateway information for ring op brugere vil blive konfigureret automatisk på opringningstidspunktet.",\r
+/* TR_DOMAINNAME */\r
+"Domænenavn",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Domænenavn skal være udfyldt.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Domænenavn må ikke indeholde mellemrum.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Domænenavn må kun indeholde bogstaver, numre, bindestreger og punkttummer.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Domænenavn suffix:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Domænenavn suffix\n",\r
+/* TR_DONE */\r
+"Udført",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nØnsker du at ændre disse indstillinger?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Driver og kort indstillinger",\r
+/* TR_ENABLED */\r
+"Aktiveret",\r
+/* TR_ENABLE_ISDN */\r
+"Aktiver ISDN",\r
+/* TR_END_ADDRESS */\r
+"Slut adresse:",\r
+/* TR_END_ADDRESS_CR */\r
+"Slut adresse\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Nogle ISDN kort (specielt ISA kort) kræver muligvis ekstra modulparametre for at indstille IRQ og IO adresse information. Hvis du har et sådan ISDN kort, skal du indtaste disse parametre her. For eksempel: \"io=0x280 irq=9\". De bliver brugt ved søgning af kort.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Indtast %s admin password.  Det er denne bruger, der skal benyttes, når du skal have adgang til %s web administrationsiderne.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Indtast domænenavn",\r
+/* TR_ENTER_HOSTNAME */\r
+"Indtast hostnavn for maskinen.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Indtast IP adresse information",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Automatisk detektering af netkort fejlede. Indtast driver og valgfrie parametre for netkortet.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Indtast 'root' brugerens password. Login som denne bruger giver kommandolinje adgang.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Indtast 'setup' brugerens password. Login som denne bruger for at få adgang til setup programmet.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Indtast IP adresse information for %s interfacet.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Indtast det lokale telefonnummer (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Indtast URL til ipcop-<version>.tgz og images/scsidrv-<version>.img filer. ADVARSEL: DNS er ikke tilgængelig! Derfor skal dette kun være http://X.X.X.X/<katalog>",\r
+/* TR_ERROR */\r
+"Fejl",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Fejl ved skrivning af konfigurationsinformation.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Udpakker moduler...",\r
+/* TR_FAILED_TO_FIND */\r
+"Kunne ikke finde URL fil.",\r
+/* TR_FOUND_NIC */\r
+"%s har fundet det følgende NIC i din maskine: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"Tysk 1TR6",\r
+/* TR_HELPLINE */\r
+"              <Tab>/<Alt-Tab> Imellem elementer   |  <Mellemrum> vælger",\r
+/* TR_HOSTNAME */\r
+"Hostnavn",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Hostnavn skal være udfyldt.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Hostnavn må ikke indeholde blanktegn.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Hostnavnet må kun indeholde bogstaver, numre og bindestreger.",\r
+/* TR_INITIALISING_ISDN */\r
+"Initialiserer ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Indsæt venligst %s CD i CDROM drevet.",\r
+/* TR_INSERT_FLOPPY */\r
+"Indsæt venligst disketten med %s drivere til netværk i diskette drevet.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Installation er afbrudt.",\r
+/* TR_INSTALLING_FILES */\r
+"Installerer filer...",\r
+/* TR_INSTALLING_GRUB */\r
+"Installerer GRUB...",\r
+/* TR_INTERFACE */\r
+"%s interface",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Interface kunne ikke aktiveres.",\r
+/* TR_INVALID_FIELDS */\r
+"De følgende felter er ulovlige:\n\n",\r
+/* TR_INVALID_IO */\r
+"Den valgte IO adresse er ulovlig. ",\r
+/* TR_INVALID_IRQ */\r
+"Det valgte IRQ nummer er ulovlig.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP adresse\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP adresse:",\r
+/* TR_ISDN_CARD */\r
+"ISDN kort",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"ISDN kort er ikke blevet fundet. Du skal angive ekstra modulparametre, hvis kortet er af typen ISA, eller det har andre specielle krav.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"ISDN kortvalg",\r
+/* TR_ISDN_CONFIGURATION */\r
+"ISDN konfiguration",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"ISDN cknfigurationsmenu",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN er ikke sat op. Nogle emner er ikke valgt.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN er ikke blevet konfigureret endnu. Vælg det emne du ønsker at konfigurere.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"ISDN protokol udvælgelse",\r
+/* TR_ISDN_STATUS */\r
+"ISDN er i øjeblikket %s.\n\n   Protokol: %s\n   Kort: %s\n   Lokalt telefonnummer: %s\n\nVælg det emne du ønsker at rekonfigurere, eller vælg nuværende opsætning.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Tastaturudlægning",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Vælg den type af tastatur, du benytter, fra listen nedenfor.",\r
+/* TR_LEASED_LINE */\r
+"Leased line",\r
+/* TR_LOADING_MODULE */\r
+"Indlæser modul...",\r
+/* TR_LOADING_PCMCIA */\r
+"Indlæser PCMCIA moduler...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Leder efter: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Opretter boot filsystemet...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Opretter log filsystemet...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Laver root filsystemet...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Opretter swapfilen...",\r
+/* TR_MANUAL */\r
+"* MANUEL *",\r
+/* TR_MAX_LEASE */\r
+"Maksimal udløb (min):",\r
+/* TR_MAX_LEASE_CR */\r
+"Maksimal udløbstid\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Mangler IP information for det BLÅ interface.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Mangler IP information for det ORANGE interface.",\r
+/* TR_MISSING_RED_IP */\r
+"Mangler IP information for det RØDE interface.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Modulnavn kan ikke være blank.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Indtast modulnavn og parametre for den ønskede driver.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Monterer boot filsystemet...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Monterer log filsystemet...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Monterer root filsystemet...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Monterer swap partitionen...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Lokalt telefonnummer (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Netværksmaske:",\r
+/* TR_NETWORKING */\r
+"Netværk",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Netværksadresse\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Netværksadresse:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Netværk konfigurationsmenu",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Network konfigurationstype",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Vælg netværkskonfiguration for %s. De følgende konfigurationstyper har interfaces med tildelt ethernet. Ændrer du disse indstillinger, skal netværket genstartes, og du må samtidigt rekonfigurere indstillingerne for netværksdriverne.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Netværksmaske\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Opsætning af netværk fejlede.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Du har ikke tildelt et tilstrækkeligt antal kort.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Intet BLÅT interface tilsluttet.",\r
+/* TR_NO_CDROM */\r
+"Kunne ikke finde CD-ROM.",\r
+/* TR_NO_HARDDISK */\r
+"Kunne ikke finde en harddisk.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Ingen ipcop tar-pakke fundet på webserveren.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Intet ORANGE interface tildelt.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Intet RØDT interface tildelt.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Intet SCSI image fundet på webserveren.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Der findes ikke flere utildelte kort, flere kort kræves. Du kan bruge autosøgning og lede efter flere kort, eller vælge en driver fra listen.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Partitionere harddisken...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Passwords er forskellige.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Password må ikke være blankt.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Password må ikke indeholde blanktegn.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Password:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Telefonnummer skal angives.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Installationsprogrammet vil nu forberede harddisken på %s. Først bliver disken partitioneret, og bagefter bliver der skrevet et filsystem på partitionerne.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Tryk Ok for at genstarte.",\r
+/* TR_PRIMARY_DNS */\r
+"Primær DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Primær DNS\n",\r
+/* TR_PROBE */\r
+"Søg",\r
+/* TR_PROBE_FAILED */\r
+"Automatisk undersøgelse fejlede.",\r
+/* TR_PROBING_SCSI */\r
+"Søger efter SCSI enheder...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Fejl ved skrivning af %s admin password.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Fejl under skrivning af 'root' password.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Fejl under skrivning af 'setup' password.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protokol/land",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Åbner for netværk...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Lukker for netværk...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Lukker eksternt nedværk ned...",\r
+/* TR_QUIT */\r
+"Slut",\r
+/* TR_RED_IN_USE */\r
+"ISDN (eller en anden ekstern forbindelse) er aktiv i øjeblikket.  Du kan ikke konfigurere ISDN mens det RØDE interface er aktivt.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nNår konfiguration er gennemført, skal netværket genstartes.",\r
+/* TR_RESTORE */\r
+"Genskab",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Hvis du har en diskette med en konfigurationsfil for %s, skal du indsætte den i diskettedrevet, og trykke på knappen for genskab.",\r
+/* TR_ROOT_PASSWORD */\r
+"'root' password",\r
+/* TR_SECONDARY_DNS */\r
+"Sekondær DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Sekondær DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Sekondær DNS er angivet uden en Primær DNS",\r
+/* TR_SECTION_MENU */\r
+"Menu sektion",\r
+/* TR_SELECT */\r
+"Vælg",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Vælg CDROM type",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Ingen CDROM blev fundet i denne maskine.  Vælg venligst en af følgende drivere, du vil benytte, så %s kan tilgå CDROM drevet.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Vælg installationsmedie",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s kan installeres fra flere kilder.  Det enkleste er at benytte maskinens CDROM drev. Findes der ikke CDROM drev på maskinen, kan du installere via en anden maskine på netværket, der har installationsfiler tilgængelig via HTTP. I dette tilfælde er disketten med drivere til netværk påkrævet.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Vælg netværksdriver",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Vælg netværksdriver for det installerede kort i denne maskine. Valgte du MANUEL, får du mulighed for at indtaste moduldriver navn og parametre for driveren, dersom den kræver specielle indstillinger, såsom et ISA kort.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Vælg det interface du vil rekonfigurere.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Vælg det emne du ønsker at konfigurere.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Skriver %s admin password....",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Skriver 'root' password....",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Skriver 'setup' password....",\r
+/* TR_SETUP_FINISHED */\r
+"Setup er færdig.  Pres Ok for at genstarte.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Initial setup blev ikke fuldt gennemført.  Du skal sikre dig, at Setup er korrekt afsluttet ved at afvikle setup igen fra en shell.",\r
+/* TR_SETUP_PASSWORD */\r
+"'setup' password",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Tilføj ekstra modulparametre",\r
+/* TR_SINGLE_GREEN */\r
+"Din konfiguration er indstillet til et enkelt GRØNT interface.",\r
+/* TR_SKIP */\r
+"Spring over",\r
+/* TR_START_ADDRESS */\r
+"Start adresse:",\r
+/* TR_START_ADDRESS_CR */\r
+"Start adresse\n",\r
+/* TR_STATIC */\r
+"Statisk",\r
+/* TR_SUGGEST_IO */\r
+"(prøv %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(prøv %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Dette driver modul er allerede indlæst.",\r
+/* TR_TIMEZONE */\r
+"Tidszone",\r
+/* TR_TIMEZONE_LONG */\r
+"Vælg din tidszone fra nedenstående liste.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Kunne ikke åbne CDROM drevet.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Det var ikke muligt at udpakke modulerne.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Kunne ikke finde ekstra drivere.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Det var ikke muligt at finde et ISDN kort i denne computer. Du skal angive ekstra modulparametre, hvis kortet er af typen ISA, eller det har andre specielle krav.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Initialisering af ISDN var ikke mulig.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Installering af filer var ikke mulig.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Installering af GRUB var ikke mulig.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Driver modul kunne ikke indlæses.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Oprettelse af boot filsystemet var ikke mulig.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Oprettelse af log filsystemet var ikke mulig.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Oprettelse af root filsystemet var ikke mulig.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Oprettelse af swapfilen var ikke mulig.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Kunne ikke oprette symbolsk link til /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Kunne ikke oprette symbolsk link til /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Kunne ikke oprette symbolsk link til /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Kunne ikke oprette symbolsk link til /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Kunne ikke oprette symbolsk link til /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Kunne ikke lave symbolsk link til /dev/root",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Montering af boot filsystemet var ikke mulig.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Montering af log filsystemet var ikke mulig.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Montering af proc filsystemet var ikke mulig.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Montering af root filsystemet var ikke mulig.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Montering af swap partitionen var ikke mulig.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Kunne ikke åbne hosts-filen.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Ikke muligt at åbne indstillingsfilen",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Partitionering af harddisken var ikke mulig.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Kunne ikke fjerne de midlertidigt hentede filer.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Kunne ikke sætte hostnavn.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Afmontering af CDROM/diskettedrev var ikke mulig.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Afmontering af harddisk var ikke mulig.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Kunne ikke skrive /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Kunne ikke skrive /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Kunne ikke oprette /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Kunne ikke oprette /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Kunne ikke oprette /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Kunne ikke oprette %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Kunne ikke oprette %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Kunne ikke oprette %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Der findes et ethernet kort af type:\n%s, der ikke har tildelt nogen driver\n\nDu kan tildele det til:",\r
+/* TR_UNKNOWN */\r
+"UKENDT",\r
+/* TR_UNSET */\r
+"NULSTIL",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"Denne USB nøgle kan ikke anvendes (ingen vfat partitioner fundet).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"ADVARSEL",\r
+/* TR_WARNING_LONG */\r
+"Hvis du ændrer denne IP adresse, og du er logget på via fjernopkobling, bliver din forbindelse til denne %s maskine afbrudt, og du vil derfor skulle oprette forbindelse til den nye IP adresse. Dette er en risikabel operation, og bør kun gennemføres, hvis du har fysisk adgang til maskinen, i tilfælde af at noget går galt.",\r
+/* TR_WELCOME */\r
+"Velkommen til %ss installationsprogram. Hvis du vælger afbryd på nogen af de følgende skærmbilleder, vil få maskinen til at genstarte.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Du har kun konfigureret for et enkelt GRØNT interface, der allerede har tildelt en driver.",\r
+}; \r
+  \r
diff --git a/langs/de/CVS/Entries b/langs/de/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/de/CVS/Repository b/langs/de/CVS/Repository
new file mode 100644 (file)
index 0000000..59f9707
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/de
diff --git a/langs/de/CVS/Root b/langs/de/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/de/CVS/Tag b/langs/de/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/de/cgi-bin/CVS/Entries b/langs/de/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..438f528
--- /dev/null
@@ -0,0 +1,2 @@
+/de.pl/1.9.2.54/Thu Feb  2 14:18:44 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/de/cgi-bin/CVS/Repository b/langs/de/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..011024a
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/de/cgi-bin
diff --git a/langs/de/cgi-bin/CVS/Root b/langs/de/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/de/cgi-bin/CVS/Tag b/langs/de/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
new file mode 100644 (file)
index 0000000..30cbd81
--- /dev/null
@@ -0,0 +1,955 @@
+# German (de) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Dirk Loss, Ludwig Steininger, Michael Knappe, Michael Linke,\r
+# Richard Hartmann, Ufuk Altinkaynak, Gerhard Abrahams, Benjamin Kohberg,\r
+# Samuel Wiktor \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Ein CA-Zertifikat mit diesem Namen existiert bereits.', \r
+'a connection with this common name already exists' => 'Eine Verbindung mit diesem gemeinsamen Namen existiert bereits.', \r
+'a connection with this name already exists' => 'Eine Verbindung mit diesem Namen existiert bereits.', \r
+'access allowed' => 'Zugriff erlaubt von:', \r
+'access refused with this oinkcode' => 'Zugriff mit diesem Oink Code verweigert', \r
+'action' => 'Aktion', \r
+'add' => 'Hinzufügen', \r
+'add a host' => 'Host hinzufügen:', \r
+'add a new rule' => 'Neue Regel hinzufügen:', \r
+'add device' => 'Gerät hinzufügen', \r
+'add network' => 'Netzwerk hinzufügen', \r
+'add new alias' => 'Neue Alias-Adresse hinzufügen:', \r
+'add new lease' => 'Neue Zuordnung definieren', \r
+'add service' => 'Dienst hinzufügen', \r
+'add xtaccess' => 'Externen Zugang hinzugefügt', \r
+'added from dhcp lease list' => 'hinzugefügt von der DHCP Zuordnungsliste', \r
+'admin user password has been changed' => 'Passwort für Benutzer admin wurde geändert.', \r
+'administrator user password' => 'Passwort für Benutzer &quot;admin&quot;:', \r
+'adsl settings' => 'ADSL-Einstellungen', \r
+'advanced' => 'Erweitert', \r
+'again' => 'Wiederholung:', \r
+'alcatelusb help' => 'Um das Speedtouch USB Modem zu verwenden, müssen Sie die Firmware in Ihre IPCop Box hochladen. Bitte laden sie das <b>Embedded Firmware</b> Paket von speedtouch.com herunter, entpacken es und laden dann die passende Datei für Ihr Modem hoch: KQD6_3.xxx für Revisionsnummern <4 oder ZZZL_3.xxx für Rev.=4 mittels des unten angegebenen Formulars.', \r
+'alcatelusb upload' => 'Speedtouch USB Firmware hochladen', \r
+'alias ip' => 'Alias-IP-Adresse', \r
+'aliases' => 'Aliase', \r
+'aliases not active' => 'Aliase-Adresse wird erst aktiviert, wenn Ihr ROTES Interface STATISCH ist', \r
+'all' => 'Alle', \r
+'all interfaces' => 'Alle Schnittstellen', \r
+'all updates installed' => 'Alle Updates installiert', \r
+'alt dialup' => 'Einwahl', \r
+'alt home' => 'Startseite', \r
+'alt information' => 'Information', \r
+'alt logs' => 'Logs', \r
+'alt services' => 'Dienste', \r
+'alt system' => 'System', \r
+'alt vpn' => 'VPNs', \r
+'and' => 'Und', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Jetzt anwenden', \r
+'april' => 'April', \r
+'archive not exist' => 'Konfigurationsarchiv existiert nicht', \r
+'are you sure' => 'Sind Sie sicher?', \r
+'arp table entries' => 'Einträge der ARP-Tabelle:', \r
+'august' => 'August', \r
+'authentication' => 'Authentifizierung:', \r
+'automatic' => 'Automatisch', \r
+'available updates' => 'Verfügbare Updates:', \r
+'average' => 'Durchschnitt', \r
+'avoid dod' => 'Benutzen Sie diese Option nicht mit Dial on Demand! Wird hautpsächlich verwendet, wenn ihr IPCop sich hinter einem Router befindet. Ihre ROTE IP muß sich innerhalb eines der drei reservierten Netzwerkbereiche befinden z.B. 10/8, 172.16/12, 192.168/16.', \r
+'back' => 'ZURÜCK', \r
+'backup' => 'Datensicherung', \r
+'backup config floppy' => 'Backup-Konfiguration - Diskette', \r
+'backup configuration' => 'Backup-Konfiguration:', \r
+'backup sets' => 'Datensicherungssätze', \r
+'backup to floppy' => 'Datensicherung auf Diskette', \r
+'backupprofile' => 'Falls die Wiederverbindung scheitert, auf Profil umschalten', \r
+'bad characters in script field' => 'Nicht erlaubte Zeichen im Skriptnamen', \r
+'bad characters in the telephone number field' => 'Nicht erlaubte(s) Zeichen im Feld Telefonnummer.', \r
+'bad destination range' => 'Der erste Wert des Zielportbereichs ist größer oder gleich dem zweiten Wert.', \r
+'bad ignore filter' => 'Falscher &quot;Ignorieren&quot;-Filter:', \r
+'bad return code' => 'Das Hilfsprogramm hat einen Fehlercode gemeldet', \r
+'bad source range' => 'Der erste Wert des Quellportbereich ist größer oder gleich dem zweiten Wert.', \r
+'beep when ppp connects or disconnects' => 'Piepen, wenn IPCop verbindet oder trennt', \r
+'behind a proxy' => 'Hinter einem Proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'BLAU', \r
+'blue access' => 'Zugriff auf Blau', \r
+'blue interface' => 'Blaues Interface', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Zerbrochene Pipe', \r
+'buffered memory' => 'Gepuff. Speicher', \r
+'buffers' => 'Puffer', \r
+'bytes per second' => 'Bytes pro Sekunde', \r
+'ca certificate' => 'CA Zertifikat', \r
+'ca name' => 'CA Name', \r
+'cache management' => 'Cache Verwaltung', \r
+'cache size' => 'Cache-Größe (MB):', \r
+'cached' => 'zwischengespeichert', \r
+'cached memory' => 'Cache Speicher', \r
+'cancel' => 'Abbrechen', \r
+'cannot enable both nat traversal and compression' => 'NAT Traversal und Kompression können nicht gleichzeitig aktiviert sein.', \r
+'cannot enable ntp without specifying primary' => 'NTP kann nicht aktiviert werden, ohne vorherige Eingabe in \'primär\'.', \r
+'cannot specify secondary dns without specifying primary' => 'Sekundärer DNS kann nicht ohne primären angegeben werden.', \r
+'cannot specify secondary ntp without specifying primary' => 'Kann ohne ersten NTP Server keinen zweiten spezifizieren', \r
+'cannot specify secondary wins without specifying primary' => 'Sekundärer WINS kann ohne einen primären nicht angegeben werden.', \r
+'cant change certificates' => 'Kann Zertifikate nicht ändern.', \r
+'cant enable xtaccess' => 'Die zugehörige Port-Weiterleitungsregel ist deaktiviert, daher können Sie den externen Zugang für diese Regel nicht aktivieren.', \r
+'cant start openssl' => 'Kann OpenSSL nicht starten', \r
+'caps all' => 'ALLE', \r
+'capsclosed' => 'BEENDET', \r
+'capsopen' => 'OFFEN', \r
+'capswarning' => 'WARNUNG', \r
+'cert' => 'Zertifikat', \r
+'certificate' => 'Zertifikat', \r
+'certificate authorities' => 'Zertifizierungsstellen (CAs)', \r
+'certificate does not have a valid ca associated with it' => 'Mit dem Zertifikat ist keine gültige CA verbunden.', \r
+'certificate file move failed' => 'Verschieben der Zertifikatsdatei fehlgeschlagen', \r
+'cfg restart' => 'Nach dem Wiederherstellen eines Konfigurationsarchivs wird ein Neustart empfohlen.', \r
+'chain' => 'Verknüpfung', \r
+'change passwords' => 'Passwörter&nbsp;ändern', \r
+'check vpn lr' => 'Überprüfen', \r
+'city' => 'Stadt', \r
+'clear cache' => 'Zwischenspeicher löschen', \r
+'clenabled' => 'Uhrzeit dem lokalen Netzwerk zur Verfügung stellen', \r
+'click to disable' => 'Aktiviert (klicken, um zu deaktivieren)', \r
+'click to enable' => 'Deaktiviert (klicken, um zu aktivieren)', \r
+'clock has not been synchronized' => 'Die Uhr wurde nicht synchronisiert', \r
+'clock last synchronized at' => 'Die Uhr wurde zuletzt synchronisiert um', \r
+'common name' => 'Gemeinsamer Name', \r
+'compression' => 'Kompression:', \r
+'computer to modem rate' => 'Übertragungsrate zwischen Computer und Modem:', \r
+'concentrator name' => 'Name des Konzentrators:', \r
+'confirmation' => 'Bestätigung', \r
+'connect on ipcop restart' => 'Verbinden bei IPCop-Neustart', \r
+'connect the modem' => 'Das Modem anschließen', \r
+'connect timeout' => 'Anwahl-Wartezeit:', \r
+'connected' => 'Verbunden', \r
+'connecting' => 'Baue Verbindung auf...', \r
+'connection' => 'Verbindung', \r
+'connection debugging' => 'Verbindungs-Debugging', \r
+'connection status and controlc' => 'Verbindungsstatus und -kontrolle:', \r
+'connection tracking' => 'IPTables-Verbindungsverfolgung', \r
+'connection type' => 'Verbindungstyp', \r
+'connection type is invalid' => 'Verbindungstyp ist ungültig', \r
+'connections' => 'Verbindungen', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'Es sind noch Verbindungen mit dieser CA verknüpft.  Das Löschen dieser CA wird diese Verbindungen ebenfalls löschen.', \r
+'could not be opened' => 'konnte nicht geöffnet werden', \r
+'could not connect to' => 'Konnte keine Verbindung herstellen mit', \r
+'could not connect to www ipcop org' => 'Keine Verbindung zu www.ipcop.org möglich', \r
+'could not create directory' => 'Verzeichnis konnte nicht erzeugt werden.', \r
+'could not download latest patch list' => 'Die neueste Update-Liste konnte nicht heruntergeladen werden (keine Verbindung).', \r
+'could not download latest updates' => 'Konnte die neuesten Updates nicht downloaden.', \r
+'could not download the available updates list' => 'Die Update-Liste konnte nicht heruntergeladen werden.', \r
+'could not open available updates file' => 'Die vorhandene Update-Datei konnte nicht geöffnet werden.', \r
+'could not open installed updates file' => 'Datei mit Update-Liste konnte nicht geöffnet werden', \r
+'could not open update information file' => 'Datei mit den Update-Information konnte nicht geöffnet werden. Die Update-Datei ist beschädigt.', \r
+'could not retrieve common name from certificate' => 'Der Gemeinsame Name (CN) konnte nicht aus dem Zertifikat gelesen werden.', \r
+'country' => 'Land', \r
+'cpu usage per' => 'CPU-Nutzung pro', \r
+'create' => 'Erzeuge', \r
+'credits' => 'Dank an ..', \r
+'cron server' => 'Cron-Server', \r
+'current' => 'Aktuell', \r
+'current aliases' => 'Aktuelle Alias-Adresse:', \r
+'current dhcp leases on blue' => 'Aktuelle DHCP Zuordnungen auf Blau', \r
+'current dynamic leases' => 'Aktuelle dynamische Zuordnungen', \r
+'current fixed leases' => 'Aktuelle feste Zuordnungen', \r
+'current hosts' => 'Aktuelle Hosts:', \r
+'current profile' => 'Aktuelles Profil:', \r
+'current rules' => 'Aktuelle Regeln:', \r
+'custom networks' => 'Benutzerdefinierte Netzwerke', \r
+'custom services' => 'Benutzerdefinierte Dienste', \r
+'dat without key' => 'Ein verschlüsseltes Archiv kann ohne Schlüssel nicht wiederhergestellt werden.', \r
+'date' => 'Datum', \r
+'date not in logs' => 'Für den gesuchten Tag existiert kein (oder nur ein unvollständiges) Log', \r
+'day' => 'Tag', \r
+'day after' => 'Tag danach', \r
+'day before' => 'Tag davor', \r
+'days' => 'Tage', \r
+'ddns hostname added' => 'Hostname für dynamischen DNS hinzugefügt', \r
+'ddns hostname modified' => 'Hostname für dynamischen DNS geändert', \r
+'ddns hostname removed' => 'Hostname für dynamischen DNS gelöscht', \r
+'ddns minimize updates' => 'Updates minimieren: Vergleicht vor einem Update die DNS-IP-Adresse für Hostname "[host.]domain" gegen die ROTE IP-Addresse.', \r
+'ddns noip prefix' => 'Um no-ip im Gruppenmodus zu benutzen, dem Hostnamen <b>%</b> hinzufügen', \r
+'december' => 'Dezember', \r
+'def lease time' => 'Standardzeit für Zuordnung', \r
+'default lease time' => 'Haltezeit-Voreinstellung in min:', \r
+'default networks' => 'Standard Netzwerke', \r
+'default renewal time' => 'Standard-Aktualisierungszeit', \r
+'default services' => 'Standard Dienste', \r
+'delete' => 'Löschen', \r
+'demon login script' => 'Demon-Anmeldeskript', \r
+'description' => 'Beschreibung', \r
+'dest ip and port' => 'Ziel-IP:Port', \r
+'destination' => 'Ziel', \r
+'destination ip' => 'Ziel-IP-Adresse', \r
+'destination ip bad' => 'Ungültige Ziel-IP-Adresse', \r
+'destination ip or net' => 'Ziel-IP oder Netz', \r
+'destination net' => 'Ziel-Netz', \r
+'destination port' => 'Ziel-Port', \r
+'destination port numbers' => 'Zielport muß ein(e) gültige(r) Portnummer oder Portbereich sein.', \r
+'destination port overlaps' => 'Der Zielportbereich überlappt einen bereits bestehenden Portbereich.', \r
+'detail level' => 'Detaillierungsgrad', \r
+'device' => 'Gerät', \r
+'devices on blue' => 'Geräte auf Blau', \r
+'dhcp advopt add' => 'DHCP Option hinzufügen', \r
+'dhcp advopt added' => 'DHCP Option hinzugefügt', \r
+'dhcp advopt blank value' => 'Wert für DHCP Option darf nicht leer sein', \r
+'dhcp advopt custom definition' => 'Definition ihrer benutzerdefinierten Option ', \r
+'dhcp advopt definition' => 'Definition', \r
+'dhcp advopt definition exists' => 'Definitionsoption existiert bereits. Sie können sie nur bearbeiten oder entfernen.', \r
+'dhcp advopt edit' => 'DHCP Option editieren', \r
+'dhcp advopt help' => 'Optionen auflisten', \r
+'dhcp advopt list' => 'Liste der DHCP Optionen', \r
+'dhcp advopt modified' => 'DHCP Option modifiziert', \r
+'dhcp advopt name' => 'Optionsname', \r
+'dhcp advopt removed' => 'DHCP Option entfernt', \r
+'dhcp advopt scope' => 'Options-Wertebereich', \r
+'dhcp advopt scope global' => 'Global', \r
+'dhcp advopt scope help' => 'Globaler Bereich oder begenze Bereich auf überprüfte Schnittstellen', \r
+'dhcp advopt unknown' => 'Name der DHCP Option wurde nicht erkannt', \r
+'dhcp advopt value' => 'Optionswert', \r
+'dhcp allow bootp' => 'BOOTP Clients zulassen', \r
+'dhcp bootp pxe data' => 'Geben Sie optionale BOOTP PXE-Daten für diese feste Zuordnung ein', \r
+'dhcp configuration' => 'DHCP-Konfiguration', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP-Server', \r
+'dhcp server disabled' => 'DHCP-Server deaktiviert. Angehalten.', \r
+'dhcp server disabled on blue interface' => 'DHCP-Server auf BLAUER Schnittstelle deaktiviert', \r
+'dhcp server enabled' => 'DHCP-Server aktiviert. Starte neu.', \r
+'dhcp server enabled on blue interface' => 'DHCP-Server auf BLAUER Schnittstelle aktviert', \r
+'dial' => 'Verbinden', \r
+'dial user password' => 'Passwort für Benutzer &quot;dial&quot;:', \r
+'dial user password has been changed' => 'Passwort für Benutzer -dial- wurde geändert.', \r
+'dialing mode' => 'Wählmodus:', \r
+'dialup settings' => 'Einwahl-Einstellungen', \r
+'disk access per' => 'Plattenzugriff je', \r
+'disk usage' => 'Festplattenbelegung:', \r
+'display' => 'Anzeige', \r
+'display hostname in window title' => 'Hostname im Fenstertitel anzeigen', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Einstellungen des DMZ-Schlupfloches', \r
+'dmz pinhole rule added' => 'Regel für DMZ-Schlupfloch hinzugefügt; Starte DMZ-Schlupfloch neu', \r
+'dmz pinhole rule removed' => 'Regel für DMZ-Schlupfloch entfernt; Starte DMZ-Schlupfloch neu', \r
+'dmzpinholes for same net not necessary' => 'DMZ-Schlupflöcher werden im gleichen Netz nicht benötigt. Wählen Sie ein anderes Quell- oder Ziel-Netz.', \r
+'dns check failed' => 'Fehler bei DNS-Überprüfung', \r
+'dns proxy server' => 'DNS-Proxyserver', \r
+'do not log this port list' => 'Verwerfe diese Port-Liste kurz bevor sie protokolliert werden (reduziert Protokollgröße)', \r
+'dod' => 'Dial-on-Demand-Modus', \r
+'dod for dns' => 'Dial-on-Demand für DNS:', \r
+'dod not compatible with ddns' => 'Dial on Demand ist nicht kompatibel mit dynamischen DNS Diensten', \r
+'dod waiting' => 'Dial On Demand wartet', \r
+'domain' => 'Domain', \r
+'domain name' => 'Domainname', \r
+'domain name suffix' => 'Domain-Name-Suffix:', \r
+'domain not set' => 'Domain nicht eingegeben.', \r
+'downlink speed' => 'Downlink-Geschwindigkeit (kBit/sek)', \r
+'download ca certificate' => 'CA Zertifikat herunterladen', \r
+'download certificate' => 'Zertifikate herunterladen', \r
+'download host certificate' => 'Host Zertifikat herunterladen', \r
+'download new ruleset' => 'Neuen Regelsatz herunterladen', \r
+'download pkcs12 file' => 'PKCS12 Datei herunterladen', \r
+'download root certificate' => 'Root Zertifikat herunterladen', \r
+'dpd action' => 'Aktion für Dead Peer Detection', \r
+'driver' => 'Treiber', \r
+'dst port' => 'Ziel-Port', \r
+'dstprt range overlaps' => 'Der Zielportbereich überlappt mit einem bereits definierten Port.', \r
+'dstprt within existing' => 'Der Zielport liegt innerhalb eines bereits definierten Portbereichs.', \r
+'duplicate ip' => 'IP-Adresse doppelt eingegeben', \r
+'duplicate ip bold' => 'Doppelte Adressen sind <b>fett</b> gedruckt', \r
+'duplicate mac' => 'Doppelte MAC-Adresse eingegeben', \r
+'duplicate name' => 'Dieser Name wird bereits benutzt. Bitte wählen Sie einen anderen.', \r
+'dyn dns source choice' => 'Dynamic DNS Anbieter werden eine IP-Adresse für diesen IPCop erhalten von:', \r
+'dynamic dns' => 'Dynamischer DNS', \r
+'dynamic dns client' => 'Dynamischer DNS-Client', \r
+'e-mail address too long' => 'E-mail Adresse ist zu lang; sie sollte nicht länger als 40 Zeichen sein.', \r
+'eciadsl help' => 'Um ein ECI PCI-Modem nutzen zu können, müssen Sie zuerst die Treiber-Software zur IPCop-Box hochladen. Laden Sie zuerst den Tarball von ECIADSL herunter und laden Sie dann die Datei <B>synch.bin</B> über das untenstehende Formblatt zu IPCop hoch.', \r
+'eciadsl upload' => 'Hochladen der ECI ADSL Datei synch.bin', \r
+'edit' => 'Bearbeiten', \r
+'edit a rule' => 'Existierende Regel bearbeiten:', \r
+'edit advanced settings when done' => 'Erweiterte Einstellungen bearbeiten, wenn fertig.', \r
+'edit an existing alias' => 'Einen bestehenden Alias bearbeiten', \r
+'edit an existing host' => 'Einen bestehenden Host hinzufügen', \r
+'edit an existing lease' => 'Eine existierende Zuordnung bearbeiten', \r
+'edit device' => 'Gerät bearbeiten', \r
+'edit hosts' => 'Hosts bearbeiten', \r
+'edit network' => 'Netzwerk bearbeiten', \r
+'edit service' => 'Dienst bearbeiten', \r
+'eg' => 'z.B.:', \r
+'empty' => 'Leer', \r
+'enable ignore filter' => '&quot;Ignorieren&quot;-Filter ein', \r
+'enable javascript' => 'Javascript aktivieren', \r
+'enable wildcards' => 'Wildcards erlauben:', \r
+'enabled' => 'Aktiviert:', \r
+'enabled on' => 'Aktiviert auf', \r
+'enabledtitle' => 'Aktiviert', \r
+'encapsulation' => 'Encapsulation', \r
+'encrypted' => 'Verschlüsselt', \r
+'end address' => 'Endadresse:', \r
+'err bk 1' => 'Fehler beim Erzeugen des Archivs', \r
+'err bk 2 key' => 'Fehler beim Erzeugen der Schlüsseldatei', \r
+'err bk 3 tar' => 'Fehler beim Anhängen der Datei ans Archiv', \r
+'err bk 4 gz' => 'Fehler beim Komprimieren des Archivs', \r
+'err bk 5 encrypt' => 'Fehler beim Verschlüsseln des Archivs', \r
+'err rs 1' => 'Fehler beim Wiederherstellen des Archivs', \r
+'err rs 6 decrypt' => 'Fehler beim Entschlüsseln des Archivs', \r
+'err rs 7 untartst' => 'Ungültiges entschlüsseltes Archiv', \r
+'err rs 8 untar' => 'Fehler beim un-tar-en des Archivs', \r
+'error messages' => 'Fehlermeldungen:', \r
+'esp encryption' => 'ESP Verschlüsselung:', \r
+'esp grouptype' => 'ESP Gruppentyp:', \r
+'esp integrity' => 'ESP Integrität:', \r
+'esp keylife' => 'Lebensdauer des ESP Schlüssels:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP Schlüssel-Lebensdauer sollte zwischen 1 und 24 Stunden betragen.', \r
+'every' => 'Jeden', \r
+'excluding buffers and cache' => '-/+ Puffer/Zwischenspeicher', \r
+'expected' => 'Erwartet', \r
+'expires' => 'Ablaufdatum', \r
+'export' => 'Export', \r
+'external access' => 'Externer Zugang', \r
+'external access configuration' => 'Einstellungen für externen Zugang', \r
+'external access rule added' => 'Regel für externen Zugang hinzugefügt; Starte Zugangskontroller neu', \r
+'external access rule removed' => ' Regel für externen Zugang entfernt; Starte Zugangskontroller neu', \r
+'external aliases configuration' => 'Externe Alias-Konfiguration', \r
+'february' => 'Februar', \r
+'fetch ip from' => 'Schätze die echte öffentliche IP-Adresse mit Hilfe eines externen Servers', \r
+'filename' => 'Dateiname', \r
+'filesystem full' => 'Dateisystem voll', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Gesamtanzahl der Firewall-Treffer für', \r
+'firewall log' => 'Firewall-Protokoll', \r
+'firewall log viewer' => 'Betrachter der Firewall-Logdateien', \r
+'firewall logs' => 'Firewall-Logdateien', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Hochladen der Firmware/Treiber', \r
+'fixed ip lease added' => 'Feste IP-Zuordnung hinzugefügt', \r
+'fixed ip lease modified' => 'Feste IP-Zuordnung geändert', \r
+'fixed ip lease removed' => 'Feste IP-Zuordnung gelöscht', \r
+'force update' => 'Aktualisierung erzwingen', \r
+'forwarding rule added' => 'Weiterleitungsregel hinzugefügt. Starte Weiterleitung neu', \r
+'forwarding rule removed' => 'Weiterleitungsregel entfernt. Starte Weiterleitung neu', \r
+'forwarding rule updated' => 'Weiterleitungsregel aktualisiert; starte Weiterleitung neu', \r
+'free' => 'Frei', \r
+'free memory' => 'Freier Speicher', \r
+'free swap' => 'Freier Swap', \r
+'friday' => 'Freitag', \r
+'fritzdsl help' => 'Um eines der folgenden Fritz!DSL Modems (Fritz!Card DSL=fcdsl / Fritz!CardDSL SL=fcdslsl / Fritz!Card DSL V2.0=fcdsl2 / Fritz!Card DSL USB=fcdslusb / Fritz!Card DSL USB SL=fcdslslusb) nutzen zu können, müssen Sie ein Paket auf Ihre IPCop-Box laden. Bitte laden Sie den tarball entsprechend Ihrer Version von der IPCop-Webseite herunter und laden Sie dann die gesamte <b>fcdsl-(ihre_version).tgz</b> mit dem folgenden Formular hoch.', \r
+'fritzdsl upload' => 'Fritz!DSL-Treiber hochladen', \r
+'from' => 'Von', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Gateway', \r
+'gateway ip' => 'Gateway-IP', \r
+'generate a certificate' => 'Erzeuge ein Zertifikat:', \r
+'generate root/host certificates' => 'Erzeuge Root/Host Zertifikate', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Die Erzeugung der Root und Host Zertifikate kann lange Zeit dauern.  Auf älterer Hardware kann es mehrere Minuten lang dauern. Bitte haben Sie etwas Geduld.', \r
+'global settings' => 'Globale Einstellungen', \r
+'graph' => 'Diagramm', \r
+'graph per' => 'Diagramm pro', \r
+'green' => 'GRÜN', \r
+'green interface' => 'Grünes Interface', \r
+'gui settings' => 'Einstellungen der  Benutzeroberfläche', \r
+'gz with key' => 'Nur ein verschlüsseltes Archiv kann auf dieser Maschine wiederhergestellt werden.', \r
+'hangup' => 'Trennen', \r
+'hangup string' => 'Auflegen:', \r
+'high' => 'Hoch', \r
+'high memory usage' => 'Speicher wird knapp', \r
+'holdoff' => 'Holdoff-Zeit in (Sekunden)', \r
+'host' => 'Host', \r
+'host certificate' => 'Host Zertifikat', \r
+'host configuration' => 'Host-Konfiguration', \r
+'host ip' => 'Host IP-Adresse', \r
+'host to net vpn' => 'Host-zu-Netz Virtual Private Network (RoadWarrior)', \r
+'hostname' => 'Hostname', \r
+'hostname and domain already in use' => 'Hostname und Domain sind werden bereits benutzt.', \r
+'hostname cant be empty' => 'Hostname darf nicht leer bleiben.', \r
+'hostname not set' => 'Hostname nicht eingegeben.', \r
+'hosts config added' => 'Hosts-Konfiguration hinzugefügt', \r
+'hosts config changed' => 'Hosts-Konfiguration geändert', \r
+'hours' => 'Stunden', \r
+'hours2' => 'Stunden', \r
+'ibod for dual isdn only' => 'iBOD kann nur bei ISDN-Kanalbündelung genutzt werden.', \r
+'icmp selected but no type' => 'ICMP wurde zwar als Protokoll gewählt, es wurde aber kein ICMP-Typ angegeben.', \r
+'icmp type' => 'ICMP-Typ', \r
+'id' => 'ID', \r
+'idle' => 'Leerlauf', \r
+'idle cpu' => 'CPU Leerlauf', \r
+'idle cpu usage' => 'Leerlauf CPU Nutzung', \r
+'idle timeout' => 'Leerlauf-Wartezeit in min (0 zum Deaktivieren):', \r
+'idle timeout not set' => 'Leerlauf-Wartezeit nicht angegeben.', \r
+'ids log viewer' => 'Ansicht IDS-Log', \r
+'ids logs' => 'IDS-Logdateien', \r
+'ids rules license' => 'Um  Sourcefire VRT Zertifizierte Regeln zu nutzen, müssen Sie ich registrieren auf', \r
+'ids rules license2' => 'Bestätigen Sie die Lizenz, empfangen Sie Ihr Passwort per email und gehen Sie auf die Website. Gehen Sie zu', \r
+'ids rules license3' => 'klicken Sie den \'Get Code\' Knopf am Fuß und kopieren den 40-Zeichen Oink Code in das untere Feld.', \r
+'ids rules update' => 'Snort Regeln Update', \r
+'iface' => 'Iface', \r
+'ignore filter' => '&quot;Ignorieren&quot;-Filter', \r
+'ike encryption' => 'IKE Verschlüsselung:', \r
+'ike grouptype' => 'IKE Gruppentyp:', \r
+'ike integrity' => 'IKE Integrität:', \r
+'ike lifetime' => 'IKE Lebensdauer:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE Lebensdauer sollte zwischen 1 und 8 Stunden betragen.', \r
+'import' => 'Import', \r
+'in' => 'Ein', \r
+'incoming traffic in bytes per second' => 'Eingehender Verkehr in Bytes pro Sekunde', \r
+'info' => 'Info', \r
+'init string' => 'Initialisierung:', \r
+'insert floppy' => 'Legen Sie eine formatierte Diskette in das Floppy-Laufwerk in IPCop und klicken auf <i>Datensicherung auf Diskette</i>, um die Systemeinstellungen zu sichern.  Überprüfen Sie das Ergebnis sorgfältig, um sicher zu sein, dass die Datensicherung vollständig und erfolgreich abgeschlossen wurde.<p>', \r
+'install new update' => 'Installiere neues Update:', \r
+'installed' => 'Installiert', \r
+'installed updates' => 'Installierte Updates:', \r
+'instant update' => 'Sofortiges Update', \r
+'interface' => 'Schnittstelle', \r
+'interfaces' => 'Schnittstellen:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Einbruchdetektierung', \r
+'intrusion detection system' => 'Intrusion Detection System', \r
+'intrusion detection system log viewer' => 'Betrachter der IDS-Logfiles', \r
+'intrusion detection system2' => 'Intrusion Detection System:', \r
+'invalid broadcast ip' => 'Ungültige Broadcast-IP', \r
+'invalid cache size' => 'Ungültige Cache-Größe.', \r
+'invalid characters found in pre-shared key' => 'Ungültige Zeichen im Pre-Shared Schlüssel gefunden.', \r
+'invalid date entered' => 'Ungültiges Datum eingegeben.', \r
+'invalid default lease time' => 'Ungültige Haltezeit-Voreinstellung.', \r
+'invalid domain name' => 'Ungültiger Domainname.', \r
+'invalid downlink speed' => 'Ungültige Downlink-Gerschwindigkeit.', \r
+'invalid end address' => 'Ungültige Endadresse.', \r
+'invalid fixed ip address' => 'Ungültige feste IP-Adresse', \r
+'invalid fixed mac address' => 'Ungültige feste MAC-Adresse', \r
+'invalid hostname' => 'Ungültiger Hostname.', \r
+'invalid input' => 'Ungültige Eingabe', \r
+'invalid input for authentication method' => 'Ungültige Eingabe für Authentifizierungsmethode.', \r
+'invalid input for city' => 'Ungültige Eingabe für Stadt.', \r
+'invalid input for country' => 'Ungültige Eingabe für das Land', \r
+'invalid input for department' => 'Ungültige Eingabe für die Abteilung', \r
+'invalid input for e-mail address' => 'Ungültige Eingabe für die E-mail Adresse', \r
+'invalid input for esp keylife' => 'Ungültige Eingabe für ESP Schlüssel-Lebensdauer', \r
+'invalid input for hostname' => 'Ungültige Eingabe für Hostname', \r
+'invalid input for ike lifetime' => 'Ungültige Eingabe für IKE Lebensdauer', \r
+'invalid input for name' => 'Ungültige Eingabe für vollen Namen des Benutzers oder des System Hostnamens', \r
+'invalid input for oink code' => 'Ungültige Eingabe für Oink Code', \r
+'invalid input for organization' => 'Ungültige Eingabe für Organisation', \r
+'invalid input for remote host/ip' => 'Ungültige Eingabe für Remote Host/IP', \r
+'invalid input for state or province' => 'Ungültige Eingabe für Bundesstaat oder Provinz.', \r
+'invalid ip' => 'Ungültige IP-Adresse', \r
+'invalid keep time' => 'Die Aufbewahrungszeit muss eine gültige Zahl sein', \r
+'invalid key' => 'Ungültiger Schlüssel.', \r
+'invalid loaded file' => 'Ungültige geladene Datei', \r
+'invalid local-remote id' => 'Falls verwendet, dürfen leftid und rightid nicht gleich sein, und mit einem "@"-Zeichen beginnen. Dies sind leftid und rightid in der OpenSwan-Terminologie.', \r
+'invalid logserver address' => 'Ungültige syslogd server Adresse', \r
+'invalid max lease time' => 'Ungültige max. Haltezeit.', \r
+'invalid maximum incoming size' => 'Ungültige max. ankommende Größe.', \r
+'invalid maximum object size' => 'Ungültige max. Objektgröße.', \r
+'invalid maximum outgoing size' => 'Ungültige max. abgehende Größe.', \r
+'invalid md5sum' => 'Ungültige MD5-Summe.', \r
+'invalid minimum object size' => 'Ungültige min. Objektgröße.', \r
+'invalid netmask' => 'Ungültige Netzwerkmaske', \r
+'invalid port' => 'Ungültiger Port. Bitte gültige Portnummer eingeben.', \r
+'invalid port list' => 'Portlisten-Syntax lautet: port[,port]... wobei port in /etc/services vorkommt oder Nummer', \r
+'invalid primary dns' => 'Ungültiger primärer DNS.', \r
+'invalid primary ntp' => 'Ungültiger primärer NTP.', \r
+'invalid secondary dns' => 'Ungültiger sekundärer DNS.', \r
+'invalid secondary ntp' => 'Ungültiger sekundärer NTP.', \r
+'invalid start address' => 'Ungültige Anfangsadresse.', \r
+'invalid time entered' => 'Ungültige Zeit eingegeben.', \r
+'invalid time period' => 'Unzulässiger Zeitabschnitt.', \r
+'invalid uplink speed' => 'Ungültige Uplink-Geschwindigkeit.', \r
+'invalid upstream proxy username or password setting' => 'Ungültige/r Remote-Proxy-Benutzername oder Passwort-Einstellung', \r
+'invalid vpi vpci' => 'Ungültige VPI/VPCI-Einstellungen', \r
+'invalid wins address' => 'Ungültige WINS Server Addresse.', \r
+'invert' => 'Invertieren', \r
+'ip address' => 'IP-Adresse', \r
+'ip address in use' => 'IP-Adresse bereits vergeben', \r
+'ip address outside subnets' => 'IP-Adresse ausserhalb der(s) lokalen Subnetze(s)', \r
+'ip alias added' => 'Externer IP-Alias hinzugefügt', \r
+'ip alias changed' => 'Externer IP-Alias geändert', \r
+'ip alias removed' => 'Externer IP-Alias entfernt', \r
+'ip info' => 'IP-Information', \r
+'ipcop has now rebooted' => 'IPCop ist jetzt neu gestartet.', \r
+'ipcop has now shutdown' => 'IPCop ist jetzt heruntergefahren.', \r
+'ipcop side' => 'IPCop Seite:', \r
+'ipcop side is invalid' => 'IPCop Seite ist ungültig.', \r
+'ipcops hostname' => 'IPCop\'s Hostname', \r
+'ipinfo' => 'IP-Info', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Zusätzliche ISDN-Einstellungen:', \r
+'isdn1' => 'Einfaches ISDN', \r
+'isdn2' => 'ISDN-Kanalbündelung', \r
+'january' => 'Januar', \r
+'javascript menu error1' => 'Wenn die Drop-down-Menus nicht funktionieren, deaktivieren Sie Javascript auf der', \r
+'javascript menu error2' => 'Seite.', \r
+'july' => 'Juli', \r
+'june' => 'Juni', \r
+'kernel' => 'Kernel', \r
+'kernel logging server' => 'Kernel-Protokollierungs-Server', \r
+'kernel version' => 'Kernel-Version:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Wählen Sie eine Sprache, in der IPCop angezeigt werden soll:', \r
+'lease expires' => 'Zuordnung verfällt', \r
+'legend' => 'Legende', \r
+'line' => 'Leitung', \r
+'loaded modules' => 'Geladene Module:', \r
+'local ntp server specified but not enabled' => 'Lokaler NTP Server angegeben aber nicht aktiviert', \r
+'local subnet' => 'Lokales Subnetz:', \r
+'local subnet is invalid' => 'Lokales Subnet ist ungültig.', \r
+'local vpn hostname/ip' => 'Lokaler VPN Hostname/IP', \r
+'log' => 'Protokoll:', \r
+'log enabled' => 'Log aktiviert', \r
+'log lines per page' => 'Zeilen pro Seite', \r
+'log server address' => 'Syslog Server', \r
+'log settings' => 'Logdatei-Einstellungen', \r
+'log summaries' => 'Log Übersicht', \r
+'log summary' => 'Log Zusammenfassung', \r
+'log viewer' => 'Protokollansicht', \r
+'log viewing options' => 'Log Ansichts-Optionen', \r
+'logging server' => 'Protokollierungs-Server', \r
+'loginlogout' => 'Login/Logout', \r
+'lookup failed' => 'Reverse Lookup gescheitert', \r
+'low' => 'Niedrig', \r
+'ls_dhcpd' => 'DHCP-Server:', \r
+'ls_disk space' => 'Plattenplatz:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP-Server:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kernel und Firewall:', \r
+'ls_modprobe' => 'Modul Ladeprogramm:', \r
+'ls_pam_unix' => 'Lokale Benutzeranmeldungen:', \r
+'ls_sshd' => 'Fern-Benutzeranmeldungen:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'MAC-Adresse', \r
+'mac address in use' => 'MAC-Adresse bereits vergeben', \r
+'main page' => 'Startseite', \r
+'manual' => 'Manuell', \r
+'manual control and status' => 'Manuelle Einstellung und Status:', \r
+'manually' => 'Manuell', \r
+'march' => 'März', \r
+'marked' => 'Markiert', \r
+'max incoming size' => 'Max. eingehende Größe (kB):', \r
+'max lease time' => 'Max. Haltezeit in min:', \r
+'max outgoing size' => 'Max. abgehende Größe (kB):', \r
+'max renewal time' => 'Maximale Aktualisierungszeit', \r
+'max retries not set' => 'Maximale Wiederholversuche nicht angegeben.', \r
+'max size' => 'Max. Objektgröße (kB):', \r
+'maximal' => 'Maximal', \r
+'maximum retries' => 'Maximale Wiederholversuche:', \r
+'may' => 'Mai', \r
+'medium' => 'Mittel', \r
+'memory' => 'Speicher:', \r
+'memory usage per' => 'Speichernutzung pro', \r
+'method' => 'Methode:', \r
+'min size' => 'Min. Objektgröße (kB):', \r
+'minutes' => 'Minuten', \r
+'missing dat' => 'Verschlüsseltes Archiv wurde nicht gefunden', \r
+'missing gz' => 'Nichtverschlüsseltes Archiv wurde nicht gefunden', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Modem-Konfiguration', \r
+'modem on com1' => 'Modem an COM1', \r
+'modem on com2' => 'Modem an COM2', \r
+'modem on com3' => 'Modem an COM3', \r
+'modem on com4' => 'Modem an COM4', \r
+'modem on com5' => 'Modem an COM5', \r
+'modem settings have errors' => 'Modemeinstellungen fehlerhaft', \r
+'modem speaker on' => 'Modemlautsprecher an:', \r
+'modulation' => 'Modulation', \r
+'monday' => 'Montag', \r
+'month' => 'Monat', \r
+'months' => 'Monate', \r
+'mounted on' => 'Mounted auf', \r
+'name' => 'Name', \r
+'name is invalid' => 'Name ist ungültig', \r
+'name must only contain characters' => 'Name darf nur Buchstaben enthalten.', \r
+'name too long' => 'Der volle Benutzername oder der System Hostname ist zu lang', \r
+'nat-traversal' => 'Nat Traversal:', \r
+'net' => 'Netz', \r
+'net to net vpn' => 'Netz-zu-Netz Virtual Private Network', \r
+'netmask' => 'Netzwerkmaske', \r
+'network' => 'Netzwerk', \r
+'network added' => 'Benutzerdefiniertes Netzwerk hinzugefügt', \r
+'network configuration' => 'Netzwerk Konfiguration', \r
+'network removed' => 'Benutzerdefiniertes Netzwerk entfernt', \r
+'network status information' => 'Netzwerk-Statusinformationen', \r
+'network time' => 'Benutze NTP-Server:', \r
+'network time from' => 'Uhrzeit von einem Netzwerk Zeitserver ermitteln', \r
+'network traffic graphs' => 'Diagramme zur Netzwerkauslastung', \r
+'network updated' => 'Benutzerdefiniertes Netzwerk aktualisiert', \r
+'networks settings' => 'Firewall - Netzwerkeinstellungen', \r
+'new optionsfw later' => 'Ihre Modifikation(en) wird (werden) beim nächsten Neustart aktiv werden', \r
+'new optionsfw must boot' => 'Sie müssen Ihren IPCop neu starten', \r
+'newer' => 'Neuer', \r
+'next address' => 'WIRD ENTFERNT', \r
+'no' => 'Nein', \r
+'no alcatelusb firmware' => 'Keine Alcatel USB ADSL-Firmware vorhanden. Bitte hochladen.', \r
+'no cfg upload' => 'Keine Daten wurden hochgeladen', \r
+'no dhcp lease' => 'Eine DHCP-Zuordnung konnte nicht empfangen werden', \r
+'no eciadsl synch.bin file' => 'Keine ECI ADSL Datei synch.bin vorhanden. Bitte hochladen.', \r
+'no fritzdsl driver' => 'Kein Fritz!DSL-Treiber vorhanden. Bitte hochladen.', \r
+'no information available' => 'Keine Informationen verfügbar.', \r
+'no modem selected' => 'Kein Modem ausgewählt', \r
+'no set selected' => 'Es wurde kein Satz ausgewählt', \r
+'no time limit' => 'unbregenzte Zeit', \r
+'none found' => 'nichts gefunden', \r
+'nonetworkname' => 'Kein Netzwerkname wurde eingegeben', \r
+'noservicename' => 'Kein Dienstname wurde eingegeben', \r
+'not a valid ca certificate' => 'Kein gültiges CA Zertifikat.', \r
+'not enough disk space' => 'Nicht genügend Plattenplatz vorhanden', \r
+'not present' => '<B>Nicht</B> vorhanden', \r
+'not running' => 'nicht gestartet', \r
+'november' => 'November', \r
+'ntp configuration' => 'NTP-Konfiguration', \r
+'ntp must be enabled to have clients' => 'Um Clients annehmen zu können, muß NTP vorher aktiviert sein.', \r
+'ntp server' => 'NTP-Server', \r
+'ntp syncro disabled' => 'NTP-Synchronisierung deaktiviert', \r
+'ntp syncro enabled' => 'NTP-Synchronisierung aktiviert', \r
+'ntpd restarted' => 'ntpd neu gestartet', \r
+'number' => 'Nummer:', \r
+'october' => 'Oktober', \r
+'older' => 'Älter', \r
+'online help en' => 'Online-Hilfe (auf Englisch)', \r
+'only digits allowed in holdoff field' => 'Im Holdoff-Feld sind nur Ziffern erlaubt', \r
+'only digits allowed in max retries field' => 'Im Feld &quot;Maximale Wiederholversuche&quot; sind nur Ziffern erlaubt.', \r
+'only digits allowed in the idle timeout' => 'Im Feld &quot;Leerlauf-Wartezeit&quot; sind nur Ziffern erlaubt.', \r
+'only red' => 'Nur ROT', \r
+'open to all' => 'Überschreibe externen Zugang zu ALL', \r
+'openssl produced an error' => 'OpenSSL hat einen Fehler verursacht', \r
+'options' => 'Optionen', \r
+'options fw' => 'Firewall Optionen', \r
+'optionsfw portlist hint' => 'Die Liste der Ports muss durch ein Komma getrennt werden (z.B. 137,138). Sie können maximal bis zu 15 Ports pro Protokoll angeben.', \r
+'optionsfw warning' => 'Verändern dieser Optionen bedingt einen Neustart der Firewall', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'Organisation darf nicht leer sein.', \r
+'organization name' => 'Name der Organisation', \r
+'organization too long' => 'Organisation ist zu lang; sie sollte nicht länger als 60 Zeichen lang sein.', \r
+'original' => 'Original', \r
+'other countries' => 'Andere Länder', \r
+'other login script' => 'Anderes Anmeldeskript', \r
+'out' => 'Aus', \r
+'outgoing traffic in bytes per second' => 'Abgehender Verkehr in Bytes pro Sekunde', \r
+'override mtu' => 'Überschreibe Standard MTU', \r
+'package failed to install' => 'Programmpaket konnte nicht installiert werden.', \r
+'pap or chap' => 'PAP oder CHAP', \r
+'password' => 'Passwort:', \r
+'password contains illegal characters' => 'Passwort enthält ungültige(s) Zeichen.', \r
+'password not set' => 'Passwort nicht angegeben.', \r
+'password too short' => 'Passwort ist zu kurz.', \r
+'passwords do not match' => 'Die Passwörter stimmen nicht überein.', \r
+'passwords must be at least 6 characters in length' => 'Passwörter müssen mind. 6 Zeichen lang sein', \r
+'percentage' => 'Prozent', \r
+'persistent' => 'Dauerhaft', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Phase1 Gruppe', \r
+'phonebook entry' => 'Telefonbuch-Eintrag:', \r
+'ping disabled' => 'Ping Antwort deaktivieren', \r
+'pkcs12 file password' => 'PKCS12 Datei-Passwort', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Konfiguration der Port-Weiterleitung', \r
+'ports' => 'Ports', \r
+'pots' => 'Analoges Telefon', \r
+'ppp setup' => 'PPP-Einstellungen', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Zusätzliche PPPoE-Einstellungen:', \r
+'pptp settings' => 'Zusätzliche PPTP-Einstellungen:', \r
+'pre-shared key is too short' => 'Pre-shared Schlüsel ist zu kurz', \r
+'present' => 'Vorhanden', \r
+'primary dns' => 'Primärer DNS:', \r
+'primary ntp server' => 'Primärer NTP-Server', \r
+'primary wins server address' => 'Primäre WINS-Server Adresse', \r
+'priority' => 'Priorität', \r
+'profile' => 'Profil', \r
+'profile deleted' => 'Profil gelöscht: ', \r
+'profile has errors' => 'Profil fehlerhaft', \r
+'profile made current' => 'Profil ausgewählt: ', \r
+'profile name' => 'Profilname:', \r
+'profile name not given' => 'Profilname nicht angegeben.', \r
+'profile saved' => 'Profil gespeichert: ', \r
+'profiles' => 'Profile:', \r
+'proto' => 'Proto', \r
+'protocol' => 'Protokoll', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Diagramme zur Proxyauslastung', \r
+'proxy log viewer' => 'Ansicht Proxy-Log', \r
+'proxy logs' => 'Proxy-Logdateien', \r
+'proxy port' => 'Proxy-Port', \r
+'psk' => 'PSK', \r
+'pulse' => 'Puls', \r
+'pulse dial' => 'Pulswahl:', \r
+'ram' => 'RAM-Speicher', \r
+'read sectors' => 'Sektoren lesen', \r
+'reboot' => 'Neustart', \r
+'reboot schedule' => 'Zeitsteuerung für IPCop Neustarts', \r
+'rebooting' => 'Starte neu ...', \r
+'rebooting ipcop' => 'Starte IPCop neu', \r
+'reconnection' => 'Wiederverbindung', \r
+'references' => 'Referenzen', \r
+'refresh' => 'Aktualisieren', \r
+'refresh index page while connected' => 'Aktualisere index.cgi Seite während der Verbindung', \r
+'refresh update list' => 'Aktualisiere Update-Liste', \r
+'registered user rules' => 'Sourcefire VRT Regeln für registrierte Benutzer', \r
+'released' => 'Freigegeben', \r
+'remark' => 'Anmerkung', \r
+'remark title' => 'Anmerkung:', \r
+'remote access' => 'Fernwartung', \r
+'remote host/ip' => 'Remote Host/IP', \r
+'remote logging' => 'Remote logging', \r
+'remote subnet' => 'Remote Subnetz:', \r
+'remote subnet is invalid' => 'Remote Subnetz ist ungültig.', \r
+'remove' => 'Löschen', \r
+'remove ca certificate' => 'CA-Zertifikat entfernen', \r
+'reserved dst port' => 'Dieser Zielport ist für die ausschließliche Benutzung durch IPCop reserviert:', \r
+'reserved src port' => 'Dieser Quellport ist für die ausschließliche Benutzung durch IPCop reserviert:', \r
+'reset' => 'Zurücksetzen', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Das Zurücksetzen der VPN-Konfiguration wird die Root-CA, die Host-Zertifikate und alle weiteren Zertifikate und alle zertifikatsbasierten Verbindungen entfernen', \r
+'restart' => 'Neustart', \r
+'restore' => 'Wiederherstellen', \r
+'restore defaults' => 'Voreinstellungen wiederherstellen', \r
+'restore hardware settings' => 'Hardware-Einstellungen wiederherstellen', \r
+'reverse sort' => 'In umgekehrter chronologischer Reihenfolge sortieren', \r
+'root certificate' => 'Root-Zertifikat', \r
+'root path' => 'Root-Pfad', \r
+'router ip' => 'IP-Adresse des Routers:', \r
+'routing table entries' => 'Einträge der Routing-Tabelle:', \r
+'rsvd dst port overlap' => 'Dieser Zielportbereich überlappt mit einem Port, der für die ausschließliche Benutzung durch IPCop reserviert ist:', \r
+'rsvd src port overlap' => 'Dieser Quellportbereich überlappt mit einem Port, der für die ausschließliche Benutzung durch IPCop reserviert ist:', \r
+'rules already up to date' => 'Regeln sind schon aktuell', \r
+'running' => 'LÄUFT', \r
+'saturday' => 'Samstag', \r
+'save' => 'Speichern', \r
+'save error' => 'Konfigurationsarchiv-Datei konnte nicht gespeichert werden', \r
+'script name' => 'Skriptname:', \r
+'secondary dns' => 'Sekundärer DNS:', \r
+'secondary ntp server' => 'Sekundärer NTP-Server', \r
+'secondary wins server address' => 'Sekundäre WINS-Server Adresse', \r
+'seconds' => 'sek.', \r
+'section' => 'Abschnitt', \r
+'sectors read from disk per second' => 'Von Platte gelesene Sektoren pro Sekunde', \r
+'sectors written to disk per second' => 'Auf Platte geschriebene Sektoren pro Sekunde', \r
+'secure shell server' => 'Secure Shell Server', \r
+'select' => 'Auswählen', \r
+'select dest net' => 'Auswahl Ziel-Netz', \r
+'select source net' => 'Auswahl Quell-Netz', \r
+'send cr' => 'ISP verlangt Zeilenrücklaufzeichen:', \r
+'september' => 'September', \r
+'serial' => 'serielle', \r
+'service' => 'Dienst', \r
+'service added' => 'Benutzerdefinierter Netzwerkdienst wurde hinzugefügt', \r
+'service name' => 'Name des Dienstes:', \r
+'service removed' => 'Benutzerdefinierter Netzwerkdienst wurde entfernt', \r
+'service updated' => 'Benutzerdefinierter Netzwerkdienst wurde aktualisiert', \r
+'servicename' => 'Dienstname', \r
+'services' => 'Dienste:', \r
+'services settings' => 'Firewall - Diensteeinstellungen', \r
+'set time now' => 'Stelle jetzt die Uhrzeit ein', \r
+'set time now help' => 'Um ein Synchronisationsereignis zu jeder Zeit in die Warteschlange zu stellen, drücken Sie die <i>Stelle jetzt die Uhrzeit ein</i> Schaltfläche. Bitte beachten Sie, daß Sie 5 Minuten, oder länger, warten müssen, bevor ein Sync-Ergeinis eintritt.', \r
+'settings' => 'Konfiguration', \r
+'shaping add options' => 'Dienst hinzufügen', \r
+'shaping list options' => 'Datenflußkontrolldienste', \r
+'shared' => 'shared', \r
+'shared memory' => 'Gemeins. Speicher', \r
+'show ca certificate' => 'CA Zertifikat anzeigen', \r
+'show certificate' => 'Zertifikat anzeigen', \r
+'show host certificate' => 'Host-Zertifikat anzeigen', \r
+'show root certificate' => 'Root-Zertifikat anzeigen', \r
+'shutdown' => 'Herunterfahren', \r
+'shutdown control' => 'Herunterfahren', \r
+'shutdown2' => 'Herunterfahren:', \r
+'shutting down' => 'Fahre herunter', \r
+'shutting down ipcop' => 'Fahre IPCop herunter', \r
+'size' => 'Größe', \r
+'snort hits' => 'Gesamtanzahl der aktivierten Intrusion-Regeln für', \r
+'sort ascending' => 'Sortiere aufsteigend', \r
+'sort descending' => 'Sortiere absteigend', \r
+'sound' => 'Klang', \r
+'source' => 'Quelle', \r
+'source ip' => 'Quell-IP-Adresse', \r
+'source ip and port' => 'Quell-IP:Port', \r
+'source ip bad' => 'Ungültige Quell-IP-Adresse.', \r
+'source ip in use' => 'Benutzte Quell-IP:', \r
+'source ip or net' => 'Quellen-IP oder Netz', \r
+'source net' => 'Quell-Netz', \r
+'source network' => 'Quell-IP, oder Netzwerk (leer für "ALL"):', \r
+'source port' => 'Quell-Port', \r
+'source port in use' => 'Benutzter Quell-Port:', \r
+'source port numbers' => 'Quell-Port muß ein(e) gültige(r) Port-Nummer oder Port-Bereich sein.', \r
+'source port overlaps' => 'Quell-Port-Bereich überlappt mit einem bereits definierten Port-Bereich.', \r
+'speaker off' => 'Lautsprecher aus:', \r
+'speaker on' => 'Lautsprecher ein:', \r
+'squid extension methods' => 'Ihre <tt>extension_methods</tt> Liste', \r
+'squid extension methods invalid' => 'Ihre  \'extension_methods\' Liste darf nur Worte aus Großbuchstaben und Ziffer enthalten, die mittels eines Leerzeichens getrennt werden.', \r
+'src port' => 'Quell-Port', \r
+'srcprt range overlaps' => 'Quell-Port-Bereich überlappt mit einem bereits definierten Port.', \r
+'srcprt within existing' => 'Quell-Port befindet sich innnerhalb eines bereits definierten Port-Bereichs.', \r
+'ssdmz pinholes' => 'DMZ-Schlupflöcher', \r
+'ssh access' => 'SSH-Zugriff', \r
+'ssh fingerprint' => 'Fingerabdruck', \r
+'ssh host keys' => 'SSH Host Schlüssel', \r
+'ssh is disabled' => 'Secure Shell ist deaktiviert.  Halte an.', \r
+'ssh is enabled' => 'Secure Shell ist aktiviert.  Starte neu.', \r
+'ssh key' => 'Schlüssel', \r
+'ssh key size' => 'Länge (bits)', \r
+'ssh keys' => 'Authentifizierung auf Basis öffentlicher Schlüssel zulassen', \r
+'ssh no auth' => 'Sie haben keinerlei Authentifizierungverfahren zugelassen; dies wird Ihre Anmeldung verhindern', \r
+'ssh passwords' => 'Passwortbasierte Authentifizierung zulassen', \r
+'ssh portfw' => 'TCP-Weiterleitung zulassen', \r
+'ssh1 disabled' => 'SSHv1 ist deaktiviert, ein Client der Version 2 wird benötigt.', \r
+'ssh1 enabled' => 'SSHv1 ist aktiviert, Clients mit alten Versionen werden unterstützt.', \r
+'ssh1 support' => 'Unterstützung für Version 1 des SSH-Protokolls (wird nur für alte Clients benötigt)', \r
+'ssnetwork status' => 'Netzwerk-Status', \r
+'sspasswords' => 'Passwörter', \r
+'ssport forwarding' => 'Port-Weiterleitung', \r
+'ssproxy graphs' => 'Proxy-Diagramme', \r
+'sssystem status' => 'System-Status', \r
+'sstraffic graphs' => 'Netzwerk-Diagramme', \r
+'standard login script' => 'Standard-Anmeldeskript', \r
+'start address' => 'Anfangsadresse:', \r
+'state or province' => 'Bundesstat oder Provinz', \r
+'static ip' => 'Statisch IP', \r
+'status' => 'Status', \r
+'status information' => 'Statusinformationen', \r
+'stopped' => 'ANGEHALTEN', \r
+'subject' => 'Betreff', \r
+'subnet is invalid' => 'Netzmaske ist ungültig', \r
+'subscripted user rules' => 'Sourcefire VRT Regeln mit Abonnement', \r
+'successfully refreshed updates list' => 'Update-Liste erfolgreich aktualisiert.', \r
+'summaries kept' => 'Zusammenfassungen aufheben für', \r
+'sunday' => 'Sonntag', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Nutzung von Auslagerungsspeicher (Swap) pro', \r
+'system cpu' => 'System CPU', \r
+'system cpu usage' => 'System CPU Nutzung', \r
+'system graphs' => 'System-Diagramme', \r
+'system log viewer' => 'Betrachter der System-Logdateien', \r
+'system logs' => 'System-Logdateien', \r
+'system status information' => 'System-Statusinformationen', \r
+'telephone not set' => 'Telefonnummer nicht angegeben.', \r
+'the following update was successfully installed' => 'Das folgende Update wurde erfolgreich installiert', \r
+'the statistics were last updated at' => 'Die Statistik wurde zuletzt aktualisiert am', \r
+'there are updates' => 'Für Ihr System sind Updates verfügbar. Im Abschnitt &quot;Updates&quot; erhalten Sie weitere Informationen dazu.', \r
+'there are updates available' => 'Für Ihr System sind Programm-Updates verfügbar. Es wird dringend empfohlen, daß Sie Ihr System baldmöglichst aktualisieren.', \r
+'there was no file upload' => 'Es wurde keine Datei hochgeladen', \r
+'this feature has been sponsored by' => 'Diese Funktion wurde gesponsort von', \r
+'this field may be blank' => 'Dieses Feld kann leer bleiben.', \r
+'this is not a valid archive' => 'Dies ist kein gültiges Archiv.', \r
+'this is not an authorised update' => 'Dies ist kein autorisiertes Update.', \r
+'this update is already installed' => 'Dieses Update wurde bereits installiert.', \r
+'thursday' => 'Donnerstag', \r
+'time' => 'Uhrzeit', \r
+'time date manually reset' => 'Datum/Zeit wurden manuell zurückgesetzt.', \r
+'time server' => 'Zeitserver', \r
+'timeout must be a number' => 'Wartezeit muss eine Zahl sein.', \r
+'title' => 'Titel', \r
+'to' => 'Bis', \r
+'to install an update' => 'Um ein Update zu installieren, laden Sie zuerst die folgende .tgz.gpg Datei hoch:', \r
+'toggle enable disable' => 'Aktivieren oder Deaktivieren', \r
+'tone' => 'Ton', \r
+'tone dial' => 'Tonwahl:', \r
+'total hits for log section' => 'Gesamte Treffer für Log Sektion', \r
+'traffic on' => 'Verkehr auf', \r
+'traffic shaping' => 'Traffic Shaping', \r
+'traffic shaping settings' => 'Einstellungen der Datenflußkontrolle', \r
+'transfer limits' => 'Transferbeschränkungen', \r
+'transparent on' => 'Transparent auf', \r
+'tuesday' => 'Dienstag', \r
+'type' => 'Typ', \r
+'unable to alter profiles while red is active' => 'Profile können nicht geändert werden, solange ROT aktiv ist.', \r
+'unable to contact' => 'Kann nicht erreicht werden', \r
+'unencrypted' => 'Nichtverschlüsselt', \r
+'unknown' => 'Unbekannt', \r
+'unnamed' => 'Unbenannt', \r
+'update' => 'Aktualisieren', \r
+'update time' => 'Aktualisiere die Uhrzeit:', \r
+'update transcript' => 'Aktualisieren', \r
+'updates' => 'Updates', \r
+'updates installed' => 'Updates wurden installiert', \r
+'updates is old1' => 'Ihre Update-Datei ist ', \r
+'updates is old2' => 'Tage alt. Wir empfehlen Ihnen, Ihr System über die &quot;Updates&quot;-Seite zu aktualisieren.', \r
+'uplink speed' => 'Uplink-Geschwindigkeit (kBit/sek)', \r
+'upload' => 'Hochladen', \r
+'upload a certificate' => 'Ein Zertifikat hochladen:', \r
+'upload a certificate request' => 'Eine Zertifikatsanfrage hochladen:', \r
+'upload ca certificate' => 'CA Zertifikat hochladen', \r
+'upload fcdsl.o' => 'Fcdsl.o hochladen', \r
+'upload file' => 'Datei zum hochladen', \r
+'upload p12 file' => 'PKCS12 Datei hochladen', \r
+'upload successful' => 'Erfolgreich hochgeladen.', \r
+'upload synch.bin' => 'Synch.bin hochladen', \r
+'upload update file' => 'Lade die Update-Datei hoch:', \r
+'upstream password' => 'Proxy-Passwort:', \r
+'upstream proxy host:port' => 'Vorgelagerter Proxy (hostname:port)', \r
+'upstream username' => 'Proxy-Benutzername:', \r
+'uptime and users' => 'Uptime und Benutzer:', \r
+'usb modem on acm0' => 'USB Modem an ACM0', \r
+'usb modem on acm1' => 'USB Modem an ACM1', \r
+'usb modem on acm2' => 'USB Modem an ACM2', \r
+'usb modem on acm3' => 'USB Modem an ACM3', \r
+'use' => 'Einsatz', \r
+'use a pre-shared key' => 'Verwenden Sie einen Pre-Shared Schlüssel:', \r
+'use dov' => 'DOV (Data Over Voice) benutzen:', \r
+'use ibod' => 'Bandwidth on Demand (iBOD) benutzen:', \r
+'use ipcop red ip' => 'Die klassische ROTE IP, welche von IPCop während der Verbindung verwendet wird', \r
+'use only proposed settings' => 'Verwenden Sie nur die vorgeschlagenen Einstellungen.', \r
+'used' => 'Benutzt', \r
+'used memory' => 'Genutzter Speicher', \r
+'used swap' => 'Genutzter Swap', \r
+'user cpu' => 'Benutzer CPU', \r
+'user cpu usage' => 'Benutzer CPU', \r
+'username' => 'Benutzername:', \r
+'username not set' => 'Benutzername nicht angegeben.', \r
+'users department' => 'Abteilung des Benutzers', \r
+'users email' => 'E-mail Adresse des Benutzers', \r
+'users fullname or system hostname' => 'Voller Name oder System Hostaname des Benutzers', \r
+'valid root certificate already exists' => 'Ein gültiges Root-Zertifikat existiert bereits.', \r
+'vci number' => 'VCI-Nummer:', \r
+'virtual private networking' => 'Virtuelles Privates Netzwerk', \r
+'vpi number' => 'VPI-Nummer:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN-Konfiguration - Übersicht', \r
+'vpn delayed start' => 'Verzögerung bevor VPN gestartet wird (Sekunden)', \r
+'vpn delayed start help' => 'Falls notwendig, kann diese Verzögerung dazu verwendet werden, um Dynamic DNS Updates ordnungsgemäß anzuwenden. 60 ist ein gängiger Wert, wenn ROT (RED) eine dynamische IP Adresse ist.', \r
+'vpn mtu invalid' => 'MTU muß ein numerischer Wert sein!', \r
+'vpn on blue' => 'VPN auf BLAU', \r
+'waiting to synchronize clock' => 'Bitte warten, die Uhr wird synchronisiert', \r
+'warning messages' => 'Warnhinweise', \r
+'web hits' => 'Gesamtanzahl der Websites zum ausgewählten Kriterium', \r
+'web proxy' => 'Web-Proxy', \r
+'web proxy configuration' => 'Webproxy-Konfiguration', \r
+'web server' => 'Web-Server', \r
+'website' => 'Website', \r
+'wednesday' => 'Mittwoch', \r
+'week' => 'Woche', \r
+'weeks' => 'Wochen', \r
+'wildcards' => 'Wildcards', \r
+'wireless' => 'Wireless', \r
+'wireless config added' => 'Wireless Konfiguration hinzugefügt', \r
+'wireless config changed' => 'Wireless Konfiguration geändert', \r
+'wireless configuration' => 'Wireless-Konfiguration', \r
+'written sectors' => 'Sektoren schr.', \r
+'xtaccess all error' => 'Sie können einen externen Zugang nicht auf \'ALL\' setzen - dies erfolgt in den Port-Weiterleitungsregeln.', \r
+'year' => 'Jahr', \r
+'yes' => 'Ja', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Sie können nur eine Roadwarrior Verbindung definieren, wenn die Pre-shared Schlüsselauthentifizierung verwendet wird.<br/>Entweder haben Sie bereits eine Roadwarrior Verbindung mit Pre-shared Schlüsselauthentifizierung, oder Sie versuchen gerade eine hinzuzufügen.', \r
+'your department' => 'Ihre Abteilung', \r
+'your e-mail' => 'Ihre E-mail Adresse', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/de/install/CVS/Entries b/langs/de/install/CVS/Entries
new file mode 100644 (file)
index 0000000..43390c0
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_de.c/1.10.2.10/Thu Feb  2 14:18:44 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/de/install/CVS/Repository b/langs/de/install/CVS/Repository
new file mode 100644 (file)
index 0000000..679a234
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/de/install
diff --git a/langs/de/install/CVS/Root b/langs/de/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/de/install/CVS/Tag b/langs/de/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/de/install/lang_de.c b/langs/de/install/lang_de.c
new file mode 100644 (file)
index 0000000..1e93805
--- /dev/null
@@ -0,0 +1,509 @@
+/*\r
+ * German (de) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Dirk Loss, Ludwig Steininger, Michael Knappe, Michael Linke,\r
+ * Richard Hartmann, Ufuk Altinkaynak, Gerhard Abrahams, Benjamin Kohberg,\r
+ * Samuel Wiktor \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *de_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Adress-Einstellungen",\r
+/* TR_ADMIN_PASSWORD */\r
+"'admin'-Passwort",\r
+/* TR_AGAIN_PROMPT */\r
+"Wiederholung:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Alle Karten wurden erfolgreich zugeordnet.",\r
+/* TR_AUTODETECT */\r
+"* AUTOMATISCHE ERKENNUNG *",\r
+/* TR_BUILDING_INITRD */\r
+"Erzeuge INITRD...",\r
+/* TR_CANCEL */\r
+"Abbrechen",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Karten-Zuordnung",\r
+/* TR_CHECKING */\r
+"Überprüfe URL...",\r
+/* TR_CHECKING_FOR */\r
+"Suche nach: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Wähle die ISDN-Karte in diesem Computer aus:",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Wählen Sie das benötigte ISDN-Protokoll.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Konfigurieren Sie den DHCP-Server durch Eingabe der Einstellungen:",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Netzwerk konfigurieren",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Sie sollten jetzt das Netzwerk konfigurieren. Laden Sie zunächst den richtigen Treiber für die GRÜNE Schnittstelle, indem Sie die Netzwerkkarte entweder automatisch erkennen lassen oder den richtigen Treiber aus einer Liste auswählen. Wenn Sie mehr als eine Netzwerkkarte installiert haben, können Sie die anderen später konfigurieren. Sollten Sie mehrere Karten vom gleichen Typ wie die an der GRÜNEN Schnittstelle haben und jede Karte spezielle Modulparameter benötigen, sollten Sie jetzt die Parameter für alle diese Karten eingeben, so dass alle Karten aktiv werden, wenn Sie die GRÜNE Schnittstelle konfigurieren.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Konfigurieren Sie die Netzwerktreiber und geben Sie an, welcher Schnittstelle jede Karte zugewiesen ist. Die aktuelle Konfiguration ist wie folgt:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Konfigurieren Sie das CD-ROM-Laufwerk, indem Sie die richtigen Werte für IO-Adresse und/oder IRQ eingeben.",\r
+/* TR_CONGRATULATIONS */\r
+"Herzlichen Glückwunsch!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s wurde erfolgreich installiert. Entfernen Sie bitte alle Disketten oder CDs aus dem Computer. Nun wird das Setup-Programm gestartet, in dem Sie ISDN, Netzwerkkarten und die Systempasswörter konfigurieren können. Wenn dies fertiggestellt ist, rufen Sie in Ihrem Webbrowser die Box mit http://%s:81 oder https://%s:445 (oder welchen Namen Sie Ihrem %s auch immer gegeben haben) auf und konfigurieren die Wählverbindung und (falls nötig) die Fernwartung. Denken Sie daran, für den %s-'dial'-Benutzer ein Passwort zu vergeben, falls auch andere Benutzer als der %s-'admin' die Internet-Einwahlverbindung kontrollieren können sollen.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Ihre Festplatte ist sehr klein, aber sie können ohne Auslagerungsdatei weitermachen. (Mit Vorsicht benutzen).",\r
+/* TR_CURRENT_CONFIG */\r
+"Aktuelle Einstellung: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Standard-Gateway:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Standard-Gateway\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Voreingestellte Haltezeit (min):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Voreinstellung der Haltezeit\n",\r
+/* TR_DETECTED */\r
+"Gefunden wurde: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"DHCP-Hostname:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"DHCP-Hostname\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"DHCP-Konfiguration",\r
+/* TR_DISABLED */\r
+"Deaktiviert",\r
+/* TR_DISABLE_ISDN */\r
+"ISDN deaktivieren",\r
+/* TR_DISK_TOO_SMALL */\r
+"Ihre Festplatte ist zu klein.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"DNS- und Gateway-Einstellungen",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Geben Sie die DNS- und Gateway-Informationen ein. Diese Einstellungen werden nur bei einer statischen IP an der ROTEN Schnittstelle benutzt (und DHCP, falls DNS eingetragen wurde).",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Ihre Konfiguration benutzt keine Ethernet-Karte für die ROTE Schnittstelle. DNS- und Gateway-Informationen für  Einwahl- verbindungen werden automatisch beim Einwählen konfiguriert.",\r
+/* TR_DOMAINNAME */\r
+"Domainname",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Domain Name darf nicht leer sein.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Domainname darf keine Leerzeichen enthalten.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Domain Name darf nur Buchstaben, Ziffern, Bindestriche und Punkte enthalten.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Domainnamen-Suffix:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Domainnamen-Suffix\n",\r
+/* TR_DONE */\r
+"Fertig",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nMöchten Sie die Einstellungen ändern?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Treiber- und Karten-Zuordnungen",\r
+/* TR_ENABLED */\r
+"aktiviert",\r
+/* TR_ENABLE_ISDN */\r
+"ISDN aktivieren",\r
+/* TR_END_ADDRESS */\r
+"Endadresse:",\r
+/* TR_END_ADDRESS_CR */\r
+"Endadresse\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Einige ISDN-Karten (besonders ISA-Karten) benötigen zusätzliche Modulparameter, um die IRQ- und IO-Adress-Informationen einzustellen. Wenn Sie eine solche ISDN-Karte haben, geben Sie diese Parameter hier ein (z. B. \"io=0x280 irq=9\"). Sie werden dann bei der Erkennung der Karte berücksichtigt.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Geben Sie das Passwort für den %s-Administrator 'admin' ein. Das ist der Benutzer, mit dem Sie sich an den %s-Webadministrationsseiten anmelden.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Bitte geben Sie den Domainnamen ein",\r
+/* TR_ENTER_HOSTNAME */\r
+"Geben Sie den Hostnamen des Rechners an:",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Geben Sie die IP-Adressinformationen ein",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Kann die Netzwerkkarte nicht automatisch erkennen. Geben Sie den Modulnamen und eventuelle Parameter für die Netzwerkkarte an.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Geben Sie das Passwort für den Benutzer 'root' ein. Melden Sie sich als dieser Benutzer an, um Zugriff auf die Befehlszeile zu erhalten.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Geben Sie das Passwort für den Benutzer 'setup' ein. Melden Sie sich als dieser Benutzer an, um das Setup-Programm zu starten.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Geben Sie die IP-Adressinformationen für die %s Schnittstelle ein.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Geben Sie Ihre lokale Telefonnummer ein (MSN/EAZ):",\r
+/* TR_ENTER_URL */\r
+"Geben Sie die URL für ipcop-<version>.tgz und die images/scsidrv-<version>.img-Dateien ein. WARNUNG: DNS ist nicht verfügbar! Sie sollten jetzt nur etwas im Format 'http://X.X.X.X/<verzeichnis>' eingeben. ",\r
+/* TR_ERROR */\r
+"Fehler",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Fehler beim Schreiben der Konfigurationsinformationen.",\r
+/* TR_EURO_EDSS1 */\r
+"DSS1 (Euro-ISDN) (meist richtig)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Entpacke die Module...",\r
+/* TR_FAILED_TO_FIND */\r
+"Konnte die URL-Datei nicht finden.",\r
+/* TR_FOUND_NIC */\r
+"%s hat den folgenden NIC in Ihrer Maschine erkannt: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"1TR6",\r
+/* TR_HELPLINE */\r
+"       <Tab>/<Alt-Tab> wechselt zwischen Elementen | <Leertaste> wählt aus",\r
+/* TR_HOSTNAME */\r
+"Hostname",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Der Hostname darf nicht leer sein.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Der Hostname darf keine Leerzeichen enthalten.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Hostname darf nur Buchstaben, Ziffern und Bindestriche enthalten.",\r
+/* TR_INITIALISING_ISDN */\r
+"Initialisiere ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Legen Sie bitte die %s CD in das CD-ROM-Laufwerk ein.",\r
+/* TR_INSERT_FLOPPY */\r
+"Legen Sie bitte die %s-Treiberdiskette in das Diskettenlaufwerk ein.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Installation abgebrochen.",\r
+/* TR_INSTALLING_FILES */\r
+"Installiere Dateien...",\r
+/* TR_INSTALLING_GRUB */\r
+"Installiere GRUB...",\r
+/* TR_INTERFACE */\r
+"%s Schnittstelle",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Schnittstelle konnte nicht aktiviert werden.",\r
+/* TR_INVALID_FIELDS */\r
+"Die folgenden Felder sind ungültig:\n\n",\r
+/* TR_INVALID_IO */\r
+"Die angegebenen Einstellungen für den IO-Port sind ungültig. ",\r
+/* TR_INVALID_IRQ */\r
+"Die eingegebenen IRQ-Einstellungen sind ungültig.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP-Adresse\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP-Adresse:",\r
+/* TR_ISDN_CARD */\r
+"ISDN-Karte",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"Keine ISDN-Karte gefunden. Möglicherweise müssen Sie zusätzliche Modulparameter angeben, wenn es sich um eine ISA-Karte handelt oder die Karte spezielle Anforderungen hat.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Auswahl der ISDN-Karte",\r
+/* TR_ISDN_CONFIGURATION */\r
+"ISDN-Konfiguration",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"ISDN-Konfigurationsmenü",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN nicht eingestellt. Einige Parameter wurden nicht ausgewählt.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN wurde noch nicht konfiguriert. Wählen Sie aus, was Sie konfigurieren möchten.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Auswahl des ISDN-Protokolls",\r
+/* TR_ISDN_STATUS */\r
+"ISDN ist momentan %s.\n\n   Protokoll: %s\n   Karte: %s\n   Lokale Telefonnummer: %s\n\nWählen Sie aus, was Sie konfigurieren möchten, oder verwerfen Sie die aktuellen Einstellungen.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Tastatur-Layout",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Wählen Sie aus dieser Liste den Tastatur-Typ aus, den Sie benutzen.",\r
+/* TR_LEASED_LINE */\r
+"Standleitung (leased line)",\r
+/* TR_LOADING_MODULE */\r
+"Lade Modul...",\r
+/* TR_LOADING_PCMCIA */\r
+"PCMCIA-Module werden geladen...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Suche nach: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Erstelle das Boot-Dateisystem...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Erstelle das Log-Dateisystem...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Erstelle das Root-Dateisystem...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Erstelle Swap-Partition...",\r
+/* TR_MANUAL */\r
+"* MANUELL *",\r
+/* TR_MAX_LEASE */\r
+"Maximale Haltezeit (min):",\r
+/* TR_MAX_LEASE_CR */\r
+"Maximale Haltezeit\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Fehlende IP-Information für das BLAUE Interface.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"IP-Informationen für die ORANGE Schnittstelle fehlen.",\r
+/* TR_MISSING_RED_IP */\r
+"IP-Informationen für die ROTE Schnittstelle fehlen.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Der Modulname darf nicht leer sein.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Geben Sie den Modulnamen und die Parameter für den benötigten Treiber an.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Mounte das Boot-Dateisystem...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Mounte das Log-Dateisystem...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Mounte das Root-Dateisystem...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Mounte die Swap-Partition...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Lokale Telefonnummer (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Subnetzmaske:",\r
+/* TR_NETWORKING */\r
+"Netzwerk",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Netzwerkadresse\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Netzwerkadresse:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Netzwerkkonfiguration",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Typ der Netzwerkkonfiguration",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Wählen Sie die Netzwerkkonfiguration für %s aus. Die folgenden Konfigurationstypen listen diejenigen Schnittstellen auf, die am Ethernet angeschlossen sind. Wenn Sie diese Einstellung ändern, muss das Netzwerk neu gestartet werden und Sie müssen die Netzwerktreiber neu zuweisen.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Subnetzmaske\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Netzwerk-Setup fehlgeschlagen.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Nicht genügend Karten wurden zugeordnet.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Kein BLAUES Interface zugeordnet.",\r
+/* TR_NO_CDROM */\r
+"Kein CD-ROM gefunden.",\r
+/* TR_NO_HARDDISK */\r
+"Keine Festplatte gefunden.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Auf dem Webserver wurde kein ipcop-Tarball gefunden.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Keine ORANGE Schnittstelle zugewiesen.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Keine ROTE Schnittstelle zugewiesen.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Auf dem Webserver wurde kein SCSI-Image gefunden.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Es sind keine nicht zugeteilten Karten übrig; es werden aber noch mehr benötigt. Sie könnten einen Treiber aus der Liste auswählen oder eine automatische Erkennung starten.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Partitioniere die Festplatte...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Die Passwörter stimmen nicht überein.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Die Passwörter dürfen nicht leer sein.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Das Passwort darf keine Leerzeichen enthalten.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Passwort:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Die Telefonnummer darf nicht leer sein.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Das Installationsprogramm wird jetzt die Festplatte %s vorbereiten. Zunächst wird die Festplatte partitioniert. Danach wird auf den Partitionen ein Dateisystem erstellt.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Drücken Sie Ok, um neu zu starten.",\r
+/* TR_PRIMARY_DNS */\r
+"Primärer DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Primärer DNS\n",\r
+/* TR_PROBE */\r
+"Automatische Erkennung",\r
+/* TR_PROBE_FAILED */\r
+"Automatische Erkennung fehlgeschlagen.",\r
+/* TR_PROBING_SCSI */\r
+"Suche SCSI-Geräte...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Problem beim Setzen des %s Administrator-Passworts.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Problem beim Setzen des 'root'-Passworts.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Problem beim Setzen des 'setup'-Passworts.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protokoll/Land",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Starte Netzwerk...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Fahre Netzwerk herunter...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Fahre nicht-lokales Netzwerk herunter...",\r
+/* TR_QUIT */\r
+"Beenden",\r
+/* TR_RED_IN_USE */\r
+"ISDN (oder eine andere externe Verbindung) wird momentan benutzt. Sie können ISDN nicht konfigurieren, während die ROTE Schnittstelle aktiv ist.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nWenn die Konfiguration komplett ist, muss das Netzwerk neu gestartet werden.",\r
+/* TR_RESTORE */\r
+"Wiederherstellen",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Falls Sie eine Diskette mit %s-Systemeinstellungen haben, legen Sie die Diskette in das Floppylaufwerk und \ndrücken auf <Wiederherstellen>",\r
+/* TR_ROOT_PASSWORD */\r
+"'root'-Passwort",\r
+/* TR_SECONDARY_DNS */\r
+"Sekundärer DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Sekundärer DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Sekundären DNS angegeben ohne primären DNS",\r
+/* TR_SECTION_MENU */\r
+"Auswahlmenu",\r
+/* TR_SELECT */\r
+"Auswählen",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Wählen Sie den Typ des CD-ROM-Laufwerks aus",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Es wurde kein CD-ROM-Laufwerk in diesem Rechner gefunden. Bitte wählen Sie aus, welchen der folgenden Treiber Sie benutzen möchten, damit %s das CD-ROM-Laufwerk ansprechen kann.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Wählen Sie das Installationsmedium",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s kann von verschiedenen Programmquellen installiert werden.  Am einfachsten ist, Sie benutzen das eingebaute CD-ROM-Laufwerk. Falls der Computer kein CD-ROM-Laufwerk besitzt, können Sie von einem anderen Rechner im LAN installieren, der die Installationsdateien per HTTP oder FTP zur Verfügung stellt. In diesem Fall benötigen Sie zusätzlich die Treiberdiskette.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Wählen Sie den Netzwerktreiber aus",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Wählen Sie den Treiber für die in diesem Rechner eingebaute Netzwerkkarte aus. Wenn Sie MANUELL auswählen, können Sie den Modulnamen des Treibers  und die Parameter selbst angeben (z. B. für Treiber mit speziellen Anforderungen, wie bei ISA-Karten).",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Wählen Sie die Schnittstelle aus, die Sie neu konfigurieren möchten.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Wählen Sie den Punkt aus, den Sie konfigurieren möchten:",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Setze %s-Administrator-Passwort....",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Setze 'root'-Passwort....",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Setze 'setup'-Passwort...",\r
+/* TR_SETUP_FINISHED */\r
+"Das Setup ist vollständig beendet. Drücken Sie Ok für den Neustart.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Das erste Setup wurde nicht vollständig durchgeführt. Sie müssen Setup vollständig beenden; dies können Sie durch Ausführen von Setup in der Shell nachholen.",\r
+/* TR_SETUP_PASSWORD */\r
+"'setup'-Passwort",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Zusätzliche Modulparameter angeben",\r
+/* TR_SINGLE_GREEN */\r
+"In ihrer Konfiguration ist eine GRÜNE Schnittstelle eingestellt.",\r
+/* TR_SKIP */\r
+"Überspringen",\r
+/* TR_START_ADDRESS */\r
+"Anfangsadresse:",\r
+/* TR_START_ADDRESS_CR */\r
+"Anfangsadressen\n",\r
+/* TR_STATIC */\r
+"Statisch",\r
+/* TR_SUGGEST_IO */\r
+"(schlage vor %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(schlage vor %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Dieses Treibermodul ist bereits geladen.",\r
+/* TR_TIMEZONE */\r
+"Zeitzone",\r
+/* TR_TIMEZONE_LONG */\r
+"Wählen Sie die Zeitzone aus, in der Sie sich befinden.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Kann die CD-ROM nicht auswerfen.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Module können nicht extrahiert werden.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Kann keine weiteren Treiber finden.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Kann keine ISDN-Karte in diesem Computer finden. Möglicherweise müssen Sie zusätzliche Modulparameter angeben, wenn es sich um eine ISA-Karte handelt oder die Karte spezielle Anforderungen hat.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Kann ISDN nicht initialisieren.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Kann die Dateien nicht installieren.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Kann GRUB nicht installieren.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Kann Treibermodul nicht laden.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Kann das Boot-Dateisystem nicht erstellen.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Kann das Log-Dateisystem nicht erstellen.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Kann das Root-Dateisystem nicht erstellen.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Kann Swap-Partition nicht erstellen.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Kann symbolischen Link /dev/harddisk nicht anlegen.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Kann symbolischen Link /dev/harddisk1 nicht anlegen.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Kann symbolischen Link /dev/harddisk2 nicht anlegen.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Kann symbolischen Link /dev/harddisk3 nicht anlegen.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Kann symbolischen Link /dev/harddisk4 nicht anlegen.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Symlink /dev/root kann nicht erzeugt werden.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Kann das Root-Dateisystem nicht mounten.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Kann das Log-Dateisystem nicht mounten.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Das proc-Dateisystem kann nicht gemountet werden.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Kann das Root-Dateisystem nicht mounten.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Kann die Swap-Partition nicht unmounten.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Kann primäre hosts-Datei nicht öffnen.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Kann Datei mit Einstellungen nicht öffnen",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Kann die Festplatte nicht partitionieren.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Kann temporär heruntergeladene Dateien nicht löschen.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Kann Hostnamen nicht setzen.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Kann die CD-ROM bzw. Floppy nicht unmounten.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Kann die Festplatte nicht unmounten.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Kann /etc/fstab nicht schreiben",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Kann /etc/hostname nicht schreiben",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Kann /etc/hosts nicht schreiben.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Kann /etc/hosts.allow nicht schreiben.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Kann /etc/hosts.deny nicht schreiben.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Kann %s/ethernet/settings nicht schreiben.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Kann %s/main/hostname.conf nicht schreiben",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Kann %s/main/settings nicht schreiben.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Es gibt eine nicht zugeordnete Ethernet-Karte des Typs:\n%s\n\nSie können sie zuweisen an:",\r
+/* TR_UNKNOWN */\r
+"UNBEKANNT",\r
+/* TR_UNSET */\r
+"NICHT GESETZT",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"Dieser USB-Stick ist ungültig (keine VFAT Partiton gefunden).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"WARNUNG",\r
+/* TR_WARNING_LONG */\r
+"Wenn Sie diese IP-Adresse ändern, während Sie über den Fernwartungszugang zugreifen, wird die Verbindung zum %s-Rechner abbrechen. Sie müssen dann eine Verbindung zur neuen IP-Adresse aufbauen. Dies ist ein riskanter Vorgang, der nur versucht werden sollte, wenn Sie physikalischen Zugriff auf den Rechner haben, für den Fall, dass etwas schief geht.",\r
+/* TR_WELCOME */\r
+"Willkommen zum %s Installationsprogramm. Wenn Sie auf irgendeiner der folgenden Seiten 'Abbrechen' auswählen, wird der Computer neu gestartet.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Ihre Konfiguration ist für eine einzelne GRÜNE Schnittstelle eingestellt, der bereits ein Treiber zugewiesen ist.",\r
+}; \r
+  \r
diff --git a/langs/el/CVS/Entries b/langs/el/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/el/CVS/Repository b/langs/el/CVS/Repository
new file mode 100644 (file)
index 0000000..c96a187
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/el
diff --git a/langs/el/CVS/Root b/langs/el/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/el/CVS/Tag b/langs/el/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/el/cgi-bin/CVS/Entries b/langs/el/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..3d1af46
--- /dev/null
@@ -0,0 +1,2 @@
+/el.pl/1.10.2.45/Sat Jan 21 19:44:58 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/el/cgi-bin/CVS/Repository b/langs/el/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..54f0412
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/el/cgi-bin
diff --git a/langs/el/cgi-bin/CVS/Root b/langs/el/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/el/cgi-bin/CVS/Tag b/langs/el/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/el/cgi-bin/el.pl b/langs/el/cgi-bin/el.pl
new file mode 100644 (file)
index 0000000..21f803a
--- /dev/null
@@ -0,0 +1,947 @@
+# Greek  (el) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Spyros Tsiolis, A. Papageorgiou, G. Xrysostomou \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Ένα CA πιστοποιητικό με αυτό το όνομα υπάρχει ήδη.', \r
+'a connection with this common name already exists' => 'Υπάρχει ήδη μια σύνδεση με αυτό το κοινό όνομα.', \r
+'a connection with this name already exists' => 'Υπάρχει ήδη μια σύνδεση με αυτό το όνομα.', \r
+'access allowed' => 'Πρόσβαση επιτρεπτή από:', \r
+'access refused with this oinkcode' => 'Η πρόσβαση απαγορέυεται με τούτο τον κώδικα Oink', \r
+'action' => 'Ενέργεια', \r
+'add' => 'Προσθήκη', \r
+'add a host' => 'Προσθήκη σταθμού', \r
+'add a new rule' => 'Προσθήκη νέου κανόνα:', \r
+'add device' => 'Προσθήκη συσκεύης', \r
+'add network' => 'Προσθήκη δικτύου', \r
+'add new alias' => 'Προσθήκη νέου ψευδώνυμου:', \r
+'add new lease' => 'Προσθήκη νέου δανεισμού', \r
+'add service' => 'Προσθήκη υπηρεσίας', \r
+'add xtaccess' => 'Προσθήκη εξωτερικής πρόσβασης', \r
+'added from dhcp lease list' => 'προστέθηκε από την λίστα δανεισμού DHCP', \r
+'admin user password has been changed' => 'ο κωδικός πρόσβασης του admin έχει αλλάξει.', \r
+'administrator user password' => 'Κωδικός πρόσβασης administrator:', \r
+'adsl settings' => 'Ρυθμίσεις ADSL', \r
+'advanced' => 'Για προχωρημένους', \r
+'again' => 'Ξανά:', \r
+'alcatelusb help' => 'Για να χρησιμοποιήσετε το μόντεμ Speedtouch USB θα χρειαστεί να κάνετε εκπομπή το firmware στο IPCop κουτί σας. Παρακαλώ κάντε λήψη το πακέτο <b>Embedded Firmware</b> από τον δικτυακό τόπο speedtouch.com , κάντε unzip και μετά κάντε εκπομπή το επιθυμητό αρχείο για το μόντεμ σας : KQD6_3.xxx όταν Rev<4 ή ZZZL_3.xxx για Rev=4 χρησιμοποιώντας την παρακάτω φόρμα.', \r
+'alcatelusb upload' => 'Εκπομπή Firmware για Speedtouch USB', \r
+'alias ip' => 'IP ψευδώνυμο', \r
+'aliases' => 'Ψευδωνυμα', \r
+'aliases not active' => 'Τα ψευδώνυμα δεν θα ενεργοποιηθούν αν το "RED" υλικό επικοινωνίας δεν είναι ΣΤΑΤΙΚΟ', \r
+'all' => 'Όλα', \r
+'all interfaces' => 'Όλα τα Υ/Ε', \r
+'all updates installed' => 'Όλες οι ενημερώσεις είναι εγκατεστημένες', \r
+'alt dialup' => 'Dialup', \r
+'alt home' => 'ΑΡΧΙΚΗ', \r
+'alt information' => 'Πληροφορίες', \r
+'alt logs' => 'ΣΥΜΒΑΝΤΑ', \r
+'alt services' => 'ΥΠΗΡΕΣΙΕΣ', \r
+'alt system' => 'ΣΥΣΤΗΜΑ', \r
+'alt vpn' => 'ΙΙΔ', \r
+'and' => 'Και', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Εφαρμογή τώρα', \r
+'april' => 'Απρίλης', \r
+'archive not exist' => 'Το αρχείο ρυθμίσεων δεν υπάρχει.', \r
+'are you sure' => 'Είστε σίγουρος;', \r
+'arp table entries' => 'Πίνακες καταχωρίσεων ARP', \r
+'august' => 'Αύγουστος', \r
+'authentication' => 'Επικύρωση :', \r
+'automatic' => 'Αύτοματα', \r
+'available updates' => 'Διαθέσιμες ενημερώσεις:', \r
+'average' => 'Μέση τιμή', \r
+'avoid dod' => 'Μην χρησιμοποιείτε τούτη τη δυνατότητα με "Κλήση κατά βούληση"! Χρησιμοποιείται συνήθως εάν το IpCop είναι πίσω από διαδρομητή. Η διεύθυθνση του "RED" θα πρέπει να είναι μέσα σε έναν από τους τρεις καθορισμένους αριθμούς δικτύου, π.χ. 10/8, 172.16/12, 192.168/16', \r
+'back' => 'ΠΙΣΩ', \r
+'backup' => 'ΑΣΦΑΛΗ ΑΝΤΙΓΡΑΦΑ', \r
+'backup config floppy' => 'Ασφαλή αντίγραφα - Δισκέττα 3.5', \r
+'backup configuration' => 'Ρυθμίσεις ασφαλών αντιγράφων:', \r
+'backup sets' => 'Σετ ασφαλών αντιγράφων', \r
+'backup to floppy' => 'Ασφαλή αντίγραφα σε δισκέττα', \r
+'backupprofile' => 'Σε περίπτωση που η επανασύνδεση αποτυγχάνει, γυρίστε στο προφίλ', \r
+'bad characters in script field' => 'Άκυροι χαρακτήρες στο πεδίο script', \r
+'bad characters in the telephone number field' => 'Άκυροι χαρακτήρες στο πεδίο αριθμού τηλεφώνου', \r
+'bad destination range' => 'Το παράθυρο θυρών προορισμού φέρει μια αρχική τιμή που είναι μεγαλύτερη από, ή ίση με την δεύτερη τιμή.', \r
+'bad ignore filter' => 'Άκυρο φίλτρο αγνοήσεως:', \r
+'bad return code' => 'Πρόγραμμα βοήθειας επέστρεψε κώδικα λάθους', \r
+'bad source range' => 'Το παράθυρο πηγαίων θυρών φέρει μια πρώτη τιμή που είναι μεγαλύτερη από, ή ίση με την δεύτερη τιμή.', \r
+'beep when ppp connects or disconnects' => 'Ηχητικό σήμα όταν το IpCop συνδέεται ή αποσυνδέεται', \r
+'behind a proxy' => 'Πίσω από proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'Μπλε (BLUE)', \r
+'blue access' => 'ΠΡΟΣΒΑΣΗ "ΜΠΛΕ"', \r
+'blue interface' => 'Υλικό επικοινωνίας "μπλε"', \r
+'broadcast' => 'Εκπομπή', \r
+'broken pipe' => 'Σπασμένη πίπα', \r
+'buffered memory' => 'Μνήμη Buffer', \r
+'buffers' => 'ρυθμιστές λανθάνουσας μνήμης', \r
+'bytes per second' => 'Bytes το δευτερόλεπτο', \r
+'ca certificate' => 'Πιστοποιητικό CA', \r
+'ca name' => 'Όνομα CA', \r
+'cache management' => 'Διαχείριση λανθάνουσας μνήμης', \r
+'cache size' => 'Μέγεθος cache (MB):', \r
+'cached' => 'προσωρινά αποθηκευμένο', \r
+'cached memory' => 'Μνήμη Cache', \r
+'cancel' => 'Ακύρωση', \r
+'cannot enable both nat traversal and compression' => 'Δεν είναι δυνατόν να ενργοποιηθεί ταυτόχρονα η διαδρόμηση NAT και η συμπίεση.', \r
+'cannot enable ntp without specifying primary' => 'Δεν είναι δυνατόν να ενεργοποιηθεί το NTP χωρίς να δηλωθεί πρωτεύον', \r
+'cannot specify secondary dns without specifying primary' => 'Δεν είναι δυνατόν να δηλωθεί δευτερέυων διακομιστής DNS χωρίς να δηλωθεί πρωτεύων.', \r
+'cannot specify secondary ntp without specifying primary' => 'Δεν μπορεί να δηλωθεί δευτερεύων διακομιστής NTP χωρίς να δηλωθεί πρωτεύων.', \r
+'cannot specify secondary wins without specifying primary' => 'Δεν είναι δυνατόν να οριστεί δευτερέυων WINS χωρίς να οριστεί πρωτεύων.', \r
+'cant change certificates' => 'Δεν είναι δυνατό να αλλαχθούν τα πιστοποιητιά.', \r
+'cant enable xtaccess' => 'Ο σχετιζόμενος κανόνας προώηθησης θύρας είναι απενεργοποιημένος, γι\'αυτό δεν μπορείτε να ενεργοποιήσετε εξωτερική πρόσβαση για αυτόν τον κανόνα.', \r
+'cant start openssl' => 'Δεν ήταν δυνατό να γίνει εκκίνηση του OpenSSL', \r
+'caps all' => 'ΟΛΑ', \r
+'capsclosed' => 'ΚΛΕΙΣΤΑ', \r
+'capsopen' => 'ΑΝΟΙΚΤΑ', \r
+'capswarning' => 'ΠΡΟΣΟΧΗ', \r
+'cert' => 'Πιστοποιητικό', \r
+'certificate' => 'Πιστοποιητικό', \r
+'certificate authorities' => 'Αρχές πιστοποίησης', \r
+'certificate does not have a valid ca associated with it' => 'Το πιστοποιητικό δεν έχει ένα έγκυρο CA συσχετισμένο με αυτό.', \r
+'certificate file move failed' => 'Η μετακίνηση πιστοποιημένου αρχείου απέτυχε', \r
+'cfg restart' => 'Η επανεκκίνηση του συστήματος προτείνεται μετά από την επαναφορά του αρχείου ρυθμίσεων.', \r
+'chain' => 'Αλυσίδα', \r
+'change passwords' => 'Αλλαγή κωδικών πρόσβασης', \r
+'check vpn lr' => 'Έλεγχος', \r
+'city' => 'Πόλη', \r
+'clear cache' => 'Εκκαθάριση λανθάνουσας μνήμης', \r
+'clenabled' => 'Τα Clients είναι ενεργοποιημένα', \r
+'click to disable' => 'Ενεργοποιημένο (κλικ για απενεργοποίηση)', \r
+'click to enable' => 'Απενεργοποιημένο (κλικ για ενεργοποίηση)', \r
+'clock has not been synchronized' => 'Το ρολόϊ δεν έχει συγχρονιστεί', \r
+'clock last synchronized at' => 'Το ρολόϊ συγχρονίστηκε τελευταία φορά την', \r
+'common name' => 'Κοινό όνομα', \r
+'compression' => 'Συμπίεση:', \r
+'computer to modem rate' => 'Ταχύτητα επικοινωνίας υπολογιστή σε μόντεμ:', \r
+'concentrator name' => 'Όνομα συγκεντρωτή:', \r
+'confirmation' => 'επιβεβαίωση', \r
+'connect on ipcop restart' => 'Σύνδεση κατά την επανεκίνηση του IPCop:', \r
+'connect the modem' => 'Συνδέστε το μόντεμ', \r
+'connect timeout' => 'Χρόνος λήξης σύνδεσης:', \r
+'connected' => 'Συνδεμένο', \r
+'connecting' => 'Εκτελείται σύνδεση...', \r
+'connection' => 'Σύνδεση', \r
+'connection debugging' => 'Εύρεση λαθών Σύνδεσης', \r
+'connection status and controlc' => 'Κατάσταση σύνδεσης και έλεγχος:', \r
+'connection tracking' => 'Παρακαλούθηση συνδέσεων IPTables', \r
+'connection type' => 'Τύπος Σύνδεσης', \r
+'connection type is invalid' => 'Το είδος σύνδεσης είναι άκυρο.', \r
+'connections' => 'ΣΥΝΔΕΣΕΙΣ', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'υπάρχουν συνδέσεις συσχετισμένες με αυτό το CA. Αφαιρώντας το CA θα αφαιρέσει και αυτές τις συνδέσεις.', \r
+'could not be opened' => 'δεν μπορούσε να ανοιχτεί', \r
+'could not connect to' => 'Δεν ήταν δυνατό να επιτευχθεί ζεύξη στο', \r
+'could not connect to www ipcop org' => 'Σύνδεση με www.ipcop.org , μη επιτυχής', \r
+'could not create directory' => 'Ο κατάλογος δεν μπορούσε να δημιουργηθεί.', \r
+'could not download latest patch list' => 'Δεν ήταν δυνατό να "κατεβεί" η τελευταία λίστα ενημερώσεων (μη συνδεμένο).', \r
+'could not download latest updates' => 'Δεν ήταν δυνατό να "κατεβούν" οι τελευταίες ενημερώσεις.', \r
+'could not download the available updates list' => 'Δεν ήταν δυνατό να "κατεβεί" η λίστα διαθέσιμων ενημερώσεων.', \r
+'could not open available updates file' => 'Δεν ήταν δυνατόν να ανοιχτεί η λίστα διαθέσιμων ενημερώσεων.', \r
+'could not open installed updates file' => 'Δεν ήταν δυνατόν να ανοιχτεί το αρχείο εγκατεστημένων ενημερώσεων', \r
+'could not open update information file' => 'Δεν ήταν δυνατόν να ανοιχτεί το αρχείο πληροφορίας ενημερώσεων. Το αρχείο είναι κατεστραμένο.', \r
+'could not retrieve common name from certificate' => 'Δεν ήταν δυνατό να φορτωθεί το κοινό όνομα από το πιστοποιητικό.', \r
+'country' => 'Χώρα', \r
+'cpu usage per' => 'Χρήση CPU για κάθε', \r
+'create' => 'Δημιουργία', \r
+'credits' => 'ΣΥΜΒΟΛΕΣ', \r
+'cron server' => 'Διακομιστής CRON', \r
+'current' => 'Τρέχον ', \r
+'current aliases' => 'Τρέχοντα ψευδώνυμα:', \r
+'current dhcp leases on blue' => 'Τρέχοντες δανεισμοί DHCP στο Blue', \r
+'current dynamic leases' => 'Τρέχοντες δυναμικές άδειες', \r
+'current fixed leases' => 'Τρέχοντες "μόνιμοι" δανεισμοί', \r
+'current hosts' => 'Τρέχοντες σταθμοί:', \r
+'current profile' => 'Τρέχον προφίλ:', \r
+'current rules' => 'Τρέχοντες κανόνες:', \r
+'custom networks' => 'Ιδιαίτερα δίκτυα', \r
+'custom services' => 'Ιδιαίτερες υπηρεσίες', \r
+'dat without key' => 'Η επαναφορά ενός κωδικοποιημένου αρχείου είναι αδύνατη χωρίς το κλειδί του.', \r
+'date' => 'Ημερομηνία', \r
+'date not in logs' => 'Δεν υπάρχουν (ή υπάρχουν μόνο μερικά) συμβάντα για την ζητούμενη μέρα', \r
+'day' => 'Ημέρα', \r
+'day after' => 'Επόμενη μέρα', \r
+'day before' => 'Προηγούμενη μέρα', \r
+'days' => 'ημέρες', \r
+'ddns hostname added' => 'Όνομα σταθμού δυναμικού DNS προστέθηκε', \r
+'ddns hostname modified' => 'Το όνομα του δυναμικού DNS τροποποιήθηκε', \r
+'ddns hostname removed' => 'Όνομα σταθμού δυναμικού DNS αφαιρέθηκε', \r
+'ddns minimize updates' => 'Ελαχιστοποίηση ενημερώσεων: πριν από μια ενημέρωση, συγκρίνει την DNS IP για το όνομα υπολογιστή "[host.]domain" σε σχέση με την RED IP.', \r
+'ddns noip prefix' => 'Για χρήση κατάστασης no-ip in group, συμπληρώστε το όνομα συστήματος με <b>%</b>', \r
+'december' => 'Δεκέμβρης', \r
+'def lease time' => 'Προεπιλεγμένος χρόνος δανεισμού', \r
+'default lease time' => 'Προεπιλεγμένος χρόνος δανεισμού (λεπτά):', \r
+'default networks' => 'Προεπιλεγμένα δίκτυα', \r
+'default renewal time' => 'Προεπιλεγμένος χρόνος ανανέωσης', \r
+'default services' => 'Προεπιλεγμένες υπηρεσίες', \r
+'delete' => 'Διαγραφή', \r
+'demon login script' => 'Script για Demon login', \r
+'description' => 'Περιγραφή', \r
+'dest ip and port' => 'Προορισμός IP:Θύρα', \r
+'destination' => 'Προορισμός', \r
+'destination ip' => 'IP Προορισμού', \r
+'destination ip bad' => 'Άκυρη IP προορισμού', \r
+'destination ip or net' => 'IP ή Δίκτυο προορισμού', \r
+'destination net' => 'Δίκτυο προορισμού', \r
+'destination port' => 'Θύρα προορισμού', \r
+'destination port numbers' => 'Η θύρα προορισμού πρέπει να είναι ένας έγκυρος αριθμός θύρας ή παράθυρο θυρών.', \r
+'destination port overlaps' => 'Υπάρχει σύγκρουση παραθύρων θυρών προορισμού με υπάρχον παράθυρο θυρών.', \r
+'detail level' => 'Επίπεδο λεπτομέρειας', \r
+'device' => 'Συσκεύη', \r
+'devices on blue' => 'Συσκεύες στο Blue', \r
+'dhcp advopt add' => 'Προσθήκη επιλογής DHCP', \r
+'dhcp advopt added' => 'Η επιλογή DHCP έχει προστεθεί', \r
+'dhcp advopt blank value' => 'Η τιμή επιλογών DHCP δεν μπορεί να είναι κενή.', \r
+'dhcp advopt custom definition' => 'Διασαφήνιση εξειδικευμένης επιλογής', \r
+'dhcp advopt definition' => 'Διασαφήνιση', \r
+'dhcp advopt definition exists' => 'Η επιλογή διασαφήνισης υπάρχει ήδη. Μπορείτε μόνο να την συντάξετε ή να την αφαιρέσετε.', \r
+'dhcp advopt edit' => 'Σύνταξη επιλογών DHCP', \r
+'dhcp advopt help' => 'Επιλογές λίστας', \r
+'dhcp advopt list' => 'Λίστα επιλογών DHCP', \r
+'dhcp advopt modified' => 'Η δυνατότα DHCP έχει μετατραπεί', \r
+'dhcp advopt name' => 'Όνομα επιλογής', \r
+'dhcp advopt removed' => 'Η επιλογή DHCP έχει αφαιρεθεί', \r
+'dhcp advopt scope' => 'Scope επιλογής', \r
+'dhcp advopt scope global' => 'Global', \r
+'dhcp advopt scope help' => 'Global scope ή limit scope σε τσεκαρισμένα υλικά επικοινωνίας ', \r
+'dhcp advopt unknown' => 'Η επιλογή DHCP δεν αναγνωρίσθηκε', \r
+'dhcp advopt value' => 'Τιμή επιλογής', \r
+'dhcp allow bootp' => 'Επιτρέπει bootp clients', \r
+'dhcp bootp pxe data' => 'Εισάγετε ενδεχόμενα δεδομένα bootp pxe για αυτόν τον fixed δανεισμό', \r
+'dhcp configuration' => 'Ρυθμίσεις DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'ΔΙΑΚΟΜΙΣΤΗΣ DHCP', \r
+'dhcp server disabled' => 'Ο διακομιστής DHCP είναι απενεργοποιημένος. Σε στάση.', \r
+'dhcp server disabled on blue interface' => 'Ο εξυπηρετητής DHCP στο μπλε υλικό επικοινωνίας είναι απενεργοποιημένος', \r
+'dhcp server enabled' => 'Ο διακομιστής DHCP είναι ενεργοποιημένος. Εκτελείται επανεκκίνηση.', \r
+'dhcp server enabled on blue interface' => 'Ο εξυπηρετητής DHCP στο μπλε υλικό επικοινωνίας είναι ενεργοποιημένος', \r
+'dial' => 'Σύνδεση', \r
+'dial user password' => 'Κωδικός πρόσβασης για χρήστη dial:', \r
+'dial user password has been changed' => 'Κωδικός πρόσβασης χρήστη dial έχει αλλάξει.', \r
+'dialing mode' => 'τρόπος κλήσης:', \r
+'dialup settings' => 'Ρυθμίσεις Dialup', \r
+'disk access per' => 'πρόσβαση δίσκου για κάθε', \r
+'disk usage' => 'πληρότητα δίσκου:', \r
+'display' => 'Οθόνη', \r
+'display hostname in window title' => 'Εμφάνιση ονόματος συστήματος σε παράθυρο', \r
+'dmz' => 'ΑΣΖ', \r
+'dmz pinhole configuration' => 'Ρυθμίσεις καρφιτσότρυπων ΑΣΖ', \r
+'dmz pinhole rule added' => 'Κανόνας καρφιτσότρυπας ΑΣΖ προστέθηκε. Εκτελείται επανεκκίνηση καρφιτσοτρυπών ΑΣΖ', \r
+'dmz pinhole rule removed' => 'Κανόνας καρφιτσότρυπας ΑΣΖ αφαιρέθηκε. Εκτελείται επανεκκίνηση καρφιτσότρυπας ΑΣΖ', \r
+'dmzpinholes for same net not necessary' => 'Οι καρφιτσότρυπες ΑΣΖ δεν είναι απαραίτητες για το ίδιο δίκτυο. Επιλέξτε διαφορετικά δίκτυα πηγαίου και προορισμού.', \r
+'dns check failed' => 'έλεγχος DNS αποτυχής', \r
+'dns proxy server' => 'διακομιστής proxy DNS', \r
+'do not log this port list' => '"Ρίχνει" τούτη την λίστα θυρών πριν καταχωρηθούν στα συμβάντα (εξοικονομεί χώρο στην λίστα συμβάντων)', \r
+'dod' => 'Κλήση κατά βούληση', \r
+'dod for dns' => 'Κλήση κατά βούληση για DNS:', \r
+'dod not compatible with ddns' => 'Η δυνατότητα κλήσης κατά βούληση δεν είναι συμβατή με τις υπηρεσίες δυναμικού ονόματος (dynamic dns)', \r
+'dod waiting' => 'Κλήση κατά βούληση σε αναμονή', \r
+'domain' => 'Κυριότητα', \r
+'domain name' => 'Όνομα κυριότητας', \r
+'domain name suffix' => 'πρόσφυμα ονόματος κυριότητας:', \r
+'domain not set' => 'Η κυριότητα δεν έχει οριστεί.', \r
+'downlink speed' => 'Ταχύτητα μετάδοσης λήψης δεδομένων (kbit/sec)', \r
+'download ca certificate' => 'Λήψη πιστοποιητικού CA', \r
+'download certificate' => 'Λήψη πιστοποιητικού', \r
+'download host certificate' => 'Λήψη πιστοποιητικού φορέα (Host)', \r
+'download new ruleset' => 'Λήψη νέου συνόλου κανόνων', \r
+'download pkcs12 file' => 'Λήψη αρχείου PKCS12', \r
+'download root certificate' => 'Λήψη πιστοποιητικού ρίζας (Root)', \r
+'dpd action' => 'πράξη εντοπισμού νεκρού συνάδελφου (Dead Peer Detection)', \r
+'driver' => 'Οδηγός', \r
+'dst port' => 'Θύρα προορισμού', \r
+'dstprt range overlaps' => 'Παράθυρο θυρών προορισμού προσκρούεται με μια δηλωμένη θύρα.', \r
+'dstprt within existing' => 'Η θύρα προορισμού υπάρχει ήδη σε ένα παράθυρο θυρών.', \r
+'duplicate ip' => 'Καταχωρήθηκε διπλότυπη διεύθυνση IP', \r
+'duplicate ip bold' => 'Οι διπλότυπες διευθύνσεις απεικονίζονται <b>έντονα</b>', \r
+'duplicate mac' => 'Εισάχθηκε διπλότυπη διεύθυνση MAC', \r
+'duplicate name' => 'Αυτό το όνομα χρησιμοποιείται ήδη, παρακαλώ επιλέξτε ένα άλλο.', \r
+'dyn dns source choice' => 'Ο (οι) προμηθευτής Dynamic DNS θα λάβει μια διεύθυνση IP για τούτο το IpCop από :', \r
+'dynamic dns' => 'ΔΥΝΑΜΙΚΟΣ DNS', \r
+'dynamic dns client' => 'Πελάτης δυναμικού DNS', \r
+'e-mail address too long' => 'Η ηλεκτρονική διεύθυνση είναι πολύ μεγάλη. Δεν θα πρέπει να είναι μεγαλύτερη από 40 χαρακτήρες.', \r
+'eciadsl help' => 'Για να χρησιμοποιηθεί το μόντεμ τύπου ECI ADSL πρέπει να εκπεμφθεί ένα αρχείο synch.bin στο IPCop κουτί σας. Παρακαλώ κάντε λήψη το αρχείο από την ιστοσελίδα ECIADSL και μετά εκπέμψτε το αρχείο <b>synch.bin</b> χρησιμοποιώντας την παρακάτω φόρμα.', \r
+'eciadsl upload' => 'Εκπομπή αρχείου Synch.bin για ECI ADSL', \r
+'edit' => 'Σύνταξη', \r
+'edit a rule' => 'Σύνταξη υπάρχοντος κανόνα:', \r
+'edit advanced settings when done' => 'Σύνταξη προχωρημένων ρυθμίσεων στο πέρας.', \r
+'edit an existing alias' => 'Σύνταξη υπάρχοντος ψευδωνύμου', \r
+'edit an existing host' => 'Σύνταξη υπάρχοντος φορέα (host)', \r
+'edit an existing lease' => 'Σύνταξη υπάρχοντος δανεισμού', \r
+'edit device' => 'Σύνταξη συσκεύης', \r
+'edit hosts' => 'ΣΥΝΤΑΞΗ ΑΡΧΕΙΟΥ "Hosts"', \r
+'edit network' => 'Σύνταξη δικτύου', \r
+'edit service' => 'Σύνταξη υπηρεσίας', \r
+'empty' => 'Κενό', \r
+'enable ignore filter' => 'Ενεργοποίηση φίλτρου άγνοιας', \r
+'enable javascript' => 'Ενεργοποίηση Javascript', \r
+'enable wildcards' => 'Ενεργοποίηση μπαλαντέρ:', \r
+'enabled' => 'Ενεργοποιημένο:', \r
+'enabled on' => 'Ενεργοποιημένο', \r
+'enabledtitle' => 'Ενεργοποιημένο', \r
+'encapsulation' => 'Κωδικοποίηση', \r
+'encrypted' => 'Κωδικοποιημένο', \r
+'end address' => 'Τελική διεύθυνση:', \r
+'err bk 1' => 'Λάθος κατά την δημιουργία αρχείου', \r
+'err bk 2 key' => 'Λάθος κατά την δημιουργία αρχείου κλειδιού', \r
+'err bk 3 tar' => 'Λάθος κατά την άθροιση δεδομένων στο αρχείο', \r
+'err bk 4 gz' => 'Λάθος κατά την συμπίεση του αρχείου', \r
+'err bk 5 encrypt' => 'Λάθος κατά την κωδικοποίηση του αρχείου', \r
+'err rs 1' => 'Λάθος κατά την επαναφορά του αρχείου', \r
+'err rs 6 decrypt' => 'Λάθος κατα την αποκωδικοποίηση του αρχείου', \r
+'err rs 7 untartst' => 'Άκυρο κωδικοποιημένο αρχείο', \r
+'err rs 8 untar' => 'Λάθος κατά την ξεδίπλωση του αρχείου (untar)', \r
+'error messages' => 'Μυνήματα λάθους:', \r
+'esp encryption' => 'Απόκρυψη ESP :', \r
+'esp grouptype' => 'Τύπος γκρουπ (Grouptype) ESP :', \r
+'esp integrity' => 'Ακαιρεότητα ESP :', \r
+'esp keylife' => 'Ζωή κλειδιού (Keylife) ESP :', \r
+'esp keylife should be between 1 and 24 hours' => 'Η ζωή κλειδιού (Keylife) του ESP θα πρέπει να είναι μεταξύ 1 και 24 ωρών.', \r
+'every' => 'Κάθε', \r
+'excluding buffers and cache' => '-/+ ρυθμιστές λανθάνουσας μνήμης/προσωρινή μνήμη', \r
+'expected' => 'Αναμαίνετο', \r
+'expires' => 'Λήγει την', \r
+'export' => 'Εξαγωγή', \r
+'external access' => 'ΕΞΩΤΕΡΙΚΗ ΠΡΟΣΒΑΣΗ', \r
+'external access configuration' => 'Ρυθμίσεις εξωτερικής πρόσβασης', \r
+'external access rule added' => 'Κανόνας εξωτερικής πρόσβασης προστέθηκε. Εκτελείται επανεκκίνηση του ελεγκτή πρόσβασης', \r
+'external access rule removed' => 'Κανόνας εξωτερικής πρόσβασης αφαιρέθηκε. Εκτελείται επανεκκίνηση του ελεγκτή πρόσβασης', \r
+'external aliases configuration' => 'Ρυθμίσεις εξωτερικών ψευδωνύμων', \r
+'february' => 'Φεβρουάριος', \r
+'fetch ip from' => 'Μαντέυει την πραγματική IP με την βοήθεια ενός εξωτερικού εξυπηρετητή', \r
+'filename' => 'Όνομα αρχείου', \r
+'filesystem full' => 'Το σύστημα αρχείων είναι πλήρες', \r
+'firewall' => 'ΤΕΙΧΟΣ ΠΡΟΣΤΑΣΙΑΣ', \r
+'firewall hits' => 'Ολικός αριθμός κτυπημάτων τοίχους προστασίας για', \r
+'firewall log' => 'Κατάλογος συμβάντων τείχους προστασίας', \r
+'firewall log viewer' => 'Αναφορά Συμβάντων τείχους προστασίας', \r
+'firewall logs' => 'ΣΥΜΒΑΝΤΑ ΤΕΙΧΟΥΣ ΠΡΟΣΤΑΣΙΑΣ', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Εκπομπή firmware / οδηγών', \r
+'fixed ip lease added' => 'Δανεισμός στατικών IP προστέθηκε', \r
+'fixed ip lease modified' => 'Ο δανεισμός σταθερής IP άλλαξε', \r
+'fixed ip lease removed' => 'Δανεισμός στατικών IP αφαιρέθηκε', \r
+'force update' => 'Αναγκασμός ενημέρωσης', \r
+'forwarding rule added' => 'Κανόνας προώθησης προστέθηκε. Εκτελείται επανεκκίνηση του προωθητήρα', \r
+'forwarding rule removed' => 'Κανόνας προώθησης αφαιρέθηκε. Εκτελείται επανεκκίνηση του προωθητήρα', \r
+'forwarding rule updated' => 'Κανόνας προώθησης ενημερώθηκε. Εκτελείται επανεκκίνηση του προωθητήρα', \r
+'free' => 'Ελεύθερο', \r
+'free memory' => 'Ελεύθερη μνήμη', \r
+'free swap' => 'Ελεύθερη Swap', \r
+'friday' => 'Παρασκεύη', \r
+'fritzdsl help' => 'Για να χρησιμοποιήσετε ένα από τα Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb μόντεμς, θα πρέπει να ανεβάσετε ένα αρχείο στο IpCop κουτί σας. Παρακαλώ κατεβάστε την μπάλα tar που αντιστοιχεί στην δική έκδοση από τον δικτυακό τόπο του IpCop και μετά ανεβάστε όλο το <b>fcdsl-(your_version).tgz</b> χρησιμοποιώντας την παρακάτω φόρμα.', \r
+'fritzdsl upload' => 'Εκπομπή οδηγού Fritz!DSL', \r
+'from' => 'Από', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Πύλη', \r
+'gateway ip' => 'IP πύλης', \r
+'generate a certificate' => 'Δημιουργία πιστοποιητικού :', \r
+'generate root/host certificates' => 'Δημιουργία πιστοποιητικών ρίζας/φορέα (Root/Host)', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Η δημιουργία πιστοποιητικών ρίζας και φορέα (Root/Host) μπορεί να πάρει λίγο χρόνο. Μπρεί να πάρει αρκετά λεπτά σε παλαιότερο υλικό. Παρακαλώ να είστε υπομονετικοί.', \r
+'global settings' => 'Γενικές ρυθμίσεις', \r
+'graph' => 'Γράφημα', \r
+'graph per' => 'Γράφημα για κάθε ', \r
+'green' => 'Πράσινο (GREEN)', \r
+'green interface' => '"Πράσινο" υλικό επικοινωνίας', \r
+'gui settings' => 'ΡΥΘΜΙΣΕΙΣ GUI', \r
+'gz with key' => 'Η επαναφορά μόνο ενός κωδικοποιημένου αρχείου είναι δυνατό σε τούτη τη μηχανή.', \r
+'hangup' => 'Αποσύνδεση', \r
+'hangup string' => 'Τερματισμός κλήσης:', \r
+'high' => 'Υψηλή', \r
+'high memory usage' => 'Υψηλή χρήση μνήμης', \r
+'holdoff' => 'Χρόνος Holdoff (σε δευτερόλεπτα)', \r
+'host' => 'Host', \r
+'host certificate' => 'Πιστοποιητικό φορέα (Host)', \r
+'host configuration' => 'Ρυθμίσεις Host', \r
+'host ip' => 'Διεύθυνση IP host', \r
+'host to net vpn' => 'Φορέας-προς-Δίκτυο Ιδεατό Ιδιωτικό Δίκτυο (Μαχητής του Δρόμου)', \r
+'hostname' => 'Όνομα σταθμού', \r
+'hostname and domain already in use' => 'Όνομα σταθμού και κυριότητας ήδη σε χρήση.', \r
+'hostname cant be empty' => 'Το όνομα φορέα (Hostname) δεν μπορεί να είναι άδειο.', \r
+'hostname not set' => 'Δεν έχει οριστεί το όνομα σταθμού', \r
+'hosts config added' => 'Προστέθηκε η ρύθμιση σταθμών (hosts)', \r
+'hosts config changed' => 'Η ρύθμιση σταθμών (hosts) άλλαξε', \r
+'hours' => 'ώρες', \r
+'hours2' => 'Ώρες', \r
+'ibod for dual isdn only' => 'Το iBOD μπορεί να χρησιμοποιηθεί μόνο με διπλή ISDN.', \r
+'icmp selected but no type' => 'Το ICMP επιλέχθηκε σαν προτόκολλο, αλλά δεν έχει οριστεί τύπος ICMP', \r
+'icmp type' => 'Τύπος ICMP', \r
+'id' => 'ταυτότητα', \r
+'idle' => 'Ανενεργό', \r
+'idle cpu' => 'Ανενεργή CPU', \r
+'idle cpu usage' => 'Ανενεργή χρήση CPU', \r
+'idle timeout' => 'Χρόνος λήξης αναμονής (λεπτά, 0 για απενεργοποίηση):', \r
+'idle timeout not set' => 'Ο χρόνος λήξης αναμονής δεν έχει οριστεί.', \r
+'ids log viewer' => 'Κατάλογος συμβάντων ΣΕΕ', \r
+'ids logs' => 'Συμβάτα ΣΕΕ', \r
+'ids rules license' => 'Για να χρησιμοποιήσετε τους πιστοποιημένους κανόνες Sourcefire VRT, θα πρέπει να εγγραφείτε στο ', \r
+'ids rules license2' => 'Κάντε παραδοχή της άδειας, λάβετε τον κωδικό πρόσβασης μέσω email και συνδεθείτε στον δικτυακό τόπο. Πηγαίνετε στο ', \r
+'ids rules license3' => 'πιέστε το κομβίο "λήψη κώδικα" στο τέλος και αντιγράψτε 40 χαρακτήρες κώδικα Oink στο πεδίο παρακάτω.', \r
+'ids rules update' => 'Ενημέρωση κανόνων Snort', \r
+'iface' => 'Υλικό επικοινωνίας', \r
+'ignore filter' => 'Φίλτρο αγνόησης', \r
+'ike encryption' => 'Απόκρυψη IKE:', \r
+'ike grouptype' => 'Τύπος γκρουπ (Grouptype) IKE :', \r
+'ike integrity' => 'Ακαιρεότητα IKE :', \r
+'ike lifetime' => 'Χρόνος ζωής IKE :', \r
+'ike lifetime should be between 1 and 8 hours' => 'Χρόνος ζωής του IKE θα πρέπει να είναι μεταξύ 1 και 8 ωρών.', \r
+'import' => 'Εισαγωγή', \r
+'in' => 'Εισερχόμενα', \r
+'incoming traffic in bytes per second' => 'Εισερχόμενος όγκος δεδομένων σε Bytes το δευτερόλεπτο', \r
+'info' => 'Πληροφορίες', \r
+'init string' => 'Init:', \r
+'insert floppy' => 'Εισάγετε μια φορμαρισμένη δισκέττα στο drive και κάντε κλικ στο <i>Ασφαλή αντίγραφα σε δισκέττα</i> για να πάρετε ασφαλές αντίγραφο των ρυθμίσεων του συστήματος. Παρακαλώ ελέγξτε τα αποτελέσματα με προσοχή για να σιγουρευτείτε ότι το αντίγραφο ασφαλείας εξετελέσθηκε επιτυχώς.<p>', \r
+'install new update' => 'Εγκατάσταση νέας ενημέρωσης:', \r
+'installed' => 'Εγκατεστημένο', \r
+'installed updates' => 'Εγκατεστημένες ενημερώσεις:', \r
+'instant update' => 'Άμεση ανανέωση', \r
+'interface' => 'Υλικό επικοινωνίας:', \r
+'interfaces' => 'Υλικά επικοινωνίας:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'ΣΥΣΤΗΜΑ ΕΝΤΟΠΙΣΜΟΥ', \r
+'intrusion detection system' => 'Σύστημα Εντοπισμού Εισβολέα', \r
+'intrusion detection system log viewer' => 'Κατάλογος συμβάντων Συστήματος Εντοπισμού Εισβολέα', \r
+'intrusion detection system2' => 'Σύστημα Εντοπισμού Εισβολέα:', \r
+'invalid broadcast ip' => 'Άκυρη IP εκπομπής', \r
+'invalid cache size' => 'Μέγεθος cache άκυρο.', \r
+'invalid characters found in pre-shared key' => 'Βρέθηκαν άκυροι χαρακτήρες στο προ-μοιρασμένο κλειδί (pre-shared key).', \r
+'invalid date entered' => 'Άκυρη εισαγωγή ημερομηνίας.', \r
+'invalid default lease time' => 'Προεπιλεγμένος χρόνος δανεισμού άκυρος.', \r
+'invalid domain name' => 'Άκυρο όνομα κυριότητας.', \r
+'invalid downlink speed' => 'Άκυρη εισαγωγή "καθόδου" δεδομένων (downlink).', \r
+'invalid end address' => 'Άκυρη τελική διεύθυνση.', \r
+'invalid fixed ip address' => 'Άκυρη στατική διεύθυνση IP', \r
+'invalid fixed mac address' => 'Άκυρη στατική διεύθυνση MAC', \r
+'invalid hostname' => 'Άκυρο όνομα σταθμού.', \r
+'invalid input' => 'άκυρη εισαγωγή', \r
+'invalid input for authentication method' => 'Άκυρη εισαγωγή για μέθοδο επικύρωσης.', \r
+'invalid input for city' => 'Άκυρη εισαγωγή για πόλη.', \r
+'invalid input for country' => 'Άκυρη εισαγωγή για χώρα.', \r
+'invalid input for department' => 'Άκυρη εισαγωγή για διαμέρισμα.', \r
+'invalid input for e-mail address' => 'Άκυρη εισαγωγή για διεύθυνση ηλεκτρονικού ταχυδρομείου.', \r
+'invalid input for esp keylife' => 'Άκυρη εισαγωγή για ζωή κλειδιού ESP', \r
+'invalid input for hostname' => 'Άκυρη εισαγωγή για όνομα φορέα (hostname).', \r
+'invalid input for ike lifetime' => 'Άκυρη εισαγωγή για χρόνο ζωής IKE', \r
+'invalid input for name' => 'Άκυρη εισαγωγή για πλήρες όνομα χρήστη ή όνομα συστήματος', \r
+'invalid input for oink code' => 'Άκυρη εισαγωγή για κώδικα Oink', \r
+'invalid input for organization' => 'Άκυρη εισαγωγή για οργανισμό', \r
+'invalid input for remote host/ip' => 'Άκυρη εισαγωγή για απομακρυσμένο φορέα/ip.', \r
+'invalid input for state or province' => 'Άκυρη εισαγωγή για χώρα ή επαρχία.', \r
+'invalid ip' => 'Άκυρη διεύθυνση IP', \r
+'invalid keep time' => 'Ο Χρόνος αποθήκευσης πρέπει να είναι ένα κανονικό νούμερο', \r
+'invalid key' => 'Άκυρο κλειδί.', \r
+'invalid loaded file' => 'Άκυρο φορτωμένο αρχείο', \r
+'invalid logserver address' => 'Άκυρη διεύθυνση διακομιστή syslogd', \r
+'invalid max lease time' => 'Άκυρος μέγιστος χρόνος δανεισμού.', \r
+'invalid maximum incoming size' => 'Άκυρο μέγιστο εισερχόμενο μέγεθος.', \r
+'invalid maximum object size' => 'Άκυρο μέγιστο μέγεθος αντικειμένου.', \r
+'invalid maximum outgoing size' => 'Άκυρο μέγιστο εξερχόμενο μέγεθος.', \r
+'invalid md5sum' => 'Άκυρο MD5Sum.', \r
+'invalid minimum object size' => 'Άκυρο ελάχιστο μέγεθος αντικειμένου.', \r
+'invalid netmask' => 'Άκυρη μάσκα δικτύου', \r
+'invalid port' => 'Άκυρη θύρα. Πρέπει να είναι ένας έγκυρος αριθμός θύρας.', \r
+'invalid port list' => 'Το συντακτικό της λίστας θυρών είναι: θύρα,[,θύρα]... όπου θύρα είναι στο /etc/services ή ένας αριθμός', \r
+'invalid primary dns' => 'Άκυρος πρωτεύων διακομιστής DNS.', \r
+'invalid primary ntp' => 'Άκυρη διεύθυνση για πρωτεύων διακομιστή NTP', \r
+'invalid secondary dns' => 'Άκυρος δευτερεύων διακομιστής DNS.', \r
+'invalid secondary ntp' => 'Άκυρη διεύθυνση για δευτερεύων διακομιστή NTP', \r
+'invalid start address' => 'Άκυρη αρχική διεύθυνση.', \r
+'invalid time entered' => 'Άκυρη εισαγωγή ώρας.', \r
+'invalid time period' => 'Άκυρη χρονική περίοδος', \r
+'invalid uplink speed' => 'Άκυρη ταχύτητα "ανόδου" σύνδεσης (uplink).', \r
+'invalid upstream proxy username or password setting' => 'Άκυρη upstream proxy ρύθμιση για όνομα χρήστη και κωδικό πρόσβασης.', \r
+'invalid vpi vpci' => 'Άκυρες ρυθμίσεις VPI/VPCI', \r
+'invalid wins address' => 'Άκυρη διεύθυνση διακομιστή WINS.', \r
+'invert' => 'Αντιστροφή', \r
+'ip address' => 'Διεύθυνση IP', \r
+'ip address in use' => 'Διεύθυνση IP ήδη σε χρήση', \r
+'ip address outside subnets' => 'Η διεύθυνση IP είναι εκτός των τοπικών subnet(s)', \r
+'ip alias added' => 'Το ψευδώνυμο εξωτερικής IP προστέθηκε', \r
+'ip alias changed' => 'Το ψευδώνυμο της εξωτερικής IP άλλαξε', \r
+'ip alias removed' => 'Εξωτερικό ψευδώνυμο IP αφαιρέθηκε', \r
+'ip info' => 'Πληροφορίες IP', \r
+'ipcop has now rebooted' => 'Το IPCop έχει εκτελέσει επανεκκίνηση.', \r
+'ipcop has now shutdown' => 'Το IPCop έχει τερματίσει.', \r
+'ipcop side' => 'Πλευρά IPCop :', \r
+'ipcop side is invalid' => 'Η πλευρά του IPCop είναι άκυρη.', \r
+'ipcops hostname' => 'Όνομα φορέα IPCop', \r
+'ipinfo' => 'Πληροφορίες IP', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Επιπρόσθετες ρυθμίσεις ISDN:', \r
+'isdn1' => 'Μονή ISDN', \r
+'isdn2' => 'Διπλή ISDN', \r
+'january' => 'Ιανουάριος', \r
+'javascript menu error1' => 'Εάν τα drop down μενού δεν δουλεύουν, απενεργοποιήστε την Javascript στην ', \r
+'javascript menu error2' => 'σελίδα.', \r
+'july' => 'Ιούλιος', \r
+'june' => 'Ιούνιος', \r
+'kernel' => 'Πυρήνας', \r
+'kernel logging server' => 'Διακομιστής συμβάντων πυρήνα', \r
+'kernel version' => 'Έκδοση πυρήνα:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Επιλέξτε την γλώσσα εμφάνισης για το IPCop:', \r
+'lease expires' => 'Η άδεια λήγει', \r
+'legend' => 'Οδηγός', \r
+'line' => 'Γραμμή', \r
+'loaded modules' => 'Φορτωμένα modules:', \r
+'local ntp server specified but not enabled' => 'Τοπικός διακομιστής NTP δηλωμένος αλλά μη ενεργοποιημένος', \r
+'local subnet' => 'Τοπικό υποδίκτυο :', \r
+'local subnet is invalid' => 'Το τοπικό υποδίκτυο είναι άκυρο.', \r
+'local vpn hostname/ip' => 'Τοπικό όνομα φορέα ΙΙΔ / IP', \r
+'log' => 'Συμβάν:', \r
+'log enabled' => 'Κατάλογος συμβάντων ενεργοποιημένος', \r
+'log lines per page' => 'Γραμμές ανά σελίδα', \r
+'log server address' => 'Διακομιστής Syslog', \r
+'log settings' => 'ΡΥΘΜΙΣΕΙΣ ΣΥΜΒΑΝΤΩΝ', \r
+'log summaries' => 'ΣΥΝΟΨΗ ΒΙΒΛΙΟΥ ΣΥΜΒΑΝΤΩΝ', \r
+'log summary' => 'ΣΥΝΟΨΗ ΒΙΒΛΙΟΥ ΣΥΜΒΑΝΤΩΝ', \r
+'log viewer' => 'Κατάλογος συμβάντων', \r
+'log viewing options' => 'Προτιμήσεις βιβλίου συμβάντων', \r
+'logging server' => 'Διακομιστής συμβάντων', \r
+'loginlogout' => 'Login/Logout', \r
+'lookup failed' => 'Η αντίθετη εύρεση απέτυχε', \r
+'low' => 'Χαμήλη', \r
+'ls_dhcpd' => 'Εξυπηρετητής DHCP :', \r
+'ls_disk space' => 'Χώρος στον δίσκο:', \r
+'ls_free/swan' => 'ΙΙΔ :', \r
+'ls_httpd' => 'Εξυπηρετητής HTTP :', \r
+'ls_init' => 'Αρχικό:', \r
+'ls_kernel' => 'Πυρήνας και τείχος ασφαλείας:', \r
+'ls_modprobe' => 'Φορτωτής στοιχείου (module) :', \r
+'ls_pam_unix' => 'Τοπικά logins χρηστών :', \r
+'ls_sshd' => 'Απομακρυσμένα logins χρηστών :', \r
+'ls_syslogd' => 'Syslogd :', \r
+'mac address' => 'Διεύθυνση MAC', \r
+'mac address in use' => 'Η διεύθυνση MAC είναι ήδη σε λειτουργία', \r
+'main page' => 'Κεντρική σελίδα', \r
+'manual' => 'Χειροκίνητος', \r
+'manual control and status' => 'Χειροκίνητος έλεγχος και κατάσταση:', \r
+'manually' => 'Χειροκίνητα', \r
+'march' => 'Μάρτιος', \r
+'marked' => 'Στιγματισμένο', \r
+'max incoming size' => 'Μέγιστο εισερχόμενο μέγεθος (KB):', \r
+'max lease time' => 'Μέγιστος χρόνος δανεισμού (λεπτά):', \r
+'max outgoing size' => 'Μέγιστο εξερχόμενο μέγεθος (KB):', \r
+'max renewal time' => 'Μέγιστος χρόνος ανανέωσης', \r
+'max retries not set' => 'Δεν έχει οριστεί ο αριθμός μέγιστων επαναλήψεων.', \r
+'max size' => 'Μέγιστος αριθμός αντικειμένου (KB):', \r
+'maximal' => 'Μέγιστη', \r
+'maximum retries' => 'Μέγιστος αριθμός επαναλήψεων:', \r
+'may' => 'Μάϊος', \r
+'medium' => 'Μεσαία', \r
+'memory' => 'Μνήμη:', \r
+'memory usage per' => 'Χρήση μνήμης για κάθε', \r
+'method' => 'Μέθοδος:', \r
+'min size' => 'Ελάχισο μέγεθος αντικειμένου (KB):', \r
+'minutes' => 'Λεπτά', \r
+'missing dat' => 'Το κωδικοποιημένο αρχείο δεν βρέθηκε', \r
+'missing gz' => 'Δεν βρέθηκε το αποκωδικοποιημένο αρχείο', \r
+'modem' => 'ΜΟΝΤΕΜ', \r
+'modem configuration' => 'Ρυθμίσεις μόντεμ', \r
+'modem on com1' => 'Μόντεμ στην COM1', \r
+'modem on com2' => 'Μόντεμ στην COM2', \r
+'modem on com3' => 'Μόντεμ στην COM3', \r
+'modem on com4' => 'Μόντεμ στην COM4', \r
+'modem on com5' => 'Μόντεμ στην COM5', \r
+'modem settings have errors' => 'Οι ρυθμίσεις του μόντεμ φέρουν λάθη', \r
+'modem speaker on' => 'Ηχείο μόντεμ ενεργό:', \r
+'modulation' => 'Διαμόρφωση', \r
+'monday' => 'Δευτέρα', \r
+'month' => 'Μήνας:', \r
+'months' => 'μήνες', \r
+'mounted on' => 'Εφαρμοσμένο στο', \r
+'name' => 'Όνομα', \r
+'name is invalid' => 'Το όνομα είναι άκυρο', \r
+'name must only contain characters' => 'Το όνομα πρέπει να περιέχει μόνο χαρακτήρες.', \r
+'name too long' => 'Το όνομα του χρήστη ή το όνομα του φορέα (host) είναι πολύ μεγάλο', \r
+'nat-traversal' => 'Διαδρόμηση NAT :', \r
+'net' => 'ΔΙΚΤΥΟ', \r
+'net to net vpn' => 'Δίκτυο-προς-δίκτυο Ιδιωτικό Ιδεατό Δίκτυο', \r
+'netmask' => 'Μάσκα δικτύου', \r
+'network' => 'ΔΙΚΤΥΟ', \r
+'network added' => 'Ιδιαίτερο δίκτυο προστέθηκε', \r
+'network configuration' => 'Ρυθμίσεις δικτύου', \r
+'network removed' => 'Ιδιαίτερο δίκτυο αφαιρέθηκε', \r
+'network status information' => 'Πληροφορίες κατάστασης δικτύου', \r
+'network time' => 'Χρηση ενός διακομιστή χρόνου δικτύου:', \r
+'network time from' => 'Χρήση χρόνου από έναν δικτυακό εξυπηρετητή χρόνου', \r
+'network traffic graphs' => 'Γραφήματα κίνησης δικτύου', \r
+'network updated' => 'Ενημέρωση Ιδιαίτερου Δικτύου', \r
+'networks settings' => 'Τείχος προστασίας - Ρυθμίσεις Δικτύου', \r
+'new optionsfw later' => 'Οι αλλαγές σας θα ενεργοποιηθούν στην επόμενη επαννεκίνηση', \r
+'new optionsfw must boot' => 'Πρέπει να επαννεκινήσετε το IPCop', \r
+'newer' => 'Νεότερο', \r
+'next address' => 'ΠΡΟΣ ΜΕΛΟΝΤΙΚΗ ΑΦΑΙΡΕΣΗ', \r
+'no' => 'Όχι', \r
+'no alcatelusb firmware' => 'Δεν υπάρχει διαθέσιμο firmware για Alcatel USB. Παρακαλώ εκπέμψτε.', \r
+'no cfg upload' => 'Δεν υπήρξε εκπομπή δεδομένων', \r
+'no dhcp lease' => 'Δεν ανατέθηκε δανεισμός DHCP', \r
+'no eciadsl synch.bin file' => 'To αρχείο ECI ADSL δεν υπάρχει. Παρακαλώ εκπέμψτε.', \r
+'no fritzdsl driver' => 'Οδηγός Fritz!DSL ανύπαρκτος. Παρακαλώ εκπέμψτε.', \r
+'no information available' => 'Δεν υπάρχουν διαθέσιμες πληροφορίες.', \r
+'no modem selected' => 'Δεν έγινε επιλογή μόντεμ', \r
+'no set selected' => 'Δεν επιλέχτηκε σετ', \r
+'no time limit' => 'χωρίς λήξη χρόνου', \r
+'none found' => 'καμία εύρεση', \r
+'nonetworkname' => 'Δεν καταχωρήθηκε όνομα δικτύου', \r
+'noservicename' => 'Δεν κατεχωρήθη Όνομα Υπηρεσίας', \r
+'not a valid ca certificate' => 'Δεν είναι έγκυρο πιστοποιητικό CA.', \r
+'not enough disk space' => 'Δεν υπάρχει αρκετός χώρος στον δίσκο', \r
+'not present' => '<B>Δεν</B> είναι παρών', \r
+'not running' => 'ανενεργό', \r
+'november' => 'Νοέμβριος', \r
+'ntp configuration' => 'Ρυθμίσεις NTP', \r
+'ntp must be enabled to have clients' => 'Το NTP πρέπει να είναι ενεργοποιημένο για να έχει clients.', \r
+'ntp server' => 'Διακομιστής NTP', \r
+'ntp syncro disabled' => 'Συγχρονισμός NTP απενεργοποιημένος', \r
+'ntp syncro enabled' => 'Συγχρονισμός NTP ενεργοποιημένος', \r
+'ntpd restarted' => 'Εκτελέσθηκε επαννεκίνηση του ntpd', \r
+'number' => 'Αριθμός:', \r
+'october' => 'Οκτώβριος', \r
+'older' => 'Παλαιότερο', \r
+'online help en' => 'Βοήθεια online (στα αγγλικά)', \r
+'only digits allowed in holdoff field' => 'Μόνο ψηφία επιτρέπονται στο πεδίο holdoff', \r
+'only digits allowed in max retries field' => 'Μόνο αριθμοί είναι επιτρεπτοί στο πεδίο μέγιστων προσπαθειών,', \r
+'only digits allowed in the idle timeout' => 'Μόνο αριθμοί είναι επιτρεπτοί στο πεδίο λήξης χρόνου αναμονής.', \r
+'only red' => 'Μόνο το RED', \r
+'open to all' => 'Παράκαμψη εξωτερικής πρόσβασης στο ΟΛΑ', \r
+'openssl produced an error' => 'To OpenSSL παρήγαγε ένα σφάλμα', \r
+'options' => 'Επιλογές', \r
+'options fw' => 'Επιλογές τείχους προστασίας', \r
+'optionsfw portlist hint' => 'Η λίστα των θυρών πρέπει να διαχωρίζεται με κόμματα (comma separated list, π.χ. 137,138). Μπορείτε να δηλώσετε μέχρι 15 θύρες ανά πρωτόκολλο το μέγιστο.', \r
+'optionsfw warning' => 'Τροποποιώντας τούτες τις επιλογές υποδεικνύει επαννεκίνηση του τείχους προστασίας', \r
+'orange' => 'Πορτοκαλί (ORANGE)', \r
+'organization cant be empty' => 'Το όνομα του οργανισμού δεν μπορεί να είναι κενό.', \r
+'organization name' => 'Όνομα οργανισμού', \r
+'organization too long' => 'Το όνομα οργανισμού είναι πολύ μεγάλο. Δεν θα πρέπει να είναι μεγαλύτερο από 60 χαρακτήρες.', \r
+'original' => 'Αυθεντικό', \r
+'other countries' => 'Άλλες χώρες', \r
+'other login script' => 'Άλλο login script', \r
+'out' => 'Εξερχόμενα', \r
+'outgoing traffic in bytes per second' => 'Εξερχόμενος όγκος δεδομένων σε Bytes το δευτερόλεπτο', \r
+'package failed to install' => 'Το πακέτο απέτυχε να εγκατασταθεί.', \r
+'pap or chap' => 'PAP ή CHAP', \r
+'password' => 'Κωδικός πρόσβασης:', \r
+'password contains illegal characters' => 'Ο κωδικός πρόσβασης περιέχει άκυρους χαρακτήρες.', \r
+'password not set' => 'Ο κωδικός πρόσβασης δεν έχει οριστεί.', \r
+'password too short' => 'Ο κωδικός πρόσβασης είναι πολύ μικρός.', \r
+'passwords do not match' => 'Οι κωδικοί πρόσβασης δεν είναι ίδιοι.', \r
+'passwords must be at least 6 characters in length' => 'Οι κωδικοί πρόσβασης πρέπει να είναι τουλάχιστον έξι χαρακτήρες σε μέγεθος', \r
+'percentage' => 'Ποσοστό', \r
+'persistent' => 'Επίμονη', \r
+'pfs yes no' => 'PFS ναι όχι', \r
+'phase1 group' => 'Γκρουπ Phase1', \r
+'phonebook entry' => 'Καταχώρηση βιβλίου επαφών:', \r
+'ping disabled' => 'Απενεργοποίηση απαντήσεων ping', \r
+'pkcs12 file password' => 'Κωδικός πρόσβασης αρχείου PKCS12', \r
+'port' => 'Θύρα', \r
+'port forwarding configuration' => 'Ρύθμιση προώθησης θυρών', \r
+'ports' => 'Θύρες', \r
+'pots' => 'Κλασσική αναλογική γραμμή', \r
+'ppp setup' => 'Ρυθμίσεις PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Επιπρόσθετες ρυθμίσεις PPPoE:', \r
+'pptp settings' => 'Επιπρόσθετες ρυθμίσεις PPTP:', \r
+'pre-shared key is too short' => 'Το προ-μοιρασμένο κλειδί είναι πολύ μικρό.', \r
+'present' => 'Παρών', \r
+'primary dns' => 'Πρωτεύων DNS:', \r
+'primary ntp server' => 'Πρωτεύων διακομιστής NTP', \r
+'primary wins server address' => 'Διεύθυνση πρωτεύωντος εξυπηρετητή WINS', \r
+'priority' => 'Προτεραιότητα', \r
+'profile' => 'Προφίλ', \r
+'profile deleted' => 'Διεγραμμένο προφίλ:', \r
+'profile has errors' => 'Το προφίλ φέρει λάθη', \r
+'profile made current' => 'Το προφίλ έγινε τρέχον:', \r
+'profile name' => 'Όνομα προφίλ:', \r
+'profile name not given' => 'Το όνομα του προφίλ δεν δωθήκε.', \r
+'profile saved' => 'Το προφίλ αποθηκεύτηκε:', \r
+'profiles' => 'Προφίλς:', \r
+'proto' => 'πρωτόκολλο', \r
+'protocol' => 'Πρωτόκολλο', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Γραφήματα πρόσβασης για Proxy', \r
+'proxy log viewer' => 'Κατάλογος συμβάντων για Proxy', \r
+'proxy logs' => 'Συμβάντα Proxy', \r
+'proxy port' => 'Θύρα proxy', \r
+'psk' => 'PSK', \r
+'pulse' => 'Παλμικά', \r
+'pulse dial' => 'Παλμική κλήση:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Σέκτορες ανάγνωσης', \r
+'reboot' => 'Επανεκκίνηση', \r
+'reboot schedule' => 'Προγραμματισμένες επανεκκινήσεις του IpCop', \r
+'rebooting' => 'Εκτελείται επανεκκίνηση', \r
+'rebooting ipcop' => 'Εκτελείται επανεκκίνηση του IPCop', \r
+'reconnection' => 'Επανασύνδεση', \r
+'references' => 'Αναφορές', \r
+'refresh' => 'Ανανέωση', \r
+'refresh index page while connected' => 'Ανανέωση σελίδας index.cgi όταν συνδεμένο', \r
+'refresh update list' => 'Ανανέωση λίστας ενημερώσεων', \r
+'registered user rules' => 'Κανόνες Sourcefire VRT για εγγεγραμμένους χρήστες', \r
+'released' => 'Ελευθερωμένο', \r
+'remark' => 'Παρατήρηση', \r
+'remark title' => 'Παρατηρήσεις:', \r
+'remote access' => 'Απομακρυσμένη πρόσβαση:', \r
+'remote host/ip' => 'Απομακρυσμένος φορέας / IP', \r
+'remote logging' => 'Απομακρυσμένη καταγραφή', \r
+'remote subnet' => 'Απομακρυσμένο υποδίκτυο :', \r
+'remote subnet is invalid' => 'Το απομακρυσμένο υποδίκτυο είναι άκυρο.', \r
+'remove' => 'Διαγραφή', \r
+'remove ca certificate' => 'Αφαίρεση πιστοποιητικών CA', \r
+'reserved dst port' => 'Η θύρα προορισμού είναι κατειλλημένη για χρήση του Ipcop μόνο:', \r
+'reserved src port' => 'Η πηγαία θύρα είναι κατειλλημένη για χρήση του Ipcop μόνο:', \r
+'reset' => 'Επανεκκίνηση', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Επανεκκινώντας τις ρυθμίσεις του ΙΙΔ θα αφαιρέσουν την ρίζα CA, το πιστοποιητικό φορέα και όλες τις συνδέσεις των', \r
+'restart' => 'Επανεκκίνηση', \r
+'restore' => 'Επαναφορά', \r
+'restore defaults' => 'Επαναφορά προεπιλογών', \r
+'restore hardware settings' => 'Επαναφορά ρυθμίσεων υλικού', \r
+'reverse sort' => 'Ταξινόμηση σε αντίστροφη χρονολογική σειρά', \r
+'root certificate' => 'Πιστοποιητικό ρίζας (Root)', \r
+'root path' => 'μονοπάτι "ρίζας"', \r
+'router ip' => 'Διεύθυνση IP διαδρομητή:', \r
+'routing table entries' => 'Καταχωρίσεις πίνακα διαδρομήσεων:', \r
+'rsvd dst port overlap' => 'Το παράθυρο θυρών προορισμού συγκρούεται με θύρα κατειλημμένη για το Ipcop:', \r
+'rsvd src port overlap' => 'Το παράθυρο πηγαίων θυρών συγκρούεται με θύρα κατειλλημένη για το Ipcop:', \r
+'rules already up to date' => 'Οι κανόνες έχουν ήδη ενημερωθεί', \r
+'running' => 'ΣΕ ΛΕΙΤΟΥΡΓΙΑ', \r
+'saturday' => 'Σάββατο', \r
+'save' => 'Αποθήκευση', \r
+'save error' => 'Ήταν αδύνατο να αποθηκευθεί το αρχείο ρυθμίσεων', \r
+'script name' => 'Όνομα script:', \r
+'secondary dns' => 'Δευτερεύων διακομιστής DNS:', \r
+'secondary ntp server' => 'Δευτερεύων διακομιστής NTP', \r
+'secondary wins server address' => 'Διεύθυνση δευτερεύωντος εξυπηρετητή WINS', \r
+'seconds' => 'Δευτερόλεπτα', \r
+'section' => 'Τομέας', \r
+'sectors read from disk per second' => 'Αναγνωσμένοι σέκτορες από δίσκο ανά δευτερόλεπτο', \r
+'sectors written to disk per second' => 'Εγγράψιμοι σέκτορες στον δίσκο ανά δευτερόλεπτο', \r
+'secure shell server' => 'Διακομιστής ασφαλούς κέλυφους', \r
+'select' => 'Επιλογή', \r
+'select dest net' => 'Επιλέξτε ένα δίκτυο προορισμού.', \r
+'select source net' => 'Επιλέξτε ένα πηγαίο δίκτυο. Εαν δεν έχετε ορίσει Πορτοκαλί (Orange) ή μπλε (Blue) δίκτυο, δεν χρειάζεστε καρφιτσότρυπες ΑΣΖ.', \r
+'send cr' => 'Ο ISP χρειάζεται Carriage Return:', \r
+'september' => 'Σεπτέμβριος', \r
+'serial' => 'Σειριακό', \r
+'service' => 'Υπηρεσία', \r
+'service added' => 'Ιδιαίτερη Υπηρεσία Δικτύου προστέθηκε', \r
+'service name' => 'Όνομα υπηρεσίας:', \r
+'service removed' => 'Υπηρεσίες Ιδιαίτερου Δικτύου αφερέθηκαν', \r
+'service updated' => 'Ενημέρωση Υπηρεσιών Ιδιαιτέρου Δικτύου επιτυχής', \r
+'servicename' => 'Όνομα Υπηρεσίας', \r
+'services' => 'Υπηρεσίες:', \r
+'services settings' => 'Τείχος προστασίας - Ρυθμίσεις Υπηρεσιών', \r
+'set time now' => 'Ορίστε ώρα τώρα', \r
+'set time now help' => 'Για να τεθεί σε προτεραιότητα ένα γεγονός οποιαδήποτε στιγμή (ακόμη και όταν χρησιμοποιείται επαναληπτικό χρονοδιάγραμμα), πιέστε το κομβίο <i>Ορίστε ώρα τώρα</i>. Παρακαλώ προσέξτε ότι ίσως θα χρειαστεί να περιμένετε για πέντε λεπτά ή περισσότερο, πριν προκύψει ένα λάθος συγχρονισμού.', \r
+'settings' => 'Ρυθμίσεις', \r
+'shaping add options' => 'Προσθήκη υπηρεσίας', \r
+'shaping list options' => 'Υπηρεσίες διάπλασης κυκλοφορίας', \r
+'shared' => 'κοινόχρηστο', \r
+'shared memory' => 'Κοινόχρηστη μνήμη', \r
+'show ca certificate' => 'Εμφάνιση πιστοποιητικού CA', \r
+'show certificate' => 'Εμφάνιση πιστοποιητικού', \r
+'show host certificate' => 'Εμφάνιση πιστοποιητικού φορέα', \r
+'show root certificate' => 'Εμφάνιση πιστοποιητικού ρίζας', \r
+'shutdown' => 'ΤΕΡΜΑΤΙΣΜΟΣ', \r
+'shutdown control' => 'Ελέγχος τερματισμού', \r
+'shutdown2' => 'Τερματισμός:', \r
+'shutting down' => 'Εκτελείται τερματισμός', \r
+'shutting down ipcop' => 'Το IPCop εκτελεί τερματισμό', \r
+'size' => 'Μέγεθος', \r
+'snort hits' => 'Ολικός αριθμός από κανόνες εισβολής που ενεργοποιήθηκε', \r
+'sort ascending' => 'Αύξουσα κατάταξη', \r
+'sort descending' => 'Φθήνουσα κατάταξη', \r
+'sound' => 'Ηχος', \r
+'source' => 'Πηγαίο', \r
+'source ip' => 'Πηγαία IP', \r
+'source ip and port' => 'Πηγαία IP:Θύρα', \r
+'source ip bad' => 'Άκυρη διεύθυνση IP ή διεύθυνση δικτύου.', \r
+'source ip in use' => 'Πηγαία IP σε λειτουργία:', \r
+'source ip or net' => 'Πηγαία IP ή Δίκτυο', \r
+'source net' => 'Πηγαίο δίκτυο', \r
+'source network' => 'Πηγαία IP ή δίκτυο (κενό για "ΟΛΑ"):', \r
+'source port' => 'Πηγαία θύρα', \r
+'source port in use' => 'Η πηγαία θύρα χρησιμοποιείται:', \r
+'source port numbers' => 'Η πηγαία θύρα πρέπει να είναι ένας υπάρχων αριθμός θύρας η παράθυρο θυρών.', \r
+'source port overlaps' => 'Το παράθυρο πηγαίων θυρών συγκρούεται με ένα υπάρχον παράθυρο θυρών.', \r
+'speaker off' => 'Ηχείο εκτός:', \r
+'speaker on' => 'Ηχείο εντός:', \r
+'src port' => 'Πηγαία θύρα', \r
+'srcprt range overlaps' => 'Το παράθυρο πηγαίων θυρών συγκρούεται με μια ήδη προσδιορισμένη θύρα.', \r
+'srcprt within existing' => 'Η πηγαία θύρα είναι μέσα σε ένα ήδη προσδιορισμένο παράθυρο θυρών.', \r
+'ssdmz pinholes' => 'καρφιτσότρυπες ΑΣΖ', \r
+'ssh access' => 'ΠΡΟΣΒΑΣΗ SSH', \r
+'ssh fingerprint' => 'Αποτύπωμα', \r
+'ssh host keys' => 'Κλειδιά εξυπηρετητή SSH', \r
+'ssh is disabled' => 'Το SSH είναι απενεργοποιημένο. Εκτελείται τερματισμός.', \r
+'ssh is enabled' => 'Το SSH είναι ενεργοποιημένο. Εκτελείται επανεκκίνηση.', \r
+'ssh key' => 'Κλειδί', \r
+'ssh key size' => 'Μέγεθος (bits)', \r
+'ssh keys' => 'Χορήγηση επικύρωσης δημόσιου κλειδιού', \r
+'ssh no auth' => 'Δεν έχετε επιτρέψει μεθόδους επικύρωσης. Αυτό θα σας εμποδίσει να έχετε πρόσβαση', \r
+'ssh passwords' => 'Χορήγηση επικύρωσης βασισμένης στον κωδικό πρόσβασης', \r
+'ssh portfw' => 'Χορήγηση προώθησης TCP', \r
+'ssh1 disabled' => 'Το SSHv1 είναι απενεργοποιημένο, ένας πελάτης (client) με την έκδοση 2 θα χρειαστεί.', \r
+'ssh1 enabled' => 'Το SSHv1 είναι ενεργοποιημένο, παλαιοί clients θα υποστηρίζονται.', \r
+'ssh1 support' => 'Υποστήριξη προτόκωλλου SSH έκδοσης 1 (χρειάζεται μόνο για παλαιούς clients)', \r
+'ssnetwork status' => 'ΚΑΤΑΣΤΑΣΗ ΔΙΚΤΥΟΥ', \r
+'sspasswords' => 'ΚΩΔΙΚΟΙ ΠΡΟΣΒΑΣΗΣ', \r
+'ssport forwarding' => 'ΠΡΟΩΘΗΣΗ ΘΥΡΩΝ', \r
+'ssproxy graphs' => 'ΓΡΑΦΗΜΑΤΑ PROXY', \r
+'sssystem status' => 'ΚΑΤΑΣΤΑΣΗ ΣΥΣΤΗΜΑΤΟΣ', \r
+'sstraffic graphs' => 'ΓΡΑΦΗΜΑΤΑ ΚΙΝΗΣΗΣ', \r
+'standard login script' => 'Στάνταρντ login script', \r
+'start address' => 'Αρχική διεύθυνση:', \r
+'state or province' => 'Χώρα ή επαρχία', \r
+'static ip' => 'Στατική IP', \r
+'status' => 'ΚΑΤΑΣΤΑΣΗ', \r
+'status information' => 'Πληροφορίες κατάστασης', \r
+'stopped' => 'ΤΕΡΜΑΤΙΣΜΕΝΟ', \r
+'subject' => 'Θέμα', \r
+'subnet is invalid' => 'Η μάσκα δικτύου είναι άκυρη', \r
+'subscripted user rules' => 'Κανόνες Sourcefire VRT με συνδρομή', \r
+'successfully refreshed updates list' => 'Η λίστα ενημερώσεων ανανεώθηκε επιτυχώς.', \r
+'summaries kept' => 'Διαφύλαξη περιλήψεων για', \r
+'sunday' => 'Κυριακή', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Χρήση Swap για κάθε', \r
+'system cpu' => 'CPU συστήματος', \r
+'system cpu usage' => 'Χρήση CPU για σύστημα', \r
+'system graphs' => 'ΓΡΑΦΗΜΑΤΑ ΣΥΣΤΗΜΑΤΟΣ', \r
+'system log viewer' => 'Αναγνώστης Συστήματος Συμβάντων', \r
+'system logs' => 'ΣΥΜΒΑΝΤΑ ΣΥΣΤΗΜΑΤΟΣ', \r
+'system status information' => 'Πληροφορίες κατάστασης συστήματος', \r
+'telephone not set' => 'Το τηλέφωνο δεν έχει οριστεί.', \r
+'the following update was successfully installed' => 'Η ακόλουθη ενημέρωση εγκαταστάθηκε επιτυχώς', \r
+'the statistics were last updated at' => 'Τα στατιστικά ενημερώθηκαν τελευταία φορά την', \r
+'there are updates' => 'Υπάρχουν διαθέσιμες ενημερώσεις για το σύστημά σας. Παρακαλώ πηγαίνετε στον τομέα "Ενημερώσεις" για περισσότερες πληροφορίες.', \r
+'there are updates available' => 'υπάρχουν διαθέσιμες ενημερώσεις για το σύστημά σας. Σας προτείνουμε να τα εγκαταστήσετε όσο το δυνατόν συντομότερα.', \r
+'there was no file upload' => 'Δεν υπήρξε εκπομπή αρχείου.', \r
+'this feature has been sponsored by' => 'Αυτή η δυνατότητα είναι προσφορά του ', \r
+'this field may be blank' => 'Αυτό το πεδίο μπορεί να αφεθεί κενό.', \r
+'this is not a valid archive' => 'Αυτό δεν είναι έγκυρο αρχείο.', \r
+'this is not an authorised update' => 'Αυτή δεν είναι μια εξουσιοδοτημένη ενημέρωση ή η λίστα ενημερώσεων δεν είναι έγκυρη.', \r
+'this update is already installed' => 'Αυτή η ενημέρωση έχει ήδη εγκατασταθεί.', \r
+'thursday' => 'Πέμπτη', \r
+'time' => 'Ώρα', \r
+'time date manually reset' => 'Χειροκίνητος ορισμός Ώρας/Ημερομηνίας.', \r
+'time server' => 'ΔΙΚΟΜΙΣΤΗΣ ΩΡΑΣ', \r
+'timeout must be a number' => 'Ο χρόνος λήξης πρέπει να είναι αριθμός.', \r
+'title' => 'Τίτλος', \r
+'to' => 'Προς', \r
+'to install an update' => 'Για την εγκατάσταση μιας ενημέρωσης εκπέμψτε το αρχείο .tgz.gpg παρακάτω:', \r
+'toggle enable disable' => 'Ενεργοποίηση ή απενεργοποίηση', \r
+'tone' => 'Τονικό', \r
+'tone dial' => 'Τονική κλήση:', \r
+'total hits for log section' => 'Ολικός αριθμός χτυπημάτων για τον τομέα καταγραφής συμβάντων', \r
+'traffic on' => 'Κυκλοφορία δεδομένων σε λειτουργία', \r
+'traffic shaping' => 'ΔΙΑΠΛΑΣΗ ΕΠΙΚΟΙΝΩΝΙΑΣ', \r
+'traffic shaping settings' => 'Ρυθμίσεις διάπλασης κυκλοφορίας', \r
+'transfer limits' => 'όρια μετάδοσης', \r
+'transparent on' => 'Διαφανής εντός', \r
+'tuesday' => 'Τρίτη', \r
+'type' => 'Τύπος:', \r
+'unable to alter profiles while red is active' => 'Δεν είναι δυνατό να αλλαχθούν τα προφίλς ενώ το RED είναι ενεργό.', \r
+'unable to contact' => 'Αδύνατη η επικοινωνία με τον', \r
+'unencrypted' => 'Αποκωδικοποιημένο', \r
+'unknown' => 'ΑΓΝΩΣΤΟΣ', \r
+'unnamed' => 'Χωρίς όνομα', \r
+'update' => 'Ενημέρωση', \r
+'update time' => 'Ενημέρωση ώρας:', \r
+'update transcript' => 'Ανανέωση transcript', \r
+'updates' => 'ΕΝΗΜΕΡΩΣΕΙΣ', \r
+'updates installed' => 'Οι ενημερώσεις εγκαταστάθηκαν', \r
+'updates is old1' => 'Το αρχείο ενημερώσεων είναι', \r
+'updates is old2' => 'ημέρες παλιό. Σας προτείνουμε να ανανεώσετε στην σελίδα "Ανανεώσεις".', \r
+'uplink speed' => 'Ταχύτητα "ανόδου" σύνδεσης (kbit/sec)', \r
+'upload' => 'ΕΚΠΟΜΠΗ', \r
+'upload a certificate' => 'Εκπομπή πιστοποιητικού :', \r
+'upload a certificate request' => 'Εκπομπή αίτησης πιστοποιητικού :', \r
+'upload ca certificate' => 'Εκπομπή πιστοποιητικού CA', \r
+'upload fcdsl.o' => 'Εκπομπή fcdsl.o', \r
+'upload file' => 'Εκπομπή αρχείου', \r
+'upload p12 file' => 'Εκπομπή αρχείου PKCS12', \r
+'upload successful' => 'Εκπομπή επιτυχής.', \r
+'upload synch.bin' => 'Εκπομπή synch.bin', \r
+'upload update file' => 'Εκπομπή αρχείου ενημέρωσης:', \r
+'upstream password' => 'Upstream κωδικός πρόσβασης:', \r
+'upstream proxy host:port' => 'Upstream proxy (μηχανή:θύρα)', \r
+'upstream username' => 'Upstream όνομα χρήστη:', \r
+'uptime and users' => 'Χρόνος λειτουργίας και χρήστες:', \r
+'usb modem on acm0' => 'Μόντεμ USB στο ACM0', \r
+'usb modem on acm1' => 'Μόντεμ USB στο ACM1', \r
+'usb modem on acm2' => 'Μόντεμ USB στο ACM2', \r
+'usb modem on acm3' => 'Μόντεμ USB στο ACM3', \r
+'use' => 'Χρήση', \r
+'use a pre-shared key' => 'Χρήση προ-μοιρασμένου κλειδιού :', \r
+'use dov' => 'Χρήση DOV (Data Over Voice):', \r
+'use ibod' => 'Χρήση εύρους κατά απαίτηση (iBOD - Bandwidth on demand):', \r
+'use ipcop red ip' => 'Η κλασσική IP "RED" χρησιμοποιείται από το IpCop κατά της διάρκεια της σύνδεσης', \r
+'use only proposed settings' => 'Χρήση μόνο προτεινομένων ρυθμίσεων.', \r
+'used' => 'Σε χρήση', \r
+'used memory' => 'Χρησιμοποιημένη μνήμη', \r
+'used swap' => 'Χρησιμοποιημένη αντιμετάθεση (SWAP)', \r
+'user cpu' => 'CPU χρήστη', \r
+'user cpu usage' => 'Χρήση CPU χρήστη', \r
+'username' => 'Όνομα χρήστη:', \r
+'username not set' => 'Το όνομα χρήστη δεν έχει οριστεί.', \r
+'users department' => 'Διαμέρισμα χρήστη', \r
+'users email' => 'Διεύθυνση ηλεκτρονικού ταχυδρομείου χρήστη', \r
+'users fullname or system hostname' => 'Πλήρες όνομα χρήστη ή όνομα συστήματος', \r
+'valid root certificate already exists' => 'Υπάρχει ήδη έγκυρο πιστοποιητικό για την ρίζα (root).', \r
+'vci number' => 'Αριθμός VCI:', \r
+'virtual private networking' => 'Ιδεατά Ιδιωτικά Δίκτυα', \r
+'vpi number' => 'Αριθμός VPI:', \r
+'vpn' => 'ΙΙΔ', \r
+'vpn configuration main' => 'Ρυθμίσεις ΙΙΔ - Κεντρική', \r
+'vpn delayed start' => 'Καθυστέρηση προτού την έναρξη του ΙΙΔ (δευτερόλεπτα)', \r
+'vpn delayed start help' => 'Εάν χρειαστεί, τούτη η καθυστέρηση μπορεί να χρησιμοποιηθεί για να επιτραπούν ενημερώσεις του DNS για  να διαδοθεί σωστά. 60 είναι μια κοινή τιμή όταν το RED είναι δυναμική IP.', \r
+'vpn on blue' => 'ΙΙΔ στο ΜΠΛΕ', \r
+'waiting to synchronize clock' => 'Σε αναμονή συγχρονισμού της ώρας', \r
+'warning messages' => ' Προειδοποιητικά μηνύματα (warning)', \r
+'web hits' => 'Ολικός αριθμός από δικτυακούς τόπους που ταίριαξαν τα επιλεγμένα κριτήρια για', \r
+'web proxy' => 'Web proxy', \r
+'web proxy configuration' => 'Ρυθμίσεις Web proxy', \r
+'web server' => 'Διακομιστής ιστοσελίδων', \r
+'website' => 'Δικτυακός Τόπος', \r
+'wednesday' => 'Τετάρτη', \r
+'week' => 'Εβδομάδα', \r
+'weeks' => 'εβδομάδες', \r
+'wildcards' => 'Μπαλαντέρ', \r
+'wireless' => 'Ασύρματο', \r
+'wireless config added' => 'Οι ασύρματες ρυθμίσεις προστέθηκαν', \r
+'wireless config changed' => 'Οι ασύρματες ρυθμίσεις άλλαξαν', \r
+'wireless configuration' => 'Ρυθμίσεις ασύρματου', \r
+'written sectors' => 'Εγγεγραμμένοι Τομείς', \r
+'xtaccess all error' => 'Δεν μπορείτε να ορίσετε μια εξωτερική πρόσβαση στο ΟΛΑ. Αυτό επιτυγχάνεται στο αρχείο "Προώθηση Θυρών".', \r
+'year' => 'Έτος', \r
+'yes' => 'Ναι', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Μπορείτε να εισάγετε μόνο μια σύνδεση "μαχήτη του δρόμου" όταν χρησιμοποιείτε επικύρωση προ-μοιρασμένου κλειδιού πιστοποίησης.<br/>Ή έχετε ήδη μια σύνδεση "μαχητή του δρόμου" με προ-μοιρασμένη πιστοποίηση κλειδιού, ή προσπαθείτε να προσθέτε μια τώρα.', \r
+'your department' => 'Το διαμέρισμά σας', \r
+'your e-mail' => 'Η ηλεκτρονική σας διεύθυνση', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/el/install/CVS/Entries b/langs/el/install/CVS/Entries
new file mode 100644 (file)
index 0000000..7841527
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_el.c/1.11.2.6/Wed Dec 14 14:11:43 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/el/install/CVS/Repository b/langs/el/install/CVS/Repository
new file mode 100644 (file)
index 0000000..97e0ffd
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/el/install
diff --git a/langs/el/install/CVS/Root b/langs/el/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/el/install/CVS/Tag b/langs/el/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/el/install/lang_el.c b/langs/el/install/lang_el.c
new file mode 100644 (file)
index 0000000..7ad93a1
--- /dev/null
@@ -0,0 +1,507 @@
+/*\r
+ * Greek  (el) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Spyros Tsiolis, A. Papageorgiou, G. Xrysostomou \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *el_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Ρυθμίσεις διεύθυνσης",\r
+/* TR_ADMIN_PASSWORD */\r
+"Κωδικός πρόσβασης Admin",\r
+/* TR_AGAIN_PROMPT */\r
+"Ξανά:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Όλες οι κάρτες ανατέθηκαν επιτυχώς.",\r
+/* TR_AUTODETECT */\r
+"* ΑΥΤΟΜΑΤΟΣ ΕΝΤΟΠΙΣΜΟΣ *",\r
+/* TR_BUILDING_INITRD */\r
+"Δημιουργία INITRD...",\r
+/* TR_CANCEL */\r
+"Άκυρο",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Αναθέσεις καρτών",\r
+/* TR_CHECKING */\r
+"Έλεγχος δικτυακού τόπου...",\r
+/* TR_CHECKING_FOR */\r
+"Εκτελείται έλεγχος για: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Επιλέξτε την κάρτα ISDN που είναι εγκατεστημένη σε τούτο τον υπολογιστή.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Επιλέξτε το πρωτόκολλο ISDN που επιθυμείτε.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Ρυθμίστε τον διακομιστή DHCP τυπώνοντας τις πληροφορίες ρυθμίσεων.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Ρυθμίσεις δικτύου",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Θα πρέπει τώρα να ρυθμίσετε το δύκτιο με το να φορτώσετε πρώτα τον σωστό οδηγό για το GREEN υλικό επικοινωνίας. Μπορείτε να το επιτεύξετε με το να εκτελέσετε είτε την αυτόματη εύρεση για την κάρτα δικτύου, ή με το να διαλέξετε τον σωστό οδηγό από την λίστα. Προσέξτε ότι αν έχετε εγκατεστημένες περισσότερες από μια κάρτα δικτύου, θα μπορέσετε να ρυθμίσετε τις υπόλοιπες αργότερα κατά την διάρκεια της εγκατάστασης. Επίσης προσέξτε ότι αν έχετε περισσότερες από μια κάρτα η οποία είναι του ίδιου τύπου όπως η GREEN και κάθε κάρτα χρειάζεται ειδικές παραμέτρους για τα modules, θα πρέπει να καταχωρήσετε τις παράμετρους για όλες τις κάρτες του ιδίου τύπου, έτσι ώστε όλες οι κάρτες να μπορούν να ενεργοποιηθούν όταν ρυθμίσετε το GREEN υλικό επικοινωνίας.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Ρυθμίστε οδηγούς δικτύου και σε ποιό υλικό επικοινωνίας κάθε κάρτα είναι αναθετημένη. Οι τρέχουσες ρυθμίσεις έχουν ως εξής:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Ρυθμίστε το CDROM βρίσκοντας την κατάλληλη διεύθυνση IO και/ή το IRQ.",\r
+/* TR_CONGRATULATIONS */\r
+"Συγχαρητήρια!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s εγκαταστάθηκε με επιτυχία. Παρακαλώ αφαιρέστε δισκέττες η CDROM από τον υπολογιστή. Το πρόγραμμα εγκατάστασης θα ξεκινήσει έτσι ώστε να ρυθμιστούν τα ISDN, οι κάρτες δικτύου και οι κωδικοί πρόσβασης του συστήματος. Αφού τελειώσει το πρόγραμμα εγκατάστασης, θα πρέπει να δείξετε τον ιστοαναζητητή σας στο http://%s:81 ή στο https://%s:445 (ή όποιο είναι το όνομα που δώσατε στον %s) και να ρυθμίσετε το δίκτυο μέσω τηλεφώνου (αν χρειάζεται) και την απομακρυσμένη πρόσβαση. Θυμηθείτε το ορίσετε κωδικό πρόσβασης για το %s 'dial' χρήστη, αν επιθυμείτε μη %s 'admin' χρήστες το μπορούν να ελέγχουν την σύνδεση.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Ο σκληρός σας δίσκος είναι πολύ μικρός, αλλά μπορείτε να συνεχίσετε χωρίς να έχετε swap. (Χρησιμοποιήστε το με προσοχή).",\r
+/* TR_CURRENT_CONFIG */\r
+"Τρέχοντες ρυθμίσεις: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Προεπιλεγμένη πύλη:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Προεπιλεγμένη πύλη\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Προεπιλεγμένος χρόνος δανεισμού (λεπτά):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Προεπιλεγμένος χρόνος δανεισμού\n",\r
+/* TR_DETECTED */\r
+"Εντοπίσθηκε μια: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Όνομα σταθμού DHCP:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Όνομα σταθμού DHCP\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Ρυθμίσεις διακομιστή DHCP",\r
+/* TR_DISABLED */\r
+"Απενεργοποιημένο",\r
+/* TR_DISABLE_ISDN */\r
+"Απενεργοποίηση ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"Ο σκληρός σας δίσκος είναι πολύ μικρός.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Ρυθμίσεις πύλης και DNS",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Εισάγετε τις πληροφορίες για DNS και πύλη. Αυτές οι ρυθμίσεις χρησιμοποιούνται αν ο DHCP είναι απενεργοποιημένος στο RED υλικό επικοινωνίας.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Οι τρέχουσες ρυθμίσεις σας δεν χρησιμοποιούν έναν ελεγκτή έθερνετ για το υλικό επικοινωνίας RED. Πληροφορίες για πύλη και DNS για τους χρήστες dialup θα ρυθμιστεί αυτόματα κατά την διάρκεια της κλήσης.",\r
+/* TR_DOMAINNAME */\r
+"Όνομα Κυριότητας",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Το όνομα κυριότητας δεν μπορεί να είναι άδειο.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Το όνομα Κυριότητας δεν μπορεί να περιέχει διαστήματα.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"το όνομα κυριότητας μπορεί να περιέχει γράμματα, νούμερα, παύλες και τελείες.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Πρόσφυμα ονόματος κυριότητας:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Πρόσφυμα ονόματος κυριότητας\n",\r
+/* TR_DONE */\r
+"Πέρας",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nΕπιθυμείτε να αλλάξετε τούτες τις ρυθμίσεις;",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Οδηγοί και αναθέσεις καρτών",\r
+/* TR_ENABLED */\r
+"Ενεργοποιημένο",\r
+/* TR_ENABLE_ISDN */\r
+"Ενεργοποίηση ISDN",\r
+/* TR_END_ADDRESS */\r
+"Τελική διεύθυνση:",\r
+/* TR_END_ADDRESS_CR */\r
+"Τελική διεύθυνση\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Ορισμένες κάρτες ISDN (ειδικά οι ISA) μπορεί να χρειαστούν επιπρόσθετες παραμέτρους για τα modules για ορισμό του IRQ και του IO. Εάν έχετε μια τέτοια κάρτα, εισάγετε τις επιπρόσθετες παραμέτρους εδω. Για παράδειγμα: \"io=0x280 irq=9\". Θα χρησιμοποιηθούν κατά την διάρκεια εύρεσης της κάρτας.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Εισάγετε τον κωδικό πρόσβασης για τον admin %s. Τούτος είναι ο χρήστης που θα χρησιμοποιηθεί για τις σελίδες του %s web administrator.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Εισαγωγή Ονόματος Κυριότητας",\r
+/* TR_ENTER_HOSTNAME */\r
+"Εισάγετε το όνομα της μηχανής.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Εισάγετε τις πληροφορίες διεύθυνσης IP",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Η αυτόματη έυρεση κάρτας δικτύου απέτυχε. Εισάγετε τον οδηγό και οποιεςδήποτε παραμέτρους για την κάρτα δικτύου.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Εισάγετε τον κωδικό πρόσβασης του χρήστη 'root'. Κάντε login με αυτόν τον χρήστη για πρόσβαση μέσω γραμμής εντολών.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Εισάγετε τον κωδικό πρόσβασης του χρήστη 'setup'. Κάντε login με αυτόν τον χρήστη για να χρησιμοποιήσετε το πρόγραμμα setup.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Εισάγετε τις πληροφορίες διεύθυνσης IP για το %s υλικό επικοινωνίας.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Εισάγετε τον τοπικό αριθμό τηλεφώνου (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Εισάγετε το μονοπάτι URL για τα αρχεία ipcop-<έκδοση>.tgz και images/scsidrv-<έκδοση>.img. ΠΡΟΣΧΗ: To DNS δεν είναι διαθέσιμο! Αυτό θα πρέπει τώρα να είναι http://X.X.X.X/<κατάλογος>",\r
+/* TR_ERROR */\r
+"Λάθος",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Υπήρξε λάθος κατά την διάρκεια εγγραφής των πληροφοριών των ρυθμίσεων.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1) ",\r
+/* TR_EXTRACTING_MODULES */\r
+"Εκτελείται αναδίπλωση των modules...",\r
+/* TR_FAILED_TO_FIND */\r
+"Το αρχείο του δικτυακού τόπου δεν βρέθηκε.",\r
+/* TR_FOUND_NIC */\r
+"Το %s εντόπισε την ακόλουθη NIC στην μηχανή σας: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"Γερμανικό 1TR6",\r
+/* TR_HELPLINE */\r
+"              <TAB>/<ALT-TAB> για έλεγχο μεταξύ επιλογών | Το <ΚΕΝΟ> επιλέγει",\r
+/* TR_HOSTNAME */\r
+"Όνομα σταθμού",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Το όνομα σταθμού δεν μπορεί να είναι άδειο.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Το όνομα σταθμού δεν μπορεί να περιέχει κενά.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Το όνομα της μηχανής μπρεί να περιέχει μόνο γράμματα, νούμερα και παύλες.",\r
+/* TR_INITIALISING_ISDN */\r
+"Εκτελείται εκκίνηση του ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Παρακαλώ εισάγετε το %s CD στον οδηγό οπτικού δίσκου.",\r
+/* TR_INSERT_FLOPPY */\r
+"Παρακαλώ εισάγετε την δισκέττα για τον οδηγό %s στον οδηγό δισκέττας.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Η εγκατάσταση ακυρώθηκε.",\r
+/* TR_INSTALLING_FILES */\r
+"Εγκατάσταση αρχείων...",\r
+/* TR_INSTALLING_GRUB */\r
+"Εγκαθίσταται το GRUB...",\r
+/* TR_INTERFACE */\r
+"%s υλικό επικοινωνίας",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Το υλικό επικοινωνίας απέτυχε να λειτουργήσει.",\r
+/* TR_INVALID_FIELDS */\r
+"Τα ακόλουθα πεδία είναι άκυρα:\n\n",\r
+/* TR_INVALID_IO */\r
+"Οι λεπτομέρειες για τις θύρες IO είναι άκυρες.",\r
+/* TR_INVALID_IRQ */\r
+"Οι λεπτομέρεις IRQ είναι άκυρες.",\r
+/* TR_IP_ADDRESS_CR */\r
+"Διεύθυνση IP\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"Διεύθυνση IP:",\r
+/* TR_ISDN_CARD */\r
+"Κάρτα ISDN",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"Υπάρχει αδυναμία εύρεσης της κάρτας ISDN. Ισώς χρειαστεί να δηλώσετε επιπρόσθετες παραμέτρους για τα modules εάν η κάρτα είναι τύπου ISA ή φέρει ειδικές απαιτήσεις.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Επιλογή κάρτας ISDN",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Ρυθμίσεις ISDN",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Μενού ρυθμίσεων ISDN",\r
+/* TR_ISDN_NOT_SETUP */\r
+"Το ISDN δεν έχει οριστεί. Κάποια σημεία δεν έχουν επιλεχτεί.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"Το ISDN δεν έχει ακόμη οριστεί. Επιλέξτε το σημείο που επιθυμείτε να ρυθμίσετε.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Τομέας πρωτοκόλλου ISDN",\r
+/* TR_ISDN_STATUS */\r
+"Το ISDN είναι %s.\n\n Πρωτόκολλο: %s\n Κάρτα: %s\n Τοπικός αριθμός τηλεφώνου: %s\n\nΕπιλέξτε το σημείο που θέλετε να επαναπροσδιορίσετε, ή επιλέξτε να χρησιμοποιήσετε τις τρέχοντες ρυθμίσεις.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Αντιστοίχιση πληκτρολογίου",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Επιλέξτε τον τύπο πληκτρολογίου που χρησιμοποιείτε από την παρακάτω λίστα.",\r
+/* TR_LEASED_LINE */\r
+"Μισθωμένη γραμμή",\r
+/* TR_LOADING_MODULE */\r
+"Το module φορτώνεται...",\r
+/* TR_LOADING_PCMCIA */\r
+"Εκτελείται φόρτωση στοιχείων PCMCIA...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Εκτελείται αναζήτηση του: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Εκτελείται δημιουργία του αρχείου συστήματος boot...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Δημιουργείται το αρχείο συστήματος συμβάντων (log)...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Δημιουργείται το αρχείο συστήματος root...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Δημιουργείται το swap space...",\r
+/* TR_MANUAL */\r
+"* ΧΕΙΡΟΚΕΙΝΗΤΟ *",\r
+/* TR_MAX_LEASE */\r
+"Μέγιστος χρόνος δανεισμού (λεπτά):",\r
+/* TR_MAX_LEASE_CR */\r
+"Μέγιστος χρόνος δανεισμού\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Απώλεια πληροφοριών IP για το \"μπλε\" υλικό επικοινωνίας.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Οι IP πληροφορίες λείπουν για το ORANGE υλικό επικοινωνίας.",\r
+/* TR_MISSING_RED_IP */\r
+"Οι IP πληροφορίες λείπουν από το RED υλικό επικοινωνίας.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Το όνομα του module δεν μπορεί να είναι κενό.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Εισάγετε το όνομα και τις παραμέτρους του module για τον οδηγό που επιθυμείτε.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Εφαρμόζεται το αρχείο συστήματος boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Εφαρμόζεται το αρχείο συστήματος συμβάντων (log)...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Εφαρμόζεται το αρχείο συστήματος root...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Εφαρμόζεται το τμήμα swap...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Τοπικός αριθμός τηλεφώνου (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Μάσκα δικτύου:",\r
+/* TR_NETWORKING */\r
+"Δικτυακά",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Διεύθυνση δικτύου\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Διεύθυνση δικτύου:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Μενού ρυθμίσεων δικτύου",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Τύπος ρυθμίσεως δικτύου",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Επιλέξτε τις ρυθμίσεις δικτύου για το %s. Οι ακόλουθοι τύποι ρυθμίσεων δείχνουν τα υλικά επικοινωνίας που φέρουν έθερνετ. Αν αλλάξετε τούτη τη ρύθμιση, μια επανεκκίνηση δικτύου θα χρειαστεί κια θα χρειαστεί να επαναρυθμίσετε τις αναθέσεις οδηγών δικτύου.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Μάσκα δικτύου\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Οι ρυθμίσεις δικτύου απέτυχαν.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Δεν ανατέθηκαν αρκετές κάρτες.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Δεν ανατέθηκε \"μπλε\" υλικό επικοινωνίας.",\r
+/* TR_NO_CDROM */\r
+"Δεν βρέθηκε οδηγός οπτικού δίσκου.",\r
+/* TR_NO_HARDDISK */\r
+"Δεν βρέθηκε σκληρός δίσκος.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Δεν βρέθηκε μπάλλα tar στον εξυπηρετητή ιστοσελίδων",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Δεν υπάρχει ORANGE υλικό επικοινωνίας αναθετημένο.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Δεν υπάρχει RED υλικό επικοινωνίας αναθετημένο.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Δεν βρέθηκε εικόνα SCSI στον εξυπηρετητή ιστοσελίδων",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Δεν υπάρχουν κάρτες μη αναθετημένες. Χρειάζονται κι άλλες. Μπορείτε να εκτελέσετε αυτόματο εντοπισμό και να ψάξετε γι' άλλες κάρτες ή να διαλέξετε έναν οδηγό από την λίστα.",\r
+/* TR_OK */\r
+"Εντάξει",\r
+/* TR_PARTITIONING_DISK */\r
+"Εκτελείται κατάτμηση του δίσκου...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Οι κωδικοί πρόσβασης δεν είναι ίδιοι.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Ο κωδικός πρόσβασης δεν μπορεί να είναι κενός.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Ο κωδικός πρόσβασης δεν μπορεί να περιέχει κενά.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Κωδικός πρόσβασης:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Ο αριθμός τηλεφώνου δεν μπορεί να είναι άδειος.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Το πρόγραμμα εγκατάστασης θα προετοιμάσει τώρα τον IDΕ σκληρό δίσκο στο %s. Πρώτα ο δίσκος θα τμηματισθεί και μετά τα τμήματα θα κατοικηθούν από συστήματα αρχείων.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Πατήστε 'Εντάξει' για επανεκκίνηση.",\r
+/* TR_PRIMARY_DNS */\r
+"Πρωτεύων DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Πρωτεύων DNS\n",\r
+/* TR_PROBE */\r
+"Probe",\r
+/* TR_PROBE_FAILED */\r
+"Ο αυτόματος εντοπισμός απέτυχε.",\r
+/* TR_PROBING_SCSI */\r
+"Εντοπίζονται οι συσκεύες SCSI...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Υπήρξε πρόβλημα στην ρύθμιση του κωδικού πρόσβασης για τον χρήστη %s admin.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Υπήρξε πρόβλημα στην ρύθμιση του κωδικού πρόσβασης για τον χρήστη 'root'.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Υπήρξε πρόβλημα στην ρύθμιση του κωδικού πρόσβασης για τον χρήστη 'setup'.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Πρωτόκολλο/Χώρα",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Το δίκτυο εκκινείται...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Το δίκτυο τερματίζεται...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Το μη τοπικό δίκτυο τερματίζεται...",\r
+/* TR_QUIT */\r
+"Έξοδος",\r
+/* TR_RED_IN_USE */\r
+"Το ISDN (ή κάποια άλλη εξωτερική σύνδεση) χρησιμοποιείται. Δεν μπορείτε να ρυθμίσετε το ISDN ενώ το RED υλικό επικοινωνίας είναι ενεργό.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nΜόλις οι ρυθμίσεις ολοκληρωθούν, θα χρειαστεί μια επανεκκίνηση δικτύου.",\r
+/* TR_RESTORE */\r
+"Επαναφορά",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Εάν έχετε μια δισκέττα με ένα %s ρυθμίσεις συστήματος σε αυτό, τοποθετήστε την δισκέττα στον οδηγό δισκέττας και πατήστε το πλήκτρο 'Επαναφορά'.",\r
+/* TR_ROOT_PASSWORD */\r
+"Κωδικός πρόσβασης 'root'",\r
+/* TR_SECONDARY_DNS */\r
+"Δευτερέυων DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Δευτερεύων DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Ο δευτερεύων DNS έχει δηλωθεί χωρίς να έχει δηλωθεί ο πρωτεύων",\r
+/* TR_SECTION_MENU */\r
+"Μενού επιλογών",\r
+/* TR_SELECT */\r
+"Επιλογή",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Επιλέξτε τύπο οδηγού οπτικού δίσκού",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Δεν βρέθηκε IDE οδηγός οπτικού δίσκου σε αυτή τη μηχανή. Παρακαλώ επιλέξτε ποιός από τους ακόλουθους οδηγούς θα επιυθμούσατε να χρησιμοποιήσετε έτσι ώστε το %s να μπορέσει να χρησιμοποιήσει τον οδηγό οπτικού δίσκου.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Επιλέξτε μέσο εγκατάστασης",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s μπορεί να εγκατασταθέι από πολλαπλές πηγές. Το απλούστερο είναι να χρησιμοποιήσετε τον οδηγό οπτικού δίσκου της μηχανής σας. Εάν ο υπολογιστής δεν έχει τέτοιο οδηγό, μπορείτε να εγκαταστήσετε από μια άλλη μηχανή στο δίκτυο που να έχει τα αρχεία εγκατάστασης δια μέσου HTTP. Σε αυτή τη περίπτωση ο οδηγός δισκέττας δικτύου θα χρειαστεί.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Επιλέξτε τον οδηγό δικτύου",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Επιλέξτε τον οδηγό δικτύου για την εγκατεστημένη κάρτα σε αυτή τη μηχανή. Εάν επιλέξετε 'ΧΕΙΡΟΚΙΝΗΤΟ', θα σας δωθεί η ευκαιρία να εισάγετε το όνομα οδηγού του module και τις παραμέτρους για οδηγούς που έχουν ειδικές επιλογές, όπως οι κάρτες τύπου ISA.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Επιλέξτε το υλικό επικοινωνίας που θα θέλατε να επαναρυθμίσετε.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Επιλέξτε το αντικοίμενο που θα θέλατε να ρυθμίσετε.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Ορίζεται %s ο κωδικός πρόσβασης  για τον χρήστη 'admin'...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Ορίζεται ο κωδικός πρόσβασης για τον χρήστη 'root'...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Ορίζεται ο κωδικός πρόσβασης του χρήστη 'setup'...",\r
+/* TR_SETUP_FINISHED */\r
+"Η εγκατάσταση ολοκληρώθηκε. Πιέστε 'Εντάξει' για επανεκκίνηση.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Η αρχική εγκατάσταση δεν ολοκληρώθηκε. Πρέπει να σιγουρευτείτε ότι η εγκατάσταση ολοκληρώθηκε με το να τρέξετε την εγκατάσταση ξανά από το κέλυφος.",\r
+/* TR_SETUP_PASSWORD */\r
+"Κωδικός πρόσβασης 'setup'",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Ορισμός επιπρόσθετων παραμέτρων για τα modules",\r
+/* TR_SINGLE_GREEN */\r
+"Οι ρυθμίσεις σας είναι ορισμένες για μονό GREEN υλικό επικοινωνίας.",\r
+/* TR_SKIP */\r
+"Παράκαμψη",\r
+/* TR_START_ADDRESS */\r
+"Αρχική διεύθυνση:",\r
+/* TR_START_ADDRESS_CR */\r
+"Αρχική διεύθυνση\n",\r
+/* TR_STATIC */\r
+"Στατική",\r
+/* TR_SUGGEST_IO */\r
+"(προτείνεται %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(προτείνεται %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Τούτος ο οδηγός για το module είναι ήδη φορτωμένος.",\r
+/* TR_TIMEZONE */\r
+"Ζώνη ώρας",\r
+/* TR_TIMEZONE_LONG */\r
+"Επιλέξτε την ζώνη ώρας που βρίσκεστε από την παρακάτω λίστα.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Δεν ήταν δυνατό να εξαχθεί ο οπτικός δίσκος.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Δεν ήταν δυνατό να εξαχθούν τα modules.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Δεν ήταν δυνατό να βρεθούν επιπρόσθετοι οδηγοί.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Δεν ήταν δυνατό να βρεθεί μια κάρτα ISDN σε αυτόν τον υπολογιστή. Ίσως χρειαστεί να δηλώσετε επιπρόσθετες παραμέτρους για τα modules εάν η κάρτα είναι τύπου ISA ή εάν έχει ειδικές απαιτήσεις.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Δεν ήταν δυνατό να ξεκινήσει το ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Δεν ήταν δυνατό να εγκατασταθούν τα αρχεία.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Υπήρξε αδυναμία εγκατάστασης του GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Δεν ήταν δυνατό να φορτωθεί ο οδηγός του  module.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Δεν ήταν δυνατό να δημιουργηθεί το σύστημα αρχείων για 'boot'.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Δεν ήταν δυνατό να δημιουργηθεί το σύστημα αρχείων συμβάντων (log).",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Δεν ήταν δυνατό να δημιουργηθεί το σύστημα αρχείων για το 'root'.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Δεν ήταν δυνατό να δημιουργηθεί ο χώρος swap.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Δεν ήταν δυνατό να δημιουργηθεί συμβολική σύνδεση για το /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Δεν ήταν δυνατό να δημιουργηθεί συμβολική σύνδεση για το /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Δεν ήταν δυνατό να δημιουργηθεί συμβολική σύνδεση για το /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Δεν ήταν δυνατό να δημιουργηθεί η συμβολική σύνδεση στο /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Δεν ήταν δυνατό να δημιουργηθεί συμβολική σύνδεση στο /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Δεν ήταν δυνατό να δημιουργηθεί συμβολική σύνδεση στο /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Δεν ήταν δυνατό να φορτωθεί το σύστημα αρχείων για το 'boot'.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Δεν ήταν δυνατό να φορτωθεί το σύστημα αρχείων συμβάντων (log).",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Δεν ήταν δυνατό να φορτωθεί το σύστημα αρχείων για το 'proc'.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Δεν ήταν δυνατό να φορτωθεί το σύστημα αρχείων για το 'root'.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Δεν ήταν δυνατό να φορτωθεί το τμήμα για το 'swap'.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Δεν ήταν δυνατό να ανοιχτεί το κεντρικό αρχείο των μηχανών.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Δεν ήταν δυνατό να ανοιχτεί το αρχείο ρυθμίσεων",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Δεν ήταν δυνατό να τμηματισθεί ο δίσκος.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Δεν ήταν δυνατό να αφαιρεθούν τα προσωρινά αρχεία.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Δεν ήταν δυνατό να οριστεί το όνομα σταθμού.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Δεν ήταν δυνατό να εκφορτωθεί το CDROM/floppy.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Δεν ήταν δυνατό να εκφορτωθεί ο σκληρός δίσκος.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Δεν ήταν δυνατό να εγγραφεί το /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Δεν ήταν δυνατό να εγγραφεί το /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Δεν ήταν δυνατό το εγγραφεί το /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Δεν ήταν δυνατό να εγγραφεί το /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Δεν ήταν δυνατό να εγγραφεί το /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Δεν ήταν δυνατό να εγγραφούν τα %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Δεν ήταν δυνατό να εγγραφεί το %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Δεν ήταν δυνατό να εγγραφεί το %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Υπάρχει μια αζήτητη κάρτα έθερνετ τύπου: \n%s\n\nΜπορείτε να την αναθέσετε στο:",\r
+/* TR_UNKNOWN */\r
+"ΑΓΝΩΣΤΟΣ",\r
+/* TR_UNSET */\r
+"ΑΠΟΡΥΘΜΙΣΗ",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"Τούτο το κλειδί USB είναι άκυρο (δεν βρέθηκε έγκυρο τμήμα vfat).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"ΠΡΟΣΟΧΗ",\r
+/* TR_WARNING_LONG */\r
+"Αν αλλάξετε τούτη τη διεύθυνση IP και είστε συνδεμένος απομακρυσμένα, η σύνδεσή σας στην μηχανή %s θα σπάσει και θα πρέπει να επανασυνδεθείτε με την καινούργια IP. Αυτό είναι επικίνδυνο και θα πρέπει να επιτρέπεται εάν έχετε φυσική πρόσβαση στην μηχανή, εάν κάτι πάει στραβά.",\r
+/* TR_WELCOME */\r
+"Καλώς ήλθατε στο πρόγραμμα εγκατάστασης %s. Επιλέγοντας 'Άκυρο' σε οποιαδήποτε από τις ακόλουθες οθόνες θα εκτελέσει επανεκκίνηση του υπολογιστή.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Οι ρυθμίσεις σας είναι ορισμένες για ένα μόνο GREEN υλικό επικοινωνίας, το οποίο ήδη έχει έναν οδηγό αναθετημένο.",\r
+}; \r
+  \r
diff --git a/langs/en/CVS/Entries b/langs/en/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/en/CVS/Repository b/langs/en/CVS/Repository
new file mode 100644 (file)
index 0000000..c546f5f
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/en
diff --git a/langs/en/CVS/Root b/langs/en/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/en/CVS/Tag b/langs/en/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/en/cgi-bin/CVS/Entries b/langs/en/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..2d287a2
--- /dev/null
@@ -0,0 +1,2 @@
+/en.pl/1.22.2.95/Sun Jan 29 09:43:54 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/en/cgi-bin/CVS/Repository b/langs/en/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..88e9ebd
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/en/cgi-bin
diff --git a/langs/en/cgi-bin/CVS/Root b/langs/en/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/en/cgi-bin/CVS/Tag b/langs/en/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
new file mode 100644 (file)
index 0000000..0976b3f
--- /dev/null
@@ -0,0 +1,976 @@
+# English (en) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+#  \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'A CA Certificate with this name already exists.', \r
+'a connection with this common name already exists' => 'A connection with this common name already exists.', \r
+'a connection with this name already exists' => 'A connection with this name already exists.', \r
+'access allowed' => 'Access allowed from:', \r
+'access refused with this oinkcode' => 'Access refused with this Oink Code', \r
+'action' => 'Action', \r
+'add' => 'Add', \r
+'add a host' => 'Add a host:', \r
+'add a new rule' => 'Add a new rule:', \r
+'add device' => 'Add device', \r
+'add network' => 'Add network', \r
+'add new alias' => 'Add a new alias:', \r
+'add new lease' => 'Add a new fixed lease', \r
+'add service' => 'Add service', \r
+'add xtaccess' => 'Add External Access', \r
+'added from dhcp lease list' => 'added from DHCP lease list', \r
+'admin user password has been changed' => 'Admin user password has been changed.', \r
+'administrator user password' => 'Admin user password:', \r
+'adsl settings' => 'ADSL settings', \r
+'advanced' => 'Advanced', \r
+'again' => 'Again:', \r
+'alcatelusb help' => 'To utilise the Speedtouch 330 or Speedtouch USB modem you must upload the firmware to your IPCop box. Please download the <b>Embedded Firmware</b> package for SpeedTouch 330 from speedtouch.com, unzip and then upload the appropriate file for your modem : KQD6_3.xxx when Rev<4 or ZZZL_3.xxx for Rev=4 using the form below.', \r
+'alcatelusb upload' => 'Upload Speedtouch USB Firmware', \r
+'alias ip' => 'Alias IP', \r
+'aliases' => 'Aliases', \r
+'aliases not active' => 'Aliases will not be active unless your RED interface is STATIC', \r
+'all' => 'All', \r
+'all interfaces' => 'All Interfaces', \r
+'all updates installed' => 'All updates installed', \r
+'alt dialup' => 'Dialup', \r
+'alt home' => 'Home', \r
+'alt information' => 'Information', \r
+'alt logs' => 'Logs', \r
+'alt services' => 'Services', \r
+'alt system' => 'System', \r
+'alt vpn' => 'VPNs', \r
+'and' => 'And', \r
+'ansi t1.483' => 'TO BE REMOVED', \r
+'apply' => 'Apply now', \r
+'april' => 'April', \r
+'archive not exist' => 'Configuration archive does not exist', \r
+'are you sure' => 'Are you sure?', \r
+'arp table entries' => 'ARP Table Entries:', \r
+'august' => 'August', \r
+'authentication' => 'Authentication:', \r
+'automatic' => 'Automatic', \r
+'available updates' => 'Available updates:', \r
+'average' => 'Average', \r
+'avoid dod' => 'Do not use this option with Dial on Demand! Mainly used if your IPCop is behind a router. Your RED IP must be inside one of the three reserved network numbers e.g. 10/8, 172.16/12, 192.168/16', \r
+'back' => 'BACK', \r
+'backup' => 'Backup', \r
+'backup config floppy' => 'Backup Configuration - Floppy Disk', \r
+'backup configuration' => 'Backup Configuration:', \r
+'backup sets' => 'Backup Sets', \r
+'backup to floppy' => 'Backup to floppy', \r
+'backupprofile' => 'In case reconnection fails, switch to profile', \r
+'bad characters in script field' => 'Bad characters in script field', \r
+'bad characters in the telephone number field' => 'Bad characters in the telephone number field.', \r
+'bad destination range' => 'The Destination port range has a first value that is greater than or equal to the second value.', \r
+'bad ignore filter' => 'Bad ignore filter:', \r
+'bad return code' => 'Helper program returned error code', \r
+'bad source range' => 'The Source port range has a first value that is greater than or equal to the second value.', \r
+'beep when ppp connects or disconnects' => 'Beep when IPCop connects or disconnects', \r
+'behind a proxy' => 'Behind a proxy:', \r
+'bewan adsl pci st' => 'TO BE REMOVED', \r
+'bewan adsl usb' => 'TO BE REMOVED', \r
+'blue' => 'BLUE', \r
+'blue access' => 'Blue Access', \r
+'blue interface' => 'Blue Interface', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Broken pipe', \r
+'buffered memory' => 'Buffered Memory', \r
+'buffers' => 'buffers', \r
+'bytes per second' => 'Bytes per Second', \r
+'ca certificate' => 'CA Certificate', \r
+'ca name' => 'CA Name', \r
+'cache management' => 'Cache management', \r
+'cache size' => 'Cache size (MB):', \r
+'cached' => 'cached', \r
+'cached memory' => 'Cached Memory', \r
+'cancel' => 'Cancel', \r
+'cannot enable both nat traversal and compression' => 'Cannot enable both NAT Traversal and Compression.', \r
+'cannot enable ntp without specifying primary' => 'Cannot enable NTP without specifying primary.', \r
+'cannot specify secondary dns without specifying primary' => 'Cannot specify secondary DNS without specifying primary.', \r
+'cannot specify secondary ntp without specifying primary' => 'Cannot specify Secondary NTP Server without specifying Primary', \r
+'cannot specify secondary wins without specifying primary' => 'Cannot specify secondary WINS without specifying primary.', \r
+'cant change certificates' => 'Can\'t change certificates.', \r
+'cant enable xtaccess' => 'The associated port forwarding rule is disabled, therefore you cannot enable external access for this rule.', \r
+'cant start openssl' => 'Can\'t start OpenSSL', \r
+'caps all' => 'ALL', \r
+'capsclosed' => 'CLOSED', \r
+'capsopen' => 'OPEN', \r
+'capswarning' => 'WARNING', \r
+'cert' => 'Certificate', \r
+'certificate' => 'Certificate', \r
+'certificate authorities' => 'Certificate Authorities', \r
+'certificate does not have a valid ca associated with it' => 'Certificate does not have a valid CA associated with it.', \r
+'certificate file move failed' => 'Certificate file move failed', \r
+'cfg restart' => 'A reboot is suggested after restoring a configuration archive.', \r
+'chain' => 'Chain', \r
+'change passwords' => 'Change passwords', \r
+'check vpn lr' => 'Check', \r
+'city' => 'City', \r
+'clear cache' => 'Clear Cache', \r
+'clenabled' => 'Provide time to local network', \r
+'click to disable' => 'Enabled (click to disable)', \r
+'click to enable' => 'Disabled (click to enable)', \r
+'clock has not been synchronized' => 'Clock has not been synchronized', \r
+'clock last synchronized at' => 'Clock was last synchronized at', \r
+'common name' => 'Common Name', \r
+'compression' => 'Compression:', \r
+'computer to modem rate' => 'Computer to modem rate:', \r
+'concentrator name' => 'Concentrator name:', \r
+'confirmation' => 'confirmation', \r
+'connect on ipcop restart' => 'Connect on IPCop restart:', \r
+'connect the modem' => 'Connect the modem', \r
+'connect timeout' => 'Connect timeout:', \r
+'connected' => 'Connected', \r
+'connecting' => 'Connecting...', \r
+'connection' => 'Connection', \r
+'connection debugging' => 'Connection debugging', \r
+'connection status and controlc' => 'Connection status and control:', \r
+'connection tracking' => 'IPTables Connection Tracking', \r
+'connection type' => 'Connection Type', \r
+'connection type is invalid' => 'Connection type is invalid.', \r
+'connections' => 'Connections', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'connections are associated with this CA.  Deleting the CA will delete these connections as well.', \r
+'could not be opened' => 'could not be opened', \r
+'could not connect to' => 'Could not connect to', \r
+'could not connect to www ipcop org' => 'Could not connect to www.ipcop.org', \r
+'could not create directory' => 'Could not create directory.', \r
+'could not download latest patch list' => 'Could not download latest patch list (not connected).', \r
+'could not download latest updates' => 'Could not download latest updates.', \r
+'could not download the available updates list' => 'Could not download the available updates list.', \r
+'could not open available updates file' => 'Could not open available updates file.', \r
+'could not open installed updates file' => 'Could not open installed updates file', \r
+'could not open update information file' => 'Could not open update information file.  The update file is corrupt.', \r
+'could not retrieve common name from certificate' => 'Could not retrieve common name from certificate.', \r
+'country' => 'Country', \r
+'cpu usage per' => 'CPU Usage per', \r
+'create' => 'Create', \r
+'credits' => 'Credits', \r
+'cron server' => 'CRON server', \r
+'current' => 'Current', \r
+'current aliases' => 'Current aliases:', \r
+'current dhcp leases on blue' => 'Current DHCP leases on Blue', \r
+'current dynamic leases' => 'Current dynamic leases', \r
+'current fixed leases' => 'Current fixed leases', \r
+'current hosts' => 'Current hosts:', \r
+'current profile' => 'Current profile:', \r
+'current rules' => 'Current rules:', \r
+'custom networks' => 'Custom networks', \r
+'custom services' => 'Custom services', \r
+'dat without key' => 'An encrypted archive cannot be restored without the key.', \r
+'date' => 'Date', \r
+'date not in logs' => 'No (or only partial) logs exist for the day queried', \r
+'day' => 'Day', \r
+'day after' => 'Day after', \r
+'day before' => 'Day before', \r
+'days' => 'days', \r
+'ddns hostname added' => 'Dynamic DNS hostname added', \r
+'ddns hostname modified' => 'Dynamic DNS hostname modified', \r
+'ddns hostname removed' => 'Dynamic DNS hostname removed', \r
+'ddns minimize updates' => 'Minimize updates: before an update, compares the dns IP for hostname "[host.]domain" against RED IP.', \r
+'ddns noip prefix' => 'To use no-ip in group mode, prefix hostname with <b>%</b>', \r
+'december' => 'December', \r
+'def lease time' => 'Default Lease Time', \r
+'default lease time' => 'Default lease time (mins):', \r
+'default networks' => 'Default networks', \r
+'default renewal time' => 'Default Renewal Time', \r
+'default services' => 'Default services', \r
+'delete' => 'Delete', \r
+'demon login script' => 'Demon login script', \r
+'description' => 'Description', \r
+'dest ip and port' => 'Dest. IP:Port', \r
+'destination' => 'Destination', \r
+'destination ip' => 'Destination IP', \r
+'destination ip bad' => 'Invalid destination IP', \r
+'destination ip or net' => 'Destination IP or Net', \r
+'destination net' => 'Destination Net', \r
+'destination port' => 'Destination port', \r
+'destination port numbers' => 'Destination port must be a valid port number or port range.', \r
+'destination port overlaps' => 'Destination port range overlaps an existing port range.', \r
+'detail level' => 'Detail level', \r
+'device' => 'Device', \r
+'devices on blue' => 'Devices on Blue', \r
+'dhcp advopt add' => 'Add a DHCP Option', \r
+'dhcp advopt added' => 'DHCP Option added', \r
+'dhcp advopt blank value' => 'DHCP Option value cannot be empty.', \r
+'dhcp advopt custom definition' => 'Your custom option definition', \r
+'dhcp advopt definition' => 'Definition', \r
+'dhcp advopt definition exists' => 'Definition option already exists. You can only edit or remove it.', \r
+'dhcp advopt edit' => 'Edit a DHCP Option', \r
+'dhcp advopt help' => 'List options', \r
+'dhcp advopt list' => 'Additional DHCP Options', \r
+'dhcp advopt modified' => 'DHCP Option modified', \r
+'dhcp advopt name' => 'Option name', \r
+'dhcp advopt removed' => 'DHCP Option removed', \r
+'dhcp advopt scope' => 'Option scope', \r
+'dhcp advopt scope global' => 'Global', \r
+'dhcp advopt scope help' => 'Global scope or limit scope to checked interfaces.', \r
+'dhcp advopt unknown' => 'DHCP Option name not recognized', \r
+'dhcp advopt value' => 'Option value', \r
+'dhcp allow bootp' => 'Allow bootp clients', \r
+'dhcp configuration' => 'DHCP configuration', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP Server', \r
+'dhcp server disabled' => 'DHCP server disabled.  Stopped.', \r
+'dhcp server disabled on blue interface' => 'DHCP server disabled on BLUE interface', \r
+'dhcp server enabled' => 'DHCP server enabled.  Restarting.', \r
+'dhcp server enabled on blue interface' => 'DHCP server enabled on BLUE interface', \r
+'dial' => 'Connect', \r
+'dial user password' => 'Dial user password:', \r
+'dial user password has been changed' => 'Dial user password has been changed.', \r
+'dialing mode' => 'Dialing mode:', \r
+'dialup settings' => 'Dialup Settings', \r
+'disk access per' => 'Disk Access per', \r
+'disk usage' => 'Disk usage:', \r
+'display' => 'Display', \r
+'display hostname in window title' => 'Display hostname in window title', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'DMZ pinhole configuration', \r
+'dmz pinhole rule added' => 'DMZ pinhole rule added; restarting DMZ pinhole', \r
+'dmz pinhole rule removed' => 'DMZ pinhole rule removed; restarting DMZ pinhole', \r
+'dmzpinholes for same net not necessary' => 'DMZ Pinholes are not necessary for same net. Select different source or destination net.', \r
+'dns check failed' => 'DNS check failed', \r
+'dns proxy server' => 'DNS proxy server', \r
+'do not log this port list' => 'Drop this port list just before they are logged (reduces log size)', \r
+'dod' => 'Dial on Demand', \r
+'dod for dns' => 'Dial on Demand for DNS:', \r
+'dod not compatible with ddns' => 'Dial on demand is not compatible with dynamic dns services', \r
+'dod waiting' => 'Dial on Demand waiting', \r
+'domain' => 'Domain', \r
+'domain name' => 'Domain name', \r
+'domain name suffix' => 'Domain name suffix:', \r
+'domain not set' => 'Domain not set.', \r
+'downlink speed' => 'Downlink speed (kbit/sec)', \r
+'download ca certificate' => 'Download CA Certificate', \r
+'download certificate' => 'Download Certificate', \r
+'download host certificate' => 'Download Host Certificate', \r
+'download new ruleset' => 'Download new ruleset', \r
+'download pkcs12 file' => 'Download PKCS12 File', \r
+'download root certificate' => 'Download Root Certificate', \r
+'dpd action' => 'Dead Peer Detection action', \r
+'driver' => 'Driver', \r
+'dst port' => 'Dst Port', \r
+'dstprt range overlaps' => 'Destination port range overlaps an already defined port.', \r
+'dstprt within existing' => 'Destination port is within an already defined port range.', \r
+'duplicate ip' => 'Duplicate IP address entered', \r
+'duplicate ip bold' => 'Duplicate addresses are in <b>bold</b>', \r
+'duplicate mac' => 'Duplicate MAC address entered', \r
+'duplicate name' => 'That name is already being used, please choose another.', \r
+'dyn dns source choice' => 'Dynamic DNS provider(s) will receive an IP address for this IPCop from:', \r
+'dynamic dns' => 'Dynamic DNS', \r
+'dynamic dns client' => 'Dynamic DNS Client', \r
+'e-mail address too long' => 'E-mail address is too long; it should not be longer than 40 characters.', \r
+'eciadsl help' => 'To utilise the ECI ADSL modem you must upload a synch.bin file to your IPCop box. Please download the file from the ECIADSL website and then upload the file <b>synch.bin</b> using the form below.', \r
+'eciadsl upload' => 'Upload ECI ADSL Synch.bin File', \r
+'edit' => 'Edit', \r
+'edit a rule' => 'Edit an existing rule:', \r
+'edit advanced settings when done' => 'Edit advanced settings when done.', \r
+'edit an existing alias' => 'Edit an existing alias', \r
+'edit an existing host' => 'Edit an existing host', \r
+'edit an existing lease' => 'Edit an existing lease', \r
+'edit device' => 'Edit device', \r
+'edit hosts' => 'Edit Hosts', \r
+'edit network' => 'Edit network', \r
+'edit service' => 'Edit service', \r
+'eg' => 'e.g:',\r
+'empty' => 'Empty', \r
+'enable ignore filter' => 'Enable ignore filter', \r
+'enable javascript' => 'Enable Javascript', \r
+'enable wildcards' => 'Enable wildcards:', \r
+'enabled' => 'Enabled:', \r
+'enabled on' => 'Enabled on', \r
+'enabledtitle' => 'Enabled', \r
+'encapsulation' => 'Encapsulation', \r
+'encrypted' => 'Encrypted', \r
+'end address' => 'End address:', \r
+'err bk 1' => 'Error creating archive', \r
+'err bk 2 key' => 'Error creating key file', \r
+'err bk 3 tar' => 'Error appending files to archive', \r
+'err bk 4 gz' => 'Error compressing archive', \r
+'err bk 5 encrypt' => 'Error encrypting archive', \r
+'err rs 1' => 'Error restoring archive', \r
+'err rs 6 decrypt' => 'Error decrypting archive', \r
+'err rs 7 untartst' => 'Invalid decrypted archive', \r
+'err rs 8 untar' => 'Error untarring archive', \r
+'error messages' => 'Error messages:', \r
+'esp encryption' => 'ESP Encryption:', \r
+'esp grouptype' => 'ESP Grouptype:', \r
+'esp integrity' => 'ESP Integrity:', \r
+'esp keylife' => 'ESP Keylife:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP Keylife should be between 1 and 24 hours.', \r
+'every' => 'Every', \r
+'excluding buffers and cache' => '-/+ buffers/cache', \r
+'expected' => 'Expected', \r
+'expires' => 'Expires', \r
+'export' => 'Export', \r
+'external access' => 'External Access', \r
+'external access configuration' => 'External access configuration', \r
+'external access rule added' => 'External access rule added; restarting access controller', \r
+'external access rule removed' => ' External access rule removed; restarting access controller', \r
+'external aliases configuration' => 'External aliases configuration', \r
+'february' => 'February', \r
+'fetch ip from' => 'Guess the real public IP with help of an external server', \r
+'filename' => 'Filename', \r
+'filesystem full' => 'Filesystem full', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Total number of firewall hits for', \r
+'firewall log' => 'Firewall log', \r
+'firewall log viewer' => 'Firewall Log Viewer', \r
+'firewall logs' => 'Firewall Logs', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Upload Firmware/Drivers', \r
+'fixed ip lease added' => 'Fixed IP lease added', \r
+'fixed ip lease modified' => 'Fixed IP lease modified', \r
+'fixed ip lease removed' => 'Fixed IP lease removed', \r
+'force update' => 'Force update', \r
+'forwarding rule added' => 'Forwarding rule added; restarting forwarder', \r
+'forwarding rule removed' => 'Forwarding rule removed; restarting forwarder', \r
+'forwarding rule updated' => 'Forwarding rule updated; restarting forwarder', \r
+'free' => 'Free', \r
+'free memory' => 'Free Memory', \r
+'free swap' => 'Free Swap', \r
+'friday' => 'Friday', \r
+'fritzdsl help' => 'To utilise one of Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modem, you must upload a package to your IPCop box. Please download the tarball corresponding to your version from the IPCop Website and then upload the entire <b>fcdsl-(your_version).tgz</b> using the form below.', \r
+'fritzdsl upload' => 'Upload Fritz!DSL Driver', \r
+'from' => 'From', \r
+'g.dtm' => 'TO BE REMOVED', \r
+'g.lite' => 'TO BE REMOVED', \r
+'gateway' => 'Gateway', \r
+'gateway ip' => 'Gateway IP', \r
+'generate a certificate' => 'Generate a certificate:', \r
+'generate root/host certificates' => 'Generate Root/Host Certificates', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generating the root and host certificates may take a long time.  It can take up to several minutes on older hardware. Please be patient.', \r
+'global settings' => 'Global settings', \r
+'graph' => 'Graph', \r
+'graph per' => 'Graph per', \r
+'green' => 'GREEN', \r
+'green interface' => 'Green Interface', \r
+'gui settings' => 'GUI Settings', \r
+'gz with key' => 'Only an encrypted archive can be restored on this machine.', \r
+'hangup' => 'Disconnect', \r
+'hangup string' => 'Hangup:', \r
+'high' => 'High', \r
+'high memory usage' => 'High memory usage', \r
+'holdoff' => 'Holdoff time (in seconds)', \r
+'host' => 'Host', \r
+'host certificate' => 'Host Certificate', \r
+'host configuration' => 'Host Configuration', \r
+'host ip' => 'Host IP address', \r
+'host to net vpn' => 'Host-to-Net Virtual Private Network (RoadWarrior)', \r
+'hostname' => 'Hostname', \r
+'hostname and domain already in use' => 'Hostname and domain already in use.', \r
+'hostname cant be empty' => 'Hostname can\'t be empty.', \r
+'hostname not set' => 'Hostname not set.', \r
+'hosts config added' => 'hosts config added', \r
+'hosts config changed' => 'hosts config changed', \r
+'hours' => 'hours', \r
+'hours2' => 'Hours', \r
+'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.', \r
+'icmp selected but no type' => 'ICMP selected for protocol, but no ICMP type specified.', \r
+'icmp type' => 'ICMP Type', \r
+'id' => 'ID', \r
+'idle' => 'Idle', \r
+'idle cpu' => 'Idle CPU', \r
+'idle cpu usage' => 'Idle CPU Usage', \r
+'idle timeout' => 'Idle timeout (mins; 0 to disable):', \r
+'idle timeout not set' => 'Idle timeout not set.', \r
+'ids log viewer' => 'IDS log viewer', \r
+'ids logs' => 'IDS Logs', \r
+'ids rules license' => 'To utilize Sourcefire VRT Certified Rules, you need to register on', \r
+'ids rules license2' => 'Acknowledge the license, receive your password by email, and connect to the site. Go to', \r
+'ids rules license3' => 'press the \'Get Code\' button at the bottom and copy the 40 character Oink Code into the field below.', \r
+'ids rules update' => 'Snort rules update', \r
+'iface' => 'Iface', \r
+'ignore filter' => 'Ignore filter', \r
+'ike encryption' => 'IKE Encryption:', \r
+'ike grouptype' => 'IKE Grouptype:', \r
+'ike integrity' => 'IKE Integrity:', \r
+'ike lifetime' => 'IKE Lifetime:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE lifetime should be between 1 and 8 hours.', \r
+'import' => 'Import', \r
+'in' => 'In', \r
+'incoming traffic in bytes per second' => 'Incoming Traffic in Bytes per Second', \r
+'info' => 'Info', \r
+'init string' => 'Init:', \r
+'insert floppy' => 'To backup to floppy, insert a formatted floppy into the drive on IPCop and click <i>Backup to floppy</i> to backup the system configuration. Please examine the results carefully to make sure the backup completed successfully. This can take a while to complete, so please be patient.<p>', \r
+'install new update' => 'Install new update:', \r
+'installed' => 'Installed', \r
+'installed updates' => 'Installed updates:', \r
+'instant update' => 'Instant Update', \r
+'interface' => 'Interface', \r
+'interfaces' => 'Interfaces:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Intrusion Detection', \r
+'intrusion detection system' => 'Intrusion Detection System', \r
+'intrusion detection system log viewer' => 'Intrusion Detection System Log Viewer', \r
+'intrusion detection system2' => 'Intrusion Detection System:', \r
+'invalid broadcast ip' => 'Invalid broadcast IP', \r
+'invalid cache size' => 'Invalid cache size.', \r
+'invalid characters found in pre-shared key' => 'Invalid characters found in pre-shared key.', \r
+'invalid date entered' => 'Invalid date entered.', \r
+'invalid default lease time' => 'Invalid default lease time.', \r
+'invalid domain name' => 'Invalid domain name.', \r
+'invalid downlink speed' => 'Invalid downlink speed.', \r
+'invalid end address' => 'Invalid end address.', \r
+'invalid fixed ip address' => 'Invalid fixed IP address', \r
+'invalid fixed mac address' => 'Invalid fixed MAC address', \r
+'invalid hostname' => 'Invalid hostname.', \r
+'invalid input' => 'Invalid input', \r
+'invalid input for authentication method' => 'Invalid input for authentication method.', \r
+'invalid input for city' => 'Invalid input for city.', \r
+'invalid input for country' => 'Invalid input for country.', \r
+'invalid input for department' => 'Invalid input for department.', \r
+'invalid input for e-mail address' => 'Invalid input for e-mail address.', \r
+'invalid input for esp keylife' => 'Invalid input for ESP Keylife', \r
+'invalid input for hostname' => 'Invalid input for hostname.', \r
+'invalid input for ike lifetime' => 'Invalid input for IKE lifetime', \r
+'invalid input for name' => 'Invalid input for user\'s full name or system hostname', \r
+'invalid input for oink code' => 'Invalid input for Oink code', \r
+'invalid input for organization' => 'Invalid input for organization', \r
+'invalid input for remote host/ip' => 'Invalid input for remote host/ip.', \r
+'invalid input for state or province' => 'Invalid input for state or province.', \r
+'invalid ip' => 'Invalid IP Address', \r
+'invalid keep time' => 'Keep time must be a valid number', \r
+'invalid key' => 'Invalid key.', \r
+'invalid loaded file' => 'Invalid loaded file', \r
+'invalid logserver address' => 'Invalid syslogd server address', \r
+'invalid max lease time' => 'Invalid max lease time.', \r
+'invalid maximum incoming size' => 'Invalid maximum incoming size.', \r
+'invalid maximum object size' => 'Invalid maximum object size.', \r
+'invalid maximum outgoing size' => 'Invalid maximum outgoing size.', \r
+'invalid md5sum' => 'Invalid MD5Sum.', \r
+'invalid minimum object size' => 'Invalid minimum object size.', \r
+'invalid netmask' => 'Invalid netmask', \r
+'invalid port' => 'Invalid port. Must be a valid port number.', \r
+'invalid port list' => 'Port list syntax is: port[,port]... where port is in /etc/services or number', \r
+'invalid primary dns' => 'Invalid primary DNS.', \r
+'invalid primary ntp' => 'Invalid Primary NTP server address', \r
+'invalid secondary dns' => 'Invalid secondary DNS.', \r
+'invalid secondary ntp' => 'Invalid Secondary NTP server address', \r
+'invalid start address' => 'Invalid start address.', \r
+'invalid time entered' => 'Invalid time entered.', \r
+'invalid time period' => 'Invalid time period', \r
+'invalid uplink speed' => 'Invalid uplink speed.', \r
+'invalid upstream proxy username or password setting' => 'Invalid upstream proxy username or password setting.', \r
+'invalid vpi vpci' => 'Invalid VPI/VPCI settings', \r
+'invalid wins address' => 'Invalid WINS Server address.', \r
+'invert' => 'Invert', \r
+'ip address' => 'IP Address', \r
+'ip address in use' => 'IP address already in use', \r
+'ip alias added' => 'External IP alias added', \r
+'ip alias changed' => 'External IP alias changed', \r
+'ip alias removed' => 'External IP alias removed', \r
+'ip info' => 'IP Information', \r
+'ipcop has now rebooted' => 'IPCop has now rebooted.', \r
+'ipcop has now shutdown' => 'IPCop has now shutdown.', \r
+'ipcop side' => 'IPCop side:', \r
+'ipcop side is invalid' => 'IPCop Side is invalid.', \r
+'ipcops hostname' => 'IPCop\'s Hostname', \r
+'ipinfo' => 'IP info', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Additional ISDN settings:', \r
+'isdn1' => 'Single ISDN', \r
+'isdn2' => 'Dual ISDN', \r
+'january' => 'January', \r
+'javascript menu error1' => 'If the drop down menus aren\'t working, disable Javascript on the', \r
+'javascript menu error2' => 'page.', \r
+'july' => 'July', \r
+'june' => 'June', \r
+'kernel' => 'Kernel', \r
+'kernel logging server' => 'Kernel logging server', \r
+'kernel version' => 'Kernel version:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Select the language you wish IPCop to display in:', \r
+'lease expires' => 'Lease expires', \r
+'legend' => 'Legend', \r
+'line' => 'Line', \r
+'loaded modules' => 'Loaded modules:', \r
+'local ntp server specified but not enabled' => 'Local NTP server specified but not enabled', \r
+'local subnet' => 'Local Subnet:', \r
+'local subnet is invalid' => 'Local subnet is invalid.', \r
+'local vpn hostname/ip' => 'Local VPN Hostname/IP', \r
+'log' => 'Log:', \r
+'log enabled' => 'Log Enabled', \r
+'log lines per page' => 'Lines per page', \r
+'log server address' => 'Syslog server', \r
+'log settings' => 'Log Settings', \r
+'log summaries' => 'Log summaries', \r
+'log summary' => 'Log Summary', \r
+'log viewer' => 'Log viewer', \r
+'log viewing options' => 'Log viewing options', \r
+'logging server' => 'Logging server', \r
+'loginlogout' => 'Login/Logout', \r
+'lookup failed' => 'Reverse lookup failed', \r
+'low' => 'Low', \r
+'ls_dhcpd' => 'DHCP Server:', \r
+'ls_disk space' => 'Disk space:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP Server:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kernel and Firewall:', \r
+'ls_modprobe' => 'Module loader:', \r
+'ls_pam_unix' => 'Local user logins:', \r
+'ls_sshd' => 'Remote user logins:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'MAC Address', \r
+'mac address in use' => 'MAC address already in use', \r
+'main page' => 'Main page', \r
+'manual' => 'Manual', \r
+'manual control and status' => 'Manual control and status:', \r
+'manually' => 'Manually', \r
+'march' => 'March', \r
+'marked' => 'Marked', \r
+'max incoming size' => 'Max incoming size (KB):', \r
+'max lease time' => 'Max lease time (mins):', \r
+'max outgoing size' => 'Max outgoing size (KB):', \r
+'max renewal time' => 'Maximum Renewal Time', \r
+'max retries not set' => 'Max retries not set.', \r
+'max size' => 'Max object size (KB):', \r
+'maximal' => 'Maximal', \r
+'maximum retries' => 'Maximum retries:', \r
+'may' => 'May', \r
+'medium' => 'Medium', \r
+'memory' => 'Memory:', \r
+'memory usage per' => 'Memory Usage per', \r
+'method' => 'Method:', \r
+'min size' => 'Min object size (KB):', \r
+'minutes' => 'Minutes', \r
+'missing dat' => 'Encrypted archive not found', \r
+'missing gz' => 'Unencrypted archive not found', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Modem configuration', \r
+'modem on com1' => 'Modem on COM1', \r
+'modem on com2' => 'Modem on COM2', \r
+'modem on com3' => 'Modem on COM3', \r
+'modem on com4' => 'Modem on COM4', \r
+'modem on com5' => 'Modem on COM5', \r
+'modem settings have errors' => 'Modem settings have errors', \r
+'modem speaker on' => 'Modem speaker on:', \r
+'modulation' => 'Modulation', \r
+'monday' => 'Monday', \r
+'month' => 'Month', \r
+'months' => 'months', \r
+'mounted on' => 'Mounted on', \r
+'name' => 'Name', \r
+'name is invalid' => 'Name is invalid', \r
+'name must only contain characters' => 'Name must only contain characters.', \r
+'name too long' => 'User\'s full name or system hostname is too long', \r
+'nat-traversal' => 'Nat Traversal:', \r
+'net' => 'Net', \r
+'net to net vpn' => 'Net-to-Net Virtual Private Network', \r
+'netmask' => 'Netmask', \r
+'network' => 'Network', \r
+'network added' => 'Custom Network added', \r
+'network configuration' => 'Network Configuration', \r
+'network removed' => 'Custom Network removed', \r
+'network status information' => 'Network Status Information', \r
+'network time' => 'Use a Network Time Server:', \r
+'network time from' => 'Obtain time from a Network Time Server', \r
+'network traffic graphs' => 'Network traffic graphs', \r
+'network updated' => 'Custom Network updated', \r
+'networks settings' => 'Firewall - Network settings', \r
+'new optionsfw later' => 'Your modification(s) will be active on next restart', \r
+'new optionsfw must boot' => 'You must reboot your IPCop', \r
+'newer' => 'Newer', \r
+'no' => 'No', \r
+'no alcatelusb firmware' => 'No Alcatel USB firmware. Please upload.', \r
+'no cfg upload' => 'No data was uploaded', \r
+'no dhcp lease' => 'No DHCP lease has been acquired', \r
+'no eciadsl synch.bin file' => 'No ECI ADSL synch.bin file. Please upload.', \r
+'no fritzdsl driver' => 'No Fritz!DSL driver.  Please upload.', \r
+'no information available' => 'No information available.', \r
+'no modem selected' => 'No modem selected', \r
+'no set selected' => 'No set was selected', \r
+'no time limit' => 'unlimited time', \r
+'none found' => 'none found', \r
+'nonetworkname' => 'No Network Name entered', \r
+'noservicename' => 'No Service Name entered', \r
+'not a valid ca certificate' => 'Not a valid CA certificate.', \r
+'not enough disk space' => 'Not enough disk space', \r
+'not present' => '<b>Not</b> present', \r
+'not running' => 'not running', \r
+'november' => 'November', \r
+'ntp configuration' => 'NTP configuration', \r
+'ntp must be enabled to have clients' => 'NTP must be enabled to have clients.', \r
+'ntp server' => 'NTP Server', \r
+'ntp syncro disabled' => 'NTP synchronization disabled', \r
+'ntp syncro enabled' => 'NTP synchronization enabled', \r
+'ntpd restarted' => 'ntpd restarted', \r
+'number' => 'Number:', \r
+'october' => 'October', \r
+'older' => 'Older', \r
+'online help en' => 'Online Help (in English)', \r
+'only digits allowed in holdoff field' => 'Only digits allowed in holdoff field', \r
+'only digits allowed in max retries field' => 'Only digits allowed in max retries field.', \r
+'only digits allowed in the idle timeout' => 'Only digits allowed in the idle timeout.', \r
+'only red' => 'Only RED', \r
+'open to all' => 'Override external access to ALL', \r
+'openssl produced an error' => 'OpenSSL produced an error', \r
+'options' => 'Options', \r
+'options fw' => 'Firewall options', \r
+'optionsfw portlist hint' => 'The list of ports has to be comma separated (e.g. 137,138). You can specify up to a maximum of 15 ports per protocol.', \r
+'optionsfw warning' => 'Modifying these options implies restart of firewall', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'Organization can\'t be empty.', \r
+'organization name' => 'Organization Name', \r
+'organization too long' => 'Organization is too long; it should not be longer than 60 characters.', \r
+'original' => 'Original', \r
+'other countries' => 'Other countries', \r
+'other login script' => 'Other login script', \r
+'out' => 'Out', \r
+'outgoing traffic in bytes per second' => 'Outgoing Traffic in Bytes per Second', \r
+'package failed to install' => 'Package failed to install.', \r
+'pap or chap' => 'PAP or CHAP', \r
+'password' => 'Password:', \r
+'password contains illegal characters' => 'Password contains illegal characters.', \r
+'password not set' => 'Password not set.', \r
+'password too short' => 'Password is too short.', \r
+'passwords do not match' => 'Passwords do not match.', \r
+'passwords must be at least 6 characters in length' => 'Passwords must be at least 6 characters in length', \r
+'percentage' => 'Percentage', \r
+'persistent' => 'Persistent', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Phase1 Group', \r
+'phonebook entry' => 'Phonebook entry:', \r
+'ping disabled' => 'Disable ping response', \r
+'pkcs12 file password' => 'PKCS12 File Password', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Port forwarding configuration', \r
+'ports' => 'Ports', \r
+'pots' => 'Analog classic line', \r
+'ppp setup' => 'PPP setup', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Additional PPPoE settings:', \r
+'pptp settings' => 'Additional PPTP settings:', \r
+'pre-shared key is too short' => 'Pre-shared key is too short.', \r
+'present' => 'Present', \r
+'primary dns' => 'Primary DNS:', \r
+'primary ntp server' => 'Primary NTP Server', \r
+'primary wins server address' => 'Primary WINS Server address', \r
+'priority' => 'Priority', \r
+'profile' => 'Profile', \r
+'profile deleted' => 'Profile deleted: ', \r
+'profile has errors' => 'Profile has errors', \r
+'profile made current' => 'Profile made current: ', \r
+'profile name' => 'Profile name:', \r
+'profile name not given' => 'Profile name not given.', \r
+'profile saved' => 'Profile saved: ', \r
+'profiles' => 'Profiles:', \r
+'proto' => 'Proto', \r
+'protocol' => 'Protocol', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Proxy access graphs', \r
+'proxy log viewer' => 'Proxy log viewer', \r
+'proxy logs' => 'Proxy Logs', \r
+'proxy port' => 'Proxy Port', \r
+'psk' => 'PSK', \r
+'pulse' => 'Pulse', \r
+'pulse dial' => 'Pulse dial:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Read Sectors', \r
+'reboot' => 'Reboot', \r
+'reboot schedule' => 'Schedule IPCop reboots', \r
+'rebooting' => 'Rebooting', \r
+'rebooting ipcop' => 'Rebooting IPCop', \r
+'reconnection' => 'Reconnection', \r
+'references' => 'References', \r
+'refresh' => 'Refresh', \r
+'refresh index page while connected' => 'Refresh index.cgi page whilst connected', \r
+'refresh update list' => 'Refresh update list', \r
+'registered user rules' => 'Sourcefire VRT rules for registered users', \r
+'released' => 'Released', \r
+'remark' => 'Remark', \r
+'remark title' => 'Remark:', \r
+'remote access' => 'Remote access', \r
+'remote host/ip' => 'Remote Host/IP', \r
+'remote logging' => 'Remote logging', \r
+'remote subnet' => 'Remote subnet:', \r
+'remote subnet is invalid' => 'Remote subnet is invalid.', \r
+'remove' => 'Remove', \r
+'remove ca certificate' => 'Remove CA Certificate', \r
+'reserved dst port' => 'Destination port is reserved for IPCop use only:', \r
+'reserved src port' => 'Source port is reserved for IPCop use only:', \r
+'reset' => 'Reset', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Resetting the VPN configuration will remove the root CA, the host certificate and all certificate based connections', \r
+'restart' => 'Restart', \r
+'restore' => 'Restore', \r
+'restore defaults' => 'Restore defaults', \r
+'restore hardware settings' => 'Restore hardware settings', \r
+'reverse sort' => 'Sort in reverse chronological order', \r
+'root certificate' => 'Root Certificate', \r
+'router ip' => 'Router IP Address:', \r
+'routing table entries' => 'Routing Table Entries:', \r
+'rsvd dst port overlap' => 'Destination Port Range overlaps a port reserved for IPCop:', \r
+'rsvd src port overlap' => 'Source Port Range overlaps a port reserved for IPCop:', \r
+'rules already up to date' => 'Rules already up to date', \r
+'running' => 'RUNNING', \r
+'saturday' => 'Saturday', \r
+'save' => 'Save', \r
+'save error' => 'Unable to save configuration archive file', \r
+'script name' => 'Script name:', \r
+'secondary dns' => 'Secondary DNS:', \r
+'secondary ntp server' => 'Secondary NTP Server', \r
+'secondary wins server address' => 'Secondary WINS Server address', \r
+'seconds' => 'Secs', \r
+'section' => 'Section', \r
+'sectors read from disk per second' => 'Sectors read from disk per second', \r
+'sectors written to disk per second' => 'Sectors written to disk per second', \r
+'secure shell server' => 'Secure shell server', \r
+'select' => 'Select', \r
+'select dest net' => 'Select a destination net.', \r
+'select source net' => 'Select a source net. If you have no Orange or Blue net configured, you need no DMZ Pinholes.', \r
+'send cr' => 'ISP requires Carriage Return:', \r
+'september' => 'September', \r
+'serial' => 'Serial', \r
+'service' => 'Service', \r
+'service added' => 'Custom Network Service added', \r
+'service name' => 'Service name:', \r
+'service removed' => 'Custom Network Service removed', \r
+'service updated' => 'Custom Network Service updated', \r
+'servicename' => 'Service Name', \r
+'services' => 'Services:', \r
+'services settings' => 'Firewall - Services settings', \r
+'set time now' => 'Set Time Now', \r
+'set time now help' => 'To queue a synchronization event at any time (even while using a repeating schedule), press the <i>Set Time Now</i> button. Please note that you may have to wait for five minutes, or more, before a sync event occurs.', \r
+'settings' => 'Settings', \r
+'shaping add options' => 'Add service', \r
+'shaping list options' => 'Traffic shaping services', \r
+'shared' => 'shared', \r
+'shared memory' => 'Shared Memory', \r
+'show ca certificate' => 'Show CA Certificate', \r
+'show certificate' => 'Show Certificate', \r
+'show host certificate' => 'Show Host Certificate', \r
+'show root certificate' => 'Show Root Certificate', \r
+'shutdown' => 'Shutdown', \r
+'shutdown control' => 'Shutdown control', \r
+'shutdown2' => 'Shutdown:', \r
+'shutting down' => 'Shutting down', \r
+'shutting down ipcop' => 'Shutting down IPCop', \r
+'size' => 'Size', \r
+'snort hits' => 'Total of number of Intrusion rules activated for', \r
+'sort ascending' => 'Sort Ascending', \r
+'sort descending' => 'Sort Descending', \r
+'sound' => 'Sound', \r
+'source' => 'Source', \r
+'source ip' => 'Source IP', \r
+'source ip and port' => 'Source IP:Port', \r
+'source ip bad' => 'Not a valid IP address or a network address.', \r
+'source ip in use' => 'Source IP in use:', \r
+'source ip or net' => 'Source IP or Net', \r
+'source net' => 'Source Net', \r
+'source network' => 'Source IP, or network (blank for "ALL"):', \r
+'source port' => 'Source port', \r
+'source port in use' => 'Source port in use:', \r
+'source port numbers' => 'Source port must be a valid port number or port range.', \r
+'source port overlaps' => 'Source port range overlaps an existing port range.', \r
+'speaker off' => 'Speaker off:', \r
+'speaker on' => 'Speaker on:', \r
+'src port' => 'Src Port', \r
+'srcprt range overlaps' => 'Source port range overlaps an already defined port.', \r
+'srcprt within existing' => 'Source port is within an already defined port range.', \r
+'ssdmz pinholes' => 'DMZ Pinholes', \r
+'ssh access' => 'SSH Access', \r
+'ssh fingerprint' => 'Fingerprint', \r
+'ssh host keys' => 'SSH Host Keys', \r
+'ssh is disabled' => 'SSH is disabled.  Stopping.', \r
+'ssh is enabled' => 'SSH is enabled.  Restarting.', \r
+'ssh key' => 'Key', \r
+'ssh key size' => 'Size (bits)', \r
+'ssh keys' => 'Allow public key based authentication', \r
+'ssh no auth' => 'You have not allowed any authentication methods; this will stop you logging in', \r
+'ssh passwords' => 'Allow password based authentication', \r
+'ssh portfw' => 'Allow TCP Forwarding', \r
+'ssh1 disabled' => 'SSHv1 is disabled, a version 2 client will be required.', \r
+'ssh1 enabled' => 'SSHv1 is enabled, old clients will be supported.', \r
+'ssh1 support' => 'Support SSH protocol version 1 (required only for old clients)', \r
+'ssnetwork status' => 'Network Status', \r
+'sspasswords' => 'Passwords', \r
+'ssport forwarding' => 'Port Forwarding', \r
+'ssproxy graphs' => 'Proxy Graphs', \r
+'sssystem status' => 'System Status', \r
+'sstraffic graphs' => 'Traffic Graphs', \r
+'standard login script' => 'Standard login script', \r
+'start address' => 'Start address:', \r
+'state or province' => 'State or Province', \r
+'static ip' => 'Static IP', \r
+'status' => 'Status', \r
+'status information' => 'Status information', \r
+'stopped' => 'STOPPED', \r
+'subject' => 'Subject', \r
+'subnet is invalid' => 'Netmask is invalid', \r
+'subscripted user rules' => 'Sourcefire VRT rules with subscription', \r
+'successfully refreshed updates list' => 'Successfully refreshed updates list.', \r
+'summaries kept' => 'Keep summaries for', \r
+'sunday' => 'Sunday', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Swap Usage per', \r
+'system cpu' => 'System CPU', \r
+'system cpu usage' => 'System CPU Usage', \r
+'system graphs' => 'System Graphs', \r
+'system log viewer' => 'System Log Viewer', \r
+'system logs' => 'System Logs', \r
+'system status information' => 'System Status Information', \r
+'telephone not set' => 'Telephone not set.', \r
+'the following update was successfully installed' => 'The following update was successfully installed', \r
+'the statistics were last updated at' => 'The statistics were last updated at', \r
+'there are updates' => 'There are updates available for your system. Please go to the "Updates" section for more information.', \r
+'there are updates available' => 'There are updates available for your system. It is strongly urged that you install them as soon as possible.', \r
+'there was no file upload' => 'There was no file upload.', \r
+'this feature has been sponsored by' => 'This feature has been sponsored by', \r
+'this field may be blank' => 'This field may be blank.', \r
+'this is not a valid archive' => 'This is not a valid archive.', \r
+'this is not an authorised update' => 'This is not an authorised update.', \r
+'this update is already installed' => 'This update is already installed.', \r
+'thursday' => 'Thursday', \r
+'time' => 'Time', \r
+'time date manually reset' => 'Time/Date manually reset.', \r
+'time server' => 'Time Server', \r
+'timeout must be a number' => 'Timeout must be a number.', \r
+'title' => 'Title', \r
+'to' => 'To', \r
+'to install an update' => 'To install an update please upload the .tgz.gpg file below:', \r
+'toggle enable disable' => 'Enable or Disable', \r
+'tone' => 'Tone', \r
+'tone dial' => 'Tone dial:', \r
+'total hits for log section' => 'Total Hits for Log Section', \r
+'traffic on' => 'Traffic on', \r
+'traffic shaping' => 'Traffic Shaping', \r
+'traffic shaping settings' => 'Traffic Shaping Settings', \r
+'transfer limits' => 'Transfer limits', \r
+'transparent on' => 'Transparent on', \r
+'tuesday' => 'Tuesday', \r
+'type' => 'Type', \r
+'unable to alter profiles while red is active' => 'Unable to alter profiles while RED is active.', \r
+'unable to contact' => 'Unable to contact', \r
+'unencrypted' => 'Unencrypted', \r
+'unknown' => 'UNKNOWN', \r
+'unnamed' => 'Unnamed', \r
+'update' => 'Update', \r
+'update time' => 'Update the time:', \r
+'update transcript' => 'Update transcript', \r
+'updates' => 'Updates', \r
+'updates installed' => 'Updates Installed', \r
+'updates is old1' => 'Your update file is ', \r
+'updates is old2' => 'days old. We recommend you update it on the <b>System>Updates</b> page.', \r
+'uplink speed' => 'Uplink speed (kbit/sec)', \r
+'upload' => 'Upload', \r
+'upload a certificate' => 'Upload a certificate:', \r
+'upload a certificate request' => 'Upload a certificate request:', \r
+'upload ca certificate' => 'Upload CA Certificate', \r
+'upload fcdsl.o' => 'TO BE REMOVED', \r
+'upload file' => 'Upload file', \r
+'upload p12 file' => 'Upload PKCS12 file', \r
+'upload successful' => 'Upload successful.', \r
+'upload synch.bin' => 'Upload synch.bin', \r
+'upload update file' => 'Upload update file:', \r
+'upstream password' => 'Upstream password:', \r
+'upstream proxy host:port' => 'Upstream proxy (host:port)', \r
+'upstream username' => 'Upstream username:', \r
+'uptime and users' => 'Uptime and users:', \r
+'usb modem on acm0' => 'USB Modem on ACM0', \r
+'usb modem on acm1' => 'USB Modem on ACM1', \r
+'usb modem on acm2' => 'USB Modem on ACM2', \r
+'usb modem on acm3' => 'USB Modem on ACM3', \r
+'use' => 'Use', \r
+'use a pre-shared key' => 'Use a Pre-Shared Key:', \r
+'use dov' => 'Use DOV (Data Over Voice):', \r
+'use ibod' => 'Use Bandwidth on Demand (iBOD):', \r
+'use ipcop red ip' => 'The classical RED IP used by IPCop during connection', \r
+'use only proposed settings' => 'Use only proposed settings.', \r
+'used' => 'Used', \r
+'used memory' => 'Used Memory', \r
+'used swap' => 'Used Swap', \r
+'user cpu' => 'User CPU', \r
+'user cpu usage' => 'User CPU Usage', \r
+'username' => 'User Name:', \r
+'username not set' => 'Username not set.', \r
+'users department' => 'User\'s Department', \r
+'users email' => 'User\'s E-mail Address', \r
+'users fullname or system hostname' => 'User\'s Full Name or System Hostname', \r
+'valid root certificate already exists' => 'A valid root certificate already exists.', \r
+'vci number' => 'VCI Number:', \r
+'virtual private networking' => 'Virtual Private Networking', \r
+'vpi number' => 'VPI Number:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN configuration - Main', \r
+'vpn delayed start' => 'Delay before launching VPN (seconds)', \r
+'vpn delayed start help' => 'If required, this delay can be used to allow Dynamic DNS updates to propagate properly. 60 is a common value when RED is a dynamic IP.', \r
+'vpn on blue' => 'VPN on BLUE', \r
+'waiting to synchronize clock' => 'Waiting to synchronize clock', \r
+'warning messages' => 'Warning messages', \r
+'web hits' => 'Total number of websites matching selected criteria for', \r
+'web proxy' => 'Web proxy', \r
+'web proxy configuration' => 'Web proxy configuration', \r
+'web server' => 'Web server', \r
+'website' => 'Website', \r
+'wednesday' => 'Wednesday', \r
+'week' => 'Week', \r
+'weeks' => 'weeks', \r
+'wildcards' => 'Wildcards', \r
+'wireless' => 'Wireless', \r
+'wireless config added' => 'Wireless config added', \r
+'wireless config changed' => 'Wireless config changed', \r
+'wireless configuration' => 'Wireless Configuration', \r
+'written sectors' => 'Written Sectors', \r
+'xtaccess all error' => 'You cannot set an external access to ALL, that is done in the port forwarding record.', \r
+'year' => 'Year', \r
+'yes' => 'Yes', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'You can only define one Roadwarrior connection when using pre-shared key authentication.<br />Either you already have a Roadwarrior connection with pre-shared key authentication, or you\'re trying to add one now.', \r
+'your department' => 'Your Department', \r
+'your e-mail' => 'Your E-mail Address',  \r
+'backup archive'=> 'Backup File (.dat)',\r
+'backup clear archive'=> 'Clear Backup File (.gz)',\r
+'backup key'          => 'Backup Encryption Key',\r
+'backup key file'     => 'Backup key file',\r
+'backup generate key'   => 'Generate key',\r
+'backup import key'   => 'Import key',\r
+'backup extract key'  => 'Extract key',\r
+'backup erase key'    => 'Erase key',\r
+'backup missing key'  => 'Need the backup key to restore a set',\r
+'backup export key'   => 'Export key',\r
+'backup explain key'  => 'Backup are encrypted using a key. To avoid illegal backup manipulations, IPCop only restores a backup that is encrypted with the key you will specify here. You have three options available to you',\r
+'backup explain key li1'  => 'let IPCop create key for you.',\r
+'backup explain key li2'  => 'import a saved key (possibly password protected).',\r
+'backup explain key li3'  => 'extract a key from a non-encrypted 1.4.10 backup only.' ,\r
+'backup explain key no1'  => 'you should save this key if you plan to restore new machines, IPCop accepts only once key creation/import.' , \r
+'backup explain key no2'  => 'legacy floppy backups are not concerned with this key.',\r
+'backup protect key password' => 'Backup key password',\r
+'backup import dat file' => 'Import a backup (.dat) file',\r
+'backup key info' => 'IPcop restricts access to the backup key, thus you must know root password. You have possibility to protect this key outside of IPCop with a password.',\r
+'backup media info'   => 'Floppy and/or unformatted media may display stranges partitions sizes. In this case, select the whole device. Remenber to mount harddisk before removing device. Note: floppy created here are not usable with IPCop installer program!',\r
+'notes'   => 'Notes',\r
+'current media' => 'Current media', \r
+'choose media'        => 'Choose media',\r
+'local hard disk'     => 'Hard disk',\r
+'insert removable device' => 'Insert a removable device',\r
+'mount'=>'Mount',\r
+'done'=>'Do it',\r
+'incorrect password'=>'Incorrect password',\r
+'root user password'=>'root password',\r
+'ip address outside subnets' => 'IP Address outside subnets',\r
+'dhcp bootp pxe data' => 'Enter optional bootp pxe data for this fixed lease',\r
+'invalid local-remote id' => 'When used, local & remote id must not be equal and begin with a "@" sign. These are leftid and rightid in openswan terminology.',\r
+'override mtu' => 'Override default MTU',\r
+'vpn mtu invalid' => 'MTU must be a numeric value!',\r
+'squid extension methods'=>'Your <tt>extension_methods</tt> list',\r
+'squid extension methods invalid' => 'Your \'extension_methods\' list can only contain uppercase words of letters and digits, separated with a space. '\r
+);\r
diff --git a/langs/en/install/CVS/Entries b/langs/en/install/CVS/Entries
new file mode 100644 (file)
index 0000000..e1d1d74
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_en.c/1.22.2.8/Mon Dec 12 09:23:26 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/en/install/CVS/Repository b/langs/en/install/CVS/Repository
new file mode 100644 (file)
index 0000000..d682827
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/en/install
diff --git a/langs/en/install/CVS/Root b/langs/en/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/en/install/CVS/Tag b/langs/en/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/en/install/lang_en.c b/langs/en/install/lang_en.c
new file mode 100644 (file)
index 0000000..4ac0b0a
--- /dev/null
@@ -0,0 +1,505 @@
+/*\r
+ * English (en) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ *  \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *en_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Address settings",\r
+/* TR_ADMIN_PASSWORD */\r
+"'admin' password",\r
+/* TR_AGAIN_PROMPT */\r
+"Again:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"All cards successfully allocated.",\r
+/* TR_AUTODETECT */\r
+"* AUTODETECT *",\r
+/* TR_BUILDING_INITRD */\r
+"Building INITRD...",\r
+/* TR_CANCEL */\r
+"Cancel",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Card assignment",\r
+/* TR_CHECKING */\r
+"Checking URL...",\r
+/* TR_CHECKING_FOR */\r
+"Checking for: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Choose the ISDN card installed in this computer.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Choose the ISDN protocol you require.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Configure the DHCP server by entering the settings information.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Configure networking",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"You should now configure networking by first loading the correct driver for the GREEN interface. You can do this by either auto-probing for a network card, or by choosing the correct driver from a list. Note that if you have more then one network card installed, you will be able to configure the others later on in the installation. Also note that if you have more then one card which is the same type as GREEN and each card requires special module parameters, you should enter parameters for all cards of this type such that all cards can become active when you configure the GREEN interface.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Configure network drivers, and which interface each card is assigned to.  The current configuration is as follows:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Configure the CDROM by choosing the appropriate IO address and/or IRQ.",\r
+/* TR_CONGRATULATIONS */\r
+"Congratulations!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s was successfully installed. Please remove any floppy disks or CDROMs in the computer. If your system fails to boot properly, please try booting from a DOS diskette and running 'FDISK /MBR' to re-create the Master Boot Record. Setup will now run where you may configure ISDN, network cards, and the system passwords. After Setup has been completed, you should point your web browser at http://%s:81 or https://%s:445 (or whatever you name your %s), and configure dialup networking (if required) and remote access. Remember to set a password for the %s 'dial' user, if you wish non %s 'admin' users to be able to control the link.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Your harddisk is very small, but you can continue without any swap. (Use with caution).",\r
+/* TR_CURRENT_CONFIG */\r
+"Current config: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Default Gateway:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Default Gateway\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Default lease (mins):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Default lease time\n",\r
+/* TR_DETECTED */\r
+"Detected a: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"DHCP Hostname:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"DHCP Hostname\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"DHCP server configuration",\r
+/* TR_DISABLED */\r
+"Disabled",\r
+/* TR_DISABLE_ISDN */\r
+"Disable ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"Your harddisk is too small.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"DNS and Gateway settings",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Enter the DNS and gateway information.  These settings are used only with Static IP (and DHCP if DNS set) on the RED interface.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Your configuration does not utilise an ethernet adaptor for its RED interface.  DNS and Gateway information for dialup users is configured automatically at dialup time.",\r
+/* TR_DOMAINNAME */\r
+"Domain name",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Domain name cannot be empty.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Domain name cannot contain spaces.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Domain name may only contain letters, numbers, hyphens and periods.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Domain name suffix:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Domain name suffix\n",\r
+/* TR_DONE */\r
+"Done",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nDo you wish to change these settings?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Drivers and card assignments",\r
+/* TR_ENABLED */\r
+"Enabled",\r
+/* TR_ENABLE_ISDN */\r
+"Enable ISDN",\r
+/* TR_END_ADDRESS */\r
+"End address:",\r
+/* TR_END_ADDRESS_CR */\r
+"End address\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Some ISDN cards (especially ISA ones) may require additional module parameters for setting IRQ and IO address information. If you have such a ISDN card, enter these extra parameters here. For example: \"io=0x280 irq=9\". They will be used during card detection.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Enter %s 'admin' user password.  This is the user to use for logging into the %s web administration pages.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Enter Domain name",\r
+/* TR_ENTER_HOSTNAME */\r
+"Enter the machine's hostname.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Enter the IP address information",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Failed to detect a network card automatically. Enter the driver and optional parameters for the network card.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Enter the 'root' user password. Login as this user for commandline access.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"TO BE REMOVED",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Enter the IP address information for the %s interface.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Enter the local phone number (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Enter the URL path to the ipcop-<version>.tgz and images/scsidrv-<version>.img files. WARNING: DNS not available! This should now just be http://X.X.X.X/<directory>",\r
+/* TR_ERROR */\r
+"Error",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Error writing configuration information.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Extracting modules...",\r
+/* TR_FAILED_TO_FIND */\r
+"Failed to find URL file.",\r
+/* TR_FOUND_NIC */\r
+"%s has detected the following NIC in your machine: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"German 1TR6",\r
+/* TR_HELPLINE */\r
+"              <Tab>/<Alt-Tab> between elements   |  <Space> selects",\r
+/* TR_HOSTNAME */\r
+"Hostname",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Hostname cannot be empty.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Hostname cannot contain spaces.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Hostname may only contain letters, numbers and hyphens.",\r
+/* TR_INITIALISING_ISDN */\r
+"Initialising ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Please insert the %s CD in the CDROM drive.",\r
+/* TR_INSERT_FLOPPY */\r
+"Please insert the %s driver diskette in the floppy drive.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Installation cancelled.",\r
+/* TR_INSTALLING_FILES */\r
+"Installing files...",\r
+/* TR_INSTALLING_GRUB */\r
+"Installing GRUB...",\r
+/* TR_INTERFACE */\r
+"%s interface",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Interface failed to come up.",\r
+/* TR_INVALID_FIELDS */\r
+"The following fields are invalid:\n\n",\r
+/* TR_INVALID_IO */\r
+"The IO port details entered are invalid. ",\r
+/* TR_INVALID_IRQ */\r
+"The IRQ details entered are invalid.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP address\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP address:",\r
+/* TR_ISDN_CARD */\r
+"ISDN card",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"ISDN card not detected. You may need to specify additional module parameters if the card is an ISA type or it has special requirements.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"ISDN card selection",\r
+/* TR_ISDN_CONFIGURATION */\r
+"ISDN Configuration",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"ISDN configuration menu",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN not setup. Some items have not been selected.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN has not yet been configured. Select the item you wish to configure.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"ISDN protocol selection",\r
+/* TR_ISDN_STATUS */\r
+"ISDN is currently %s.\n\n   Protocol: %s\n   Card: %s\n   Local phone number: %s\n\nSelect the item you wish to reconfigure, or choose to use the current settings.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Keyboard mapping",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Choose the type of keyboard you are using from the list below.",\r
+/* TR_LEASED_LINE */\r
+"Leased line",\r
+/* TR_LOADING_MODULE */\r
+"Loading module...",\r
+/* TR_LOADING_PCMCIA */\r
+"Loading PCMCIA modules...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Looking for: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Making boot filesystem...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Making log filesystem...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Making root filesystem...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Making swap space...",\r
+/* TR_MANUAL */\r
+"* MANUAL *",\r
+/* TR_MAX_LEASE */\r
+"Max lease (mins):",\r
+/* TR_MAX_LEASE_CR */\r
+"Max lease time\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Missing IP information on the BLUE interface.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Missing IP information on the ORANGE interface.",\r
+/* TR_MISSING_RED_IP */\r
+"Missing IP information on the RED interface.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Module name cannot be blank.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Enter the module name and parameters for the driver you require.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Mounting boot filesystem...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Mounting log filesystem...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Mounting root filesystem...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Mounting swap partition...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Local phone number (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Network mask:",\r
+/* TR_NETWORKING */\r
+"Networking",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Network address\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Network address:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Network configuration menu",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Network configuration type",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Select the network configuration for %s.  The following configuration types list those interfaces which have ethernet attached. If you change this setting, a network restart will be required, and you will have to reconfigure the network driver assignments.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Network mask\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Network setup failed.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Not enough cards were allocated.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"No BLUE interface assigned.",\r
+/* TR_NO_CDROM */\r
+"No CD-ROM found.",\r
+/* TR_NO_HARDDISK */\r
+"No hard disk found.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"No ipcop tarball found on Web Server.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"No ORANGE interface assigned.",\r
+/* TR_NO_RED_INTERFACE */\r
+"No RED interface assigned.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"No SCSI image found on Web Server.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"No unallocated cards remaining, more are required. You may autodetect and look for more cards, or choose to select a driver from the list.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Partitioning disk...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Passwords do not match.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Password cannot be blank.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Password cannot contain spaces.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Password:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Phone number cannot be empty.",\r
+/* TR_PREPARE_HARDDISK */\r
+"The installation program will now prepare the harddisk on %s. First the disk will be partitioned, and then the partitions will have a filesystem put on them.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Press Ok to reboot.",\r
+/* TR_PRIMARY_DNS */\r
+"Primary DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Primary DNS\n",\r
+/* TR_PROBE */\r
+"Probe",\r
+/* TR_PROBE_FAILED */\r
+"Auto detecting failed.",\r
+/* TR_PROBING_SCSI */\r
+"Probing SCSI devices...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Problem setting %s 'admin' user password.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Problem setting 'root' password.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"TO BE REMOVED",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protocol/Country",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Pulling network up...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Pushing network down...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Pushing non local network down...",\r
+/* TR_QUIT */\r
+"Quit",\r
+/* TR_RED_IN_USE */\r
+"ISDN (or another external connection) is currently in use.  You may not configure ISDN while the RED interface is active.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nWhen configuration is complete, a network restart will be required.",\r
+/* TR_RESTORE */\r
+"Restore",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"If you have a floppy with an %s system configuration on it, place the floppy in the floppy drive and press the Restore button.",\r
+/* TR_ROOT_PASSWORD */\r
+"'root' password",\r
+/* TR_SECONDARY_DNS */\r
+"Secondary DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Secondary DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Secondary DNS specified without a Primary DNS",\r
+/* TR_SECTION_MENU */\r
+"Section menu",\r
+/* TR_SELECT */\r
+"Select",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Select CDROM type",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"No CD-ROM was detected in this machine.  Please select which of the following drivers you wish to use so that %s can access the CD-ROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Select installation media",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s can be installed from multiple sources.  The simplest is to use the machines CDROM drive. If the computer lacks a drive, you may install via another machine on the LAN which has the installation files available via HTTP. In this case the network driver diskette will be required.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Select network driver",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Select the network driver for the card installed in this machine. If you select MANUAL, you will be given an opportunity to enter the driver module name and parameters for drivers which have special requirements, such as ISA cards.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Select the interface you wish to reconfigure.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Select the item you wish to configure.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Setting %s 'admin' user password...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Setting 'root' password....",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"TO BE REMOVED",\r
+/* TR_SETUP_FINISHED */\r
+"Setup is complete.  Press Ok to reboot.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Initial setup was not entirely complete.  You must ensure that Setup is properly finished by running setup again at the shell.",\r
+/* TR_SETUP_PASSWORD */\r
+"TO BE REMOVED",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Set additional module parameters",\r
+/* TR_SINGLE_GREEN */\r
+"Your configuration is set for a single GREEN interface.",\r
+/* TR_SKIP */\r
+"Skip",\r
+/* TR_START_ADDRESS */\r
+"Start address:",\r
+/* TR_START_ADDRESS_CR */\r
+"Start address\n",\r
+/* TR_STATIC */\r
+"Static",\r
+/* TR_SUGGEST_IO */\r
+"(suggest %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(suggest %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"This driver module is already loaded.",\r
+/* TR_TIMEZONE */\r
+"Timezone",\r
+/* TR_TIMEZONE_LONG */\r
+"Choose the timezone you are in from the list below.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Unable to eject the CDROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Unable to extract modules.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Unable to find any additional drivers.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Unable to find an ISDN card in this computer. You may need to specify additional module parameters if the card is an ISA type or it has special requirements.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Unable to initialise ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Unable to install files.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Unable to install GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Unable to load driver module.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Unable to make boot filesystem.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Unable to make log filesystem.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Unable to make root filesystem.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Unable to make swap space.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Unable to create symlink /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Unable to create symlink /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Unable to create symlink /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Unable to create symlink /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Unable to create symlink /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Unable to create symlink /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Unable to mount boot filesystem.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Unable to mount log filesystem.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Unable to mount proc filesystem.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Unable to mount root filesystem.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Unable to mount the swap partition.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Unable to open main hosts file.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Unable to open settings file",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Unable to partition the disk.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Unable to remove temporary downloaded files.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Unable to set hostname.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Unable to unmount the CDROM/floppydisk.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Unable to unmount harddisk.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Unable to write /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Unable to write /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Unable to write /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Unable to write /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Unable to write /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Unable to write %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Unable to write %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Unable to write %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"There is an unclaimed ethernet card of type:\n%s\n\nYou can assign this to:",\r
+/* TR_UNKNOWN */\r
+"UNKNOWN",\r
+/* TR_UNSET */\r
+"UNSET",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"WARNING",\r
+/* TR_WARNING_LONG */\r
+"If you change this IP address, and you are logged in remotely, your connection to the %s machine will be broken, and you will have to reconnect on the new IP. This is a risky operation, and should only be attempted if you have physical access to the machine, should something go wrong.",\r
+/* TR_WELCOME */\r
+"Welcome to the %s installation program. Selecting Cancel on any of the following screens will reboot the computer.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Your configuration is set for a single GREEN interface, which already has a driver assigned.",\r
+}; \r
+  \r
diff --git a/langs/es/CVS/Entries b/langs/es/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/es/CVS/Repository b/langs/es/CVS/Repository
new file mode 100644 (file)
index 0000000..664981c
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/es
diff --git a/langs/es/CVS/Root b/langs/es/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/es/CVS/Tag b/langs/es/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/es/cgi-bin/CVS/Entries b/langs/es/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..26a5d9b
--- /dev/null
@@ -0,0 +1,2 @@
+/es.pl/1.4.2.31/Fri Dec  2 09:00:25 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/es/cgi-bin/CVS/Repository b/langs/es/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..f3a8c9f
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/es/cgi-bin
diff --git a/langs/es/cgi-bin/CVS/Root b/langs/es/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/es/cgi-bin/CVS/Tag b/langs/es/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl
new file mode 100644 (file)
index 0000000..cd6bcd1
--- /dev/null
@@ -0,0 +1,947 @@
+# Spanish (es) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Curtis Anderson, Diego Lombardia, Mark Peter, QuiQue Soriano,\r
+# David Cabrera Lozano, Jose Sanchez, Santiago Cassina, Marcelo Zunino,\r
+# Marco van Beek, Alfredo Matignon, (c) 2005 Juan Janczuk \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Ya existe una Autoridad Certificadora (CA) con este nombre.', \r
+'a connection with this common name already exists' => 'Ya existe una conexión con este nombre común.', \r
+'a connection with this name already exists' => 'Ya existe una conexión con este nombre.', \r
+'access allowed' => 'Acceso permitido desde:', \r
+'access refused with this oinkcode' => 'Acceso denegado con este Código Oink', \r
+'action' => 'Acción', \r
+'add' => 'Agregar', \r
+'add a host' => 'Agregar un host', \r
+'add a new rule' => 'Agregar una nueva regla:', \r
+'add device' => 'Agregar dispositivo', \r
+'add network' => 'Agregar red', \r
+'add new alias' => 'Agregar un nuevo alias:', \r
+'add new lease' => 'Agregar un nuevo intervalo de concesiones', \r
+'add service' => 'Agregar servicio', \r
+'add xtaccess' => 'Agregar un Acceso Externo', \r
+'added from dhcp lease list' => 'agregado desde la lista de concesiones dhcp', \r
+'admin user password has been changed' => 'Se ha cambiado la contraseña del usuario Admin.', \r
+'administrator user password' => 'Contraseña del usuario Admin:', \r
+'adsl settings' => 'Configuración de ADSL', \r
+'advanced' => 'Avanzado', \r
+'again' => 'Otra vez:', \r
+'alcatelusb help' => 'Para utilizar un modem Speedtouch USB debe subir el firmware a su servidor IPCop. Puede descargar el paquete del <b>Firmware Empotrado</b> desde el sitio speedtouch.com. Descomprima el paquete y suba el fichero adecuado para su modem. KQD6_3.xxx cuando Rev<4 o ZZZL_3.xxx para Rev=4 usando el formulario que sigue.', \r
+'alcatelusb upload' => 'Cargar Firmware para USB Speedtouch', \r
+'alias ip' => 'IP Alias', \r
+'aliases' => 'Alias', \r
+'aliases not active' => 'No se aplicarán los alias a menos que su interfaz ROJA sea ESTATICA', \r
+'all' => 'Todos/as', \r
+'all interfaces' => 'Todas las interfaces', \r
+'all updates installed' => 'Todas las actualizaciones instaladas', \r
+'alt dialup' => 'Marcado', \r
+'alt home' => 'Inicio', \r
+'alt information' => 'Información', \r
+'alt logs' => 'Logs', \r
+'alt services' => 'Servicios', \r
+'alt system' => 'Sistema', \r
+'alt vpn' => 'VPNs', \r
+'and' => 'y', \r
+'ansi t1.483' => 'A SER REMOVIDO', \r
+'apply' => 'Aplicar ahora', \r
+'april' => 'Abril', \r
+'archive not exist' => 'El fichero de configuración no existe', \r
+'are you sure' => '¿Está seguro?', \r
+'arp table entries' => 'Tabla de Entradas ARP', \r
+'august' => 'Agosto', \r
+'authentication' => 'Autenticación:', \r
+'automatic' => 'Automático', \r
+'available updates' => 'Actualizaciones disponibles:', \r
+'average' => 'Promedio', \r
+'avoid dod' => '¡No uses esta opción en conecciones de Discado a Demanda! En general, se usa si IPCop está detrás de un enrutador. Es mandatario que tu interface RED pertenezca a uno de los tres rangos de red reservados, por ej. 10/8, 172.16/12 o 192.168/16', \r
+'back' => 'ATRAS', \r
+'backup' => 'Respaldar', \r
+'backup config floppy' => 'Configuración de Respaldo - Diskette ', \r
+'backup configuration' => 'Configuración de Respaldo:', \r
+'backup sets' => 'Conjuntos de Respaldo', \r
+'backup to floppy' => 'Copia de seguridad en diskette', \r
+'backupprofile' => 'En caso de fallo en la reconexión, cambiar al perfil', \r
+'bad characters in script field' => 'Caracteres erróneos en el campo script', \r
+'bad characters in the telephone number field' => 'Caracteres erróneos en el número de teléfono.', \r
+'bad destination range' => 'El primer valor del rango de puertos de Destino es mayor o igual al segundo valor.', \r
+'bad ignore filter' => 'El filtro para Ignorar no es correcto.', \r
+'bad return code' => 'El programa auxiliar retornó un código de error', \r
+'bad source range' => 'El primer valor del rango de puertos es mayor o igual que el segundo.', \r
+'beep when ppp connects or disconnects' => 'Emitir sonidos cuando IPCop se conecta o desconecta', \r
+'behind a proxy' => 'Detrás de un Proxy', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'AZUL', \r
+'blue access' => 'Acceso Azul', \r
+'blue interface' => 'Interfaz Azul', \r
+'broadcast' => 'Difusión', \r
+'broken pipe' => 'Tubo roto', \r
+'buffered memory' => 'Memoria Protegida', \r
+'buffers' => 'buffers', \r
+'bytes per second' => 'Bytes por Segundo', \r
+'ca certificate' => 'Certificado de CA', \r
+'ca name' => 'Nombre de CA', \r
+'cache management' => 'Manejo del caché', \r
+'cache size' => 'Tamaño de la caché (MB):', \r
+'cached' => 'en caché', \r
+'cached memory' => 'Memoria en Cache', \r
+'cancel' => 'Cancelar', \r
+'cannot enable both nat traversal and compression' => 'No se permite NAT Traversal y compresión a la vez.', \r
+'cannot enable ntp without specifying primary' => 'No puede permitir el NTP sin especificar primario.', \r
+'cannot specify secondary dns without specifying primary' => 'No puede especificar un DNS secundario sin especificar uno primario.', \r
+'cannot specify secondary ntp without specifying primary' => 'No puede especificar un servidor NTP secundario sin especificar uno primario.', \r
+'cannot specify secondary wins without specifying primary' => 'No puede especificar WINS secundarios sin especificar un primario.', \r
+'cant change certificates' => 'Los certificados no se pueden cambiar.', \r
+'cant enable xtaccess' => 'La regla de reenvío de puertos asociada esta deshabilitada, por lo tanto no se puede habilitar el acceso externo para esta regla.', \r
+'cant start openssl' => 'OpenSSL no puede comenzar.', \r
+'caps all' => 'TODO', \r
+'capsclosed' => 'CERRADO', \r
+'capsopen' => 'ABIERTO', \r
+'capswarning' => 'ADVERTENCIA', \r
+'cert' => 'Certificado', \r
+'certificate' => 'Certificado', \r
+'certificate authorities' => 'Autoridades Certificadoras', \r
+'certificate does not have a valid ca associated with it' => 'El certificado no tiene un CA válido asociado a él.', \r
+'certificate file move failed' => 'El movimiento del fichero del certificado falló', \r
+'cfg restart' => 'Se sugiere reiniciar el equipo luego de restablecer un archivo de configuración.', \r
+'chain' => 'Cadena', \r
+'change passwords' => 'Cambiar Contraseñas', \r
+'check vpn lr' => 'Verificación', \r
+'city' => 'Ciudad', \r
+'clear cache' => 'Borrar cache', \r
+'clenabled' => 'Proporcionar el tiempo a la red local', \r
+'click to disable' => 'Habilitado (pulse para deshabilitar)', \r
+'click to enable' => 'Deshabilitado (pulse para habilitar)', \r
+'clock has not been synchronized' => 'El reloj no ha sido sincronizado', \r
+'clock last synchronized at' => 'El reloj fue sincronizado por última vez a las', \r
+'common name' => 'Nombre Común', \r
+'compression' => 'Compresión:', \r
+'computer to modem rate' => 'Velocidad computadora / modem', \r
+'concentrator name' => 'Nombre del Concentrador', \r
+'confirmation' => 'confirmación', \r
+'connect on ipcop restart' => 'Conectar al reiniciar IPCop:', \r
+'connect the modem' => 'Conecte el módem', \r
+'connect timeout' => 'Timeout de conexión:', \r
+'connected' => 'Conectado', \r
+'connecting' => 'Conectando...', \r
+'connection' => 'Conexión', \r
+'connection debugging' => 'Depuración de la conexión', \r
+'connection status and controlc' => 'Estado y control de la conexión:', \r
+'connection tracking' => 'Rastreo de Conexión de IPTables', \r
+'connection type' => 'Tipo de conexión', \r
+'connection type is invalid' => 'El tipo de conexión es inválido.', \r
+'connections' => 'Conexiones', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'Hay conexiones asociadas con este CA. Al borrar este CA, borrara estas conexiones también.', \r
+'could not be opened' => 'No se pudo abrir', \r
+'could not connect to' => 'No se pudo conectar con', \r
+'could not connect to www ipcop org' => 'No se pudo conectar a www.ipcop.org', \r
+'could not create directory' => 'No se pudo crear el directorio', \r
+'could not download latest patch list' => 'No se pudo descargar la lista de actualizaciones (no esta conectado).', \r
+'could not download latest updates' => 'No se pudo descargar las actualizaciones más recientes.', \r
+'could not download the available updates list' => 'No se pudo descargar la lista de actualizaciones disponibles.', \r
+'could not open available updates file' => 'No se pudo abrir el fichero de actualizaciones disponibles.', \r
+'could not open installed updates file' => 'No se pudo abrir el fichero de actualizaciones instaladas.', \r
+'could not open update information file' => 'No se pudo abrir el fichero de información de actualización. El fichero de actualización está corrupto.', \r
+'could not retrieve common name from certificate' => 'No se pudo recuperar nombre común del certificado.', \r
+'country' => 'Pais', \r
+'cpu usage per' => 'Uso de CPU por', \r
+'create' => 'Crear', \r
+'credits' => 'Créditos', \r
+'cron server' => 'Servidor de CRON', \r
+'current' => 'Actual', \r
+'current aliases' => 'Alias Actuales:', \r
+'current dhcp leases on blue' => 'Concesiones dhcp activas en Azul', \r
+'current dynamic leases' => 'Concesiones dinámicas actuales', \r
+'current fixed leases' => 'Concesiones fijas actuales', \r
+'current hosts' => 'Ordenadores actuales:', \r
+'current profile' => 'Perfil actual:', \r
+'current rules' => 'Reglas actuales:', \r
+'custom networks' => 'Redes a medida', \r
+'custom services' => 'servicios a medida', \r
+'dat without key' => 'Un fichero cifrado no se puede restaurar sin la llave.', \r
+'date' => 'Fecha', \r
+'date not in logs' => 'No existen (o sólo parcialmente) registros para la fecha solicitada.', \r
+'day' => 'Día', \r
+'day after' => 'día posterior', \r
+'day before' => 'día anterior', \r
+'days' => 'días', \r
+'ddns hostname added' => 'Nombre de ordenador agregado al DNS dinámico', \r
+'ddns hostname modified' => 'El nombre de host del DNS Dinámico modificado', \r
+'ddns hostname removed' => 'Nombre de ordenador eliminado del DNS dinámico', \r
+'ddns minimize updates' => 'Minimizar actualizaciones:  compara la IP del dns para el ordenador "[ordenador.]dominio" con la IP ROJA, antes de una actualización, ', \r
+'ddns noip prefix' => 'Para no usar ip en modo grupo, utilice <b>%</b> como prefijo para el nombre de host', \r
+'december' => 'Diciembre', \r
+'def lease time' => 'Tiempo de concesión por defecto', \r
+'default lease time' => 'Tiempo de concesión por defecto (mins):', \r
+'default networks' => 'redes por defecto', \r
+'default renewal time' => 'tiempo de renovación por defecto', \r
+'default services' => 'servicios por defecto', \r
+'delete' => 'Borrar', \r
+'demon login script' => 'Guión demonio de conexión', \r
+'description' => 'Descripción', \r
+'dest ip and port' => 'IP:Puerto de destino', \r
+'destination' => 'Destino', \r
+'destination ip' => 'IP Destino', \r
+'destination ip bad' => 'IP inválido de la destinación', \r
+'destination ip or net' => 'IP o Red de Destino', \r
+'destination net' => 'red de destino', \r
+'destination port' => 'Puerto de la destinación', \r
+'destination port numbers' => 'Puerto de destino debe ser un número.', \r
+'destination port overlaps' => 'Rango de puertos destino alcanza elementos de un rango existente.', \r
+'detail level' => 'Nivel del detalle', \r
+'device' => 'Dispositivo', \r
+'devices on blue' => 'Dispositivos en Azul', \r
+'dhcp advopt add' => 'Añadir opción DHCP', \r
+'dhcp advopt added' => 'Opción DHCP añadida', \r
+'dhcp advopt blank value' => 'El valor de la opción DHCP no puede estar vacío.', \r
+'dhcp advopt custom definition' => 'Opción personalizada', \r
+'dhcp advopt definition' => 'Definición de la Opción', \r
+'dhcp advopt definition exists' => 'La opción definida ya existe. Sólo es posible su edición o borrado.', \r
+'dhcp advopt edit' => 'Editar opción DHCP', \r
+'dhcp advopt help' => 'Lista de opciones', \r
+'dhcp advopt list' => 'Opciones DHCP adicionales', \r
+'dhcp advopt modified' => 'Opción DHCP modificada', \r
+'dhcp advopt name' => 'Nombre de la opción', \r
+'dhcp advopt removed' => 'Opción DHCP eliminada', \r
+'dhcp advopt scope' => 'Alcance de la Opción', \r
+'dhcp advopt scope global' => 'Global', \r
+'dhcp advopt scope help' => 'Alcance Global o Limitado para las interfaces verificadas.', \r
+'dhcp advopt unknown' => 'Nombre de Opción DHCP no reconocido', \r
+'dhcp advopt value' => 'valor de la opción', \r
+'dhcp allow bootp' => 'Permitir clientes de bootp', \r
+'dhcp configuration' => 'Configuración DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'Servidor de DHCP', \r
+'dhcp server disabled' => 'Servidor DHCP deshabilitado.  Detenido.', \r
+'dhcp server disabled on blue interface' => 'Servidor DHCP deshabilitado en la interface azul', \r
+'dhcp server enabled' => 'Servidor DHCP habilitado.  Reiniciando.', \r
+'dhcp server enabled on blue interface' => 'Servidor DHCP habilitado en la interface azul', \r
+'dial' => 'Conectar', \r
+'dial user password' => 'Contraseña del usuario Dial:', \r
+'dial user password has been changed' => 'La contraseña del usuario Dial ha sido cambiada.', \r
+'dialing mode' => 'Modo de marcado:', \r
+'dialup settings' => 'Ajustes por defecto', \r
+'disk access per' => 'Tasa de acceso a disco', \r
+'disk usage' => 'Cantidad de disco usado:', \r
+'display' => 'Exhibición', \r
+'display hostname in window title' => 'Mostrar el nombre del anfitrión en el título de la ventana', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Configuración DMZ pinhole', \r
+'dmz pinhole rule added' => 'Regla DMZ pinhole agregada; reiniciando DMZ pinhole', \r
+'dmz pinhole rule removed' => 'Regla DMZ pinhole eliminada; reiniciando DMZ pinhole', \r
+'dmzpinholes for same net not necessary' => 'Los agujeros de alfiler en DMZ no son necesarios para la misma red. Seleccione una fuente diferente o red de destino.', \r
+'dns check failed' => 'Fallo en el checkeo de DNS', \r
+'dns proxy server' => 'Servidor de DNS proxy', \r
+'do not log this port list' => 'Desechar esta lista de puertos apenas sean registrados en el Registro (reduce el tamaño del Registro)', \r
+'dod' => 'Marcado bajo demanda', \r
+'dod for dns' => 'Marcado bajo demanda para DNS:', \r
+'dod not compatible with ddns' => 'El marcado a demanda es incompatible con el servicio de DNS dinámico', \r
+'dod waiting' => 'Esperando Demanda de Discado', \r
+'domain' => 'Dominio', \r
+'domain name' => 'Nombre de dominio', \r
+'domain name suffix' => 'Sufijo del nombre de dominio:', \r
+'domain not set' => 'Dominio no configurado.', \r
+'downlink speed' => 'Velocidad de bajada (kbit/seg)', \r
+'download ca certificate' => 'Descargar el Certificado de CA', \r
+'download certificate' => 'Descargar Certificado', \r
+'download host certificate' => 'Bajar Certificado del Anfitrión', \r
+'download new ruleset' => 'Bajar nuevo grupo de reglas', \r
+'download pkcs12 file' => 'Descargar fichero PKCS12', \r
+'download root certificate' => 'Bajar Certificado Raíz', \r
+'dpd action' => 'Accion de "Dead Peer Detection"', \r
+'driver' => 'Controlador', \r
+'dst port' => 'Puerto Destino', \r
+'dstprt range overlaps' => 'Rango de puertos destino, incluye algun puerto ya definido.', \r
+'dstprt within existing' => 'El puerto destino esta dentro de algun rango ya definido.', \r
+'duplicate ip' => 'Introducida una dirección IP duplicada', \r
+'duplicate ip bold' => 'Las IPs duplicadas están en <b>negrita</b>', \r
+'duplicate mac' => 'Duplicar la dirección de MAC introducida', \r
+'duplicate name' => 'Este nombre ya está utilizado, por favor elige otro.', \r
+'dyn dns source choice' => 'Los proveedores de DNS Dinámicos recibirán una IP para este IPCop desde:', \r
+'dynamic dns' => 'DNS dinámico', \r
+'dynamic dns client' => 'Cliente Dinámico del DNS', \r
+'e-mail address too long' => 'La dirección del E-mail es demasiado larga;  no debe ser más larga de 40 caracteres.', \r
+'eciadsl help' => 'Para utilizar un modem ECI ADSL debe tener un fichero <b>synch.bin</b> en su sistema IPCop. Obtengalo del sitio web ECI ADSL y luego instalelo en su IPCop mediante formulario que sigue. ', \r
+'eciadsl upload' => 'Cargar fichero Synch.bin ECI ADSL.', \r
+'edit' => 'Editar', \r
+'edit a rule' => 'Editar un regla existente:', \r
+'edit advanced settings when done' => 'Editar los ajustes avanzados una vez terminado.', \r
+'edit an existing alias' => 'Editando un alias existente', \r
+'edit an existing host' => 'Editar un anfitrión existente', \r
+'edit an existing lease' => 'Editar una concesión existente', \r
+'edit device' => 'Editar dispositivo', \r
+'edit hosts' => 'Corrija hosts', \r
+'edit network' => 'Corrija red', \r
+'edit service' => 'Corrija servicio', \r
+'empty' => 'Vacío', \r
+'enable ignore filter' => 'Activar ignorar filtro', \r
+'enable javascript' => 'Permita El Javascript', \r
+'enable wildcards' => 'Activar comodines:', \r
+'enabled' => 'Activo:', \r
+'enabled on' => 'Habilitado en', \r
+'enabledtitle' => 'Activo', \r
+'encapsulation' => 'Encapsulación', \r
+'encrypted' => 'Encriptado', \r
+'end address' => 'Dirección final:', \r
+'err bk 1' => 'Error al crear el fichero', \r
+'err bk 2 key' => 'Error al crear el fichero de llaves', \r
+'err bk 3 tar' => 'Error al añadir ficheros para archivar', \r
+'err bk 4 gz' => 'Error al procesar el fichero', \r
+'err bk 5 encrypt' => 'Error al encriptar el fichero', \r
+'err rs 1' => 'Error al restaurar el fichero', \r
+'err rs 6 decrypt' => 'Error al desencriptar fichero', \r
+'err rs 7 untartst' => 'El fichero desencriptado no es válido', \r
+'err rs 8 untar' => 'Error al desempaquetar el fichero', \r
+'error messages' => 'Mensajes de error:', \r
+'esp encryption' => 'Encriptación ESP', \r
+'esp grouptype' => 'Tipo de Grupo ESP', \r
+'esp integrity' => 'Integridad ESP:', \r
+'esp keylife' => 'Lapso de validéz de la llave ESP:', \r
+'esp keylife should be between 1 and 24 hours' => 'El lapso de vida de la llave ESP debe estar entre 1 y 24 horas.', \r
+'every' => 'Cada', \r
+'excluding buffers and cache' => '-/+ buffers/cache', \r
+'expected' => 'Esperado', \r
+'expires' => 'Caducidad', \r
+'export' => 'Exportar', \r
+'external access' => 'Acceso externo', \r
+'external access configuration' => 'Configuración de acceso externo', \r
+'external access rule added' => 'Regla de acceso externo agregada; reiniciando control de acceso', \r
+'external access rule removed' => 'Regla de acceso externo eliminada; reiniciando control de acceso', \r
+'external aliases configuration' => 'Configuración de un alias externo', \r
+'february' => 'Febrero', \r
+'fetch ip from' => 'Apoyarse en un servidor externo para decubrir la IP pública real', \r
+'filename' => 'Nombre de fichero', \r
+'filesystem full' => 'Sistema de ficheros lleno', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Numero total de "hits" para el firewall.', \r
+'firewall log' => 'Registro del firewall', \r
+'firewall log viewer' => 'Visor de Registro del Firewall', \r
+'firewall logs' => 'Registros del Firewall', \r
+'firmware' => 'Microcódigo del dispositivo', \r
+'firmware upload' => 'Subir Firmware / Controladores', \r
+'fixed ip lease added' => 'Lease fijo de IP  agregado.', \r
+'fixed ip lease modified' => 'Arriendo de IP fija modificado', \r
+'fixed ip lease removed' => 'Lease fijo de IP eliminado.', \r
+'force update' => 'Forzar actualización', \r
+'forwarding rule added' => 'Regla de reenvio agregada; reiniciando reenvio', \r
+'forwarding rule removed' => 'Regla de reenvio eliminada; reiniciando reenvio', \r
+'forwarding rule updated' => 'Regla de redireccionamiento actualizada; reiniciando el redireccionador.', \r
+'free' => 'Libre', \r
+'free memory' => 'Memoria Libre', \r
+'free swap' => 'Intercambio Libre', \r
+'friday' => 'Viernes', \r
+'fritzdsl help' => 'Para utilizar uno de los módems Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb, debe cargar un paquete en su equipo IPCop. Por favor descargue el fuchero .tgz  adecuado para su versión desde el Sitio Web de IPCop y luego cargue el fichero <b>fcdsl-(su_versión).tgz</b> usando el formulario siguiente.', \r
+'fritzdsl upload' => 'Subir el driver de Fritz!DSL', \r
+'from' => 'De', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Gateway', \r
+'gateway ip' => 'IP del portal', \r
+'generate a certificate' => 'Generar un certificado:', \r
+'generate root/host certificates' => 'Generar certificados de Raíz/Anfitrion', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generar los certificados raíz y anfitrión  puede tomar un buen tiempo. Puede tomar hasta varios minutos en hardware antiguo. Por favor sea paciente.', \r
+'global settings' => 'Configuración general', \r
+'graph' => 'Gráfico', \r
+'graph per' => 'Gráfico porcentual', \r
+'green' => 'VERDE', \r
+'green interface' => 'Interfaz Verde', \r
+'gui settings' => 'Ajustes GUI', \r
+'gz with key' => 'Solamente un fichero cifrado se puede restaurar en esta máquina.', \r
+'hangup' => 'Colgar', \r
+'hangup string' => 'Cortar:', \r
+'high' => 'Alta', \r
+'high memory usage' => 'Uso de memoria alta', \r
+'holdoff' => 'Tiempo de espera (en segundos)', \r
+'host' => 'Ordenador', \r
+'host certificate' => 'Certificado de Anfitrión', \r
+'host configuration' => 'Configuración Del Host', \r
+'host ip' => 'Dirección IP del anfitrión', \r
+'host to net vpn' => 'Anfitrión-a-red Red Privada Virtual (Roadwarrior)', \r
+'hostname' => 'Nombre del Host', \r
+'hostname and domain already in use' => 'Nombre de ordenador y dominio ya se encuentran en uso.', \r
+'hostname cant be empty' => 'El nombre del anfitrión no puede estar vacio.', \r
+'hostname not set' => 'Nombre de ordenador no configurado.', \r
+'hosts config added' => 'Configuraciones de los anfitriones agregadas', \r
+'hosts config changed' => 'Configuraciones de los anfitriones cambiadas.', \r
+'hours' => 'horas', \r
+'hours2' => 'Horas', \r
+'ibod for dual isdn only' => 'iBOD sólo puede ser usado con Dial ISDN', \r
+'icmp selected but no type' => 'ICMP seleccionado para el protocolo, pero ningún tipo del ICMP especificado.', \r
+'icmp type' => 'Tipo del ICMP', \r
+'id' => 'ID', \r
+'idle' => 'Inactivo', \r
+'idle cpu' => 'CPU Libre', \r
+'idle cpu usage' => 'Uso del CPU Libre', \r
+'idle timeout' => 'Tiempo máximo de inactividad (en minutos; 0 para deshabilitar):', \r
+'idle timeout not set' => 'Tiempo máximo de inactividad no establecido.', \r
+'ids log viewer' => 'Visor del registro IDS', \r
+'ids logs' => 'Registros de SDI', \r
+'ids rules license' => 'Para poder usar las Reglas de \'Sourcefire VRT Certified\', necesita registrarse', \r
+'ids rules license2' => 'Suscriba la licencia, Recibirá su contraseña por email, Luego conéctese al sitio. Diríjase a', \r
+'ids rules license3' => ' oprima el botón \'Get Code\' ubicado debajo y copie los 40 caracteres del Código Oink en el campo siguiente.', \r
+'ids rules update' => 'Actualización de las reglas de Snort', \r
+'iface' => 'Interfaz', \r
+'ignore filter' => 'Ignorar filtro', \r
+'ike encryption' => 'Encriptación IKE:', \r
+'ike grouptype' => 'Tipo de Grupo IKE:', \r
+'ike integrity' => 'Integridad IKE:', \r
+'ike lifetime' => 'Duración IKE:', \r
+'ike lifetime should be between 1 and 8 hours' => 'El tiempo de vida IKE debe estar entre 1 y 8 horas.', \r
+'import' => 'Importar', \r
+'in' => 'Entrada', \r
+'incoming traffic in bytes per second' => 'Tráfico de entrada en Bytes por Segundo', \r
+'info' => 'Información', \r
+'init string' => 'Inicialización:', \r
+'insert floppy' => 'Coloque un disquete formateado en la disquetera y haga click en el botón <i>Copia de seguridad en disco</i> para comenzar. La configuración de su IPCop será copiada al disquete. Una vez concluído el proceso, verifique cuidadosamente los mensajes de resultados.<p>', \r
+'install new update' => 'Instalar actualización:', \r
+'installed' => 'Instalado', \r
+'installed updates' => 'Actualizaciones instaladas:', \r
+'instant update' => 'Actualización Instantánea', \r
+'interface' => 'Interfaz:', \r
+'interfaces' => 'Interfaces:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Detección de intrusión', \r
+'intrusion detection system' => 'Sistema De la Detección De la Intrusión', \r
+'intrusion detection system log viewer' => 'Visor del Sistema de Detección de Intrusos', \r
+'intrusion detection system2' => 'Sistema de Deteccion de Intrusos:', \r
+'invalid broadcast ip' => 'IP de difusión no válida', \r
+'invalid cache size' => 'Tamaño del caché no valido.', \r
+'invalid characters found in pre-shared key' => 'La llave pre-compartida contiene caracteres no válidos', \r
+'invalid date entered' => 'La entrada de la fecha es inválida.', \r
+'invalid default lease time' => 'Tiempo de asignación por defecto no válido.', \r
+'invalid domain name' => 'Nombre de dominio inválido.', \r
+'invalid downlink speed' => 'La velocidad de bajada no es válida.', \r
+'invalid end address' => 'Dirección final no válida.', \r
+'invalid fixed ip address' => 'Dirección IP fijada es erronea', \r
+'invalid fixed mac address' => 'La dirección Mac fija no es válida.', \r
+'invalid hostname' => 'Nombre de ordenador inválido.', \r
+'invalid input' => 'Entrada inválida', \r
+'invalid input for authentication method' => 'Entrada no válida para el método de autentificación.', \r
+'invalid input for city' => 'Entrada de ciudad no válida.', \r
+'invalid input for country' => 'Entrada de país no válida.', \r
+'invalid input for department' => 'Entrada de depatamento no válida.', \r
+'invalid input for e-mail address' => 'La entrada de la direccón electrónica no es válida.', \r
+'invalid input for esp keylife' => 'La duración para la clave ESP no es válida.', \r
+'invalid input for hostname' => 'El nombre del host no es válida.', \r
+'invalid input for ike lifetime' => 'El lapso de vida para IKE no es válido.', \r
+'invalid input for name' => 'Las entradas de nombre de usuario o nombre de host no es válida. ', \r
+'invalid input for oink code' => 'Entrada inválida para el código Oink', \r
+'invalid input for organization' => 'La entrada para la organización no es válida.', \r
+'invalid input for remote host/ip' => 'La dirección IP del host remoto no es válida.', \r
+'invalid input for state or province' => 'La entrada para estado o provincia no es válida', \r
+'invalid ip' => 'Dirección IP no válida.', \r
+'invalid keep time' => 'La duración debe ser un número válido.', \r
+'invalid key' => 'La clave no és válida', \r
+'invalid loaded file' => 'Carga de ficheros inválida', \r
+'invalid logserver address' => 'La dirección del servidor syslogd no es válida.', \r
+'invalid max lease time' => 'Tiempo máx de asignación no válido.', \r
+'invalid maximum incoming size' => 'Tamaño máximo de entrada no válido.', \r
+'invalid maximum object size' => 'Tamaño máximo de objeto no válido.', \r
+'invalid maximum outgoing size' => 'Tamaño máximo de salida no válido.', \r
+'invalid md5sum' => 'MD5Sum inválido', \r
+'invalid minimum object size' => 'Tamaño mínimo de objeto no válido.', \r
+'invalid netmask' => 'La máscara de sub-red no es válida.', \r
+'invalid port' => 'Puerto inválido. Debe ser un número de puerto válido.', \r
+'invalid port list' => 'La sintaxis del listado de puertos es: [puerto[,puerto]... debe usarse un puerto que esté en /etc/services o un número', \r
+'invalid primary dns' => 'DNS primario inválido.', \r
+'invalid primary ntp' => 'Dirección del servidor NTP primario inválido', \r
+'invalid secondary dns' => 'DNS secundario inválido.', \r
+'invalid secondary ntp' => 'Dirección del servidor NTP secundario inválido', \r
+'invalid start address' => 'Dirección inicial no válida.', \r
+'invalid time entered' => 'Hora introducida inválida', \r
+'invalid time period' => 'Periodo de tiempo invalido', \r
+'invalid uplink speed' => 'La velocidad de subida no es válida.', \r
+'invalid upstream proxy username or password setting' => 'El nombre de usuario o la contraseña elejida para el proxy no son válidos.', \r
+'invalid vpi vpci' => 'La configuración de VPI/VPCI no es válida.', \r
+'invalid wins address' => 'Dirección Wins Server erronea', \r
+'invert' => 'Invertir', \r
+'ip address' => 'Dirección IP', \r
+'ip address in use' => 'Dirección IP en uso:', \r
+'ip alias added' => 'Se ha agregado el alias de IP externo', \r
+'ip alias changed' => 'Se ha cambiado alias de IP externo', \r
+'ip alias removed' => 'Ha sido eliminado el alias de IP externo', \r
+'ip info' => 'Información de dirección IP', \r
+'ipcop has now rebooted' => 'IPCop esta siendo reinciado ahora.', \r
+'ipcop has now shutdown' => 'IPCop esta siendo apagado ahora.', \r
+'ipcop side' => 'Lado de IPCop:', \r
+'ipcop side is invalid' => 'El lado IPCop no es válido.', \r
+'ipcops hostname' => 'Nombre de Host para IpCop:', \r
+'ipinfo' => 'Información de IP', \r
+'isdn' => 'RDSI', \r
+'isdn settings' => 'Configuraciones ISDN adicionales:', \r
+'isdn1' => 'RDSI (ISDN) sencillo', \r
+'isdn2' => 'RDSI (ISDN) dual', \r
+'january' => 'Enero', \r
+'javascript menu error1' => 'Si no funcionan los menús desplegables, desactive Javascript en  ', \r
+'javascript menu error2' => 'la página.', \r
+'july' => 'Julio', \r
+'june' => 'Junio', \r
+'kernel' => 'Núcleo', \r
+'kernel logging server' => 'Servidor de registro del Núcleo (SSH)', \r
+'kernel version' => 'Versión del Núcleo:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Seleccionar el lenguaje deseado para IPCop.', \r
+'lease expires' => 'Concesión expira', \r
+'legend' => 'Leyenda', \r
+'line' => 'Linea', \r
+'loaded modules' => 'Módulos cargados:', \r
+'local ntp server specified but not enabled' => 'El Servidor NTP local definido no está habilitado', \r
+'local subnet' => 'Sub-red Local:', \r
+'local subnet is invalid' => 'La sub-red local no es válida.', \r
+'local vpn hostname/ip' => 'Host/IP para VPN Local.', \r
+'log' => 'Registro:', \r
+'log enabled' => 'El registro permitió', \r
+'log lines per page' => 'Lineas de registro por página', \r
+'log server address' => 'Servidor de syslog', \r
+'log settings' => 'Configuraciones de registro.', \r
+'log summaries' => 'Sumarios de Registro', \r
+'log summary' => 'Sumario de registro.', \r
+'log viewer' => 'Visor de registros', \r
+'log viewing options' => 'Opciones del visor de registro', \r
+'logging server' => 'Servidor de registro', \r
+'loginlogout' => 'Apertura/cierre de sesiones', \r
+'lookup failed' => 'Fallo la busqueda invertida', \r
+'low' => 'Baja', \r
+'ls_dhcpd' => 'Servidor DHCP:', \r
+'ls_disk space' => 'Espacio en disco:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'Servidor HTTP:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kernel y Cortafuegos:', \r
+'ls_modprobe' => 'Carga de módulos:', \r
+'ls_pam_unix' => 'Sesiones de usuario local:', \r
+'ls_sshd' => 'Sesiones de usuarios locales:', \r
+'ls_syslogd' => 'Sesiones de usuarios remotos:', \r
+'mac address' => 'Dirección MAC', \r
+'mac address in use' => 'La dirección MAC esta siendo usada', \r
+'main page' => 'Página principal', \r
+'manual' => 'Manual', \r
+'manual control and status' => 'Control manual y estado:', \r
+'manually' => 'Manualmente', \r
+'march' => 'Marzo', \r
+'marked' => 'Marcado', \r
+'max incoming size' => 'Tamaño máximo de entrada (KB):', \r
+'max lease time' => 'Máx tiempo de asignación (mins):', \r
+'max outgoing size' => 'Tamaño máximo de salida (KB):', \r
+'max renewal time' => 'Lapso máximo de renovación:', \r
+'max retries not set' => 'Número máximo de reintentos no establecido.', \r
+'max size' => 'Tamaño máximo de objetos (KB)', \r
+'maximal' => 'Máximo', \r
+'maximum retries' => 'Número máximo de reintentos:', \r
+'may' => 'Mayo', \r
+'medium' => 'Medio', \r
+'memory' => 'Memoria:', \r
+'memory usage per' => 'Uso de memoria por', \r
+'method' => 'Método:', \r
+'min size' => 'Tamaño mínimo de objeto (KB):', \r
+'minutes' => 'Minutos', \r
+'missing dat' => 'No se encuentra el fichero encriptado ', \r
+'missing gz' => 'No se encuentra el fichero no encriptado', \r
+'modem' => 'Módem', \r
+'modem configuration' => 'Configuración del Modem', \r
+'modem on com1' => 'Módem en COM1', \r
+'modem on com2' => 'Módem en COM2', \r
+'modem on com3' => 'Módem en COM3', \r
+'modem on com4' => 'Módem en COM4', \r
+'modem on com5' => 'Módem en COM5', \r
+'modem settings have errors' => 'La configuración del móodem tiene errores', \r
+'modem speaker on' => 'Altavoz del módem encendido:', \r
+'modulation' => 'Modulación', \r
+'monday' => 'Lunes', \r
+'month' => 'Mes', \r
+'months' => 'meses', \r
+'mounted on' => 'Montado en', \r
+'name' => 'Nombre', \r
+'name is invalid' => 'El nombre no es válido', \r
+'name must only contain characters' => 'El nombre debe contener sólo caracteres.', \r
+'name too long' => 'El nombre de usuario o del host es demasiado extenso.', \r
+'nat-traversal' => 'Nat Transversal:', \r
+'net' => 'Red', \r
+'net to net vpn' => 'Red Privada Virtual (VPN) de Red a Red', \r
+'netmask' => 'Máscara de subred', \r
+'network' => 'Red', \r
+'network added' => 'Red personal agregada', \r
+'network configuration' => 'Configuración de red', \r
+'network removed' => 'Red personal removida', \r
+'network status information' => 'Información de Estado de la Red', \r
+'network time' => 'Usa un Network Time Server:', \r
+'network time from' => 'Obtener la hora desde un Servidor de Horarios para Redes (NTP)', \r
+'network traffic graphs' => 'Gráficos de tráfico en la red', \r
+'network updated' => 'Red personal actualizada', \r
+'networks settings' => 'Configuración de Cortafuegos - Red', \r
+'new optionsfw later' => 'Las modificaciones tomarán vigencia en el próximo reinicio.', \r
+'new optionsfw must boot' => 'Debe reiniciar su IPCop', \r
+'newer' => 'Siguiente', \r
+'next address' => 'Siguiente dirección', \r
+'no' => 'No ', \r
+'no alcatelusb firmware' => 'No tiene firmware Alcatel USB. Por favor instálelo.', \r
+'no cfg upload' => 'No se han transferido datos', \r
+'no dhcp lease' => 'No se ha obtenido conexión/renovación del DHCP', \r
+'no eciadsl synch.bin file' => 'Falta el fichero <b>synch.bin</b>. Por favor cárgalo.', \r
+'no fritzdsl driver' => 'No existe controlador para Fritz!DSL. Instala uno, por favor.', \r
+'no information available' => 'No hay información disponible.', \r
+'no modem selected' => 'Ningún módem seleccionó', \r
+'no set selected' => 'No se ha seleccionado ninguna opción.', \r
+'no time limit' => 'no limitar la duración', \r
+'none found' => 'No encontrado', \r
+'nonetworkname' => 'No ha ingresado nombre de red', \r
+'noservicename' => 'No ha ingresado Nombre de Servicio', \r
+'not a valid ca certificate' => 'No es un certificado CA válido.', \r
+'not enough disk space' => 'Insuficiente espacio en disco', \r
+'not present' => '<b>No</b> existe', \r
+'not running' => 'parado', \r
+'november' => 'Noviembre', \r
+'ntp configuration' => 'Configuración NTP', \r
+'ntp must be enabled to have clients' => 'El NTP se debe permitir tener clientes.', \r
+'ntp server' => 'Servidor NTP', \r
+'ntp syncro disabled' => 'Sincronización NTP inhabilitada.', \r
+'ntp syncro enabled' => 'Sincronización NTP habilitada.', \r
+'ntpd restarted' => 'se ha reiniciado el ntpd', \r
+'number' => 'Número', \r
+'october' => 'Octubre', \r
+'older' => 'Más viejo', \r
+'online help en' => 'Ayuda En Línea (en Inglés)', \r
+'only digits allowed in holdoff field' => 'Sólo se permiten dígitos en el campo "holdoff"', \r
+'only digits allowed in max retries field' => 'Sólo se permiten números en el campo del máximo número de reintentos.', \r
+'only digits allowed in the idle timeout' => 'Sólo se permiten números en el campo del tiempo máximo de inactividad.', \r
+'only red' => 'Sólo ROJA', \r
+'open to all' => 'Abierto a todos', \r
+'openssl produced an error' => 'Se ha producido un error de OpenSSL', \r
+'options' => 'Opciones', \r
+'options fw' => 'Opciones del Cortafuego', \r
+'optionsfw portlist hint' => 'La lista de puertos, separadas por coma (ej: 137,138). Máximo: 15 puertos por protocolo.', \r
+'optionsfw warning' => 'Si modificaca estas opciones debeberá reiniciar el cortafuegos', \r
+'orange' => 'NARANJA', \r
+'organization cant be empty' => 'El nombre de la organización no puede estar vacío', \r
+'organization name' => 'Nombre de la Organización', \r
+'organization too long' => 'El nombre de la organización es muy largo, no debe sobrepasar los 60 caracteres', \r
+'original' => 'Original', \r
+'other countries' => 'Otros países', \r
+'other login script' => 'Otro guión de conexión', \r
+'out' => 'Salida', \r
+'outgoing traffic in bytes per second' => 'Tráfico de salida en Bytes por Segundo', \r
+'package failed to install' => 'Falló la instalació del paquete.', \r
+'pap or chap' => 'PAP o CHAP', \r
+'password' => 'Contraseña:', \r
+'password contains illegal characters' => 'La contraseña contiene caracteres ilegales.', \r
+'password not set' => 'Contraseña no establecida.', \r
+'password too short' => 'Clave demasiado corta', \r
+'passwords do not match' => 'La contraseñas ingresadas no conciden.', \r
+'passwords must be at least 6 characters in length' => 'Las contraseñas deben tener al menos 6 caracteres', \r
+'percentage' => 'Porcentaje', \r
+'persistent' => 'Persistente', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Grupo Fase1', \r
+'phonebook entry' => 'Entrada en la agenda', \r
+'ping disabled' => 'Inhabilitar respuesta a pings', \r
+'pkcs12 file password' => 'Fichero de Contraseña PKCS12', \r
+'port' => 'Puerto', \r
+'port forwarding configuration' => 'Configuración de reenvio de puertos', \r
+'ports' => 'Puertos', \r
+'pots' => 'Línea analógica clásica', \r
+'ppp setup' => 'Configuración de PPP', \r
+'pppoe' => 'PPPOE', \r
+'pppoe settings' => 'Configuración adicional de PPPoE:', \r
+'pptp settings' => 'Configuracion adicional para PPTP:', \r
+'pre-shared key is too short' => 'La clave pre-compartida es demasiado corta.', \r
+'present' => 'Existe', \r
+'primary dns' => 'DNS primario:', \r
+'primary ntp server' => 'Servidor NTP primario', \r
+'primary wins server address' => 'Dirección del srvidor WINS primario', \r
+'priority' => 'Prioridad', \r
+'profile' => 'Perfil', \r
+'profile deleted' => 'Perfil borrado:', \r
+'profile has errors' => 'El perfil tiene errores', \r
+'profile made current' => 'Perfil seleccionado actualmente:', \r
+'profile name' => 'Nombre del perfil:', \r
+'profile name not given' => 'No se ha dado nombre al perfil.', \r
+'profile saved' => 'Perfil guardado:', \r
+'profiles' => 'Perfiles', \r
+'proto' => 'Proto', \r
+'protocol' => 'Protocolo', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Acceso a los gráficos del Proxy', \r
+'proxy log viewer' => 'Visualización del registro del Proxy', \r
+'proxy logs' => 'Registros del Proxy', \r
+'proxy port' => 'Puerto del Proxy', \r
+'psk' => 'PSK', \r
+'pulse' => 'Pulsar', \r
+'pulse dial' => 'Discado por pulso:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Sectores leídos', \r
+'reboot' => 'Reinciar', \r
+'reboot schedule' => 'Agenda de Reinicios de IPCop', \r
+'rebooting' => 'Reiniciando', \r
+'rebooting ipcop' => 'Reiniciando IPCop', \r
+'reconnection' => 'Reconexión', \r
+'references' => 'Referencias', \r
+'refresh' => 'Refrescar', \r
+'refresh index page while connected' => 'Restaure la página de index.cgi mientras que está conectado', \r
+'refresh update list' => 'Refrescar lista de actualizaciones', \r
+'registered user rules' => 'Reglas \'Sourcefire VRT\' para usuarios registrados', \r
+'released' => 'Liberado', \r
+'remark' => 'Observación', \r
+'remark title' => 'Observación:', \r
+'remote access' => 'Acceso remoto', \r
+'remote host/ip' => 'Host/IP remoto', \r
+'remote logging' => 'Sesión remota', \r
+'remote subnet' => 'Subred remota', \r
+'remote subnet is invalid' => 'La subred remota no es válida.', \r
+'remove' => 'Eliminar', \r
+'remove ca certificate' => 'Elimina certificado CA', \r
+'reserved dst port' => 'El puerto de destino está reservado exclusivamente para IPCop.', \r
+'reserved src port' => 'Puerto destino reservado para uso de IPCop solamente:', \r
+'reset' => 'Reajuste', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Al reinicializar la configuración de VPN se eliminarán el certificado CA raíz, el certificado del host y toda conexion basada en certificados.', \r
+'restart' => 'Reiniciar', \r
+'restore' => 'Restablecer', \r
+'restore defaults' => 'Valores predeterminados', \r
+'restore hardware settings' => 'Restaurar configuración de hardware', \r
+'reverse sort' => 'Orden cronológico invertido.', \r
+'root certificate' => 'Certificado Raíz', \r
+'root path' => 'Directorio raiz', \r
+'router ip' => 'Dirección IP del router:', \r
+'routing table entries' => 'Entradas de Tabla de Ruteo', \r
+'rsvd dst port overlap' => 'Rango de puertos destino invade algún puerto reservado para IPCop:', \r
+'rsvd src port overlap' => 'Rango de puertos origen invade algún puerto reservado para IPCop:', \r
+'rules already up to date' => 'Reglas actualizadas', \r
+'running' => 'EN MARCHA', \r
+'saturday' => 'Sabado', \r
+'save' => 'Guardar', \r
+'save error' => 'No es posible guardar el fichero de configuración', \r
+'script name' => 'Nombre del guión:', \r
+'secondary dns' => 'DNS secundario:', \r
+'secondary ntp server' => 'Servidor NTP Secundario', \r
+'secondary wins server address' => 'Dirección del Servidor WINS secundario', \r
+'seconds' => 'Segundos', \r
+'section' => 'Sección', \r
+'sectors read from disk per second' => 'Sectores del disco leídos por segundo', \r
+'sectors written to disk per second' => 'Sectores del disco escritos por segundo', \r
+'secure shell server' => 'Servidor de Consola Segura', \r
+'select' => 'Seleccionar', \r
+'select dest net' => 'Seleccione una red de destino', \r
+'select source net' => 'Seleccione una red de origen. Si no tiene una red Naranja o Azul configurada, no necesitará DMZ Pinholes', \r
+'send cr' => 'ISP requiere Retorno de Carro:', \r
+'september' => 'Septiembre', \r
+'serial' => 'Serial', \r
+'service' => 'Servicio', \r
+'service added' => 'Se ha añadido el Servicio de Red Propio', \r
+'service name' => 'Nombre del servicio:', \r
+'service removed' => 'El Servicio de Red personalizado ha sido eliminado.', \r
+'service updated' => 'El Servicio de Red personalizado ha sido actualizado.', \r
+'servicename' => 'Nombre del servicio', \r
+'services' => 'Servicios:', \r
+'services settings' => 'Configuraciones de los Servicio del Cortafuegos', \r
+'set time now' => 'Cambiar Hora Ahora', \r
+'set time now help' => 'Para solicitar una sincronización no programada, presione el botón <i>Cambiar Hora Ahora</i>. Tenga en cuenta que debe esperar 5 minutos, o más, para que la sincronización se complete.', \r
+'settings' => 'Configuraciones', \r
+'shaping add options' => 'Añadir servicio', \r
+'shaping list options' => 'Opciones de Control de Tráfico', \r
+'shared' => 'Compartido', \r
+'shared memory' => 'Memoria Compartida', \r
+'show ca certificate' => 'Muestra el Certidicado CA', \r
+'show certificate' => 'Muestra Certificado', \r
+'show host certificate' => 'Muestra el Certificado del Host', \r
+'show root certificate' => 'Muestra el Certificado Raiz', \r
+'shutdown' => 'Apagar', \r
+'shutdown control' => 'Funciones de apagado', \r
+'shutdown2' => 'Apagar:', \r
+'shutting down' => 'Apagando', \r
+'shutting down ipcop' => 'Apagando IPCop', \r
+'size' => 'Tamaño', \r
+'snort hits' => 'Numero de reglas para Intrusión activadas', \r
+'sort ascending' => 'Clase en Orden Ascendente', \r
+'sort descending' => 'Clase en Orden Descendente', \r
+'sound' => 'Sonido', \r
+'source' => 'Origen', \r
+'source ip' => 'IP de Origen', \r
+'source ip and port' => 'IP:Puerto de Origen', \r
+'source ip bad' => 'La dirección IP o la dirección de red no es válida', \r
+'source ip in use' => 'IP de origen en uso:', \r
+'source ip or net' => 'IP o Red de Origen', \r
+'source net' => 'Red de Origen', \r
+'source network' => 'IP de origen, o red (vacio para "TODAS"):', \r
+'source port' => 'Puerto de origen', \r
+'source port in use' => 'Puerto de origen en uso:', \r
+'source port numbers' => 'Puerto de origen debe ser un número.', \r
+'source port overlaps' => 'Rango de puertos origen invade algún rango existente.', \r
+'speaker off' => 'Descativar bocino:', \r
+'speaker on' => 'Activar bocino:', \r
+'src port' => 'Puerto origen', \r
+'srcprt range overlaps' => 'Rango de puertos origen invade algún puerto definido previamente.', \r
+'srcprt within existing' => 'Puerto origen cae dentro de algún rango definido previamente.', \r
+'ssdmz pinholes' => 'DMZ pinholes', \r
+'ssh access' => 'Accesso SSH', \r
+'ssh fingerprint' => 'Huella Digital', \r
+'ssh host keys' => 'Llaves SSH del Host', \r
+'ssh is disabled' => 'SSH está desabilitado. Detente', \r
+'ssh is enabled' => 'SSH activo. Reiniciando.', \r
+'ssh key' => 'Llave', \r
+'ssh key size' => 'Tamaño en bits', \r
+'ssh keys' => 'Se Admite autentificación basada en clave pública', \r
+'ssh no auth' => 'No tiene un de método de autentificación admitido; su inicio de sesion no se completará.', \r
+'ssh passwords' => 'Se admite autetificación basada en contraseña', \r
+'ssh portfw' => 'Se admite reenvío de puertos', \r
+'ssh1 disabled' => 'SSHv1 es lisiado, un cliente de la versión 2 será requerido.', \r
+'ssh1 enabled' => 'Se permite SSHv1, los viejos clientes será apoyado.', \r
+'ssh1 support' => 'SSH v1 es soportado (requerido solamente para los viejos clientes)', \r
+'ssnetwork status' => 'Estado de la red', \r
+'sspasswords' => 'Contraseñas', \r
+'ssport forwarding' => 'Reenvio de puertos', \r
+'ssproxy graphs' => 'Gráficos del Proxy', \r
+'sssystem status' => 'Estado del sistema', \r
+'sstraffic graphs' => 'Gráficas de tráfico', \r
+'standard login script' => 'Guión de conexión', \r
+'start address' => 'Dirección inicial:', \r
+'state or province' => 'Provincia o Estado', \r
+'static ip' => 'IP estática', \r
+'status' => 'Estado', \r
+'status information' => 'Informe de situación', \r
+'stopped' => 'PARADO', \r
+'subject' => 'Asunto', \r
+'subnet is invalid' => 'Máscara de subred no válida', \r
+'subscripted user rules' => 'Reglas \'Sourcefire VRT\' con suscripción', \r
+'successfully refreshed updates list' => 'La lista de actualizaciones fue actualizada exitosamente.', \r
+'summaries kept' => 'Conservar sumarios durante', \r
+'sunday' => 'Domingo', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Uso de Swap', \r
+'system cpu' => 'CPU del Sistema', \r
+'system cpu usage' => 'Uso del CPU', \r
+'system graphs' => 'Gráficos del Sistema', \r
+'system log viewer' => 'Visor de Registro del Sistema', \r
+'system logs' => 'Registros del Sistema', \r
+'system status information' => 'Información de Estado del Sistema', \r
+'telephone not set' => 'Teléfono no configurado.', \r
+'the following update was successfully installed' => 'La siguiente actualización fue instalada exitosamente', \r
+'the statistics were last updated at' => 'Ultima actualización del estadístico ', \r
+'there are updates' => 'Hay actualizaciones disponibles para su sistema. Por favor, visite la sección "Actualizaciones" para más información.', \r
+'there are updates available' => 'Hay actualizaciones para su sistema. Es muy importante que las instale tan pronto como le sea posible.', \r
+'there was no file upload' => 'No se han cargado ficheros', \r
+'this feature has been sponsored by' => 'Esta utilidad ha sido patrocinada por', \r
+'this field may be blank' => 'Este campo puede quedar vacio.', \r
+'this is not a valid archive' => 'Este no el un fichero válido.', \r
+'this is not an authorised update' => 'Esta no es una actualización autorizada.', \r
+'this update is already installed' => 'Esta actualización ya se encuentra instalada.', \r
+'thursday' => 'Jueves', \r
+'time' => 'Hora', \r
+'time date manually reset' => 'Reasigna Fecha/Hora manualmente.', \r
+'time server' => 'Servidor de Horario', \r
+'timeout must be a number' => 'Timeout debe ser un número.', \r
+'title' => 'Título', \r
+'to' => 'a/para', \r
+'to install an update' => 'Para instalar una actualización por favor indique el fichero \'.tgz.gpg\' debajo:', \r
+'toggle enable disable' => 'Habilitar o Deshabilitar', \r
+'tone' => 'Tono', \r
+'tone dial' => 'Discado por tono:', \r
+'total hits for log section' => 'Total de coincidencias por sección de Registro', \r
+'traffic on' => 'Tráfico en', \r
+'traffic shaping' => 'Control de Tráfico', \r
+'traffic shaping settings' => 'Configuraciones del Control de Tráfico', \r
+'transfer limits' => 'Límites de la transferencia', \r
+'transparent on' => 'Proxy Transparente en', \r
+'tuesday' => 'Martes', \r
+'type' => 'Tipo', \r
+'unable to alter profiles while red is active' => 'Deshabilitado los cambios en el perfíl mientras RED esté activo.', \r
+'unable to contact' => 'Imposible contactar ', \r
+'unencrypted' => 'No encriptado', \r
+'unknown' => 'DESCONOCIDO', \r
+'unnamed' => 'Anónimo', \r
+'update' => 'Actualizar', \r
+'update time' => 'Actualizar hora', \r
+'update transcript' => 'Actualizar transcripciones', \r
+'updates' => 'Actualizaciones', \r
+'updates installed' => 'La actualizacions han sido instaladas', \r
+'updates is old1' => 'Su fichero de actualización es', \r
+'updates is old2' => 'días desfasado. Le recomendamos actualice su sistema visitando la páginas <b>Sistema>Actualizaciones</b>.', \r
+'uplink speed' => 'Velocidad de subida (kbit/seg)', \r
+'upload' => 'Cargar', \r
+'upload a certificate' => 'Cargar un certificado:', \r
+'upload a certificate request' => 'Cargar un certificado solicitado:', \r
+'upload ca certificate' => 'Cargar el Certificado CA', \r
+'upload fcdsl.o' => 'Cargar \'fcdsl.o\'', \r
+'upload file' => 'Cargar fichero', \r
+'upload p12 file' => 'Cargar el fichero PKCS12', \r
+'upload successful' => 'Carga exitosa.', \r
+'upload synch.bin' => 'Cargar synch.bin', \r
+'upload update file' => 'Cargar fichero de actualización:', \r
+'upstream password' => 'Contraseña de upstream:', \r
+'upstream proxy host:port' => 'Proxy de subida (host:port)', \r
+'upstream username' => 'Nombre de usuario de upstream:', \r
+'uptime and users' => 'Tiempo en marcha de las operaciones y usuarios:', \r
+'usb modem on acm0' => 'Módem USB en ACM0', \r
+'usb modem on acm1' => 'Módem USB en ACM1', \r
+'usb modem on acm2' => 'Módem USB en ACM2', \r
+'usb modem on acm3' => 'Módem USB en ACM3', \r
+'use' => 'Uso', \r
+'use a pre-shared key' => 'Usar llave Pre-Compartida:', \r
+'use dov' => 'Usa DOV (datos sobre voz):', \r
+'use ibod' => 'Uso el ancho de banda de demanda (iBOD):', \r
+'use ipcop red ip' => 'La IP ROJA clásica usada por IPCop durante la conexión', \r
+'use only proposed settings' => 'Usar solamente las configuraciones propuestas.', \r
+'used' => 'Usado', \r
+'used memory' => 'Memoria Utilizada', \r
+'used swap' => 'Swap Utilizado', \r
+'user cpu' => 'CPU de usuario', \r
+'user cpu usage' => 'Utilización de CPU de Usuario', \r
+'username' => 'Nombre de usuario:', \r
+'username not set' => 'Usuario no establecido.', \r
+'users department' => 'Departamento de Usuario', \r
+'users email' => 'Dirección Electrónica del Usuario', \r
+'users fullname or system hostname' => 'Nombre completo del usuario o nombre del Sistema', \r
+'valid root certificate already exists' => 'Ya existe un certificado raiz valido', \r
+'vci number' => 'Número de VCI:', \r
+'virtual private networking' => 'Red Virtual Privada (VPN)', \r
+'vpi number' => 'Número VPI', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'Configuración de la VPN - Principal', \r
+'vpn delayed start' => 'Retardo antes de lanzar la VPN (segundos)', \r
+'vpn delayed start help' => 'Si se requiere, este retardo puede ser usado para permitir la propagación correcta de las actualizaciones dinámicas del DNS. 60 es un valor corriente cuando la IP del interfaz RED es dinámica.', \r
+'vpn on blue' => 'VPN en AZUL', \r
+'waiting to synchronize clock' => 'Esperando la sincronización del reloj', \r
+'warning messages' => 'Mensajes de advertencia', \r
+'web hits' => 'Cantidad de Sitios Web coincidentes para el criterio seleccionado', \r
+'web proxy' => 'Web proxy', \r
+'web proxy configuration' => 'Configuracion del Servidor Proxy', \r
+'web server' => 'Servidor web', \r
+'website' => 'Sitio Web', \r
+'wednesday' => 'Miércoles', \r
+'week' => 'Semana', \r
+'weeks' => 'semanas', \r
+'wildcards' => 'Comodines', \r
+'wireless' => 'Inalambrica', \r
+'wireless config added' => 'Configuración inalambrica agregada', \r
+'wireless config changed' => 'Configuración inalambrica cambiada', \r
+'wireless configuration' => 'Configuración Inalambrica', \r
+'written sectors' => 'Sectores Escritos', \r
+'xtaccess all error' => 'No se puede fijar un acceso externo para ALL, esto viene dado en el registro de redireccionamento de puertos.', \r
+'year' => 'Año', \r
+'yes' => 'Si', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Solamente puede definir una conexión de Roadwarrior al usar la llave de autentificación dominante pre-compartida.<br/>Usted ya tiene una conexión de Roadwarrior con la autentificación dominante pre-compartida, o está intentando agregar otra.', \r
+'your department' => 'Su Departamento', \r
+'your e-mail' => 'Su Dirección De E-mail', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/es/install/CVS/Entries b/langs/es/install/CVS/Entries
new file mode 100644 (file)
index 0000000..acee023
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_es.c/1.7.2.10/Mon Dec 12 09:23:26 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/es/install/CVS/Repository b/langs/es/install/CVS/Repository
new file mode 100644 (file)
index 0000000..6c8a73c
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/es/install
diff --git a/langs/es/install/CVS/Root b/langs/es/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/es/install/CVS/Tag b/langs/es/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/es/install/lang_es.c b/langs/es/install/lang_es.c
new file mode 100644 (file)
index 0000000..7ec8ef7
--- /dev/null
@@ -0,0 +1,509 @@
+/*\r
+ * Spanish (es) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Curtis Anderson, Diego Lombardia, Mark Peter, QuiQue Soriano,\r
+ * David Cabrera Lozano, Jose Sanchez, Santiago Cassina, Marcelo Zunino,\r
+ * Marco van Beek, Alfredo Matignon, (c) 2005 Juan Janczuk \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *es_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Configuración de direcciones",\r
+/* TR_ADMIN_PASSWORD */\r
+"Contraseña de usuario Admin",\r
+/* TR_AGAIN_PROMPT */\r
+"Otra vez:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Todas la tarjetas se asignaron con éxito.",\r
+/* TR_AUTODETECT */\r
+"* AUTODETECTAR *",\r
+/* TR_BUILDING_INITRD */\r
+"Generando INITRD...",\r
+/* TR_CANCEL */\r
+"Cancelar",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Asignación de tarjetas",\r
+/* TR_CHECKING */\r
+"Chequeando la URL...",\r
+/* TR_CHECKING_FOR */\r
+"Verificando : %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Elija la tarjeta ISDN instalada en su equipo.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Elija el protocolo ISDN requerido:",\r
+/* TR_CONFIGURE_DHCP */\r
+"Ingrese la configuracion para el servidor DHCP.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Configuración de Red",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Ahora debe configurar la red. Primero cargue el driver para su interfaz VERDE. Esto puede hacerse mediante autodeteccion, o eligiendo el driver adecuado de la lista disponible. Si tiene más de una tarjeta de red instalada, podrá configurar las restantes luego. Observe que si usted tiene más de una tarjeta que sea del mismo tipo que la VERDE y cada tarjeta requiere parámetros especiales del módulo, se deben ingresar los parámetros para todas las tarjetas de este tipo, de modo que todas pueden ser activadas cuando se configura el interfaz VERDE.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Configura los controladores de red, y cual es el inferfaz asignado a cada targeta también. La configuración actual es:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Configura el CDROM eligiendo la dirección IO y/o IRQ adecuada.",\r
+/* TR_CONGRATULATIONS */\r
+"¡Felicitaciones!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s ha sido instalado exitosamente. Por favor, quite el disquete o CD que pueda tener en su PC. Se iniciará el Setup, en el podrá configurar ISDN, tarjetas de red, y contraseñas del sistema. Luego de finalizado el Setup, podrá apuntar su navegador web a http://%s:81 o https://%s:445 (o como nombró su %s), y configurar los accesos telefónicos y/o los accesos remotos que correspondan a su instalación. No olvide adjudicar una contraseña para el usuario \"dial\" en su %s, si no desea que usuarios \"admin\" puedan controlar el enlace.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Su disco duro es muy pequeño, podrá continuar sin swap. (Usar con precaución)",\r
+/* TR_CURRENT_CONFIG */\r
+"Configuración actual: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Pta. enlace o gateway predetermino",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Pta. enlace o gateway predetermino\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Renovación por defecto (min):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Hora de renovación por defecto\n",\r
+/* TR_DETECTED */\r
+"Detectado un: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Nombre de ordenador de DHCP",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Nombre de ordenador de DHCP\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Configuración del servidor DHCP",\r
+/* TR_DISABLED */\r
+"Deshabilitado",\r
+/* TR_DISABLE_ISDN */\r
+"Inhabilite RDSI",\r
+/* TR_DISK_TOO_SMALL */\r
+"Tu disco duro es demasiado pequeño.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Opciones de DNS y Gateway",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Ingrese la información de DNS y puerta de enlace. Estas serán usadas solamente si el DHCP no está habilitado en la interfase ROJA.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Su configuración no usa un adaptador ethernet para la interfase ROJA. La información de DNS y puerta de enlace para acceso telefonico a redes se configura automaticamente al momento de marcar la connección (dialup).",\r
+/* TR_DOMAINNAME */\r
+"Nombre de Dominio",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Debe asignar un nombre de Dominio.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Nombre de Dominio no puede contener espacios.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"El nombre de Dominio s o puede contener letras, números, guiones y puntos.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Sufijo del nombre de dominio",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Sufijo del nombre de dominio\n",\r
+/* TR_DONE */\r
+"Acabado",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\n¿Desea cambiar esta configuración?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Controladores y targetas asignadas",\r
+/* TR_ENABLED */\r
+"Activo",\r
+/* TR_ENABLE_ISDN */\r
+"Activar RDSI",\r
+/* TR_END_ADDRESS */\r
+"Dirección final:",\r
+/* TR_END_ADDRESS_CR */\r
+"Dirección final\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Algunas tarjetas ISDN (en particular las ISA) pueden necesitar parametros adicionales en la carga de su módulos para adjudicar IRQ o direcciones de I/O. Si tiene alguna de estas tarjetas, ingrese estos parámetros aquí. Por ejem: \"io=0x280 irq=9\". Esta información sera utilizada durante la deteccion de tarjetas.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Ingresar la contraseña de \"admin\" para %s. Este es el nombre de usuario que se usará para ingresar a las páginas web de administración de %s.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Ingresa el nombre del Dominio",\r
+/* TR_ENTER_HOSTNAME */\r
+"Ingrese el nombre de host para su máquina.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Introduce información de la dirección IP.",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Falló la detección automática de la targeta de red. Introduce el controlador y parámetos para la targeta de red.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Ingrese la contraseña para el usuario \"root\". Este es el nombre de usuario para acceder a la consola de comandos.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Ingrese la contraseña para el usuario \"setup\". Este es el nombre de usuario para ingrear al sistema y ejecutar el programa Setup.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Introduce la dirección IP para el interface %s.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Introduce el número de tléfono local (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Ingresa la URL hacia los ficheros ipcop-<version>.tgz y images/scsidrv-<version>.img. ATENCIÓN: el DNS no disponible! La direccio debe tener la forma http://X.X.X.X/<carpeta>",\r
+/* TR_ERROR */\r
+"Error",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Error al escribir la configuración.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Extrayendo los módulos...",\r
+/* TR_FAILED_TO_FIND */\r
+"Falló al buscar la url del fichero.",\r
+/* TR_FOUND_NIC */\r
+"%s fue detectado en el siguiente NIC en tu máquina: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"1TR6 Alemán",\r
+/* TR_HELPLINE */\r
+"           <Tab>/<Alt-Tab> entre elementos | <Space> para seleccionar",\r
+/* TR_HOSTNAME */\r
+"Nombre de ordenador",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"El nombre del host no puede quedar en blanco.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"El nombre de host no puede contener espacios.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"El nombre de host s o puede contener letras, números y guiones.",\r
+/* TR_INITIALISING_ISDN */\r
+"Instalando ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Introduce el controlador del CD %s en la unidad de CDROM.",\r
+/* TR_INSERT_FLOPPY */\r
+"Introduce el controlador de disco %s en la unidad de disco.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Instalanción cancelada",\r
+/* TR_INSTALLING_FILES */\r
+"Instalando los ficheros....",\r
+/* TR_INSTALLING_GRUB */\r
+"Instalando GRUB...",\r
+/* TR_INTERFACE */\r
+"%s interfaz",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Falló el arranque de la interfase.",\r
+/* TR_INVALID_FIELDS */\r
+"Los siguientes campos son erroneos:\n\n",\r
+/* TR_INVALID_IO */\r
+"El puerto de IO introducido es erroneo",\r
+/* TR_INVALID_IRQ */\r
+"El IRQ introducido es erroneo",\r
+/* TR_IP_ADDRESS_CR */\r
+"Dirección IP\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"Dirección IP:",\r
+/* TR_ISDN_CARD */\r
+"Tarjeta de RDSI",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"No se detecto ninguna tarjeta / modem ISDN. Puede que su tarjeta necesite parámetros adicionales para la carga del módulo. Algunas tarjetas ISA requieren que se indique IRQ y dirección I/O.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Selecciona la targeta ISDN",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Configuración RDSI",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Menú de configuración de ISDN",\r
+/* TR_ISDN_NOT_SETUP */\r
+"No ha sido configurado ISDN.  Algunos items no fuerón seleccionados.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"La configuración de su ISDN aún no esta completa. Selecione el elemento que desea configurar.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Selección del protocolo ISDN",\r
+/* TR_ISDN_STATUS */\r
+"Actualmente el ISDN es %s.\n\n Protocolo: %s\n Targeta: %s\n Número de teléfono local: %s\n\nSelecciona el items que desees configurar, o acepta las opciones actuales.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Mapa del teclado",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Elija el tipo de teclado que está utilizando de la lista siguiente.",\r
+/* TR_LEASED_LINE */\r
+"Line renovada",\r
+/* TR_LOADING_MODULE */\r
+"Cargando el modulo...",\r
+/* TR_LOADING_PCMCIA */\r
+"Cargando el module PCMCIA...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Buscando: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Generando el fichero de arranque de sistema",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Creando ficheros del sistema log...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Creando ficheros del sistema root...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Creando ficheros del sistema swap...",\r
+/* TR_MANUAL */\r
+"* MANUAL *",\r
+/* TR_MAX_LEASE */\r
+"Renovación máxima (min):",\r
+/* TR_MAX_LEASE_CR */\r
+"Tiempo máximo de renovación\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"No se encuentra la información de IP para el interfaz AZUL.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Perdiendo la información en el interfaz ORANGE",\r
+/* TR_MISSING_RED_IP */\r
+"Perdiendo la información IP en el interfaz RED.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"El nombre del módulo no puede quedar en blanco.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Ingrese nombre y parámetros del modulo para el dispositivo requerido.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Montando el sistema de ficheros boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Montando el sistema de ficheros log...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Montando el sistema de ficheros root...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Montando el sistema de ficheros swap...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Número de teléfono local (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Máscara de subred",\r
+/* TR_NETWORKING */\r
+"Red",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Dirección de red\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Dirección de red ",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Menu de configuración de red",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Tipo de Configuración de Red.",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Elija el tipo de configuración de red para %s. Los siguiente tipos de configuración estan disponibles para las interfases relacionadas a una ethernet. Si cambia alguna de estas configuraciones, la red se reiniciará y se deberán reasignar los controladores de red.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Máscara de red\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Las opciones de la red han fallado.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Ninguna targeta localizada.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"No hay interfaz AZUL asignado.",\r
+/* TR_NO_CDROM */\r
+"No encuentro el CD-ROM",\r
+/* TR_NO_HARDDISK */\r
+"No encuentro el DISCO DURO",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"No hay fichero ipcop en el Servidor Web.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"No hay interfases NARANJA asignadas.",\r
+/* TR_NO_RED_INTERFACE */\r
+"No hay interfase ROJA asignada.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"No se ha encontrado una imágen SCSI en el Servidor Web.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Se necesitan más tarjetas y no quedan tarjetas sin localizar. Debe autodetectar y buscar mas tarjetas, o elejir alguna de la lista.",\r
+/* TR_OK */\r
+"OK",\r
+/* TR_PARTITIONING_DISK */\r
+"Dividiendo el disco....",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"La contraseñas ingresadas no conciden.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"La contraseña no puede dejarse vacia.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"La contraseña no puede contener espacios.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Contraseña:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"El número de teléfono debe estar relleno.",\r
+/* TR_PREPARE_HARDDISK */\r
+"El programa de instalación preparará la unidad de disco %s. Primero se hará el particionado del disco y de inmediato se creará el sistema de ficheros.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Pulsa Aceptar para reiniciar.",\r
+/* TR_PRIMARY_DNS */\r
+"DNS primario:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"DNS primaria\n",\r
+/* TR_PROBE */\r
+"Prueba",\r
+/* TR_PROBE_FAILED */\r
+"Auto detectando fallos.",\r
+/* TR_PROBING_SCSI */\r
+"Prueba de dispositivos SCSI...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Problemas al fijar la password de admin %s.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Problemas al fijar la password de 'root'.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Problemas al fijar la password de 'setup'.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protocolo / País",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Arrancando la red...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Apagando la red...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Apagando una red no local...",\r
+/* TR_QUIT */\r
+"Salir",\r
+/* TR_RED_IN_USE */\r
+"ISDN (u otra conexión externa) está actualmente en uso. No debes configurar el ISDN mientras el interfaz RED esté activo.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nLa configuración ha sido completada, necesita reiniciar la red.",\r
+/* TR_RESTORE */\r
+"Restablecer",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Si tienes un disco con %s configuración de sistema, inserta el disco en la unidad y pulsa el botón Restaurar. ",\r
+/* TR_ROOT_PASSWORD */\r
+"Contraseña de usuario 'root'",\r
+/* TR_SECONDARY_DNS */\r
+"DNS secundario",\r
+/* TR_SECONDARY_DNS_CR */\r
+"DNS secundaria\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Especificó un DNS secundario sin un DNS primario.",\r
+/* TR_SECTION_MENU */\r
+"Sección menu",\r
+/* TR_SELECT */\r
+"Selecciona",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Selecciona el tipo de CDROM",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"No ha sido detectado ningún CDROM en la máquina. Selecciona cual de los siguientes controladores deseas utilizar para %s pueda acceder al CDROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Selecciona un medio para la instalación",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s puede ser instalado de diferentes modos. El más fácil es hacerlo desde el CDROM. Otro modo, es copiar los ficheros de instalación a otra máquina a la que se accederá via HTTP o FTP. En este caso deberá preparar disquetes para acceder a la red. ",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Selecciona un controlador de red.",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Elija el controlador de red para la terjeta instalada es esta máquina. Si elije MANUAL, podrá ingresar el nombre y parámetros del módulo para los controladores que así lo requieran, como es el caso de algunas tarjetas ISA.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Selecciona el interfaz que deseas volver a configurar",\r
+/* TR_SELECT_THE_ITEM */\r
+"Selecciona el item que deseas configurar.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Asignando contraseña de admin para %s ...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Asignando contraseña de \"root\"...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Asignando contraseña de \"setup\"...",\r
+/* TR_SETUP_FINISHED */\r
+"La configuración esta completa. Presione Ok para reiniciar.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"La configuración inicial no está completa. Debe asegugarse de finalizar completamente el Setup, ejecutándolo nuevamente desde la consola mediante el comando \"setup\".",\r
+/* TR_SETUP_PASSWORD */\r
+"Contraseña de usuario 'Setup'",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Configuración de parámetros adicionales para módulos.",\r
+/* TR_SINGLE_GREEN */\r
+"Su configuración actual consta de una única interfase VERDE.",\r
+/* TR_SKIP */\r
+"Saltar",\r
+/* TR_START_ADDRESS */\r
+"Dirección de inicio:",\r
+/* TR_START_ADDRESS_CR */\r
+"Dirección inicial\n",\r
+/* TR_STATIC */\r
+"Estático",\r
+/* TR_SUGGEST_IO */\r
+"(sugiere %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(sugiere %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"El módulo para ese controlador ya está cargado.",\r
+/* TR_TIMEZONE */\r
+"Zona horaria",\r
+/* TR_TIMEZONE_LONG */\r
+"Elige tu zona horaria en la que te encuentras de la siguiente lista.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Incapaz de expulsar el CDROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Incapaz de extraer los módulos.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Incapaz de encontrar más controladores.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Incapaz de encontrar una tarjeta ISDN en esta máquina. Necesitas especificar parámetros adicionales en el módulo si la tarjeta es ISA o tiene parámetros especiales.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Incapaz de inicializar ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Imposible instalar los ficheros.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Incapaz de intalar GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Incapaz de cargar el modulo controlador.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Incapaz de crear el sistema de ficheros boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Incapaz de crear el sistema de ficheros log.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Incapaz de crear el sistema de ficheros root.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Incapaz de crear el espacio swap.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Incapaz de crear el enlace simbólico /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Incapaz de crear el enlace simbólico /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Incapaz de crear el enlace simbólico /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Incapaz de crear el enlace simbólico /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Incapaz de crear el enlace simbólico /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Incapaz de crear el enlace simbólico /dev/root",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Incapaz de montar el sistema de ficheros boot.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Incapaz de montar el sistema de ficheros log.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Incapaz de montar el sistema de ficheros proc",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Incapaz de montar el sistema de ficheros root.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Incapaz de montar el sistema de ficheros swap.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Imposible abrir el fichero 'hosts'",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Incapaz de abrir el fichero de configuración",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Desabilitada la partición del disco",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"No es posible eliminar ficheros temporales.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"No es posible asignar nombre al host.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Dehabilitado el desmontaje de la unidad CDROM/floppydisk.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Incapaz de desmontar el disco duro.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Incapaz de escribir en /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Incapaz de escribir en /etc/hostname.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Incapaz de escribir en /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Incapaz de escribir en /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Incapaz de escribir en /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Incapaz de escribir en %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Incapaz de escribir en %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Incapaz de escribir en %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Hay una tarjeta de red libre del tipo:\n%s.\n\nPuede asignarla a:",\r
+/* TR_UNKNOWN */\r
+"DESCONOCIDO",\r
+/* TR_UNSET */\r
+"No fijado.",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"ADVERTENCIA",\r
+/* TR_WARNING_LONG */\r
+"Si modifica esta dirección IP mientras la usa en su sesión remota actual, la conexión con %s se perderá. Esta es una operación riesgosa, y sólo debe proceder si posee acceso físico a la máquina cuya configuración modifica.",\r
+/* TR_WELCOME */\r
+"Bienvenido al programa de intalación %s . Si seleccionas Cancelar en alguna de las siguientes pantallas se reseteará la máquina.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Su configuración actual consta de una única interfase VERDE, a la que ya se ha asignado un controlador.",\r
+}; \r
+  \r
diff --git a/langs/fa/CVS/Entries b/langs/fa/CVS/Entries
new file mode 100644 (file)
index 0000000..9030d32
--- /dev/null
@@ -0,0 +1 @@
+D/cgi-bin////
diff --git a/langs/fa/CVS/Repository b/langs/fa/CVS/Repository
new file mode 100644 (file)
index 0000000..34dd139
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/fa
diff --git a/langs/fa/CVS/Root b/langs/fa/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/fa/CVS/Tag b/langs/fa/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/fa/cgi-bin/CVS/Entries b/langs/fa/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..8837944
--- /dev/null
@@ -0,0 +1,2 @@
+/fa.pl/1.1.2.3/Mon Jan 16 12:43:33 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/fa/cgi-bin/CVS/Repository b/langs/fa/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..d0492d3
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/fa/cgi-bin
diff --git a/langs/fa/cgi-bin/CVS/Root b/langs/fa/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/fa/cgi-bin/CVS/Tag b/langs/fa/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/fa/cgi-bin/fa.pl b/langs/fa/cgi-bin/fa.pl
new file mode 100644 (file)
index 0000000..52f08f6
--- /dev/null
@@ -0,0 +1,211 @@
+# Persian (fa) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# Copyright (c) 2006 A T Khalilian, Ali Tajik \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'مرکز اعتبار نامه دیجیتالی با این نام هم اکنون موجود است', \r
+'a connection with this name already exists' => 'connection با این نام هم اکنون موجود است', \r
+'access allowed' => ' دسترسی اجازه داده شد از :', \r
+'add' => 'افزودن', \r
+'add a host' => 'افزودن هاست', \r
+'add a new rule' => 'افزودن قاعده جدید :', \r
+'add device' => 'افزودن دستگاه', \r
+'add network' => 'اضافه کردن شبکه ', \r
+'add new alias' => 'افزودن نام مستعار :', \r
+'add service' => 'افزودن سرویس', \r
+'added from dhcp lease list' => 'لیست آدرسهای  موقتی (DHCP lease) افزوده شد.', \r
+'admin user password has been changed' => 'کلمه رمز مدیریت تغییر یافت .', \r
+'administrator user password' => 'کلمه رمز مدیر', \r
+'adsl settings' => 'تنظیمات ADSL', \r
+'advanced' => 'پیشرفته', \r
+'again' => 'دوباره', \r
+'all' => 'همه', \r
+'all interfaces' => 'تمام  کارتهای واسطه (Interface)', \r
+'all updates installed' => 'تمام بسته های بروز رسانی نصب گردید', \r
+'and' => 'و', \r
+'april' => 'اوریل', \r
+'archive not exist' => 'تنظیمات آرشیو موجود نمی باشد', \r
+'are you sure' => 'آیا شما اطمینان دارید؟', \r
+'arp table entries' => 'ورود جدول  ARP :', \r
+'authentication' => 'تصدیق', \r
+'automatic' => 'خودکار', \r
+'available updates' => 'بسته های به روزرسانی  در دسترس :', \r
+'average' => 'میانگین', \r
+'back' => 'عقب', \r
+'backup' => 'پشتیبان ', \r
+'backup configuration' => 'تنظیمات پشتیبان گیری :', \r
+'blue' => 'آبی', \r
+'blue access' => 'دسترسی ناحیه آبی', \r
+'blue interface' => 'واسط ناحیه آبی', \r
+'ca certificate' => 'مراکز صدور گواهی اعتباری دیجیتال', \r
+'ca name' => 'نام مراکز گواهی اعتباری', \r
+'cancel' => 'لغو', \r
+'cant change certificates' => 'تغییر گواهینامه ها مقدور نمی باشد.', \r
+'certificate authorities' => 'گواهینامه اعتباری دیجیتال', \r
+'chain' => 'Chain', \r
+'change passwords' => 'تغییر کلمه های رمز', \r
+'city' => 'شهر', \r
+'click to disable' => 'فعال (برای غیر فعال کردن کلیک کنید )', \r
+'click to enable' => 'غیرفعال (برای فعال کردن کلیک کنید )', \r
+'connected' => 'اتصال برقرار شده', \r
+'connecting' => 'در حال برقراری اتصال...', \r
+'connection' => 'اتصال', \r
+'connection debugging' => 'اشکال زدایی اتصال', \r
+'connection status and controlc' => 'کنترل و وضعیت اتصال :', \r
+'connection tracking' => 'پیگیری اتصال IPTables :', \r
+'connection type' => 'نوع اتصال', \r
+'connections' => 'اتصال ها ', \r
+'country' => 'کشور', \r
+'cpu usage per' => 'میزان استفاده از پردازشگر در', \r
+'create' => 'ساختن', \r
+'date' => 'تاریخ', \r
+'day' => 'روز', \r
+'day after' => 'روز بعد', \r
+'day before' => 'روز قبل', \r
+'days' => 'روزها', \r
+'delete' => 'پاک کردن', \r
+'description' => 'شرح', \r
+'destination' => 'مقصد', \r
+'dhcp server' => 'DHCP Server', \r
+'disk usage' => 'میزلن مصرف دیسک :', \r
+'display' => 'نمایش', \r
+'display hostname in window title' => 'نمایش نام میزبان در بالای پنجره', \r
+'dmz' => 'DMZ', \r
+'domain' => 'دامنه', \r
+'domain name' => 'نام دامنه', \r
+'duplicate ip' => 'آدرس ای پی وارد شده تکراری می باشد.', \r
+'duplicate mac' => 'آدرس فیزیکی (مک) وارد شده تکراری می باشد.', \r
+'duplicate name' => 'نام مورد نظر قبلا استفاده شده , لطفا نام دیگری انتخاب نمائبد.', \r
+'edit' => 'ویرایش', \r
+'edit device' => 'ویرایش سرویس', \r
+'edit hosts' => 'ویرایش میزبانان', \r
+'edit network' => 'ویرایش شبکه', \r
+'edit service' => 'ویرایش سرویس', \r
+'empty' => 'خالی', \r
+'encapsulation' => 'بسته بندی', \r
+'encrypted' => 'رمزنگاری شده', \r
+'external access' => 'دسترسی خارجی', \r
+'external access configuration' => 'تنظیمات دسترسی خارجی', \r
+'february' => 'فوریه', \r
+'firewall' => 'دیوار آتش', \r
+'firmware' => 'Firmware', \r
+'free' => 'آزاد', \r
+'free memory' => 'حافظه آزاد', \r
+'invert' => 'معکوس', \r
+'ip address in use' => 'آدرس IP مورد نظر در حال استفاده می باشد.', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'تنظیمات اضافی ISDN :', \r
+'kernel version' => 'نگارش هسته مرکزی :', \r
+'lan' => 'شبکه محلی', \r
+'languagepurpose' => 'زبان مورد نظر خود را انتخاب کنید :', \r
+'line' => 'خط', \r
+'main page' => 'صفحه اصلی', \r
+'manual control and status' => 'کنترل دستی و وضعیت :', \r
+'manually' => ' به صورت دستی', \r
+'max size' => 'حداکثر اندازه به کیلو بایت :', \r
+'may' => 'may', \r
+'memory' => 'حافظه :', \r
+'modem' => 'modem', \r
+'monday' => 'دوشنبه', \r
+'month' => 'ماه', \r
+'months' => 'ماه ها', \r
+'name' => 'نام', \r
+'name is invalid' => 'نام دارای اعتبار نمی باشد', \r
+'network' => 'شبکه', \r
+'network added' => 'شبکه افزوده شد', \r
+'networks settings' => 'دیوار آتش - تنظیمات شبکه', \r
+'next address' => 'آدرس بعدی', \r
+'no' => 'نه', \r
+'orange' => 'نارنجی', \r
+'other countries' => 'کشورهای دیگر', \r
+'password' => 'کلمه رمز', \r
+'port' => 'پورت', \r
+'port forwarding configuration' => 'تنظیمات  انتقال پورت به پورت دیگر', \r
+'ports' => 'پورت ها', \r
+'priority' => 'اولویت', \r
+'protocol' => 'پروتکل', \r
+'reboot' => 'بارگذاری مجدد', \r
+'rebooting ipcop' => 'بارگذاری مجدد IPCop', \r
+'references' => 'منابع', \r
+'refresh' => 'refresh', \r
+'remove' => 'remove', \r
+'restart' => 'راه اندازی مجدد', \r
+'save' => 'ذخیره', \r
+'seconds' => 'ثانیه ها', \r
+'september' => 'سپتامبر', \r
+'service' => 'سرویس', \r
+'settings' => 'تنظیمات', \r
+'show ca certificate' => 'نمایش مراکز گواهی اعتباری دیجیتال', \r
+'show host certificate' => 'نمایش گواهی اعتبار میزبان', \r
+'size' => 'اندازه', \r
+'sort ascending' => 'مرتب کردن صعودی', \r
+'successfully refreshed updates list' => 'بازفراخوانی لیست بسته های بروزرسانی با موفقیت انجام شد', \r
+'sunday' => 'یکشنبه', \r
+'swap' => 'Swap', \r
+'system cpu' => 'پردازشگر سیستم', \r
+'system cpu usage' => 'مصرف پردازشگر سیستم', \r
+'system graphs' => 'نمودار های سیستم', \r
+'system log viewer' => ' ناظر وقایع ثبت شده سیستم', \r
+'there are updates' => 'برای سیستم شما بسته های بروزرسانی  یافت شده است , برای اطلاعات بیشتر قسمت به روزرسانی را مشاهده نمائید.', \r
+'thursday' => 'پنج شنبه', \r
+'time' => 'زمان', \r
+'time server' => 'Time Server', \r
+'title' => 'عنوان', \r
+'transfer limits' => 'محدودیتهای انتقال', \r
+'transparent on' => 'فعالیت نا محسوس ( پشت پرده )  روشن', \r
+'tuesday' => 'سه شنبه', \r
+'type' => 'نوع', \r
+'unknown' => 'نا مشخص', \r
+'update' => 'به روزرسانی', \r
+'updates' => 'بسته های به روزرسانی', \r
+'updates installed' => 'بسته های به روزرسانی نصب گردید', \r
+'upload file' => 'ارسال فایل', \r
+'use ipcop red ip' => 'آدرسهای کلاس قرمز استفاده شده در فایروال در حین ارتباط', \r
+'used' => 'مصرف شده', \r
+'used memory' => 'حافظه مصرف شده', \r
+'user cpu' => 'پردازشگر کاربر', \r
+'user cpu usage' => 'میزان  استفاده کاربر از پردازشگر', \r
+'username' => 'نام کاربری :', \r
+'users email' => 'آدرس پست الکترونیکی کاربران', \r
+'users fullname or system hostname' => 'نام کامل کاربران یا نام سیستم ', \r
+'warning messages' => 'پیغام های خطا', \r
+'web hits' => 'تعداد کل  سایتهای  نتیجه شده بر اساس معیارهای انتخابی برای ', \r
+'web proxy' => 'پروکسی وب', \r
+'web proxy configuration' => 'تنظیمات پروکسی وب', \r
+'web server' => 'سرویس دهنده وب', \r
+'website' => 'سایت وب', \r
+'wednesday' => 'چهارشنبه', \r
+'week' => 'هفته', \r
+'weeks' => 'هفته ها', \r
+'wireless' => 'بی سیم', \r
+'wireless config added' => 'تنظیمات  بی سیم افزوده شد', \r
+'wireless config changed' => 'تنظیمات بی سیم تغییر یافت', \r
+'wireless configuration' => 'تنظیمات بی سیم', \r
+'year' => 'سال', \r
+'yes' => 'بله', \r
+'your e-mail' => 'شما e-mail', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/fi/CVS/Entries b/langs/fi/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/fi/CVS/Repository b/langs/fi/CVS/Repository
new file mode 100644 (file)
index 0000000..d0bfe86
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/fi
diff --git a/langs/fi/CVS/Root b/langs/fi/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/fi/CVS/Tag b/langs/fi/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/fi/cgi-bin/CVS/Entries b/langs/fi/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..bf06e6f
--- /dev/null
@@ -0,0 +1,2 @@
+/fi.pl/1.6.2.23/Sat Nov 12 08:31:38 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/fi/cgi-bin/CVS/Repository b/langs/fi/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..1975403
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/fi/cgi-bin
diff --git a/langs/fi/cgi-bin/CVS/Root b/langs/fi/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/fi/cgi-bin/CVS/Tag b/langs/fi/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/fi/cgi-bin/fi.pl b/langs/fi/cgi-bin/fi.pl
new file mode 100644 (file)
index 0000000..ed95d85
--- /dev/null
@@ -0,0 +1,945 @@
+# Finnish  (fi) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Kai Käpölä \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Tällä nimellä on jo CA-sertifikaatti.', \r
+'a connection with this common name already exists' => 'Tätä yhteistä nimeä käyttävä yhteys on jo olemassa.', \r
+'a connection with this name already exists' => 'Samalla nimellä on jo olemassa yhteys.', \r
+'access allowed' => 'Pääsy osoitteesta:', \r
+'access refused with this oinkcode' => 'Ei pääsyä tällä OickKoodi lla', \r
+'action' => 'Toiminto', \r
+'add' => 'Lisää', \r
+'add a host' => 'Lisää isäntä:', \r
+'add a new rule' => 'Lisää uusi sääntö:', \r
+'add device' => 'Lisää laite', \r
+'add network' => 'Lisää verkko', \r
+'add new alias' => 'Lisää uusi alias:', \r
+'add new lease' => 'Lisää uusi kiinteä yhteys:', \r
+'add service' => 'Lisää palvelu', \r
+'add xtaccess' => 'Lisää ulkoinen pääsy', \r
+'added from dhcp lease list' => 'lisätty DHCP kytkentälistasta', \r
+'admin user password has been changed' => 'Admin-käyttäjän salasana on vaihdettu.', \r
+'administrator user password' => 'Admin-käyttäjän salasana:', \r
+'adsl settings' => 'ADSL-asetukset', \r
+'advanced' => 'Erikoiset', \r
+'again' => 'Uudestaan:', \r
+'alcatelusb help' => 'Käyttäksesi Speedtouch USB modeemia täytyy IPCopiin ladata sen firmware. Tiedoston voit ladata osoitteesta speedtouch.com. Pura tiedosto ja siirrä oikea tiedosto IPCopiin. Tiedosto on Rev 3:lle KQD6_3.xxx ja Rev 4:lle ZZZL_3.xxx.', \r
+'alcatelusb upload' => 'Lataa Speedtouch USB firmware', \r
+'alias ip' => 'Alias IP', \r
+'aliases' => 'Aliakset', \r
+'aliases not active' => 'Aliaksia käytetään vain mikäli PUNAISEN verkkokortin osoite on KIINTEÄ', \r
+'all' => 'Kaikki', \r
+'all interfaces' => 'Kaikki liitännät', \r
+'all updates installed' => 'Kaikki päivitykset on asennettu', \r
+'alt dialup' => 'Soittaminen', \r
+'alt home' => 'Koti', \r
+'alt information' => 'Lisätiedot', \r
+'alt logs' => 'Lokit', \r
+'alt services' => 'Palvelut', \r
+'alt system' => 'Järjestelmä', \r
+'alt vpn' => 'VPN', \r
+'and' => 'Ja', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Ota käyttöön', \r
+'april' => 'Huhtikuu', \r
+'archive not exist' => 'Asetuspakettia ei löydy', \r
+'are you sure' => 'Oletko aivan varma?', \r
+'arp table entries' => 'ARP-taulun sisältö:', \r
+'august' => 'Elokuu', \r
+'authentication' => 'Autentikointi:', \r
+'automatic' => 'Automaattinen', \r
+'available updates' => 'Saatavilla olevat päivitykset:', \r
+'average' => 'Keskimäärin', \r
+'avoid dod' => 'Älä käytä tätä asetusta "Dial on Demand":n kanssa. Käytetään yleensä IPCopin ollessa reitittimen takana. Punaisen liitännän IP-osoiteen tulee olla varatuista verkoista esim. 10/8, 172.16/12 tai 192.168/16', \r
+'back' => 'TAKAISIN', \r
+'backup' => 'Varmuuskopiot', \r
+'backup config floppy' => 'Varmuuskopioi asetukset - Levyke', \r
+'backup configuration' => 'Varmuuskopioinnin asetukset:', \r
+'backup sets' => 'Varmistetut asetukset', \r
+'backup to floppy' => 'Varmuuskopioi levykkeelle', \r
+'backupprofile' => 'Yhteyden katketessa vaihdetaan käyttämään profiilia', \r
+'bad characters in script field' => 'epäkelpo merkki skriptin kentässä', \r
+'bad characters in the telephone number field' => 'Puhelinnumerossa on virheellisiä merkkejä.', \r
+'bad destination range' => 'Kohdeporttialueen ensimmäinen porttinumero on yhtäsuuri tai suurempi kuin toinen porttinumero.', \r
+'bad ignore filter' => 'Viallinen hylkäyssuodatin:', \r
+'bad return code' => 'Apuohjelma palautti virhekoodin', \r
+'bad source range' => 'Lähdeporttialueen ensimmäinen porttinumero on yhtäsuuri tai suurempi kuin toinen porttinumero.', \r
+'beep when ppp connects or disconnects' => 'Piippaa kun yhteys avataan tai katkaistaan', \r
+'behind a proxy' => 'Välimuistin takana:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'SININEN', \r
+'blue access' => 'Sininen-yhteys', \r
+'blue interface' => 'Sininen-liitäntä', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Rikkoutunut putki', \r
+'buffered memory' => 'Puskuroitu muisti', \r
+'buffers' => 'puskurit', \r
+'bytes per second' => 'Tavua sekunnissa', \r
+'ca certificate' => 'CA-sertifikaatti', \r
+'ca name' => 'CA-nimi', \r
+'cache management' => 'Välimuistin hallinta', \r
+'cache size' => 'Välimuistin koko (Mt):', \r
+'cached' => 'välimuistissa', \r
+'cached memory' => 'Välimuistitettu muisti', \r
+'cancel' => 'Hylkää', \r
+'cannot enable both nat traversal and compression' => 'Pakkausta ja NAT-traversalia ei voi käyttää yhtäaikaa.', \r
+'cannot enable ntp without specifying primary' => 'NTP:tä ei voi käyttää ilman ensisijaista NTP-palvelimen määrittelyä.', \r
+'cannot specify secondary dns without specifying primary' => 'Määrittääksesi toissijaisen DNS-palvelimen sinun täytyy ensin määrittää ensisijainen DNS-palvelin', \r
+'cannot specify secondary ntp without specifying primary' => 'Määrittääksesi toissijaisen NTP-palvelimen sinun täytyy ensin määrittää ensisijainen NTP-palvelin', \r
+'cannot specify secondary wins without specifying primary' => 'Ensisijainen WINS-palvelin pitää määritellä ennen toissijaisen WINS-palvelimen määrittelyä.', \r
+'cant change certificates' => 'Sertifikaatteja ei pysty muokkaamaan.', \r
+'cant enable xtaccess' => 'Sääntöön liittyvä uudelleenohjaussääntö on poissa käytöstä, joten et voi käyttää ulkoista pääsyä tälle säännölle.', \r
+'cant start openssl' => 'OpenSSL ei käynnisty', \r
+'caps all' => 'KAIKKI', \r
+'capsclosed' => 'SULJETTU', \r
+'capsopen' => 'AUKI', \r
+'capswarning' => 'VAROITUS', \r
+'cert' => 'Sertifikaatti', \r
+'certificate' => 'Sertifikaatti', \r
+'certificate authorities' => 'Sertifikaattien hallinnoijat', \r
+'certificate does not have a valid ca associated with it' => 'Sertifikaatille ei löydy hyväksyttyä CA:ta.', \r
+'certificate file move failed' => 'Sertifikaattitiedoston siirto epäonnistui', \r
+'cfg restart' => 'Asetuspaketin palautuksen jälkeen kannattaa käynnistää järjestelmä uudelleen.', \r
+'chain' => 'Ketju', \r
+'change passwords' => 'Muuta salasanoja', \r
+'check vpn lr' => 'Tarkista', \r
+'city' => 'Kaupunki', \r
+'clear cache' => 'Tyhjennä välimuisti', \r
+'clenabled' => 'Salli käyttö VIHREÄstä verkkoyhteydestä', \r
+'click to disable' => 'Sallittu (klikkaa estääksesi)', \r
+'click to enable' => 'Estetty (klikkaa salliaksesi)', \r
+'clock has not been synchronized' => 'Kelloa ei ole synkronoitu.', \r
+'clock last synchronized at' => 'Kello on synkronoitu viimeksi:', \r
+'common name' => 'Yleinen nimi', \r
+'compression' => 'Pakkaus:', \r
+'computer to modem rate' => 'Tietokoneesta modeemille kerroin:', \r
+'concentrator name' => 'Yhdistäjän nimi:', \r
+'confirmation' => 'varmistus', \r
+'connect on ipcop restart' => 'Yhdistä IPCop:n uudelleenkäynnistyksessä:', \r
+'connect the modem' => 'Yhdistä modeemilla', \r
+'connect timeout' => 'Yhteyden aikakatkaisu:', \r
+'connected' => 'Yhdistetty', \r
+'connecting' => 'Yhdistää...', \r
+'connection' => 'Yhteys', \r
+'connection debugging' => 'Yhteyden debuggaus', \r
+'connection status and controlc' => 'Yhteyden tila ja ohjaus:', \r
+'connection tracking' => 'IPTaulujen yhteyden jäljitys', \r
+'connection type' => 'Yhteyden tyyppi', \r
+'connection type is invalid' => 'Yhteyden tyyppi ei kelpaa.', \r
+'connections' => 'Yhteydet', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'Tähän CA-sertifikaattiin on kytketty yhteyksiä. Sertifikaatin poistaminen poistaa myös nämä yhteydet.', \r
+'could not be opened' => 'ei voi avata', \r
+'could not connect to' => 'Ei saa yhteyttä kohteeseen', \r
+'could not connect to www ipcop org' => 'Yhteys www.ipcop.org:iin ei onnistu ', \r
+'could not create directory' => 'Hakemiston luonti ei onnistu.', \r
+'could not download latest patch list' => 'Uusimpien päivitysten listaa ei voi ladata (ei yhteyttä).', \r
+'could not download latest updates' => 'Listaa saatavilla olevista päivityksistä ei saada ladattua.', \r
+'could not download the available updates list' => 'Saatavilla olevien päivitysten listaa ei voi ladata.', \r
+'could not open available updates file' => 'Saatavilla olevien päivitysten tiedosto ei voi avata.', \r
+'could not open installed updates file' => 'Asennettujen päivitysten tiedostoa ei voi avata.', \r
+'could not open update information file' => 'Päivityksen lisätietoja-tiedostoa ei voi avata. Päivitystiedosto on viallinen.', \r
+'could not retrieve common name from certificate' => 'Sertifikaatista ei saada luettua yleistä nimeä.', \r
+'country' => 'Maa', \r
+'cpu usage per' => 'CPU:n käyttö', \r
+'create' => 'Luo', \r
+'credits' => 'Kiitokset ja kumarrukset', \r
+'cron server' => 'CRON-palvelin', \r
+'current' => 'Nykyinen', \r
+'current aliases' => 'Nykyiset aliakset:', \r
+'current dhcp leases on blue' => 'Käytössä olevat DHCP kytkennät', \r
+'current dynamic leases' => 'Nykyiset dynaamiset yhteydet:', \r
+'current fixed leases' => 'Nykyiset kiinteät yhteydet:', \r
+'current hosts' => 'Nykyiset isännät:', \r
+'current profile' => 'Nykyinen profiili:', \r
+'current rules' => 'Nykyiset säännöt:', \r
+'custom networks' => 'Käyttäjän verkot', \r
+'custom services' => 'Käyttäjän palvelut', \r
+'dat without key' => 'Salatun paketin palautus ei onnistu ilman salausavainta.', \r
+'date' => 'Päivä', \r
+'date not in logs' => 'Valittulle päivälle ei ole lokia (tai login osaa)', \r
+'day' => 'Päivä', \r
+'day after' => 'Seuraava päivä', \r
+'day before' => 'Edellinen päivä', \r
+'days' => 'päivä', \r
+'ddns hostname added' => 'Dynaaminen DNS isäntänimi lisätty', \r
+'ddns hostname modified' => 'Dynaaminen DNS isäntänimi muutettu', \r
+'ddns hostname removed' => 'Poistettu dynaaminen DNS isäntänimi', \r
+'ddns minimize updates' => 'Minimize updates: before an update, compares the dns IP for hostname "[host.]domain" against RED IP. FIXME.', \r
+'ddns noip prefix' => 'Käyttääksesi no-ip:tä ryhmätilassa, laita hostnamen eteen <b>%</b>', \r
+'december' => 'Joulukuu', \r
+'def lease time' => 'Oletuspitoaika', \r
+'default lease time' => 'Oletuspitoaika (min):', \r
+'default networks' => 'Oletusverkot', \r
+'default renewal time' => 'Oletusuusintaaika', \r
+'default services' => 'Oletuspalvelut', \r
+'delete' => 'Poista', \r
+'demon login script' => 'Demonin login skripti', \r
+'description' => 'Selitys', \r
+'dest ip and port' => 'Kohde IP:Portti', \r
+'destination' => 'Kohde', \r
+'destination ip' => 'Kohde IP-osoite', \r
+'destination ip bad' => 'Viallinen kohde IP-osoite', \r
+'destination ip or net' => 'Kohdekoneen tai verkkon IP', \r
+'destination net' => 'Kohdeverkko', \r
+'destination port' => 'Kohdeportti', \r
+'destination port numbers' => 'Kohdeportin pitää olla sallittu porttinumero tai -alue.', \r
+'destination port overlaps' => 'Kohdeporttialue peittää jo määritellyn portinalueen.', \r
+'detail level' => 'Tallennettavan tiedon määrä', \r
+'device' => 'Laite', \r
+'devices on blue' => 'Laitteet sinisessä', \r
+'dhcp advopt add' => 'DHCP optio lisää', \r
+'dhcp advopt added' => 'DHCP optio lisätty', \r
+'dhcp advopt blank value' => 'DHCP optio arvo ei voi olla tyhjä.', \r
+'dhcp advopt custom definition' => 'Oma määritys', \r
+'dhcp advopt definition' => 'Määritys', \r
+'dhcp advopt definition exists' => 'Määritys on jo olemassa. Voit muokata tai poistaa sitä.', \r
+'dhcp advopt edit' => 'DHCP optio muokkaa', \r
+'dhcp advopt help' => 'Listaa vaihtoehdot', \r
+'dhcp advopt list' => 'DHCP optio lista', \r
+'dhcp advopt modified' => 'DHCP optio muutettu', \r
+'dhcp advopt name' => 'Option nimi', \r
+'dhcp advopt removed' => 'DHCP optio poistettu', \r
+'dhcp advopt scope' => 'Option käyttö', \r
+'dhcp advopt scope global' => 'Globaali', \r
+'dhcp advopt scope help' => 'Globaali tai rajoitettu laajuus valituille liitännöille', \r
+'dhcp advopt unknown' => 'DHCP optio nimeä ei tunnisteta', \r
+'dhcp advopt value' => 'Option arvo', \r
+'dhcp allow bootp' => 'Salli bootp asiakkaat', \r
+'dhcp configuration' => 'DHCP-asetukset', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP-palvelin', \r
+'dhcp server disabled' => 'DHCP-palvelin poissa käytöstä. Pysäytetty.', \r
+'dhcp server disabled on blue interface' => 'DCP-palvelin estetty SINISESSÄ-liitännässä', \r
+'dhcp server enabled' => 'DHCP-palvelin käytössä. Uudelleenkäynnistyy.', \r
+'dhcp server enabled on blue interface' => 'DHCP-palvelu sallittu SINISESSÄ-liitännässä', \r
+'dial' => 'Yhdistä', \r
+'dial user password' => 'Soittosarjan käyttäjän salasana:', \r
+'dial user password has been changed' => 'Soittosarjan käyttäjän salasana on vaihdettu.', \r
+'dialing mode' => 'Soittotapa:', \r
+'dialup settings' => 'Soittosarja-asetukset', \r
+'disk access per' => 'Levyn käyttö', \r
+'disk usage' => 'Levyn käyttö:', \r
+'display' => 'Näytä', \r
+'display hostname in window title' => 'Näytä host-nimi ikkunan otsikossa', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'DMZ reikien asetukset', \r
+'dmz pinhole rule added' => 'DMZ reiän sääntö lisätty; säädetään DMZ reiät uudelleen', \r
+'dmz pinhole rule removed' => 'DMZ reiän sääntö poistettu; säädetään DMZ reiät uudelleen', \r
+'dmzpinholes for same net not necessary' => 'DMZ-aukot samaan verkkoon eivät ole tarpeen', \r
+'dns check failed' => 'DNS tarkistus epäonnistui', \r
+'dns proxy server' => 'DNS-välimuistipalvelin', \r
+'do not log this port list' => 'Hylkää tämä portti ennen tietojen kirjoittamista lokiin (pienentää lokin kokoa)', \r
+'dod' => 'Soita tarvittaessa', \r
+'dod for dns' => 'Soita tarvittaessa DNS:n takia:', \r
+'dod not compatible with ddns' => 'Automaattista yhteyden avausta ei voi käyttää dynaamisen DNS-palvelun  kanssa', \r
+'dod waiting' => 'Dial on Demand tyhjäkäynnillä', \r
+'domain' => 'Toimialue', \r
+'domain name' => 'Domain-nimi', \r
+'domain name suffix' => 'Toimialueen nimen pääte:', \r
+'domain not set' => 'Toimialue asettamatta.', \r
+'downlink speed' => 'Yhteyden nopeus (downlink) (kbit/sek)', \r
+'download ca certificate' => 'Lataa CA-sertifikaatti', \r
+'download certificate' => 'Lataa sertifikaatti', \r
+'download host certificate' => 'Lataa Host-sertifikaatti', \r
+'download new ruleset' => 'Lataa uusi säännöstö', \r
+'download pkcs12 file' => 'Lataa PKCS12-tiedosto', \r
+'download root certificate' => 'Lataa juuri-sertifikaatti', \r
+'dpd action' => 'Kuolleen asiakkaan havannointi toimi', \r
+'driver' => 'Ajuri:', \r
+'dst port' => 'Kohdeportti', \r
+'dstprt range overlaps' => 'Kohdeporttialue peittää jo määritellyn portin.', \r
+'dstprt within existing' => 'Kohdeportti on jo määritellyllä porttialueella.', \r
+'duplicate ip' => 'Syötetty IP-osoite on jo määritelty.', \r
+'duplicate ip bold' => 'Kaksois IP:t on <b>lihavoitu</b>', \r
+'duplicate mac' => 'Syötit kaksi samaa MAC-osoitetta', \r
+'duplicate name' => 'Valitsemasi nimi on jo käytössä. Keksi toinen nimi.', \r
+'dyn dns source choice' => 'Dynaaminen DNS-palvelu vastaanottaa IPCopin osoitteen osoittesta:', \r
+'dynamic dns' => 'Dynaaminen DNS', \r
+'dynamic dns client' => 'Dynaaminen DNS-asiakas', \r
+'e-mail address too long' => 'Sähköpostiosoite on liian pitkä. Maksimi pituus on 40 merkkiä.', \r
+'eciadsl help' => 'Käyttääksesi ECI ADSL-modeemia täytyy sen synch.bin ladata palomuuri-palvelimelle. Lataa tiedosto ECI  ADSL www-sivulta ja lataa sen jälkeen <B>synch.bin</B> käyttäen alla olevaa lomaketta.', \r
+'eciadsl upload' => 'Lataa ECI ADSL synch.bin-tiedosto', \r
+'edit' => 'Muokkaa', \r
+'edit a rule' => 'Muokkaa olemassa olevaa sääntöä:', \r
+'edit advanced settings when done' => 'Muokkaa lisäasetuksia.', \r
+'edit an existing alias' => 'Muokkaa olemassa olevaa aliasta', \r
+'edit an existing host' => 'Muokkaa isäntää', \r
+'edit an existing lease' => 'Muokkaa olemassa olevaa yhteyttä', \r
+'edit device' => 'Muokkaa laitetta', \r
+'edit hosts' => 'Muokkaa hosteja', \r
+'edit network' => 'Muokkaa verkkoa', \r
+'edit service' => 'Muokkaa palveluita', \r
+'empty' => 'Tyhjä', \r
+'enable ignore filter' => 'Käytä erottelusuodatinta:', \r
+'enable javascript' => 'Salli Javascript', \r
+'enable wildcards' => 'Salli jokerimerkit:', \r
+'enabled' => 'Käytössä:', \r
+'enabled on' => 'Salli verkkoyhteydellä', \r
+'enabledtitle' => 'Käytössä', \r
+'encapsulation' => 'Kapselointi', \r
+'encrypted' => 'Salattu', \r
+'end address' => 'Loppuosoite:', \r
+'err bk 1' => 'Paketin luonnissa tapahtui virhe', \r
+'err bk 2 key' => 'Avaintiedoston luonnissa tapahtui virhe', \r
+'err bk 3 tar' => 'Lisättäessä tiedostoja pakettiin tapahtui virhe', \r
+'err bk 4 gz' => 'Paketin pakkaamisessa tapahtui virhe', \r
+'err bk 5 encrypt' => 'Paketin salaamisessa tapahtui virhe', \r
+'err rs 1' => 'Paketin palauttamisessa tapahtui virhe', \r
+'err rs 6 decrypt' => 'Paketin salauksenpurussa tapahtui virhe', \r
+'err rs 7 untartst' => 'Paketin salauksen purun jälkeen pakettii havaittiin vialliseksi', \r
+'err rs 8 untar' => 'Paketin purkaminen tarrilla ei onnistunut', \r
+'error messages' => 'Virhesanomat:', \r
+'esp encryption' => 'ESP-salaus:', \r
+'esp grouptype' => 'ESP-ryhmätyyppi:', \r
+'esp integrity' => 'ESP Integrity:', \r
+'esp keylife' => 'ESP keylife:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP keylife:n arvon pitää olla 1..24 tuntia.', \r
+'every' => 'Joka', \r
+'excluding buffers and cache' => '-/+ puskuri-/välimuisti', \r
+'expected' => 'Odotettu', \r
+'expires' => 'Vanhenee', \r
+'export' => 'Vie', \r
+'external access' => 'Ulkoinen käyttö', \r
+'external access configuration' => 'Ulkoisen pääsyn asetykset', \r
+'external access rule added' => 'Lisätty ulkoisen pääsyn sääntö; uudelleenkäynnistetään pääsyn ohjaus', \r
+'external access rule removed' => 'Poistettu ulkoisen pääsyn sääntö; uudelleenkäynnistetään pääsyn ohjaus', \r
+'external aliases configuration' => 'Ulkoisen pääsyn asetukset', \r
+'february' => 'Helmikuu', \r
+'fetch ip from' => 'Arvataan oikea julkinen IP-osoite ulkoisen palvelimen avulla', \r
+'filename' => 'Tiedosto', \r
+'filesystem full' => 'Tiedostojärjestelmä on täynnä', \r
+'firewall' => 'Palomuuri', \r
+'firewall hits' => 'Osumia palomuuriin', \r
+'firewall log' => 'Palomuuriloki', \r
+'firewall log viewer' => 'Palomuurin lokien katselu', \r
+'firewall logs' => 'Palomuurin lokit', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Lataa firmware/ajurit', \r
+'fixed ip lease added' => 'Kiinteä IP-varaus lisätty', \r
+'fixed ip lease modified' => 'Fixed IP lease modified', \r
+'fixed ip lease removed' => 'Kiinteä IP-varaus poistettu', \r
+'force update' => 'Päivitä nyt', \r
+'forwarding rule added' => 'Ohjaussääntö lisätty; käynnistetään ohjaaja uudelleen', \r
+'forwarding rule removed' => 'Ohjaussääntö poistettu; käynnistetään ohjaaja uudelleen', \r
+'forwarding rule updated' => 'Ohjaussääntö päivitetty; käynnistetään ohjaaja uudelleen', \r
+'free' => 'Vapaana', \r
+'free memory' => 'Vapaa muisti', \r
+'free swap' => 'Vapaa virtuaalimuisti', \r
+'friday' => 'Perjantai', \r
+'fritzdsl help' => 'Käyttääksesi  Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modeemia sinun  täytyy ladata tarvittava paketti IPCop-palvelimelle. Lataa tarvittava paketti IPCopin www-sivuilta ja lataa <b>fcdsl-(versio).tgz</b> IPCop-palvelimelle alla olevalla lomakkeella.', \r
+'fritzdsl upload' => 'Lataa Fritz!DSL-ajuri', \r
+'from' => 'from-FIXME', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Silta', \r
+'gateway ip' => 'Sillan IP', \r
+'generate a certificate' => 'Luo sertifikaatti:', \r
+'generate root/host certificates' => 'Luo Juuri-/Laitesertifikaatit', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Juuri- ja laitesertifikaattien luominen saattaa kestää kauan. Malta mielesi ja odota.', \r
+'global settings' => 'Yleiset asetukset', \r
+'graph' => 'käyrä', \r
+'graph per' => 'Käyrä per', \r
+'green' => 'VIHREÄ', \r
+'green interface' => 'Vihreä-liitäntä', \r
+'gui settings' => 'Käyttöliittymä', \r
+'gz with key' => 'Ainoastaan salattu paketti voidaan palauttaa tähän palvelimeen.', \r
+'hangup' => 'Katkaise', \r
+'hangup string' => 'Yhteyden katkaisu:', \r
+'high' => 'Korkea', \r
+'high memory usage' => 'Ylämuistin käyttö', \r
+'holdoff' => 'Pitoaika (sekuntia)', \r
+'host' => 'Isäntä', \r
+'host certificate' => 'Laitesertifikaatti', \r
+'host configuration' => 'Host-asetukset', \r
+'host ip' => 'Isännän IP osoite', \r
+'host to net vpn' => 'Host-to-Net Virtual Private Network (RoadWarrior)', \r
+'hostname' => 'Isäntänimi', \r
+'hostname and domain already in use' => 'Isäntänimi ja toimialue ovat jo käytössä.', \r
+'hostname cant be empty' => 'Laitenimi (hostname) ei voi olla tyhjä.', \r
+'hostname not set' => 'Isäntänimi asettamatta.', \r
+'hosts config added' => 'hosts config added', \r
+'hosts config changed' => 'hosts config changed', \r
+'hours' => 'tunti', \r
+'hours2' => 'tuntia', \r
+'ibod for dual isdn only' => 'iBOD:a voi käyttää vain kaksikanavaisella ISDN-yhteydellä.', \r
+'icmp selected but no type' => 'Protokollalle on valittu käyttöön ICMP, mutta sen tyyppi on valitsematta.', \r
+'icmp type' => 'ICMP-tyyppi', \r
+'id' => 'ID', \r
+'idle' => 'Tyhjäkäynti', \r
+'idle cpu' => 'CPU tyhjäkäynnillä', \r
+'idle cpu usage' => 'CPU:n käyttö tyhjäkäynnillä', \r
+'idle timeout' => 'Aikakatkaisu (min.; 0 = ei käytössä)', \r
+'idle timeout not set' => 'Aikakatkaisu asettamatta.', \r
+'ids log viewer' => 'IDS-lokin katselu', \r
+'ids logs' => 'IDS-lokit', \r
+'ids rules license' => 'Käyttäksesi Sourcefile VRT Certified Rules:a sinun täytyy rekisteröityä', \r
+'ids rules license2' => 'Kuittaa lisenssi, vastaanota salasana sähköpostilla ja muodosta yhteys sivustoon. Mene', \r
+'ids rules license3' => 'klikkaa Get Code-painiketta alareunassa ja kopioi 40 merkin OinkCode alla olevaan kentään.', \r
+'ids rules update' => 'Snortin säännöt on päivitetty', \r
+'iface' => 'Liitäntä', \r
+'ignore filter' => 'Hylkää-suodatin:', \r
+'ike encryption' => 'IKE salaus:', \r
+'ike grouptype' => 'IKE Integrity:', \r
+'ike integrity' => 'IKE Integrity:', \r
+'ike lifetime' => 'IKE Lifetime:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE lifetime:n arvo pitää olla 1..8 tuntia.', \r
+'import' => 'Tuo', \r
+'in' => 'Sisään', \r
+'incoming traffic in bytes per second' => 'Sisään tuleva liikenne tavua sekunnissa', \r
+'info' => 'Lisätiedot', \r
+'init string' => 'Alustaminen:', \r
+'insert floppy' => 'Aseta alustettu levyke levyasemaan ja klikkaa <i>Varmuuskopioi levykkeelle</i> varmuuskopioidaksesi asetukset. Tarkista listaus huolellisesti varmistaaksesi varmuuskopioinnin onnistuminen.<p>', \r
+'install new update' => 'Asenna uusi päivitys:', \r
+'installed' => 'Asennettu', \r
+'installed updates' => 'Asennetut päivitykset:', \r
+'instant update' => 'PikaPäivitys', \r
+'interface' => 'Liitäntä', \r
+'interfaces' => 'Verkkoliitännät:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Tunkeilijan Havainnointi', \r
+'intrusion detection system' => 'Tunkeutumisen Havainnointijärjestelmä', \r
+'intrusion detection system log viewer' => 'Tunkelijan Havainnointijärjestelmän lokit', \r
+'intrusion detection system2' => 'Tunkeutumisen Havainnointijärjestelmä:', \r
+'invalid broadcast ip' => 'Broadcast IP-osoite ei kelpaa', \r
+'invalid cache size' => 'Välimuistin koko ei kelpaa.', \r
+'invalid characters found in pre-shared key' => 'Syötetty arvo ei kelpaa: pre-shared key.', \r
+'invalid date entered' => 'Syötetty päiväys ei kelpaa.', \r
+'invalid default lease time' => 'Varausaika ei kelpaa.', \r
+'invalid domain name' => 'Toimialueen nimi ei kelpaa.', \r
+'invalid downlink speed' => 'Downlink-nopeus ei kelpaa.', \r
+'invalid end address' => 'Loppuosoite ei kelpaa.', \r
+'invalid fixed ip address' => 'Kiinteä IP-osoite ei kelpaa', \r
+'invalid fixed mac address' => 'MAC-osoite ei kelpaa', \r
+'invalid hostname' => 'Isäntänimi ei kelpaa.', \r
+'invalid input' => 'Syöte ei kelpaa.', \r
+'invalid input for authentication method' => 'Syötetty arvo ei kelpaa: authentication method', \r
+'invalid input for city' => 'Maa ei kelpaa.', \r
+'invalid input for country' => 'Maa ei kelpaa.', \r
+'invalid input for department' => 'Osasto ei kelpaa.', \r
+'invalid input for e-mail address' => 'Sähköpostiosoite ei kelpaa.', \r
+'invalid input for esp keylife' => 'Syötetty arvo ei kelpaa: ESP keylife', \r
+'invalid input for hostname' => 'Syötetty arvo ei kelpaa: hostname', \r
+'invalid input for ike lifetime' => 'Syötetty arvo ei kelpaa: IKE lifetime', \r
+'invalid input for name' => 'Syötetty arvo ei kelpaa: käyttäjän nimi tai laitenimi (hostname)', \r
+'invalid input for oink code' => 'Syötetty OinkCode ei kelpaa', \r
+'invalid input for organization' => 'Syötetty arvo ei kelpaa: organisaatio', \r
+'invalid input for remote host/ip' => 'Syötetty arvo ei kelpaa: remote host/ip', \r
+'invalid input for state or province' => 'Syötetty arvo ei kelpaa: kunta tai lääni', \r
+'invalid ip' => 'IP-osoite ei kelpaa.', \r
+'invalid keep time' => 'Säilytysajan tullee olla numero', \r
+'invalid key' => 'Avain ei kelpaa.', \r
+'invalid loaded file' => 'Ladattu tiedosto ei kelpaa', \r
+'invalid logserver address' => 'Viallinen lokipalvelimen osoite', \r
+'invalid max lease time' => 'Maksimi varausaika ei kelpaa.', \r
+'invalid maximum incoming size' => 'Tulevan maksimikoko ei kelpaa.', \r
+'invalid maximum object size' => 'Objektin maksimikoko ei kelpaa.', \r
+'invalid maximum outgoing size' => 'Objektin maksimikoko ei kelpaa.', \r
+'invalid md5sum' => 'MD5-tarkistussumma ei täsmää.', \r
+'invalid minimum object size' => 'Objektin minimikoko ei kelpaa.', \r
+'invalid netmask' => 'Aliverkonpeite ei kelpaa', \r
+'invalid port' => 'Syötetty porttinumero ei kelpaa.', \r
+'invalid port list' => 'Porttilistan syntaksi: portti[,portti]... jossa portti on porttinumero tiedostosta /etc/services', \r
+'invalid primary dns' => 'Ensisijainen DNS-osoite ei kelpaa', \r
+'invalid primary ntp' => 'Ensisijaisen NTP-palvelimen osoite ei kelpaa', \r
+'invalid secondary dns' => 'Toissijainen DNS-osoite ei kelpaa.', \r
+'invalid secondary ntp' => 'Toissijaiset NTP-palvelimen osoite ei kelpaa', \r
+'invalid start address' => 'Alkuosoite ei kelpaa.', \r
+'invalid time entered' => 'Syötetty aika ei kelpaa.', \r
+'invalid time period' => 'Aikajakso ei kelpaa', \r
+'invalid uplink speed' => 'Uplinkin nopeus ei kelpaa.', \r
+'invalid upstream proxy username or password setting' => 'Ulkoisen välimuistin salasana tai käyttäjätunnus ei kelpaa.', \r
+'invalid vpi vpci' => 'VPI/VPCI-asetus ei kelpaa', \r
+'invalid wins address' => 'WINS-palvelimen osoite ei kelpaa.', \r
+'invert' => 'Käänteiseksi', \r
+'ip address' => 'IP-osoite', \r
+'ip address in use' => 'IP-osoite on jo käytössä', \r
+'ip alias added' => 'External IP alias added', \r
+'ip alias changed' => 'External IP alias changed', \r
+'ip alias removed' => 'External IP alias removed', \r
+'ip info' => 'IP-osoitteen tiedot', \r
+'ipcop has now rebooted' => 'IPCop on uudelleen käynnistetty.', \r
+'ipcop has now shutdown' => 'IPCop on sammutettu.', \r
+'ipcop side' => 'IPCop puoli:', \r
+'ipcop side is invalid' => 'IPCop puoli ei kelpaa.', \r
+'ipcops hostname' => 'IPcop:n laitenimi (hostname)', \r
+'ipinfo' => 'IP-osoitteen tiedot:', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'ISDN:n lisäasetukset:', \r
+'isdn1' => 'Yksikanavainen ISDN-yhteys', \r
+'isdn2' => 'Kaksikanavainen ISDN-yhteys', \r
+'january' => 'Tammikuu', \r
+'javascript menu error1' => 'Mikäli alasvetovalikot eivät toimi poista Javascript käytöstä', \r
+'javascript menu error2' => 'sivu.', \r
+'july' => 'Heinäkuu', \r
+'june' => 'Kesäkuu', \r
+'kernel' => 'Kerneli', \r
+'kernel logging server' => 'Kernelin lokipalvelin', \r
+'kernel version' => 'Kernelin versio:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Valitse kieli jota haluat käyttää:', \r
+'lease expires' => 'Varaus päättyy', \r
+'legend' => 'Selitys', \r
+'line' => 'Linja', \r
+'loaded modules' => 'Ladatut modulit:', \r
+'local ntp server specified but not enabled' => 'Paikallinen NTP-palvelin on määritelty, mutta ei käytössä', \r
+'local subnet' => 'Paikallinen verkkomaski:', \r
+'local subnet is invalid' => 'Paikallinen verkkomaski ei kelpaa.', \r
+'local vpn hostname/ip' => 'Paikallinen VPN-isäntä/IP-osoite', \r
+'log' => 'Loki:', \r
+'log enabled' => 'Loki käytössä', \r
+'log lines per page' => 'Rivejä sivulla', \r
+'log server address' => 'Etäloki-palvelin', \r
+'log settings' => 'Lokiasetukset', \r
+'log summaries' => 'Lokin yhteenvedot', \r
+'log summary' => 'Lokin yhteenveto', \r
+'log viewer' => 'Lokin katselu', \r
+'log viewing options' => 'Lokin katseluasetukset', \r
+'logging server' => 'Loki-palvelin', \r
+'loginlogout' => 'Kirjaudu sisään/ulos', \r
+'lookup failed' => 'Nimen selvitys ei onnistunut', \r
+'low' => 'Alhainen', \r
+'ls_dhcpd' => 'DHCP-palvelin:', \r
+'ls_disk space' => 'Levytila:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP-palvelin:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kerneli ja palomuuri:', \r
+'ls_modprobe' => 'Modulin lataaja:', \r
+'ls_pam_unix' => 'Paikallinen käyttäjä kirjautunut:', \r
+'ls_sshd' => 'Etäkäyttäjien kirjautumisia:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'MAC-osoite', \r
+'mac address in use' => 'MAC-osoite on jo käytössä', \r
+'main page' => 'Pääsivu', \r
+'manual' => 'Käsin', \r
+'manual control and status' => 'Käsiohjaus ja tila:', \r
+'manually' => 'Käsin', \r
+'march' => 'Maaliskuu', \r
+'marked' => 'Merkitty', \r
+'max incoming size' => 'Tulevan objektin maksimikoko (Kt):', \r
+'max lease time' => 'Maksimi varausaika (min):', \r
+'max outgoing size' => 'Lähtevän objektin maksimikoko (Kt):', \r
+'max renewal time' => 'Maksimi uusinta-aika', \r
+'max retries not set' => 'Uudelleenyritysten maksimimäärää ei ole asetettu.', \r
+'max size' => 'Objektin maksimi koko (Kt):', \r
+'maximal' => 'Maksimi', \r
+'maximum retries' => 'Uudelleenyritysten maksimimäärä:', \r
+'may' => 'Toukokuu', \r
+'medium' => 'Normaali', \r
+'memory' => 'Muisti:', \r
+'memory usage per' => 'Muistin käyttö', \r
+'method' => 'Metodi:', \r
+'min size' => 'Objektin minimikoko (Kt):', \r
+'minutes' => 'minuuttia', \r
+'missing dat' => 'Salattua pakettia ei löydy', \r
+'missing gz' => 'Salaamatonta pakettia ei löydy', \r
+'modem' => 'Modeemi', \r
+'modem configuration' => 'Modeemin asetukset', \r
+'modem on com1' => 'Modeemi COM1-portissa', \r
+'modem on com2' => 'Modeemi COM2-portissa', \r
+'modem on com3' => 'Modeemi COM3-portissa', \r
+'modem on com4' => 'Modeemi COM4-portissa', \r
+'modem on com5' => 'Modeemi COM5-portissa', \r
+'modem settings have errors' => 'Modeemin asetuksissa on virheitä', \r
+'modem speaker on' => 'Modeemin kaiutin käytössä:', \r
+'modulation' => 'Modulointi', \r
+'monday' => 'Maanatai', \r
+'month' => 'Kuukausi', \r
+'months' => 'kuukausi', \r
+'mounted on' => 'Yhdistetty', \r
+'name' => 'Nimi', \r
+'name is invalid' => 'Nimi ei kelpaa', \r
+'name must only contain characters' => 'Nimessä saa olla vain kirjaimia.', \r
+'name too long' => 'Käyttäjän nimi tai laitenimi (hostname) on liian pitkä', \r
+'nat-traversal' => 'Nat Traversal:', \r
+'net' => 'Verkko', \r
+'net to net vpn' => 'Net-to-Net Virtual Private Network', \r
+'netmask' => 'Aliverkonpeite', \r
+'network' => 'Verkko', \r
+'network added' => 'Käyttäjän verkko lisätty', \r
+'network configuration' => 'Verkkoasetukset', \r
+'network removed' => 'Käyttäjän verkko poistettu', \r
+'network status information' => 'Verkon tilanäyttö', \r
+'network time' => 'Käytä NTP-palvelinta:', \r
+'network time from' => 'Hae kellonaika NTP-palvelimelta', \r
+'network traffic graphs' => 'Verkkoliikenteen kuormitus', \r
+'network updated' => 'Käyttäjän verkko päivitetty', \r
+'networks settings' => 'Palomuuri - Verkkoasetukset', \r
+'new optionsfw later' => 'Muutokset otetaan käyttöön seuraavan uudelleenkäynnistyksen yhteydessä', \r
+'new optionsfw must boot' => 'IPCop täytyy käynnistää uudelleen', \r
+'newer' => 'Uudemmat', \r
+'next address' => 'Seuraava osoite', \r
+'no' => 'Ei', \r
+'no alcatelusb firmware' => 'Alcatel USB:n firmwarea ei löydy. Lataa firmware.', \r
+'no cfg upload' => 'Tietoa ei ladattu', \r
+'no dhcp lease' => 'Punainen verkkoliityntä ei saa yhteyttä/osoitetta DHCP-palvelimeen', \r
+'no eciadsl synch.bin file' => 'ECI ADSL:n synch.bin-tiedostoa ei ole. Lataa tiedosto.', \r
+'no fritzdsl driver' => 'Fritz!DSL-ajuria ei löydy. Sinun täytyy ladata se.', \r
+'no information available' => 'Tietoja ei saatavilla', \r
+'no modem selected' => 'Modeemia ei ole valittu', \r
+'no set selected' => 'Valintaryhmää ei ole valittu', \r
+'no time limit' => 'rajoittamaton aika', \r
+'none found' => 'yhtään ei löytynyt', \r
+'nonetworkname' => 'Verkkonimi asettamatta', \r
+'noservicename' => 'Palvelun nimi syöttämättä', \r
+'not a valid ca certificate' => 'CA-sertifikaatti ei kelpaa.', \r
+'not enough disk space' => 'Levytila lopussa', \r
+'not present' => '<B>Ei</B> käytettävissä', \r
+'not running' => 'ei käynnissä', \r
+'november' => 'Marraskuu', \r
+'ntp configuration' => 'NTP-asetukset', \r
+'ntp must be enabled to have clients' => 'NTP-pitää sallia voidaksesi hyödyntää palvelua muilla palvelimilla.', \r
+'ntp server' => 'NTP-palvelin', \r
+'ntp syncro disabled' => 'NTP-synkronointi poissa käytöstä', \r
+'ntp syncro enabled' => 'NTP-synkronointi käytössä', \r
+'ntpd restarted' => 'NTPD uudelleenkäynnistetty', \r
+'number' => 'Numero:', \r
+'october' => 'Lokakuu', \r
+'older' => 'Vanhemmat', \r
+'online help en' => 'Online Help (englanniksi)', \r
+'only digits allowed in holdoff field' => 'Pitoaika-kenttään saa kirjoittaa vain numeroita', \r
+'only digits allowed in max retries field' => 'Uudelleenyritysten maks. kenttään saa syöttäää vain numeroita.', \r
+'only digits allowed in the idle timeout' => 'Aikakatkaisu-kenttään saa syöttäää vain numeroita.', \r
+'only red' => 'Vain PUNAINEN', \r
+'open to all' => 'Pakota ulkoinen pääsy KAIKILLE', \r
+'openssl produced an error' => 'OpenSSL ei aiheutti virheen', \r
+'options' => 'Asetukset', \r
+'options fw' => 'Palomuurin asetukset', \r
+'optionsfw portlist hint' => 'Porttilistan pitää olla pilkulla eroteltu (esim. 127,128). Maksimissaan 15 porttia per protokolla.', \r
+'optionsfw warning' => 'Muuttaminen vaatii palomuurin uudelleenkäynnistyksen', \r
+'orange' => 'ORANSSI', \r
+'organization cant be empty' => 'Organisaatio-kenttä ei voi olla tyhjä.', \r
+'organization name' => 'Organisaaatio', \r
+'organization too long' => 'Organisaation nimi on liian pitkä. Maksimipituus on 60 merkkiä.', \r
+'original' => 'Alkuperäinen', \r
+'other countries' => 'Muut maat', \r
+'other login script' => 'Muu kirjautumis skripti', \r
+'out' => 'Ulos', \r
+'outgoing traffic in bytes per second' => 'Lähtevä liikenne tavua sekunnissa', \r
+'package failed to install' => 'Paketin asennus epäonnistui.', \r
+'pap or chap' => 'PAP tai CHAP', \r
+'password' => 'Salasana:', \r
+'password contains illegal characters' => 'Salasanassa on kiellettyjä merkkejä.', \r
+'password not set' => 'Salasanaa ei ole asetettu.', \r
+'password too short' => 'Salasana on liian lyhyt.', \r
+'passwords do not match' => 'Salasanat ovat erilaisia.', \r
+'passwords must be at least 6 characters in length' => 'Salasanan pitää olla vähintään 6 merkkiä pitkä.', \r
+'percentage' => 'Prosenttia', \r
+'persistent' => 'Pysyvä', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Pheas1 ryhmä', \r
+'phonebook entry' => 'Puhelinluettelomerkintä:', \r
+'ping disabled' => 'Älä vastaa pingiini', \r
+'pkcs12 file password' => 'PKCS12 tiedoston salasana', \r
+'port' => 'Portti', \r
+'port forwarding configuration' => 'Porttien edelleenohjauksen asetukset', \r
+'ports' => 'Portit', \r
+'pots' => 'Puhelinlinja', \r
+'ppp setup' => 'PPP asennus', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'PPPoE lisäasetukset:', \r
+'pptp settings' => 'PPTP:n lisäasetukset:', \r
+'pre-shared key is too short' => 'Esi-jaettu avain on liian lyhyt.', \r
+'present' => 'Nykyinen', \r
+'primary dns' => 'Ensisijainen DNS-palvelin:', \r
+'primary ntp server' => 'Ensisijainen NTP-palvelin', \r
+'primary wins server address' => 'Ensisijainen WINS-palvelin', \r
+'priority' => 'Prioriteetti', \r
+'profile' => 'Profiili', \r
+'profile deleted' => 'Profiili poistettu:', \r
+'profile has errors' => 'Profiilissa on virheitä', \r
+'profile made current' => 'Käyttöönotettu profiili:', \r
+'profile name' => 'Profiilin nimi:', \r
+'profile name not given' => 'Profiilin nimi puuttuu.', \r
+'profile saved' => 'Profile tallennettu:', \r
+'profiles' => 'Profiilit:', \r
+'proto' => 'Prot.', \r
+'protocol' => 'Protokolla', \r
+'proxy' => 'Välimuisti', \r
+'proxy access graphs' => 'WWW-välimuistin kuormitus', \r
+'proxy log viewer' => 'Välimuistin lokin katselu', \r
+'proxy logs' => 'Välimuistin lokit', \r
+'proxy port' => 'Välimuistin portti', \r
+'psk' => 'PSK', \r
+'pulse' => 'Pulssi', \r
+'pulse dial' => 'Pulssivalinta käyttöön:', \r
+'ram' => 'RAM-muisti', \r
+'read sectors' => 'Sektoreita luettu', \r
+'reboot' => 'Käynnistä uudelleen', \r
+'reboot schedule' => 'Ajasta IPCop:n uudelleenkäynnistykset', \r
+'rebooting' => 'Uudelleenkäynnistyy', \r
+'rebooting ipcop' => 'IPCop uudelleenkäynnistyy', \r
+'reconnection' => 'Uudelleen yhdistys', \r
+'references' => 'Viittaukset:', \r
+'refresh' => 'Päivitä', \r
+'refresh index page while connected' => 'Päivitä index.cgi-sivua yhteydessä ollessa', \r
+'refresh update list' => 'Päivitä päivitysten lista', \r
+'registered user rules' => 'Sourcefire VRT säännöt rekisteröityneille käyttäjille', \r
+'released' => 'Vapautettu', \r
+'remark' => 'Lisätiedot', \r
+'remark title' => 'Lisätietoja:', \r
+'remote access' => 'Ulkoinen pääsy', \r
+'remote host/ip' => 'Etäisäntä/IP-osoite', \r
+'remote logging' => 'Etälokit', \r
+'remote subnet' => 'Etäverkkomaski:', \r
+'remote subnet is invalid' => 'Etäverkkomaski ei kelpaa.', \r
+'remove' => 'Poista', \r
+'remove ca certificate' => 'Poista CA-sertifikaatti', \r
+'reserved dst port' => 'Kohdeportti on varattu vain IPCop:n käyttöön:', \r
+'reserved src port' => 'Lähdeportti on varattu vain IPCop:n käyttöön:', \r
+'reset' => 'Nollaa', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'VPN-asetuksian nollaaminen poistaa myös juurisertifikaatin, isnännän sertifikaatin ja kaikki näihin sertifikaatteihin luottavat yhteydet.', \r
+'restart' => 'Käynnistä uudelleen', \r
+'restore' => 'Palauta', \r
+'restore defaults' => 'Palauta oletusasetukset', \r
+'restore hardware settings' => 'Palauta laitteistoasetukset', \r
+'reverse sort' => 'Uusimat ensin', \r
+'root certificate' => 'Juurisertifikaatti', \r
+'root path' => 'Root-polku', \r
+'router ip' => 'Reitittimen IP-osoite:', \r
+'routing table entries' => 'Reititystaulu:', \r
+'rsvd dst port overlap' => 'Kohdeporttialue peittää IPCop:lle varatun portin:', \r
+'rsvd src port overlap' => 'Lähdeporttialue peittää IPCop:lle varatun portin:', \r
+'rules already up to date' => 'Säännöt ovat jo ajantasalla', \r
+'running' => 'KÄYNNISSÄ', \r
+'saturday' => 'Lauantai', \r
+'save' => 'Tallenna', \r
+'save error' => 'Asetusten tallentaminen pakettiin ei onnistu', \r
+'script name' => 'Skriptin nimi:', \r
+'secondary dns' => 'Toissijainen DNS-palvelin:', \r
+'secondary ntp server' => 'Toissijainen NTP-palvelin', \r
+'secondary wins server address' => 'Toissijainen WINS-palvelin', \r
+'seconds' => 'Sekuntia', \r
+'section' => 'Osa', \r
+'sectors read from disk per second' => 'Levyltä luettuja sektoreita sekunnissa', \r
+'sectors written to disk per second' => 'Levylle kirjoitettuja sektoreita sekunnissa', \r
+'secure shell server' => 'SSH-palvelin', \r
+'select' => 'Valitse', \r
+'select dest net' => 'Valitse kohdeverkko.', \r
+'select source net' => 'Valitse lähdeverkko. Ellei sinulla ole oranssi- tai sininen-yhteys et tarvitse DMZ-aukkoja.', \r
+'send cr' => 'ISP vaatii rivinpalautus-merkin:', \r
+'september' => 'Syyskuu', \r
+'serial' => 'Sarjaliitäntä', \r
+'service' => 'Palvelu', \r
+'service added' => 'Käyttäjän verkkopalvelu lisätty', \r
+'service name' => 'Palvelun nimi:', \r
+'service removed' => 'Käytäjän verkkopalvelu poistettu', \r
+'service updated' => 'Käyttäjän verkkopalvelu päivitetty', \r
+'servicename' => 'Palvelun nimi', \r
+'services' => 'Palvelut:', \r
+'services settings' => 'Palomuuri - Verkkopalveluiden asetukset', \r
+'set time now' => 'Aseta kellonaika', \r
+'set time now help' => 'Päivittääksesi ajan klikkaa <i>Aseta kellonaika</i>. Päivitys saattaa kestää useita minuutteja.', \r
+'settings' => 'Asetukset', \r
+'shaping add options' => 'Lisää palvelu', \r
+'shaping list options' => 'Liikenteen ohjauspalvelut', \r
+'shared' => 'jaettu', \r
+'shared memory' => 'Jaettu muisti', \r
+'show ca certificate' => 'Näytä CA-sertifikaatti', \r
+'show certificate' => 'Näytä sertifikaatti', \r
+'show host certificate' => 'Näytä laitesertifikaatti', \r
+'show root certificate' => 'Näytä juurisertifikaatti', \r
+'shutdown' => 'Sammuta', \r
+'shutdown control' => 'Sammutuksen ohjaus', \r
+'shutdown2' => 'Sammuta:', \r
+'shutting down' => 'Sammuu', \r
+'shutting down ipcop' => 'Sammutetaan IPCop', \r
+'size' => 'Koko', \r
+'snort hits' => 'Tunkeumissääntöjä aktivoitunut:', \r
+'sort ascending' => 'Aakkosjärjestykseen', \r
+'sort descending' => 'Öökkösjärjestykseen', \r
+'sound' => 'Ääni', \r
+'source' => 'Lähde', \r
+'source ip' => 'Lähde IP-osoite', \r
+'source ip and port' => 'Lähde IP:Portti', \r
+'source ip bad' => 'Epäkelpo IP-osoite tai IP-verkko-osoite.', \r
+'source ip in use' => 'Käytettävä lähde IP-osoite:', \r
+'source ip or net' => 'Lähdenkoneen tai verkon IP', \r
+'source net' => 'Lähdeverkko', \r
+'source network' => 'Lähde IP-osoite, tai verkko (tyhjä = "KAIKKI"):', \r
+'source port' => 'Lähdeportti', \r
+'source port in use' => 'Käytettävä lähdeportti:', \r
+'source port numbers' => 'Lähdeportin tulee olla hyväksytty porttinumero tai -alue.', \r
+'source port overlaps' => 'Lähdeporttialue peittää jo määritellyn porttialueen.', \r
+'speaker off' => 'Kaiutin pois käytöstä:', \r
+'speaker on' => 'Kaiutin käyttöön:', \r
+'src port' => 'Lähdeportti', \r
+'srcprt range overlaps' => 'Lähdeporttialue peittää jo määritellyn portin:', \r
+'srcprt within existing' => 'Lähdeportti on jo määritetyllä porttialueella.', \r
+'ssdmz pinholes' => 'DMZ reiät', \r
+'ssh access' => 'SSH-käyttö', \r
+'ssh fingerprint' => 'Sormenjälki', \r
+'ssh host keys' => 'SSH-avaimet', \r
+'ssh is disabled' => 'SSH pois käytöstä. Pysäytetään.', \r
+'ssh is enabled' => 'SSH käyttöön. Käynnistetään.', \r
+'ssh key' => 'Avaintiedosto', \r
+'ssh key size' => 'Koko (bitteinä)', \r
+'ssh keys' => 'Salli tunnistus julkisella avaimella', \r
+'ssh no auth' => 'Et voi kirjatua, koska yhtään tunnistustapaa ei ole valittu', \r
+'ssh passwords' => 'Salli tunnistus salasanalla', \r
+'ssh portfw' => 'Salli TCP uudelleenohjaus', \r
+'ssh1 disabled' => 'SSHv1 poissa käytöstä. Vain version 2 käyttö on mahdollista.', \r
+'ssh1 enabled' => 'Vanhojen SSH-clienttien käyttö mahdollista (SSHv1)', \r
+'ssh1 support' => 'Tuki SSH-protokollan versiolle 1 (tarvitaan vain vanhoille asiakasohjelmille)', \r
+'ssnetwork status' => 'Verkon tila', \r
+'sspasswords' => 'Salasanat', \r
+'ssport forwarding' => 'Porttien edelleenohjaus', \r
+'ssproxy graphs' => 'Välimuistin kuormitus', \r
+'sssystem status' => 'Järjestelmän tila', \r
+'sstraffic graphs' => 'Liikennemäärät', \r
+'standard login script' => 'Sisäänkirjautumiskomentojono:', \r
+'start address' => 'Alkuosoite:', \r
+'state or province' => 'Lääni tai kunta', \r
+'static ip' => 'Kiinteä IP-osoite', \r
+'status' => 'Tila', \r
+'status information' => 'Tilatiedot', \r
+'stopped' => 'PYSÄYTETTY', \r
+'subject' => 'Otsikko', \r
+'subnet is invalid' => 'Aliverkkomaski ei kelpaa', \r
+'subscripted user rules' => 'Tilatut Sourcefire VRT säännöt', \r
+'successfully refreshed updates list' => 'Päivityslista on päivitetty onnistuneesti.', \r
+'summaries kept' => 'Yhteenvetojen säilytysaika', \r
+'sunday' => 'Sunnuntai', \r
+'swap' => 'Swap-muisti', \r
+'swap usage per' => 'Virtuaalimuistin käyttö', \r
+'system cpu' => 'CPU', \r
+'system cpu usage' => 'CPU:n käyttö', \r
+'system graphs' => 'Järjestelmän kuormitus', \r
+'system log viewer' => 'Järjestelmän lokien katselu', \r
+'system logs' => 'Järjestemälokit', \r
+'system status information' => 'Järjestelmän tilatiedot', \r
+'telephone not set' => 'Puhelinnumeroa ei ole asetettu.', \r
+'the following update was successfully installed' => 'Seuraava päivitys on asennettu onnistuneesti:', \r
+'the statistics were last updated at' => 'Päivitetty', \r
+'there are updates' => 'Järjestelmään on saatavissa uusia päivityksiä. Valitse "Päivitykset"-osio saadaksesi lisätietoja.', \r
+'there are updates available' => 'Järjestelmääsi on saatavissa päivityksiä. On erittäin suotavaa asentaa ne mahdollisimman pian.', \r
+'there was no file upload' => 'Latattavaa tiedostoa ei löydy.', \r
+'this feature has been sponsored by' => 'Tämän ominaisuuden sponsoroija on', \r
+'this field may be blank' => 'Kenttää ei ole pakko täyttää.', \r
+'this is not a valid archive' => 'Paketti on viallinen.', \r
+'this is not an authorised update' => 'Tämä ei ole virallinen päivitys.', \r
+'this update is already installed' => 'Päivitys on jo asennettu.', \r
+'thursday' => 'Torstai', \r
+'time' => 'Aika', \r
+'time date manually reset' => 'Ajan/päivän nollaus käsin.', \r
+'time server' => 'Aikapalvelin', \r
+'timeout must be a number' => 'Aikakatkaisu täytyy määritellä numeroilla.', \r
+'title' => 'Otsikko', \r
+'to' => 'To-FIXME', \r
+'to install an update' => 'Asentaaksesi tämän päivitykset lataa .tgz.gpg-tiedosto:', \r
+'toggle enable disable' => 'Sallittu tai Estetty', \r
+'tone' => 'Äänivalinta', \r
+'tone dial' => 'Äänivalinta käyttöön:', \r
+'total hits for log section' => 'Osumia yhteensä', \r
+'traffic on' => 'Liikenne liitännässä', \r
+'traffic shaping' => 'Verkkoliikenteen tarkkailu', \r
+'traffic shaping settings' => 'Liikenteen ohjausasetukset', \r
+'transfer limits' => 'Siirtorajotukset', \r
+'transparent on' => 'Läpinäkyvä tila verkkoyhteydellä', \r
+'tuesday' => 'Tiistai', \r
+'type' => 'Tyyppi', \r
+'unable to alter profiles while red is active' => 'Profiileja ei voi muokata kun PUNAINEN liitäntä on käytössä.', \r
+'unable to contact' => 'Ei yhteyttä palvelimeen', \r
+'unencrypted' => 'Salaamaton', \r
+'unknown' => 'TUNTEMATON', \r
+'unnamed' => 'Nimetön', \r
+'update' => 'Päivitä', \r
+'update time' => 'Päivitysaika:', \r
+'update transcript' => 'Päivitykset', \r
+'updates' => 'Päivitykset', \r
+'updates installed' => 'Päivitykset on asennettu', \r
+'updates is old1' => 'Päivitystiedostosi on iältään ', \r
+'updates is old2' => '. Päivitä lista <b>Järjestelmä>Päivitykset</b> sivulta.', \r
+'uplink speed' => 'Yhteyden nopeus (uplink) (Kt/s)', \r
+'upload' => 'Lataa', \r
+'upload a certificate' => 'Lataa sertifikaatti:', \r
+'upload a certificate request' => 'Lataa sertifikaattipyyntö:', \r
+'upload ca certificate' => 'Lataa CA-sertifikaatti', \r
+'upload fcdsl.o' => 'Lataa fcdsl.o', \r
+'upload file' => 'Lataa tiedosto', \r
+'upload p12 file' => 'Lataa PKCS12-tiedosto', \r
+'upload successful' => 'Lataus suoritettu.', \r
+'upload synch.bin' => 'Lataa synch.bin', \r
+'upload update file' => 'Ladattava päivitystiedosto:', \r
+'upstream password' => 'Ulkoisen välimuistin salasana:', \r
+'upstream proxy host:port' => 'Ulkoinen välimuisti (kone:portti)', \r
+'upstream username' => 'Ulkoisen välimuistin käyttäjätunnus:', \r
+'uptime and users' => 'Käyntiaika ja käyttäjät:', \r
+'usb modem on acm0' => 'USB-modeemi portissa ACM0', \r
+'usb modem on acm1' => 'USB-modeemi portissa ACM1', \r
+'usb modem on acm2' => 'USB-modeemi portissa ACM2', \r
+'usb modem on acm3' => 'USB-modeemi portissa ACM3', \r
+'use' => 'Käytä', \r
+'use a pre-shared key' => 'Käytä esijaettua avainta:', \r
+'use dov' => 'Käytä DOV:a (Data Over Voice):', \r
+'use ibod' => 'Käytä kaistanrajausta (iBOD):', \r
+'use ipcop red ip' => 'Yhteyden aikana käytettävä punaisen liitännän IP-osoite', \r
+'use only proposed settings' => 'Käytä vain ehdotettuja asetuksia.', \r
+'used' => 'Käytössä', \r
+'used memory' => 'Muistia käytössä', \r
+'used swap' => 'Virtuaalimuistia käytössä', \r
+'user cpu' => 'Käyttäjän CPU käyttö', \r
+'user cpu usage' => 'Käyttäjän CPU käyttö', \r
+'username' => 'Käyttäjä:', \r
+'username not set' => 'Käyttäjän nimi puuttuu', \r
+'users department' => 'Käyttäjän osasto', \r
+'users email' => 'Käyttäjän sähköpostiosoite', \r
+'users fullname or system hostname' => 'Käyttäjän koko nimi tai järjestelmän nimi', \r
+'valid root certificate already exists' => 'Hyväksytty juurisertifikaatti on jo olemassa.', \r
+'vci number' => 'VCI-numero:', \r
+'virtual private networking' => 'Yksityiset näennäisverkot (VPN)', \r
+'vpi number' => 'VPI-numero:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN-asetukset - Pääsivu', \r
+'vpn delayed start' => 'Viive ennen VPN:n käynnistämistä (sekuntteja)', \r
+'vpn delayed start help' => 'If required, this delay can be used to allow Dynamic DNS updates to propagate properly. 60 is a common value when RED is a dynamic IP. FIXME', \r
+'vpn on blue' => 'VPN SINISESSÄ', \r
+'waiting to synchronize clock' => 'Odotaa kellon synkronointia', \r
+'warning messages' => 'Varoitusviestit', \r
+'web hits' => 'Hakuehtoja vastaavien www-sivujen määrä', \r
+'web proxy' => 'WWW-välimuisti', \r
+'web proxy configuration' => 'WWW-välimuistin asetukset', \r
+'web server' => 'WWW-palvelin', \r
+'website' => 'WWW-sivu', \r
+'wednesday' => 'Keskiviikko', \r
+'week' => 'Viikko', \r
+'weeks' => 'viikko', \r
+'wildcards' => 'Jokerimerkit', \r
+'wireless' => 'Langaton', \r
+'wireless config added' => 'Wireless config added', \r
+'wireless config changed' => 'Wireless config changed', \r
+'wireless configuration' => 'Langattomuuden asetukset', \r
+'written sectors' => 'Sektoreita kirjoitettu', \r
+'xtaccess all error' => 'Et voi asettaa ulkopuolista pääsyä ALL-tilaa. Tämä tulee tehdä porttien edelleenohjauksella.', \r
+'year' => 'Vuosi', \r
+'yes' => 'Kyllä', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Käytettäessä esi-jaetun avainen varmentamista voit käyttää vain yhtä RoadWarrior-yhteyttä.', \r
+'your department' => 'Osasto', \r
+'your e-mail' => 'Sähköpostiosoitteesi', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/fi/install/CVS/Entries b/langs/fi/install/CVS/Entries
new file mode 100644 (file)
index 0000000..74017cb
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_fi.c/1.9.2.7/Mon Dec 12 09:23:26 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/fi/install/CVS/Repository b/langs/fi/install/CVS/Repository
new file mode 100644 (file)
index 0000000..12b5989
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/fi/install
diff --git a/langs/fi/install/CVS/Root b/langs/fi/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/fi/install/CVS/Tag b/langs/fi/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/fi/install/lang_fi.c b/langs/fi/install/lang_fi.c
new file mode 100644 (file)
index 0000000..599a35a
--- /dev/null
@@ -0,0 +1,507 @@
+/*\r
+ * Finnish  (fi) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Kai Käpölä \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *fi_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Osoiteasetukset",\r
+/* TR_ADMIN_PASSWORD */\r
+"Admin salasana",\r
+/* TR_AGAIN_PROMPT */\r
+"Uudelleen:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Kaikki kortit ovat määritelty onnistuneesti.",\r
+/* TR_AUTODETECT */\r
+"* AUTOMAATTITUNNISTUS *",\r
+/* TR_BUILDING_INITRD */\r
+"Tallennetaan INITRD...",\r
+/* TR_CANCEL */\r
+"Peruuta",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Korttivalinnat",\r
+/* TR_CHECKING */\r
+"Tarkistetaan osoitetta...",\r
+/* TR_CHECKING_FOR */\r
+"Tarkistetaan: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Valitse tietokoneeseen asennettu ISDN-kortti.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Valitse käyttämäsi ISDN-protokolla.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Konfiguroi DHCP-palvelin syöttämällä asetustiedot.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Asenna verkkoyhteydet",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Verkkoyhteyksien asentaminen tapahtuu lataamalla oikea ajuri VIHREÄLLE liitännälle. Voit tehdä tämän automaattihaulla tai valitsemalla ajurin listasta. Mikäli sinulla on usempi kuin yksi verkkokortti huomaa että voit asentaa niiden ajurit myöhemmässä vaiheessa. Huomaaa myös että jos sinulla on useampi saman tyyppinen verkkokortti kuin VIHREÄ:llä yhteydellä, joudut antamaan niille kaikille tarvittavat parametrit jotta kaikki saman tyyppiset verkkokortit ovat käytettävissä VIHREÄN yhteyden asennuksessa.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Asenna verkkoajurit ja määrittele mihin yhteyteen kutakin verkokorttia käytetään. Tämän hetkinen konfiguraatio:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Valitse CDROM-aseman käyttämisen edellyttämät IO-osoite ja/tai IRQ.",\r
+/* TR_CONGRATULATIONS */\r
+"Onneksi olkoon!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s asennettiin onnistuneesti. Poista levykkeet ja cd-levyt asemista. Seuraavaksi asennetaan ISDN- ja verkkortit, sekä järjestelmän salasanat. Asennuksen jälkeen mene www-selaimella osoitteeseen http://%s:81 tai https://%s:445 (tai miksi nyt sitten nimesitkään %s:n) ja asenna tarvittaessa soittosarjayhteys. Muista asettaa salasana 'dial'-käyttäjälle, mikäli haluat tavallisten käyttäjien ottavan yhteyden soittosarjaan. Muussa tapauksessa vain 'admin' käyttäjillä on oikeus avata yhteys.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Kovalevysi kapasiteetti on pieni, mutta voit jatkaa ilman levymuistia. (Käytettävä varoen!!)",\r
+/* TR_CURRENT_CONFIG */\r
+"Nykyinen konfiguraatio: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Oletusyhdyskäytävä:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Oletusyhdyskäytävä\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Oletusvarausaika (min):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Oletusvarausaika\n",\r
+/* TR_DETECTED */\r
+"Tunnistettu: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"DHCP-isäntänimi:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"DHCP isäntänimi\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"DHCP-palvelimen asetukset",\r
+/* TR_DISABLED */\r
+"Ei käytössä",\r
+/* TR_DISABLE_ISDN */\r
+"Poista ISDN käytöstä",\r
+/* TR_DISK_TOO_SMALL */\r
+"Käytettävän kiintolevyn kapasiteetti on liian pieni.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"DNS- ja yhdyskäytävä asetukset",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Syötä nimipalvelun (DNS) ja yhdyskäytävän (Gateway) tiedot. Näitä asetuksia käytetään ainoastaan mikäli DHCP ei ole käytössä PUNAISESSA-liitännässä.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Valitsemasi käyttötapa ei käytä PUNAISENA-liitäntänä ethernetiä. Nimipalvelu (DNS) ja yhdyskäytävä (Gateway) asetetaan automaattisesti modeemin yhteyden muodostuksessa.",\r
+/* TR_DOMAINNAME */\r
+"Toimialuenimi (Domainname)",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Domain-nimi ei voi olla tyhjä.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Toimialuenimessä ei voi olla välilyöntejä.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Domain-nimessä voi käyttää vain kirjaimia, numeroita, tavuviivaa ja pistettä.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Toimialueen nimen pääte",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Toimialuenimen pääte\n",\r
+/* TR_DONE */\r
+"Valmis",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nHaluatko muuttaa näitä asetuksia?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Ajurit ja korttien käyttö",\r
+/* TR_ENABLED */\r
+"Käytössä",\r
+/* TR_ENABLE_ISDN */\r
+"ISDN käyttöön",\r
+/* TR_END_ADDRESS */\r
+"Loppuosoite:",\r
+/* TR_END_ADDRESS_CR */\r
+"Loppuosoite\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Eräät ISDN-kortit (erityisesti ISA-väyläään kytkettävä) tarvitsevat toimiakseen keskeytysnumeron (IRQ) ja IO-osoitteen. Mikäli käytössä on tälläinen ISDN-kortti täytyy nämä parametrit syöttää nyt. Esim. \"io=0x280 irq=9\". Parametrejä käytetään kortin tunnistuksessa.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Syötä %s:n admin salasana. Tämä käyttäjä voi käyttää %s:n www-ylläpitosivuja.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Syötä toimialuenimi (Domainname)",\r
+/* TR_ENTER_HOSTNAME */\r
+"Syötä tietokoneen nimi.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Syötä IP-osoite",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Automaattitunnistus ei löytänyt ainuttakaan verkkokorttia. Syötä ajurin nimi ja tarvittavat parametrit:",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Syötä 'root'-käyttäjän salasana. Tämä käyttäjä voi kirjautua pääteyhteydellä.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Syötä 'setup'-käyttäjän salasana. Tämä käyttäjä voi käyttää asennusohjelmaa.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Syötä IP-osoite yhteydelle %s.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Syötä paikallinen puhelinumero (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Syötä URL-osoite josta löytyy ipcop-<version>.tgz ja images/scsidrv-<version>.img tiedostot. VAROITUS: Nimipalvelu (DNS) ei ole käytössä! Käytä esim. http://X.X.X.X/<hakemisto>",\r
+/* TR_ERROR */\r
+"Virhe",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Asetuksen kirjoittamisessa tapahtui virhe.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Puretaan moduleita...",\r
+/* TR_FAILED_TO_FIND */\r
+"URL-tiedostoa ei löydy.",\r
+/* TR_FOUND_NIC */\r
+"%s löysi tietokoneesta verkkokortin: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"Saksalainen 1TR6",\r
+/* TR_HELPLINE */\r
+"           <Tab>/<Alt-Tab> vaihtaa kohdetta | <Välilyönti> valitsee",\r
+/* TR_HOSTNAME */\r
+"Isäntänimi (Hostname)",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Isäntänimi ei voi olla tyhjä.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Isäntänimessä ei saa olla välilyöntejä.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Hostnamessa on sallittua käyttää vain kirjaimia, numeroita ja tavuviivaa.",\r
+/* TR_INITIALISING_ISDN */\r
+"Alustetaan ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Laita CDROM-asemaan levy %s.",\r
+/* TR_INSERT_FLOPPY */\r
+"Laita levyasemaan tarvittava ajurilevyke (%s).",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Asennus peruutettu.",\r
+/* TR_INSTALLING_FILES */\r
+"Asennetaan tiedostoja...",\r
+/* TR_INSTALLING_GRUB */\r
+"Asennetaan GRUB...",\r
+/* TR_INTERFACE */\r
+"%s-liitäntä",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Verkkoyhteyttä ei saatu käynnistettyä.",\r
+/* TR_INVALID_FIELDS */\r
+"Tarkista seuraavat kentät:\n\n",\r
+/* TR_INVALID_IO */\r
+"Syötetty IO-osoite ei kelpaa.",\r
+/* TR_INVALID_IRQ */\r
+"Syötetty keskeytyspyyntönumero (IRQ) ei kelpaa.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP-osoite\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP-osoite:",\r
+/* TR_ISDN_CARD */\r
+"ISDN-kortti",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"ISDN-korttia ei tunnistettu. Mikäli kortti on ISA-väylässä joudut syöttämään lisäparametreja.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"ISDN-kortin valinta",\r
+/* TR_ISDN_CONFIGURATION */\r
+"ISDN asetukset",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"ISDN asetukset",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDNää ei asennettu. Joitain kohteita ei ole valittu.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN on määrittelelmättä. Valitse asennettava kohde.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"ISDN-protokollan valinta",\r
+/* TR_ISDN_STATUS */\r
+"Käytössä oleva ISDN on %s.\n\n Prokolla: %s\n Kortti: %s\n Paikkallispuhelinumero: %s\n\n Valitse asetus jota haluat muuttaa tai valitset käytä jatkaaksesi nykyisten asetusten käyttöä.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Näppäimistöasettelu",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Valitse näppäimistöasettelu:",\r
+/* TR_LEASED_LINE */\r
+"Varattu linja",\r
+/* TR_LOADING_MODULE */\r
+"Ladataan modulia...",\r
+/* TR_LOADING_PCMCIA */\r
+"Lataan PCMCIA-modulit...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Etsitään: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Luodaan käynnistystiedostojärjestelmä...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Luodaan loki tiedostojärjestelmä...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Luodaan juuritiedostojärjestelmä...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Luodaan välimuistitila (swap)...",\r
+/* TR_MANUAL */\r
+"* KÄSIN *",\r
+/* TR_MAX_LEASE */\r
+"Maksimi varausaika (min):",\r
+/* TR_MAX_LEASE_CR */\r
+"Maksimi varausaika\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"SINISEN-liitännän IP-osoite puuttuu.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"ORANSSIN-liitännän IP-osoite puuttuu.",\r
+/* TR_MISSING_RED_IP */\r
+"PUNAISEN-liitännän IP-osoite puuttuu.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Modulin nimi ei voi olla tyhjä.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Syötä asennettavan modulin nimi ja parametrit.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Otetaan käyttöön käynnistys-tiedostojärjestelmä...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Otetaan käyttöön loki-tiedostojärjestelmä...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Otetaan käyttöön juuritiedostojärjestelmä...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Otetaan käyttöön välimuisti-tila (swap)...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Paikallispuhelinumero (MSN(EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Verkkopeite:",\r
+/* TR_NETWORKING */\r
+"Verkotus",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Verkko-osoite\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Verkko-osoite:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Verkkoasetusten valikko",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Verkkoasennuksen tyyppi",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Valitse %s:n verkkoasetukset. Seuraavat asetusvaihtoehdot näyttävät ne liitännät joihin verkko on kytkettynä. Mikäli muutat valintaa, käynnistetään verkkoyhteydet uudelleen ja ajurit tulee kohdentaa uudelleen.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Verkkopeite\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Verkon asentaminen epäonnistui.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Kortteja ei löytynyt riittävää määrää.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"SINISTÄ-liityntää ei ole asetettu..",\r
+/* TR_NO_CDROM */\r
+"CD-ROM-asemaa ei löydy.",\r
+/* TR_NO_HARDDISK */\r
+"Kiintolevyä ei löydy.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"WWW-palvelimelta ei löydy IpCOpin tar-pakettia.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"ORANSSIlle yhteydelle ei ole määrätty verkkokorttia.",\r
+/* TR_NO_RED_INTERFACE */\r
+"PUNAISTA-liitäntää ei ole asetettu.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"WWW-palvelimelta ei löydy SCSI-imagea.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Vapaita kortteja ei ole jäljellä vaikka lisää pitäisi olla. Voit antaa automaattihaun etsiä lisää kortteja tai voit valita ajurin listasta.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Osioidaan kiintolevy...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Salasanat eivät täsmää.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Salasana ei voi olla tyhjä.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Salasanassa ei voi käyttää välilyöntejä.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Salasana:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Puhelinnumero ei voi olla tyhjä.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Seuraavaksi asennusohjelma valmistelee %s:n kiintolevyn asennusta varten. Ensin kiintolevy osioidaan ja sen jälkeen osioille rakennetaan tiedostojärjestelmät.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Valitse OK käynnistääksesi uudelleen.",\r
+/* TR_PRIMARY_DNS */\r
+"Ensisijainen DNS-palvelin:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Ensisijainen DNS-palvelin\n",\r
+/* TR_PROBE */\r
+"Tunnista",\r
+/* TR_PROBE_FAILED */\r
+"Automaattinen tunnistus epäonnistui.",\r
+/* TR_PROBING_SCSI */\r
+"Etsitään SCSI-laitteita...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"%s:n admin salasanan asettaminen ei onnistu.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Root-käyttäjän salasanan asettaminen ei onnistu.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Setup-käyttäjän salasanan asettamien ei onnistu.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protokolla/Maa",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Käynnistetään verkkoyhteydet...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Suljetaan verkkoyhteydet...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Suljetaan ulkoiset verkkoyhteydet...",\r
+/* TR_QUIT */\r
+"Lopeta",\r
+/* TR_RED_IN_USE */\r
+"ISDN (tai muu ulkoinen yhteys) on käytössä. Et voi muuttaa ISDN-asetuksia kun PUNAINEN-liitäntä on käytössä.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nAsennuksen jälkeen verkkoyhteydet on käynnistettävä uudelleen.",\r
+/* TR_RESTORE */\r
+"Palauta",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Mikäli levyasemaan laitetussa levykkeessä on %s:n asetukset voit palauttaa ne käyttöön klikkaamalla Palauta-painiketta.",\r
+/* TR_ROOT_PASSWORD */\r
+"'root' salasana",\r
+/* TR_SECONDARY_DNS */\r
+"Toissijainen DNS-palvelin:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Toissijainen DNS-palvelin\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Toissijainen DNS-palvelin määritelty ilman ensisijaista DNS-palvelinta",\r
+/* TR_SECTION_MENU */\r
+"Kappalevalikko",\r
+/* TR_SELECT */\r
+"Valitse",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Valitse CDROM-tyyppi",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Tietokoneesta ei löyty CDROM-asemaa. Valitse seuraavista yhteensopiva ajuri, jolla %s pystyy käyttämään CDROM-asemaa.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Valitse asennusväline",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s voidaan asentaa useasta lähteestä. Helpoin tapa on käyttää tietokoneen CDROM-asemaa. Mikäli sitä ei ole käytettävissä, voit asentaa myös verkon kautta toisesta koneesta kunhan tiedostot ovat saatavissa HTTP-protokollaa käyttämäällä. Tällöin tarvitset verkkokortin ajurilevykkeen.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Valitse verkkokortin ajuri",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Valitse tietokoneeseesi asennetun verkkokortin ajuri. Mikäli valitset KÄSIN, sinulla on mahdollisuus syöttää  parametrit, joita tarvitsevat mm. ISA-väyläiset ajurit.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Valitse uudelleen määriteltävä liitäntä.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Valitse määriteltävä kohde.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Asetetaan %s admin-salasana...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Asetetaan 'root' salasanaa....",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Asetetaan 'setup' salasanaa....",\r
+/* TR_SETUP_FINISHED */\r
+"Asennus on valmis. Valitse OK käynnistääksesi uudelleen.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Asennusta ei suoritettu loppuun. Varmista asennuksen onnistuminen suorittamalla asennus (Setup) uudelleen komentoriviltä.",\r
+/* TR_SETUP_PASSWORD */\r
+"'setup' salasana",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Modulin lisäasetukset",\r
+/* TR_SINGLE_GREEN */\r
+"Sinulla on käytössä yhden VIHREÄN liitännän asetukset",\r
+/* TR_SKIP */\r
+"Ohita",\r
+/* TR_START_ADDRESS */\r
+"Ensimmäinen osoite:",\r
+/* TR_START_ADDRESS_CR */\r
+"Alkuosoite\n",\r
+/* TR_STATIC */\r
+"Kiinteä",\r
+/* TR_SUGGEST_IO */\r
+"(oletus %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(oletus %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Ajurimoduli on jo ladattu.",\r
+/* TR_TIMEZONE */\r
+"Aikavyöhyke",\r
+/* TR_TIMEZONE_LONG */\r
+"Valitse aikavyöhyke listasta.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"CD-levyn poistaminen CDROM-asemasta ei onnistu.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Modulien purkaminen ei onnistu.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Lisäajureita ei löydy.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Tietokoneesta ei löydy ISDN-korttia. Mikäli ISDN-korttisi kytketään ISA-väylään tai se tarvitsee erikoisasetuksia kokeile lisätä ajurimodulille sopivat parametrit.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"ISDN:n alustus ei onnistu.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Tiedostojen asennus ei onnistu.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"GRUB:n asennus ei onnistu.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Ajurimodulien lataus ei onnistu.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Käynnistystiedostojärjestelmän (BOOT) luonti ei onnistu.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Loki-tiedostojärjestelmän luonti ei onnistu.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Juuri-tiedostojärjestelmän luonti ei onnistu.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Välimuisti-tilan (swap) luonti ei onnistu.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Symbolisen linkin /dev/harddisk luonti ei onnistu .",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Symbolisen linkin /dev/harddisk1 luonti ei onnistu .",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Symbolisen linkin /dev/harddisk2 luonti ei onnistu .",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Symbolisen linkin /dev/harddisk3 luonti ei onnistu.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Symbolisen linkin  /dev/harddisk4 luonti ei onnistu.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Symbolisen linkin  /dev/root luonti ei onnistu.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Käynnistys-tiedostojärjestelmään yhdistäminen ei onnistu.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Log´ki-tiedostojärjestelmään yhdistäminen ei onnistu.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Proc-tiedostojärjestelmään yhdistäminen ei onnistu.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Juuri-tiedostojärjestelmään yhdistäminen ei onnistu.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Välimuisti-tilan (swap) käyttöönotto ei onnistu.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Tiedostoa 'hosts' ei pystytä avamaan.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Asetustiedoston avaaminen ei onnistu.",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Levyn osioiminen ei onnistu.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Ladattujen tilapäistiedostojen poisto ei onnistu.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Isäntänimeä ei voi asettaa.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Ei voi katkaista yhteyttä CDROM/levyasema.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Ei voi katkaista yhteyttä harddisk.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Ei voi kirjoittaa /etc/fstab ",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Ei voi kirjoittaa /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Ei voi kirjoittaa /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Ei voi kirjoittaa /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Ei voi kirjoittaa /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Ei voi kirjoittaa %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Ei voi kirjoittaa %s/main/hostname.conf.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Ei voi kirjoitaa %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Järjestelmässä on käyttämön ethernet-liitäntä: \n%s\n\nVoit asettaa sen käytettäväksi:",\r
+/* TR_UNKNOWN */\r
+"TUNTEMATON",\r
+/* TR_UNSET */\r
+"ASETTAMATTA",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"VAROITUS",\r
+/* TR_WARNING_LONG */\r
+"Mikäli olet IP-osoitetta vaihtaessasi etäyhteydessä yhteytesi %s:n katkeaa ja joudut avaamaan uuden yhteyden uudella IP-osoitteella. Tähän sisältyy omat riskinsä ja on suositeltavampaa suorittaa operaatio tietokoneen konsolilta.",\r
+/* TR_WELCOME */\r
+"Tervetuloa %s:n asennusohjelmaan. Mikäli valitset missä tahansa vaiheessa PERUUTA tietokone käynnistetään uudeelleen.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Käytössäsi on asetukset yhdelle VIHREÄlle liitynnälle, jolla on jo ajuri valittuna.",\r
+}; \r
+  \r
diff --git a/langs/fr/CVS/Entries b/langs/fr/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/fr/CVS/Repository b/langs/fr/CVS/Repository
new file mode 100644 (file)
index 0000000..8139b26
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/fr
diff --git a/langs/fr/CVS/Root b/langs/fr/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/fr/CVS/Tag b/langs/fr/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/fr/cgi-bin/CVS/Entries b/langs/fr/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..2248bde
--- /dev/null
@@ -0,0 +1,2 @@
+/fr.pl/1.6.2.74/Wed Feb  1 18:41:26 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/fr/cgi-bin/CVS/Repository b/langs/fr/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..3a146c2
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/fr/cgi-bin
diff --git a/langs/fr/cgi-bin/CVS/Root b/langs/fr/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/fr/cgi-bin/CVS/Tag b/langs/fr/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl
new file mode 100644 (file)
index 0000000..53af2b4
--- /dev/null
@@ -0,0 +1,955 @@
+# French (fr) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Bertrand Sarthre, Michel Janssens, Erwann Simon, Patrick Bernaud,\r
+# Marc Faid'herbe, Eric Legigan, Eric Berthomier, Stèphane Le Bourdon,\r
+# Stèphane Thirion, Jan M. Dziewulski, spoutnik, Eric Darriak, Eric Boniface,\r
+# Franck Bourdonnec \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Un certificat CA existe déjà avec ce nom.', \r
+'a connection with this common name already exists' => 'Une connexion avec ce nom commun (CN) existe déjà.', \r
+'a connection with this name already exists' => 'Une connexion avec ce nom existe déjà.', \r
+'access allowed' => 'Accès autorisé depuis :', \r
+'access refused with this oinkcode' => 'Accès refusé avec ce oink code.', \r
+'action' => 'Action', \r
+'add' => 'Ajouter', \r
+'add a host' => 'Ajouter un hôte:', \r
+'add a new rule' => 'Ajouter une nouvelle règle:', \r
+'add device' => 'Ajoute un Client Réseau', \r
+'add network' => 'Ajouter un réseau', \r
+'add new alias' => 'Ajouter un nouvel alias:', \r
+'add new lease' => 'Ajouter un nouveau bail d\'adresse IP fixe', \r
+'add service' => 'Ajouter un service', \r
+'add xtaccess' => 'Ajouter des accès externes', \r
+'added from dhcp lease list' => 'Obtenu depuis le bail DHCP', \r
+'admin user password has been changed' => 'Le mot de passe de l\'utilisateur \'admin\' a été changé.', \r
+'administrator user password' => 'Mot de passe de l\'utilisateur  \'admin\' :', \r
+'adsl settings' => 'Paramètres ADSL', \r
+'advanced' => 'Avancé', \r
+'again' => 'Vérification :', \r
+'alcatelusb help' => 'Pour utiliser un modem USB Speedtouch, vous devez télécharger sur votre machine IPCop le firmware. Récupérez le paquet Embedded Firmware sur le site Internet speedtouch.com, puis, à l\'aide du formulaire ci-dessous, transférez le fichier correspondant à votre modem : <b>KQD6_3.xxx</b> si Rev < 4 ou <b>ZZZL_3.xxx</b> si Rev = 4.', \r
+'alcatelusb upload' => 'Télécharger Speedtouch USB pilote matériel', \r
+'alias ip' => 'Alias IP', \r
+'aliases' => 'Alias', \r
+'aliases not active' => 'Les alias ne peuvent être activés si l\'adresse IP de l\'interface ROUGE n\'est pas STATIQUE !', \r
+'all' => 'Tous', \r
+'all interfaces' => 'Toutes les interfaces', \r
+'all updates installed' => 'Toutes les mises à jour sont installées', \r
+'alt dialup' => 'Connexion', \r
+'alt home' => 'Accueil', \r
+'alt information' => 'Information', \r
+'alt logs' => 'Journaux', \r
+'alt services' => 'Services', \r
+'alt system' => 'Système', \r
+'alt vpn' => 'RPVs', \r
+'and' => 'Et', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Appliquer maintenant', \r
+'april' => 'Avril', \r
+'archive not exist' => 'L\'archive de configuration n\'existe pas', \r
+'are you sure' => 'Etes-vous sûr ?', \r
+'arp table entries' => 'Entrées dans la table ARP', \r
+'august' => 'Août', \r
+'authentication' => 'Authentification :', \r
+'automatic' => 'Automatique', \r
+'available updates' => 'Mises à jour disponibles:', \r
+'average' => 'Moyenne', \r
+'avoid dod' => 'Eviter cette option avec le dial-on-demand. Principalement utilisée lorsque votre IPCop se trouve derrière un autre routeur. L\'IP RED doit faire partie d\'un des trois numéros de réseaux privés, càd:10/8, 172.16/12, 192.168/16.', \r
+'back' => 'Retour', \r
+'backup' => 'Sauvegarde', \r
+'backup config floppy' => 'Sauvegarde de la configuration sur disquette', \r
+'backup configuration' => 'Sauvegarde de la configuration:', \r
+'backup sets' => 'Jeu de sauvegarde', \r
+'backup to floppy' => 'Sauvegarde sur disquette', \r
+'backupprofile' => 'Profil de repli en cas d\'échec de la reconnexion', \r
+'bad characters in script field' => 'Caractères invalides dans le champ script', \r
+'bad characters in the telephone number field' => 'Caractères invalides dans le numéro de téléphone.', \r
+'bad destination range' => 'La plage port destination est incorrecte (début >= fin). ', \r
+'bad ignore filter' => 'Filtre erroné:', \r
+'bad return code' => 'L\'auxiliaire d\'aide a donné un code d\'erreur', \r
+'bad source range' => 'La plage port source est incorrecte (début >= fin). ', \r
+'beep when ppp connects or disconnects' => 'Bips de connexion/deconnexion', \r
+'behind a proxy' => 'Derrière un serveur mandataire (proxy):', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'BLEU', \r
+'blue access' => 'Accès BLEU', \r
+'blue interface' => 'Interface BLEUE', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Tube cassé', \r
+'buffered memory' => 'Mémoire protégée', \r
+'buffers' => 'Mémoire cache', \r
+'bytes per second' => 'octets par seconde', \r
+'ca certificate' => 'Certificat CA', \r
+'ca name' => 'Nom de l\'autorité de certification', \r
+'cache management' => 'Gestion du cache', \r
+'cache size' => 'Taille du cache (Mo):', \r
+'cached' => 'En cache', \r
+'cached memory' => 'Mémoire cache', \r
+'cancel' => 'Annuler', \r
+'cannot enable both nat traversal and compression' => 'Impossible d\'activer à la fois le NAT Traversal et la compression.', \r
+'cannot enable ntp without specifying primary' => 'Activation de NTP impossible sans serveur primaire.', \r
+'cannot specify secondary dns without specifying primary' => 'Impossible de spécifier un serveur DNS secondaire sans spécifier de serveur primaire.', \r
+'cannot specify secondary ntp without specifying primary' => 'Impossible de spécifier un serveur NTP secondaire sans spécifier de serveur primaire.', \r
+'cannot specify secondary wins without specifying primary' => 'Impossible de spécifier un serveur WINS secondaire sans primaire.', \r
+'cant change certificates' => 'Ne peut changer les certificats.', \r
+'cant enable xtaccess' => 'Activez la régle transfert de port avant d\'activer les régles d\'accés.', \r
+'cant start openssl' => 'Ne peut démarrer OpenSSL', \r
+'caps all' => 'TOUT', \r
+'capsclosed' => 'FERMÉ', \r
+'capsopen' => 'OUVERT', \r
+'capswarning' => 'ATTENTION', \r
+'cert' => 'Certificat', \r
+'certificate' => 'Certificat', \r
+'certificate authorities' => 'Autorités de certification', \r
+'certificate does not have a valid ca associated with it' => 'Le certificat n\'a pas d\'autorité de certification (CA) valide associée.', \r
+'certificate file move failed' => 'Echec du déplacement du certificat', \r
+'cfg restart' => 'Un reboot est recommandé aprés une restauration de configuration.', \r
+'chain' => '&nbsp;&nbsp;Chaîne&nbsp;&nbsp;', \r
+'change passwords' => 'Changer les mots de passe', \r
+'check vpn lr' => 'Vérification', \r
+'city' => 'Ville', \r
+'clear cache' => 'Vider le cache', \r
+'clenabled' => 'Fournir l\'heure au réseau local', \r
+'click to disable' => 'Activé (cliquer pour désactiver)', \r
+'click to enable' => 'Désactivé (cliquer pour activer)', \r
+'clock has not been synchronized' => 'L\'horloge n\'a pas été synchronisée', \r
+'clock last synchronized at' => 'L\'horloge a été synchronisée à', \r
+'common name' => 'Nom commun (CN)', \r
+'compression' => 'Compression:', \r
+'computer to modem rate' => 'Débit des données de l\'ordinateur au modem:', \r
+'concentrator name' => 'Nom du concentrateur:', \r
+'confirmation' => 'confirmation', \r
+'connect on ipcop restart' => 'Connexion au démarrage d\'IPCop :', \r
+'connect the modem' => 'Branchez le modem', \r
+'connect timeout' => 'Durée maximale pour l\'établissement de la connexion:', \r
+'connected' => 'Connecté', \r
+'connecting' => 'Connexion en cours...', \r
+'connection' => 'Connexion', \r
+'connection debugging' => 'Log debug de la connexion', \r
+'connection status and controlc' => 'Contrôle et statut de la connexion : ', \r
+'connection tracking' => 'Suivi des connexions IPTables', \r
+'connection type' => 'Type de Connexion', \r
+'connection type is invalid' => 'Le type de connexion est non valide.', \r
+'connections' => 'Connexions', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'Des connexions sont associées avec cette autorité de certification (CA). Elles seront supprimées avec cette CA.', \r
+'could not be opened' => 'n\'a pu être ouvert', \r
+'could not connect to' => 'Impossible de se connecter à', \r
+'could not connect to www ipcop org' => 'Impossible de se connecter à www.ipcop.org', \r
+'could not create directory' => 'Impossible de créer le répertoire.', \r
+'could not download latest patch list' => 'Impossible de télécharger la liste des mises à jour (non connecté).', \r
+'could not download latest updates' => 'Impossible de télécharger les dernières mises à jour', \r
+'could not download the available updates list' => 'Impossible de télécharger la liste des mises à jour disponibles.', \r
+'could not open available updates file' => 'Impossible d\'ouvrir le fichier des mises à jour disponibles.', \r
+'could not open installed updates file' => 'Impossible d\'ouvrir le fichier des mises à jour installées', \r
+'could not open update information file' => 'Impossible d\'ouvrir le fichier d\'information de mise à jour. Le fichier est corrompu.', \r
+'could not retrieve common name from certificate' => 'Impossible d\'obtenir le nom commun (CN) depuis le certificat.', \r
+'country' => 'Pays', \r
+'cpu usage per' => 'Utilisation du CPU par', \r
+'create' => 'Créer', \r
+'credits' => 'Crédits', \r
+'cron server' => 'Serveur CRON', \r
+'current' => 'En cours', \r
+'current aliases' => 'Alias actuels:', \r
+'current dhcp leases on blue' => 'Baux DHCP en cours sur BLEU', \r
+'current dynamic leases' => 'Baux dynamiques actuels', \r
+'current fixed leases' => 'Réservations DHCP fixes', \r
+'current hosts' => 'Hôtes actuels:', \r
+'current profile' => 'Profil actuel:', \r
+'current rules' => 'Règles actuelles:', \r
+'custom networks' => 'Réseaux', \r
+'custom services' => 'Services', \r
+'dat without key' => 'Une archive encryptée ne peut pas être restaurée sans la clé.', \r
+'date' => 'Date', \r
+'date not in logs' => 'Aucun log (ou seulement un log partiel) n\'existe pour le jour demandé', \r
+'day' => 'Jour', \r
+'day after' => 'Jour suivant', \r
+'day before' => 'Jour précédent', \r
+'days' => 'jours', \r
+'ddns hostname added' => 'Nom d\'hôte de DNS dynamique ajouté', \r
+'ddns hostname modified' => 'Nom d\'hôte de DNS dynamique modifié', \r
+'ddns hostname removed' => 'Nom d\'hôte de DNS dynamique supprimé', \r
+'ddns minimize updates' => 'Réduire les mises à jour: une comparaison entre l\'IP RED et l\'IP obtenue par interrogation dns avec le nom contenu dans "[nom d\'hôte.]domaine" est effectuée. Màj si différence constatée.', \r
+'ddns noip prefix' => 'Pour utiliser le service no-ip en mode groupe, préfixer le nom d\'hôte par <b>%</b>', \r
+'december' => 'Décembre', \r
+'def lease time' => 'Durée du bail par défaut', \r
+'default lease time' => 'Durée du bail par défaut (minutes):', \r
+'default networks' => 'Réseau par défaut', \r
+'default renewal time' => 'Durée de renouvellement par défaut', \r
+'default services' => 'Services par défaut', \r
+'delete' => 'Suppression', \r
+'demon login script' => 'Script d\'identification automatisé', \r
+'description' => 'Description', \r
+'dest ip and port' => 'Dest. IP:Port', \r
+'destination' => 'Destination', \r
+'destination ip' => 'Adresse IP de destination', \r
+'destination ip bad' => 'Adresse IP de destination invalide', \r
+'destination ip or net' => 'IP ou Réseau destination', \r
+'destination net' => 'Réseau de destination', \r
+'destination port' => 'Port destination', \r
+'destination port numbers' => 'Le port destination doit être un numéro de port valide ou une plage de ports valide.', \r
+'destination port overlaps' => 'La plage de ports destination déborde sur une plage de ports existante.', \r
+'detail level' => 'Niveau de détail', \r
+'device' => 'Périphérique', \r
+'devices on blue' => 'Clients Réseaux sur BLEU', \r
+'dhcp advopt add' => 'Ajoute une option DHCP', \r
+'dhcp advopt added' => 'Option DHCP ajoutée', \r
+'dhcp advopt blank value' => 'L\'option DHCP doit contenir du texte.', \r
+'dhcp advopt custom definition' => 'Vos propres définitions d\'options', \r
+'dhcp advopt definition' => 'Définition d\'option', \r
+'dhcp advopt definition exists' => 'Cette définition d\'option existe déjà. Vous pouvez la modifier ou la supprimer.', \r
+'dhcp advopt edit' => 'Modifier une option DHCP', \r
+'dhcp advopt help' => 'Syntaxe', \r
+'dhcp advopt list' => 'Liste des options DHCP', \r
+'dhcp advopt modified' => 'Option DHCP modifiée', \r
+'dhcp advopt name' => 'Nom de l\'option', \r
+'dhcp advopt removed' => 'Option DHCP supprimée', \r
+'dhcp advopt scope' => 'Portée de l\'option', \r
+'dhcp advopt scope global' => 'Globale', \r
+'dhcp advopt scope help' => 'Limite la portée à quelques interfaces ou toutes', \r
+'dhcp advopt unknown' => 'Cette option est inconnue', \r
+'dhcp advopt value' => 'Valeur', \r
+'dhcp allow bootp' => 'Autoriser les clients bootp', \r
+'dhcp bootp pxe data' => 'Préciser les options bootp/pxe pour ce bail', \r
+'dhcp configuration' => 'Configuration DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'Serveur DHCP', \r
+'dhcp server disabled' => 'Serveur DHCP désactivé.  Arrêté.', \r
+'dhcp server disabled on blue interface' => 'Serveur DHCP désactivé sur l\'interface BLEUE', \r
+'dhcp server enabled' => 'Serveur DHCP activé.  Redémarrage.', \r
+'dhcp server enabled on blue interface' => 'Serveur DHCP activé sur l\'interface BLEUE', \r
+'dial' => 'Connexion', \r
+'dial user password' => 'Mot de passe de l\'utilisateur \'dial\' :', \r
+'dial user password has been changed' => 'Le mot de passe de l\'utilisateur Dial a été changé.', \r
+'dialing mode' => 'Mode d\'appel:', \r
+'dialup settings' => 'Paramètres de connexion', \r
+'disk access per' => 'Accés disque par ', \r
+'disk usage' => 'Utilisation du disque:', \r
+'display' => 'Affichage', \r
+'display hostname in window title' => 'Afficher le nom de la machine dans la barre de titre', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Configuration des accès à la DMZ', \r
+'dmz pinhole rule added' => 'Règle d\'accès à la DMZ ajoutée; redémarrage', \r
+'dmz pinhole rule removed' => 'Règle d\'accès à la DMZ supprimée; redémarrage', \r
+'dmzpinholes for same net not necessary' => 'Un point d\'accés DMZ n\'est pas nécessaire pour le même réseau. Sélectionner un réseau d\'origine ou de destination différent. ', \r
+'dns check failed' => 'La vérification DNS a échoué', \r
+'dns proxy server' => 'Serveur DNS mandataire (proxy DNS)', \r
+'do not log this port list' => 'Ne pas logguer cette liste de ports (réduit les logs)', \r
+'dod' => 'Connexion sur demande', \r
+'dod for dns' => 'Connexion sur requête DNS:', \r
+'dod not compatible with ddns' => 'Le dial on demand ne fonctionne pas avec les services dyndns', \r
+'dod waiting' => 'En attente de connexion à la demande', \r
+'domain' => 'Domaine', \r
+'domain name' => 'Nom de domaine', \r
+'domain name suffix' => 'Suffixe de nom de domaine:', \r
+'domain not set' => 'Domaine non défini.', \r
+'downlink speed' => 'Vitesse descendante (kbit/sec)', \r
+'download ca certificate' => 'Télécharger le certificat CA', \r
+'download certificate' => 'Télécharger le certificat', \r
+'download host certificate' => 'Télécharger le certificat système', \r
+'download new ruleset' => 'Télécharger de nouvelles règles', \r
+'download pkcs12 file' => 'Télécharger un fichier PKCS12', \r
+'download root certificate' => 'Télécharger le certificat racine', \r
+'dpd action' => 'Action quand le \'pair\' disparait', \r
+'driver' => 'Pilote', \r
+'dst port' => 'Port destination', \r
+'dstprt range overlaps' => 'La plage de ports de destination recouvre un port déjà défini.', \r
+'dstprt within existing' => 'Le port destination est déjà inclus dans une plage existante.', \r
+'duplicate ip' => 'Adresse IP saisie dupliquée', \r
+'duplicate ip bold' => '<b>Gras:</b> Adresses dupliquées', \r
+'duplicate mac' => 'La MAC adresse saisie existe déjà', \r
+'duplicate name' => 'Ce nom est déjà utilisé, merci d\'en choisir un autre.', \r
+'dyn dns source choice' => 'L\'IP fournie aux fournisseurs de service de nom dynamique sera obtenue de cette manière:', \r
+'dynamic dns' => 'DNS Dynamique', \r
+'dynamic dns client' => 'Client DNS Dynamique', \r
+'e-mail address too long' => 'L\'adresse courriel est trop longue: limitée à 40 caractères.', \r
+'eciadsl help' => 'Pour utiliser un modem ECI ADSL, vous devez télécharger sur votre machine IPCop un pilote. Récupérez l\'archive sur le site Internet de ECIADSL, puis, à l\'aide du formulaire ci-dessous, transférez le fichier <b>synch.bin</b>.', \r
+'eciadsl upload' => 'Télécharger ECI ADSL Synch.bin pilote matériel', \r
+'edit' => 'Modifier', \r
+'edit a rule' => 'Modifier une règle existante', \r
+'edit advanced settings when done' => 'Poursuivre avec la configuration avancée.', \r
+'edit an existing alias' => 'Modifier un alias existant', \r
+'edit an existing host' => 'Modifier un hôte existant', \r
+'edit an existing lease' => 'Modifier un bail existant', \r
+'edit device' => 'Modifier un Client', \r
+'edit hosts' => 'Hôtes statiques', \r
+'edit network' => 'Configurer le réseau', \r
+'edit service' => 'Modifier les services', \r
+'eg' => 'càd :', \r
+'empty' => 'Vide', \r
+'enable ignore filter' => 'Activation du filtre', \r
+'enable javascript' => 'Autoriser le javascript', \r
+'enable wildcards' => 'Activer les jokers:', \r
+'enabled' => 'Activé:', \r
+'enabled on' => 'Activé sur', \r
+'enabledtitle' => 'Activé', \r
+'encapsulation' => 'Encapsulation', \r
+'encrypted' => 'Encrypté', \r
+'end address' => 'Adresse de fin:', \r
+'err bk 1' => 'Erreur lors de la création de l\'archive', \r
+'err bk 2 key' => 'Erreur sur la création du fichier de clé', \r
+'err bk 3 tar' => 'Erreur lors de l\'ajout de fichiers à l\'archive', \r
+'err bk 4 gz' => 'Erreur lors de la compression de l\'archive', \r
+'err bk 5 encrypt' => 'Erreur lors de l\'encryptage de l\'archive', \r
+'err rs 1' => 'Erreur lors de la restauration de l\'archive', \r
+'err rs 6 decrypt' => 'Erreur lors du décryptage de l\'archive', \r
+'err rs 7 untartst' => 'Archive non valide', \r
+'err rs 8 untar' => 'Erreur lors de l\'extraction de l\'archive', \r
+'error messages' => 'Messages d\'erreur:', \r
+'esp encryption' => 'Encryptage ESP : ', \r
+'esp grouptype' => 'Grouptype ESP :', \r
+'esp integrity' => 'Intégrité ESP :', \r
+'esp keylife' => 'Durée de vie de la clé ESP : ', \r
+'esp keylife should be between 1 and 24 hours' => 'La durée de vie de la clé ESP doit être comprise entre 1 et 24 heures.', \r
+'every' => 'Tout(e)s les', \r
+'excluding buffers and cache' => '-/+ tampon/cache', \r
+'expected' => 'attendu', \r
+'expires' => 'expire', \r
+'export' => 'Exporter', \r
+'external access' => 'Accès externes', \r
+'external access configuration' => 'Configuration des accès externes', \r
+'external access rule added' => 'Règle d\'accès externe ajoutée; redémarrage', \r
+'external access rule removed' => ' Règle d\'accès externe supprimée; redémarrage', \r
+'external aliases configuration' => 'Configuration alias externes', \r
+'february' => 'Février', \r
+'fetch ip from' => 'Deviner la véritable IP publique à l\'aide d\'un serveur extérieur', \r
+'filename' => 'Nom de fichier', \r
+'filesystem full' => 'Disque plein', \r
+'firewall' => 'Pare-feu', \r
+'firewall hits' => 'Nombre total d\'accès au pare-feu pour', \r
+'firewall log' => 'Journal du pare-feu ', \r
+'firewall log viewer' => 'Voir journal du pare-feu', \r
+'firewall logs' => 'Journaux du pare-feu', \r
+'firmware' => 'Pilote matériel', \r
+'firmware upload' => 'Transferts pilotes matériels', \r
+'fixed ip lease added' => 'Bail d\'adresse IP fixe ajouté', \r
+'fixed ip lease modified' => 'Bail d\'adresse IP fixe modifié', \r
+'fixed ip lease removed' => 'Bail d\'adresse IP fixe supprimé', \r
+'force update' => 'Forcer la mise à jour', \r
+'forwarding rule added' => 'Règle de transfert ajoutée; redémarrage', \r
+'forwarding rule removed' => 'Règle de transfert supprimée; redémarrage', \r
+'forwarding rule updated' => 'Règle de transfert mise à jour; redémarrage', \r
+'free' => 'Libre', \r
+'free memory' => 'Mémoire disponible', \r
+'free swap' => 'Mémoire paginée libre', \r
+'friday' => 'Vendredi', \r
+'fritzdsl help' => 'Pour utiliser un des modems fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb, vous devez télécharger un paquetage de fichiers dans IPCop. Récupérez sur le site web d\'IPCop le paquetage correspondant à votre version et chargez l\'ensemble du <b>fcdsl-(votre_version).tgz</b> en utilisant les boutons ci-dessous.', \r
+'fritzdsl upload' => 'Télécharger Fritz!DSL pilote matériel', \r
+'from' => 'De', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Passerelle', \r
+'gateway ip' => 'Passerelle IP', \r
+'generate a certificate' => 'Générer un certificat : ', \r
+'generate root/host certificates' => 'Génération des certificats racine et système', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'La génération des certificats racine et système peut être longue. Il peut prendre plusieurs minutes sur une machine ancienne. Soyez patient.', \r
+'global settings' => 'Paramètres généraux', \r
+'graph' => 'Graphique', \r
+'graph per' => 'Graphique suivant', \r
+'green' => 'VERT', \r
+'green interface' => 'Interface VERTE', \r
+'gui settings' => 'Interface Graphique', \r
+'gz with key' => 'Seule une archive encryptée peut être restaurée sur cette machine.', \r
+'hangup' => 'Déconnexion', \r
+'hangup string' => 'Déconnexion:', \r
+'high' => 'Haut', \r
+'high memory usage' => 'Utilisation de la mémoire haute', \r
+'holdoff' => 'Durée d\'attente (secondes)', \r
+'host' => 'Hôte', \r
+'host certificate' => 'Certificat système', \r
+'host configuration' => 'Configuration du serveur', \r
+'host ip' => 'Adresse IP de la machine', \r
+'host to net vpn' => 'RPV système à réseau (RoadWarrior)', \r
+'hostname' => 'Nom d\'hôte', \r
+'hostname and domain already in use' => 'Nom d\'hôte et domaine déjà utilisés.', \r
+'hostname cant be empty' => 'Le nom du système ne peut être vide.', \r
+'hostname not set' => 'Nom d\'hôte non défini.', \r
+'hosts config added' => 'configuration des systèmes ajoutée', \r
+'hosts config changed' => 'configuration des systèmes modifiée', \r
+'hours' => 'heures', \r
+'hours2' => 'Heures', \r
+'ibod for dual isdn only' => 'iBOD ne peut être utilisé qu\'avec une ligne RNIS (ISDN) double.', \r
+'icmp selected but no type' => 'Protocole ICMP sélectionné, mais pas de type ICMP indiqué.', \r
+'icmp type' => 'Type ICMP', \r
+'id' => 'Numéro', \r
+'idle' => 'Inactif', \r
+'idle cpu' => 'Inactivité du CPU ', \r
+'idle cpu usage' => 'CPU inactive', \r
+'idle timeout' => 'Durée maximale d\'inactivité (en minutes, 0 pour désactiver):', \r
+'idle timeout not set' => 'Temps maximum d\'inactivité non défini.', \r
+'ids log viewer' => 'Voir le journal IDS', \r
+'ids logs' => 'Journaux IDS', \r
+'ids rules license' => 'Pour utiliser les règles certifiées VRT Sourcefire, vous devez vous enregistrer', \r
+'ids rules license2' => 'Validez votre license, recevez votre mot de passe par courriel et connectez vous sur le site. Allez à ', \r
+'ids rules license3' => 'appuyez sur \'Get Code\' en bas et copiez les 40 caractères du code Oink.', \r
+'ids rules update' => 'Mise à jour des règles Snort', \r
+'iface' => 'Interface', \r
+'ignore filter' => 'Filtre', \r
+'ike encryption' => 'Encryptage IKE :', \r
+'ike grouptype' => 'Grouptype IKE :', \r
+'ike integrity' => 'Intégrité IKE :', \r
+'ike lifetime' => 'Durée de vie IKE :', \r
+'ike lifetime should be between 1 and 8 hours' => 'La durée de vie IKE doit être comprise entre 1 et 8 heures.', \r
+'import' => 'Importer', \r
+'in' => 'Entrée', \r
+'incoming traffic in bytes per second' => 'Trafic entrant (octets par seconde)', \r
+'info' => 'Informations', \r
+'init string' => 'Initialisation:', \r
+'insert floppy' => 'Insérez une disquette dans le lecteur d\'IPCop et cliquez sur <i>Sauvegarde sur disquette</i> pour sauvegarder la configuration de votre système.  Veuillez contrôler avec attention les résultats afin d\'être sûr que la sauvegarde a bien été réalisée.<p>', \r
+'install new update' => 'Installer une nouvelle mise à jour:', \r
+'installed' => 'Installé', \r
+'installed updates' => 'Mises à jour installées:', \r
+'instant update' => 'Mise à jour immédiate', \r
+'interface' => 'Interface', \r
+'interfaces' => 'Interfaces:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Détection Intrusion', \r
+'intrusion detection system' => 'Système de détection d\'intrusions', \r
+'intrusion detection system log viewer' => 'Voir le journal du système de détection d\'intrusion', \r
+'intrusion detection system2' => 'Système de Détection des Intrusions:', \r
+'invalid broadcast ip' => 'IP broadcast invalide', \r
+'invalid cache size' => 'Taille du cache invalide.', \r
+'invalid characters found in pre-shared key' => 'Caractères non valides dans la clé partagée.', \r
+'invalid date entered' => 'Date saisie invalide.', \r
+'invalid default lease time' => 'Durée de bail par défaut invalide.', \r
+'invalid domain name' => 'Nom de domaine invalide.', \r
+'invalid downlink speed' => 'Vitesse du lien descendant invalide', \r
+'invalid end address' => 'Adresse de fin invalide.', \r
+'invalid fixed ip address' => 'Adresse IP invalide', \r
+'invalid fixed mac address' => 'Adresse MAC invalide', \r
+'invalid hostname' => 'Nom d\'hôte invalide.', \r
+'invalid input' => 'Information invalide', \r
+'invalid input for authentication method' => 'Méthode d\'authentification saisie invalide.', \r
+'invalid input for city' => 'Champ ville invalide', \r
+'invalid input for country' => 'Champ pays invalide', \r
+'invalid input for department' => 'Champ département invalide', \r
+'invalid input for e-mail address' => 'Adresse courriel invalide', \r
+'invalid input for esp keylife' => 'Durée de vie pour la clé ESP invalide', \r
+'invalid input for hostname' => 'Nom du système invalide.', \r
+'invalid input for ike lifetime' => 'Durée de vie IKE invalide', \r
+'invalid input for name' => 'Nom d\'utilisateur ou de système invalide', \r
+'invalid input for oink code' => 'Saisie incorrecte d\'un code Oink', \r
+'invalid input for organization' => 'Organisation invalide', \r
+'invalid input for remote host/ip' => 'Adresse IP ou nom du système distant invalide.', \r
+'invalid input for state or province' => 'Etat ou région invalide', \r
+'invalid ip' => 'Adresse IP invalide', \r
+'invalid keep time' => 'Le délai de conservation doit être un nombre', \r
+'invalid key' => 'Clé invalide.', \r
+'invalid loaded file' => 'Fichier chargé non valide', \r
+'invalid local-remote id' => 'Quand les valeurs leftid et rightid sont utilisées, elles doivent être distinctes et commencer par un "@". Les champs sont ceux utilisés dans la terminologie openswan.', \r
+'invalid logserver address' => 'Adresse du serveur syslogd incorrecte', \r
+'invalid max lease time' => 'Durée maximale de bail invalide.', \r
+'invalid maximum incoming size' => 'Taille maximale d\'entrée invalide.', \r
+'invalid maximum object size' => 'Taille maximale d\'objet invalide.', \r
+'invalid maximum outgoing size' => 'Taille maximale de sortie invalide.', \r
+'invalid md5sum' => 'Contrôle MD5 invalide', \r
+'invalid minimum object size' => 'Taille minimale d\'objet invalide.', \r
+'invalid netmask' => 'Masque réseau invalide', \r
+'invalid port' => 'Port invalide. Doit être un numéro de port valide.', \r
+'invalid port list' => 'Syntaxe de la liste de port: port[,port]... ou port est un nom dans /etc/services ou un numéro', \r
+'invalid primary dns' => 'DNS primaire invalide.', \r
+'invalid primary ntp' => 'Adresse de Serveur NTP primaire invalide', \r
+'invalid secondary dns' => 'DNS secondaire invalide.', \r
+'invalid secondary ntp' => 'Adresse de Serveur NTP secondaire invalide', \r
+'invalid start address' => 'Adresse de départ invalide.', \r
+'invalid time entered' => 'Heure saisie invalide.', \r
+'invalid time period' => 'Durée invalide', \r
+'invalid uplink speed' => 'Vitesse du lien montant invalide.', \r
+'invalid upstream proxy username or password setting' => 'Nom d\'utilisateur ou mot de passe du serveur mandataire distant invalide.', \r
+'invalid vpi vpci' => 'Paramétres VPI/VPCI invalides', \r
+'invalid wins address' => 'Adresse du serveur Wins invalide.', \r
+'invert' => 'Inverser', \r
+'ip address' => 'Adresse IP', \r
+'ip address in use' => 'Adresse IP déjà utilisée', \r
+'ip address outside subnets' => 'L\'adresse IP n\'appartient à aucun \'subnet\' défini', \r
+'ip alias added' => 'Alias IP externe ajouté', \r
+'ip alias changed' => 'Alias IP externe modifié', \r
+'ip alias removed' => 'Alias IP externe supprimé', \r
+'ip info' => 'Informations IP', \r
+'ipcop has now rebooted' => 'IPCop redémarre actuellement.', \r
+'ipcop has now shutdown' => 'IPCop est maintenant arrêté.', \r
+'ipcop side' => 'Côté IPCOP : ', \r
+'ipcop side is invalid' => 'La partie IPCOP est incorrecte.', \r
+'ipcops hostname' => 'Nom d\'hôte d\'IPCop', \r
+'ipinfo' => 'Informations sur l\'adresse IP', \r
+'isdn' => 'RNIS (ISDN)', \r
+'isdn settings' => 'Configuration RNIS (ISDN) complémentaire:', \r
+'isdn1' => 'RNIS (ISDN) simple', \r
+'isdn2' => 'RNIS (ISDN) double', \r
+'january' => 'Janvier', \r
+'javascript menu error1' => 'Si le menu déroulant ne fonctionne pas, désactiver Javascript sur la page:', \r
+'javascript menu error2' => '&nbsp;', \r
+'july' => 'Juillet', \r
+'june' => 'Juin', \r
+'kernel' => 'Noyau', \r
+'kernel logging server' => 'Serveur d\'enregistrement des journaux du noyau', \r
+'kernel version' => 'Version du noyau:', \r
+'lan' => 'réseau local', \r
+'languagepurpose' => 'Choisissez la langue que vous souhaitez voir IPCop utiliser:', \r
+'lease expires' => 'Bail expiré', \r
+'legend' => 'Légende', \r
+'line' => 'Ligne', \r
+'loaded modules' => 'Modules chargés:', \r
+'local ntp server specified but not enabled' => 'Le serveur local NTP specifié n\'est pas activé.', \r
+'local subnet' => 'Sous-réseau local : ', \r
+'local subnet is invalid' => 'Le sous-réseau local est invalide.', \r
+'local vpn hostname/ip' => 'Nom d\'hôte ou IP locale du RPV', \r
+'log' => 'Journaux:', \r
+'log enabled' => 'Journaux activés', \r
+'log lines per page' => 'Nombre de lignes par page', \r
+'log server address' => 'Serveur syslog', \r
+'log settings' => 'Configuration des journaux', \r
+'log summaries' => 'Résumés des journaux', \r
+'log summary' => 'Résumé des journaux', \r
+'log viewer' => 'Visualisation des journaux', \r
+'log viewing options' => 'Options de visualisation des journaux', \r
+'logging server' => 'Serveur d\'enregistrement de journaux', \r
+'loginlogout' => 'Connexions SSH', \r
+'lookup failed' => 'Résolution de nom ratée', \r
+'low' => 'Faible', \r
+'ls_dhcpd' => 'Serveur DHCP:', \r
+'ls_disk space' => 'Espace disque:', \r
+'ls_free/swan' => 'RPV: ', \r
+'ls_httpd' => 'Serveur HTTP:', \r
+'ls_init' => 'Démarrage', \r
+'ls_kernel' => 'Noyau et pare-feu: ', \r
+'ls_modprobe' => 'Chargeur de module : ', \r
+'ls_pam_unix' => 'Connexions utilisateur local : ', \r
+'ls_sshd' => 'Connexions utilisateur distant : ', \r
+'ls_syslogd' => 'Syslogd :', \r
+'mac address' => 'Adresse MAC', \r
+'mac address in use' => 'Adresse MAC déjà utilisée', \r
+'main page' => 'Page principale', \r
+'manual' => 'Manuel', \r
+'manual control and status' => 'Contrôle manuel et statut:', \r
+'manually' => 'Manuellement', \r
+'march' => 'Mars', \r
+'marked' => 'marqué', \r
+'max incoming size' => 'Taille maximale d\'entrée (Ko):', \r
+'max lease time' => 'Durée maximale du bail (minutes):', \r
+'max outgoing size' => 'Taille maximale de sortie (Ko):', \r
+'max renewal time' => 'Durée maximale de renouvellement', \r
+'max retries not set' => 'Nombre maximum de tentatives non spécifié.', \r
+'max size' => 'Taille maximale d\'objet (Ko):', \r
+'maximal' => 'Maximal', \r
+'maximum retries' => 'Nombre maximum d\'essais:', \r
+'may' => 'Mai', \r
+'medium' => 'Moyen', \r
+'memory' => 'Mémoire:', \r
+'memory usage per' => 'Utilisation mémoire par', \r
+'method' => 'Méthode:', \r
+'min size' => 'Taille minimale d\'objet (Ko):', \r
+'minutes' => 'Minutes', \r
+'missing dat' => 'Archive encryptée non trouvée', \r
+'missing gz' => 'Archive non trouvée', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Configuration du modem', \r
+'modem on com1' => 'Modem sur COM1', \r
+'modem on com2' => 'Modem sur COM2', \r
+'modem on com3' => 'Modem sur COM3', \r
+'modem on com4' => 'Modem sur COM4', \r
+'modem on com5' => 'Modem sur COM5', \r
+'modem settings have errors' => 'Les paramètres du modem contiennent des erreurs', \r
+'modem speaker on' => 'Haut-parleur du modem actif:', \r
+'modulation' => 'Modulation', \r
+'monday' => 'Lundi', \r
+'month' => 'Mois', \r
+'months' => 'mois', \r
+'mounted on' => 'Monté sur', \r
+'name' => 'Nom', \r
+'name is invalid' => 'Le nom est invalide', \r
+'name must only contain characters' => 'Le nom ne doit contenir que des caractères.', \r
+'name too long' => 'Nom d\'utilisateur ou de système trop long', \r
+'nat-traversal' => 'Nat traversal :', \r
+'net' => 'Réseau', \r
+'net to net vpn' => 'RPV réseau à réseau', \r
+'netmask' => 'Masque réseau', \r
+'network' => 'Réseau', \r
+'network added' => 'Réseau ajouté', \r
+'network configuration' => 'Configuration du réseau', \r
+'network removed' => 'Réseau supprimé', \r
+'network status information' => 'Information sur l\'état du réseau', \r
+'network time' => 'Utilisation d\'un Serveur de temps réseau:', \r
+'network time from' => 'Obtenir l\'heure depuis un serveur internet', \r
+'network traffic graphs' => 'Courbes de trafic réseau', \r
+'network updated' => 'Réseau mis à jour', \r
+'networks settings' => 'Pare-feu - Configuration du réseau', \r
+'new optionsfw later' => 'Les changements seront activés au prochain redémarrage ', \r
+'new optionsfw must boot' => 'Vous devez redémarrer votre Ipcop', \r
+'newer' => 'Plus récent', \r
+'no' => 'Non', \r
+'no alcatelusb firmware' => 'Aucun pilote matériel USB Alcatel. Veuillez le télécharger.', \r
+'no cfg upload' => 'Pas de donnée transférée', \r
+'no dhcp lease' => 'Aucun bail DHCP obtenu', \r
+'no eciadsl synch.bin file' => 'Aucun fichier ECI ADSL synch.bin. Veuillez le transférer.', \r
+'no fritzdsl driver' => 'Pas de pilote Fritz!DSL. Veuillez le transférer.', \r
+'no information available' => 'Aucune donnée disponible.', \r
+'no modem selected' => 'Pas de modem sélectionné', \r
+'no set selected' => 'Aucun ensemble choisi', \r
+'no time limit' => 'n\'expire pas', \r
+'none found' => 'aucune entrée trouvée', \r
+'nonetworkname' => 'Pas de nom réseau saisi', \r
+'noservicename' => 'Pas de nom de service saisi', \r
+'not a valid ca certificate' => 'Le certificat CA n\'est pas valide.', \r
+'not enough disk space' => 'Pas assez d\'espace sur le disque', \r
+'not present' => '<b>Non</b> présent', \r
+'not running' => 'En arrêt', \r
+'november' => 'Novembre', \r
+'ntp configuration' => 'Configuration NTP', \r
+'ntp must be enabled to have clients' => 'NTP doit être activé pour avoir des clients.', \r
+'ntp server' => 'Serveur NTP', \r
+'ntp syncro disabled' => 'Synchronisation NTP désactivée', \r
+'ntp syncro enabled' => 'Synchronisation NTP activée', \r
+'ntpd restarted' => 'ntpd redémarré', \r
+'number' => 'Numéro:', \r
+'october' => 'Octobre', \r
+'older' => 'Plus ancien', \r
+'online help en' => 'Aide en ligne (en anglais)', \r
+'only digits allowed in holdoff field' => 'Seuls les chiffres sont permis pour la durée', \r
+'only digits allowed in max retries field' => 'Seuls les chiffres sont permis pour le nombre maximum de tentatives.', \r
+'only digits allowed in the idle timeout' => 'Seuls les chiffres sont permis pour le délai d\'inactivité.', \r
+'only red' => 'Seulement ROUGE', \r
+'open to all' => 'Supprimer l\'accès externe pour TOUS', \r
+'openssl produced an error' => 'OpenSSL a généré une erreur', \r
+'options' => 'Options', \r
+'options fw' => 'Options du firewall', \r
+'optionsfw portlist hint' => 'La liste des ports, séparé par une virgule (càd 137,138,name,...) , peut contenir 15 éléments pour chaque protocole.', \r
+'optionsfw warning' => 'Modifier ces options implique un redémarrage du firewall', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'L\'Organisation ne peut être vide.', \r
+'organization name' => 'Nom d\'Organisation', \r
+'organization too long' => 'Nom d\'Organisation trop long; limité à 60 caractères.', \r
+'original' => 'original', \r
+'other countries' => 'Autres pays', \r
+'other login script' => 'Autre script d\'identification', \r
+'out' => 'Sortie', \r
+'outgoing traffic in bytes per second' => 'Trafic en sortie (octets par seconde)', \r
+'override mtu' => 'MTU de remplacement', \r
+'package failed to install' => 'L\'archive n\'a pu être installée.', \r
+'pap or chap' => 'PAP ou CHAP', \r
+'password' => 'Mot de passe:', \r
+'password contains illegal characters' => 'Le mot de passe contient des caractères non autorisés.', \r
+'password not set' => 'Mot de passe non défini.', \r
+'password too short' => 'Mot de passe trop court', \r
+'passwords do not match' => 'Les mots de passe ne concordent pas.', \r
+'passwords must be at least 6 characters in length' => 'Les mots de passe doivent faire au moins 6 caractères', \r
+'percentage' => 'Pourcentage', \r
+'persistent' => 'Persistant', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Phase1 Group', \r
+'phonebook entry' => 'Entrée dans le répertoire téléphonique:', \r
+'ping disabled' => 'Désactive le ping', \r
+'pkcs12 file password' => 'Mot de passe du fichier PKCS12', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Configuration du transfert de ports', \r
+'ports' => 'Ports', \r
+'pots' => 'Ligne commutée classique (RTC)', \r
+'ppp setup' => 'Paramétrage PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Configuration avancée PPPoE:', \r
+'pptp settings' => 'Configuration avancée PPTP:', \r
+'pre-shared key is too short' => 'La clé partagée est trop courte.', \r
+'present' => 'Présent', \r
+'primary dns' => 'DNS primaire:', \r
+'primary ntp server' => 'NTP primaire', \r
+'primary wins server address' => 'WINS primaire', \r
+'priority' => 'Priorité', \r
+'profile' => 'Profil', \r
+'profile deleted' => 'Profil supprimé: ', \r
+'profile has errors' => 'Ce profil comporte des erreurs', \r
+'profile made current' => 'Profil en cours: ', \r
+'profile name' => 'Nom du profil:', \r
+'profile name not given' => 'Nom du profil non défini.', \r
+'profile saved' => 'Profil enregistré: ', \r
+'profiles' => 'Profils:', \r
+'proto' => 'Proto', \r
+'protocol' => 'Protocole', \r
+'proxy' => 'Serveur mandataire (proxy)', \r
+'proxy access graphs' => 'Courbes d\'utilisation du serveur mandataire', \r
+'proxy log viewer' => 'Voir le journal du serveur mandataire', \r
+'proxy logs' => 'Journaux du serveur mandataire', \r
+'proxy port' => 'Port serveur mandataire', \r
+'psk' => 'Clé partagée (PSK)', \r
+'pulse' => 'Impulsions', \r
+'pulse dial' => 'Numérotation par impulsions:', \r
+'ram' => 'Mémoire', \r
+'read sectors' => 'Secteurs lus', \r
+'reboot' => 'Redémarrer', \r
+'reboot schedule' => 'Programmation des redémarrages d\'IPCop', \r
+'rebooting' => 'Redémarrage en cours', \r
+'rebooting ipcop' => 'Redémarrage d\'IPCop', \r
+'reconnection' => 'Reconnexion', \r
+'references' => 'Références', \r
+'refresh' => 'Rafraîchir', \r
+'refresh index page while connected' => 'Rafraîchissement automatique de la page d\'accueil', \r
+'refresh update list' => 'Rafraîchir la liste des mises à jour', \r
+'registered user rules' => 'Règles VRT Sourcefire pour utilisateurs enregistrés', \r
+'released' => 'Produit', \r
+'remark' => 'Remarque', \r
+'remark title' => 'Remarque:', \r
+'remote access' => 'Accès à distance', \r
+'remote host/ip' => 'Serveur/IP distant', \r
+'remote logging' => 'Enregistrement des journaux à distance', \r
+'remote subnet' => 'Sous-réseau distant : ', \r
+'remote subnet is invalid' => 'Le sous-réseau distant est invalide.', \r
+'remove' => 'Supprimer', \r
+'remove ca certificate' => 'Supprimer le certificat CA', \r
+'reserved dst port' => 'Le port destination est réservé à IPCop seulement:', \r
+'reserved src port' => 'Le port source est réservé à IPCop seulement:', \r
+'reset' => 'RAZ config', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'La mise a zéro de la configuration RPV supprimera le CA racine, le certificat hôte et toutes les connexions basées sur le certificat', \r
+'restart' => 'Redémarrer', \r
+'restore' => 'Restaurer', \r
+'restore defaults' => 'Restaurer les paramètres par défaut', \r
+'restore hardware settings' => 'Restaurer les paramètres matériels', \r
+'reverse sort' => 'Classer par ordre chronologique inverse', \r
+'root certificate' => 'Certificat Racine', \r
+'root path' => 'Chemin racine', \r
+'router ip' => 'Adresse du routeur IP:', \r
+'routing table entries' => 'Entrées de la table de routage', \r
+'rsvd dst port overlap' => 'La plage de ports destination comporte un port réservé pour IPCop:', \r
+'rsvd src port overlap' => 'La plage de ports source comporte un port réservé pour IPCop:', \r
+'rules already up to date' => 'Règles déjà à jour', \r
+'running' => 'En fonction', \r
+'saturday' => 'Samedi', \r
+'save' => 'Enregistrer', \r
+'save error' => 'Impossible d\'enregistrer la configuration', \r
+'script name' => 'Nom du script:', \r
+'secondary dns' => 'DNS secondaire:', \r
+'secondary ntp server' => 'NTP secondaire', \r
+'secondary wins server address' => 'WINS secondaire', \r
+'seconds' => 'secondes', \r
+'section' => 'Section', \r
+'sectors read from disk per second' => 'Secteurs lus sur disque par seconde', \r
+'sectors written to disk per second' => 'Secteurs écrits sur le disque par seconde', \r
+'secure shell server' => 'Serveur d\'accès à distance sécurisé (SSH)', \r
+'select' => 'Sélection', \r
+'select dest net' => 'Sélectionner le réseau de destination', \r
+'select source net' => 'Sélectionner un réseau d\'origine. Sans réseau Orange ou Bleu, vous n\'avez pas besoin de point d\'entrée DMZ', \r
+'send cr' => 'Un retour chariot (CR) est requis par le FAI:', \r
+'september' => 'Septembre', \r
+'serial' => 'Série', \r
+'service' => 'Service', \r
+'service added' => 'Service réseau personnalisé ajouté', \r
+'service name' => 'Nom du service:', \r
+'service removed' => 'Service réseau personnalisé supprimé', \r
+'service updated' => 'Service réseau personnalisé mis à jour', \r
+'servicename' => 'Nom du service', \r
+'services' => 'Services:', \r
+'services settings' => 'Pare-feu - Paramètres des services', \r
+'set time now' => 'Obtenir l&#039;heure', \r
+'set time now help' => 'Pour demander une synchronisation horaire maintenant, appuyez sur le bouton <i>Obtenir l\'heure</i>. L\'opération peut prendre quelques minutes.', \r
+'settings' => 'Configuration', \r
+'shaping add options' => 'Ajout du service', \r
+'shaping list options' => 'Services du lissage de trafic (shaping)', \r
+'shared' => 'Partagé', \r
+'shared memory' => 'Mémoire partagée', \r
+'show ca certificate' => 'Afficher le Certificat CA', \r
+'show certificate' => 'Afficher le Certificat', \r
+'show host certificate' => 'Afficher le Certificat Système', \r
+'show root certificate' => 'Afficher le Certificat Racine', \r
+'shutdown' => 'Arrêter', \r
+'shutdown control' => 'Contrôle de l\'arrêt d\'IPCop', \r
+'shutdown2' => 'Arrêter:', \r
+'shutting down' => 'Arrêt en cours', \r
+'shutting down ipcop' => 'Arrêt d\'IPCop en cours', \r
+'size' => 'Taille', \r
+'snort hits' => 'Nombre total de règles d\'intrusion activées pour', \r
+'sort ascending' => 'Tri croissant', \r
+'sort descending' => 'Tri décroissant', \r
+'sound' => 'Bips d\'avertissement', \r
+'source' => 'Source', \r
+'source ip' => 'Adresse IP source', \r
+'source ip and port' => 'SRC IP:Port', \r
+'source ip bad' => 'L\'adresse IP ou la plage d\'adresses n\'est pas valide.', \r
+'source ip in use' => 'Adresse IP source utilisée', \r
+'source ip or net' => 'IP ou Réseau source', \r
+'source net' => 'Réseau d\'origine', \r
+'source network' => 'Adresse IP source ou réseau (vide pour "Tout"):', \r
+'source port' => 'Port source', \r
+'source port in use' => 'Port source utilisé:', \r
+'source port numbers' => 'Le port source doit être un numéro de port ou une plage de ports valide.', \r
+'source port overlaps' => 'La plage de ports source déborde sur une plage de ports déjà définie.', \r
+'speaker off' => 'Haut-parleur désactivé:', \r
+'speaker on' => 'Haut-parleur activé:', \r
+'squid extension methods' => 'Votre liste <tt>extension_methods</tt>', \r
+'squid extension methods invalid' => 'Votre liste \'extension_methods\' ne peut contenir que mot+chiffres en majuscules.', \r
+'src port' => 'Port source', \r
+'srcprt range overlaps' => 'La plage de ports source comporte un port déjà défini. ', \r
+'srcprt within existing' => 'Le port source est déjà inclus dans une plage existante.', \r
+'ssdmz pinholes' => 'Accès à la DMZ', \r
+'ssh access' => 'Accès SSH', \r
+'ssh fingerprint' => 'Empreinte', \r
+'ssh host keys' => 'Clés d\'hôtes SSH', \r
+'ssh is disabled' => 'Désactivation de l\'accès à distance sécurisé (SSH). Arrêt.', \r
+'ssh is enabled' => 'Activation de l\'accès à distance sécurisé (SSH). Redémarrage.', \r
+'ssh key' => 'Clé', \r
+'ssh key size' => 'Taille (bits)', \r
+'ssh keys' => 'Permettre l\'authentification par clef publique', \r
+'ssh no auth' => 'Vous n\'avez pas indiqué de méthode d\'authentification ; vous ne pourrez pas vous logguez', \r
+'ssh passwords' => 'Permettre  l\'authentification par mot de passe', \r
+'ssh portfw' => 'Autorise le transfert TCP', \r
+'ssh1 disabled' => 'SSHv1 est désactivé, un client v2 est requis', \r
+'ssh1 enabled' => 'SSHv1 est activé, les anciens clients sont supportés.', \r
+'ssh1 support' => 'Support du protocole SSH version 1 (requis uniquement pour les clients anciens)', \r
+'ssnetwork status' => 'Etat du réseau', \r
+'sspasswords' => 'Mots de passe', \r
+'ssport forwarding' => 'Transferts de ports', \r
+'ssproxy graphs' => 'Graphes du proxy', \r
+'sssystem status' => 'Etat du système', \r
+'sstraffic graphs' => 'Courbes de trafic', \r
+'standard login script' => 'Script d\'identification standard', \r
+'start address' => 'Adresse de départ:', \r
+'state or province' => 'Etat ou région', \r
+'static ip' => 'Adresse IP statique', \r
+'status' => 'Etat', \r
+'status information' => 'Informations d\'état', \r
+'stopped' => 'Arrêté', \r
+'subject' => 'Sujet', \r
+'subnet is invalid' => 'Masque de réseau invalide', \r
+'subscripted user rules' => 'Règles VRT Sourcefire avec enregistrement', \r
+'successfully refreshed updates list' => 'Liste des mises à jour rafraîchie avec succès.', \r
+'summaries kept' => 'Conserver les résumés pendant', \r
+'sunday' => 'Dimanche', \r
+'swap' => 'Echange', \r
+'swap usage per' => 'Utilisation de la pagination par', \r
+'system cpu' => 'CPU système', \r
+'system cpu usage' => 'CPU utilisé par le système', \r
+'system graphs' => 'Graphiques système', \r
+'system log viewer' => 'Voir le journal système', \r
+'system logs' => 'Journaux système', \r
+'system status information' => 'Informations d\'état système', \r
+'telephone not set' => 'Numéro de téléphone non défini.', \r
+'the following update was successfully installed' => 'La mise à jour suivante a été installée avec succès', \r
+'the statistics were last updated at' => 'Les statistiques ont été mises à jour la dernière fois le ', \r
+'there are updates' => 'Des mises à jour sont disponibles pour votre système. Veuillez aller dans la section "Mises à jour" pour plus d\'information.', \r
+'there are updates available' => 'Des mises à jour sont disponibles pour votre système. Il est fortement recommandé de les installer le plus rapidement possible.', \r
+'there was no file upload' => 'Aucun fichier n\'a été téléchargé.', \r
+'this feature has been sponsored by' => 'Cette fonctionnalité est sponsorisée par ', \r
+'this field may be blank' => 'Ce champ peut être vide.', \r
+'this is not a valid archive' => 'Ce n\'est pas une archive valide.', \r
+'this is not an authorised update' => 'Ceci n\'est pas une mise à jour autorisée.', \r
+'this update is already installed' => 'Cette mise à jour est déjà installée.', \r
+'thursday' => 'Jeudi', \r
+'time' => 'Heure', \r
+'time date manually reset' => 'Heure/Date remise à zéro manuellement.', \r
+'time server' => 'Serveur de temps', \r
+'timeout must be a number' => 'La durée maximale doit être un nombre.', \r
+'title' => 'Titre', \r
+'to' => 'à', \r
+'to install an update' => 'Pour installer une mise à jour, veuillez télécharger le fichier .tgz.gpg ci-dessous:', \r
+'toggle enable disable' => 'Activer ou Désactiver', \r
+'tone' => 'Tonalité', \r
+'tone dial' => 'Appel par tonalité:', \r
+'total hits for log section' => 'Nombre total d\'accès pour la section ', \r
+'traffic on' => 'Trafic sur', \r
+'traffic shaping' => 'Lissage du trafic (shaping)', \r
+'traffic shaping settings' => 'Paramétres du lissage de trafic (shaping)', \r
+'transfer limits' => 'Limites de transfert', \r
+'transparent on' => 'Mode transparent', \r
+'tuesday' => 'Mardi', \r
+'type' => 'Type', \r
+'unable to alter profiles while red is active' => 'Les profils ne peuvent être modifiés lorsque l\'interface ROUGE est active.', \r
+'unable to contact' => 'Impossible de contacter', \r
+'unencrypted' => 'Non encrypté', \r
+'unknown' => 'Inconnu', \r
+'unnamed' => 'Sans nom', \r
+'update' => 'Mise à Jour', \r
+'update time' => 'Mise à l\'heure:', \r
+'update transcript' => 'Mise à jour', \r
+'updates' => 'Mises à jour', \r
+'updates installed' => 'Mises à jour installées', \r
+'updates is old1' => 'Votre fichier de mise à jour est vieux de ', \r
+'updates is old2' => '.<br> Il est recommandé de l\'actualiser dans la section "Système/Mises à jour".', \r
+'uplink speed' => 'Vitesse montante (kbit/sec)', \r
+'upload' => 'Chargement', \r
+'upload a certificate' => 'Transférer un certificat', \r
+'upload a certificate request' => 'Transférer une demande de certificat : ', \r
+'upload ca certificate' => 'Transférer le certificat CA', \r
+'upload fcdsl.o' => 'Transférer fcdsl.o', \r
+'upload file' => 'Transférer le fichier', \r
+'upload p12 file' => 'Transférer le fichier PKCS12', \r
+'upload successful' => 'Transfert réussi.', \r
+'upload synch.bin' => 'Transférer synch.bin', \r
+'upload update file' => 'Transférer le fichier de mise à jour:', \r
+'upstream password' => 'Mot de passe du serveur mandataire distant:', \r
+'upstream proxy host:port' => 'Serveur mandataire distant (hôte:port)', \r
+'upstream username' => 'Nom d\'utilisateur du serveur mandataire distant:', \r
+'uptime and users' => 'Durée de fonctionnement et utilisateurs:', \r
+'usb modem on acm0' => 'Modem USB sur ACM0', \r
+'usb modem on acm1' => 'Modem USB sur ACM1', \r
+'usb modem on acm2' => 'Modem USB sur ACM2', \r
+'usb modem on acm3' => 'Modem USB sur ACM3', \r
+'use' => 'utilisé', \r
+'use a pre-shared key' => 'Utiliser une clé partagée (PSK) : ', \r
+'use dov' => 'Utilisation des données au dessus de la voix (DOV) :', \r
+'use ibod' => 'Utilisation de la bande passante sur demande (iBOD):', \r
+'use ipcop red ip' => 'Utilisation de l\'IP RED classique de IPCop durant les connexions', \r
+'use only proposed settings' => 'Utilisez seulement les paramètres proposés.', \r
+'used' => 'Utilisé', \r
+'used memory' => 'Mémoire utilisée', \r
+'used swap' => 'Mémoire paginée utilisée', \r
+'user cpu' => 'CPU utilisateur', \r
+'user cpu usage' => 'CPU utilisé par les applications', \r
+'username' => 'Nom d\'utilisateur:', \r
+'username not set' => 'Nom d\'utilisateur non défini.', \r
+'users department' => 'Division de l\'utilisateur', \r
+'users email' => 'Adresse courriel de l\'utilisateur', \r
+'users fullname or system hostname' => 'Nom d\'utilisateur ou Nom du système (CN)', \r
+'valid root certificate already exists' => 'Un certificat racine valide existe déjà.', \r
+'vci number' => 'Numéro VCI:', \r
+'virtual private networking' => 'Réseau Privé Virtuel (VPN)', \r
+'vpi number' => 'Numéro VPI:', \r
+'vpn' => 'RPV', \r
+'vpn configuration main' => 'Configuration du RPV - Base', \r
+'vpn delayed start' => 'Délai avant de lancer le VPN (secondes)', \r
+'vpn delayed start help' => 'Si nécéssaire, ce délai permet aux modifications Dynamic DNS de se propager. 60 est un délai commun quand ROUGE possède une IP dynamique.', \r
+'vpn mtu invalid' => 'La valeur MTU doit être un nombre ou rien!', \r
+'vpn on blue' => 'RPV sur BLEU', \r
+'waiting to synchronize clock' => 'En attente de synchronisation de l\'horloge', \r
+'warning messages' => 'Messages d\'avertissement', \r
+'web hits' => 'Nombre total de sites web répondant au critère pour', \r
+'web proxy' => 'Serveur mandataire (proxy)', \r
+'web proxy configuration' => 'Configuration du serveur mandataire (proxy)', \r
+'web server' => 'Serveur Web', \r
+'website' => 'Site web', \r
+'wednesday' => 'Mercredi', \r
+'week' => 'Semaine', \r
+'weeks' => 'semaines', \r
+'wildcards' => 'Jokers', \r
+'wireless' => 'Wifi', \r
+'wireless config added' => 'Configuration Wifi ajoutée', \r
+'wireless config changed' => 'Configuration Wifi modifiée', \r
+'wireless configuration' => 'Configuration Wifi', \r
+'written sectors' => 'Secteurs écrits ', \r
+'xtaccess all error' => 'Vous ne pouvez pas définir de règle d\'accès externe pour TOUS, Ceci peut être fait grace aux transferts de ports.', \r
+'year' => 'Année', \r
+'yes' => 'Oui', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Vous pouvez définir uniquement une connexion Roadwarrior avec l\'authentification par clé partagée.<br />Soit vous avez déjà une connexion Roadwarrior avec authentification par clé partagée, soit vous essayez d\'en rajouter une maintenant.', \r
+'your department' => 'Votre division', \r
+'your e-mail' => 'Votre adresse courriel', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/fr/install/CVS/Entries b/langs/fr/install/CVS/Entries
new file mode 100644 (file)
index 0000000..003f523
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_fr.c/1.8.2.14/Wed Dec 14 14:11:43 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/fr/install/CVS/Repository b/langs/fr/install/CVS/Repository
new file mode 100644 (file)
index 0000000..a5860d7
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/fr/install
diff --git a/langs/fr/install/CVS/Root b/langs/fr/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/fr/install/CVS/Tag b/langs/fr/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/fr/install/lang_fr.c b/langs/fr/install/lang_fr.c
new file mode 100644 (file)
index 0000000..1e11b21
--- /dev/null
@@ -0,0 +1,510 @@
+/*\r
+ * French (fr) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Bertrand Sarthre, Michel Janssens, Erwann Simon, Patrick Bernaud,\r
+ * Marc Faid'herbe, Eric Legigan, Eric Berthomier, Stèphane Le Bourdon,\r
+ * Stèphane Thirion, Jan M. Dziewulski, spoutnik, Eric Darriak, Eric Boniface,\r
+ * Franck Bourdonnec \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *fr_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Configuration de l'adresse",\r
+/* TR_ADMIN_PASSWORD */\r
+"Mot de passe 'Admin'",\r
+/* TR_AGAIN_PROMPT */\r
+"Vérification:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Toutes les cartes ont été attribuées.",\r
+/* TR_AUTODETECT */\r
+"* AUTODETECT *",\r
+/* TR_BUILDING_INITRD */\r
+"INITRD en préparation...",\r
+/* TR_CANCEL */\r
+"Annuler",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Affectation des cartes",\r
+/* TR_CHECKING */\r
+"Vérification de l'URL...",\r
+/* TR_CHECKING_FOR */\r
+"Vérification: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Choisissez la carte RNIS (ISDN) installée dans cet ordinateur.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Choisissez le protocole RNIS (ISDN) dont vous avez besoin.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Configurez le serveur DHCP en entrant les paramètres de configuration.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Configuration du réseau",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Vous devez maintenant configurer le réseau en choisissant dans un premier temps le pilote correct pour l'interface VERTE. Vous pouvez demander à ce qu'elle soit détectée automatiquement, ou choisir le pilote correct dans une liste. Notez que si vous avez plus d'une carte réseau installée, vous pourrez configurer les autres plus tard durant l'installation. Notez également que si vous possédez plusieurs cartes du même type que l'interface VERTE et que chaque carte nécessite des paramètres particuliers, vous devez entrer les paramètres pour toutes les cartes du même type afin que toutes les cartes puissent devenir actives quand vous configurez l'interface VERTE.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Configurez les pilotes réseau, et l'interface à laquelle chaque carte est affectée.  La configuration actuelle est la suivante:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Configurez le CD-ROM en choisissant l'adresse IO et/ou l'IRQ approprié(s).",\r
+/* TR_CONGRATULATIONS */\r
+"Félicitations!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s a été installé avec succès. Veuillez retirer toute disquette ou CD-ROM de l'ordinateur. L'utilitaire de configuration va maintenant s'exécuter et vous permettre de configurer les cartes réseaux, le RNIS et les mots de passe système. Une fois la configuration terminée, vous pourrez utiliser votre navigateur sur http://%s:81 ou https://%s:445 (ou tout autre nom que vous aurez donné à votre IPCop), et configurer la connexion via modem (si requise) et l'accès externe. Pensez à donner un mot de passe à l'utilisateur 'dial' %s, si vous voulez que des utilisateurs non 'admin' de %s puissent contrôler la connexion.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"La taille de votre disque dur est inférieure à celle qui est nécessaire; il vous est possible de continuer sans utilisation de mémoire paginée. (A utiliser avec précaution).",\r
+/* TR_CURRENT_CONFIG */\r
+"Configuration actuelle: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Passerelle par défaut:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Passerelle par défaut\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Bail par défaut (min):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Durée par défaut du bail\n",\r
+/* TR_DETECTED */\r
+"Carte détectée: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Nom d'hôte DHCP:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Nom d'hôte DHCP\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Configuration du serveur DHCP ",\r
+/* TR_DISABLED */\r
+"Désactivé",\r
+/* TR_DISABLE_ISDN */\r
+"Désactiver RNIS (ISDN)",\r
+/* TR_DISK_TOO_SMALL */\r
+"La capacité de votre disque dur est insuffisante.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Configuration du DNS et de la Passerelle",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Entrez les informations de DNS et de Passerelle. Ces paramètres ne sont utiles que si DHCP est désactivé pour l'interface ROUGE.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Votre configuration n'utilise pas d'adaptateur ethernet pour son interface ROUGE. Les informations de DNS et de Passerelle seront définies automatiquement au moment de la connexion.",\r
+/* TR_DOMAINNAME */\r
+"Nom de domaine",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Le nom de domaine ne peut être vide.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Le nom de domaine ne peut contenir des espaces",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Le nom de domaine ne peut contenir que des lettres, des chiffres ou les signes - et .",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Suffixe de nom de domaine:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Suffixe de nom de domaine\n",\r
+/* TR_DONE */\r
+"Continuer",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nSouhaitez-vous modifier ces paramètres ?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Affectation des pilotes et des cartes",\r
+/* TR_ENABLED */\r
+"Activé",\r
+/* TR_ENABLE_ISDN */\r
+"Activer RNIS (ISDN)",\r
+/* TR_END_ADDRESS */\r
+"Adresse de fin:",\r
+/* TR_END_ADDRESS_CR */\r
+"Adresse de fin\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Certaines cartes RNIS (particulièrement les ISA) peuvent nécessiter des paramètres additionnels du module pour configurer l'IRQ et l'adresse IO. Si vous possédez une telle carte, entrez ces paramètres. Par exemple: \"io=0x280 irq=9\". Ils seront utilisés pour la détection de la carte.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Entrez le mot de passe de l'utilisateur 'admin' de %s. C'est l'utilisateur permettant d'accéder aux pages web d'administration de %s.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Entrez le nom de domaine",\r
+/* TR_ENTER_HOSTNAME */\r
+"Entrez le nom d'hôte de la machine.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Saisissez les informations sur l'adresse IP",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"La détection automatique de la carte réseau a échoué. Entrez le pilote et les paramètres optionnels de la carte réseau.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Entrez le mot de passe de l'utilisateur 'root'. Utilisez ce login pour un accès en ligne de commande.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Entrez le mot de passe de l'utilisateur 'setup'. Utilisez ce login pour un accès à  l'utilitaire de configuration.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Entrez les informations sur l'adresse IP pour l'interface %s.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Entrez le numéro de téléphone local (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Entrez l'URL des fichiers ipcop-<version>.tgz et images/scsidrv-<version>.img. ATTENTION : le DNS n'est pas actif ! L'URL doit être de la forme 'http://X.X.X.X/<directory>'",\r
+/* TR_ERROR */\r
+"Erreur",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Erreur d'écriture du fichier de configuration.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Extraction des modules...",\r
+/* TR_FAILED_TO_FIND */\r
+"Echec dans la recherche de l'URL.",\r
+/* TR_FOUND_NIC */\r
+"%s a détecté la carte suivante sur votre machine: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"German 1TR6",\r
+/* TR_HELPLINE */\r
+"         <Tab>/<Alt-Tab> entre les éléments  |  <Espace> sélectionner",\r
+/* TR_HOSTNAME */\r
+"Nom d'hôte",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Un nom d'hôte doit être défini.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Un nom d'hôte ne peut contenir d'espaces.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Un nom d'hôte ne peut être composé que de lettres, de chiffres et de tirets.",\r
+/* TR_INITIALISING_ISDN */\r
+"Initialisation du RNIS (ISDN)...",\r
+/* TR_INSERT_CDROM */\r
+"Veuillez insérer le CD %s dans le lecteur de CD-ROM.",\r
+/* TR_INSERT_FLOPPY */\r
+"Veuillez insérer la disquette de pilotes %s dans le lecteur de disquette.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Installation annulée.",\r
+/* TR_INSTALLING_FILES */\r
+"Installation des fichiers...",\r
+/* TR_INSTALLING_GRUB */\r
+"Installation de GRUB...",\r
+/* TR_INTERFACE */\r
+"interface %s",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"L'activation de l'interface a échoué.",\r
+/* TR_INVALID_FIELDS */\r
+"Les champs suivants sont invalides:\n\n",\r
+/* TR_INVALID_IO */\r
+"L'adresse I/O saisie est invalide. ",\r
+/* TR_INVALID_IRQ */\r
+"L'IRQ saisie est invalide.",\r
+/* TR_IP_ADDRESS_CR */\r
+"Adresse IP\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"Adresse IP:",\r
+/* TR_ISDN_CARD */\r
+"Carte RNIS (ISDN)",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"Aucune carte RNIS n'a été détectée. Vous devez préciser des paramètres additionnels du module s'il s'agit d'une carte ISA ou si elle nécessite des paramètres particuliers.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Sélection de la carte RNIS (ISDN)",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Configuration RNIS (ISDN)",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Menu de configuration RNIS (ISDN)",\r
+/* TR_ISDN_NOT_SETUP */\r
+"Le RNIS (ISDN) n'est pas configuré. Certains éléments n'ont pas été sélectionnés.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"Le RNIS (ISDN) n'a pas été configuré. Choisissez l'élément que vous souhaitez configurer.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Sélection du protocole RNIS (ISDN)",\r
+/* TR_ISDN_STATUS */\r
+"RNIS est actuellement: %s.\n\n   Protocole: %s\n   Carte: %s\n   Numéro de téléphone local : %s\n\nChoisissez l'élément que vous souhaitez reconfigurer, ou choisissez d'utiliser les paramètres actuels.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Configuration du clavier",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Choisissez dans la liste ci-dessous le type de clavier que vous utilisez.",\r
+/* TR_LEASED_LINE */\r
+"Ligne louée",\r
+/* TR_LOADING_MODULE */\r
+"Chargement du module...",\r
+/* TR_LOADING_PCMCIA */\r
+"Chargement des modules PCMCIA ...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Recherche: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Création du système de fichiers boot...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Création du système de fichiers log...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Mise en place du système de fichiers racine...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Mise en place de l'espace de swap...",\r
+/* TR_MANUAL */\r
+"* MANUEL *",\r
+/* TR_MAX_LEASE */\r
+"Bail maximum (min):",\r
+/* TR_MAX_LEASE_CR */\r
+"Durée maximale du bail\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Informations d'adressage IP manquantes pour l'interface BLEUE",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Informations d'adressage IP manquantes pour l'interface ORANGE",\r
+/* TR_MISSING_RED_IP */\r
+"Informations d'adressage IP manquantes pour l'interface ROUGE",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Un nom de module doit être spécifié.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Entrez le nom du module et les paramètres requis par le pilote.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Montage du système de fichiers boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Montage du système de fichiers log...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Montage du système de fichiers racine...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Montage de la partition de swap...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Numéro de téléphone local (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Masque du réseau:",\r
+/* TR_NETWORKING */\r
+"Réseau",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Adresse du réseau\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Adresse du réseau:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Menu de configuration réseau",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Type de configuration réseau",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Choisissez la configuration réseau pour %s.  Les types de configuration suivants listent les interfaces attachées à un périphérique ethernet. Si vous modifiez cette configuration, le réseau devra être redémarré, et vous devrez redéfinir l'affectation des pilotes et des cartes.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Masque du réseau\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Echec de la configuration réseau.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Pas assez de cartes affectées.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Aucune interface BLEUE n'est définie.",\r
+/* TR_NO_CDROM */\r
+"Aucun CD-ROM détecté",\r
+/* TR_NO_HARDDISK */\r
+"Aucun disque dur détecté.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Archive ipcop non trouvée sur le serveur Web",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Aucune interface ORANGE n'est définie.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Aucune interface ROUGE n'est définie.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Image SCSI non trouvée sur le serveur Web",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Il ne reste aucune carte non attribuée or d'autres sont requises. Vous pouvez effectuer une recherche automatique, ou choisir un pilote dans la liste suivante.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Partitionnement du disque...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Les mots de passe ne correspondent pas.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Vous devez définir un mot de passe.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Le mot de passe ne peut contenir des espaces.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Mot de passe:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Un numéro de téléphone doit être entré.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Le programme d'installation va maintenant préparer le disque dur principal (%s). En premier lieu, le disque sera partitionné, puis un système de fichiers sera installé sur chacune des partitions.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Presser Ok pour redémarrer.",\r
+/* TR_PRIMARY_DNS */\r
+"DNS Primaire:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"DNS Primaire\n",\r
+/* TR_PROBE */\r
+"Rechercher",\r
+/* TR_PROBE_FAILED */\r
+"L'auto détection a échoué.",\r
+/* TR_PROBING_SCSI */\r
+"Détection des périphériques SCSI ...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Problème lors de la définition du mot de passe 'admin' de %s.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Problème lors de la définition du mot de passe 'root'.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Problème lors de la définition du mot de passe 'setup'.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protocole/Pays",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Lancement du réseau...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Arrêt du réseau...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Arrêt du réseau non local...",\r
+/* TR_QUIT */\r
+"Quitter",\r
+/* TR_RED_IN_USE */\r
+"RNIS (ou une autre connexion externe) est actuellement utilisée. Vous ne pouvez pas configurer RNIS (ISDN) si l'interface ROUGE est active.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nQuand la configuration est terminée, le réseau doit être redémarré.",\r
+/* TR_RESTORE */\r
+"Restaurer",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Si vous possédez une disquette de configuration système de %s, placez-la dans le lecteur et appuyez sur le bouton Restaurer.",\r
+/* TR_ROOT_PASSWORD */\r
+"Mot de passe 'root'",\r
+/* TR_SECONDARY_DNS */\r
+"DNS Secondaire:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"DNS Secondaire\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Un DNS Secondaire est spécifié mais aucun DNS Primaire",\r
+/* TR_SECTION_MENU */\r
+"Menu Section ",\r
+/* TR_SELECT */\r
+"Sélectionner",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Sélectionner le type de CD-ROM",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Aucun CD-ROM n'a été trouvé sur votre machine. Veuillez sélectionner le pilote que vous désirez utiliser pour que %s puisse accéder au CD-ROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Sélectionner le support pour l'installation",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s peut être installé depuis de multiples sources, le plus simple étant d'utiliser le CD-ROM fourni. Si l'ordinateur ne possède pas de lecteur de CD-ROM, vous devrez installer via une autre machine mettant à disposition les fichiers d'installation par HTTP. Dans ce cas, la disquette de pilotes réseaux sera requise.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Choisissez le pilote réseau",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Choisissez le pilote réseau pour la carte installée dans cette machine. Si vous choisissez MANUEL, vous devrez entrer le nom du module pilote et les paramètres pour les pilotes qui le requièrent, notamment pour les cartes ISA.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Choisissez l'interface que vous souhaitez reconfigurer.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Choisissez l'élément que vous souhaitez configurer.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Définition du mot de passe 'admin' de %s ....",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Définition du mot de passe 'root'....",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Définition du mot de passe 'setup'....",\r
+/* TR_SETUP_FINISHED */\r
+"L'installation est terminée. Choississez Ok pour redémarrer.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"La configuration n'est pas terminée. Vous pourrez y revenir ultérieurement en lançant 'setup' dans une console (PuTTY, ssh).",\r
+/* TR_SETUP_PASSWORD */\r
+"Mot de passe 'setup'",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Définition des paramètres additionnels du module ",\r
+/* TR_SINGLE_GREEN */\r
+"Votre configuration est définie pour une interface VERTE unique.",\r
+/* TR_SKIP */\r
+"Passer",\r
+/* TR_START_ADDRESS */\r
+"Adresse de départ:",\r
+/* TR_START_ADDRESS_CR */\r
+"Adresse de départ\n",\r
+/* TR_STATIC */\r
+"Statique",\r
+/* TR_SUGGEST_IO */\r
+"(propose %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(propose %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Ce module est déjà chargé.",\r
+/* TR_TIMEZONE */\r
+"Fuseau horaire",\r
+/* TR_TIMEZONE_LONG */\r
+"Choisissez dans la liste ci-dessous le fuseau horaire dans lequel vous vous situez.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Impossible d'éjecter le CD-ROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Impossible d'extraire les modules.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Impossible de trouver d'autres pilotes.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Aucune carte RNIS (ISDN) n'a été détectée. Vous devez préciser des paramètres additionnels du module s'il s'agit d'une carte ISA ou si elle nécessite des paramètres particuliers.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Impossible d'initialiser le RNIS (ISDN).",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Impossible d'installer les fichiers.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Impossible d'installer GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Impossible de charger le module du pilote.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Impossible de créer le système de fichiers boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Impossible de créer le système de fichiers log.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Impossible de créer le système de fichiers racine.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Impossible de mettre en place l'espace de swap.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Impossible de créer le lien symbolique /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Impossible de créer le lien symbolique /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Impossible de créer le lien symbolique /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Impossible de créer le lien symbolique /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Impossible de créer le lien symbolique /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Impossible de créer le lien symbolique /dev/root",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Impossible de monter le système de fichiers boot.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Impossible de monter le système de fichiers log.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Impossible de monter le système de fichiers proc",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Impossible de monter le système de fichiers racine.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Impossible de monter la partition de swap.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Impossible d'ouvrir le fichier principal hosts.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Le fichier de configuration n'a pu être ouvert",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Impossible de partitionner le disque.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Impossible de supprimer les fichiers temporaires.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Impossible de renseigner le nom d'hôte.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Impossible de démonter le CD-ROM/lecteur de disquette.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Impossible de démonter le disque dur.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Impossible d'écrire /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Impossible d'écrire /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Impossible d'écrire /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Impossible d'écrire /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Impossible d'écrire /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Impossible d'écrire %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Impossible d'écrire %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Impossible d'écrire %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Il reste une carte ethernet non affectée de type:\n%s\n\n Vous pouvez l'affecter à:",\r
+/* TR_UNKNOWN */\r
+"INCONNU",\r
+/* TR_UNSET */\r
+"INDETERMINE",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"Cette clé USB n'est pas utilisable (pas de partition vfat reconnue).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"ATTENTION",\r
+/* TR_WARNING_LONG */\r
+"Si vous changez l'adresse IP et que vous êtes connecté à distance, votre connexion à la machine %s prendra fin et vous devrez vous reconnecter avec la nouvelle adresse. C'est une opération risquée qui ne devrait être tentée que si vous avez un accès physique à la machine en cas de problème.",\r
+/* TR_WELCOME */\r
+"Bienvenue dans le programme d'installation d'%s. Sélectionner Annuler sur l'un des écrans suivants redémarrera votre ordinateur.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Votre configuration est composée d'une unique interface VERTE pour laquelle un pilote a déja été assigné.",\r
+}; \r
+  \r
diff --git a/langs/hu/CVS/Entries b/langs/hu/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/hu/CVS/Repository b/langs/hu/CVS/Repository
new file mode 100644 (file)
index 0000000..ea857bc
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/hu
diff --git a/langs/hu/CVS/Root b/langs/hu/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/hu/CVS/Tag b/langs/hu/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/hu/cgi-bin/CVS/Entries b/langs/hu/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..9a87426
--- /dev/null
@@ -0,0 +1,2 @@
+/hu.pl/1.5.2.22/Tue Jul  5 20:39:23 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/hu/cgi-bin/CVS/Repository b/langs/hu/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..6502f6c
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/hu/cgi-bin
diff --git a/langs/hu/cgi-bin/CVS/Root b/langs/hu/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/hu/cgi-bin/CVS/Tag b/langs/hu/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/hu/cgi-bin/hu.pl b/langs/hu/cgi-bin/hu.pl
new file mode 100644 (file)
index 0000000..9b7310f
--- /dev/null
@@ -0,0 +1,854 @@
+# Hungarian (hu) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Ádám Makovecz, Ferenc Mányi-Szabó\r
+#  \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Egy CA tanúsítvány ezzel a névvel már létezik.', \r
+'a connection with this common name already exists' => 'Egy kapcsolat ezzel az általános névvel már létezik.', \r
+'a connection with this name already exists' => 'Egy kapcsolat ezzel a névvel már létezik.', \r
+'access allowed' => 'Belépés engedélyezve', \r
+'action' => 'Cselekmény', \r
+'add' => 'Hozzáadás', \r
+'add a host' => 'Host hozzáadása', \r
+'add a new rule' => 'Új szabály hozzáadása', \r
+'add network' => 'Hálózat hozzáadása', \r
+'add new alias' => 'Új alcím hozzáadása:', \r
+'add new lease' => 'Új fix fenntartás hozzáadása', \r
+'add service' => 'Szolgáltatás hozzáadása', \r
+'add xtaccess' => 'Külső elérés hozzáadása', \r
+'admin user password has been changed' => 'Admin jelszó megváltozott.', \r
+'administrator user password' => 'Admin jelszó', \r
+'adsl settings' => 'ADSL beállítások', \r
+'advanced' => 'Speciális', \r
+'again' => 'Ismét:', \r
+'alcatelusb help' => 'A Speedtouch USB modem használatához fel kell töltenie a <b>firmware-t<b> az IPCop gépre. Kérem töltse le a firmware-t a speedtouch.com-ról, csomagolja ki, majd töltse fel a modem számára: KQD6_3.xxx ha Rev<4 vagy ZZZL_3.xxx ha Rev=4', \r
+'alcatelusb upload' => 'Speedtouch USB gyári program (firmware) feltöltés', \r
+'alias ip' => 'Alias IP', \r
+'aliases' => 'Aliases', \r
+'aliases not active' => 'Az alias címek nem lesznek aktívak amig a RED interfész statikusra van állítva.', \r
+'all updates installed' => 'Minden frissítés telepítve.', \r
+'alt dialup' => 'Tárcsázás', \r
+'alt home' => 'Főoldal', \r
+'alt information' => 'Információk', \r
+'alt logs' => 'Naplók', \r
+'alt services' => 'Szolgáltatások', \r
+'alt system' => 'Rendszer', \r
+'alt vpn' => 'VPN-ek', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'april' => 'Április', \r
+'archive not exist' => 'Nem létezik a konfigurációs archívum.', \r
+'are you sure' => 'Biztos benne?', \r
+'arp table entries' => 'ARP tábla bejegyzések', \r
+'august' => 'Augusztus', \r
+'authentication' => 'Hitelesítés:', \r
+'automatic' => 'Automatikus', \r
+'available updates' => 'Elérhető frissítések', \r
+'average' => 'Átlag', \r
+'back' => 'VISSZA', \r
+'backup' => 'Mentés', \r
+'backup config floppy' => 'Konfiguráció mentése floppy lemezre', \r
+'backup configuration' => 'Mentési beállítások', \r
+'backup sets' => 'Mentési beállítások', \r
+'backup to floppy' => 'Mentés floppy-ra', \r
+'backupprofile' => 'Ha az újracsatlakozás nem sikerülne, váltson a  profilra', \r
+'bad characters in script field' => 'Rossz karakterek a parancs mezőben.', \r
+'bad characters in the telephone number field' => 'Rossz karakterek a telefon mezőben.', \r
+'bad destination range' => 'A cél port tartománynak van egy első értéke ami nagyobb vagy egyenlő mint a második.', \r
+'bad ignore filter' => 'Rossz mellőzött szűrő:', \r
+'bad return code' => 'A segítő program hiba kóddal tért vissza', \r
+'bad source range' => 'A forrás port tartománynak van egy első értéke ami nagyobb vagy egyenlő mint a második.', \r
+'behind a proxy' => 'Proxy mögött:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'BLUE', \r
+'blue access' => 'BLUE belépés', \r
+'blue interface' => 'Blue interfész', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Törött csatorna', \r
+'buffered memory' => 'Előkészített memória', \r
+'buffers' => 'gyorsítótárak', \r
+'bytes per second' => 'Bájt/másodperc', \r
+'ca certificate' => 'CA tanúsítvány', \r
+'ca name' => 'CA név', \r
+'cache management' => 'Cache állítás', \r
+'cache size' => 'Cache mérete (MB):', \r
+'cached' => 'tárolva', \r
+'cached memory' => 'Tárolt memória', \r
+'cancel' => 'Mégsem', \r
+'cannot enable both nat traversal and compression' => 'Nem lehet egyszerre bekapcsolni a NAT tömörítést és keresztezést', \r
+'cannot enable ntp without specifying primary' => 'Az elsődleges NTP nélkül nem kapcsolható be.', \r
+'cannot specify secondary dns without specifying primary' => 'A másodlagos DNS nem állítható az elsődleges nékül.', \r
+'cannot specify secondary ntp without specifying primary' => 'Nem adhat meg másodlagos NTP Szervert az elsődleges nélkül.', \r
+'cannot specify secondary wins without specifying primary' => 'Nem adhat meg másodlagos WINS-t elsődlges nélkül.', \r
+'cant change certificates' => 'A tanúsítvány nem változtatható.', \r
+'cant enable xtaccess' => 'Az összekapcsolt port továbbítási szabály kikapcsolva, ezért külső elérés nem engedélyhető ehhez a szabályhoz.', \r
+'cant start openssl' => 'Az OpenSSL nem indítható.', \r
+'caps all' => 'MINDEN', \r
+'capsclosed' => 'ZÁRVA', \r
+'capsopen' => 'NYITVA', \r
+'capswarning' => 'FIGYELEM', \r
+'certificate' => 'Tanúsítvány', \r
+'certificate authorities' => 'Tanúsítvány hatóságok', \r
+'certificate does not have a valid ca associated with it' => 'A tanúsítványnak nincs érvényes CA kapcsolata.', \r
+'certificate file move failed' => 'A tanúsítvány fájl áthelyezése sikertelen.', \r
+'cfg restart' => 'Újraindítás javasolt a konfigurációs fájlok visszaállítása után.', \r
+'chain' => 'Lánc', \r
+'change passwords' => 'Jelszavak lecserélése', \r
+'check vpn lr' => 'Ellenőrzés', \r
+'city' => 'Város', \r
+'clear cache' => 'Cache ürítése', \r
+'clenabled' => 'Idő közvetítés a belső hálózatra', \r
+'click to disable' => 'Bekapcsolva (kattintson a kikapcsoláshoz)', \r
+'click to enable' => 'Kikapcsolva (kattintson a bekapcsoláshoz)', \r
+'clock has not been synchronized' => 'Az óra még nem volt szinkronizálva.', \r
+'clock last synchronized at' => 'Az óra utolsó szinkronizációjának ideje:', \r
+'common name' => 'Egyszerű név', \r
+'compression' => 'Tömörítés:', \r
+'computer to modem rate' => 'Számítógép a modemhez aránya:', \r
+'concentrator name' => 'Kapcsolattartó neve:', \r
+'confirmation' => 'jóváhagyás', \r
+'connect on ipcop restart' => 'IPCop újraindításakor kapcsolódás:', \r
+'connect the modem' => 'Csatlakoztassa a modemet', \r
+'connect timeout' => 'Kapcsolódási időtúllépés:', \r
+'connected' => 'Kapcsolódva', \r
+'connecting' => 'Kapcsolódás...', \r
+'connection' => 'Kapcsolat', \r
+'connection debugging' => 'Kapcsolat hibakeresés', \r
+'connection status and controlc' => 'Kapcsolat állapot és vezérlés', \r
+'connection tracking' => 'IPTables kapcsolat követése', \r
+'connection type' => 'Kapcsolat típus', \r
+'connection type is invalid' => 'Kapcsolat típus érvénytelen.', \r
+'connections' => 'Kapcsolatok', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'kapcsolat ehhez a CA-hez van társítva. A CA törlése törli a kapcsolatot is.', \r
+'could not be opened' => 'nem nyitható meg', \r
+'could not connect to' => 'Nem lehet kapcsolódni a', \r
+'could not connect to www ipcop org' => 'Nem lehet kapcsolódni a www.ipcop.org címhez.', \r
+'could not create directory' => 'Nem hozható létre a könyvtár.', \r
+'could not download latest patch list' => 'Nem tölthető le a frissítések listája (nincs csatlakozva).', \r
+'could not download latest updates' => 'Nem tölthetőek le az utolsó frissítések.', \r
+'could not download the available updates list' => 'Nem tölthető le az elérhető frissítések listája.', \r
+'could not open available updates file' => 'Nem nyitható meg az elérhető frissítési fájl.', \r
+'could not open installed updates file' => 'Nem nyitható meg a telepített frissítés.', \r
+'could not open update information file' => 'Az információs fájl nem megnyitható. A frissítő fájl hibás.', \r
+'could not retrieve common name from certificate' => 'Nem elérhető az egyszerűsített név a tanúsítványból.', \r
+'country' => 'Ország', \r
+'cpu usage per' => 'CPU használat', \r
+'create' => 'Létrehozás', \r
+'credits' => 'Készítők', \r
+'cron server' => 'CRON szerver', \r
+'current' => 'Jelenlegi', \r
+'current aliases' => 'Jelenlegi alias-ok:', \r
+'current dynamic leases' => 'Jelenlegi dinamikus fenntartások', \r
+'current fixed leases' => 'Jelenlegi fix fenntartások', \r
+'current hosts' => 'Jelenlegi host-ok', \r
+'current profile' => 'Jelenlegi profil:', \r
+'current rules' => 'Jelenlegi szabályok', \r
+'custom networks' => 'Egyéni hálózat', \r
+'custom services' => 'Egyéni szolgáltatás', \r
+'dat without key' => 'Egy titkosított archivum  nem állítható vissza a kulcs nélkül.', \r
+'date' => 'Dátum', \r
+'date not in logs' => 'A lekérdezett napra nincs, vagy csak részben található naplóbejegyzés.', \r
+'day' => 'Nap', \r
+'day after' => 'Következő nap', \r
+'day before' => 'Előző nap', \r
+'days' => 'nap', \r
+'ddns hostname added' => 'Dinamikus DNS host neve hozzáadva', \r
+'ddns hostname removed' => 'Dinamikus DNS host neve eltávolítva', \r
+'december' => 'December', \r
+'def lease time' => 'Alapértelmezett fenntartási idő', \r
+'default lease time' => 'Alapértelmezett fenntartási idő (perc):', \r
+'default networks' => 'Alapértelmezett hálózatok', \r
+'default renewal time' => 'Alapértelmezett megújítási idő', \r
+'default services' => 'Alapértelmezett szolgáltatások', \r
+'delete' => 'Törlés', \r
+'demon login script' => 'Demon belépési parancs', \r
+'description' => 'Leírás', \r
+'dest ip and port' => 'Cél IP:Port', \r
+'destination' => 'Cél', \r
+'destination ip' => 'Cél IP', \r
+'destination ip bad' => 'Nem érvényes cél IP', \r
+'destination net' => 'Cél hálózat', \r
+'destination port' => 'Cél port', \r
+'destination port numbers' => 'A cél portnak érvényes számnak vagy tartománynak kell lennie.', \r
+'destination port overlaps' => 'A cél port tartománya egybeesik egy már meglévő tartománnyal.', \r
+'detail level' => 'Részletek', \r
+'device' => 'Eszköz', \r
+'dhcp configuration' => 'DHCP beállítások', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP szerver', \r
+'dhcp server disabled' => 'DHCP szerver kikapcsolva. Leállítva.', \r
+'dhcp server disabled on blue interface' => 'DHCP szerver kikapcsolva a BLUE interfészen', \r
+'dhcp server enabled' => 'DHCP szerver bekapcsolva. Újraindítás.', \r
+'dhcp server enabled on blue interface' => 'DCHP szerver bekapcsolva a BLUE interfészen', \r
+'dial' => 'Kapcsolódás', \r
+'dial user password' => 'Tárcsázó felhasználó jelszava', \r
+'dial user password has been changed' => 'Tárcsázó felhasználó jelszava megváltoztatva.', \r
+'dialing mode' => 'Tárcsázási mód:', \r
+'dialup settings' => 'Tárcsázás beállítások', \r
+'disk access per' => 'Lemez belépés', \r
+'disk usage' => 'Lemez használat', \r
+'display hostname in window title' => 'Hostnév mutatása az ablak címében', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'DMZ lyukak beállítás', \r
+'dmz pinhole rule added' => 'DMZ lyukak szabály hozzáadva; DMZ lyukak újraindítása', \r
+'dmz pinhole rule removed' => 'DMZ lyukak szabály eltávolítva; DMZ lyukak újraindítása', \r
+'dmzpinholes for same net not necessary' => 'DMZ lyukak nem szükségesek az azonos hálózathoz. Válasszon egy másik forrás vagy cél hálózatot.', \r
+'dns check failed' => 'DNS ellenőrzési hiba', \r
+'dns proxy server' => 'DNS proxy szerver', \r
+'dod' => 'Kérésre tárcsáz', \r
+'dod for dns' => 'DNS-nek kérésre tárcsáz:', \r
+'dod waiting' => 'Kérésre tárcsázásra várakozás', \r
+'domain' => 'Domain', \r
+'domain name' => 'Domain név', \r
+'domain name suffix' => 'Domain név utótag:', \r
+'domain not set' => 'Domain nincs beállítva.', \r
+'downlink speed' => 'Downlink sebesség (kbit/sec)', \r
+'download ca certificate' => 'CA tanúsítvány letöltése', \r
+'download certificate' => 'Tanúsítvány letöltése', \r
+'download host certificate' => 'Host tanúsítvány letöltése', \r
+'download new ruleset' => 'Új szabályok letöltése', \r
+'download pkcs12 file' => 'PKCS12 fájl letöltése', \r
+'download root certificate' => 'Root tanúsítvány letöltése', \r
+'driver' => 'Vezérlő (driver)', \r
+'dst port' => 'Cél port', \r
+'dstprt range overlaps' => 'Cél port tartománya egybeesik egy már beállított port-al.', \r
+'dstprt within existing' => 'Cél port ütközik egy már beállított port tartománnyal.', \r
+'duplicate ip' => 'Dupla IP cím bevitel', \r
+'duplicate mac' => 'Dupla MAC cím', \r
+'duplicate name' => 'Ez a név már használatban van, kérem válasszon másikat.', \r
+'dynamic dns' => 'Dinamikus DNS', \r
+'dynamic dns client' => 'Dinamikus DNS Kliens', \r
+'e-mail address too long' => 'Az E-mail cím túl hosszú; nem lehet hosszabb 40 karakternél.', \r
+'eciadsl help' => 'Az  ECI ADSL modem használatához fel kell töltenie a synch.bin fájlt az IPCop gépre. Kérem töltse le a fájlt az ECIADSL weboldaláról, majd töltse fel a <b>synch.bin</b> fájlt az űrlap segítségével.', \r
+'eciadsl upload' => 'ECI ADSL Synch.bin fájl feltöltése', \r
+'edit' => 'Szerkesztés', \r
+'edit a rule' => 'Meglévő szabály szerkesztése:', \r
+'edit advanced settings when done' => 'Szerkessze a speciális beállításokat ha készen van.', \r
+'edit an existing alias' => 'Létező alias szerkesztése', \r
+'edit an existing host' => 'Meglévő host szerkesztése', \r
+'edit an existing lease' => 'Létező fenntartás szerkesztése', \r
+'edit hosts' => 'Host-ok szerkesztése', \r
+'edit network' => 'Hálózat szerkesztése', \r
+'edit service' => 'Szolgáltatás szerkesztése', \r
+'empty' => 'Üres', \r
+'enable ignore filter' => 'Mellőzőtt szűrő bekapcsolása', \r
+'enable javascript' => 'Javascript bekapcsolása', \r
+'enable wildcards' => 'Wildcard-ok bekapcsolása:', \r
+'enabled' => 'Bekapcsolva:', \r
+'enabled on' => 'Bekapcsolva', \r
+'enabledtitle' => 'Bekapcsolva', \r
+'encapsulation' => 'Encapsulation', \r
+'encrypted' => 'Titkosítás', \r
+'end address' => 'Utolsó cím:', \r
+'err bk 1' => 'Hiba az archívum létrehozásakor', \r
+'err bk 2 key' => 'Hiba a kulcs fájl létrehozásakor', \r
+'err bk 3 tar' => 'Hiba a fájlok hozzáfűzése során', \r
+'err bk 4 gz' => 'Hiba a tömörítés közben', \r
+'err bk 5 encrypt' => 'Hiba a titkosítás során', \r
+'err rs 1' => 'Hiba az arhívum visszaállítása során', \r
+'err rs 6 decrypt' => 'Hiba a titkosítás feloldása során', \r
+'err rs 7 untartst' => 'Érvénytelen az archivum titkosítás feloldása', \r
+'err rs 8 untar' => 'Hiba az archívum kicsomagolása során', \r
+'error messages' => 'Hibaüzenetek', \r
+'esp encryption' => 'ESP kódolás:', \r
+'esp grouptype' => 'ESP csoporttípus:', \r
+'esp integrity' => 'ESP feddhetetlenség:', \r
+'esp keylife' => 'ESP kulcs idő:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP kulcs időnek 1 és 24 óra között kell lennie.', \r
+'every' => 'Mind', \r
+'excluding buffers and cache' => '-/+ gyorsítótár', \r
+'expected' => 'Várt', \r
+'expires' => 'Lejárt', \r
+'export' => 'Export', \r
+'external access' => 'Külső elérés', \r
+'external access configuration' => 'Külső elérés beállítása', \r
+'external access rule added' => 'Külső elérési szabály hozzáadva; elérések újraindítása', \r
+'external access rule removed' => 'Külső elérési szabály eltávolítva; elérések újraindítása', \r
+'external aliases configuration' => 'Külső alias címek beállítása', \r
+'february' => 'Február', \r
+'filename' => 'Fájlnév', \r
+'filesystem full' => 'Partíció megtelt', \r
+'firewall' => 'Tűzfal', \r
+'firewall hits' => 'Az összes tűzfal találat száma', \r
+'firewall log' => 'Tűzfal napló', \r
+'firewall log viewer' => 'Tűzfal naplók megtekintése', \r
+'firewall logs' => 'Tűzfal naplók', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Firmware/Driverek feltöltése', \r
+'fixed ip lease added' => 'Fix IP fenntartás hozzáadva', \r
+'fixed ip lease modified' => 'Fix IP fenntartás módosítva', \r
+'fixed ip lease removed' => 'Fix IP fenntartás eltávolítva', \r
+'force update' => 'Automatikus frissítés', \r
+'forwarding rule added' => 'Továbbítási szabály hozzáadva; továbbító újraindítása', \r
+'forwarding rule removed' => 'Továbbítási szabály eltávolítva; továbbító újraindítása', \r
+'forwarding rule updated' => 'Továbbítási szabály frissítve; továbbító újraindítása', \r
+'free' => 'Szabad', \r
+'free memory' => 'Szabad memória', \r
+'free swap' => 'Szabad swap', \r
+'fritzdsl upload' => 'Fritz!DSL vezérlő feltöltése', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Átjáró', \r
+'gateway ip' => 'Átjáró IP', \r
+'generate a certificate' => 'Tanúsítvány elkészítése', \r
+'generate root/host certificates' => 'Root/host tanúsítvány elkészítése', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'A root és a host tanúsítványok elkészítése hosszú időbe telik. Régebbi gépeken akár több percet is igénybe vehet. Kérem türelmét.', \r
+'global settings' => 'Általános beállítások', \r
+'graph' => 'grafikon', \r
+'graph per' => 'Grafikon per', \r
+'green' => 'GREEN', \r
+'green interface' => 'Green interfész', \r
+'gui settings' => 'GUI beállítások', \r
+'gz with key' => 'Csak egy titkosított arhív fájl állítható vissza ezen a gépen.', \r
+'hangup' => 'Kapcsolat bontása', \r
+'hangup string' => 'Bontás:', \r
+'high' => 'Magas', \r
+'high memory usage' => 'Magas memória használat', \r
+'holdoff' => 'Ismétlések közötti idő', \r
+'host certificate' => 'Host tanúsítvány', \r
+'host configuration' => 'Host beállítás', \r
+'host ip' => 'Host IP cím', \r
+'host to net vpn' => 'Host-to-Net Virtulási Privát Hálózat (RoadWarrior)', \r
+'hostname' => 'Host név', \r
+'hostname and domain already in use' => 'A Hostnév és domain már használatban.', \r
+'hostname cant be empty' => 'Hostnév nem lehet üres.', \r
+'hostname not set' => 'Hostnév nincs beállítva.', \r
+'hosts config added' => 'host konfiguráció hozzáadva', \r
+'hosts config changed' => 'host konfiguráció módosítva', \r
+'hours' => 'óra', \r
+'hours2' => 'Óra', \r
+'ibod for dual isdn only' => 'iBOD-ot csak a Dual ISDN-el használhatja.', \r
+'icmp selected but no type' => 'ICMP kijelölve, de nincs ICMP típus meghatározva.', \r
+'icmp type' => 'ICMP típus', \r
+'id' => 'ID', \r
+'idle' => 'Készenlét', \r
+'idle cpu' => 'CPU készenlétben', \r
+'idle cpu usage' => 'CPU készenléti használata', \r
+'idle timeout' => 'Készenléti időtúllépés (percek, 0 a kikapcsolás)', \r
+'idle timeout not set' => 'Készenléti időtúllépés nincs beállítva.', \r
+'ids log viewer' => 'IDS napló megtekintése', \r
+'ids logs' => 'BFR naplók', \r
+'iface' => 'Iface', \r
+'ignore filter' => 'Mellőzőtt szűrő', \r
+'ike encryption' => 'IKE kódolás:', \r
+'ike grouptype' => 'IKE csoporttípus:', \r
+'ike integrity' => 'IKE feddhetetlenség:', \r
+'ike lifetime' => 'IKE fenntartási idő:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE fenntartási időnek 1 és 8 óra között kell lennie.', \r
+'import' => 'Behozatal', \r
+'in' => 'Be', \r
+'incoming traffic in bytes per second' => 'Bejövő forgalom (bájt/másodperc)', \r
+'info' => 'Információ', \r
+'init string' => 'Init:', \r
+'insert floppy' => 'A lemezre mentéshez helyezzen egy formázott floppy lemezt az IPCop gép meghajtójába, majd kattintson a <i>Mentés floppy-ra</i> gombra. Kérem figyelmesen ellenőrizze az eredményt, hogy biztos megtörtént-e a rendszer mentése. A mentés hosszú időt vehet igénybe, türelmét kérem. <p>', \r
+'install new update' => 'Új frissítés telepítése', \r
+'installed' => 'Telepítve', \r
+'installed updates' => 'Telepített frissítések', \r
+'instant update' => 'Gyors frissítés', \r
+'interface' => 'Interfész:', \r
+'interfaces' => 'Interfészek', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Behatolás figyelés', \r
+'intrusion detection system' => 'Behatolás érzékelő rendszer', \r
+'intrusion detection system log viewer' => 'Behatolás érzékelő rendszer naplók', \r
+'intrusion detection system2' => 'Behatolás érzékelő rendszer', \r
+'invalid broadcast ip' => 'Érvénytelen broadcast IP', \r
+'invalid cache size' => 'Érvénytelen cache méret.', \r
+'invalid characters found in pre-shared key' => 'Érvénytelen karakterek az előzetesen megosztott kulcsban.', \r
+'invalid date entered' => 'Érvénytelen dátum.', \r
+'invalid default lease time' => 'Alapértelmezett fenntartási idő hibás.', \r
+'invalid domain name' => 'Érvénytelen domain név.', \r
+'invalid downlink speed' => 'Érvénytelen downlink sebesség.', \r
+'invalid end address' => 'Érvénytelen utolsó cím.', \r
+'invalid fixed ip address' => 'Érvénytelen fix IP cím', \r
+'invalid fixed mac address' => 'Érvénytelen fix Mac cím', \r
+'invalid hostname' => 'Érvénytelen hostnév.', \r
+'invalid input' => 'Érvénytelen bevitel', \r
+'invalid input for authentication method' => 'Érvénytelen bevitel az érvényesítés során.', \r
+'invalid input for city' => 'Érvénytelen bevitel a városnál.', \r
+'invalid input for country' => 'Érvénytelen bevitel az országnál.', \r
+'invalid input for department' => 'Érvénytelen bevitel az ágazatnál.', \r
+'invalid input for e-mail address' => 'Érvénytelen bevitel az E-mail címnél.', \r
+'invalid input for esp keylife' => 'Érvénytelen bevitel az ESP kulcs idejénél.', \r
+'invalid input for hostname' => 'Érvénytelen bevitel a hostnévnél.', \r
+'invalid input for ike lifetime' => 'Érvénytelen bevitel az IKE fenntartási időnél.', \r
+'invalid input for name' => 'Érvénytelen bevitel a felhasználó nevénél vagy a rendszer hostnevénél.', \r
+'invalid input for organization' => 'Érvénytelen bevitel a szervezetnél.', \r
+'invalid input for remote host/ip' => 'Érvénytelen bevitel a távoli host/ip-nél.', \r
+'invalid input for state or province' => 'Érvénytelen bevitel a megyénél.', \r
+'invalid ip' => 'Érvénytelen IP cím', \r
+'invalid keep time' => 'A fentartó időnek  érvényes számnak kell lennie', \r
+'invalid key' => 'Érvénytelen kulcs.', \r
+'invalid logserver address' => 'Érvénytelen syslogd szerver cím', \r
+'invalid max lease time' => 'Érvénytelen fenntartási idő.', \r
+'invalid maximum incoming size' => 'Érvénytelen maximális bejövő méret.', \r
+'invalid maximum object size' => 'Érvénytelen maximális objektum méret.', \r
+'invalid maximum outgoing size' => 'Érvénytelen maximális kimenő méret.', \r
+'invalid md5sum' => 'Érvénytelen MD5Sum.', \r
+'invalid minimum object size' => 'Érvénytelen minimális objektum méret.', \r
+'invalid netmask' => 'Érvénytelen netmask.', \r
+'invalid port' => 'Érvénytelen port. Érvényes port számot kell megadni.', \r
+'invalid primary dns' => 'Érvénytelen elsődleges DNS.', \r
+'invalid primary ntp' => 'Érvénytelen elsődleges NTP szerver cím.', \r
+'invalid secondary dns' => 'Érvénytelen másodlagos DNS.', \r
+'invalid secondary ntp' => 'Érvénytelen másodlagos NTP szerver cím.', \r
+'invalid start address' => 'Érvénytelen első cím.', \r
+'invalid time entered' => 'Érvénytelen ídő.', \r
+'invalid time period' => 'Érvénytelen idő periódus', \r
+'invalid uplink speed' => 'Érvénytelen Uplik sebesség', \r
+'invalid upstream proxy username or password setting' => 'Érvénytelen upstream proxy felhasználónév vagy jelszó beállítás.', \r
+'invalid vpi vpci' => 'Érvénytelen VPI/VPCI beállítások', \r
+'invalid wins address' => 'Érvénytelen WINS szerver cím.', \r
+'invert' => 'Inverz', \r
+'ip address' => 'IP cím', \r
+'ip address in use' => 'IP cím már használatban', \r
+'ip alias added' => 'Külső IP alias hozzáadva', \r
+'ip alias changed' => 'Külső IP alias módosítva', \r
+'ip alias removed' => 'Külső IP alias eltávolítva', \r
+'ip info' => 'IP információ', \r
+'ipcop has now rebooted' => 'IPCop most újraindul.', \r
+'ipcop has now shutdown' => 'IPCop most kikapcsol.', \r
+'ipcop side' => 'IPCop oldal:', \r
+'ipcop side is invalid' => 'IPCop oldal érvénytelen.', \r
+'ipcops hostname' => 'IPCop hostnév', \r
+'ipinfo' => 'IP info', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'További ISDN beállítások:', \r
+'isdn1' => 'Single ISDN', \r
+'isdn2' => 'Dual ISDN', \r
+'january' => 'Január', \r
+'javascript menu error1' => 'Ha a legördülő menü nem müködik, kapcsolja ki a Javascriptet a', \r
+'javascript menu error2' => 'oldal.', \r
+'july' => 'Július', \r
+'june' => 'Június', \r
+'kernel' => 'Kernel', \r
+'kernel logging server' => 'Kernel naplózó szerver', \r
+'kernel version' => 'Kernel verzió', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Válasszon nyelvet az IPCop megjelenítéséhez:', \r
+'lease expires' => 'Lejárt fenntartás', \r
+'legend' => 'Jelmagyarázat', \r
+'line' => 'Vonal', \r
+'loaded modules' => 'Betöltött modulok', \r
+'local subnet' => 'Helyi alhálózat:', \r
+'local subnet is invalid' => 'Helyi alhálózat érvénytelen.', \r
+'local vpn hostname/ip' => 'Helyi VPN hostnév/IP', \r
+'log' => 'Napló', \r
+'log enabled' => 'Naplózás bekapcsolva', \r
+'log server address' => 'Syslog szerver', \r
+'log settings' => 'Napló beállítások', \r
+'log summaries' => 'Napló összegzés', \r
+'log summary' => 'Napló áttekintés', \r
+'log viewer' => 'Napló megtekintés', \r
+'log viewing options' => 'Napló megtekintő opciók', \r
+'logging server' => 'Naplózó szerver', \r
+'loginlogout' => 'Belépés/Kilépés', \r
+'lookup failed' => 'Reverse keresési hiba', \r
+'low' => 'Alacsony', \r
+'ls_dhcpd' => 'DHCP szerver:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP szerver:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kernel és tűzfal:', \r
+'ls_modprobe' => 'Modul betöltés:', \r
+'ls_pam_unix' => 'Helyi felhasználó belépés:', \r
+'ls_sshd' => 'Távoli felhasználó belépés:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'MAC cím', \r
+'mac address in use' => 'MAC cím már használatban', \r
+'main page' => 'Főoldal', \r
+'manual' => 'Kézikönyv', \r
+'manual control and status' => 'Kézivezérlés és állapot:', \r
+'manually' => 'Manuális', \r
+'march' => 'Március', \r
+'marked' => 'Jelölt', \r
+'max incoming size' => 'Max bejövő méret (KB):', \r
+'max lease time' => 'Max fenntartási idő (perc):', \r
+'max outgoing size' => 'Max kimenő méret (KB):', \r
+'max renewal time' => 'Maximális megújítási idő', \r
+'max retries not set' => 'Max újrapróbálkozások száma nincsen beállítva.', \r
+'max size' => 'Max objektum méret (KB):', \r
+'maximal' => 'Maximális', \r
+'maximum retries' => 'Maximális újrapróbálkozások:', \r
+'may' => 'Május', \r
+'medium' => 'Közepes', \r
+'memory' => 'Memória', \r
+'memory usage per' => 'Memória használat per', \r
+'method' => 'Módszer:', \r
+'min size' => 'Min objektum méret (KB):', \r
+'minutes' => 'Perc', \r
+'missing dat' => 'Nem található titkosított arhív fájl', \r
+'missing gz' => 'Nem található titkosítatlan arhív fájl', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Modem beállítás', \r
+'modem on com1' => 'Modem COM1-en', \r
+'modem on com2' => 'Modem COM2-en', \r
+'modem on com3' => 'Modem COM3-en', \r
+'modem on com4' => 'Modem COM4-en', \r
+'modem on com5' => 'Modem COM5-en', \r
+'modem settings have errors' => 'Modem beállításokban hiba történt', \r
+'modem speaker on' => 'Modem hangszóró bekapcsolva:', \r
+'modulation' => 'Moduláció', \r
+'month' => 'Hónap', \r
+'months' => 'hónap', \r
+'mounted on' => 'Rákapcsolt', \r
+'name' => 'Név', \r
+'name is invalid' => 'Érvénytelen név.', \r
+'name must only contain characters' => 'A név csak karaktereket tartalmazhat.', \r
+'name too long' => 'A felhasználó teljes neve vagy a hostnév túl hosszú.', \r
+'nat-traversal' => 'Nat keresztezés:', \r
+'net' => 'Hálózat', \r
+'net to net vpn' => 'Net-to-Net Virtual Private Network', \r
+'netmask' => 'Netmask', \r
+'network' => 'Hálózat', \r
+'network added' => 'Egyéni hálózat hozzáadva', \r
+'network configuration' => 'Hálózati beállítások', \r
+'network removed' => 'Egyéni hálózat eltávolítva', \r
+'network status information' => 'Hálózatállapot Információk', \r
+'network time' => 'Network Time Server használata', \r
+'network traffic graphs' => 'Hálózat forgalmi grafikonok:', \r
+'network updated' => 'Egyéni hálózat frissítve', \r
+'networks settings' => 'Tűzfal - Hálózati beállítások', \r
+'newer' => 'Újabb', \r
+'next address' => 'Következő cím', \r
+'no alcatelusb firmware' => 'Nincs Alcatel USB firmware. Kérem töltse fel.', \r
+'no cfg upload' => 'Nincs adat feltöltve', \r
+'no dhcp lease' => 'Nincs DHCP fenntartás behozva', \r
+'no eciadsl synch.bin file' => 'ECI ADSL synch.bin fájl hiányzik. Kérem töltse fel.', \r
+'no fritzdsl driver' => 'Nincs Fritz!DSL vezérlő. Kérem töltse fel.', \r
+'no information available' => 'Nincs elérhető információ.', \r
+'no modem selected' => 'Nincs modem kiválasztva', \r
+'no set selected' => 'Nincs beállítás kiválasztva', \r
+'none found' => 'nincs találat', \r
+'nonetworkname' => 'Nincs hálózati név megadva', \r
+'noservicename' => 'Nincs szolgáltatás név megadva', \r
+'not a valid ca certificate' => 'Nem érvényes CA tanúsítvány.', \r
+'not present' => '<b>Nincs</b> jelen', \r
+'not running' => 'nem fut', \r
+'november' => 'November', \r
+'ntp configuration' => 'NTP beállítások', \r
+'ntp must be enabled to have clients' => 'NTP-nek muszáj bekapcsolva lennie a kliensekhez.', \r
+'ntp server' => 'NTP szerver', \r
+'ntp syncro disabled' => 'NTP szinkronizáció kikapcsolva', \r
+'ntp syncro enabled' => 'NTP szinkronizáció bekapcsolva', \r
+'ntpd restarted' => 'ntpd ujraindítva', \r
+'number' => 'Számok:', \r
+'october' => 'Október', \r
+'older' => 'Régebbi', \r
+'only digits allowed in holdoff field' => 'Csak számok megengedettek a holdoff mezőben', \r
+'only digits allowed in max retries field' => 'A maximum visszatérési érték mező csak számokat tartalmazhat.', \r
+'only digits allowed in the idle timeout' => 'Az időkorlát mező csak számokat tartalmazhat.', \r
+'open to all' => 'Megszüntet minden külső elérést MIND-nek', \r
+'openssl produced an error' => 'OpenSSL hibázott', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'Szervezet nem lehet üres.', \r
+'organization name' => 'Szervezet neve:', \r
+'organization too long' => 'A szervezet neve túl hosszú; nem lehet hosszabb 60 karakternél.', \r
+'original' => 'Eredeti', \r
+'other login script' => 'Más login parancs', \r
+'out' => 'Ki', \r
+'outgoing traffic in bytes per second' => 'Kimenő forgalom (bájt/másodperc)', \r
+'package failed to install' => 'A csomag nem telepíthető.', \r
+'pap or chap' => 'PAP vagy CHAP', \r
+'password' => 'Jelszó:', \r
+'password contains illegal characters' => 'A jelszó nem engedélyezett karaktereket tartalmaz.', \r
+'password not set' => 'Jelszó nincs megadva.', \r
+'password too short' => 'A jelszó túl rövid.', \r
+'passwords do not match' => 'A két jelszó nem egyezik.', \r
+'passwords must be at least 6 characters in length' => 'A jelszavaknak minimum 6 karakter hosszúnak kell lenniük.', \r
+'percentage' => 'Százalék', \r
+'persistent' => 'Állandó', \r
+'phase1 group' => 'Phase1 csoport', \r
+'phonebook entry' => 'Telefonkönyv bejegyzés:', \r
+'pkcs12 file password' => 'PKCS12 fájl jelszó', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Port átirányítás beállítás', \r
+'ports' => 'Portok', \r
+'pots' => 'Analóg vonal', \r
+'ppp setup' => 'PPP beállítás', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'További PPPoE beállítások:', \r
+'pptp settings' => 'További PPTP beállítások:', \r
+'pre-shared key is too short' => 'Előzőleg megoszott kulcs túl rövid.', \r
+'present' => 'Jelen van', \r
+'primary dns' => 'Elsődleges DNS:', \r
+'primary ntp server' => 'Elsődleges NTP Szerver:', \r
+'primary wins server address' => 'Elsődleges WINS szerver cím', \r
+'priority' => 'Prioritás', \r
+'profile' => 'Profil', \r
+'profile deleted' => 'Profil törölve:', \r
+'profile has errors' => 'A profil hibás', \r
+'profile made current' => 'Profil alapértelmezetté tétele:', \r
+'profile name' => 'Profil név:', \r
+'profile name not given' => 'Profil név nincs megadva.', \r
+'profile saved' => 'Profil mentve:', \r
+'profiles' => 'Profilok', \r
+'proto' => 'Protokol', \r
+'protocol' => 'Protokol', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Proxy használati adatok', \r
+'proxy log viewer' => 'Proxy log nézegető:', \r
+'proxy logs' => 'Proxy naplók', \r
+'proxy port' => 'Proxy port', \r
+'pulse' => 'Impulzus', \r
+'pulse dial' => 'Impluzusos tárcsázás:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Szektorok olvasása', \r
+'reboot' => 'Újraindítás', \r
+'rebooting' => 'Újraindítás', \r
+'rebooting ipcop' => 'IPCop újraindítása', \r
+'reconnection' => 'Újracsatlakozás', \r
+'references' => 'Referenciák', \r
+'refresh' => 'Frissítés', \r
+'refresh update list' => 'Frissítési lista újratöltése', \r
+'released' => 'Kiadva', \r
+'remark' => 'Megjegyzés', \r
+'remark title' => 'Megjegyzés:', \r
+'remote access' => 'Távoli elérés', \r
+'remote host/ip' => 'Távoli host/IP', \r
+'remote logging' => 'Távoli naplózás', \r
+'remote subnet' => 'Távoli alhálózat:', \r
+'remote subnet is invalid' => 'Távoli alhálózat érvénytelen.', \r
+'remove' => 'Eltávolítás', \r
+'remove ca certificate' => 'CA tanúsítvány eltávolítása.', \r
+'reserved dst port' => 'Foglalt cél portok az IPCop számára:', \r
+'reserved src port' => 'Foglalt forrás portok az IPCop számára:', \r
+'reset' => 'Reset', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'A VPN konfiguráció törlése törli a root CA-t, a host tanúsítványt és minden tanúsítványhoz tartozó kapcsolatot.', \r
+'restart' => 'Újraindítás', \r
+'restore' => 'Visszaállítás', \r
+'restore defaults' => 'Alapértelmezett értékek visszaállítása', \r
+'restore hardware settings' => 'Hardver beállítások visszaállítása', \r
+'reverse sort' => 'Rendezés fordított időrendi sorrendben', \r
+'root certificate' => 'Root tanúsítvány', \r
+'root path' => 'Root elérésiút', \r
+'router ip' => 'Router IP Cím:', \r
+'routing table entries' => 'Routing tábla bejegyzések', \r
+'rsvd dst port overlap' => 'A Cél Port Taromány tartalmaz egy portot ami foglalt az IPCop számára:', \r
+'rsvd src port overlap' => 'A Forrás Port Taromány tartalmaz egy portot ami foglalt az IPCop számára:', \r
+'running' => 'Bekapcsolva', \r
+'save' => 'Mentés', \r
+'save error' => 'Nem menthető a beállításokat tartalmazó fájl.', \r
+'script name' => 'Script név:', \r
+'secondary dns' => 'Másodlagos DNS:', \r
+'secondary ntp server' => 'Másodlagos NTP Szerver', \r
+'secondary wins server address' => 'Másodlagos WINS szerver cím', \r
+'seconds' => 'Másp.', \r
+'section' => 'Rész', \r
+'sectors read from disk per second' => 'Olvasás lemezről (szektor/másodperc)', \r
+'sectors written to disk per second' => 'Írás lemezre (szektor/másodperc)', \r
+'secure shell server' => 'Secure shell szerver', \r
+'select' => 'Kiválaszt', \r
+'select dest net' => 'Válasszon egy cél hálózatot.', \r
+'select source net' => 'Válasszon egy forrás hálózatot. Ha nincs ORANGE vagy BLUE hálózata konfiugrálva, nincs szülsége DMZ lyukakra.', \r
+'send cr' => 'Carriage Return szükséges az ISP-nek:', \r
+'september' => 'Szeptember', \r
+'serial' => 'Azonosító', \r
+'service' => 'Szolgáltatás', \r
+'service added' => 'Egyéni hálózati szolgáltatás hozzáadva', \r
+'service name' => 'Szolgáltatás neve:', \r
+'service removed' => 'Egyéni hálozati szolgáltatás eltávolítva', \r
+'service updated' => 'Egyéni hálózati szolgáltatás frissítve', \r
+'servicename' => 'Szolgáltatás neve', \r
+'services' => 'Szolgáltatások', \r
+'services settings' => 'Tűzfal - Szolgáltatások beállítása', \r
+'set time now' => 'Idő beállítása', \r
+'settings' => 'Beállítások', \r
+'shaping add options' => 'Szolgáltatás hozzáadása', \r
+'shaping list options' => 'Forgalom tervezés szolgáltatások', \r
+'shared' => 'megosztott', \r
+'shared memory' => 'Osztott memória', \r
+'show ca certificate' => 'CA tanúsítványok mutatása', \r
+'show certificate' => 'Tanúsítvány mutatása', \r
+'show host certificate' => 'Host tanúsítvány', \r
+'show root certificate' => 'Root tanúsítvány', \r
+'shutdown' => 'Leállítás', \r
+'shutdown control' => 'Leállítás vezérlő', \r
+'shutdown2' => 'Leállítás', \r
+'shutting down' => 'Leállítás folyamatban', \r
+'shutting down ipcop' => 'IPCop leállítása', \r
+'size' => 'Méret', \r
+'snort hits' => 'Összes behatolási szabály aktivált a következőn:', \r
+'sort ascending' => 'Növekvő', \r
+'sort descending' => 'Csökkenő', \r
+'source' => 'Forrás', \r
+'source ip' => 'Forrás IP', \r
+'source ip and port' => 'Forrás IP:Port', \r
+'source ip bad' => 'Hibás IP cím vagy hálózati cím.', \r
+'source ip in use' => 'Forrás IP használatban: ', \r
+'source net' => 'Forrás hálózat', \r
+'source network' => 'Forrás IP, vagy hálózat (üresen "MINDEN"):', \r
+'source port' => 'Forrás port', \r
+'source port in use' => 'Forrás port használatban:', \r
+'source port numbers' => 'A forrás portnak egy valós portszámnak, vagy porttartománynak kell lennie.', \r
+'source port overlaps' => 'A forrás prot tartomány lefed egy már létező tartományt.', \r
+'speaker off' => 'Hangszóró ki:', \r
+'speaker on' => 'Hangszóró be:', \r
+'src port' => 'Forrás port', \r
+'srcprt range overlaps' => 'A forrás prot tartomány érint egy már beállított port-ot.', \r
+'srcprt within existing' => 'A Forrás Port egy már definiált port tartomány része.', \r
+'ssdmz pinholes' => 'DMZ pinholes', \r
+'ssh access' => 'SSH belépés', \r
+'ssh fingerprint' => 'ujjlenyomat', \r
+'ssh host keys' => 'SSH host kulcsok', \r
+'ssh is disabled' => 'SSH tiltva. Leállítás.', \r
+'ssh is enabled' => 'SSH engedélyezve. Újraindítás.', \r
+'ssh key' => 'Kulcs', \r
+'ssh key size' => 'Méret (bitek)', \r
+'ssh keys' => 'Bejelentkezés engedélyezése általános kulccsal', \r
+'ssh no auth' => 'Önnek nincs joga a bejelentkezéshez; belépés leállítva', \r
+'ssh passwords' => 'Bejelentkezés engedélyezése jelszóval', \r
+'ssh portfw' => 'TCP továbbítás engedélyezése', \r
+'ssh1 disabled' => 'SSHv1 kikapcsolva, 2-es verziójú kliensek szükségesek..', \r
+'ssh1 enabled' => 'SSHv1 bekapcsolva, régi kliensek támogatva.', \r
+'ssh1 support' => 'SSH protokol 1-es verziójának támogatása (régi kliensekhez szükséges csak)', \r
+'ssnetwork status' => 'Hálózati állapot', \r
+'sspasswords' => 'Jelszavak', \r
+'ssport forwarding' => 'Port átirányítás', \r
+'ssproxy graphs' => 'Proxy grafikonok', \r
+'sssystem status' => 'Rendszer állapot', \r
+'sstraffic graphs' => 'Forgalmi grafikonok', \r
+'standard login script' => 'Általános login script', \r
+'start address' => 'Kezdő cím:', \r
+'state or province' => 'Megye', \r
+'static ip' => 'Statikus IP', \r
+'status' => 'Állapot', \r
+'status information' => 'Állapot információk', \r
+'stopped' => 'Leállítva', \r
+'subject' => 'Tárgy', \r
+'subnet is invalid' => 'Érvénytelen hálózati maszk', \r
+'successfully refreshed updates list' => 'Frissítések lista újratöltve.', \r
+'summaries kept' => 'Összegzés megőrzése', \r
+'swap' => 'Felcserél', \r
+'swap usage per' => 'Swap használat per', \r
+'system cpu' => 'Rendszer CPU', \r
+'system cpu usage' => 'Rendszer CPU használat', \r
+'system graphs' => 'Rendszer grafikonok', \r
+'system log viewer' => 'Rendszer napló nézegető', \r
+'system logs' => 'Rendszer naplók', \r
+'system status information' => 'Rendszer állapot információk', \r
+'telephone not set' => 'Telefonszám nincs beállítva.', \r
+'the following update was successfully installed' => 'A következő frissítés sikeresen installálva', \r
+'the statistics were last updated at' => 'A statisztikák frissítve', \r
+'there are updates' => 'Új frissítések találhatók a rendszerhez. Kérjük lépjen a "Frissítés" szekcióba a további információkhoz.', \r
+'there are updates available' => 'Új frissítések találhatók a rendszerhez. Ajánlott ezek mihamarabb telepíteni.', \r
+'there was no file upload' => 'Nincs fájl feltöltve.', \r
+'this feature has been sponsored by' => 'Szponzorálva', \r
+'this field may be blank' => 'Ez a mező üresen állhat.', \r
+'this is not a valid archive' => 'Ez a mentés helytelen.', \r
+'this is not an authorised update' => 'Ez nem egy jóváhagyott frissítés.', \r
+'this update is already installed' => 'Ez a frissítés már telepítve van.', \r
+'time' => 'Idő', \r
+'time date manually reset' => 'Dátum/Idő kézi visszaállítása.', \r
+'time server' => 'Idő szerver', \r
+'timeout must be a number' => 'Időkorlát szám kell hogy legyen.', \r
+'title' => 'Megnevezés', \r
+'to install an update' => 'Egy frissítés telepítéséhez töltse fel a .tgz.gpg file-t:', \r
+'toggle enable disable' => 'Engedélyezve vagy Tiltva', \r
+'tone' => 'Dallam', \r
+'tone dial' => 'Dallamos tárcsázás:', \r
+'traffic on' => 'Forgalom be', \r
+'traffic shaping' => 'Forgalom tervezés', \r
+'traffic shaping settings' => 'Forgalom tervezés beállítások', \r
+'transfer limits' => 'Transzfer limitek', \r
+'transparent on' => 'Átlátszó', \r
+'type' => 'Típus:', \r
+'unable to alter profiles while red is active' => 'A profil nem módosítható amíg RED aktív.', \r
+'unable to contact' => 'Nem lehet kapcsolodni', \r
+'unencrypted' => 'Kódolatlan', \r
+'unknown' => 'ISMERETLEN', \r
+'unnamed' => 'Név nélküli', \r
+'update' => 'Frissítés', \r
+'update time' => 'Idő frissítése:', \r
+'update transcript' => 'Frissítő script:', \r
+'updates' => 'Frissítések', \r
+'updates installed' => 'Frissítések telepítve', \r
+'updates is old1' => 'A frissítő fájl', \r
+'updates is old2' => 'napos. Frissítse a <b>Rendszer/Frissítések</b> oldalon.', \r
+'uplink speed' => 'Uplink sebesség (kbit/sec)', \r
+'upload' => 'Feltöltés', \r
+'upload a certificate' => 'Tanúsítvány feltöltése:', \r
+'upload a certificate request' => 'Tanúsítvány kérés feltöltése:', \r
+'upload ca certificate' => 'CA tanúsítvány feltöltése', \r
+'upload fcdsl.o' => 'Fcdsl.o feltöltése', \r
+'upload file' => 'Feltöltendő fájl', \r
+'upload p12 file' => 'PKCS12 fájl feltöltése', \r
+'upload successful' => 'Feltöltés befejeződött.', \r
+'upload synch.bin' => 'synch.bin feltöltése', \r
+'upload update file' => 'Frissítés fájl feltöltése:', \r
+'upstream password' => 'Upstream jelszó:', \r
+'upstream proxy host:port' => 'Proxy (host:port)', \r
+'upstream username' => 'Upstream felhasználónév:', \r
+'uptime and users' => 'Futásidő és felhasználók', \r
+'usb modem on acm0' => 'USB modem ACM0-n', \r
+'usb modem on acm1' => 'USB modem ACM1-n', \r
+'usb modem on acm2' => 'USB modem ACM2-n', \r
+'usb modem on acm3' => 'USB modem ACM3-n', \r
+'use' => 'Használ', \r
+'use a pre-shared key' => 'Előzőleg megosztott kulcs használata:', \r
+'use dov' => 'DOV használata (Data Over Voice):', \r
+'use ibod' => 'Sávszélesség kérésre (iBOD):', \r
+'use only proposed settings' => 'Csak a javasolt beállítások használata.', \r
+'used' => 'Használt', \r
+'used memory' => 'Használt memória', \r
+'used swap' => 'Használt swap', \r
+'user cpu' => 'Felhasználó CPU', \r
+'user cpu usage' => 'Felhasználó CPU használat', \r
+'username' => 'Felhasználónév:', \r
+'username not set' => 'Felhasználónév nincs megadva.', \r
+'users department' => 'Felhasználó osztálya', \r
+'users email' => 'Felhasználó E-mail címe', \r
+'users fullname or system hostname' => 'Felhasználó teljes neve vagy a rendszer hostneve', \r
+'valid root certificate already exists' => 'Egy érvényes root tanúsítvány már létezik.', \r
+'vci number' => 'VCI szám:', \r
+'virtual private networking' => 'Helyi Magán Hálózat (VPN)', \r
+'vpi number' => 'VPI szám:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN beállítás - Saját', \r
+'vpn on blue' => 'VPN a BLUE-n', \r
+'waiting to synchronize clock' => 'Várakozás az óra szinkronizálására', \r
+'warning messages' => 'Figyelmeztető üzenetek', \r
+'web hits' => 'Összes weboldal találat, ami megfelel a feltételnek', \r
+'web proxy' => 'Web proxy', \r
+'web proxy configuration' => 'Web proxy beállítás', \r
+'web server' => 'Web szerver', \r
+'website' => 'Weboldal', \r
+'week' => 'Hét', \r
+'weeks' => 'hét', \r
+'wildcards' => 'Wildcard-ok', \r
+'wireless' => 'Wireless', \r
+'wireless config added' => 'Wireless beállítások hozzáadva', \r
+'wireless config changed' => 'Wireless beállítások módosítva', \r
+'wireless configuration' => 'Wireless beállítások', \r
+'written sectors' => 'Irott szektorok', \r
+'xtaccess all error' => 'Nem tud beállitani külső elérést MINDENKI számára, erre a célra a port átirányítás szolgáll.', \r
+'year' => 'Év', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Ön csak egy Roadwarrior kapcsolatot hozhat létre előre megosztott kulcs hitelesítéssel.', \r
+'your department' => 'Osztálya', \r
+'your e-mail' => 'E-mail címe', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/hu/install/CVS/Entries b/langs/hu/install/CVS/Entries
new file mode 100644 (file)
index 0000000..2e4fcbb
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_hu.c/1.8.2.10/Mon Dec 12 09:23:28 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/hu/install/CVS/Repository b/langs/hu/install/CVS/Repository
new file mode 100644 (file)
index 0000000..64a9211
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/hu/install
diff --git a/langs/hu/install/CVS/Root b/langs/hu/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/hu/install/CVS/Tag b/langs/hu/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/hu/install/lang_hu.c b/langs/hu/install/lang_hu.c
new file mode 100644 (file)
index 0000000..97744bd
--- /dev/null
@@ -0,0 +1,508 @@
+/*\r
+ * Hungarian (hu) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Ádám Makovecz, Ferenc Mányi-Szabó\r
+ *  \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *hu_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Cím beállítások",\r
+/* TR_ADMIN_PASSWORD */\r
+"Admin jelszó",\r
+/* TR_AGAIN_PROMPT */\r
+"Ismét:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Minden kártya megfelelően lefoglalva.",\r
+/* TR_AUTODETECT */\r
+"* FELISMERÉS *",\r
+/* TR_BUILDING_INITRD */\r
+"INITRD felépítése...",\r
+/* TR_CANCEL */\r
+"Mégsem",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Kártya kijelölés",\r
+/* TR_CHECKING */\r
+"URL ellenőrzése...",\r
+/* TR_CHECKING_FOR */\r
+"Ellenőrzés: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Válassza ki a számítógépben lévő ISDN kártyát.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Válassza ki a használni kívánt ISDN protokolt.",\r
+/* TR_CONFIGURE_DHCP */\r
+"DHCP server beállítása az adatok megadásával.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Hálózat beállítása",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Most beállíthatja a hálózatot, mely a GREEN eszköz megfelelő vezérlőjének betöltésével kezdődik. Ezt megteheti automatikus felismeréssel, vagy kiválaszthatja a megfelelőt a listából. Ha több mint egy hálózati kártya van a számítógépben, a többi beállítását megteheti a telepítés későbbi szakaszában. Abban az esetben, ha a többi kártya is ugyanolyan mint a GREEN és mindegyikhez speciális modul paraméterekre van szükség, megadhatja mindegyik számára a paramétereket, így mindegyik aktívvá válik.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Hálózati meghajtók konfigurálása és az interfészek kártyához rendelése. A jelenlegi konfiguráció a következő:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"CDROM beállítása a megfelelő IO cím és/vagy IRQ kiválasztásásval.",\r
+/* TR_CONGRATULATIONS */\r
+"Gratulálunk!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"Az %s telepítése sikeresen befejeződött. Kérjük távolítson el minden floppy vagy CD lemezt a számítógépből. Ha a rendszer nem tült be megfelelően, akkor probáljon DOS lemezről indítani es futatni a \"FDISK /MBR\"-t a Master Boot Record ujrakészítéséhez. Most elindul a Setup, ahol az ISDN-t, hálózati kártyákat és a rendszer jelszavait állíthatja be. A Setup után a http://%s:81 vagy a https://%s:445 (vagy azon a néven amire elnevezte az %s-t) címen távolról elérheti az adminisztrációs felületet, ahol szükség esetén beállíthatja a behívásos kapcsolatot és a távoli asztal elérést. Ne felejtsen el jelszót adni az %s 'dial' felhasználónak, ha nem az %s 'admin' felhasználójával szeretné vezérelni az oldalt.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Az Ön merevlemeze nagyon kicsi, de folytathatja swap terület nélkül.",\r
+/* TR_CURRENT_CONFIG */\r
+"Jelenlegi beállítás: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Alapértelmezett Átjáró:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Alapértelmezett Átjáró\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Alapértelmezett fenntartás (perc):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Alapértelmezett fenntartási idő\n",\r
+/* TR_DETECTED */\r
+"Felismerve: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"DHCP Hostnév:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"DHCP Hostnév\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"DHCP szerver beállítás",\r
+/* TR_DISABLED */\r
+"tiltva",\r
+/* TR_DISABLE_ISDN */\r
+"ISDN tiltva",\r
+/* TR_DISK_TOO_SMALL */\r
+"Merevlemez túl kicsi.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"DNS és Átjáró beállítások",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Írja be a DNS és átjáró információkat. Ezeket a beállításokat csak akkor kell alkalmazni, ha a DHCP ki van kapcsolva a RED interfészen.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"A konfigurációban nincs hálózati eszköz beállítva a RED interfész számára. A DNS és átjáró információ automatikusan beállítódik a tárcsázás közben.",\r
+/* TR_DOMAINNAME */\r
+"Domain név",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Domain név nem lehet üres.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"A domain név nem tartalmazhat szünetet.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Domain név csak betüket, számokat, kötőjelet és alávonást tartalmazhat.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Domain név utótag:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Domain név utótag\n",\r
+/* TR_DONE */\r
+"Rendben",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nSzeretné megváltoztatni ezeket a beállításokat?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Driver hozzárendelése kártyákhoz",\r
+/* TR_ENABLED */\r
+"Engedélyezve",\r
+/* TR_ENABLE_ISDN */\r
+"ISDN engedélyezve",\r
+/* TR_END_ADDRESS */\r
+"Befejező cím:",\r
+/* TR_END_ADDRESS_CR */\r
+"Befejező cím\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Néhány ISDN kártya (például ISA típusúak) igényelhetnek további modulparamétereket az IRQ és IO cím beállításához. Ha ilyen ISDN kártyája van, itt megadhatja ezeket a paramétereket. Példaul: \"io=0x280 irq=9\". Ezek a felismerés közben lesznek alkalmazva.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Adja meg a %s admin jelszavát. Ezt a felhasználót használhatja a %s web adminisztrációs oldalára való belépéshez.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Írja be a domain nevet",\r
+/* TR_ENTER_HOSTNAME */\r
+"Adja meg a számítógép hostnevét.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Adja meg az IP címet",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"A halózati kártya automatikus felismerése nem sikerült. Adja meg a drivert és az opcionális paramétereket a hálózati kártyához.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Írja be a 'root' felhasználó jelszavát. Parancssori eléréshez lépjen be ezzel a felhasználóval.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Írja be a 'setup' felhasználó jelszavát. Ha ezzel a felhasználóval lép be, elérheti a setup programot.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Írja be az IP címet a %s interfészhez.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Írja be a helyi telefonszámot (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Írja be az ipcop-<verzió>.tgz és az images/scsi-<verzió>.img fájlok URL-jét. FIGYELMEZTETÉS: DNS nem elérhető! Csakis hasonló címet adhat meg http://x.x.x.x/<könyvtár>",\r
+/* TR_ERROR */\r
+"Hiba",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Hiba történt a konfigurációs információk írása közben.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Modulok kicsomagolása...",\r
+/* TR_FAILED_TO_FIND */\r
+"Az URL fájl nem található.",\r
+/* TR_FOUND_NIC */\r
+"%s a következő NIC-et felismerte a számítógépen: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"German 1TR6",\r
+/* TR_HELPLINE */\r
+"                 <Tab>/<Alt-Tab> léptetés | <Space> kiválasztás",\r
+/* TR_HOSTNAME */\r
+"Hostnév",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Hostnév nem lehet üres.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"A hostnév nem tartalmazhat szóközt.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"A hostnév csak betüket, számokat és kötőjelet tartalmazhat.",\r
+/* TR_INITIALISING_ISDN */\r
+"ISDN telepítése...",\r
+/* TR_INSERT_CDROM */\r
+"Helyezze be az %s CD-t a CD-ROM meghajtóba.",\r
+/* TR_INSERT_FLOPPY */\r
+"Helyezze be a %s driver lemezt a floppy meghajtóba.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Telepítés megszakítva.",\r
+/* TR_INSTALLING_FILES */\r
+"Fájlok telepítése...",\r
+/* TR_INSTALLING_GRUB */\r
+"GRUB telepítése...",\r
+/* TR_INTERFACE */\r
+"%s interfész",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Az interfész felállítása sikertelen.",\r
+/* TR_INVALID_FIELDS */\r
+"A következő mezők kitöltése helytelen:\n\n",\r
+/* TR_INVALID_IO */\r
+"A megadott IO port helytelen.",\r
+/* TR_INVALID_IRQ */\r
+"A megadott IRQ helytelen.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP cím\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP cím:",\r
+/* TR_ISDN_CARD */\r
+"ISDN kártya",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"IDSN kártya felismerése nem sikerült. Lehetséges, hogy szüksége van további speciális modulparaméterekre, ha a kártya ISA típusú vagy speciálisan igényli ezeket.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"ISDN kártya kiválasztása",\r
+/* TR_ISDN_CONFIGURATION */\r
+"ISDN konfiguráció",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"ISDN konfigurásiós menü",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN nincs beállítva. Néhány elem nincs kiválasztva.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN még nincs konfigurálva. Válassza ki azt az elemet, amit konfigurálni kíván.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"ISDN protokol kiválasztása",\r
+/* TR_ISDN_STATUS */\r
+"ISDN jelenleg %s.\n\n Protokol: %s\n Kártya: %s\n Helyi telefonszám: %s\n\nVálassza ki az elemet, amelyet újra kíván konfigurálni vagy használja a jelenlegi beállításokat.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Billentyűzet kiosztás",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Válassza ki a használni kívánt billentyűzet-kiosztást az alábbi listából.",\r
+/* TR_LEASED_LINE */\r
+"Bérelt vonal",\r
+/* TR_LOADING_MODULE */\r
+"Modul betöltése...",\r
+/* TR_LOADING_PCMCIA */\r
+"PCMCIA modulok betöltése...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Keresés: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Boot partíció létrehozása...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Log partíció létrehozása...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Root partíció létrehozása...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Swap terület létrehozása...",\r
+/* TR_MANUAL */\r
+"* MANUÁLIS *",\r
+/* TR_MAX_LEASE */\r
+"Max fenntartás (perc):",\r
+/* TR_MAX_LEASE_CR */\r
+"Max fenntartási idő\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Hiányzó IP információk a BLUE interfészen.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Hiányzó IP információk az ORANGE interfészen.",\r
+/* TR_MISSING_RED_IP */\r
+"Hiányzó IP információk a RED interfészen.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Modul neve nem lehet üres.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Adja meg a modul nevét és a paramétereket a driverhez amire szüksége van.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Boot partíció csatlakoztatása...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Log partíció csatlakoztatása...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Root partíció csatlakoztatása...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Swap partíció csatlakoztatása..",\r
+/* TR_MSN_CONFIGURATION */\r
+"Helyi telefonszám (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Hálózati mask:",\r
+/* TR_NETWORKING */\r
+"Hálózat",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Hálózati cím\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Hálózati cím:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Halózat beállítási menü",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Hálózati konfigurációs típus",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Válassza a hálózati beállítását a %s-nak. A következő beállítás típusok listája az interfészekhez, amik csatoltak az ethernet-hez. Ha megváltoztatja ezeket a beállításokat, hálózati újraindítás szükséges, és újra be kell állítania a hálózati driverek csatolását.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Hálózati mask\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Hálózat beállítása sikertelen.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Nincs elég kártya hozzárendelve.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Nincs kijelölt BLUE interfész.",\r
+/* TR_NO_CDROM */\r
+"Nem található CD-ROM.",\r
+/* TR_NO_HARDDISK */\r
+"Nem található merevlemez.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Nincs ipcop tarball fájl a Web szerveren.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Nincs ORANGE interfész hozzárendelve.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Nincs Red interfész hozzárendelve.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Nincs SCSI kép fájl a Web szerveren.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Nincs több szabad hálózati kártya, továbbira van szükség. Próbálja az automatikus felismerést a többi kártya kereséséhez vagy válasszon egy drivert a listából.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Lemez partícionálása...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"A megadott jelszavak nem egyeznek.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Jelszó nem lehet üres.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Jelszó nem tartalmazhat szünetet.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Jelszó:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Telefonszám nem lehet üres.",\r
+/* TR_PREPARE_HARDDISK */\r
+"A telepítő program előkészíti a merevlemezt a %s-en.. Először a meghajtót partícionálja, majd a fájlrendszereket hozza létre.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Újraindításhoz nyomja meg az Ok-t.",\r
+/* TR_PRIMARY_DNS */\r
+"Elsődleges DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Elsődleges DNS\n",\r
+/* TR_PROBE */\r
+"Próba",\r
+/* TR_PROBE_FAILED */\r
+"Automatikus felismerés sikertelen.",\r
+/* TR_PROBING_SCSI */\r
+"SCSI eszközök keresése...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"%s 'admin' jelszó beállítási probléma.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"'root' jelszó beállítási probléma.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"'setup' jelszó beállítási probléma.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protokol/Ország",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Hálózat aktíválása...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"A hálózat leállítás alatt...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Nem lokális hálózat leállítás alatt...",\r
+/* TR_QUIT */\r
+"Kilépés",\r
+/* TR_RED_IN_USE */\r
+"ISDN (vagy egy másik külső kapcsolat) használatban. Az ISDN nem konfigurálható, amíg a RED interfész aktív.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nA konfiguráció befejezése után a hálózatot újra kell indítani.",\r
+/* TR_RESTORE */\r
+"Visszaállít",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Ha van elmentett %s konfigurációja, helyezze be a floppy meghajtóba az ezt tartalmazó lemezt és nyomja meg a Visszaállít gombot.",\r
+/* TR_ROOT_PASSWORD */\r
+"'root' jelszó",\r
+/* TR_SECONDARY_DNS */\r
+"Másodlagos DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Másodlagos DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Elsődleges DNS nélkül lett megadva a Másodlagos DNS.",\r
+/* TR_SECTION_MENU */\r
+"Szekció menü",\r
+/* TR_SELECT */\r
+"Kiválaszt",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"CDROM típusának kiválasztása",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Nem sikerült a CDROM-ot felismerni a számítógépben. Válassza ki az alábbi driverek közül a megfelelőt hogy az %s használni tudja a CDROM-ot.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Telepítő média kiválasztása.",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"Az %s többféle médiáról telepíthető. A legegyszerűbb ha a számítógép CD-ROM meghajtóját használja. Ha nincs ilyen, akkor telepítheti egy másik számítógépről LAN-on keresztül, amin HTTP-n elérhetőek a telepítő fájlok. Ehhez a verzióhoz a hálózati driver lemezre lesz szüksége.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Hálózati driver kiválasztása",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Hálózati driver kiválasztása a számítógépben található hálózati kártyához. Ha a MANUÁLIS módot választja, meg kell adnia a driver pontos nevét és paramétereit, amelyekre szükség van például egy ISA kártyánál.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Válassza ki az interfészt, amit újra akar konfigurálni.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Válassza ki a beállítani kívánt elemet.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Jelszó beállítása az 'admin' felhaszálóhoz...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Jelszó beállítása a 'root' felhaszálóhoz...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Jelszó beállítása a 'setup' felhaszálóhoz...",\r
+/* TR_SETUP_FINISHED */\r
+"Telepítés befejeződött. Nyomja meg az OK-t az újraindításhoz.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Az előtelepítés nem fejeződött be. Kérjük fejezze be a későbbiekben a setup shell-ből futtatásával.",\r
+/* TR_SETUP_PASSWORD */\r
+"'setup' jelszó",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"További modulparaméterek beállítása",\r
+/* TR_SINGLE_GREEN */\r
+"A konfiguráció egyedüli GREEN interfészre van beállítva.",\r
+/* TR_SKIP */\r
+"Kihagy",\r
+/* TR_START_ADDRESS */\r
+"Kezdő cím:",\r
+/* TR_START_ADDRESS_CR */\r
+"Kezdő cím\n",\r
+/* TR_STATIC */\r
+"Statikus",\r
+/* TR_SUGGEST_IO */\r
+"(javasolt %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(javasolt %x)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Ez a modul driver már be van töltve.",\r
+/* TR_TIMEZONE */\r
+"Időzóna",\r
+/* TR_TIMEZONE_LONG */\r
+"Válassza ki az időzónáját az alábbi listából.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"A CDROM kiadása nem lehetséges.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"A modulok kicsomagolása nem lehetséges.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"További driverek nem találhatók.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Nem található ISDN kártya ebben a számítógépben. Lehetséges, hogy további modulparaméterekre van szüksége (Pl ISA kártya esetén).",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"ISDN telepítése sikertelen.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Fájlok telepítése sikertelen.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"GRUB telepítése sikertelen.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Modul driver nem betölthető.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Boot fájlrendszer létrehozása sikertelen.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Log fájlrendszer létrehozása sikertelen.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Root fájlrendszer létrehozása sikertelen.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Swap terület létrehozása sikertelen.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Hivatkozás létrehozása /dev/harddisk-re nem sikerült.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Hivatkozás létrehozása /dev/harddisk1-re nem sikerült.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Hivatkozás létrehozása /dev/harddisk2-re nem sikerült.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Hivatkozás létrehozása /dev/harddisk3-ra nem sikerült.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Hivatkozás létrehozása /dev/harddisk4-re nem sikerült.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Hivatkozás létrehozása /dev/root-ra nem sikerült.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Boot fájlrendszer csatlakoztatása sikertelen.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Log fájlrendszer csatlakoztatása sikertelen.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Proc fájlrendszer csatlakoztatása sikertelen.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"A root fájlrendszert nem lehet csatlakoztatni.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"A swap paríció csatlakoztatása sikertelen.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"A fő host fájlokat nem lehet megnyitni.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"A beállításokat tartalmazó fájlt nem lehet megnyitni.",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"A lemez particionálása sikertelen.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"A letöltött átmeneti fájlok eltávolítása sikertelen.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"A hostnév nem beállitható.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"CDROM/floppydisk lecsatolása sikertelen.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"A merevlemezt nem lehet lecsatolni.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"/etc/fstab nem írható",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"/etc/hostname nem írható",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"/etc/hosts nem írható",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"/etc/hosts.allow nem írható",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"/etc/hosts.deny nem írható",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"%s/ethernet/settings nem írható",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"%s/main/hostname.conf nem írható",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"%s/main/settings nem írható",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Van egy gazdátlan hálózati kártya, aminek a típusa:\n%s\n\nHozzárendelheti ehhez:",\r
+/* TR_UNKNOWN */\r
+"ISMERETLEN",\r
+/* TR_UNSET */\r
+"NEM MEGADOTT",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"FIGYELMEZTETÉS",\r
+/* TR_WARNING_LONG */\r
+"Ha megváltoztatja ezt az IP címet és távolról jelentkezett be, a kapcsolat a géppel meg fog szakadni, és újra kell kapcsolódnia az új IP címen. Ez egy kritikus beállítás. Ajánjuk, hogy csak fizikai kapcsolat esetén alkalmazza, mivel problémák adódnának.",\r
+/* TR_WELCOME */\r
+"%s telepítő program üdvözli Önt. Ha bármikor a következőkben a Mégsem gombot választja, a számítógép újraindul.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Egyetlen GREEN interfész van beállítva, amelyhez már tartozik hozzárendelt driver.",\r
+}; \r
+  \r
diff --git a/langs/it/CVS/Entries b/langs/it/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/it/CVS/Repository b/langs/it/CVS/Repository
new file mode 100644 (file)
index 0000000..4c57453
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/it
diff --git a/langs/it/CVS/Root b/langs/it/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/it/CVS/Tag b/langs/it/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/it/cgi-bin/CVS/Entries b/langs/it/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..0433892
--- /dev/null
@@ -0,0 +1,2 @@
+/it.pl/1.3.2.34/Sat Oct 29 08:14:29 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/it/cgi-bin/CVS/Repository b/langs/it/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..d5430a4
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/it/cgi-bin
diff --git a/langs/it/cgi-bin/CVS/Root b/langs/it/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/it/cgi-bin/CVS/Tag b/langs/it/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/it/cgi-bin/it.pl b/langs/it/cgi-bin/it.pl
new file mode 100644 (file)
index 0000000..e8a7f15
--- /dev/null
@@ -0,0 +1,945 @@
+# Italian (it) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You sh ould have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Fabio Gava, Antonio Stano, Marco Spreafico, Filippo Carletti \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Un certificato di CA con questo nome già esiste.', \r
+'a connection with this common name already exists' => 'Una connessione con questo nome comune già esiste.', \r
+'a connection with this name already exists' => 'Un connessione con questo nome già esiste.', \r
+'access allowed' => 'Accesso consentito da:', \r
+'access refused with this oinkcode' => 'Accesso rifiutato con questo Oink Code', \r
+'action' => 'Azione', \r
+'add' => 'Aggiungi', \r
+'add a host' => 'Aggiungi un host:', \r
+'add a new rule' => 'Aggiungi nuova regola:', \r
+'add device' => 'Aggiungi scheda di rete', \r
+'add network' => 'aggiungere rete', \r
+'add new alias' => 'Aggiungi alias:', \r
+'add new lease' => 'Aggiungi un nuovo assegnamento fisso', \r
+'add service' => 'Aggiungi servizio', \r
+'add xtaccess' => 'Aggiungi un accesso esterno', \r
+'added from dhcp lease list' => 'aggiunto dalla lista dei lease DHCP', \r
+'admin user password has been changed' => 'La password di Admin è stata cambiata.', \r
+'administrator user password' => 'Password di Admin:', \r
+'adsl settings' => 'Impostazioni ADSL', \r
+'advanced' => 'Avanzato', \r
+'again' => 'Conferma password:', \r
+'alcatelusb help' => 'Per utilizzare il modem USB Speedtouch è necessario caricare il firmware su IPCop. Scaricare il pacchetto<b>Embedded Firmware</b> da speedtouch.com, decomprimere e caricare quindi il file appropriato per il proprio modem : KQD6_3.xxx quando Rev<4 o ZZZL_3.xxx per Rev=4 usare il modulo sottostante.', \r
+'alcatelusb upload' => 'Carica firmware USB Speedtouch', \r
+'alias ip' => 'Alias IP', \r
+'aliases' => 'Alias IP', \r
+'aliases not active' => 'Gli alias non saranno attivi se l\'interfaccia RED non è STATIC', \r
+'all' => 'Tutti', \r
+'all interfaces' => 'Tutte le interfacce', \r
+'all updates installed' => 'Tutti gli aggiornamenti disponibili sono stati installati', \r
+'alt dialup' => 'Connessioni', \r
+'alt home' => 'Inizio', \r
+'alt information' => 'Informazioni', \r
+'alt logs' => 'Log', \r
+'alt services' => 'Servizi', \r
+'alt system' => 'Sistema', \r
+'alt vpn' => 'VPN', \r
+'and' => 'e', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Applica', \r
+'april' => 'Aprile', \r
+'archive not exist' => 'L\'archivio di configurazione non esiste', \r
+'are you sure' => 'Siete sicuri?', \r
+'arp table entries' => 'Tabella voci ARP:', \r
+'august' => 'Agosto', \r
+'authentication' => 'Autenticazione:', \r
+'automatic' => 'Automatica', \r
+'available updates' => 'Aggiornamenti disponibili:', \r
+'average' => 'Media', \r
+'avoid dod' => 'Non utilizzare questa opzione con la connessione su richiesta! Il suo utilizzo prevalente è con IPCop dietro un router. L\'indirizzo IP RED deve essere all\'interno di uno dei tre intervalli di indirizzi riservati, es. 10/8, 172.16/12, 192.168/16', \r
+'back' => 'INDIETRO', \r
+'backup' => 'Salvataggio', \r
+'backup config floppy' => 'Configurazione backup - Floppy disk', \r
+'backup configuration' => 'Salvataggio configurazione:', \r
+'backup sets' => 'Insiemi di backup', \r
+'backup to floppy' => 'Backup su floppy', \r
+'backupprofile' => 'In caso di fallimento della riconnessione, passa al profilo', \r
+'bad characters in script field' => 'Caratteri errati nel campo script', \r
+'bad characters in the telephone number field' => 'Caratteri non validi nel campo numero di telefono.', \r
+'bad destination range' => 'L\'intervallo di porte di destinazione ha il primo valore maggiore o uguale al secondo valore.', \r
+'bad ignore filter' => 'Filtro esclusione errato:', \r
+'bad return code' => 'Il programma ha restituito un errore', \r
+'bad source range' => 'L\'intervallo di porte sorgente ha il primo valore maggiore o uguale al secondo valore.', \r
+'beep when ppp connects or disconnects' => 'Emetti segnale acustico alla connessione e disconnessione', \r
+'behind a proxy' => 'Dietro un proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'BLU', \r
+'blue access' => 'Accesso Blu', \r
+'blue interface' => 'Interfaccia blu', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Broken pipe', \r
+'buffered memory' => 'Memoria buffer', \r
+'buffers' => 'buffer', \r
+'bytes per second' => 'Byte al secondo', \r
+'ca certificate' => 'Certificato di CA', \r
+'ca name' => 'Nome di CA', \r
+'cache management' => 'Gestione della cache', \r
+'cache size' => 'Dimensione cache (MB):', \r
+'cached' => 'cached', \r
+'cached memory' => 'Memoria cache', \r
+'cancel' => 'Annulla', \r
+'cannot enable both nat traversal and compression' => 'Impossibile abilitare sia NAT Traversal che la compressione.', \r
+'cannot enable ntp without specifying primary' => 'Impossibile abilitare NTP senza indicare l\'indirizzo primario.', \r
+'cannot specify secondary dns without specifying primary' => 'Non e\' possibile inserire un DNS secondario senza aver prima inserito il DNS primario.', \r
+'cannot specify secondary ntp without specifying primary' => 'Impossibile impostare il server NTP secondario senza specificare anche il primario', \r
+'cannot specify secondary wins without specifying primary' => 'Impossibile specificare WINS server secondario senza specificare il primario.', \r
+'cant change certificates' => 'Impossibile modificare i certificati', \r
+'cant enable xtaccess' => 'La regola associata di port forwarding è disabilitata, non è quindi possibile abilitare l\'accesso esterno per questa regola', \r
+'cant start openssl' => 'Impossibile avviare OpenSSL', \r
+'caps all' => 'TUTTI', \r
+'capsclosed' => 'CHIUSO', \r
+'capsopen' => 'APERTO', \r
+'capswarning' => 'ATTENZIONE', \r
+'cert' => 'Certificato', \r
+'certificate' => 'Certificato', \r
+'certificate authorities' => 'Autorità di Certificazione', \r
+'certificate does not have a valid ca associated with it' => 'Il certificato non ha associato nessun CA valido.', \r
+'certificate file move failed' => 'Impossibile spostare il certificato', \r
+'cfg restart' => 'Si suggerisce di riavviare dopo aver ripristinato un archivio di configurazione.', \r
+'chain' => 'Chain', \r
+'change passwords' => 'Modifica password', \r
+'check vpn lr' => 'Controlla', \r
+'city' => 'Città', \r
+'clear cache' => 'Svuota cache', \r
+'clenabled' => 'Fornisci orario alla rete locale', \r
+'click to disable' => 'Abilitato (click per disabilitare)', \r
+'click to enable' => 'Disabilitato (click per abilitare)', \r
+'clock has not been synchronized' => 'L\'orologio non è stato sincronizzato', \r
+'clock last synchronized at' => 'L\'orologio è stato sincronizzato alle:', \r
+'common name' => 'Nome Comune', \r
+'compression' => 'Compressione:', \r
+'computer to modem rate' => 'Velocità connessione PC-modem:', \r
+'concentrator name' => 'Nome concentratore:', \r
+'confirmation' => 'conferma', \r
+'connect on ipcop restart' => 'Connetti all\'avvio:', \r
+'connect the modem' => 'Connetti il modem', \r
+'connect timeout' => 'Timeout connessione:', \r
+'connected' => 'Connesso', \r
+'connecting' => 'Connessione in corso...', \r
+'connection' => 'Connessione', \r
+'connection debugging' => 'Debug della connessione', \r
+'connection status and controlc' => 'Controllo stato connessione:', \r
+'connection tracking' => 'IPTables Connection Tracking', \r
+'connection type' => 'Tipo di connessione', \r
+'connection type is invalid' => 'Tipo di connessione non valido.', \r
+'connections' => 'Connessioni', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'connessioni associate con questa CA. La cancellazione della CA cancellerà queste connessioni.', \r
+'could not be opened' => 'non può essere aperto', \r
+'could not connect to' => 'Impossibile connettersi a ', \r
+'could not connect to www ipcop org' => 'Non è stato possibile collegarsi a www.ipcop.org', \r
+'could not create directory' => 'Impossibile creare la directory.', \r
+'could not download latest patch list' => 'Non è stato possibile scaricare l\'ultima lista degli aggiornamenti (non connesso).', \r
+'could not download latest updates' => 'Impossibile scaricare gli ultimi aggiornamenti.', \r
+'could not download the available updates list' => 'Impossibile scaricare la lista degli aggiornamenti.', \r
+'could not open available updates file' => 'Impossibile aprire il file degli aggiornamenti disponibili.', \r
+'could not open installed updates file' => 'Impossibile aprire il file degli aggiornamenti installati', \r
+'could not open update information file' => 'Impossibile aprire il file di info. Il file di update è corrotto.', \r
+'could not retrieve common name from certificate' => 'Impossibile reperire il nome per il certificato.', \r
+'country' => 'Nazione', \r
+'cpu usage per' => 'Utilizzo CPU per', \r
+'create' => 'Crea', \r
+'credits' => 'Crediti', \r
+'cron server' => 'CRON server', \r
+'current' => 'Corrente', \r
+'current aliases' => 'Alias attuali:', \r
+'current dhcp leases on blue' => 'Lease DHCP correnti nella rete BLUE', \r
+'current dynamic leases' => 'Assegnamenti dinamici attuali', \r
+'current fixed leases' => 'Assegnamenti fissi attuali', \r
+'current hosts' => 'Host attuali:', \r
+'current profile' => 'Profilo corrente:', \r
+'current rules' => 'Regole correnti:', \r
+'custom networks' => 'Reti custom', \r
+'custom services' => 'Servizi personalizzati', \r
+'dat without key' => 'Un archivio criptato non può essere ripristinato senza la chiave.', \r
+'date' => 'Data', \r
+'date not in logs' => 'Nessun log esistente per il giorno richiesto', \r
+'day' => 'Giorno', \r
+'day after' => 'Giorno dopo', \r
+'day before' => 'Giorno prima', \r
+'days' => 'giorni', \r
+'ddns hostname added' => 'Aggiunto un nuovo host al DNS dinamico', \r
+'ddns hostname modified' => 'Hostname DNS dinamico modificato', \r
+'ddns hostname removed' => 'Rimosso un host dal DNS dinamico', \r
+'ddns minimize updates' => 'Riduce gli aggiornamenti: prima di un aggiornamento confronta l\'IP RED con l\'IP dell\'hostname "[host.]dominio" ottenuto dal dns.', \r
+'ddns noip prefix' => 'Per usare no-ip in modalità gruppo, premettere al nome host <b>%</b>', \r
+'december' => 'Dicembre', \r
+'def lease time' => 'Tempo di lease predefinito', \r
+'default lease time' => 'Lease time di default (minuti):', \r
+'default networks' => 'Reti predefinite', \r
+'default renewal time' => 'Tempo standard di rinnovo', \r
+'default services' => 'Servizi di default', \r
+'delete' => 'Elimina', \r
+'demon login script' => 'Demon login script', \r
+'description' => 'Descrizione', \r
+'dest ip and port' => 'IP Dest.:Porta', \r
+'destination' => 'Destinazione', \r
+'destination ip' => 'IP destinazione', \r
+'destination ip bad' => 'IP di destinazione non valido', \r
+'destination ip or net' => 'IP o NET  di destinazione', \r
+'destination net' => 'Rete Destinazione', \r
+'destination port' => 'Porta destinazione', \r
+'destination port numbers' => 'La porta di destinazione deve essere un numero di porta valido o un intervallo di porte', \r
+'destination port overlaps' => 'L\'intervallo di porte di destinazione si sovrappone ad un intervallo di porte esistente.', \r
+'detail level' => 'Livello di dettaglio', \r
+'device' => 'Dispositivo', \r
+'devices on blue' => 'Schede nella rete BLUE', \r
+'dhcp advopt add' => 'Aggiungi Opzione DHCP', \r
+'dhcp advopt added' => 'Opzione DHCP aggiunta', \r
+'dhcp advopt blank value' => 'Il valore dell\'opzione DHCP nno può essere vuoto.', \r
+'dhcp advopt custom definition' => 'Opzione DHCP personalizzata', \r
+'dhcp advopt definition' => 'Definizione', \r
+'dhcp advopt definition exists' => 'Definizione già esistente. E\' possibile solamente modificarla o cancellarla.', \r
+'dhcp advopt edit' => 'Modifica Opzione DHCP', \r
+'dhcp advopt help' => 'Elenco opzioni', \r
+'dhcp advopt list' => 'Lista Opzioni DHCP', \r
+'dhcp advopt modified' => 'Opzione DHCP modificata', \r
+'dhcp advopt name' => 'Nome Opzione', \r
+'dhcp advopt removed' => 'Opzione DHCP rimossa', \r
+'dhcp advopt scope' => 'Opzione scope', \r
+'dhcp advopt scope global' => 'Globale', \r
+'dhcp advopt scope help' => 'Scope Globale o limita scope alle interfacce selezionate', \r
+'dhcp advopt unknown' => 'Nome Opzione DHCP non riconosciuto', \r
+'dhcp advopt value' => 'Valore Opzione', \r
+'dhcp allow bootp' => 'Permetti client bootp', \r
+'dhcp configuration' => 'Configurazione DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'Server DHCP', \r
+'dhcp server disabled' => 'DHCP server disabilitato. Stopped.', \r
+'dhcp server disabled on blue interface' => 'Server DHCP disabilitato per l\'interfaccia BLUE', \r
+'dhcp server enabled' => 'DHCP server abilitato. Il servizio sara\' riavviato.', \r
+'dhcp server enabled on blue interface' => 'Server DHCP abilitato per l\'interfaccia BLUE', \r
+'dial' => 'Connetti', \r
+'dial user password' => 'Password utente Dial:', \r
+'dial user password has been changed' => 'La password di Dial è stata modificata.', \r
+'dialing mode' => 'Composizione:', \r
+'dialup settings' => 'Impostazioni dialup', \r
+'disk access per' => 'Accessi al disco per', \r
+'disk usage' => 'Utilizzo disco:', \r
+'display' => 'Aspetto', \r
+'display hostname in window title' => 'Visualizza l\'hostname nel titolo della finestra', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Configurazione DMZ pinhole', \r
+'dmz pinhole rule added' => 'Regola di DMZ aggiunta; riavvio DMZ in corso', \r
+'dmz pinhole rule removed' => 'Regola di DMZ rimossa; riavvio DMZ in corso', \r
+'dmzpinholes for same net not necessary' => 'I pinholes non sono necessari per la stessa rete. Selezionare una rete sorgente o destinazione diversa.', \r
+'dns check failed' => 'Controllo DNS fallito', \r
+'dns proxy server' => 'DNS proxy server', \r
+'do not log this port list' => 'Non loggare le porte sottoelencate (riduce la dimensione dei log)', \r
+'dod' => 'Connessione su richiesta', \r
+'dod for dns' => 'Connessione su richiesta per DNS:', \r
+'dod not compatible with ddns' => 'La connessione su richiesta non è compatibile con il servizio dns dinamico', \r
+'dod waiting' => 'Connessione su richiesta in attesa', \r
+'domain' => 'Dominio', \r
+'domain name' => 'Nome dominio', \r
+'domain name suffix' => 'Suffisso nome di dominio:', \r
+'domain not set' => 'Dominio non impostato.', \r
+'downlink speed' => 'Velocità download (kbit/sec)', \r
+'download ca certificate' => 'Scarica il certificato CA', \r
+'download certificate' => 'Scarica certificato', \r
+'download host certificate' => 'Scarica certificato host', \r
+'download new ruleset' => 'Scarica nuovo set di regole', \r
+'download pkcs12 file' => 'Scarica file PKCS12', \r
+'download root certificate' => 'Scarica certificato root', \r
+'dpd action' => 'Dead Peer Detection', \r
+'driver' => 'Driver', \r
+'dst port' => 'Dst Port', \r
+'dstprt range overlaps' => 'L\'intervallo di porte di destinazione si sovrappone ad una porta già definita.', \r
+'dstprt within existing' => 'La porta di destinazione è gia compresa in un intervallo definito.', \r
+'duplicate ip' => 'Immesso IP duplicato', \r
+'duplicate ip bold' => 'IP duplicati in <b>grassetto</b>', \r
+'duplicate mac' => 'Indirizzo MAC duplicato', \r
+'duplicate name' => 'Questo nome è già stato utilizzato, sceglierne uno differente.', \r
+'dyn dns source choice' => 'I provider DNS dinamici riceveranno l\'indirizzo ip per questo IPCop da:', \r
+'dynamic dns' => 'DNS dinamico', \r
+'dynamic dns client' => 'Client DNS dinamico', \r
+'e-mail address too long' => 'Indirizzo e-mail troppo lungo, non dovrebbe superare i 40 caratteri.', \r
+'eciadsl help' => 'Per utilizzare il modem ECI ADSL è necessario fare l\'upload del file <b>synch.bin</b> su IPCop. Scaricare il file dal sito ECIADSL e quindi caricarlo utilizzando il modulo sottostante.', \r
+'eciadsl upload' => 'Upload del file ECI ADSL Synch.bin', \r
+'edit' => 'Modifica', \r
+'edit a rule' => 'Modifica una regola esistente:', \r
+'edit advanced settings when done' => 'Modifica impostazioni avanzate alla fine.', \r
+'edit an existing alias' => 'Modifica un alias esistente', \r
+'edit an existing host' => 'Modifica host esistente', \r
+'edit an existing lease' => 'Modifica un assegnamento esistente', \r
+'edit device' => 'Modifica impostazioni scheda di rete', \r
+'edit hosts' => 'Modifica hosts', \r
+'edit network' => 'Modifica rete', \r
+'edit service' => 'Modifica servizio', \r
+'empty' => 'Vuoto', \r
+'enable ignore filter' => 'Abilita esclusioni', \r
+'enable javascript' => 'Abilita Javascript', \r
+'enable wildcards' => 'Abilita le wildcard:', \r
+'enabled' => 'Abilitato:', \r
+'enabled on' => 'Abilita su', \r
+'enabledtitle' => 'Abilita', \r
+'encapsulation' => 'Incapsulamento', \r
+'encrypted' => 'Criptato', \r
+'end address' => 'Indirizzo finale:', \r
+'err bk 1' => 'Errore nella creazione dell\'archivio', \r
+'err bk 2 key' => 'Errore nella creazione del file chiave', \r
+'err bk 3 tar' => 'Errore in accodamento file all\'archivio', \r
+'err bk 4 gz' => 'Errore nella compressione dell\'archivio', \r
+'err bk 5 encrypt' => 'Errore durante cifratura dell\'archivio', \r
+'err rs 1' => 'Errore in ripristino archivio', \r
+'err rs 6 decrypt' => 'Errore di decifratura archivio', \r
+'err rs 7 untartst' => 'File decriptato non valido', \r
+'err rs 8 untar' => 'Errore estrazione archivio', \r
+'error messages' => 'Messaggi di errore:', \r
+'esp encryption' => 'Crittografia ESP:', \r
+'esp grouptype' => 'Tipo gruppo ESP:', \r
+'esp integrity' => 'Integrità ESP:', \r
+'esp keylife' => 'Keylife ESP:', \r
+'esp keylife should be between 1 and 24 hours' => 'La durata della chiave ESP deve essere tra 1 e 24 ore.', \r
+'every' => 'Ogni', \r
+'excluding buffers and cache' => '-/+ buffers/cache', \r
+'expected' => 'Atteso', \r
+'expires' => 'Scade', \r
+'export' => 'Esporta', \r
+'external access' => 'Accesso esterno', \r
+'external access configuration' => 'Configurazione accesso esterno', \r
+'external access rule added' => 'Regola di accesso esterno aggiunta; riavvio in corso', \r
+'external access rule removed' => ' Regola di accesso esterno rimossa; riavvio in corso', \r
+'external aliases configuration' => 'Configurazione alias esterni', \r
+'february' => 'Febbraio', \r
+'fetch ip from' => 'Ottieni l\'IP pubblico effettivo tramite un server esterno', \r
+'filename' => 'Nome file', \r
+'filesystem full' => 'Filesystem pieno', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Numero totale di connessioni bloccate per', \r
+'firewall log' => 'Firewall log', \r
+'firewall log viewer' => 'Visualizzatore log firewall', \r
+'firewall logs' => 'Log del firewall', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Upload Firmware / Driver', \r
+'fixed ip lease added' => 'Lease statico aggiunto', \r
+'fixed ip lease modified' => 'Lease statico modificato', \r
+'fixed ip lease removed' => 'Lease statico rimosso', \r
+'force update' => 'Aggiornamento forzato', \r
+'forwarding rule added' => 'Regola di forwarding aggiunta; riavvio in corso', \r
+'forwarding rule removed' => 'Regola di forwarding rimossa; riavvio in corso', \r
+'forwarding rule updated' => 'Regole di forwarding aggiornate; riavvio servizio', \r
+'free' => 'Liberi', \r
+'free memory' => 'Memoria libera', \r
+'free swap' => 'Swap libero', \r
+'friday' => 'Venerdì', \r
+'fritzdsl help' => 'Per utilizzare uno tra Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modem è necessario caricare un pacchetto apposito su IPCop. Scaricare il file corrispondente alla propria versione dal sito web e fare l\'upload del file <b>fcdsl-(versione).tgz</b> utilizzando il form sottostante.', \r
+'fritzdsl upload' => 'Upload driver Fritz!DSL', \r
+'from' => 'Da', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Gateway', \r
+'gateway ip' => 'IP gateway', \r
+'generate a certificate' => 'Genera un certificato:', \r
+'generate root/host certificates' => 'Genera certificato Root/Host', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'La generazione dei certificati di root e host può richiedere molto tempo. Attendere prego.', \r
+'global settings' => 'Impostazioni globali', \r
+'graph' => 'Grafico', \r
+'graph per' => 'Grafico per', \r
+'green' => 'VERDE', \r
+'green interface' => 'Interfaccia Verde', \r
+'gui settings' => 'Impostazioni interfaccia', \r
+'gz with key' => 'Solo un archivio criptato può essere ripristinato in questa macchina.', \r
+'hangup' => 'Disconnetti', \r
+'hangup string' => 'Hangup:', \r
+'high' => 'Alto', \r
+'high memory usage' => 'Elevato utilizzo della memoria', \r
+'holdoff' => 'Intervallo di riconnessione (in secondi)', \r
+'host' => 'Host', \r
+'host certificate' => 'Certificato host', \r
+'host configuration' => 'Configurazione host', \r
+'host ip' => 'Indirizzo IP host', \r
+'host to net vpn' => 'Host-to-Net Virtual Private Network (RoadWarrior)', \r
+'hostname' => 'Hostname', \r
+'hostname and domain already in use' => 'Hostname e dominio già utilizzati.', \r
+'hostname cant be empty' => 'L\'hostname non può essere vuoto.', \r
+'hostname not set' => 'Hostname non impostato.', \r
+'hosts config added' => 'configurazione hosts aggiunta', \r
+'hosts config changed' => 'configurazione hosts modificata', \r
+'hours' => 'ore', \r
+'hours2' => 'Ore', \r
+'ibod for dual isdn only' => 'iBOD può essere usato solo con il doppio ISDN.', \r
+'icmp selected but no type' => 'Selezionato ICMP come protocollo, ma non è stato indicato il periodo di tempo.', \r
+'icmp type' => 'Tipo ICMP', \r
+'id' => 'ID', \r
+'idle' => 'Inattivo', \r
+'idle cpu' => 'CPU idle', \r
+'idle cpu usage' => 'Utilizzo CPU idle', \r
+'idle timeout' => 'Timeout inattività (min; 0 per disabilitare):', \r
+'idle timeout not set' => 'Timeout di inattività non impostato.', \r
+'ids log viewer' => 'Visualizzatore log IDS', \r
+'ids logs' => 'Log IDS', \r
+'ids rules license' => 'Per utilizzare le Regole VRT di Sourcefire è necessario registrarsi su', \r
+'ids rules license2' => 'Accettare la licenza, attendere la password via email e connettersi al sito', \r
+'ids rules license3' => 'premere il pulsante \'Get Code\' in fondo e copiare l\'Oink Code (40 caratteri)', \r
+'ids rules update' => 'Aggiornamento regole Snort', \r
+'iface' => 'Iface', \r
+'ignore filter' => 'Escludi', \r
+'ike encryption' => 'Crittografia IKE:', \r
+'ike grouptype' => 'Tipo gruppo IKE:', \r
+'ike integrity' => 'Integrità IKE:', \r
+'ike lifetime' => 'Durata IKE:', \r
+'ike lifetime should be between 1 and 8 hours' => 'La durata di IKE deve essere tra 1 e 8 ore.', \r
+'import' => 'Importa', \r
+'in' => 'Ingresso', \r
+'incoming traffic in bytes per second' => 'Traffico in ingresso (Bytes per secondo)', \r
+'info' => 'Informazioni', \r
+'init string' => 'Init:', \r
+'insert floppy' => 'Inserire un floppy formattato nel drive e cliccare il pulsante <i>Backup su floppy</i> per salvare la configurazione del sistema. Controllare il risultato dell\'operazione attentamente.<p>', \r
+'install new update' => 'Installa un nuovo aggiornamento:', \r
+'installed' => 'Installato', \r
+'installed updates' => 'Aggiornamenti installati:', \r
+'instant update' => 'Aggiorna adesso', \r
+'interface' => 'Interfaccia:', \r
+'interfaces' => 'Interfacce:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Rilevamento intrusioni', \r
+'intrusion detection system' => 'Sistema di rilevamento intrusioni', \r
+'intrusion detection system log viewer' => 'Visualizzatore Log IDS', \r
+'intrusion detection system2' => 'Sistema di rilevamento intrusioni:', \r
+'invalid broadcast ip' => 'Indirizzo IP di broadcast non valido', \r
+'invalid cache size' => 'Dim. cache non valida.', \r
+'invalid characters found in pre-shared key' => 'Caratteri non validi nella chiave pre-condivisa.', \r
+'invalid date entered' => 'Data non valida.', \r
+'invalid default lease time' => 'Intervallo minimo lease DHCP non valido.', \r
+'invalid domain name' => 'Nome di dominio non valido.', \r
+'invalid downlink speed' => 'Velocità download non valida.', \r
+'invalid end address' => 'Indirizzo finale non valido.', \r
+'invalid fixed ip address' => 'Indirizzo IP statico non valido', \r
+'invalid fixed mac address' => 'Indirizzo MAC non valido', \r
+'invalid hostname' => 'Hostname non valido.', \r
+'invalid input' => 'Dato non valido', \r
+'invalid input for authentication method' => 'Valore non valido per il metodo d\'autenticazione.', \r
+'invalid input for city' => 'Valore non valido per la città.', \r
+'invalid input for country' => 'Valore non valido per la nazione.', \r
+'invalid input for department' => 'Valore non valido per il dipartimento.', \r
+'invalid input for e-mail address' => 'Valore non valido per l\'email.', \r
+'invalid input for esp keylife' => 'Valore non valido per il keylife di ESP', \r
+'invalid input for hostname' => 'Valore non valido per il nome host.', \r
+'invalid input for ike lifetime' => 'Valore non valido per la durata di IKE.', \r
+'invalid input for name' => 'Valore non valido per il nome utente o nome del sistema', \r
+'invalid input for oink code' => 'Valore non valido per Oink code', \r
+'invalid input for organization' => 'Valore non valido per l\'organizzazione', \r
+'invalid input for remote host/ip' => 'Valore non valido per host/ip remoto.', \r
+'invalid input for state or province' => 'Valore non valido per stato o provincia.', \r
+'invalid ip' => 'Indirizzo IP non valido', \r
+'invalid keep time' => 'Tempo di persistenza non valido', \r
+'invalid key' => 'Chiave non valida.', \r
+'invalid loaded file' => 'File caricato non valido', \r
+'invalid logserver address' => 'Valore non valido per il server syslogd', \r
+'invalid max lease time' => 'Intervallo massimo lease DHCP non valido.', \r
+'invalid maximum incoming size' => 'Dimensione massima in entrata non valida.', \r
+'invalid maximum object size' => 'Dimensione massima dell\'oggetto non valida.', \r
+'invalid maximum outgoing size' => 'Dimensione massima in uscita non valida.', \r
+'invalid md5sum' => 'MD5Sum non valido.', \r
+'invalid minimum object size' => 'Dimensione minima dell\'oggetto non valida.', \r
+'invalid netmask' => 'Netmask non valido', \r
+'invalid port' => 'Numero porta non valida.', \r
+'invalid port list' => 'La sintassi nella lista di porte è la seguente: porta[,porta]... dove la porta è specificata nel file /etc/services o direttamente (tramite numero)', \r
+'invalid primary dns' => 'DNS primario non valido.', \r
+'invalid primary ntp' => 'Server primario NTP non valido', \r
+'invalid secondary dns' => 'DNS secondario non valido.', \r
+'invalid secondary ntp' => 'Server secondario NTP non valido', \r
+'invalid start address' => 'Indirizzo di partenza non valido.', \r
+'invalid time entered' => 'Ora non valida.', \r
+'invalid time period' => 'Periodo temporale non valido', \r
+'invalid uplink speed' => 'Velocità uplink non valida.', \r
+'invalid upstream proxy username or password setting' => 'Username o password per l\'upstream proxy non validi.', \r
+'invalid vpi vpci' => 'Valori di VPI/VPCI non validi.', \r
+'invalid wins address' => 'Indirizzo del WINS Server non valido.', \r
+'invert' => 'Invertito', \r
+'ip address' => 'Indirizzo IP', \r
+'ip address in use' => 'Indirizzo IP già in uso', \r
+'ip alias added' => 'Aggiunto l\'external IP', \r
+'ip alias changed' => 'Modificato l\'external IP', \r
+'ip alias removed' => 'Eliminato l\'external IP', \r
+'ip info' => 'Informazioni IP', \r
+'ipcop has now rebooted' => 'IPCop è stato riavviato.', \r
+'ipcop has now shutdown' => 'IPCop è stato arrestato.', \r
+'ipcop side' => 'Lato IPCop:', \r
+'ipcop side is invalid' => 'Lato IPCop non valido.', \r
+'ipcops hostname' => 'Hostname di IPCop', \r
+'ipinfo' => 'IP info', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Impostazioni ISDN aggiuntive:', \r
+'isdn1' => 'Singlo ISDN', \r
+'isdn2' => 'Doppio ISDN', \r
+'january' => 'Gennaio', \r
+'javascript menu error1' => 'Se i menu a comparsa non funzionano, disabilitare i javascript su ', \r
+'javascript menu error2' => 'pagina.', \r
+'july' => 'Luglio', \r
+'june' => 'Giugno', \r
+'kernel' => 'Kernel', \r
+'kernel logging server' => 'Kernel logging server', \r
+'kernel version' => 'Versione kernel:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Selezionare la lingua desiderata per IPCop:', \r
+'lease expires' => 'Scadenza lease', \r
+'legend' => 'Legenda', \r
+'line' => 'Linea', \r
+'loaded modules' => 'Moduli caricati:', \r
+'local ntp server specified but not enabled' => 'NTP server locale specificato ma non permesso', \r
+'local subnet' => 'Sottorete locale:', \r
+'local subnet is invalid' => 'Sottorete locale non valida.', \r
+'local vpn hostname/ip' => 'Hostname/IP VPN locale', \r
+'log' => 'Log:', \r
+'log enabled' => 'Log abilitato', \r
+'log lines per page' => 'Linee per pagina', \r
+'log server address' => 'Server syslog', \r
+'log settings' => 'Impostazioni log', \r
+'log summaries' => 'Sommario log', \r
+'log summary' => 'Sommario log', \r
+'log viewer' => 'Visualizzatore log', \r
+'log viewing options' => 'Opzioni visualizzazione log', \r
+'logging server' => 'Log server', \r
+'loginlogout' => 'Login/Logout', \r
+'lookup failed' => 'Reverse lookup fallito', \r
+'low' => 'Basso', \r
+'ls_dhcpd' => 'Server DHCP:', \r
+'ls_disk space' => 'Spazio su disco:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'Server HTTP:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kernel e Firewall:', \r
+'ls_modprobe' => 'Caricamento moduli:', \r
+'ls_pam_unix' => 'Login utente locale:', \r
+'ls_sshd' => 'Login utente remoto:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'Indirizzo MAC', \r
+'mac address in use' => 'Indirizzo MAC già in uso', \r
+'main page' => 'Pagina principale', \r
+'manual' => 'Manuale', \r
+'manual control and status' => 'Controllo manuale e stato:', \r
+'manually' => 'Manualmente', \r
+'march' => 'Marzo', \r
+'marked' => 'Marcato', \r
+'max incoming size' => 'Max dim. ingresso (KB):', \r
+'max lease time' => 'Lease time massimo (minuti):', \r
+'max outgoing size' => 'Max dim. uscita (KB):', \r
+'max renewal time' => 'Tempo massimo di rinnovo', \r
+'max retries not set' => 'Num. massimo di tentativi non impostato.', \r
+'max size' => 'Max dim. oggetto (KB):', \r
+'maximal' => 'Massimo', \r
+'maximum retries' => 'Tentativi massimi:', \r
+'may' => 'Maggio', \r
+'medium' => 'Medio', \r
+'memory' => 'Memoria:', \r
+'memory usage per' => 'Utilizzo memoria', \r
+'method' => 'Metodo:', \r
+'min size' => 'Min dim. oggetto (KB):', \r
+'minutes' => 'Minuti', \r
+'missing dat' => 'Archivio criptato inesistente', \r
+'missing gz' => 'Archivio non criptato inesistente', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Configurazione modem', \r
+'modem on com1' => 'Modem su COM1', \r
+'modem on com2' => 'Modem su COM2', \r
+'modem on com3' => 'Modem su COM3', \r
+'modem on com4' => 'Modem su COM4', \r
+'modem on com5' => 'Modem su COM5', \r
+'modem settings have errors' => 'Le impostazioni del modem sono errate', \r
+'modem speaker on' => 'Abilitazione speaker:', \r
+'modulation' => 'Modulazione', \r
+'monday' => 'Lunedì', \r
+'month' => 'Mese', \r
+'months' => 'mesi', \r
+'mounted on' => 'Mount', \r
+'name' => 'Nome', \r
+'name is invalid' => 'Nome non valido', \r
+'name must only contain characters' => 'Il nome deve contenere solo caratteri.', \r
+'name too long' => 'Nome utente o di sistema troppo lungo', \r
+'nat-traversal' => 'Nat Traversal:', \r
+'net' => 'Rete', \r
+'net to net vpn' => 'Net-to-Net Virtual Private Network', \r
+'netmask' => 'Netmask', \r
+'network' => 'Network', \r
+'network added' => 'Rete personalizzata aggiunta', \r
+'network configuration' => 'Configurazione di rete', \r
+'network removed' => 'Rete personalizzata eliminata', \r
+'network status information' => 'Informazioni stato rete', \r
+'network time' => 'Usa un Network Time Server:', \r
+'network time from' => 'Ottieni l\'ora da un server di rete (NTP server)', \r
+'network traffic graphs' => 'Grafico traffico di rete:', \r
+'network updated' => 'Rete personalizzata modificata', \r
+'networks settings' => 'Impostazioni firewall - rete', \r
+'new optionsfw later' => 'Le modifiche saranno attive al prossimo riavvio', \r
+'new optionsfw must boot' => 'E\' necessario riavviare IPCop', \r
+'newer' => 'Avanti', \r
+'next address' => 'Prossimo indirizzo', \r
+'no' => 'No', \r
+'no alcatelusb firmware' => 'Nessun firmware USB ADSL. Effettuare l\'upload.', \r
+'no cfg upload' => 'Nessun dato inviato', \r
+'no dhcp lease' => 'Assegnamento DHCP non acquisito', \r
+'no eciadsl synch.bin file' => 'Nessun file ECI ADSL synch.bin. Effettuare l\'upload.', \r
+'no fritzdsl driver' => 'Nessun driver Fritz!DSL. Effettuare l\'upload.', \r
+'no information available' => 'Informazioni non disponibili.', \r
+'no modem selected' => 'Modem non selezionato', \r
+'no set selected' => 'Insieme non selezionato', \r
+'no time limit' => 'nessun limite di tempo', \r
+'none found' => 'vuoto', \r
+'nonetworkname' => 'Nome di rete non inserito', \r
+'noservicename' => 'Nome di servizio non inserito', \r
+'not a valid ca certificate' => 'Certificato CA non valido.', \r
+'not enough disk space' => 'Spazio su disco insufficiente', \r
+'not present' => '<b>Non</b> presente', \r
+'not running' => 'fermo', \r
+'november' => 'Novembre', \r
+'ntp configuration' => 'Configurazione NTP', \r
+'ntp must be enabled to have clients' => 'NTP deve essere abilitato per poter usare i client.', \r
+'ntp server' => 'Server NTP', \r
+'ntp syncro disabled' => 'sincronizzazione NTP disabilitata', \r
+'ntp syncro enabled' => 'sincronizzazione NTP abilitata', \r
+'ntpd restarted' => 'ntpd riavviato', \r
+'number' => 'Numero:', \r
+'october' => 'Ottobre', \r
+'older' => 'Indietro', \r
+'online help en' => 'Aiuto Online (in Inglese)', \r
+'only digits allowed in holdoff field' => 'Ammessi solo numeri nel campo di rinvio', \r
+'only digits allowed in max retries field' => 'Solo cifre ammesse nel campo dei tentativi massimi.', \r
+'only digits allowed in the idle timeout' => 'Nel campo Timeout sono ammessi solo valori numerici.', \r
+'only red' => 'solo RED', \r
+'open to all' => 'Forza l\'accesso esterno a TUTTI', \r
+'openssl produced an error' => 'OpenSSL ha generato un errore', \r
+'options' => 'Opzioni', \r
+'options fw' => 'Opzioni Firewall', \r
+'optionsfw portlist hint' => 'Le porte nell\'elenco devono essere separate da virgola (ad es. 137,138).E\' possibile specificare fino ad un massimo di 15 porte per protocollo.', \r
+'optionsfw warning' => 'La modifica di queste opzioni comporta il riavvio del firewall', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'Il nome dell\'organizzazione non può essere vuoto.', \r
+'organization name' => 'Nome organizzazione', \r
+'organization too long' => 'Il nome dell\'organizzazione è troppo lungo (massimo 60 caratteri)', \r
+'original' => 'Originale', \r
+'other countries' => 'Altri paesi', \r
+'other login script' => 'Altri script di login', \r
+'out' => 'Uscita', \r
+'outgoing traffic in bytes per second' => 'Traffico in uscita (Byte per secondo)', \r
+'package failed to install' => 'Installazione dell\'aggiornamento non riuscita.', \r
+'pap or chap' => 'PAP o CHAP', \r
+'password' => 'Password:', \r
+'password contains illegal characters' => 'La password contiene caratteri non ammessi.', \r
+'password not set' => 'Password non impostata.', \r
+'password too short' => 'La password è troppo corta.', \r
+'passwords do not match' => 'Le password non coincidono.', \r
+'passwords must be at least 6 characters in length' => 'La password deve essere di almeno 6 caratteri', \r
+'percentage' => 'Percentuale', \r
+'persistent' => 'Persistente', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Gruppo Phase1', \r
+'phonebook entry' => 'Voce rubrica:', \r
+'ping disabled' => 'Disabilita risposta al ping', \r
+'pkcs12 file password' => 'File password PKCS12', \r
+'port' => 'Porta', \r
+'port forwarding configuration' => 'Configurazione port forwarding', \r
+'ports' => 'Porte', \r
+'pots' => 'Linea analogica (RTG)', \r
+'ppp setup' => 'Impostazioni PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Impostazioni PPPoE aggiuntive:', \r
+'pptp settings' => 'Impostazioni PPTP aggiuntive:', \r
+'pre-shared key is too short' => 'La chiave pre-condivisa è troppo corta.', \r
+'present' => 'Presente', \r
+'primary dns' => 'DNS primario:', \r
+'primary ntp server' => 'NTP Server Primario', \r
+'primary wins server address' => 'WINS Server Primario', \r
+'priority' => 'Priorità', \r
+'profile' => 'Profilo', \r
+'profile deleted' => 'Profilo eliminato: ', \r
+'profile has errors' => 'Il profilo è errato', \r
+'profile made current' => 'Profile corrente: ', \r
+'profile name' => 'Nome profilo:', \r
+'profile name not given' => 'Nome del profilo non impostato.', \r
+'profile saved' => 'Profilo salvato: ', \r
+'profiles' => 'Profili:', \r
+'proto' => 'Prot.', \r
+'protocol' => 'Protocollo', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Grafico accesso proxy', \r
+'proxy log viewer' => 'Visualizza Log del Proxy', \r
+'proxy logs' => 'Log del proxy', \r
+'proxy port' => 'Porta del proxy', \r
+'psk' => 'PSK', \r
+'pulse' => 'Impulsi', \r
+'pulse dial' => 'Composizione a impulsi:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Settori letti', \r
+'reboot' => 'Riavvio', \r
+'reboot schedule' => 'Programma il reboot di IPCop', \r
+'rebooting' => 'Riavvio', \r
+'rebooting ipcop' => 'Riavvio IPCop', \r
+'reconnection' => 'Riconnessione', \r
+'references' => 'Riferimenti', \r
+'refresh' => 'Aggiorna', \r
+'refresh index page while connected' => 'Aggiorna la pagina index.cgi quando connesso', \r
+'refresh update list' => 'Ricarica la lista degli aggiornamenti', \r
+'registered user rules' => 'Regole VRT di Sourcefire per utenti registrati', \r
+'released' => 'Rilasciato', \r
+'remark' => 'Note', \r
+'remark title' => 'Note:', \r
+'remote access' => 'Accesso remoto', \r
+'remote host/ip' => 'Host/IP remoto', \r
+'remote logging' => 'Logging remoto', \r
+'remote subnet' => 'Sottorete remota:', \r
+'remote subnet is invalid' => 'La sottorete remota non è valida.', \r
+'remove' => 'Elimina', \r
+'remove ca certificate' => 'Elimina certificato CA', \r
+'reserved dst port' => 'La porta di destinazione è riservata per IPCop:', \r
+'reserved src port' => 'La porta sorgente è riservata a IPCop:', \r
+'reset' => 'Ripristina', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Reimpostare la VPN provoca la rimozione di tutti i CA di root, dei certificati host e di tutte le connessioni basate su certificato', \r
+'restart' => 'Riavvio', \r
+'restore' => 'Ripristina', \r
+'restore defaults' => 'Ripristina default', \r
+'restore hardware settings' => 'Ripristina impostazioni hardware', \r
+'reverse sort' => 'Ordine cronologico inverso', \r
+'root certificate' => 'Certificato Root', \r
+'root path' => 'Path di root', \r
+'router ip' => 'Indirizzo IP router:', \r
+'routing table entries' => 'Voci tabella routing:', \r
+'rsvd dst port overlap' => 'L\'intervallo di porte di destinazione si sovrappone ad una porta di IPCop:', \r
+'rsvd src port overlap' => 'L\'intervallo di porte sorgente si sovrappone ad una porta di IPCop:', \r
+'rules already up to date' => 'Regole già aggiornate', \r
+'running' => 'AVVIATO', \r
+'saturday' => 'Sabato', \r
+'save' => 'Salva', \r
+'save error' => 'Impossibile salvare il file archivio della configurazione', \r
+'script name' => 'Nome script:', \r
+'secondary dns' => 'DNS secondario:', \r
+'secondary ntp server' => 'NTP Server Secondario', \r
+'secondary wins server address' => 'WINS Server Secondario', \r
+'seconds' => 'Secondi', \r
+'section' => 'Sezione', \r
+'sectors read from disk per second' => 'Settori letti da disco per secondo', \r
+'sectors written to disk per second' => 'Settori scritti sul disco per secondo', \r
+'secure shell server' => 'Secure shell server', \r
+'select' => 'Seleziona', \r
+'select dest net' => 'Selezionare rete di destinazione.', \r
+'select source net' => 'Selezionare una rete sorgente. Se non ci sono reti Arancio o Blu, non sono richiesti dei pinholes DMZ.', \r
+'send cr' => 'ISP richiede Carriage Return:', \r
+'september' => 'Settembre', \r
+'serial' => 'Seriale', \r
+'service' => 'Servizio', \r
+'service added' => 'Servizio di rete personalizzato aggiunto', \r
+'service name' => 'Nome servizio:', \r
+'service removed' => 'Servizio di rete personalizzato eliminato', \r
+'service updated' => 'Servizio di rete personalizzato modificato', \r
+'servicename' => 'Nome servizio', \r
+'services' => 'Servizi:', \r
+'services settings' => 'Impostazioni firewall - servizi', \r
+'set time now' => 'Aggiorna ora', \r
+'set time now help' => 'Per avviare una sincronizzazione in qualsiasi momento (anche mentre si usa una schedulazione periodica), premere il bottone <i>Aggiorna ora</i>. Potrebbe essere necessario attendere fino a cinque minuti, o più, perchè la sincronizzazione avvenga.', \r
+'settings' => 'Impostazioni', \r
+'shaping add options' => 'Aggiungi servizio', \r
+'shaping list options' => 'Servizi traffic shaping', \r
+'shared' => 'condiviso', \r
+'shared memory' => 'Memoria condivisa', \r
+'show ca certificate' => 'Visualizza certificato CA', \r
+'show certificate' => 'Visualizza certificato', \r
+'show host certificate' => 'Mostra certificati host', \r
+'show root certificate' => 'Mostra certificati root', \r
+'shutdown' => 'Arresto', \r
+'shutdown control' => 'Controllo arresto', \r
+'shutdown2' => 'Arresto:', \r
+'shutting down' => 'Arresto in corso', \r
+'shutting down ipcop' => 'Arresto IPCop', \r
+'size' => 'Dimensione', \r
+'snort hits' => 'Numero totale di regole di intrusione attivate per', \r
+'sort ascending' => 'Ordinamento crescente', \r
+'sort descending' => 'Ordinamento decrescente', \r
+'sound' => 'Audio', \r
+'source' => 'Sorgente', \r
+'source ip' => 'IP sorgente', \r
+'source ip and port' => 'IP sorgente:Porta', \r
+'source ip bad' => 'Indirizzo IP o indirizzo di rete non valido.', \r
+'source ip in use' => 'IP sorgente in uso:', \r
+'source ip or net' => 'IP o NET sorgente', \r
+'source net' => 'Rete sorgente', \r
+'source network' => 'Indirizzo sorgente (IP o di rete, vuoto per "TUTTI"):', \r
+'source port' => 'Porta sorgente', \r
+'source port in use' => 'Porta sorgente in uso:', \r
+'source port numbers' => 'La porta sorgente deve essere un numero o un intervallo valido.', \r
+'source port overlaps' => 'L\'intervallo di porte sorgente si sovrappone ad un intervallo di porte esistente.', \r
+'speaker off' => 'Altoparlante spento:', \r
+'speaker on' => 'Altoparlante acceso:', \r
+'src port' => 'Src Port', \r
+'srcprt range overlaps' => 'L\'intervallo di porte sorgente si sovrappone ad una porta gia definita.', \r
+'srcprt within existing' => 'La porta sorgente è compresa in un itervallo già definito.', \r
+'ssdmz pinholes' => 'DMZ Pinholes', \r
+'ssh access' => 'Accesso SSH', \r
+'ssh fingerprint' => 'Fingerprint', \r
+'ssh host keys' => 'Chiavi host SSH', \r
+'ssh is disabled' => 'SSH disabilitato. Arresto in corso.', \r
+'ssh is enabled' => 'SSH abilitato. Riavvio.', \r
+'ssh key' => 'Chiave', \r
+'ssh key size' => 'Dimensione (bits)', \r
+'ssh keys' => 'Consenti autenticazione basata su chiave pubblica', \r
+'ssh no auth' => 'Non è stato consentito alcun metodo di autenticazione; questo non consentirà più di fare il login', \r
+'ssh passwords' => 'Consenti autenticazione basata su password', \r
+'ssh portfw' => 'Consenti reindirizzamento TCP', \r
+'ssh1 disabled' => 'SSHv1 è disabilitato, è richiesto un client con versione 2.', \r
+'ssh1 enabled' => 'SSHv1 è abilitato, sono supportati client non recenti.', \r
+'ssh1 support' => 'Supporta SSH con versione procollo 1 (richiesto per client non recenti)', \r
+'ssnetwork status' => 'Stato rete', \r
+'sspasswords' => 'Password', \r
+'ssport forwarding' => 'Port Forwarding', \r
+'ssproxy graphs' => 'Grafici Proxy', \r
+'sssystem status' => 'Stato sistema', \r
+'sstraffic graphs' => 'Grafici traffico', \r
+'standard login script' => 'Script di login standard', \r
+'start address' => 'Indirizzo di partenza:', \r
+'state or province' => 'Stato o provincia', \r
+'static ip' => 'IP statico', \r
+'status' => 'Stato', \r
+'status information' => 'Informazioni di stato', \r
+'stopped' => 'ARRESTATO', \r
+'subject' => 'Oggetto', \r
+'subnet is invalid' => 'Sottorete non valida', \r
+'subscripted user rules' => 'Regole VRT di Sourcefire in abbonamento', \r
+'successfully refreshed updates list' => 'Lista degli aggiornamenti scaricata con successo.', \r
+'summaries kept' => 'Mantieni i sommari per', \r
+'sunday' => 'Domenica', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Utilizzo di swap per', \r
+'system cpu' => 'CPU di sistema', \r
+'system cpu usage' => 'Utilizzo CPU di sistema', \r
+'system graphs' => 'Grafici di sistema', \r
+'system log viewer' => 'Visualizzatore log di sistema', \r
+'system logs' => 'Log di sistema', \r
+'system status information' => 'Informazioni stato sistema', \r
+'telephone not set' => 'Numero di telefono non impostato.', \r
+'the following update was successfully installed' => 'Il seguente aggiornamento è stato installato correttamente', \r
+'the statistics were last updated at' => 'Ultimo aggiornamento delle statistiche', \r
+'there are updates' => 'Sono disponibili degli aggiornamenti per il sistema. Si veda la sezione "Aggiornamenti" per ulteriori informazioni.', \r
+'there are updates available' => 'Ci sono aggiornamenti disponibili per il sistema. E\' fortemente consigliato l\'aggiornamento al più presto possibile.', \r
+'there was no file upload' => 'Nessun file di upload.', \r
+'this feature has been sponsored by' => 'Questa funzionalità è sponsorizzata da', \r
+'this field may be blank' => 'Questo campo può essere vuoto.', \r
+'this is not a valid archive' => 'Questo non è un archivio valido.', \r
+'this is not an authorised update' => 'Questo non è un aggiornamento autorizzato.', \r
+'this update is already installed' => 'Questo aggiornamento è già stato installato.', \r
+'thursday' => 'Giovedì', \r
+'time' => 'Ora', \r
+'time date manually reset' => 'Ora/Data impostate manualmente.', \r
+'time server' => 'Time Server', \r
+'timeout must be a number' => 'Timeout deve essere un numero.', \r
+'title' => 'Titolo', \r
+'to' => 'A', \r
+'to install an update' => 'Per installare un aggiornamento eseguire l\'upload del file .tgz.gpg mediante il form sottostante:', \r
+'toggle enable disable' => 'Abilita o Disabilita', \r
+'tone' => 'Toni', \r
+'tone dial' => 'Composizione a toni:', \r
+'total hits for log section' => 'Righe di log totali per la sezione', \r
+'traffic on' => 'Traffico su', \r
+'traffic shaping' => 'Gestione Banda', \r
+'traffic shaping settings' => 'Impostazioni Gestione Banda', \r
+'transfer limits' => 'Limiti trasferimento', \r
+'transparent on' => 'Trasparente su', \r
+'tuesday' => 'Martedì', \r
+'type' => 'Tipo', \r
+'unable to alter profiles while red is active' => 'Impossibile modificare il profilo quando la rete RED è attiva.', \r
+'unable to contact' => 'Impossibile contattare', \r
+'unencrypted' => 'Non criptato', \r
+'unknown' => 'SCONOSCIUTO', \r
+'unnamed' => 'Senza nome', \r
+'update' => 'Aggiorna', \r
+'update time' => 'Aggiorna l\'orologio:', \r
+'update transcript' => 'Aggiornamenti', \r
+'updates' => 'Aggiornamenti', \r
+'updates installed' => 'Aggiornamenti installati', \r
+'updates is old1' => 'Il file di aggiornamento è di ', \r
+'updates is old2' => 'giorni fa. Si raccomanda di aggiornarlo tramite la pagina <b>Sistema/Aggiornamenti</b>.', \r
+'uplink speed' => 'Velocità upload (kbit/sec)', \r
+'upload' => 'Upload', \r
+'upload a certificate' => 'Carica un certificato:', \r
+'upload a certificate request' => 'Carica una richiesta di certificato:', \r
+'upload ca certificate' => 'Carica un certificato CA', \r
+'upload fcdsl.o' => 'Upload fcdsl.o', \r
+'upload file' => 'Carica file', \r
+'upload p12 file' => 'Carica un file PKCS12', \r
+'upload successful' => 'Upload eseguito.', \r
+'upload synch.bin' => 'Upload synch.bin', \r
+'upload update file' => 'Upload di un file di aggiornamento:', \r
+'upstream password' => 'Upstream password:', \r
+'upstream proxy host:port' => 'Upstream proxy (host:port)', \r
+'upstream username' => 'Upstream username:', \r
+'uptime and users' => 'Uptime e utenti:', \r
+'usb modem on acm0' => 'USB Modem su ACM0', \r
+'usb modem on acm1' => 'USB Modem su ACM1', \r
+'usb modem on acm2' => 'USB Modem su ACM2', \r
+'usb modem on acm3' => 'USB Modem su ACM3', \r
+'use' => 'Uso', \r
+'use a pre-shared key' => 'Usa una chiave pre-condivisa:', \r
+'use dov' => 'Usa DOV (Data Over Voice):', \r
+'use ibod' => 'Usa Bandwidth on Demand (iBOD):', \r
+'use ipcop red ip' => 'L\'indirizzo IP RED classico usato durante la connessione', \r
+'use only proposed settings' => 'Usa solo impostazioni proposte.', \r
+'used' => 'Usato', \r
+'used memory' => 'Memoria utilizzata', \r
+'used swap' => 'Swap utilizzato', \r
+'user cpu' => 'CPU utente', \r
+'user cpu usage' => 'Utilizzo CPU utente', \r
+'username' => 'Utente:', \r
+'username not set' => 'Campo Username vuoto.', \r
+'users department' => 'Dipartimento utente', \r
+'users email' => 'E-mail utente', \r
+'users fullname or system hostname' => 'Nome completo o hostname utente', \r
+'valid root certificate already exists' => 'Esiste già un certificato valido.', \r
+'vci number' => 'Numero VCI:', \r
+'virtual private networking' => 'Virtual Private Networking', \r
+'vpi number' => 'Numero VPI:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'Configurazione VPN - Principale', \r
+'vpn delayed start' => 'Ritarda il lancio della VPN (secondi)', \r
+'vpn delayed start help' => 'Se necessario, questo ritardo puo\' essere usato per permettere agli aggiornamenti del DNS dinamico di propagarsi correttamente. 60 è il valore comunemente utilizzato quando l\'interfaccia RED utilizza un ip dinamico.', \r
+'vpn on blue' => 'VPN su BLU', \r
+'waiting to synchronize clock' => 'In attesa della sincronizzazione dell\'orologio ', \r
+'warning messages' => 'Messaggi di avvertimento', \r
+'web hits' => 'Numero totale di siti web che soddisfano i criteri di ricerca per', \r
+'web proxy' => 'Web proxy', \r
+'web proxy configuration' => 'Configurazione web proxy', \r
+'web server' => 'Web server', \r
+'website' => 'Sito web', \r
+'wednesday' => 'Mercoledì', \r
+'week' => 'Settimana', \r
+'weeks' => 'settimane', \r
+'wildcards' => 'Wildcard', \r
+'wireless' => 'Wireless', \r
+'wireless config added' => 'Aggiunta configurazione wireless', \r
+'wireless config changed' => 'Modificata configurazione wireless', \r
+'wireless configuration' => 'Configurazione wireless', \r
+'written sectors' => 'settori scritti', \r
+'xtaccess all error' => 'Impossibile impostare un accesso esterno a TUTTI, questo può essere fatto in port forwarding.', \r
+'year' => 'Anno', \r
+'yes' => 'Si', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Si può definire solo una connessione "Roadwarrior" quando si usa una chiave di autenticazione pre-condivisa', \r
+'your department' => 'Il tuo/il vostro dipartimento ', \r
+'your e-mail' => 'Indirizzo e-mail', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/it/install/CVS/Entries b/langs/it/install/CVS/Entries
new file mode 100644 (file)
index 0000000..9ccbece
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_it.c/1.7.2.11/Mon Dec 12 09:23:28 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/it/install/CVS/Repository b/langs/it/install/CVS/Repository
new file mode 100644 (file)
index 0000000..49880e3
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/it/install
diff --git a/langs/it/install/CVS/Root b/langs/it/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/it/install/CVS/Tag b/langs/it/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/it/install/lang_it.c b/langs/it/install/lang_it.c
new file mode 100644 (file)
index 0000000..e0ba2f3
--- /dev/null
@@ -0,0 +1,507 @@
+/*\r
+ * Italian (it) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You sh ould have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Fabio Gava, Antonio Stano, Marco Spreafico, Filippo Carletti \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *it_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Impostazioni indirizzo",\r
+/* TR_ADMIN_PASSWORD */\r
+"Password per Admin",\r
+/* TR_AGAIN_PROMPT */\r
+"Conferma password:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Tutte le schede sono state assegnate.",\r
+/* TR_AUTODETECT */\r
+"* AUTOMATICO *",\r
+/* TR_BUILDING_INITRD */\r
+"Creazione INITRD...",\r
+/* TR_CANCEL */\r
+"Annulla",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Assegnamento schede",\r
+/* TR_CHECKING */\r
+"Controllo URL...",\r
+/* TR_CHECKING_FOR */\r
+"Controllo per: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Scegliere quale scheda ISDN è installata sul computer.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Selezionare il protocollo ISDN richiesto.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Configurare il server DHCP inserendo le seguenti informazioni.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Configurazione della rete",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Si dovrebbe configurare la rete caricando un driver corretto per l'interfaccia GREEN. E' possibile utilizzare l'auto-riconoscimento della scheda di rete o selezionare il driver corretto da una lista. Se si hanno più schede installate, le altre saranno configurate successivamente durante l'installazione. Si noti che se si hanno più schede di rete del medesimo tipo della GREEN e tali schede richiedono dei parametri particolari, si dovrebbero inserire i parametri per tali schede in modo da renderle attive al momento della configurazione dell'interfaccia GREEN.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Configurare le schede di rete, e indicare a quale interfaccia ogni scheda è assegnata. L'attuale configurazione è la seguente:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Configurare il CDROM scegliendo l'indirizzo IO e/o l'IRQ appropriati.",\r
+/* TR_CONGRATULATIONS */\r
+"Congratulazioni!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s è stato correttamente installato. Rimuovere tutti i floppy o i CDROM presenti. L'installazione consentirà ora di configurare ISDN, schede di rete, e le password di sistema. Al termine dell'installazione puntare il proprio browser all'indirizzo http://%s:81 o https://%s:445 (o comunque sia stato chiamato %s), e configurare l'accesso via modem (se richiesto) e l'accesso remoto. Si ricordi di impostare una password per l'utente 'dial' di %s se non si desidera lasciare la possibilità ad 'admin' di controllare la connessione.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"L'hard disk è molto piccolo, ma è possibile continuare senza area swap. (Usare con cautela).",\r
+/* TR_CURRENT_CONFIG */\r
+"Impostazioni correnti: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Gateway di default:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Gateway di default\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Lease di default (min):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Lease di default\n",\r
+/* TR_DETECTED */\r
+"Rilevata come: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"DHCP Hostname:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"DHCP Hostname\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Configurazione server DHCP",\r
+/* TR_DISABLED */\r
+"Disabilitato",\r
+/* TR_DISABLE_ISDN */\r
+"Disabilita ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"L'hard disk è troppo piccolo.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Impostazioni DNS e Gateway",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Inserire le informazioni per DNS e gateway. Queste informazioni saranno usate nel caso il DHCP sia disabilitato sull'interfaccia ROSSA.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"La configurazione attuale non utilizza una scheda ethernet per l'interfaccia ROSSA. Le informazioni di DNS e gateway sono configurate automaticamente alla connessione.",\r
+/* TR_DOMAINNAME */\r
+"Nome dominio",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Il nome a dominio non può essere vuoto.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Il nome dominio non può contenere spazi.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Il nome del dominio può contenere solo lettere, numeri, trattini e punti.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Suffisso nome dominio:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Suffisso nome dominio\n",\r
+/* TR_DONE */\r
+"Finito",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nSi desidera cambiare queste impostazioni?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Impostazioni driver e schede",\r
+/* TR_ENABLED */\r
+"Abilitato",\r
+/* TR_ENABLE_ISDN */\r
+"Abilita ISDN",\r
+/* TR_END_ADDRESS */\r
+"Indirizzo finale:",\r
+/* TR_END_ADDRESS_CR */\r
+"Indirizzo finale\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Alcune schede ISDN (specialmente quelle ISA) possono richiedere parametri aggiuntivi per le informazioni di IRQ o di indirizzo IO. Se si dispone di tale scheda ISDN, inserire ora tali parametri. Per esempio: \"io=0x280 irq=9\". Saranno usati durante il rilevamento della scheda.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Inserire la password di 'admin' per %s. Questo utente sarà autorizzato ad accedere alle pagine web di amministrazione di %s.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Inserire nome dominio",\r
+/* TR_ENTER_HOSTNAME */\r
+"Inserire l'hostname della macchina.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Inserire le informazioni dell'inidirizzo IP",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Impossibile rilevare automaticamente la scheda di rete. Inserire il driver e gli eventuali parametri opzionali per la scheda di rete.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Inserire la password per l'utente 'root'. Accedere come 'root' per la riga di comando.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Inserire la password per l'utente 'setup'. Accedere come 'setup' per eseguire il programma di setup.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Inserire le informazioni IP per l'interfaccia %s.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Inserire il numero di telefono locale (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Inserire il path URL per il files ipcop-<version>.tgz e images/scsidrv-<version>.img. ATTENZIONE: DNS non disponibile! Si dovrebbe usare solo http://X.X.X.X/<directory>",\r
+/* TR_ERROR */\r
+"Errore",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Errore nella scrittura delle informazioni di configurazione.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Estrazione moduli...",\r
+/* TR_FAILED_TO_FIND */\r
+"Impossibile trovare il file URL.",\r
+/* TR_FOUND_NIC */\r
+"%s ha rilevato le seguenti schede di rete: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"German 1TR6",\r
+/* TR_HELPLINE */\r
+"              <Tab>/<Alt-Tab> cambia elemento   |  <Space> seleziona",\r
+/* TR_HOSTNAME */\r
+"Hostname",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Hostname non può essere vuoto.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Hostname non può contenere spazi.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"L'hostname può contenere solo lettere, numeri e trattini.",\r
+/* TR_INITIALISING_ISDN */\r
+"Inizializzazione ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Inserire il CD di %s nel drive CDROM.",\r
+/* TR_INSERT_FLOPPY */\r
+"Inserire il floppy del driver di %s.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Installaziona annullata.",\r
+/* TR_INSTALLING_FILES */\r
+"Installazione files...",\r
+/* TR_INSTALLING_GRUB */\r
+"Installazione GRUB...",\r
+/* TR_INTERFACE */\r
+"Interfaccia %s",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Errore nell'attivazione dell'interfaccia.",\r
+/* TR_INVALID_FIELDS */\r
+"I seguenti campi non sono validi:\n\n",\r
+/* TR_INVALID_IO */\r
+"I dettagli inseriti per la porta IO non sono validi.",\r
+/* TR_INVALID_IRQ */\r
+"Le informazioni IRQ fornite non sono valide.",\r
+/* TR_IP_ADDRESS_CR */\r
+"Indirizzo IP\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"Indirizzo IP:",\r
+/* TR_ISDN_CARD */\r
+"Scheda ISDN",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"Scheda ISDN non rilevata. E' necessario specificare i parametri opzionali se la scheda è di tipo ISA o richiede particolari impostazioni.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Selezione scheda ISDN",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Configurazione ISDN",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Menu confugurazione ISDN",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN non impostata. Alcuni elementi non sono stati selezionati.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"L'ISDN non è stata ancora configurata. Selezionare l'elemento da configurare.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Selezione protocollo ISDN",\r
+/* TR_ISDN_STATUS */\r
+"L'ISDN è attualmente %s.\n\n   Protocollo: %s\n   Scheda: %s\n   Numero telefonico locale: %s\n\nSelezionare l'elemento da riconfigurare, o scegliere di utilizzare le impostazioni correnti.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Mappatura tastiera",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Selezionare il tipo di tastiera in uso dalla lista sottostante.",\r
+/* TR_LEASED_LINE */\r
+"Linea dedicata",\r
+/* TR_LOADING_MODULE */\r
+"Caricamento modulo...",\r
+/* TR_LOADING_PCMCIA */\r
+"Caricamento moduli PCMCIA...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Ricerca: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Creazione filesystem di boot...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Creazione filesystem di log...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Creazione del filesystem di root...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Creazione dell'area swap...",\r
+/* TR_MANUAL */\r
+"* MANUAL *",\r
+/* TR_MAX_LEASE */\r
+"Lease massimo (min):",\r
+/* TR_MAX_LEASE_CR */\r
+"Lease massimo\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Mancano le informazioni IP per l'interfaccia BLU.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Mancano le informazioni IP per l'interfaccia ARANCIO.",\r
+/* TR_MISSING_RED_IP */\r
+"Mancano le informazioni IP per l'interfaccia ROSSA.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Il nome del modulo non può essere vuoto.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Inserire il nome del modulo ed i parametri che esso richiede.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Mounting filesystem di boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Mounting filesystem di log...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Mounting filesystem di root...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Mounting swap partition...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Numero di telefono locale (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Net mask:",\r
+/* TR_NETWORKING */\r
+"Rete",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Indirizzo di rete\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Indirizzo di rete:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Menu configurazione rete",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Configurazione del tipo di rete",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Selezionare la configurazione di rete per %s. I tipi di configurazione che seguono elencano le interfacce connesse ad ethernet. Se si modificano questi valori sarà necessario riavviare la rete e sarà anche necessario riconfigurare le impostazioni dei driver di rete.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Net mask\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Impostazione della rete fallita.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Non tutte le schede sono state assegnate.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Interfaccia BLU non assegnata.",\r
+/* TR_NO_CDROM */\r
+"CD-ROM non trovato.",\r
+/* TR_NO_HARDDISK */\r
+"Nessun hard disk trovato.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Impossibile trovare il tarball sul server web.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Nessuna interfaccia ARANCIO assegnata.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Nessuna interfaccia ROSSA assegnata.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Immagine SCSI non trovata sul web server.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Rimangono delle schede non assegnate, ed altre sono richieste. E' possibile rilevare automaticamente e cercare altre schede, o scegliere di selezionare un driver da una lista.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Partizionamento del disco...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Le password non coincidono.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"La password non può essere vuota.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"La password non può contenere spazi.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Password:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Il numero di telefono non può essere vuoto.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Il programma di installazione preparerà ora l'hard disk su %s. Prima il disco sarà partizionato, e quindi sarà installato il filesystem nelle partizioni.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Premere OK per riavviare.",\r
+/* TR_PRIMARY_DNS */\r
+"DNS primario:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"DNS primario\n",\r
+/* TR_PROBE */\r
+"Rileva",\r
+/* TR_PROBE_FAILED */\r
+"Riconoscimento automatico fallito.",\r
+/* TR_PROBING_SCSI */\r
+"Ricerca dispositivi SCSI...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Errore nell'impostazione della password di 'admin' per %s.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Errore nell'impostazione della password di 'root'.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Errore nell'impostazione della password di 'setup'.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protocollo/Paese",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Avvio della rete...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Arresto della rete...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Arresto reti non locali...",\r
+/* TR_QUIT */\r
+"Esci",\r
+/* TR_RED_IN_USE */\r
+"ISDN (o un'altra connessione) è attualmente in uso. Impossibile configurare l'ISDN mentre l'interfaccia ROSSA è attiva.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nAl termine della configurazione sarà riavviata la rete.",\r
+/* TR_RESTORE */\r
+"Ripristina",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Se si dispone di un floppy con una configurazione di sistema del %s inserirlo nel lettore floppy e premere il pulsante di ripristino",\r
+/* TR_ROOT_PASSWORD */\r
+"Password per 'root'",\r
+/* TR_SECONDARY_DNS */\r
+"DNS secondario :",\r
+/* TR_SECONDARY_DNS_CR */\r
+"DNS secondario\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"DNS secondario specificato senza un DNS primario",\r
+/* TR_SECTION_MENU */\r
+"Menu",\r
+/* TR_SELECT */\r
+"Seleziona",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Selezionare il tipo di CDROM",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Nessun CDROM rilevato in questa macchina. Selezionare quale tra i seguenti driver si desidera usare per consentire a %s l'accesso al CDROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Selezionare il media d'installazione",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s può essere installato da diverse sorgenti. La più semplice è quella mediante il CDROM della macchina. Se il computer manca del CDROM, è possibile installare tramite un'altra macchina della rete che abbia i file di installazione disponibili via HTTP. In tale caso sarà richiesto il floppy con i driver di rete.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Selezionare i driver di rete",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Selezionare i driver di rete per le schede installate in questo computer. Se si sceglie MANUALE, sarà possibile inserire il nome del modulo driver e i parametri per i driver che hanno particolari richieste, come le schede ISA.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Selezionare l'interfaccia da riconfigurare.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Selezionare l'elemento che si desidera modificare.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Impostazione password 'admin' per %s..",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Impostazione password 'root'..",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Impostazione password 'setup'..",\r
+/* TR_SETUP_FINISHED */\r
+"Installazione terminata. Premere OK per riavviare.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"L'installazione iniziale non è stata terminata. Accertarsi che l'installazione sia completata correttamente eseguendo nuovamente il setup da shell.",\r
+/* TR_SETUP_PASSWORD */\r
+"Password per 'setup'",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Impostare i parametri opzionali per il modulo",\r
+/* TR_SINGLE_GREEN */\r
+"La configurazione è impostata per una sola interfaccia GREEN.",\r
+/* TR_SKIP */\r
+"Salta",\r
+/* TR_START_ADDRESS */\r
+"Indirizzo iniziale:",\r
+/* TR_START_ADDRESS_CR */\r
+"Indirizzo iniziale\n",\r
+/* TR_STATIC */\r
+"Statico",\r
+/* TR_SUGGEST_IO */\r
+"(suggerito %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(suggerito %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Questo modulo del driver è già caricato.",\r
+/* TR_TIMEZONE */\r
+"Timezone",\r
+/* TR_TIMEZONE_LONG */\r
+"Scegliere la timezone in cui ci si trova dalla lista sottostante.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Impossibile espellere il CDROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Impossibile estrarre i moduli.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Impossibile trovare altri driver.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Scheda ISDN non rilevata. E' necessario specificare i parametri opzionali se la scheda è di tipo ISA o richiede particolari impostazioni.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Impossibile inizializzare ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Impossibile installare i files.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Impossibile installare GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Impossibile caricare i moduli del driver.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Impossibile creare filesystem di boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Impossibile creare il filesystem di log.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Impossibile creare il filesystem di root.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Impossibile creare l'area di swap.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Impossibile creare symlink /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Impossibile creare symlink /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Impossibile creare symlink /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Impossibile creare symlink /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Impossibile creare symlink /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Impossibile creare symlink /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Impossibile fare il mount del filesystem di boot.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Impossibile fare il mount del filesystem di log.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Impossibile fare il mount del filesystem di proc.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Impossibile fare il mount del filesystem di root.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Impossibile fare il mount la partizione di swap.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Impossibile aprire il file hosts principale.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Impossibile aprire il file delle impostazioni",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Impossibile partizionare l'harddisk.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Impossibile eliminare i file temporanei scaricati.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Impossibile impostare l'hostname.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Impossibile fare l'unmount del CDROM/floppydisk.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Impossibile fare l'unmount dell'hard disk.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Impossibile scrivere su /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Impossibile scrivere su /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Impossibile scrivere su /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Impossibile scrivere su /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Impossibile scrivere su /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Impossibile scrivere %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Impossibile scrivere su %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Impossibile scrivere %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"E' presente una scheda di rete non assegnata di tipo:\n%s\n\nE' possibile assegnarla a:",\r
+/* TR_UNKNOWN */\r
+"SCONOSCIUTO",\r
+/* TR_UNSET */\r
+"NON DEFINITO",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"ATTENZIONE",\r
+/* TR_WARNING_LONG */\r
+"Se si modifica questo indirizzo IP, e si è connessi da remoto, la connessione attuale alla macchina %s sarà perduta, e sarà necessario riconnettersi al nuovo IP. Questa è un'operazione pericolosa e dovrebbe essere svolta solo se si ha accesso fisico alla macchina nel caso qualcosa non andasse a buon fine.",\r
+/* TR_WELCOME */\r
+"Benvenuti nel programma di installazione di %s. Selezionando Annulla nelle prossime schermate verrà riavviato il sistema.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"L'attuale configurazione prevede una sola interfaccia di rete, e questa risulta già assegnata.",\r
+}; \r
+  \r
diff --git a/langs/la/CVS/Entries b/langs/la/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/la/CVS/Repository b/langs/la/CVS/Repository
new file mode 100644 (file)
index 0000000..4dd585a
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/la
diff --git a/langs/la/CVS/Root b/langs/la/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/la/CVS/Tag b/langs/la/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/la/cgi-bin/CVS/Entries b/langs/la/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..1199504
--- /dev/null
@@ -0,0 +1,2 @@
+/la.pl/1.3.2.35/Fri Oct  7 16:35:36 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/la/cgi-bin/CVS/Repository b/langs/la/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..b34f1fa
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/la/cgi-bin
diff --git a/langs/la/cgi-bin/CVS/Root b/langs/la/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/la/cgi-bin/CVS/Tag b/langs/la/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/la/cgi-bin/la.pl b/langs/la/cgi-bin/la.pl
new file mode 100644 (file)
index 0000000..771fdb3
--- /dev/null
@@ -0,0 +1,940 @@
+# Latino-American Span (la) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Fernando D. Diaz Bottaro \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Ya existe una Autoridad Certificadora (CA) con ese nombre.', \r
+'a connection with this common name already exists' => 'Ya existe una conexión con ese nombre común.', \r
+'a connection with this name already exists' => 'Ya existe una conexión con ese nombre.', \r
+'access allowed' => 'Acceso permitido desde:', \r
+'access refused with this oinkcode' => 'Acceso rechazado con este Código Oink', \r
+'action' => 'Acción', \r
+'add' => 'Agregar', \r
+'add a host' => 'Agregar un host:', \r
+'add a new rule' => 'Agregar una nueva regla:', \r
+'add device' => 'Agregar dispositivo', \r
+'add network' => 'Agregar red', \r
+'add new alias' => 'Agregar un nuevo alias:', \r
+'add new lease' => 'Agregar un nuevo intervalo de concesiones', \r
+'add service' => 'Agregar servicio', \r
+'add xtaccess' => 'Agregar un Acceso Externo', \r
+'added from dhcp lease list' => 'agregado desde la lista de concesiones DHCP', \r
+'admin user password has been changed' => 'Se ha cambiado la contraseña del usuario Admin.', \r
+'administrator user password' => 'Contraseña del usuario Admin:', \r
+'adsl settings' => 'Configuración ADSL', \r
+'advanced' => 'Avanzado', \r
+'again' => 'Otra vez:', \r
+'alcatelusb help' => 'Para utilizar el módem Speedtouch USB debe cargar el firmware en su equipo IPCop. Por favor descargue el paquete de <b>Firmware Embebido</b> desde speedtouch.com, descomprímalo y luego cargue el archivo apropiado para su módem usando el formulario de abajo: KQD6_3.xxx para versiones menores a 4 o ZZZL_3.xxx para versiones 4.', \r
+'alcatelusb upload' => 'Cargar Firmware para USB Speedtouch', \r
+'alias ip' => 'Alias IP', \r
+'aliases' => 'Alias', \r
+'aliases not active' => 'No se aplicarán los alias a menos que su interface ROJA sea ESTATICA', \r
+'all' => 'Todos', \r
+'all interfaces' => 'Todas las Interfaces', \r
+'all updates installed' => 'Todas las actualizaciones instaladas', \r
+'alt dialup' => 'Discado', \r
+'alt home' => 'Inicio', \r
+'alt information' => 'Información', \r
+'alt logs' => 'Logs', \r
+'alt services' => 'Servicios', \r
+'alt system' => 'Sistema', \r
+'alt vpn' => 'VPNs', \r
+'and' => 'Y', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Aplicar ahora', \r
+'april' => 'Abril', \r
+'archive not exist' => 'El archivo de configuración no existe', \r
+'are you sure' => 'Está seguro?', \r
+'arp table entries' => 'Tabla de Entradas ARP:', \r
+'august' => 'Agosto', \r
+'authentication' => 'Autenticación:', \r
+'automatic' => 'Automático', \r
+'available updates' => 'Actualizaciones disponibles:', \r
+'average' => 'Promedio', \r
+'avoid dod' => 'No use esta opción con Discado sobre Demanda. La misma es usada principalmente si su IPCop está detrás de un router. Su IP ROJA debe estar dentro de uno de los tres números de red reservados ej.: 10/8, 172.16/12, 192.168/16', \r
+'back' => 'ATRAS', \r
+'backup' => 'Respaldar', \r
+'backup config floppy' => 'Respaldar Configuración - Diskette', \r
+'backup configuration' => 'Respaldar Configuración:', \r
+'backup sets' => 'Sets de Respaldo', \r
+'backup to floppy' => 'Respaldar a diskette', \r
+'backupprofile' => 'Si la reconexión falla, cambiar a perfil', \r
+'bad characters in script field' => 'Hay caracteres erróneos en el campo script', \r
+'bad characters in the telephone number field' => 'Hay caracteres erróneos en el número de teléfono.', \r
+'bad destination range' => 'El primer valor del rango de puertos de Destino es mayor o igual al segundo valor.', \r
+'bad ignore filter' => 'El filtro para Ignorar no es correcto.', \r
+'bad return code' => 'Programa de ayuda retornó código de error', \r
+'bad source range' => 'El primer valor del rango de puertos es mayor o igual que el segundo.', \r
+'beep when ppp connects or disconnects' => 'Hacer Beep cuando IPCop se conecta o desconecta', \r
+'behind a proxy' => 'Detrás de un Proxy', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'AZUL', \r
+'blue access' => 'Acceso Azul', \r
+'blue interface' => 'Interface Azul', \r
+'broadcast' => 'Difusión', \r
+'broken pipe' => 'Tubería rota', \r
+'buffered memory' => 'Memoria en Buffer', \r
+'buffers' => 'buffers', \r
+'bytes per second' => 'Bytes/Segundos', \r
+'ca certificate' => 'Autoridad Certificadora (CA)', \r
+'ca name' => 'Nombre CA', \r
+'cache management' => 'Administración de Cache', \r
+'cache size' => 'Tamaño del caché (MB):', \r
+'cached' => 'en cache', \r
+'cached memory' => 'Memoria en Caché', \r
+'cancel' => 'Cancelar', \r
+'cannot enable both nat traversal and compression' => 'No se puede activar NAT Transversal y Compresión.', \r
+'cannot enable ntp without specifying primary' => 'No se puede activar NTP sin especificar un servidor primario.', \r
+'cannot specify secondary dns without specifying primary' => 'No puede especificar un DNS secundario sin especificar uno primario.', \r
+'cannot specify secondary ntp without specifying primary' => 'No puede especificar un servidor NTP secundario sin especificar uno primario.', \r
+'cannot specify secondary wins without specifying primary' => 'No se puede especificar WINS secuandario sin especificar primario.', \r
+'cant change certificates' => 'No se puede cambiar los certificados.', \r
+'cant enable xtaccess' => 'La regla de reenvío de puertos asociada está desactivada, por lo tanto no puede activar el acceso externo para esta regla.', \r
+'cant start openssl' => 'No se puede inciar OpenSSL', \r
+'caps all' => 'TODO', \r
+'capsclosed' => 'CERRADO', \r
+'capsopen' => 'ABIERTO', \r
+'capswarning' => 'ADVERTENCIA', \r
+'cert' => 'Certificado', \r
+'certificate' => 'Certificado', \r
+'certificate authorities' => 'Autoridades Certificadoras', \r
+'certificate does not have a valid ca associated with it' => 'El Certificado no tiene una CA válida asociada.', \r
+'certificate file move failed' => 'Error al mover archivo de Certificado', \r
+'cfg restart' => 'Se recomienda reiniciar luego de restaurar un archivo de configuración.', \r
+'chain' => 'Cadena', \r
+'change passwords' => 'Cambiar Contraseñas', \r
+'check vpn lr' => 'Verificación', \r
+'city' => 'Ciudad', \r
+'clear cache' => 'Limpiar Cache', \r
+'clenabled' => 'Permitir sincronización de hora a la red local', \r
+'click to disable' => 'Activado (click para desactivar)', \r
+'click to enable' => 'Desactivado (click para activar)', \r
+'clock has not been synchronized' => 'El reloj no ha sido sincronizado', \r
+'clock last synchronized at' => 'El reloj fue sincronizado por última vez a las', \r
+'common name' => 'Nombre Común', \r
+'compression' => 'Compresión:', \r
+'computer to modem rate' => 'Velocidad computadora/módem:', \r
+'concentrator name' => 'Nombre del Concentrador:', \r
+'confirmation' => 'confirmación', \r
+'connect on ipcop restart' => 'Conectar al reiniciar IPCop:', \r
+'connect the modem' => 'Conecte el módem', \r
+'connect timeout' => 'Timeout de conexión:', \r
+'connected' => 'Conectado', \r
+'connecting' => 'Conectando...', \r
+'connection' => 'Conexión', \r
+'connection debugging' => 'Depuración de conexión', \r
+'connection status and controlc' => 'Estado y control de conexión:', \r
+'connection tracking' => 'Rastreo de Conexión de IPTables', \r
+'connection type' => 'Tipo de conexión', \r
+'connection type is invalid' => 'Tipo de conexión no válida.', \r
+'connections' => 'Conexiones', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'hay conexiones asociadas con esta CA. Borrando la CA borrará estas conexiones también.', \r
+'could not be opened' => 'no se pudo abrir', \r
+'could not connect to' => 'No se puede conectar a', \r
+'could not connect to www ipcop org' => 'No se pudo conectar a www.ipcop.org', \r
+'could not create directory' => 'No se pudo crear el directorio', \r
+'could not download latest patch list' => 'No se pudo descargar la última lista de actualizaciones (no esta conectado).', \r
+'could not download latest updates' => 'No se pueden bajar las últimas actualizaciones.', \r
+'could not download the available updates list' => 'No se pudo descargar la lista de actualizaciones disponibles.', \r
+'could not open available updates file' => 'No se pudo abrir el archivo de actualizaciones disponibles.', \r
+'could not open installed updates file' => 'No se pudo abrir el archivo de actualizaciones instaladas', \r
+'could not open update information file' => 'No se pudo abrir el archivo de información de actualizaciones. El archivo de actualizaciones está corrupto.', \r
+'could not retrieve common name from certificate' => 'No se puede obtener el nombre común desde el certificado.', \r
+'country' => 'País', \r
+'cpu usage per' => 'Uso de CPU por', \r
+'create' => 'Crear', \r
+'credits' => 'Créditos', \r
+'cron server' => 'Servidor CRON', \r
+'current' => 'Actual', \r
+'current aliases' => 'Alias actuales:', \r
+'current dhcp leases on blue' => 'Consesiones DHCP actuales en Azul', \r
+'current dynamic leases' => 'Concesiones dinámicas actuales', \r
+'current fixed leases' => 'Concesiones fijas actuales', \r
+'current hosts' => 'Hosts actuales:', \r
+'current profile' => 'Perfil actual:', \r
+'current rules' => 'Reglas actuales:', \r
+'custom networks' => 'Personalizar redes', \r
+'custom services' => 'Personalizar servicios', \r
+'dat without key' => 'No se puede restaurar un archivo encriptado sin la clave.', \r
+'date' => 'Fecha', \r
+'date not in logs' => 'No existen (o sólo parcialmente) registros para la fecha solicitada.', \r
+'day' => 'Día', \r
+'day after' => 'Día siguiente', \r
+'day before' => 'Día anterior', \r
+'days' => 'días', \r
+'ddns hostname added' => 'Nombre de host DNS dinámico agregado', \r
+'ddns hostname modified' => 'Nombre de host de DNS Dinámico modificado', \r
+'ddns hostname removed' => 'Nombre de host DNS dinámico quitado', \r
+'ddns minimize updates' => 'Minimizar actualizaciones: ante una actualización, compara la IP de dns para el host "[host.]dominio" contra la IP ROJA.', \r
+'ddns noip prefix' => 'Para no usar ip en modo grupo, utilice <b>%</b> como prefijo de nombre de host', \r
+'december' => 'Diciembre', \r
+'def lease time' => 'Tiempo de Concesión por Defecto', \r
+'default lease time' => 'Tiempo de concesión por defecto (mins):', \r
+'default networks' => 'Predeterminar redes', \r
+'default renewal time' => 'Tiempo de Renovación por Defecto', \r
+'default services' => 'Predeterminar servicios', \r
+'delete' => 'Borrar', \r
+'demon login script' => 'Script de inicio de sesión del Demonio', \r
+'description' => 'Descripción ', \r
+'dest ip and port' => 'IP:Puerto destino', \r
+'destination' => 'Destino', \r
+'destination ip' => 'IP destino', \r
+'destination ip bad' => 'IP de destino inválido', \r
+'destination net' => 'Red Destino', \r
+'destination port' => 'Puerto del destino', \r
+'destination port numbers' => 'El puerto del destino debe ser un número de puerto válido o un rango de puertos.', \r
+'destination port overlaps' => 'El rango de puertos de destino se superpone a un rango de puertos existente.', \r
+'detail level' => 'Nivel de detalle', \r
+'device' => 'Dispositivo', \r
+'devices on blue' => 'Dispositivos en Azul', \r
+'dhcp advopt add' => 'Agregar Opción DHCP', \r
+'dhcp advopt added' => 'Opción DHCP agregada', \r
+'dhcp advopt blank value' => 'El valor de Opción DHCP no puede ser vacía.', \r
+'dhcp advopt custom definition' => 'Opción personalizada', \r
+'dhcp advopt definition' => 'Definición de la Opción', \r
+'dhcp advopt definition exists' => 'La opción definida ya existe. Sólo es posible su edición o borrado.', \r
+'dhcp advopt edit' => 'Editar Opción DHCP', \r
+'dhcp advopt help' => 'Listar opciones', \r
+'dhcp advopt list' => 'Lista de Opcion DHCP', \r
+'dhcp advopt modified' => 'Opción DHCP modificada', \r
+'dhcp advopt name' => 'Nombre de Opción', \r
+'dhcp advopt removed' => 'Opción DHCP quitada', \r
+'dhcp advopt scope' => 'Alcance de la Opción', \r
+'dhcp advopt scope global' => 'Global', \r
+'dhcp advopt scope help' => 'Alcance Global o Limitado para las interfaces chequeadas.', \r
+'dhcp advopt unknown' => 'Nombre de Opción DHCP no reconocido', \r
+'dhcp advopt value' => 'Valor de la opción', \r
+'dhcp allow bootp' => 'Permitir clientes "bootp"', \r
+'dhcp configuration' => 'Configuración DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'Servidor DHCP', \r
+'dhcp server disabled' => 'Servidor DHCP desactivado.  Detenido.', \r
+'dhcp server disabled on blue interface' => 'Servidor DHCP desactivado en interfaz AZUL', \r
+'dhcp server enabled' => 'Servidor DHCP activado.  Reiniciando...', \r
+'dhcp server enabled on blue interface' => 'Servidor DHCP activado en interfaz AZUL', \r
+'dial' => 'Conectar', \r
+'dial user password' => 'Contraseña del usuario para conectar por marcado:', \r
+'dial user password has been changed' => 'La contraseña de usuario para la Conexión ha sido cambiada.', \r
+'dialing mode' => 'Modo de marcado:', \r
+'dialup settings' => 'Configuración de Marcado', \r
+'disk access per' => 'Acceso a Disco por', \r
+'disk usage' => 'Cantidad de disco usado:', \r
+'display' => 'Desplegar', \r
+'display hostname in window title' => 'Desplegar nombre del host en el título de la ventana', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Configuración DMZ pinhole', \r
+'dmz pinhole rule added' => 'Regla DMZ pinhole agregada; reiniciando DMZ pinhole...', \r
+'dmz pinhole rule removed' => 'Regla DMZ pinhole eliminada; reiniciando DMZ pinhole...', \r
+'dmzpinholes for same net not necessary' => 'DMZ Pinholes no son necesarios para la misma red. Seleccione una red de origen o destino diferente.', \r
+'dns check failed' => 'El chequeo de DNS ha fallado', \r
+'dns proxy server' => 'Servidor Proxy DNS', \r
+'do not log this port list' => 'Descartar listado de este puerto antes de que sea registrado (reduce el tamaño del "log")', \r
+'dod' => 'Marcado bajo demanda', \r
+'dod for dns' => 'Marcado bajo demanda para DNS:', \r
+'dod not compatible with ddns' => 'El marcado sobre demanda no es compatible con el servicio de dns dinámico', \r
+'dod waiting' => 'Esperando Demanda de Marcado', \r
+'domain' => 'Dominio', \r
+'domain name' => 'Nombre de dominio', \r
+'domain name suffix' => 'Sufijo del nombre de dominio:', \r
+'domain not set' => 'Dominio no configurado.', \r
+'downlink speed' => 'Velocidad de bajada (kbit/seg)', \r
+'download ca certificate' => 'Descargar Certificado CA', \r
+'download certificate' => 'Descargar Certificado', \r
+'download host certificate' => 'Descargar Certificado de Host', \r
+'download new ruleset' => 'Bajar nuevo conjunto de reglas', \r
+'download pkcs12 file' => 'Descargar Archivo PKCS12', \r
+'download root certificate' => 'Descargar Certificado Raíz', \r
+'dpd action' => 'Acción Dead Peer Detection', \r
+'driver' => 'Controlador', \r
+'dst port' => 'Puerto Destino', \r
+'dstprt range overlaps' => 'El rango de puertos destino, se superpone a algún puerto ya definido.', \r
+'dstprt within existing' => 'El puerto destino esta dentro de algun rango ya definido.', \r
+'duplicate ip' => 'La dirección IP ingresada está duplicada', \r
+'duplicate ip bold' => 'IPs duplicadas están en <b>negrita</b>', \r
+'duplicate mac' => 'Se ha ingresado una dirección MAC duplicada ', \r
+'duplicate name' => 'Ese nombre ya está siendo usado, por favor elija otro.', \r
+'dyn dns source choice' => 'Los proveedores de DNS Dinámicos recibirán una dirección IP para este IPCop desde:', \r
+'dynamic dns' => 'DNS dinámico', \r
+'dynamic dns client' => 'Cliente de DNS Dinámico', \r
+'e-mail address too long' => 'Dirección de e-mail demasiado larga; no debe superar los 40 caracteres.', \r
+'eciadsl help' => 'Para utilizar un módem ECI ADSL debe cargar un archivo <B>synch.bin</B> en su sistema IPCop. Por favor descárguelo del sitio web ECIADSL y luego cárguelo en su IPCop mediante el formulario que sigue. ', \r
+'eciadsl upload' => 'Cargar archivo Synch.bin ECI ADSL.', \r
+'edit' => 'Editar', \r
+'edit a rule' => 'Editar un regla existente:', \r
+'edit advanced settings when done' => 'Edite opciones avanzadas cuando finalice.', \r
+'edit an existing alias' => 'Editar alias existente', \r
+'edit an existing host' => 'Editar un host existente', \r
+'edit an existing lease' => 'Editar una concesión existente', \r
+'edit device' => 'Editar dispositivo', \r
+'edit hosts' => 'Editar Hosts', \r
+'edit network' => 'Editar red', \r
+'edit service' => 'Editar servicio', \r
+'empty' => 'Vacío', \r
+'enable ignore filter' => 'Activar ignorar filtro', \r
+'enable javascript' => 'Activar Javascript', \r
+'enable wildcards' => 'Activar comodines:', \r
+'enabled' => 'Activar:', \r
+'enabled on' => 'Activado', \r
+'enabledtitle' => 'Activo', \r
+'encapsulation' => 'Encapsulación', \r
+'encrypted' => 'Encriptado', \r
+'end address' => 'Dirección final:', \r
+'err bk 1' => 'Error al crear el archivo', \r
+'err bk 2 key' => 'Error al crear clave de archivo', \r
+'err bk 3 tar' => 'Error al agregar archivos', \r
+'err bk 4 gz' => 'Error al comprimir archivo', \r
+'err bk 5 encrypt' => 'Error al encriptar archivo', \r
+'err rs 1' => 'Error al restaurar archivo', \r
+'err rs 6 decrypt' => 'Error al desencriptar archivo', \r
+'err rs 7 untartst' => 'Archivo desencriptado no válido', \r
+'err rs 8 untar' => 'Error al descomprimir archivo .tar', \r
+'error messages' => 'Mensajes de error:', \r
+'esp encryption' => 'Encriptación ESP:', \r
+'esp grouptype' => 'Grupo Tipo ESP:', \r
+'esp integrity' => 'Integridad ESP:', \r
+'esp keylife' => 'Duración de clave ESP:', \r
+'esp keylife should be between 1 and 24 hours' => 'La duración de la clave ESP debe ser de 1 a 24 horas.', \r
+'every' => 'Cada', \r
+'excluding buffers and cache' => '-/+ buffers/cache', \r
+'expected' => 'ESPERADO', \r
+'expires' => 'Caduca', \r
+'export' => 'Exportar', \r
+'external access' => 'Acceso Externo', \r
+'external access configuration' => 'Configuración de acceso externo', \r
+'external access rule added' => 'Regla de acceso externa agregada; reiniciando controlador de acceso...', \r
+'external access rule removed' => 'Regla de acceso externa eliminada; reiniciando controlador de acceso...', \r
+'external aliases configuration' => 'Configuración de alias externos', \r
+'february' => 'Febrero', \r
+'fetch ip from' => 'Descubrir la IP publica real con ayuda de un servidor externo', \r
+'filename' => 'Nombre de archivo', \r
+'filesystem full' => 'Sistema de archivos lleno', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Número total de "hits" para el firewall', \r
+'firewall log' => 'Registro del firewall', \r
+'firewall log viewer' => 'Visor de Registros del Firewall', \r
+'firewall logs' => 'Registros de Firewall', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Cargar Firmware/Controladores ', \r
+'fixed ip lease added' => 'Concesión fija de IP  agregada', \r
+'fixed ip lease modified' => 'Concesión de IP fija modificada', \r
+'fixed ip lease removed' => 'Concesión fija de IP eliminada', \r
+'force update' => 'Forzar actualización', \r
+'forwarding rule added' => 'Regla de reenvío agregada; reiniciando reenvío...', \r
+'forwarding rule removed' => 'Regla de reenvío eliminada; reiniciando reenvío...', \r
+'forwarding rule updated' => 'Regla de reenvío actualizada; reiniciando reenvío...', \r
+'free' => 'Libre', \r
+'free memory' => 'Memoria Libre', \r
+'free swap' => 'Memoria Virtual Libre', \r
+'friday' => 'viernes', \r
+'fritzdsl help' => 'Para utilizar uno de los módems Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb, debe cargar un paquete en su equipo IPCop. Por favor descargue el archivo .tgz correspondiente a su versión desde el Sitio Web de IPCop y luego cargue el archivo <b>fcdsl-(su_versión).tgz</b> usando el formulario siguiente.', \r
+'fritzdsl upload' => 'Cargar Controlador Fritz!DSL', \r
+'from' => 'Desde', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Puerta de enlace', \r
+'gateway ip' => 'IP de Puerta de enlace', \r
+'generate a certificate' => 'Generar un certificado:', \r
+'generate root/host certificates' => 'Generar Certificados Host/Raíz', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generar los certificados de host y raíz puede tardar mucho tiempo. Puede demorar una gran cantidad de minutos si utiliza hardware viejo. Por Favor tenga paciencia.', \r
+'global settings' => 'Configuración general', \r
+'graph' => 'Gráficos', \r
+'graph per' => 'Gráfico por', \r
+'green' => 'VERDE', \r
+'green interface' => 'Interface Verde', \r
+'gui settings' => 'Configuración GUI', \r
+'gz with key' => 'Solo un archivo encriptado puede ser restaurado en esta máquina.', \r
+'hangup' => 'Desconectar', \r
+'hangup string' => 'Colgar:', \r
+'high' => 'Alta', \r
+'high memory usage' => 'Uso de memoria alta', \r
+'holdoff' => 'Tiempo "Holdoff" (en segundos)', \r
+'host' => 'Host', \r
+'host certificate' => 'Certificado de Host', \r
+'host configuration' => 'Configuración del Host', \r
+'host ip' => 'Dirección IP de Host', \r
+'host to net vpn' => 'Host-to-Net VPN Red Privada Virtual (Road Warrior)', \r
+'hostname' => 'Nombre del Host', \r
+'hostname and domain already in use' => 'Nombre del host y dominio ya se encuentran en uso.', \r
+'hostname cant be empty' => 'El Nombre de Host no puede estar en blanco.', \r
+'hostname not set' => 'Nombre del host no configurado.', \r
+'hosts config added' => 'configuración de hosts agregada', \r
+'hosts config changed' => 'configuración de hosts cambiada', \r
+'hours' => 'horas', \r
+'hours2' => 'Horas', \r
+'ibod for dual isdn only' => 'iBOD sólo puede ser usado con ISDN Dual.', \r
+'icmp selected but no type' => 'Se ha seleccionado ICMP para protocolo, pero no se especificó tipo de ICMP.', \r
+'icmp type' => 'Tipo de ICMP', \r
+'id' => 'ID', \r
+'idle' => 'Inactivo', \r
+'idle cpu' => 'CPU Inactivo', \r
+'idle cpu usage' => 'Uso de CPU Inactivo', \r
+'idle timeout' => 'Tiempo máximo de inactividad (en minutos; 0 para deshabilitar):', \r
+'idle timeout not set' => 'Tiempo máximo de inactividad no establecido.', \r
+'ids log viewer' => 'Visor del registro SDI', \r
+'ids logs' => 'Registros de SDI', \r
+'ids rules license' => 'Para utilizar las Reglas de \'Sourcefire VRT Certified\', necesita registrarse', \r
+'ids rules license2' => 'Reconozca la licencia, reciba su contraseña por email, y conéctese al sitio. Diríjase a', \r
+'ids rules license3' => 'presione el botón \'Get Code\' ubicado abajo y copie en el campo siguiente los 40 caracteres del Código Oink.', \r
+'ids rules update' => 'Actualizar reglas de Snort', \r
+'iface' => 'Iface', \r
+'ignore filter' => 'Ignorar filtro', \r
+'ike encryption' => 'Encriptación IKE:', \r
+'ike grouptype' => 'Grupo Tipo IKE:', \r
+'ike integrity' => 'Integridad IKE:', \r
+'ike lifetime' => 'Duración IKE:', \r
+'ike lifetime should be between 1 and 8 hours' => 'La duración IKE debe ser de 1 a 8 horas.', \r
+'import' => 'Importar', \r
+'in' => 'En', \r
+'incoming traffic in bytes per second' => 'Tráfico Entrante en Bytes por Segundos', \r
+'info' => 'Información', \r
+'init string' => 'Inicialización:', \r
+'insert floppy' => 'Coloque un disquete formateado en la disquetera del equipo IPCop y haga click en el botón <i>Respaldar a diskette</i> para respaldar la configuración del sistema. Una vez concluído el proceso, verifique cuidadosamente los mensajes de resultados para estar seguro que el respaldo se haya completado.<p>', \r
+'install new update' => 'Instalar actualización:', \r
+'installed' => 'Instalado', \r
+'installed updates' => 'Actualizaciones instaladas:', \r
+'instant update' => 'Actualizar Ahora', \r
+'interface' => 'Interface', \r
+'interfaces' => 'Interfaces:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Detección de Intrusos', \r
+'intrusion detection system' => 'Sistema de Detección de Intrusos', \r
+'intrusion detection system log viewer' => 'Visor de Registros del Sistema de Detección de Intrusos', \r
+'intrusion detection system2' => 'Sistema de Detección de Intrusos:', \r
+'invalid broadcast ip' => 'IP de difusión no válida', \r
+'invalid cache size' => 'Tamaño del caché no válido.', \r
+'invalid characters found in pre-shared key' => 'Se han encontrado caracteres no válidos en la clave pre-compartida.', \r
+'invalid date entered' => 'Fecha ingresada no válida.', \r
+'invalid default lease time' => 'Tiempo de concesión por defecto no válido.', \r
+'invalid domain name' => 'Nombre de dominio inválido.', \r
+'invalid downlink speed' => 'Velocidad de bajada no válida.', \r
+'invalid end address' => 'Dirección final no válida.', \r
+'invalid fixed ip address' => 'Dirección IP fija no válida', \r
+'invalid fixed mac address' => 'La dirección Mac fija no es válida.', \r
+'invalid hostname' => 'Nombre de host inválido.', \r
+'invalid input' => 'Entrada no válida', \r
+'invalid input for authentication method' => 'Entrada no válida para método de autenticación.', \r
+'invalid input for city' => 'Entrada no válida para ciudad.', \r
+'invalid input for country' => 'Entrada no válida para país.', \r
+'invalid input for department' => 'Entrada no válida para departamento.', \r
+'invalid input for e-mail address' => 'Entrada no válida para dirección de e-mail.', \r
+'invalid input for esp keylife' => 'Entrada no válida para Duración de clave ESP', \r
+'invalid input for hostname' => 'Entrada no válida para nombre de host.', \r
+'invalid input for ike lifetime' => 'Entrada no válida para duración IKE', \r
+'invalid input for name' => 'Entrada no válida para nombre completo de usuario o nombre de host del sistema', \r
+'invalid input for oink code' => 'Ingreso de código Oink no válido', \r
+'invalid input for organization' => 'Entrada no válida para organización', \r
+'invalid input for remote host/ip' => 'Entrada no válida para ip/host remoto.', \r
+'invalid input for state or province' => 'Entrada no válida para estado o provincia.', \r
+'invalid ip' => 'Dirección IP no válida.', \r
+'invalid keep time' => 'La cantidad de días debe ser un número válido', \r
+'invalid key' => 'Clave no válida.', \r
+'invalid loaded file' => 'Archivo cargado no válido', \r
+'invalid logserver address' => 'Dirección de servidor syslogd no válida', \r
+'invalid max lease time' => 'Tiempo máximo de concesión no válido.', \r
+'invalid maximum incoming size' => 'Tamaño máximo de entrada no válido.', \r
+'invalid maximum object size' => 'Tamaño máximo de objeto no válido.', \r
+'invalid maximum outgoing size' => 'Tamaño máximo de salida no válido.', \r
+'invalid md5sum' => 'MD5Sum inválido.', \r
+'invalid minimum object size' => 'Tamaño mínimo de objeto no válido.', \r
+'invalid netmask' => 'Máscara de subred no válida', \r
+'invalid port' => 'Puerto inválido. Debe ingresar un número de puerto válido.', \r
+'invalid port list' => 'La sintaxis del listado de puerto es: [puerto[,puerto]... debe usar un puerto que esté en /etc/services o un número', \r
+'invalid primary dns' => 'DNS primario inválido.', \r
+'invalid primary ntp' => 'Dirección del servidor NTP primario inválido', \r
+'invalid secondary dns' => 'DNS secundario inválido.', \r
+'invalid secondary ntp' => 'Dirección del servidor NTP secundario inválido', \r
+'invalid start address' => 'Dirección inicial no válida.', \r
+'invalid time entered' => 'Se ingresó hora no válida.', \r
+'invalid time period' => 'Período de tiempo inválido', \r
+'invalid uplink speed' => 'Velocidad de subida no válida.', \r
+'invalid upstream proxy username or password setting' => 'El nombre de usuario o la contraseña elegida para el proxy no son válidos.', \r
+'invalid vpi vpci' => 'Configuración VPI/VPCI no válida', \r
+'invalid wins address' => 'Dirección de Servidor WINS no válida.', \r
+'invert' => 'Invertir', \r
+'ip address' => 'Dirección IP', \r
+'ip address in use' => 'La dirección IP ya está en uso', \r
+'ip alias added' => 'Alias de IP Externa agregada', \r
+'ip alias changed' => 'Alias de IP Externa cambiada', \r
+'ip alias removed' => 'Alias de IP Externa eliminada', \r
+'ip info' => 'Información de IP', \r
+'ipcop has now rebooted' => 'IPCop se está reinciando ahora...', \r
+'ipcop has now shutdown' => 'IPCop se está apagando ahora...', \r
+'ipcop side' => 'Lado de IPCop:', \r
+'ipcop side is invalid' => 'Se ha ingresado en Lado de IPCop un dato no válido.', \r
+'ipcops hostname' => 'Nombre de Host de IPCop', \r
+'ipinfo' => 'Información de IP', \r
+'isdn' => 'RDSI', \r
+'isdn settings' => 'Configuraciones RDSI adicionales:', \r
+'isdn1' => 'RDSI (ISDN) sencillo', \r
+'isdn2' => 'RDSI (ISDN) dual', \r
+'january' => 'Enero', \r
+'javascript menu error1' => 'Si no funcionan los menús desplegables, desactive Javascript en la página', \r
+'javascript menu error2' => '&nbsp;', \r
+'july' => 'Julio', \r
+'june' => 'Junio', \r
+'kernel' => 'Kernel', \r
+'kernel logging server' => 'Servidor de registro del Kernel', \r
+'kernel version' => 'Versión del Kernel:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Seleccione el idioma que desee que IPCop despliegue:', \r
+'lease expires' => 'Concesión expira', \r
+'legend' => 'Leyenda', \r
+'line' => 'Línea', \r
+'loaded modules' => 'Módulos cargados:', \r
+'local ntp server specified but not enabled' => 'Servidor NTP local especificado pero no está activado', \r
+'local subnet' => 'Subred Local:', \r
+'local subnet is invalid' => 'Subred Local no es válida.', \r
+'local vpn hostname/ip' => 'Nombre de Host/IP de VPN local', \r
+'log' => 'Registro:', \r
+'log enabled' => 'Registro Activado', \r
+'log lines per page' => 'Líneas por página', \r
+'log server address' => 'Servidor syslog', \r
+'log settings' => 'Configuración de Registros', \r
+'log summaries' => 'Sumario de registros', \r
+'log summary' => 'Sumario de registros', \r
+'log viewer' => 'Visor de registros', \r
+'log viewing options' => 'Opciones de visualización de registros', \r
+'logging server' => 'Servidor de registro', \r
+'loginlogout' => 'Inicio/Cierre de sesiones', \r
+'lookup failed' => 'La búsqueda invertida ha fallado', \r
+'low' => 'Baja', \r
+'ls_dhcpd' => 'Servidor DHCP:', \r
+'ls_disk space' => 'Espacio en Disco:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'Servidor HTTP:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kernel y Firewall:', \r
+'ls_modprobe' => 'Cargador de módulos:', \r
+'ls_pam_unix' => 'Sesiones de usuarios locales:', \r
+'ls_sshd' => 'Sesiones de usuarios remotos:', \r
+'ls_syslogd' => 'Demonio Syslog:', \r
+'mac address' => 'Dirección MAC', \r
+'mac address in use' => 'La dirección MAC ya está en uso', \r
+'main page' => 'Página principal', \r
+'manual' => 'Manual', \r
+'manual control and status' => 'Control manual y estado:', \r
+'manually' => 'Manualmente', \r
+'march' => 'Marzo', \r
+'marked' => 'Marca', \r
+'max incoming size' => 'Tamaño máximo de entrada (KB):', \r
+'max lease time' => 'Tiempo máximo de concesión (mins):', \r
+'max outgoing size' => 'Tamaño máximo de salida (KB):', \r
+'max renewal time' => 'Tiempo Máximo de Renovación', \r
+'max retries not set' => 'Número máximo de reintentos no establecido.', \r
+'max size' => 'Tamaño máximo de objetos (KB)', \r
+'maximal' => 'Máxima', \r
+'maximum retries' => 'Número máximo de reintentos:', \r
+'may' => 'Mayo', \r
+'medium' => 'Media', \r
+'memory' => 'Memoria:', \r
+'memory usage per' => 'Uso de Memoria por', \r
+'method' => 'Método:', \r
+'min size' => 'Tamaño mínimo de objeto (KB):', \r
+'minutes' => 'Minutos', \r
+'missing dat' => 'No se ha encontrado archivos encriptados', \r
+'missing gz' => 'No se ha encontrado archivos desencriptados', \r
+'modem' => 'Módem', \r
+'modem configuration' => 'Configuración del Módem', \r
+'modem on com1' => 'Módem en COM1', \r
+'modem on com2' => 'Módem en COM2', \r
+'modem on com3' => 'Módem en COM3', \r
+'modem on com4' => 'Módem en COM4', \r
+'modem on com5' => 'Módem en COM5', \r
+'modem settings have errors' => 'La configuración del módem tiene errores', \r
+'modem speaker on' => 'Altavoz del módem encendido:', \r
+'modulation' => 'Modulación', \r
+'monday' => 'Lunes', \r
+'month' => 'Mes', \r
+'months' => 'meses', \r
+'mounted on' => 'Montado en', \r
+'name' => 'Nombre', \r
+'name is invalid' => 'Nombre no válido', \r
+'name must only contain characters' => 'El nombre debe contener sólo caracteres.', \r
+'name too long' => 'Nombre completo de usuario o nombre de host demasiado largo', \r
+'nat-traversal' => 'Nat Transversal:', \r
+'net' => 'Red', \r
+'net to net vpn' => 'Red Privada Virtual (VPN) Net-to-Net ', \r
+'netmask' => 'Máscara de subred', \r
+'network' => 'Red', \r
+'network added' => 'Red Personalizada agregada', \r
+'network configuration' => 'Configuración de Red', \r
+'network removed' => 'Red Personalizada quitada', \r
+'network status information' => 'Información de Estado de la Red', \r
+'network time' => 'Usar un Network Time Server:', \r
+'network time from' => 'Obtener hora desde un Servidor NTP', \r
+'network traffic graphs' => 'Gráficos de tráfico en la red', \r
+'network updated' => 'Red Predeterminada actualizada', \r
+'networks settings' => 'Configuración Red - Firewall', \r
+'new optionsfw later' => 'Su/s modificacion/es se activarán al reiniciar', \r
+'new optionsfw must boot' => 'Debe reiniciar su IPCop', \r
+'newer' => 'Siguiente', \r
+'next address' => 'Dirección Siguiente', \r
+'no' => 'No', \r
+'no alcatelusb firmware' => 'No tiene firmware Alcatel USB. Por favor instálelo.', \r
+'no cfg upload' => 'Los datos no han sido cargados', \r
+'no dhcp lease' => 'No se han obtenido concesiones DHCP', \r
+'no eciadsl synch.bin file' => 'Falta el archivo <B>synch.bin</B>. Por favor cárguelo.', \r
+'no fritzdsl driver' => 'No hay controlador Fritz!DSL. Por favor cárguelo.', \r
+'no information available' => 'No hay información disponible.', \r
+'no modem selected' => 'No hay módem seleccionado', \r
+'no set selected' => 'No se han seleccionado sets', \r
+'no time limit' => 'Tiempo ilimitado', \r
+'none found' => 'No encontrado', \r
+'nonetworkname' => 'No se ha ingresado Nombre de Red', \r
+'noservicename' => 'No se ha ingresado Nombre de Servicio', \r
+'not a valid ca certificate' => 'Autoridad Certificadora (CA) no válida.', \r
+'not enough disk space' => 'No hay espacio suficiente en disco', \r
+'not present' => '<B>No</B> existe', \r
+'not running' => 'no se está ejecutando', \r
+'november' => 'Noviembre', \r
+'ntp configuration' => 'Configuración NTP', \r
+'ntp must be enabled to have clients' => 'NTP debe tener activado Permitir Clientes.', \r
+'ntp server' => 'Servidor NTP', \r
+'ntp syncro disabled' => 'Sincronización NTP desactivada.', \r
+'ntp syncro enabled' => 'Sincronización NTP activada.', \r
+'ntpd restarted' => 'ntpd reiniciado', \r
+'number' => 'Número', \r
+'october' => 'Octubre', \r
+'older' => 'Anterior', \r
+'online help en' => 'Ayuda En Línea (en Inglés)', \r
+'only digits allowed in holdoff field' => 'Está permitido solo números en el campo "holdoff"', \r
+'only digits allowed in max retries field' => 'Sólo se permiten números en el campo del máximo número de reintentos.', \r
+'only digits allowed in the idle timeout' => 'Sólo se permiten números en el campo del tiempo máximo de inactividad.', \r
+'only red' => 'Solo la ROJA', \r
+'open to all' => 'Asignar acceso externo a TODOS', \r
+'openssl produced an error' => 'OpenSSL ha producido un error', \r
+'options' => 'Opciones', \r
+'options fw' => 'Opciones del Firewall', \r
+'optionsfw portlist hint' => 'La lista de puertos tiene que estar separada por comas (e.j. 137,138). Puede especificar hasta un máximo de 15 puertos por protocolo.', \r
+'optionsfw warning' => 'La modificación de estas opciones implica que debe reiniciar el firewall', \r
+'orange' => 'NARANJA', \r
+'organization cant be empty' => 'Organización no puede quedar en blanco.', \r
+'organization name' => 'Nombre de la Organización', \r
+'organization too long' => 'El nombre de la Organización es demasiado largo; máximo 60 caracteres.', \r
+'original' => 'ORIGINADO', \r
+'other countries' => 'Otros países', \r
+'other login script' => 'Otro script de conexión', \r
+'out' => 'Salida', \r
+'outgoing traffic in bytes per second' => 'Tráfico Saliente en Bytes por Segundos', \r
+'package failed to install' => 'Falló la instalación del paquete.', \r
+'pap or chap' => 'PAP o CHAP', \r
+'password' => 'Contraseña:', \r
+'password contains illegal characters' => 'La contraseña contiene caracteres ilegales.', \r
+'password not set' => 'Contraseña no establecida.', \r
+'password too short' => 'La Contraseña es demasiado corta.', \r
+'passwords do not match' => 'La contraseñas ingresadas no coinciden.', \r
+'passwords must be at least 6 characters in length' => 'Las contraseñas deben tener al menos 6 caracteres', \r
+'percentage' => 'Porcentaje', \r
+'persistent' => 'Persistente', \r
+'pfs yes no' => 'Seguridad Perfecta en el Futuro (PFS)', \r
+'phase1 group' => 'Fase 1 Grupo', \r
+'phonebook entry' => 'Entrada de agenda:', \r
+'ping disabled' => 'Desactivar respuesta al Ping', \r
+'pkcs12 file password' => 'Archivo de Contraseña PKCS12', \r
+'port' => 'Puerto', \r
+'port forwarding configuration' => 'Configuración de reenvío de puertos', \r
+'ports' => 'Puertos', \r
+'pots' => 'Línea análoga clásica', \r
+'ppp setup' => 'Configuración de PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Configuración adicional de PPPoE:', \r
+'pptp settings' => 'Configuracion adicional para PPTP:', \r
+'pre-shared key is too short' => 'Clave pre-compartida es demasiado corta.', \r
+'present' => 'Existe', \r
+'primary dns' => 'DNS primario:', \r
+'primary ntp server' => 'Servidor NTP primario', \r
+'primary wins server address' => 'Dirección de Servidor WINS primario', \r
+'priority' => 'Prioridad', \r
+'profile' => 'Perfil', \r
+'profile deleted' => 'Perfil borrado:', \r
+'profile has errors' => 'El perfil tiene errores', \r
+'profile made current' => 'Perfil hecho actualmente:', \r
+'profile name' => 'Nombre del perfil:', \r
+'profile name not given' => 'No se ha dado nombre al perfil.', \r
+'profile saved' => 'Perfil guardado:', \r
+'profiles' => 'Perfiles', \r
+'proto' => 'Prot.', \r
+'protocol' => 'Protocolo', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Gráficos de Acceso al Proxy', \r
+'proxy log viewer' => 'Visor de registros del Proxy', \r
+'proxy logs' => 'Registros del Proxy', \r
+'proxy port' => 'Puerto de Proxy', \r
+'psk' => 'PSK', \r
+'pulse' => 'Pulso', \r
+'pulse dial' => 'Marcado por pulso:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Sectores Leídos', \r
+'reboot' => 'Reinciar', \r
+'rebooting' => 'Reiniciando...', \r
+'rebooting ipcop' => 'Reiniciando IPCop...', \r
+'reconnection' => 'Reconexión', \r
+'references' => 'Referencias', \r
+'refresh' => 'Refrescar', \r
+'refresh index page while connected' => 'Actualizar index.cgi mientras este conectado', \r
+'refresh update list' => 'Refrescar lista de actualizaciones', \r
+'registered user rules' => 'Reglas \'Sourcefire VRT\' para usuarios registrados', \r
+'released' => 'Liberado', \r
+'remark' => 'Observación', \r
+'remark title' => 'Observación:', \r
+'remote access' => 'Acceso remoto', \r
+'remote host/ip' => 'Nombre de Host/IP remoto', \r
+'remote logging' => 'Inicio de sesión remoto', \r
+'remote subnet' => 'Subred remota:', \r
+'remote subnet is invalid' => 'Subred remota no válida.', \r
+'remove' => 'Eliminar', \r
+'remove ca certificate' => 'Remover Certificado CA', \r
+'reserved dst port' => 'El puerto de destino está reservado solamente para uso de IPCop:', \r
+'reserved src port' => 'El puerto de origen está reservado solamente para uso de IPCop:', \r
+'reset' => 'Restablecer', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Si reinicializa la configuración VPN, serán removidos los CA raíz, los certificados de host y todas la conexiones basadas en certificados', \r
+'restart' => 'Reiniciar', \r
+'restore' => 'Restablecer', \r
+'restore defaults' => 'Valores predeterminados', \r
+'restore hardware settings' => 'Restaurar configuración de hardware', \r
+'reverse sort' => 'Ordenar cronológicamente en forma descendente', \r
+'root certificate' => 'Certificado Raíz', \r
+'root path' => 'Ruta de Root', \r
+'router ip' => 'Dirección IP del router:', \r
+'routing table entries' => 'Entradas de Tabla de Ruteo', \r
+'rsvd dst port overlap' => 'El Rango de Puertos de Destino se superpone a un puerto reservado para IPCop:', \r
+'rsvd src port overlap' => 'El Rango de Puertos de Origen se superpone a un puerto reservado para IPCop:', \r
+'rules already up to date' => 'Las reglas ya están actualizadas', \r
+'running' => 'EN MARCHA', \r
+'saturday' => 'Sábado', \r
+'save' => 'Guardar', \r
+'save error' => 'No se ha podido guardar el archivo de configuración', \r
+'script name' => 'Nombre del Script:', \r
+'secondary dns' => 'DNS secundario:', \r
+'secondary ntp server' => 'Servidor NTP Secundario', \r
+'secondary wins server address' => 'Dirección de Servidor WINS secundario', \r
+'seconds' => 'Segs', \r
+'section' => 'Sección', \r
+'sectors read from disk per second' => 'Sectores leídos desde Disco por segundo', \r
+'sectors written to disk per second' => 'Sectores escritos a Disco por segundo', \r
+'secure shell server' => 'Servidor de Consola Segura', \r
+'select' => 'Seleccionar', \r
+'select dest net' => 'Seleccione una red destino.', \r
+'select source net' => 'Seleccione una red origen. Si no tiene una red Naranja o Azul configurada, no necesita DMZ Pinholes.', \r
+'send cr' => 'ISP requiere Retorno de Carro:', \r
+'september' => 'Septiembre', \r
+'serial' => 'Serial', \r
+'service' => 'Servicio', \r
+'service added' => 'Servicio de Red personalizado agregado', \r
+'service name' => 'Nombre del servicio:', \r
+'service removed' => 'Servicio de Red personalizado quitado', \r
+'service updated' => 'Servicio de Red personalizado actualizado', \r
+'servicename' => 'Nombre del Servicio', \r
+'services' => 'Servicios:', \r
+'services settings' => 'Configuración de Servicios - Firewall', \r
+'set time now' => 'Cambiar Hora Ahora', \r
+'set time now help' => 'Para poner en cola un evento de sincronización (solo cuando use un evento repetitivo), presione el botón <i>Cambiar Hora Ahora</i>. Por favor recuerde que debe esperar 5 minutos, o más, antes de que el evento de sincronización ocurra.', \r
+'settings' => 'Configuraciones', \r
+'shaping add options' => 'Agregar servicio', \r
+'shaping list options' => 'Servicios de control de tráfico', \r
+'shared' => 'compartido', \r
+'shared memory' => 'Memoria Compartida', \r
+'show ca certificate' => 'Mostrar una Autoridad Certificadora (CA)', \r
+'show certificate' => 'Mostrar Certificado', \r
+'show host certificate' => 'Mostrar Certificado de Host', \r
+'show root certificate' => 'Mostrar Certificado Raíz', \r
+'shutdown' => 'Apagar', \r
+'shutdown control' => 'Control de apagado', \r
+'shutdown2' => 'Apagar:', \r
+'shutting down' => 'Apagando...', \r
+'shutting down ipcop' => 'Apagando IPCop...', \r
+'size' => 'Tamaño', \r
+'snort hits' => 'Total de reglas activadas para la Detecc. de Intrusos', \r
+'sort ascending' => 'Ordenar Ascendente', \r
+'sort descending' => 'Ordenar Descendiente', \r
+'sound' => 'Sonido', \r
+'source' => 'Origen', \r
+'source ip' => 'IP de Origen', \r
+'source ip and port' => 'IP:Puerto origen', \r
+'source ip bad' => 'No es una dirección IP o de red válida.', \r
+'source ip in use' => 'IP de origen en uso:', \r
+'source net' => 'Red Origen', \r
+'source network' => 'IP de origen, o red (vacío para &quot;TODAS&quot;):', \r
+'source port' => 'Puerto de origen', \r
+'source port in use' => 'Puerto de origen en uso:', \r
+'source port numbers' => 'El puerto de origen debe ser un puerto o rango de puertos válido.', \r
+'source port overlaps' => 'El rango de puertos de origen se superpone con un rango existente.', \r
+'speaker off' => 'Parlante apagado:', \r
+'speaker on' => 'Parlante encendido:', \r
+'src port' => 'Puerto origen', \r
+'srcprt range overlaps' => 'El rango de puertos de origen se superpone a un puerto ya definido.', \r
+'srcprt within existing' => 'El puerto de origen está dentro de un rango de puertos ya definido.', \r
+'ssdmz pinholes' => 'DMZ Pinholes', \r
+'ssh access' => 'Acceso SSH', \r
+'ssh fingerprint' => 'Huella Digital (Fingerprint)', \r
+'ssh host keys' => 'Claves de Host SSH', \r
+'ssh is disabled' => 'SSH está desactivado. Deteniéndose...', \r
+'ssh is enabled' => 'SSH está activado. Reiniciando...', \r
+'ssh key' => 'Clave', \r
+'ssh key size' => 'Tamaño (bits)', \r
+'ssh keys' => 'Permitir autenticación basada en Clave Pública (Public Key)', \r
+'ssh no auth' => 'No tiene permitido ningún método de autenticación; se detendrá su inicio de sesión', \r
+'ssh passwords' => 'Permitir autenticación basada en Contraseña', \r
+'ssh portfw' => 'Permitir Reenvío TCP', \r
+'ssh1 disabled' => 'SSHv1 está desactivado, se requiere de un cliente versión 2.', \r
+'ssh1 enabled' => 'SSHv1 está activado, se soportarán clientes viejos.', \r
+'ssh1 support' => 'Soporte de protocolo SSH versión 1 (requerido solo para clientes viejos)', \r
+'ssnetwork status' => 'Estado de la red', \r
+'sspasswords' => 'Contraseñas', \r
+'ssport forwarding' => 'Reenvío de puertos', \r
+'ssproxy graphs' => 'Gráficos del proxy', \r
+'sssystem status' => 'Estado del sistema', \r
+'sstraffic graphs' => 'Gráficas de tráfico', \r
+'standard login script' => 'Script de inicio de sesión estándar', \r
+'start address' => 'Dirección inicial:', \r
+'state or province' => 'Estado o Provincia', \r
+'static ip' => 'IP estática', \r
+'status' => 'Estado', \r
+'status information' => 'Informe de estado', \r
+'stopped' => 'PARADO', \r
+'subject' => 'Asunto', \r
+'subnet is invalid' => 'Máscara de Subred no válida', \r
+'subscripted user rules' => 'Reglas \'Sourcefire VRT\' con suscripción', \r
+'successfully refreshed updates list' => 'La lista de actualizaciones fue actualizada exitosamente.', \r
+'summaries kept' => 'Mantener sumarios para', \r
+'sunday' => 'Domingo', \r
+'swap' => 'Intercambio', \r
+'swap usage per' => 'Uso de Memoria Virtual por', \r
+'system cpu' => 'CPU del Sistema', \r
+'system cpu usage' => 'Uso de CPU del Sistema', \r
+'system graphs' => 'Gráficos de Sistema', \r
+'system log viewer' => 'Visor de Registros del Sistema', \r
+'system logs' => 'Registros del Sistema', \r
+'system status information' => 'Información de Estado del Sistema', \r
+'telephone not set' => 'Teléfono no configurado.', \r
+'the following update was successfully installed' => 'La siguiente actualización fue instalada exitosamente', \r
+'the statistics were last updated at' => 'Las estadísticas fueron actualizadas a', \r
+'there are updates' => 'Hay actualizaciones disponibles para su sistema. Por favor, visite la sección &quot;Actualizaciones&quot; para más información.', \r
+'there are updates available' => 'Hay actualizaciones para su sistema. Es extremadamente urgente que las instale tan pronto como le sea posible.', \r
+'there was no file upload' => 'No se cargaron archivos.', \r
+'this feature has been sponsored by' => 'El sponsor de esta característica es', \r
+'this field may be blank' => 'Este campo puede quedar vacío.', \r
+'this is not a valid archive' => 'Este no es un archivo válido.', \r
+'this is not an authorised update' => 'Esta no es una actualización autorizada.', \r
+'this update is already installed' => 'Esta actualización ya se encuentra instalada.', \r
+'thursday' => 'Jueves', \r
+'time' => 'Hora', \r
+'time date manually reset' => 'Hora/Fecha reseteada manualmente.', \r
+'time server' => 'Servidor de Hora (NTP)', \r
+'timeout must be a number' => 'Timeout debe ser un número.', \r
+'title' => 'Título', \r
+'to' => 'A', \r
+'to install an update' => 'Para instalar una actualización por favor cargue el archivo .tgz.gpg abajo:', \r
+'toggle enable disable' => 'Activar o Desactivar', \r
+'tone' => 'Tono', \r
+'tone dial' => 'Marcado por tono:', \r
+'total hits for log section' => 'Hits Total para la Sección Log', \r
+'traffic on' => 'Tráfico en', \r
+'traffic shaping' => 'Control de Tráfico', \r
+'traffic shaping settings' => 'Configuraciones de Control de Tráfico', \r
+'transfer limits' => 'Límites de transferencia', \r
+'transparent on' => 'Transparente activado', \r
+'tuesday' => 'Martes', \r
+'type' => 'Tipo:', \r
+'unable to alter profiles while red is active' => 'No se puede modificar perfiles mientras la interface ROJA este activa.', \r
+'unable to contact' => 'No se puede contactar', \r
+'unencrypted' => 'Desencriptado', \r
+'unknown' => 'DESCONOCIDO', \r
+'unnamed' => 'Sin nombre', \r
+'update' => 'Actualizar', \r
+'update time' => 'Actualizar hora', \r
+'update transcript' => 'Actualizar transcripciones', \r
+'updates' => 'Actualizaciones', \r
+'updates installed' => 'Actualizaciones Instaladas', \r
+'updates is old1' => 'Su archivo de actualización tiene', \r
+'updates is old2' => 'días de antigüedad. Le recomendamos que lo actualice en la página <b>Sistema>Actualizaciones</b>.', \r
+'uplink speed' => 'Velocidad de subida (kbit/seg)', \r
+'upload' => 'Cargar', \r
+'upload a certificate' => 'Cargar un certificado:', \r
+'upload a certificate request' => 'Cargar pedido de certificado:', \r
+'upload ca certificate' => 'Cargar Certificado CA', \r
+'upload fcdsl.o' => 'Cargue fcdsl.o', \r
+'upload file' => 'Cargar archivo', \r
+'upload p12 file' => 'Cargar archivo PKCS12', \r
+'upload successful' => 'Carga exitosa.', \r
+'upload synch.bin' => 'Cargar synch.bin', \r
+'upload update file' => 'Cargar archivo de actualización:', \r
+'upstream password' => 'Contraseña de upstream:', \r
+'upstream proxy host:port' => 'Proxy subida (host:puerto)', \r
+'upstream username' => 'Nombre de usuario de upstream:', \r
+'uptime and users' => 'Tiempo en marcha de las operaciones y usuarios:', \r
+'usb modem on acm0' => 'Módem USB en ACM0', \r
+'usb modem on acm1' => 'Módem USB en ACM1', \r
+'usb modem on acm2' => 'Módem USB en ACM2', \r
+'usb modem on acm3' => 'Módem USB en ACM3', \r
+'use' => 'Uso', \r
+'use a pre-shared key' => 'Usar Clave Pre-Compartida:', \r
+'use dov' => 'Usar DOV (datos sobre voz):', \r
+'use ibod' => 'Usar ancho de banda sobre demanda (iBOD):', \r
+'use ipcop red ip' => 'La IP ROJA clásica usada por IPCop durante la conexión', \r
+'use only proposed settings' => 'Usar solo configuraciones propuestas.', \r
+'used' => 'Usado', \r
+'used memory' => 'Memoria Usada', \r
+'used swap' => 'Memoria Virtual Usada', \r
+'user cpu' => 'CPU del Usuario', \r
+'user cpu usage' => 'Uso de CPU del Usuario', \r
+'username' => 'Nombre de usuario:', \r
+'username not set' => 'Usuario no establecido.', \r
+'users department' => 'Departamento del Usuario', \r
+'users email' => 'Dirección de E-mail del Usuario', \r
+'users fullname or system hostname' => 'Nombre Completo del Usuario o Nombre de Host del Sistema', \r
+'valid root certificate already exists' => 'Ya existe un certificado raíz válido.', \r
+'vci number' => 'Número de VCI:', \r
+'virtual private networking' => 'Red Privada Virtual (VPN)', \r
+'vpi number' => 'Número VPI', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'Configuración VPN - Principal', \r
+'vpn on blue' => 'VPN en AZUL', \r
+'waiting to synchronize clock' => 'Esperando la sincronización del reloj', \r
+'warning messages' => 'Mensajes de advertencia', \r
+'web hits' => 'Número total de sitios web que coinciden con el criterio seleccionado', \r
+'web proxy' => 'Web proxy', \r
+'web proxy configuration' => 'Configuración del Web Proxy', \r
+'web server' => 'Servidor Web', \r
+'website' => 'Sitio Web', \r
+'wednesday' => 'Miércoles', \r
+'week' => 'Semana', \r
+'weeks' => 'semanas', \r
+'wildcards' => 'Comodines', \r
+'wireless' => 'Inalámbrico', \r
+'wireless config added' => 'Configuración de Inalámbrica agregada', \r
+'wireless config changed' => 'Configuración de Inalámbrica cambiada', \r
+'wireless configuration' => 'Configuración Inalámbrica', \r
+'written sectors' => 'Sectores escritos', \r
+'xtaccess all error' => 'No se puede fijar un acceso externo para TODOS, esto está hecho en el registro de reenvío de puertos.', \r
+'year' => 'Año', \r
+'yes' => 'Sí', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Puede definir solo una conexión Roadwarrior cuando usa autenticación por clave pre-compartida.<br/>Igualmente si ya tiene una conexión Roadwarrior con autenticación de clave pre-compartida, o está intentado agregar una ahora.', \r
+'your department' => 'Su Departamento', \r
+'your e-mail' => 'Su Dirección de E-mail', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/la/install/CVS/Entries b/langs/la/install/CVS/Entries
new file mode 100644 (file)
index 0000000..4f2ce57
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_la.c/1.7.2.8/Mon Dec 12 09:23:28 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/la/install/CVS/Repository b/langs/la/install/CVS/Repository
new file mode 100644 (file)
index 0000000..d664945
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/la/install
diff --git a/langs/la/install/CVS/Root b/langs/la/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/la/install/CVS/Tag b/langs/la/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/la/install/lang_la.c b/langs/la/install/lang_la.c
new file mode 100644 (file)
index 0000000..a79e35f
--- /dev/null
@@ -0,0 +1,507 @@
+/*\r
+ * Latino-American Span (la) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Fernando D. Diaz Bottaro \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *la_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Configuración de direcciones",\r
+/* TR_ADMIN_PASSWORD */\r
+"Contraseña de usuario Admin",\r
+/* TR_AGAIN_PROMPT */\r
+"Otra vez:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Todas la tarjetas se asignaron con éxito.",\r
+/* TR_AUTODETECT */\r
+"* AUTODETECTADO *",\r
+/* TR_BUILDING_INITRD */\r
+"Creando INITRD...",\r
+/* TR_CANCEL */\r
+"Cancelar",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Asignación de tarjetas",\r
+/* TR_CHECKING */\r
+"Chequeando URL...",\r
+/* TR_CHECKING_FOR */\r
+"Verificando: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Elija la tarjeta ISDN instalada en esta computadora.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Elija el protocolo ISDN requerido:",\r
+/* TR_CONFIGURE_DHCP */\r
+"Configure el servidor DHCP ingresando la información de configuración.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Configuración de Red",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Ahora debe configurar la red cargando primero el controlador para su interface VERDE. Esto puede hacerse mediante autodetección de la tarjeta de red, o eligiendo el driver adecuado desde una lista disponible. Si tiene más de una tarjeta de red instalada, podrá configurar las restantes luego. Observe que si usted tiene más de una tarjeta que sea igual que la VERDE y cada tarjeta requiere parámetros especiales del módulo, se deben ingresar los parámetros para todas las tarjetas de este tipo, de modo que todas pueden ser activadas cuando se configura la interface VERDE.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Configure los controladores de red, y que tarjetas de red se asignarán a que interfaces. La configuración actual es la siguiente:",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Configure el CDROM eligiendo la dirección E/S y el IRQ adecuado.",\r
+/* TR_CONGRATULATIONS */\r
+"¡Felicitaciones!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s ha sido instalado exitosamente. Por favor, quite el disquete o CD que pueda tener en su PC. Se iniciará el Programa de Instalación, en el podrá configurar ISDN, tarjetas de red, y contraseñas del sistema. Luego de finalizado el Programa de Instalación, podrá acceder con su navegador web a http://%s:81 o https://%s:445 (o el nombre que haya puesto a su %s), y configurar el acceso telefónico (si se requiere) y/o el acceso remoto. No olvide colocar una contraseña para el usuario 'dial' en su %s, si no desea que usuarios 'admin' puedan controlar el enlace.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Su Disco Duro es demasiado chico, pero puede continuar sin Swap. (Use con precaución).",\r
+/* TR_CURRENT_CONFIG */\r
+"Configuración actual: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Pta. enlace o gateway predeterminado:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Pta. enlace o gateway predeterminado\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Concesión por defecto (min):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Tiempo de concesión por defecto\n",\r
+/* TR_DETECTED */\r
+"Detectado un: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Nombre del host DHCP:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Nombre del host DHCP\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Configuración del servidor DHCP",\r
+/* TR_DISABLED */\r
+"Desactivado",\r
+/* TR_DISABLE_ISDN */\r
+"Desactivar RDSI (ISDN)",\r
+/* TR_DISK_TOO_SMALL */\r
+"Su disco duro es demasiado pequeño.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Opciones de DNS y Gateway",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Ingrese la información de DNS y Puerta de Enlace. Estas serán usadas solamente si el DHCP no está habilitado en la interface ROJA.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Su configuración no usa un adaptador ethernet para la interface ROJA. La información de DNS y Puerta de Enlace para el usuario de acceso telefónico se configura automaticamente en el momento de la conexión.",\r
+/* TR_DOMAINNAME */\r
+"Nombre de Dominio",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Nombre de Dominio no puede quedar en blanco.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"El Nombre de Dominio no puede contener espacios.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Nombre de Dominio puede contener solo letras, números, guiones y puntos. ",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Sufijo del nombre de dominio:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Sufijo del nombre de dominio\n",\r
+/* TR_DONE */\r
+"Hecho",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\n¿Desea cambiar esta configuración?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Asignación de controladores y tarjetas",\r
+/* TR_ENABLED */\r
+"Activado",\r
+/* TR_ENABLE_ISDN */\r
+"Activar RDSI (ISDN)",\r
+/* TR_END_ADDRESS */\r
+"Dirección final:",\r
+/* TR_END_ADDRESS_CR */\r
+"Dirección final\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Algunas tarjetas ISDN (en particular las ISA) pueden necesitar parámetros adicionales para configurar el IRQ y la dirección de E/S. Si tiene alguna de estas tarjetas, ingrese aquí estos parámetros. Por ejemplo: &quot;io=0x280 irq=9&quot;. Esta información será utilizada durante la detección de la tarjeta.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Ingrese la contraseña para &quot;admin&quot; de %s. Este es el usuario que se usará para ingresar a las páginas web de administración de %s.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Ingrese Nombre de Dominio",\r
+/* TR_ENTER_HOSTNAME */\r
+"Ingrese el nombre de host para su máquina.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Ingrese la información de la dirección IP.",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"La detección automática de la tarjeta de red ha fallado. Introduzca el controlador y los parámetos opcionales para la tarjeta de red.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Ingrese la contraseña para el usuario 'root'. Iniciando sesión con este usuario podrá acceder a la consola de comandos.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Ingrese la contraseña para el usuario 'setup'. Iniciando sesión con este usuario podrá acceder al programa 'setup'.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Ingrese la información de la dirección IP para la interface %s.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Ingrese el número de teléfono local (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Ingrese la dirección URL para los archivos ipcop-<version>.tgz y images/scsidrv-<version>.img. ATENCIÓN: DNS no está disponible! La url debe ser solo del tipo http://x.x.x.x/<directorio>",\r
+/* TR_ERROR */\r
+"Error",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Error al escribir la configuración.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Extrayendo los módulos...",\r
+/* TR_FAILED_TO_FIND */\r
+"No se ha encontrado el archivo en la URL.",\r
+/* TR_FOUND_NIC */\r
+"%s ha detectado la siguiente NIC en su máquina: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"1TR6 Alemán",\r
+/* TR_HELPLINE */\r
+"           <Tab>/<Alt-Tab> entre elementos | <Space> para seleccionar",\r
+/* TR_HOSTNAME */\r
+"Nombre del Host",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"El nombre del host no puede quedar en blanco.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"El nombre del host no puede contener espacios.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Nombre de Host solo puede contener letras, números y guiones.",\r
+/* TR_INITIALISING_ISDN */\r
+"Inicializando ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Por favor, introduzca el CD de %s en la unidad de CDROM.",\r
+/* TR_INSERT_FLOPPY */\r
+"Por favor, introduzca el disquete con el controlador de %s en la disquetera.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Instalación cancelada.",\r
+/* TR_INSTALLING_FILES */\r
+"Instalando los archivos...",\r
+/* TR_INSTALLING_GRUB */\r
+"Instalando GRUB...",\r
+/* TR_INTERFACE */\r
+"interface %s",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"La inicialización de la interface ha fallado.",\r
+/* TR_INVALID_FIELDS */\r
+"Los siguientes campos no son válidos:\n\n",\r
+/* TR_INVALID_IO */\r
+"La información del puerto de E/S ingresada no es válida.",\r
+/* TR_INVALID_IRQ */\r
+"El IRQ ingresado no es válido.",\r
+/* TR_IP_ADDRESS_CR */\r
+"Dirección IP\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"Dirección IP:",\r
+/* TR_ISDN_CARD */\r
+"Tarjeta RDSI (ISDN)",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"No se ha detectado la tarjeta ISDN. Puede que necesite especificar parámetros adicionales (IRQ o puertos E/S) si la tarjeta es del tipo ISA o tiene requerimientos especiales.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Selección de la tarjeta ISDN",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Configuración ISDN",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Menú de configuración de ISDN",\r
+/* TR_ISDN_NOT_SETUP */\r
+"No ha sido configurado ISDN.  Algunos items no fueron seleccionados.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN aún no esta configurado. Selecione el item que desea configurar.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Selección del protocolo ISDN",\r
+/* TR_ISDN_STATUS */\r
+"Actualmente el ISDN es %s.\n\n Protocolo: %s\n Tarjeta: %s\n Número de teléfono local: %s\n\nSeleccione el item que desea volver a configurar, o elija usar la configuración actual.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Mapa del teclado",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Elija el tipo de teclado que está utilizando de la lista siguiente.",\r
+/* TR_LEASED_LINE */\r
+"Línea renovada",\r
+/* TR_LOADING_MODULE */\r
+"Cargando el módulo...",\r
+/* TR_LOADING_PCMCIA */\r
+"Cargando módulos PCMCIA...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Buscando: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Creando el sistema de archivos 'boot'",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Creando el sistema de archivos 'log'",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Creando el sistema de archivos 'root'",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Creando el espacio de 'swap'",\r
+/* TR_MANUAL */\r
+"* MANUAL *",\r
+/* TR_MAX_LEASE */\r
+"Concesión máxima (min):",\r
+/* TR_MAX_LEASE_CR */\r
+"Tiempo máximo de concesión\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Información IP de la interface AZUL se perdió.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Perdiendo la IP de la interface NARANJA.",\r
+/* TR_MISSING_RED_IP */\r
+"Perdiendo la IP de la interface ROJA.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"El nombre del módulo no puede quedar en blanco.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Ingrese el nombre y los parámetros del modulo para el controlador requerido.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Montando el sistema de archivos boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Montando el sistema de archivos log...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Montando el sistema de archivos root...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Montando la partición swap...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Número de teléfono local (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Máscara de subred:",\r
+/* TR_NETWORKING */\r
+"Red",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Dirección de red\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Dirección de red:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Menú de configuración de red",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Tipo de configuración de red",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Seleccione el tipo de configuración de red para %s. Los tipos de configuraciones siguientes muestran aquellas interfaces que tienen una tarjeta ehternet asignada. Si cambia alguna de estas configuraciones, es necesario reiniciar la red, y habrá que reconfigurar las asignaciones del controlador de red.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Máscara de red\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"La configuración de la red ha fallado.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"No se localizaron suficientes tarjetas.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"No se han asignado interface AZUL.",\r
+/* TR_NO_CDROM */\r
+"No se encontrado CD-ROMs.",\r
+/* TR_NO_HARDDISK */\r
+"No se ha encontrado Disco Duro.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"No se ha encontrado un .tar.gz de Ipcop en el Servidor Web.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"No hay ninguna interface NARANJA asignada.",\r
+/* TR_NO_RED_INTERFACE */\r
+"No hay ninguna interface ROJA asignada.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"No se ha encontrador una imágen SCSI en el Servidor Web.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Se requieren más tarjetas y no quedan tarjetas detectadas. Puede usar 'autodetectar' o elejir seleccionar un controlador de la lista.",\r
+/* TR_OK */\r
+"Aceptar",\r
+/* TR_PARTITIONING_DISK */\r
+"Particionando el disco...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Las contraseñas ingresadas no coinciden.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"La contraseña no puede dejarse en blanco.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"La contraseña no puede tener espacios.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Contraseña:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Debe especificar un número de teléfono.",\r
+/* TR_PREPARE_HARDDISK */\r
+"El programa de instalación preparará ahora el disco duro %s. Primero se hará el particionado del disco y de inmediato se creará el sistema de archivos.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Pulse Aceptar para reiniciar.",\r
+/* TR_PRIMARY_DNS */\r
+"DNS primario:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"DNS primario\n",\r
+/* TR_PROBE */\r
+"Prueba",\r
+/* TR_PROBE_FAILED */\r
+"La autodetección ha fallado.",\r
+/* TR_PROBING_SCSI */\r
+"Detectando dispositivos SCSI...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Problemas al asignar la contraseña del usuario admin de %s.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Problemas al asignar la contraseña del usuario 'root'.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Problemas al asignar la contraseña del usuario 'setup'.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protocolo/País",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Iniciando la red...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Apagando la red...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Apagando una red no local...",\r
+/* TR_QUIT */\r
+"Salir",\r
+/* TR_RED_IN_USE */\r
+"ISDN (u otra conexión externa) está actualmente en uso. No debe configurar el ISDN mientras la interface ROJA esté activa.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nCuando la configuración se complete, necesitará reiniciar la red.",\r
+/* TR_RESTORE */\r
+"Restaurar",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Si tiene un disquete con la configuración de sistema %s, introduzca el disquete en la disquetera y pulse el botón Restaurar.",\r
+/* TR_ROOT_PASSWORD */\r
+"Contraseña del usuario 'root'",\r
+/* TR_SECONDARY_DNS */\r
+"DNS secundario:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"DNS secundario\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Especificó un DNS secundario sin un DNS primario.",\r
+/* TR_SECTION_MENU */\r
+"Sección menú",\r
+/* TR_SELECT */\r
+"Seleccionar",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Seleccione el tipo de CDROM",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"No se ha detectado ningún CDROM en esta máquina. Por favor, seleccione cual de los siguientes controladores desea utilizar para que %s pueda acceder al CDROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Seleccione un medio para la instalación",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s puede ser instalado desde diferentes medios. Lo más fácil es instalarlo desde la unidad de CDROM. Si la computadora carece de una, puede hacer la instalación desde otra máquina en la LAN que tenga los archivos de instalación disponibles via HTTP o FTP. En este caso deberá preparar disquetes para acceder a la red. ",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Seleccionar controlador de red",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Elija el controlador de red para la terjeta instalada en esta máquina. Si elige MANUAL, tendrá la oportunidad de ingresar el nombre y los parámetros del módulo para los controladores que así lo requieran, como es el caso de algunas tarjetas ISA.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Seleccione la interface que desea volver a configurar.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Seleccione el item que desea configurar.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Asignando contraseña del usuario admin de %s ...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Asignando contraseña del usuario 'root' ...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Asignando contraseña del usuario 'setup' ...",\r
+/* TR_SETUP_FINISHED */\r
+"La configuración se ha completado. Presione Aceptar para reiniciar.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"La configuración inicial no se ha completado. Debe asegugarse de que el programa de instalación finalice correctamente, ejecutándolo nuevamente desde la consola de comandos escribiendo 'setup'.",\r
+/* TR_SETUP_PASSWORD */\r
+"Contraseña del usuario 'setup'",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Configurar parámetros adicionales de módulos",\r
+/* TR_SINGLE_GREEN */\r
+"Su configuración actual consta de una única interface VERDE.",\r
+/* TR_SKIP */\r
+"Saltar",\r
+/* TR_START_ADDRESS */\r
+"Dirección de inicio:",\r
+/* TR_START_ADDRESS_CR */\r
+"Dirección de inicio\n",\r
+/* TR_STATIC */\r
+"Estático",\r
+/* TR_SUGGEST_IO */\r
+"(sugiere %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(sugiere %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Este módulo de controlador ya está cargado.",\r
+/* TR_TIMEZONE */\r
+"Zona horaria",\r
+/* TR_TIMEZONE_LONG */\r
+"Elija la zona horaria en la que se encuentra de la siguiente lista.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Incapaz de expulsar el CDROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Incapaz de extraer los módulos.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Incapaz de encontrar controladores adicionales.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Incapaz de encontrar una tarjeta ISDN en esta computadora. Debe especificar parámetros adicionales para el módulo si la tarjeta es del tipo ISA o si tiene requerimientos especiales.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Incapaz de inicializar ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Imposible instalar los archivos.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Incapaz de intalar GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Incapaz de cargar el modulo del controlador.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Incapaz de crear el sistema de archivos boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Incapaz de crear el sistema de archivos log.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Incapaz de crear el sistema de archivos root.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Incapaz de crear el espacio de swap.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Incapaz de crear el enlace simbólico /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Incapaz de crear el enlace simbólico /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Incapaz de crear el enlace simbólico /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Incapaz de crear el enlace simbólico /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Incapaz de crear el enlace simbólico /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Incapaz de crear el enlace simbólico /dev/root",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Incapaz de montar el sistema de archivos boot.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Incapaz de montar el sistema de archivos log.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Incapaz de montar el sistema de archivos proc",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Incapaz de montar el sistema de archivos root.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Incapaz de montar la partición swap.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"No se puede abrir el archivo 'hosts' principal",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Incapaz de abrir el archivo de configuraciones",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Incapaz de particionar el disco.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"No es posible eliminar archivos temporales.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"No es posible asignar nombre al host.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"No se puede desmontar el CDROM/floppydisk.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Incapaz de desmontar el disco duro.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Incapaz de escribir en /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Incapaz de escribir en /etc/hostname.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Incapaz de escribir en /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Incapaz de escribir en /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Incapaz de escribir en /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Incapaz de escribir en %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Incapaz de escribir en %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Incapaz de escribir en %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Hay una tarjeta ethernet libre del tipo:\n%s\n\n Puede asignarla a:",\r
+/* TR_UNKNOWN */\r
+"DESCONOCIDO",\r
+/* TR_UNSET */\r
+"NO CONFIGURADO",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"ADVERTENCIA",\r
+/* TR_WARNING_LONG */\r
+"Si cambia esta dirección IP, y está conectado remotamente, su conexión con la máquina %s se perderá, y tendrá que reconectarse con la nueva IP. Esta es una operación riesgosa, y sólo debe intentarse si posee acceso físico a la máquina cuya configuración modifica.",\r
+/* TR_WELCOME */\r
+"Bienvenido al programa de intalación %s. Seleccionando Cancelar en alguna de las siguientes pantallas se reiniciará la computadora.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Su configuración actual consta de una única interface VERDE, a la que ya se ha asignado un controlador.",\r
+}; \r
+  \r
diff --git a/langs/list b/langs/list
new file mode 100644 (file)
index 0000000..e1b7086
--- /dev/null
@@ -0,0 +1,29 @@
+bz:Brazilian Portuguese:Portugu&ecirc;s-Brasil
+zh:Chinese Simplified:&#20013;&#25991;-&#31616;
+zt:Chinese Traditional:&#20013;&#25991;-&#32321;
+cs:Czech:&#268;e&#353;tina
+da:Danish:Dansk
+nl:Dutch:Nederlands
+en:English:English
+fi:Finnish:Suomi
+fr:French:Fran&ccedil;ais
+de:German:Deutsch
+el:Greek:Ellinika
+hu:Hungarian:Magyar
+it:Italian:Italiano
+lt:Lithuanian:Lietuvi&#371;
+no:Norwegian:Norsk
+fa:Persian:Farsi
+pl:Polish:Polski
+pt:Portuguese:Portugu&ecirc;s
+ro:Romanian:Rom&acirc;n&#259;
+ru:Russian:Russkij
+sk:Slovak:Slovenčina
+sl:Slovenian:Slovinsko
+so:Somali:Soomali
+es:Spanish:Espa&ntilde;ol
+la:Spanish Latino:Espa&ntilde;ol latinoamericano
+sv:Swedish:Svenska
+th:Thai:&#3616;&#3634;&#3625;&#3634;&#3652;&#3607;&#3618;
+tr:Turkish:T&uuml;rk&ccedil;e
+vi:Vietnamese:Ti&#7871;ng Vi&#7879;t
diff --git a/langs/lt/CVS/Entries b/langs/lt/CVS/Entries
new file mode 100644 (file)
index 0000000..9030d32
--- /dev/null
@@ -0,0 +1 @@
+D/cgi-bin////
diff --git a/langs/lt/CVS/Repository b/langs/lt/CVS/Repository
new file mode 100644 (file)
index 0000000..9877489
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/lt
diff --git a/langs/lt/CVS/Root b/langs/lt/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/lt/CVS/Tag b/langs/lt/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/lt/cgi-bin/CVS/Entries b/langs/lt/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..ef17ce0
--- /dev/null
@@ -0,0 +1,2 @@
+/lt.pl/1.1.2.6/Thu Oct  6 15:48:43 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/lt/cgi-bin/CVS/Repository b/langs/lt/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..aab98d5
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/lt/cgi-bin
diff --git a/langs/lt/cgi-bin/CVS/Root b/langs/lt/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/lt/cgi-bin/CVS/Tag b/langs/lt/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/lt/cgi-bin/lt.pl b/langs/lt/cgi-bin/lt.pl
new file mode 100644 (file)
index 0000000..d6529dd
--- /dev/null
@@ -0,0 +1,159 @@
+# Lithuanian (lt) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2004 Rodion Kotelnikov\r
+# (c) 2005 Aurimas Fišeras \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'action' => 'veiksmas', \r
+'add' => 'pridėti', \r
+'add a new rule' => 'pridėti naują taisyklę:', \r
+'administrator user password' => 'naudotojo admin slaptažodis:', \r
+'adsl settings' => 'ADSL nustatymai', \r
+'again' => 'Dar kartą', \r
+'aliases' => 'Aliasai', \r
+'all interfaces' => 'Visos sąsajos', \r
+'alt dialup' => 'Prisijungimas', \r
+'alt services' => 'Servisai', \r
+'alt system' => 'Sistema', \r
+'alt vpn' => 'VPT', \r
+'april' => 'Balandis', \r
+'archive not exist' => 'Nustatymų archyvas neegzistuoja', \r
+'are you sure' => 'Esate įsitikinę?', \r
+'arp table entries' => 'ARP lentelės įrašai:', \r
+'august' => 'Rugpjūtis', \r
+'back' => 'ATGAL', \r
+'backup' => 'Atsarginė kopija', \r
+'backup config floppy' => 'Išsaugoti nustatymus - Į diskelį', \r
+'backup configuration' => 'Išsaugoti nustatymus:', \r
+'backup sets' => 'Archyvų rinkiniai', \r
+'backup to floppy' => 'Išsaugoti į diskelį', \r
+'blue' => 'MĖLYNAS', \r
+'cancel' => 'Atsisakyti', \r
+'cfg restart' => 'Rekomenduojama perkrauti sistemą po nustatymų atstatymo.', \r
+'change passwords' => 'Keisti slaptažodžius', \r
+'city' => 'Miestas', \r
+'click to disable' => 'Įjungta (įšjungti - spauskite)', \r
+'click to enable' => 'Išjungta (įjungti - spauskite)', \r
+'compression' => 'Glaudinimas:', \r
+'connected' => 'Prisijungęs', \r
+'connecting' => 'Jungiamasi...', \r
+'connection' => 'Prisijungimas', \r
+'connections' => 'Ryšiai', \r
+'country' => 'Šalis', \r
+'create' => 'Sukurti', \r
+'credits' => 'Kūrėjai', \r
+'day' => 'Diena', \r
+'day after' => 'Rytoj', \r
+'day before' => 'Vakar', \r
+'days' => 'Dienos', \r
+'december' => 'Gruodis', \r
+'dhcp server' => 'DHCP serveris', \r
+'dial' => 'Prisijungti', \r
+'driver' => 'Tvarkyklė', \r
+'dynamic dns' => 'Dinaminis DNS', \r
+'edit' => 'Redaguoti', \r
+'edit hosts' => 'Keisti hostus', \r
+'empty' => 'Tuščias', \r
+'every' => 'Kiekvienas', \r
+'export' => 'Eksportuoti', \r
+'external access' => 'Išorinė prieiga', \r
+'february' => 'Vasaris', \r
+'firewall' => 'Ugniasienė', \r
+'firewall log' => 'Ugniasienės registras', \r
+'firewall logs' => 'Ugniasienės registrai', \r
+'free' => 'Laisva', \r
+'friday' => 'Penktadienis', \r
+'graph' => 'Grafikas', \r
+'green' => 'ŽALIAS', \r
+'gui settings' => 'GVS nustatymai', \r
+'hangup' => 'Atsijungti', \r
+'ids logs' => 'AAS žurnalas', \r
+'import' => 'Importuoti', \r
+'insert floppy' => 'Jei norite padaryti nustatymų archyvą į diskelį, tai įdėkite suformatuotą diskelį į diskasukį, prijungtą prie IPCop, ir spauskite <i>Išsaugoti į diskelį</i>. Prašome įdėmiai išanalizuoti rezultatą ir įsitikinti, kad archyvas padarytas sėkmingai. Tai gali truputį užtrukti, būkite kantrūs.<p>', \r
+'installed' => 'Įdiegtas', \r
+'intrusion detection' => 'Atakų aptikimas', \r
+'intrusion detection system' => 'Atakų Aptikimo Sistema', \r
+'intrusion detection system log viewer' => 'Atakų Aptikimo Sistemos žurnalo peržiūra', \r
+'intrusion detection system2' => 'Atakų Aptikimo Sistema:', \r
+'invalid broadcast ip' => 'Neteisingas broadcast IP', \r
+'invalid cache size' => 'Klaidingas kešo dydis.', \r
+'invalid characters found in pre-shared key' => 'Klaidingi simboliai rasti pre-shared rakte.', \r
+'invalid date entered' => 'Įvesta klaidinga data.', \r
+'invalid end address' => 'Klaidingas galinis adresas.', \r
+'invalid fixed ip address' => 'Klaidingas fiksuotas IP adresas', \r
+'invalid fixed mac address' => 'Klaidingas fixuotas MAC adresas', \r
+'invalid input' => 'Klaidinga įvestis', \r
+'invalid input for authentication method' => 'Klaidinga įvestis atpažinimo metodui.', \r
+'invalid ip' => 'Klaidingas IP adresas', \r
+'invalid keep time' => 'Saugojimo laikas turi būti skaičius', \r
+'invalid key' => 'Klaidingas raktas.', \r
+'invalid logserver address' => 'Klaidingas syslogd serverio adresas', \r
+'invalid md5sum' => 'Klaidinga MD5 suma.', \r
+'invalid start address' => 'Neteisingas pradinis adresas.', \r
+'invalid time period' => 'Neteisingas laikotarpis', \r
+'invalid upstream proxy username or password setting' => 'Neteisingas išeinančio tarpinio serverio naudotojo vardas ar slaptažodis.', \r
+'invalid vpi vpci' => 'Neteisingi VPI/VPCI nustatymai', \r
+'invalid wins address' => 'Neteisingas WINS serverio adresas', \r
+'january' => 'Sausis', \r
+'log settings' => 'Žurnalo nustatymai', \r
+'log summaries' => 'Žurnalo santraukos', \r
+'log summary' => 'Žurnalo santrauka', \r
+'march' => 'Kovas', \r
+'may' => 'Gegužė', \r
+'modem' => 'Modemas', \r
+'monday' => 'Pirmadienis', \r
+'november' => 'Lapkritis', \r
+'proxy' => 'Tarpinis serveris', \r
+'proxy logs' => 'Tarpinio serverio žurnalas', \r
+'refresh' => 'Atnaujinti', \r
+'saturday' => 'Šeštadienis', \r
+'shutdown' => 'Išjungti', \r
+'ssh access' => 'SSH prieiga', \r
+'ssnetwork status' => 'Tinklo būklė', \r
+'sspasswords' => 'Slaptažodžiai', \r
+'ssport forwarding' => 'Prievadų peradresavimas', \r
+'ssproxy graphs' => 'Tarpino serverio grafikai', \r
+'sssystem status' => 'Sistemos būklė', \r
+'sstraffic graphs' => 'Srauto grafikai', \r
+'status' => 'Būklė', \r
+'sunday' => 'Sekmadienis', \r
+'system graphs' => 'Sistemos grafikai', \r
+'system logs' => 'Sistemos žurnalas', \r
+'thursday' => 'Ketvirtadienis', \r
+'time' => 'Laikas', \r
+'time server' => 'Laiko serveris', \r
+'traffic shaping' => 'Srautų valdymas', \r
+'tuesday' => 'Antradienis', \r
+'updates' => 'Atnaujinimai', \r
+'updates is old1' => 'Jūsų atnaujinimo failas yra', \r
+'updates is old2' => 'd. senumo. Mes rekomenduojame jį atnaujinti puslapyje <b>Sistema>Atnaujinimai</b>.', \r
+'upload' => 'Išsiuntimas', \r
+'wednesday' => 'Trečiadienis', \r
+'wireless' => 'Bevielis', \r
+'year' => 'Metai', \r
+'your e-mail' => 'Jūsų el. pašto adresas', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/nl/CVS/Entries b/langs/nl/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/nl/CVS/Repository b/langs/nl/CVS/Repository
new file mode 100644 (file)
index 0000000..1570454
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/nl
diff --git a/langs/nl/CVS/Root b/langs/nl/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/nl/CVS/Tag b/langs/nl/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/nl/cgi-bin/CVS/Entries b/langs/nl/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..99e0283
--- /dev/null
@@ -0,0 +1,2 @@
+/nl.pl/1.6.2.23/Thu Dec 29 16:11:43 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/nl/cgi-bin/CVS/Repository b/langs/nl/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..70ea061
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/nl/cgi-bin
diff --git a/langs/nl/cgi-bin/CVS/Root b/langs/nl/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/nl/cgi-bin/CVS/Tag b/langs/nl/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl
new file mode 100644 (file)
index 0000000..ca9abeb
--- /dev/null
@@ -0,0 +1,953 @@
+# Dutch (nl) Data File \r
+#\r
+# Dit bestand is een deel van de IPCop Firewall\r
+# \r
+# IPCop is vrije software; het staat u vrij het de her-distribueren of\r
+# aan te passen onder de voorwaarden van de GNU General Public License\r
+# zoals deze gepubliceerd is door de Free Software Foundation; of\r
+# versie 2 van deze licentie, of (naar uw keuze) een latere versie.\r
+# \r
+# IPCop wordt gedistribueerd in de hoop dat het nuttig is, maar\r
+# ZONDER ENIGE GARANTIE; zonder zelfs een impliciete garantie door\r
+# WEDERVERKOOPBAARHEID of geschikbaarheid voor een bepaalde\r
+# toepassing. Zie de GNU General Public License voor meer details.\r
+# \r
+# U zou een kopie van de GNU General Public License bij IPCop\r
+# ontvangen moeten hebben. Mocht dit niet het geval zijn, schrijf\r
+# een brief naar:\r
+# \r
+# Free Software Foundation, Inc.\r
+# 59 Temple Place\r
+# Suite 330\r
+# Boston\r
+# MA 02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Gerard Zwart, Berdt van der Lingen, Tony Vroon, Mark Wormgoor\r
+# (c) 2005 Jacques Hylkema, Maikel Punie \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Een CA Certificaat met deze naam bestaat al.', \r
+'a connection with this common name already exists' => 'Een verbinding met deze "common name" bestaat al.', \r
+'a connection with this name already exists' => 'Een verbinding met deze naam bestaat al.', \r
+'access allowed' => 'Toegang toegestaan vanaf:', \r
+'access refused with this oinkcode' => 'Toegang geweigerd met deze Oink Code', \r
+'action' => 'Actie', \r
+'add' => 'Toevoegen', \r
+'add a host' => 'Machine toevoegen:', \r
+'add a new rule' => 'Voeg nieuwe regel toe:', \r
+'add device' => 'Apparaat toevoegen', \r
+'add network' => 'Netwerk toevoegen', \r
+'add new alias' => 'Voeg een nieuw alias toe:', \r
+'add new lease' => 'Voeg een nieuwe vaste lease toe', \r
+'add service' => 'Dienst toevoegen', \r
+'add xtaccess' => 'Voeg Externe Toegang toe', \r
+'added from dhcp lease list' => 'toegevoegd van de DHCP lease lijst', \r
+'admin user password has been changed' => 'Het admin wachtwoord is gewijzigd.', \r
+'administrator user password' => 'Admin wachtwoord:', \r
+'adsl settings' => 'ADSL instellingen', \r
+'advanced' => 'Geavanceerd', \r
+'again' => 'Opnieuw:', \r
+'alcatelusb help' => 'Om de Speedtouch USB modem te gebruiken, moet u de firmware naar uw IPCop machine uploaden.  Download alstublieft het <b>Firmware</b> package van speedtouch.com, unzip en upload het bestand dat voor uw modem van toepassing is: KQD6_3.xx voor Rev&lt;4 of ZZZL_3.xxx voor Rev=4 m.b.v. onderstaand formulier.', \r
+'alcatelusb upload' => 'Upload Speedtouch USB Firmware', \r
+'alias ip' => 'Alias IP', \r
+'aliases' => 'Aliasen', \r
+'aliases not active' => 'Aliasen zijn niet actief, tenzij uw RODE interface STATISCH is', \r
+'all' => 'alle', \r
+'all interfaces' => 'All interfasen', \r
+'all updates installed' => 'Alle updates geïnstalleerd', \r
+'alt dialup' => 'Inbel', \r
+'alt home' => 'Hoofdmenu', \r
+'alt information' => 'Informatie', \r
+'alt logs' => 'Logs', \r
+'alt services' => 'Diensten', \r
+'alt system' => 'Systeem', \r
+'alt vpn' => 'VPNs', \r
+'and' => 'en', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Pas Toe', \r
+'april' => 'April', \r
+'archive not exist' => 'Configuratie archief bestaat niet', \r
+'are you sure' => 'Weet u het zeker?', \r
+'arp table entries' => 'ARP tabel:', \r
+'august' => 'Augustus', \r
+'authentication' => 'Authenticatie:', \r
+'automatic' => 'Automatisch', \r
+'available updates' => 'Beschikbare updates:', \r
+'average' => 'Gemiddeld', \r
+'avoid dod' => 'Gebruik deze optie niet met Dail on Demand! Vooral gebruikt wanneer IPCop zich achter een router bevind. Uw RED IP moet binnen één van de 3 gereserveerde netwerken liggen. nl: 10/8, 172.16/12, 192.168/16', \r
+'back' => 'TERUG', \r
+'backup' => 'Backup', \r
+'backup config floppy' => 'Configuratie Backup - Floppy Disk', \r
+'backup configuration' => 'Backup Configuratie:', \r
+'backup sets' => 'Backup Sets', \r
+'backup to floppy' => 'Backup naar floppy', \r
+'backupprofile' => 'Wanneer het opnieuw verbinden mislukt, gebruik profiel', \r
+'bad characters in script field' => 'Ongeldige karakters in het script veld', \r
+'bad characters in the telephone number field' => 'Verkeerde karakters in het telefoon nummer veld.', \r
+'bad destination range' => 'Het bereik van Bestemmingspoorten heeft een eerste waarde die groter dan of gelijk is aan de tweede waarde.', \r
+'bad ignore filter' => 'Ongeldig negeer filter:', \r
+'bad return code' => 'Hulp Programma heeft een error code terug gegeven', \r
+'bad source range' => 'Het bereik van Bronpoorten heeft een eerste waarde die groter dan of gelijk is aan de tweede waarde.', \r
+'beep when ppp connects or disconnects' => 'Maak een geluid wanneer IPCop de verbinding maakt of verbreekt', \r
+'behind a proxy' => 'Achter een proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'BLAUW', \r
+'blue access' => 'Toegang tot Blauw', \r
+'blue interface' => 'Blauwe interface', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Broken pipe', \r
+'buffered memory' => 'Gebuffered Geheugen', \r
+'buffers' => 'Buffers', \r
+'bytes per second' => 'Bytes per Seconde', \r
+'ca certificate' => 'CA Certificaat', \r
+'ca name' => 'CA Naam', \r
+'cache management' => 'Cache beheer', \r
+'cache size' => 'Cache grootte (MB):', \r
+'cached' => 'gecached', \r
+'cached memory' => 'Gecached Geheugen', \r
+'cancel' => 'Afbreken', \r
+'cannot enable both nat traversal and compression' => 'Kan niet zowel NAT Traversal als Compressie aanzetten.', \r
+'cannot enable ntp without specifying primary' => 'Kan NTP niet activeren zonder een Primary te specificeren', \r
+'cannot specify secondary dns without specifying primary' => 'Kan geen secundaire dns ingeven zonder primaire dns in te geven.', \r
+'cannot specify secondary ntp without specifying primary' => 'Kan geen Secondaire server ingeven zonder Primaire server in te geven', \r
+'cannot specify secondary wins without specifying primary' => 'Kan geen secondaire WINS opgeven zonder een primaire op te geven.', \r
+'cant change certificates' => 'Kan certificaten niet wijzigen.', \r
+'cant enable xtaccess' => 'Omdat de bijbehorende poort forwarding regel uitgeschakeld is, kunt u externe toegang voor deze regel niet inschakelen.', \r
+'cant start openssl' => 'Kan OpenSSL niet starten.', \r
+'caps all' => 'ALLES', \r
+'capsclosed' => 'GESLOTEN', \r
+'capsopen' => 'OPEN', \r
+'capswarning' => 'WAARSCHUWING', \r
+'cert' => 'Certificaat', \r
+'certificate' => 'Certificaat', \r
+'certificate authorities' => 'Certificaat Autoriteiten', \r
+'certificate does not have a valid ca associated with it' => 'Certificaat heeft geen geldig bijbehorend CA certificaat.', \r
+'certificate file move failed' => 'Kon certificaatbestand niet verplaatsen', \r
+'cfg restart' => 'Een herstart is aan te bevelen na het terugzetten van een configuratie archief.', \r
+'chain' => 'Ketting', \r
+'change passwords' => 'Verander wachtwoorden', \r
+'check vpn lr' => 'Controleer', \r
+'city' => 'Stad', \r
+'clear cache' => 'Maak cache leeg', \r
+'clenabled' => 'Lever tijd aan het lokale netwerk', \r
+'click to disable' => 'Aan (klik om uit te zetten)', \r
+'click to enable' => 'Uit (klik om aan te zetten)', \r
+'clock has not been synchronized' => 'Klok is niet gesynchroniseerd', \r
+'clock last synchronized at' => 'Klok is het laatst gesynchroniseerd om', \r
+'common name' => 'Common Name', \r
+'compression' => 'Compressie:', \r
+'computer to modem rate' => 'Computer naar modem snelheid:', \r
+'concentrator name' => 'Concentrator naam:', \r
+'confirmation' => 'Bevestiging', \r
+'connect on ipcop restart' => 'Verbinden na opnieuw starten IPCop:', \r
+'connect the modem' => 'Verbind het modem', \r
+'connect timeout' => 'Verbindings timeout:', \r
+'connected' => 'Verbonden', \r
+'connecting' => 'Aan het verbinden...', \r
+'connection' => 'Connectie', \r
+'connection debugging' => 'Verbinding debuggen', \r
+'connection status and controlc' => 'Verbindingsstatus en -controle:', \r
+'connection tracking' => 'IPTables Connecties Volgen', \r
+'connection type' => 'Verbindingstype', \r
+'connection type is invalid' => 'Verbindingstype is ongeldig.', \r
+'connections' => 'Verbindingen', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'verbindingen hangen aan deze CA.  Bij het verwijderen van deze CA zullen deze verbinding ook verwijderd worden.', \r
+'could not be opened' => 'kon niet worden geopend', \r
+'could not connect to' => 'Kan geen verbinding maken met', \r
+'could not connect to www ipcop org' => 'Kon geen verbinding maken met www.ipcop.org', \r
+'could not create directory' => 'Kon geen directory te maken.', \r
+'could not download latest patch list' => 'Kon de meest recente patchlijst niet downloaden (geen verbinding).', \r
+'could not download latest updates' => 'Kon de laatste updates niet downloaden.', \r
+'could not download the available updates list' => 'Kon de lijst met beschikbare updates list niet downloaden.', \r
+'could not open available updates file' => 'Kon het updatesbestand niet openen..', \r
+'could not open installed updates file' => 'Kon het bestand met geinstalleerde updates niet openen', \r
+'could not open update information file' => 'Informatiebestand kon niet worden geupdate. Het bestand is corrupt.', \r
+'could not retrieve common name from certificate' => 'Kon de "common name" niet uit het certificaat halen.', \r
+'country' => 'Land', \r
+'cpu usage per' => 'CPU gebruik per', \r
+'create' => 'Aanmaken', \r
+'credits' => 'Waardering', \r
+'cron server' => 'CRON server', \r
+'current' => 'Huidig', \r
+'current aliases' => 'Huidige aliasen:', \r
+'current dhcp leases on blue' => 'DHCP leases voor BLAUW', \r
+'current dynamic leases' => 'Huidige dynamische leases', \r
+'current fixed leases' => 'Huidige vaste leases', \r
+'current hosts' => 'Huidige machines:', \r
+'current profile' => 'Huidig profiel:', \r
+'current rules' => 'Huidige regels:', \r
+'custom networks' => 'Eigen netwerken', \r
+'custom services' => 'Eigen services', \r
+'dat without key' => 'Een geëncrypt archief kan niet zonder de sleutel gerestored worden.', \r
+'date' => 'Datum', \r
+'date not in logs' => 'Geen (of slechts gedeeltelijke) logs bestaan voor de opgevraagde dag', \r
+'day' => 'Dag', \r
+'day after' => 'Dag later', \r
+'day before' => 'Dag eerder', \r
+'days' => 'dagen', \r
+'ddns hostname added' => 'Dynamische DNS machinenaam toegevoegd', \r
+'ddns hostname modified' => 'Dynamische DNS host naam gewijzigd', \r
+'ddns hostname removed' => 'Dynamische DNS machinenaam verwijderd', \r
+'ddns minimize updates' => 'Geminimalizeerde updates: voor een update, word de DNS IP van een hostname "[host.]domain" vergeleken met het RED IP.', \r
+'ddns noip prefix' => 'Om de no-ip groep mode te gebruiken, gebruik de hostname prefix <b>%</b>', \r
+'december' => 'December', \r
+'def lease time' => 'Standaard Lease Tijd', \r
+'default lease time' => 'Standaard lease tijd (min):', \r
+'default networks' => 'Standaard netwerken', \r
+'default renewal time' => 'Standaard Hernieuwtijd', \r
+'default services' => 'Standaard services', \r
+'delete' => 'Verwijder', \r
+'demon login script' => 'Demon login script', \r
+'description' => 'Omschrijving', \r
+'dest ip and port' => 'Best. IP:Poort', \r
+'destination' => 'Bestemming', \r
+'destination ip' => 'Doel IP', \r
+'destination ip bad' => 'Ongeldig doel ip adres', \r
+'destination ip or net' => 'Aankomsts IP of NET', \r
+'destination net' => 'Bestemmings Netwerk', \r
+'destination port' => 'Doel poort', \r
+'destination port numbers' => 'De Bestemmingspoort moet een geldige poort of bereik van poorten zijn.', \r
+'destination port overlaps' => 'De Bestemmingspoort overlapt met een bestaand bereik van poorten.', \r
+'detail level' => 'Detail niveau', \r
+'device' => 'Apparaat', \r
+'devices on blue' => 'Toestellen op BLAUW', \r
+'dhcp advopt add' => 'Voeg DHCP optie toe', \r
+'dhcp advopt added' => 'DHCP optie toegevoegd', \r
+'dhcp advopt blank value' => 'Een DHCP optie kan niet leeg zijn', \r
+'dhcp advopt custom definition' => 'Uw aangepaste optie definitie', \r
+'dhcp advopt definition' => 'Definities', \r
+'dhcp advopt definition exists' => 'Gedefinieerde optie bestaat al. U kunt het enkel bewerken of verwijderen.', \r
+'dhcp advopt edit' => 'Bewerk een DHCP optie', \r
+'dhcp advopt help' => 'Opties lijst', \r
+'dhcp advopt list' => 'Extra DHCP opties', \r
+'dhcp advopt modified' => 'DHCP optie gewijzigd', \r
+'dhcp advopt name' => 'Optie naam', \r
+'dhcp advopt removed' => 'DHCP optie verwijderd', \r
+'dhcp advopt scope' => 'Opties', \r
+'dhcp advopt scope global' => 'Globaal', \r
+'dhcp advopt scope help' => 'Globaal bereik of gelimiteerd bereik van de te controleren interfaces', \r
+'dhcp advopt unknown' => 'DHCP optie naam niet herkend', \r
+'dhcp advopt value' => 'Optie waarde', \r
+'dhcp allow bootp' => 'Laat bootp clients toe', \r
+'dhcp configuration' => 'DHCP configuratie', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP server', \r
+'dhcp server disabled' => 'DHCP server gedeactiveerd.  Gestopt.', \r
+'dhcp server disabled on blue interface' => 'DHCP server uitgezet op de BLAUWE interface', \r
+'dhcp server enabled' => 'DHCP server geactiveerd.  Bezig met herstarten.', \r
+'dhcp server enabled on blue interface' => 'DHCP server aangezet op de BLAUWE interface', \r
+'dial' => 'Verbind', \r
+'dial user password' => 'Inbel wachtwoord:', \r
+'dial user password has been changed' => 'Het wachtwoord van de dial gebruiker is gewijzigd.', \r
+'dialing mode' => 'Inbelmodus:', \r
+'dialup settings' => 'Inbel Instellingen', \r
+'disk access per' => 'Disk Toegang per', \r
+'disk usage' => 'Gebruik harde schijf:', \r
+'display' => 'Laat Zien', \r
+'display hostname in window title' => 'Laat machinenaam zien in de window titel', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'DMZ pinhole configuratie', \r
+'dmz pinhole rule added' => 'DMZ pinhole regel toegevoegd; bezig met herstarten van DMZ opening', \r
+'dmz pinhole rule removed' => 'DMZ pinhole regel verwijderd; bezig met herstarten van DMZ opening', \r
+'dmzpinholes for same net not necessary' => 'DMZ pinholes zijn niet nodig voor hetzelfde netwerk.  Selecteer een ander bron- of bestemmingsnetwerk.', \r
+'dns check failed' => 'DNS controle mislukt', \r
+'dns proxy server' => 'DNS proxy server', \r
+'do not log this port list' => 'Deze poorten worden niet gelogd', \r
+'dod' => 'Inbellen op verzoek', \r
+'dod for dns' => 'Inbellen op verzoek voor DNS:', \r
+'dod not compatible with ddns' => 'Dail on demand werkt niet bij dynamische DNS service', \r
+'dod waiting' => 'Dial on Demand wacht', \r
+'domain' => 'Domein', \r
+'domain name' => 'Domeinnaam', \r
+'domain name suffix' => 'Domein naam suffix:', \r
+'domain not set' => 'Domein niet ingesteld.', \r
+'downlink speed' => 'Download snelheid (kbit/sec)', \r
+'download ca certificate' => 'Download CA Certificaat', \r
+'download certificate' => 'Download Certificaat', \r
+'download host certificate' => 'Download Machine Certificaat', \r
+'download new ruleset' => 'Download nieuwe set regels', \r
+'download pkcs12 file' => 'Download PKCS12 Bestand', \r
+'download root certificate' => 'Download Root Certificaat', \r
+'dpd action' => 'actie bij Dead Peer detectie', \r
+'driver' => 'Driver', \r
+'dst port' => 'Bestemming Poort', \r
+'dstprt range overlaps' => 'Het bereik van Bestemmingspoorten overlapt met een bestaande poort.', \r
+'dstprt within existing' => 'Bestemmingspoort ligt binnen een al bestaand bereik van poorten.', \r
+'duplicate ip' => 'Dubbel IP adres ingegeven', \r
+'duplicate ip bold' => 'Dezelfde Ip adressen zijn <b>vet</b>', \r
+'duplicate mac' => 'Dubbele MAC adressen ingegeven', \r
+'duplicate name' => 'Deze naam is al in gebruik, kies een andere.', \r
+'dyn dns source choice' => 'Dynamischie DNS providers zullen een IP-adres onvangen van IPCop', \r
+'dynamic dns' => 'Dynamische DNS', \r
+'dynamic dns client' => 'Dynamische DNS Client', \r
+'e-mail address too long' => 'E-mail adres is te lang; deze mag niet langer dan 40 karakters zijn.', \r
+'eciadsl help' => 'Indien u de ECI ADSL modem wil gebruiken moet u de firmware uploaden naar uw IPCop machine. Download alstublieft de tarball van ECIADSL en upload het bestand <b>synch.bin</b> vervolgens m.b.v. onderstaand formulier.', \r
+'eciadsl upload' => 'Upload ECI ADSL Synch.bin Bestand', \r
+'edit' => 'Bewerken', \r
+'edit a rule' => 'Bewerk een bestaande regel:', \r
+'edit advanced settings when done' => 'Bewerk de geavanceerde instellingen hierna.', \r
+'edit an existing alias' => 'Bewerk een bestaand alias', \r
+'edit an existing host' => 'Bewerk een bestaande machine', \r
+'edit an existing lease' => 'Bewerk een bestaande lease', \r
+'edit device' => 'Wijzig apparaat', \r
+'edit hosts' => 'Bewerk Machines', \r
+'edit network' => 'Bewerk netwerk', \r
+'edit service' => 'Bewerk service', \r
+'empty' => 'Leeg', \r
+'enable ignore filter' => 'Inschakelen negeer filter', \r
+'enable javascript' => 'Zet Javascript Aan', \r
+'enable wildcards' => 'Wildcards inschakelen:', \r
+'enabled' => 'Ingeschakeld:', \r
+'enabled on' => 'Aan op', \r
+'enabledtitle' => 'Ingeschakeld', \r
+'encapsulation' => 'Encapsulatie', \r
+'encrypted' => 'Versleuteld', \r
+'end address' => 'Eind address:', \r
+'err bk 1' => 'Fout bij het aanmaken van een archief', \r
+'err bk 2 key' => 'Fout bij het aanmaken van een sleutelbestand', \r
+'err bk 3 tar' => 'Fout bij het toevoegen van bestanden aan archief', \r
+'err bk 4 gz' => 'Fout bij het inpakken van het archief', \r
+'err bk 5 encrypt' => 'Fout bij het versleutelen van het archief', \r
+'err rs 1' => 'Fout bij het terugzetten van het archief', \r
+'err rs 6 decrypt' => 'Fout bij het ontsleutelen van het archief', \r
+'err rs 7 untartst' => 'Fout ontsleuteld archief', \r
+'err rs 8 untar' => 'Fout bij het uitpakken van het archief', \r
+'error messages' => 'Foutmeldingen:', \r
+'esp encryption' => 'ESP Versleuteling:', \r
+'esp grouptype' => 'ESP Groepstype:', \r
+'esp integrity' => 'ESP Integriteit:', \r
+'esp keylife' => 'Levensduur ESP Sleutel:', \r
+'esp keylife should be between 1 and 24 hours' => 'Levensduur ESP sleutel moet tussen 1 en 24 uur zijn.', \r
+'every' => 'Iedere', \r
+'excluding buffers and cache' => '-/+ buffers/cache', \r
+'expected' => 'Verwacht', \r
+'expires' => 'Verloopt', \r
+'export' => 'Exporteer', \r
+'external access' => 'Externe toegang', \r
+'external access configuration' => 'Externe toegang configuratie', \r
+'external access rule added' => 'Externe toegangs regel toegevoegd; herstarten toegangs controle', \r
+'external access rule removed' => ' Externe toegangs regel verwijderd; herstarten toegangs controle', \r
+'external aliases configuration' => 'Externe aliasen configuratie', \r
+'february' => 'Februari', \r
+'fetch ip from' => 'Raad uw publiek ip adress met behulp van een externe server', \r
+'filename' => 'Bestandsnaam', \r
+'filesystem full' => 'Bestandssysteem vol', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Totaal aantal firewall hits voor', \r
+'firewall log' => 'Firewall log', \r
+'firewall log viewer' => 'Firewall Logs Bekijken', \r
+'firewall logs' => 'Firewall Logs', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Upload Firmware / Drivers', \r
+'fixed ip lease added' => 'Lease voor vast IP toegevoegd', \r
+'fixed ip lease modified' => 'Vast IP Lease aangepast', \r
+'fixed ip lease removed' => 'Lease voor vast IP verwijderd', \r
+'force update' => 'Update doordrukken', \r
+'forwarding rule added' => 'Forwarding regel toegevoegd; herstarten forwarder', \r
+'forwarding rule removed' => 'Forwarding regel verwijderd; herstarten forwarder', \r
+'forwarding rule updated' => 'Forwarding regel bijgewerkt; forwarder wordt herstart', \r
+'free' => 'vrij', \r
+'free memory' => 'Vrij Geheugen', \r
+'free swap' => 'Vrije Swap', \r
+'friday' => 'vrijdag', \r
+'fritzdsl help' => 'Om één van de Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modems te gebruiken, moet u eerste een package uploaden naar uw IPCop box. Download the package die overeenstemt met uw IPCop firewall, en upload dan het volledige <b>fcdsl-(your_version).tgz</b> file gebruik makend van het beneden staande formulier.', \r
+'fritzdsl upload' => 'Upload Fritz!DSL Driver', \r
+'from' => 'Van', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Gateway', \r
+'gateway ip' => 'Gateway IP', \r
+'generate a certificate' => 'Genereer een certificaat:', \r
+'generate root/host certificates' => 'Geneer Root/Machine Certificaten', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Het genereren van de root en machine certificaten kan lang duren.  Dit kan op wat oudere harware enkele minuten duren.  Even geduld a.u.b.', \r
+'global settings' => 'Globale instellingen', \r
+'graph' => 'Grafiek', \r
+'graph per' => 'Grafiek per', \r
+'green' => 'GROEN', \r
+'green interface' => 'Groene Interface', \r
+'gui settings' => 'GUI Instellingen', \r
+'gz with key' => 'Alleen een geëncrypt archief kan op deze machine teruggezet worden.', \r
+'hangup' => 'Verbreek verbinding', \r
+'hangup string' => 'Ophangen:', \r
+'high' => 'Hoog', \r
+'high memory usage' => 'Hoog geheugengebruik', \r
+'holdoff' => 'Wachttijd (in secondes)', \r
+'host' => 'Host', \r
+'host certificate' => 'Machine Certificaat', \r
+'host configuration' => 'Machine Configuratie', \r
+'host ip' => 'Machine IP adres', \r
+'host to net vpn' => 'Machine-naar-Net Virtual Private Netwerk (RoadWarrior)', \r
+'hostname' => 'Machinenaam', \r
+'hostname and domain already in use' => 'Machinenaam en domein reeds in gebruik.', \r
+'hostname cant be empty' => 'Machinenaam mag niet leeg zijn.', \r
+'hostname not set' => 'Machinenaam niet ingesteld.', \r
+'hosts config added' => 'Machine configuratie toegevoegd', \r
+'hosts config changed' => 'Machine configuratie aangepast', \r
+'hours' => 'uren', \r
+'hours2' => 'Uren', \r
+'ibod for dual isdn only' => 'iBOD kan alleen gebruikt worden in combinatie met Dubbel ISDN.', \r
+'icmp selected but no type' => 'ICMP geselecteerd als protocol, maar geen ICMP type gespecificeerd.', \r
+'icmp type' => 'ICMP Type', \r
+'id' => 'ID', \r
+'idle' => 'Ongebruikt', \r
+'idle cpu' => 'Ongebruikte CPU', \r
+'idle cpu usage' => 'Ongebruikte CPU', \r
+'idle timeout' => 'Buitengebruik timeout (minuten; 0 om uit te schakelen):', \r
+'idle timeout not set' => 'Verbinding buiten gebruik timeout niet ingesteld.', \r
+'ids log viewer' => 'IDS log bekijken', \r
+'ids logs' => 'IDS Logs', \r
+'ids rules license' => 'Om nieuwe Sourcefire VRT regels te downloaden, moet u registreren', \r
+'ids rules license2' => 'Keur de licentie goed, ontvang uw paswoord per email en maak verbinding met de website. Ga naar', \r
+'ids rules license3' => 'klik op de \'Get Code\' knop onderaan de pagina en kopieer dan de 40 karakters lange Oink code in het onderstaande veld.', \r
+'ids rules update' => 'Snort regels bijwerken', \r
+'iface' => 'Iface', \r
+'ignore filter' => 'Negeer filter', \r
+'ike encryption' => 'IKE Versleuteling:', \r
+'ike grouptype' => 'IKE Groepstype:', \r
+'ike integrity' => 'IKE Integriteit:', \r
+'ike lifetime' => 'IKE Levensduur:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE levensduur moet tussen de 1 en 8 uur liggen.', \r
+'import' => 'Importeer', \r
+'in' => 'In', \r
+'incoming traffic in bytes per second' => 'Inkomend Verkeer in Bytes per Seconde', \r
+'info' => 'Info', \r
+'init string' => 'Initialisatie:', \r
+'insert floppy' => 'Plaats een geformateerde diskette in de drive en klik <i>Backup naar floppy</i> om de systeemconfiguratie te backuppen.  Controleer de resultaten zorgvuldig om er zeker van te zijn dat de backup succesvol verlopen is.<p>', \r
+'install new update' => 'Installeer nieuwe update:', \r
+'installed' => 'Geinstalleerd', \r
+'installed updates' => 'Geinstalleerde updates:', \r
+'instant update' => 'Gelijk Bijwerken', \r
+'interface' => 'Interface', \r
+'interfaces' => 'Interfaces:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Inbraak Waarneming', \r
+'intrusion detection system' => 'Inbraak Waarnemingssysteem', \r
+'intrusion detection system log viewer' => 'Inbraak Waarnemingssysteem Logs Bekijken', \r
+'intrusion detection system2' => 'Inbraak Waarnemingssysteem:', \r
+'invalid broadcast ip' => 'Ongeldig Broadcast IP', \r
+'invalid cache size' => 'Ongeldige cache grootte.', \r
+'invalid characters found in pre-shared key' => 'Ongeldige karakters gevonden in vooraf-gedeelde sleutel.', \r
+'invalid date entered' => 'Ongeldige datum ingevoerd.', \r
+'invalid default lease time' => 'Ongeldige standaard lease tijd.', \r
+'invalid domain name' => 'Ongeldige domein naam.', \r
+'invalid downlink speed' => 'Ongeldige downloadsnelheid.', \r
+'invalid end address' => 'Ongeldig eind adres.', \r
+'invalid fixed ip address' => 'Ongeldig vast IP adres', \r
+'invalid fixed mac address' => 'Ongeldig vast MAC adres', \r
+'invalid hostname' => 'Ongeldige machinenaam.', \r
+'invalid input' => 'Ongeldige invoer', \r
+'invalid input for authentication method' => 'Ongeldige input voor authenticatie methode.', \r
+'invalid input for city' => 'Ongeldige input voor stad.', \r
+'invalid input for country' => 'Ongeldige input voor land.', \r
+'invalid input for department' => 'Ongeldige input voor afdeling.', \r
+'invalid input for e-mail address' => 'Ongeldige input voor e-mail adres.', \r
+'invalid input for esp keylife' => 'Ongeldige input voor ESP Sleutel levensduur', \r
+'invalid input for hostname' => 'Ongeldige input voor machinenaam.', \r
+'invalid input for ike lifetime' => 'Ongeldige input voor IKE levensduur', \r
+'invalid input for name' => 'Ongeldige input voor gebruikersnaam of systeemnaam', \r
+'invalid input for oink code' => 'Ongeldige invoer voor Oink code', \r
+'invalid input for organization' => 'Ongeldige input voor organisatie', \r
+'invalid input for remote host/ip' => 'Ongeldige input voor andere machine/ip.', \r
+'invalid input for state or province' => 'Ongeldige input voor staat of provincie.', \r
+'invalid ip' => 'Ongeldig IP Adres', \r
+'invalid keep time' => 'Bewaartijd moet een geldig nummer zijn', \r
+'invalid key' => 'Ongeldige sleutel.', \r
+'invalid loaded file' => 'Verkeerde file geladen', \r
+'invalid logserver address' => 'Ongeldig syslogd-server adres', \r
+'invalid max lease time' => 'Ongeldige maximale lease tijd.', \r
+'invalid maximum incoming size' => 'Ongeldige maximale inkomenend object grootte.', \r
+'invalid maximum object size' => 'Ongeldige maximale object grootte.', \r
+'invalid maximum outgoing size' => 'Ongeldige maximale uitgaand object grootte.', \r
+'invalid md5sum' => 'Ongeldige MD5Sum.', \r
+'invalid minimum object size' => 'Ongeldige minimale object grootte.', \r
+'invalid netmask' => 'Ongeldig netmask', \r
+'invalid port' => 'Ongeldige poort; moet een geldig poortnummer zijn.', \r
+'invalid port list' => 'Poort syntax is: poort[,poort]... waar poort in /etc/services moet staan of numeriek is', \r
+'invalid primary dns' => 'Ongeldige primaire DNS.', \r
+'invalid primary ntp' => 'Ongeldig adres Primaire NTP server', \r
+'invalid secondary dns' => 'Ongeldige secondaire DNS.', \r
+'invalid secondary ntp' => 'Ongeldig adres Secondaire NTP server', \r
+'invalid start address' => 'Ongeldig begin adres.', \r
+'invalid time entered' => 'Ongeldige tijd ingevoerd.', \r
+'invalid time period' => 'Ongeldige tijdsperiode', \r
+'invalid uplink speed' => 'Ongeldige upload snelheid.', \r
+'invalid upstream proxy username or password setting' => 'Ongeldig bovenliggende proxy gebruikersnaam of wachtwoord instelling', \r
+'invalid vpi vpci' => 'Ongeldige VPI/VPCI instellingen', \r
+'invalid wins address' => 'Ongeldig adres Wins Server.', \r
+'invert' => 'Omdraaien', \r
+'ip address' => 'IP Adres', \r
+'ip address in use' => 'IP adres al in gebruik', \r
+'ip address outside subnets' => 'IP adressen buiten het locale subnet', \r
+'ip alias added' => 'Extern IP alias toegevoegd', \r
+'ip alias changed' => 'Extern IP alias gewijzigd', \r
+'ip alias removed' => 'Extern IP alias verwijderd', \r
+'ip info' => 'IP Informatie', \r
+'ipcop has now rebooted' => 'IPCop is opnieuw opgestart.', \r
+'ipcop has now shutdown' => 'IPCop is afgesloten.', \r
+'ipcop side' => 'IPCop zijde:', \r
+'ipcop side is invalid' => 'IPCop zijde is ongeldig.', \r
+'ipcops hostname' => 'IPCops Machinenaam', \r
+'ipinfo' => 'IP info', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Additionele ISDN instellingen:', \r
+'isdn1' => 'Enkel ISDN', \r
+'isdn2' => 'Dubbel ISDN', \r
+'january' => 'Januari', \r
+'javascript menu error1' => 'Als de menus niet werken, zet Javascript uit op de ', \r
+'javascript menu error2' => 'pagina.', \r
+'july' => 'Juli', \r
+'june' => 'Juni', \r
+'kernel' => 'Kernel', \r
+'kernel logging server' => 'Kernel logging server', \r
+'kernel version' => 'Kernel versie:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Selecteer de taal die u IPCop wilt laten gebruiken:', \r
+'lease expires' => 'Lease verloopt', \r
+'legend' => 'Legenda', \r
+'line' => 'Lijn', \r
+'loaded modules' => 'Geladen modules:', \r
+'local ntp server specified but not enabled' => 'Locale NTP server gespecificeerd maar niet ingeschakeld', \r
+'local subnet' => 'Lokaal subnet:', \r
+'local subnet is invalid' => 'Lokaal subnet is ongeldig.', \r
+'local vpn hostname/ip' => 'Lokaal VPN Machinenaam/IP', \r
+'log' => 'Log:', \r
+'log enabled' => 'Log Aan', \r
+'log lines per page' => 'Regels per pagina', \r
+'log server address' => 'Syslog machine', \r
+'log settings' => 'Log Instellingen', \r
+'log summaries' => 'Log samenvattingen', \r
+'log summary' => 'Log samenvatting', \r
+'log viewer' => 'Log bekijken', \r
+'log viewing options' => 'Opties voor log bekijken', \r
+'logging server' => 'Logging server', \r
+'loginlogout' => 'Inloggen/Uitloggen', \r
+'lookup failed' => 'Reverse lookup mislukt', \r
+'low' => 'Laag', \r
+'ls_dhcpd' => 'DHCP Server:', \r
+'ls_disk space' => 'Schijf ruimte:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP Server:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kernel en Firewall:', \r
+'ls_modprobe' => 'Module lader:', \r
+'ls_pam_unix' => 'Lokale gebruikerslogins:', \r
+'ls_sshd' => 'Remote gebruikerslogins:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'MAC Adres', \r
+'mac address in use' => 'MAC adres al in gebruik', \r
+'main page' => 'Hoofd pagina', \r
+'manual' => 'Handmatig', \r
+'manual control and status' => 'Handmatig beheer en status:', \r
+'manually' => 'Handmatig', \r
+'march' => 'Maart', \r
+'marked' => 'Gemarkeerd', \r
+'max incoming size' => 'Max inkomend grootte (KB):', \r
+'max lease time' => 'Maximum lease tijd (min):', \r
+'max outgoing size' => 'Max uitgaand grootte (KB):', \r
+'max renewal time' => 'Maximale Vernieuwtijd', \r
+'max retries not set' => 'Max opnieuw proberen niet ingesteld.', \r
+'max size' => 'Max object grootte (KB):', \r
+'maximal' => 'Maximaal', \r
+'maximum retries' => 'Maximaal aantal pogingen:', \r
+'may' => 'Mei', \r
+'medium' => 'Middel', \r
+'memory' => 'Geheugen:', \r
+'memory usage per' => 'Geheugen Gebruik per', \r
+'method' => 'Methode:', \r
+'min size' => 'Min object grootte (KB):', \r
+'minutes' => 'Minuten', \r
+'missing dat' => 'Versleuteld archief niet gevonden', \r
+'missing gz' => 'Onversleuteld archief niet gevonden', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Modem configuratie', \r
+'modem on com1' => 'Modem aan COM1', \r
+'modem on com2' => 'Modem aan COM2', \r
+'modem on com3' => 'Modem aan COM3', \r
+'modem on com4' => 'Modem aan COM4', \r
+'modem on com5' => 'Modem op COM5', \r
+'modem settings have errors' => 'Modem instellingen bevatten fouten', \r
+'modem speaker on' => 'Modem luidspreker aan:', \r
+'modulation' => 'Modulatie', \r
+'monday' => 'maandag', \r
+'month' => 'Maand', \r
+'months' => 'maanden', \r
+'mounted on' => 'Gemount op', \r
+'name' => 'Naam', \r
+'name is invalid' => 'Naam is ongeldig', \r
+'name must only contain characters' => 'Naam mag alleen karakters bevatten.', \r
+'name too long' => 'Gebruikersnaam of machinenaam is te lang', \r
+'nat-traversal' => 'NAT Traversal:', \r
+'net' => 'Net', \r
+'net to net vpn' => 'Net-naar-Net Virtual Private Network', \r
+'netmask' => 'Netmask', \r
+'network' => 'Netwerk', \r
+'network added' => 'Eigen Netwerk toegevoegd', \r
+'network configuration' => 'Netwerkconfiguratie', \r
+'network removed' => 'Eigen Netwerk verwijderd', \r
+'network status information' => 'Netwerk Status Informatie', \r
+'network time' => 'Gebruik een Netwerk Tijdsserver:', \r
+'network time from' => 'Verkrijg de tijd van een netwerk tijd server', \r
+'network traffic graphs' => 'Netwerkverkeer grafieken', \r
+'network updated' => 'Eigen Netwerk bijgewerkt', \r
+'networks settings' => 'Firewall - Netwerk instellingen', \r
+'new optionsfw later' => 'Uw aanpassingen worden geactiveerd bij de volgende restart', \r
+'new optionsfw must boot' => 'U moet IPCop herstarten', \r
+'newer' => 'Nieuwer', \r
+'next address' => 'Volgend Adres', \r
+'no' => 'Nee', \r
+'no alcatelusb firmware' => 'Geen Alcatel USB firmware. Upload alstublieft.', \r
+'no cfg upload' => 'Geen data geupload', \r
+'no dhcp lease' => 'Het is niet gelukt een DHCP lease te krijgen.', \r
+'no eciadsl synch.bin file' => 'Geen ECI ADSL synch.bin bestand. Upload alstublieft.', \r
+'no fritzdsl driver' => 'Geen Fritz!DSL driver.  Upload a.u.b.', \r
+'no information available' => 'Geen informatie aanwezig.', \r
+'no modem selected' => 'Geen modem geselecteerd', \r
+'no set selected' => 'Geen set geselecteerd', \r
+'no time limit' => 'Geen tijd limiet', \r
+'none found' => 'geen gevonden', \r
+'nonetworkname' => 'Geen Netwerknaam ingevoerd', \r
+'noservicename' => 'Geen Servicenaam ingevoerd', \r
+'not a valid ca certificate' => 'Geen geldig CA certificaat.', \r
+'not enough disk space' => 'Niet genoeg schijf ruimte', \r
+'not present' => '<b>Niet</b> aanwezig', \r
+'not running' => 'draait niet', \r
+'november' => 'November', \r
+'ntp configuration' => 'NTP configuratie', \r
+'ntp must be enabled to have clients' => 'NTP moet aan staan om clients te hebben.', \r
+'ntp server' => 'NTP Server', \r
+'ntp syncro disabled' => 'NTP synchronisatie uitgezet', \r
+'ntp syncro enabled' => 'NTP synchronisatie aangezet', \r
+'ntpd restarted' => 'ntpd herstart', \r
+'number' => 'Nummer:', \r
+'october' => 'Oktober', \r
+'older' => 'Ouder', \r
+'online help en' => 'Online help (Engels)', \r
+'only digits allowed in holdoff field' => 'Alleen cijfers toegestaan in het wachttijd veld', \r
+'only digits allowed in max retries field' => 'Alleen cijfers toegestaan in het opnieuw proberen veld.', \r
+'only digits allowed in the idle timeout' => 'Alleen cijfers toegestaan in Timeout veld.', \r
+'only red' => 'Alleen RED', \r
+'open to all' => 'Forceer externe toegang voor ALLES', \r
+'openssl produced an error' => 'OpenSSL gaf een fout', \r
+'options' => 'Opties', \r
+'options fw' => 'Firewall opties', \r
+'optionsfw portlist hint' => 'De lijst met poorten moeten door een koma gesplitst worden (bv 137,138). U kan maximaal 15 poorten per protocol definiëren.', \r
+'optionsfw warning' => 'Deze opties worden toegepast bij de restart van de firewall', \r
+'orange' => 'ORANJE', \r
+'organization cant be empty' => 'Organisatie mag niet leeg zijn.', \r
+'organization name' => 'Organisatienaam', \r
+'organization too long' => 'Organisatie is te lang; deze mag niet meer dan 60 karakters hebben.', \r
+'original' => 'Origineel', \r
+'other countries' => 'Andere landen', \r
+'other login script' => 'Ander login script', \r
+'out' => 'Uit', \r
+'outgoing traffic in bytes per second' => 'Uitgaand Verkeer in Bytes per Seconde', \r
+'package failed to install' => 'Pakket kon niet geïnstalleerd worden.', \r
+'pap or chap' => 'PAP of CHAP', \r
+'password' => 'Wachtwoord:', \r
+'password contains illegal characters' => 'Wachtwoord bevat onbruikbare tekens.', \r
+'password not set' => 'Wachtwoord niet ingesteld.', \r
+'password too short' => 'Wachtwoord is te kort.', \r
+'passwords do not match' => 'Wachtwoorden komen niet overeen.', \r
+'passwords must be at least 6 characters in length' => 'Wachtwoorden moeten minstens 6 karakters lang zijn', \r
+'percentage' => 'Percentage', \r
+'persistent' => 'Altijd verbonden', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Fase1 Groep', \r
+'phonebook entry' => 'Telefoonboek regel:', \r
+'ping disabled' => 'Disable ping', \r
+'pkcs12 file password' => 'PKCS12 Bestandswachtwoord', \r
+'port' => 'poort', \r
+'port forwarding configuration' => 'Poort forwarding configuratie', \r
+'ports' => 'Poorten', \r
+'pots' => 'Analoge telefoonlijn', \r
+'ppp setup' => 'PPP setup', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Toevoegingen aan PPPoE instellingen:', \r
+'pptp settings' => 'Toevoegingen aan PPTP instellingen:', \r
+'pre-shared key is too short' => 'Vooraf-gedeelde sleutel is te kort.', \r
+'present' => 'Aanwezig', \r
+'primary dns' => 'Primaire DNS:', \r
+'primary ntp server' => 'Primaire NTP Server', \r
+'primary wins server address' => 'Adres primaire WINS Server', \r
+'priority' => 'Prioriteit', \r
+'profile' => 'Profiel', \r
+'profile deleted' => 'Profiel verwijderd: ', \r
+'profile has errors' => 'Profiel bevat fouten', \r
+'profile made current' => 'Aktief gemaakte profiel: ', \r
+'profile name' => 'Profiel naam:', \r
+'profile name not given' => 'Profiel naam niet opgegeven.', \r
+'profile saved' => 'Profiel opgeslagen: ', \r
+'profiles' => 'Profielen:', \r
+'proto' => 'Proto', \r
+'protocol' => 'Protocol', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Grafieken proxy gebruik', \r
+'proxy log viewer' => 'Proxy log bekijker', \r
+'proxy logs' => 'Proxy Logs', \r
+'proxy port' => 'Proxy Poort', \r
+'psk' => 'PSK', \r
+'pulse' => 'Puls', \r
+'pulse dial' => 'Puls keuze:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Gelezen Sectoren', \r
+'reboot' => 'Start opnieuw op', \r
+'reboot schedule' => 'Plan de IPCop reboots', \r
+'rebooting' => 'Opnieuw aan het opstarten', \r
+'rebooting ipcop' => 'IPCop opnieuw aan het opstarten', \r
+'reconnection' => 'Herverbinden', \r
+'references' => 'Referenties', \r
+'refresh' => 'Vernieuwen', \r
+'refresh index page while connected' => 'Vernieuw index.cgi pagina terwijl U bent verbonden', \r
+'refresh update list' => 'Ververs update lijst', \r
+'registered user rules' => 'Sourcefire VRT regels voor registreerde gebruikers', \r
+'released' => 'Uitgegeven', \r
+'remark' => 'Opmerking', \r
+'remark title' => 'Opmerking:', \r
+'remote access' => 'Externe toegang', \r
+'remote host/ip' => 'Andere Machine/IP', \r
+'remote logging' => 'Loggen op afstand', \r
+'remote subnet' => 'Ander subnet:', \r
+'remote subnet is invalid' => 'Ander subnet is ongeldig.', \r
+'remove' => 'Verwijder', \r
+'remove ca certificate' => 'Verwijder CA Certificaat', \r
+'reserved dst port' => 'Bestemmingspoort is gereserveerd voor gebruik door IPCop:', \r
+'reserved src port' => 'Bronpoort is gereserveerd voor gebruik door IPCop:', \r
+'reset' => 'Herstel', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Het resetten van de VPN configuratie zal het root CA, het machine certificaat en alle certificaat-gebaseerde verbindingen verwijderen.', \r
+'restart' => 'Herstarten', \r
+'restore' => 'Terugzetten', \r
+'restore defaults' => 'Herstel standaard waarden', \r
+'restore hardware settings' => 'Herstel hardware instellingen', \r
+'reverse sort' => 'Sorteer in omgekeerde chronologische volgorde', \r
+'root certificate' => 'Root Certificaat', \r
+'root path' => 'Root Pad', \r
+'router ip' => 'IP Adres Router:', \r
+'routing table entries' => 'Routeer tabel regels:', \r
+'rsvd dst port overlap' => 'Het bereik van Bestemmingspoorten overlapt met een gereserveerde poort voor IPCop:', \r
+'rsvd src port overlap' => 'Het bereik van Bronpoorten overlapt met een gereserveerde poort voor IPCop:', \r
+'rules already up to date' => 'Regels zijn al up to date', \r
+'running' => 'ACTIEF', \r
+'saturday' => 'zaterdag', \r
+'save' => 'Opslaan', \r
+'save error' => 'Kon configuratie archiefbestand niet opslaan', \r
+'script name' => 'Script naam:', \r
+'secondary dns' => 'Secondaire DNS:', \r
+'secondary ntp server' => 'Secondaire NTP Server', \r
+'secondary wins server address' => 'Adres Secondaire WINS Server', \r
+'seconds' => 'Sec', \r
+'section' => 'Sectie:', \r
+'sectors read from disk per second' => 'Van disk gelezen sectoren per seconde', \r
+'sectors written to disk per second' => 'Naar disk geschreven sectoren per seconde', \r
+'secure shell server' => 'Secure shell server', \r
+'select' => 'Selecteer', \r
+'select dest net' => 'Selecteer een bestemmings netwerk.', \r
+'select source net' => 'Selecteer een source netwerk.  Als u geen Oranbje of Blauw netwerk geconfigureerd hebt, dan hebt u geen DMZ Pinholes nodig.', \r
+'send cr' => 'ISP verlangt Carriage Return:', \r
+'september' => 'September', \r
+'serial' => 'Serieel', \r
+'service' => 'Service', \r
+'service added' => 'Eigen Netwerk Service toegevoegd', \r
+'service name' => 'Service naam:', \r
+'service removed' => 'Eigen Netwerk Service verwijderd', \r
+'service updated' => 'Eigen Netwerk Service bijgewerkt', \r
+'servicename' => 'Service Naam', \r
+'services' => 'Services:', \r
+'services settings' => 'Firewall - Services instellingen', \r
+'set time now' => 'Zet Tijd Nu', \r
+'set time now help' => 'Om een synchronisatie te starten, druk op <i>Zet Tijd Nu</i> button. Merk wel op, dat dit tot fijf minuten kan duren voor de synchronisatie optreed.', \r
+'settings' => 'Instellingen', \r
+'shaping add options' => 'Voeg service toe', \r
+'shaping list options' => 'Verkeer regelen services', \r
+'shared' => 'gedeeld', \r
+'shared memory' => 'Gedeeld Geheugen', \r
+'show ca certificate' => 'Laat CA Certificaat zien', \r
+'show certificate' => 'Laat Certificaat zien', \r
+'show host certificate' => 'Laat Machine Certificaat zien', \r
+'show root certificate' => 'Laat Root Certificaat zien', \r
+'shutdown' => 'Afsluiten', \r
+'shutdown control' => 'Afsluit beheer', \r
+'shutdown2' => 'Afsluiten:', \r
+'shutting down' => 'Aan het afsluiten', \r
+'shutting down ipcop' => 'IPCop aan het afsluiten', \r
+'size' => 'Grootte', \r
+'snort hits' => 'Totaal aantal regels met Indringers dat voldoet aan de gestelde criteria voor', \r
+'sort ascending' => 'Sorteer Oplopend', \r
+'sort descending' => 'Sorteer Aflopend', \r
+'sound' => 'Geluid', \r
+'source' => 'Bron', \r
+'source ip' => 'Bron IP', \r
+'source ip and port' => 'Bron IP:Poort', \r
+'source ip bad' => 'Geen geldig IP adres of netwerk adres.', \r
+'source ip in use' => 'Bron IP al in gebruik:', \r
+'source ip or net' => 'Start IP of Net', \r
+'source net' => 'Origine Net', \r
+'source network' => 'Bron IP, of netwerk (leeg voor "ALLES"):', \r
+'source port' => 'Bron poort', \r
+'source port in use' => 'Bron poort in gebruik:', \r
+'source port numbers' => 'De Bronpoort moet een geldige poort of bereik van poorten zijn.', \r
+'source port overlaps' => 'De Bronpoort overlapt met een bestaand bereik van poorten.', \r
+'speaker off' => 'Luidspreker uit:', \r
+'speaker on' => 'Luidspreker aan:', \r
+'src port' => 'Bron Poort', \r
+'srcprt range overlaps' => 'Het bereik van Bronpoorten overlapt met een bestaande poort.', \r
+'srcprt within existing' => 'Bronpoort ligt binnen een al bestaand bereik van poorten.', \r
+'ssdmz pinholes' => 'DMZ Openingen', \r
+'ssh access' => 'SSH Toegang', \r
+'ssh fingerprint' => 'Vingerafdruk', \r
+'ssh host keys' => 'SSH Machine Sleutels', \r
+'ssh is disabled' => 'SSH is uitgeschakeld.  Aan het stoppen.', \r
+'ssh is enabled' => 'SSH is ingeschakeld.  Opnieuw aan het starten.', \r
+'ssh key' => 'Sleutel', \r
+'ssh key size' => 'Grootte (bits)', \r
+'ssh keys' => 'Sta authenticatie op basis van publieke sleutel toe', \r
+'ssh no auth' => 'U hebt geen enkele van de authenticatie methodes geselecteerd; u kunt niet meer inloggen', \r
+'ssh passwords' => 'Sta authenticatie op basis van wachtwoord toe', \r
+'ssh portfw' => 'Sta TCP Forwarding toe', \r
+'ssh1 disabled' => 'SSHv1 staat uit, een versie 2 client is noodzakelijk.', \r
+'ssh1 enabled' => 'SSHv1 staat aan, oudere clients worden ondersteund.', \r
+'ssh1 support' => 'Ondersteun SSH protocol versie 1 (alleen noodzakelijk voor oudere clients)', \r
+'ssnetwork status' => 'Netwerk Status', \r
+'sspasswords' => 'Wachtwoorden', \r
+'ssport forwarding' => 'Poort Forwarding', \r
+'ssproxy graphs' => 'Proxy Grafieken', \r
+'sssystem status' => 'Systeem Status', \r
+'sstraffic graphs' => 'Verkeers Grafieken', \r
+'standard login script' => 'Standaard inlog script', \r
+'start address' => 'Begin adres:', \r
+'state or province' => 'Staat of Provincie', \r
+'static ip' => 'Vast IP', \r
+'status' => 'Status', \r
+'status information' => 'Status informatie', \r
+'stopped' => 'GESTOPT', \r
+'subject' => 'Onderwerp', \r
+'subnet is invalid' => 'Netmask is ongeldig', \r
+'subscripted user rules' => 'Lid van de Sourcefire VRT', \r
+'successfully refreshed updates list' => 'Updates list succesvol ververst.', \r
+'summaries kept' => 'Bewaar samenvattingen', \r
+'sunday' => 'zondag', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Swap Gebruik per', \r
+'system cpu' => 'Systeem CPU', \r
+'system cpu usage' => 'Systeem CPU Gebruik', \r
+'system graphs' => 'Systeem Grafieken', \r
+'system log viewer' => 'Systeem Logs Bekijken', \r
+'system logs' => 'Systeem Logs', \r
+'system status information' => 'Systeem Status Informatie', \r
+'telephone not set' => 'Telefoon niet ingesteld.', \r
+'the following update was successfully installed' => 'Volgende update was succesvol geinstalleerd', \r
+'the statistics were last updated at' => 'De statistieken zijn het laatst bijgewerkt op', \r
+'there are updates' => 'Er zijn updates aanwezig voor uw systeem. Ga naar de "Updates" sectie voor meer informatie.', \r
+'there are updates available' => 'Er zijn updates beschikbaar voor uw systeem. Wij raden u aan om deze zo spoedig mogelijk te installeren.', \r
+'there was no file upload' => 'Er is geen bestand geupload.', \r
+'this feature has been sponsored by' => 'Deze feature is gesponsord door', \r
+'this field may be blank' => 'Dit veld mag leeg zijn.', \r
+'this is not a valid archive' => 'Dit is geen geldig archief.', \r
+'this is not an authorised update' => 'Dit is geen officiele update.', \r
+'this update is already installed' => 'Deze update is reeds geinstalleerd.', \r
+'thursday' => 'donderdag', \r
+'time' => 'Tijd', \r
+'time date manually reset' => 'Tijd/Datum handmatig gereset.', \r
+'time server' => 'Tijdsserver', \r
+'timeout must be a number' => 'Timeout moet een nummer zijn.', \r
+'title' => 'Titel', \r
+'to' => 'Aan', \r
+'to install an update' => 'Upload het .tgz.gpg bestand hieronder om een update te installeren:', \r
+'toggle enable disable' => 'Inschakelen of Uitschakelen', \r
+'tone' => 'Toon', \r
+'tone dial' => 'Toon keuze:', \r
+'total hits for log section' => 'Totaal aantal hits voor de Log sectie', \r
+'traffic on' => 'Verkeer op', \r
+'traffic shaping' => 'Verkeer Regelen', \r
+'traffic shaping settings' => 'Instellingen Verkeer Regelen', \r
+'transfer limits' => 'Overdrachtslimieten', \r
+'transparent on' => 'Transparant voor', \r
+'tuesday' => 'dinsdag', \r
+'type' => 'Type:', \r
+'unable to alter profiles while red is active' => 'Niet in staat profielen te wijzigen als rood actief is.', \r
+'unable to contact' => 'Kon niet verbinden met', \r
+'unencrypted' => 'Niet versleuteld', \r
+'unknown' => 'Onbekend', \r
+'unnamed' => 'Geen naam', \r
+'update' => 'Update', \r
+'update time' => 'Werk de tijd bij:', \r
+'update transcript' => 'Update transcript', \r
+'updates' => 'Updates', \r
+'updates installed' => 'Updates Geinstalleerd', \r
+'updates is old1' => 'Uw updates bestand is ', \r
+'updates is old2' => 'dagen oud. We raden u aan om het te updaten op de <b>Updates</b> pagina.', \r
+'uplink speed' => 'Upload snelheid (kbit/sec)', \r
+'upload' => 'Upload', \r
+'upload a certificate' => 'Upload een certificaat:', \r
+'upload a certificate request' => 'Upload een certificaatverzoek:', \r
+'upload ca certificate' => 'Upload CA Certificaat', \r
+'upload fcdsl.o' => 'Upload fcdsl.o', \r
+'upload file' => 'Upload bestand', \r
+'upload p12 file' => 'Upload PKCS12 bestand', \r
+'upload successful' => 'Upload succesvol.', \r
+'upload synch.bin' => 'Upload synch.bin', \r
+'upload update file' => 'Upload update bestand:', \r
+'upstream password' => 'Bovenliggend wachtwoord:', \r
+'upstream proxy host:port' => 'Bovenwaartse proxy (machine:poort)', \r
+'upstream username' => 'Bovenwaartse gebruikersnaam:', \r
+'uptime and users' => 'Uptime en gebruikers:', \r
+'usb modem on acm0' => 'USB Modem op ACM0', \r
+'usb modem on acm1' => 'USB Modem op ACM1', \r
+'usb modem on acm2' => 'USB Modem op ACM2', \r
+'usb modem on acm3' => 'USB Modem op ACM3', \r
+'use' => 'Gebruik', \r
+'use a pre-shared key' => 'Gebruik een vooraf-gedeelde sleutel:', \r
+'use dov' => 'Gebruik DOV (Data Over Voice):', \r
+'use ibod' => 'Gebruik Bandbreedte indien Nodig (iBOD):', \r
+'use ipcop red ip' => 'Het RED ip adre gebruikt door IPCop gedurende de verbinding', \r
+'use only proposed settings' => 'Gebruik alleen voorgestelde instellingen.', \r
+'used' => 'Gebruikt', \r
+'used memory' => 'Gebruikt Geheugen', \r
+'used swap' => 'Gebruikte Swap', \r
+'user cpu' => 'Gebruikers CPU', \r
+'user cpu usage' => 'Gebruikers CPU Gebruik', \r
+'username' => 'Gebruikersnaam:', \r
+'username not set' => 'Gebruikersnaam niet ingesteld.', \r
+'users department' => 'Gebruikers Afdeling', \r
+'users email' => 'Gebruikers E-mail Adres', \r
+'users fullname or system hostname' => 'Gebruikers volledige naam of machine naam', \r
+'valid root certificate already exists' => 'Een geldig root certificaat bestaat al.', \r
+'vci number' => 'VCI Nummer:', \r
+'virtual private networking' => 'Virtual Private Netwerken', \r
+'vpi number' => 'VPI Nummer:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN configuratie - Hoofdmenu', \r
+'vpn delayed start' => 'Vertraging voor de VPN gestart word (seconden)', \r
+'vpn delayed start help' => 'Wanneer nodig, kan deze vertraging gebruikt worden om Dynamische DNS te laten updaten. 60 is een veel gebruikte waarde waneer RED een dynamisch IP heeft.', \r
+'vpn on blue' => 'VPN op BLAUW', \r
+'waiting to synchronize clock' => 'Wacht om klok te synchroniseren', \r
+'warning messages' => 'Waarschuwingsberichten', \r
+'web hits' => 'Totaal aantal regels met websites dat voldoet aan de gestelde criteria voor', \r
+'web proxy' => 'Web proxy', \r
+'web proxy configuration' => 'Web proxy configuratie', \r
+'web server' => 'Web server', \r
+'website' => 'Website', \r
+'wednesday' => 'woensdag', \r
+'week' => 'Week', \r
+'weeks' => 'weken', \r
+'wildcards' => 'Wildcards', \r
+'wireless' => 'Draadloos', \r
+'wireless config added' => 'Draadloze configuratie toegevoegd', \r
+'wireless config changed' => 'Draadloze configuratie aangepast', \r
+'wireless configuration' => 'Draadloze Configuratie', \r
+'written sectors' => 'Geschreven Sectoren', \r
+'xtaccess all error' => 'U kunt niet een externe toegang naar ALLES toevoegen, dat wordt in de poort forwarding regel gedaan.', \r
+'year' => 'Jaar', \r
+'yes' => 'Ja', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'U kunt maar één Roadwarrior verbinding met een vooraf-gedeelde sleutel opvoeren.<br />Of u hebt al een Roadwarrior verbinding met een vooraf-gedeelde sleutel, of u probeert er nu een toe te voegen.', \r
+'your department' => 'Uw Afdeling', \r
+'your e-mail' => 'Uw E-mail Adres', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/nl/install/CVS/Entries b/langs/nl/install/CVS/Entries
new file mode 100644 (file)
index 0000000..2f6ffad
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_nl.c/1.9.2.8/Thu Dec 29 16:11:44 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/nl/install/CVS/Repository b/langs/nl/install/CVS/Repository
new file mode 100644 (file)
index 0000000..1b0f33f
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/nl/install
diff --git a/langs/nl/install/CVS/Root b/langs/nl/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/nl/install/CVS/Tag b/langs/nl/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/nl/install/lang_nl.c b/langs/nl/install/lang_nl.c
new file mode 100644 (file)
index 0000000..3fbd111
--- /dev/null
@@ -0,0 +1,514 @@
+/*\r
+ * Dutch (nl) Data File\r
+ *\r
+ * Dit bestand is een deel van de IPCop Firewall\r
+ * \r
+ * IPCop is vrije software; het staat u vrij het de her-distribueren of\r
+ * aan te passen onder de voorwaarden van de GNU General Public License\r
+ * zoals deze gepubliceerd is door de Free Software Foundation; of\r
+ * versie 2 van deze licentie, of (naar uw keuze) een latere versie.\r
+ * \r
+ * IPCop wordt gedistribueerd in de hoop dat het nuttig is, maar\r
+ * ZONDER ENIGE GARANTIE; zonder zelfs een impliciete garantie door\r
+ * WEDERVERKOOPBAARHEID of geschikbaarheid voor een bepaalde\r
+ * toepassing. Zie de GNU General Public License voor meer details.\r
+ * \r
+ * U zou een kopie van de GNU General Public License bij IPCop\r
+ * ontvangen moeten hebben. Mocht dit niet het geval zijn, schrijf\r
+ * een brief naar:\r
+ * \r
+ * Free Software Foundation, Inc.\r
+ * 59 Temple Place\r
+ * Suite 330\r
+ * Boston\r
+ * MA 02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Gerard Zwart, Berdt van der Lingen, Tony Vroon, Mark Wormgoor\r
+ * (c) 2005 Jacques Hylkema, Maikel Punie \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *nl_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Adres instellingen",\r
+/* TR_ADMIN_PASSWORD */\r
+"Admin wachtwoord",\r
+/* TR_AGAIN_PROMPT */\r
+"Opnieuw:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Alle kaarten successvol toegewezen.",\r
+/* TR_AUTODETECT */\r
+"* AUTOMATISCHE DETECTIE *",\r
+/* TR_BUILDING_INITRD */\r
+"INITRD wordt gebouwd...",\r
+/* TR_CANCEL */\r
+"Annuleren",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Kaart toewijzing",\r
+/* TR_CHECKING */\r
+"Controle URL...",\r
+/* TR_CHECKING_FOR */\r
+"Aan het controleren voor: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Kies de ISDN kaart die geïnstalleerd is in deze computer.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Kies het benodigde ISDN protocol.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Configureer de DHCP server door de instellingen hieronder op te geven.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Configureer netwerk",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"U kunt nu uw netwerk configureren door allereerst de juiste driver te laden voor de GROENE interface. U kunt dit automatisch laten doen of door de juiste driver uit een lijst te selecteren. Als u meerdere netwerkkaarten heeft geïnstalleerd krijgt u later de mogelijkheid deze te installeren.U zou het netwerk moeten configureren door eerst de juiste driver te laden voor de GROENE interface. U kunt dit doen door zelf een driver uit een lijst te kiezen of dit script automatisch de juiste driver te laten zoeken. Als u meerdere netwerkkaarten heeft, krijgt u later de mogelijkheid deze te configuteren. Als u meerdere kaarten heeft van het zelfde type als de GROENE en elke kaart heeft speciale modules parameters, dan zult u deze voor alle kaarten van dit type moeten opgeven zodat alle kaarten actief kunnen worden als u de GROENE configureert. ",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Configureer netwerk drivers, en welke interface aan welke kaart is toegewezen. De huidige configuratie is de volgende:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Configureer de CDROM doot het juiste IO adres en/of IRQ op te geven.",\r
+/* TR_CONGRATULATIONS */\r
+"Gefeliciteerd!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s is successvol geinstalleerd. Gelieve alle floppy disks of CDROM's te verwijderen. Setup zal u nu de mogelijkheid geven ISDN, netwerk, en systeem wachtwoorden in te stellen. Na het voltooien van Setup, kunt u met uw webbrowser naar http://%s:81 of https://%s:445 gaan (of hoe u uw %s genoemd heeft), en daar inbelnetwerk instellen(als dit nodig is) en externe toegang. Denk aaneen wachtwoord voor %s 'inbel' gebruiker, als u niet 'admin' gebruikers beheer wilt geven over een externe verbinding.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Uw harddisks zijn erg klein, maar u kunt verder gaan zonder swap te gebruiken (Gebruik met voorzichtigheid).",\r
+/* TR_CURRENT_CONFIG */\r
+"Huidige configuratie: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Standaard Gateway:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Standaard Gateway\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Standaard lease (minuten):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Standaard lease tijd\n",\r
+/* TR_DETECTED */\r
+"Gedetecteerd: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"DHCP Machinenaam:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"DHCP Machinenaam\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"DHCP server configuratie",\r
+/* TR_DISABLED */\r
+"Uitgeschakeld",\r
+/* TR_DISABLE_ISDN */\r
+"Schakel ISDN uit",\r
+/* TR_DISK_TOO_SMALL */\r
+"Uw harde schijf is te klein.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"DNS en Gateway instellingen",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Geef DNS en gateway informatie op. Deze instellingen worden allen gebruikt als DHCP uit staat op de RODE interface.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Uw configuratie gebruikt geen ethernet adapter voor de RODE interfaceDNS en Gateway informatie voor inbel gebruikers wordt automatisch ingesteld tijdens het inbellen.",\r
+/* TR_DOMAINNAME */\r
+"Domein naam",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Domein naam mag niet leeg zijn.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Domein naam mag geen spaties bevatten.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Domein naam mag alleen letters, cijfers, verbindingsstreepjes en punten bevatten.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Domein naam achtervoegsel:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Domein naam achtervoegsel\n",\r
+/* TR_DONE */\r
+"Voltooid",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nWilt u deze instellingen wijzigen?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Drivers en kaart toewijzingen",\r
+/* TR_ENABLED */\r
+"Ingeschakeld",\r
+/* TR_ENABLE_ISDN */\r
+"Schakel ISDN in",\r
+/* TR_END_ADDRESS */\r
+"Eind adres:",\r
+/* TR_END_ADDRESS_CR */\r
+"Eind adres\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Sommige ISDN kaarten (vooral ISA uitvoeringen) hebben additionele module parameters nodig om IRQ en IO adres informatie in te stellen. Als u zo eenISDN kaart heeft, vult u deze parameters hier in. Bijvoorbeeld: \"io=0x280 irq=9\". Deze worden gebruikt tijdens de kaart detectie.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Geef %s admin wachtwoord.  Dit is het gebruikers account wat u gebruikt om in te loggen via %s web beheers pagina's.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Geef Domein naam in",\r
+/* TR_ENTER_HOSTNAME */\r
+"Geef de machinenaam voor de machine.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Vul IP adres informatie in",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Automatisch detecteren van de netwerkkaart mislukt. Geef een driver met de optionele parameters voor de netwerkkaart op.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Geef het 'root' gebruikers wachtwoord. Log in als deze gebruiker voor commandprompt toegang.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Geef het 'setup' gebruikers wachtwoord. Log in als deze gebruiker om het Setup programma te gebruiken.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Vul de IP adres informatie in voor %s interface.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Geef het lokale telefoon nummer op (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Geef de URL in voor de ipcop-<versie>.tgz en scsidrv-<versie>.img bestanden.  WAARSCHUWING: DNS is niet beschikbaar.  Dit moet dus zijn: http://X.X.X.X/<directory>/.",\r
+/* TR_ERROR */\r
+"Fout",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Er is een fout opgetreden tijdens het schrijven van de configuratie informatie.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Modules uitpakken...",\r
+/* TR_FAILED_TO_FIND */\r
+"Kon het bestand via URL niet vinden.",\r
+/* TR_FOUND_NIC */\r
+"%s heeft de volgende netwerkkaart gevonden: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"Duits 1TR6",\r
+/* TR_HELPLINE */\r
+"              <Tab>/<Alt-Tab> tussen elementen   |  <Space> selecteren",\r
+/* TR_HOSTNAME */\r
+"Machinenaam",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Machinenaam kan niet leeg zijn.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Machinenaam kan geen spaties bevatten.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Machinenaam mag alleen letters, cijfers en verbindingsstreepjes bevatten.",\r
+/* TR_INITIALISING_ISDN */\r
+"Initialiseren ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Gelieve de %s CD in de CDROM speler te plaatsen.",\r
+/* TR_INSERT_FLOPPY */\r
+"Gelieve de %s driver diskette in uw floppy drive te plaatsen.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Installatie geannuleerd.",\r
+/* TR_INSTALLING_FILES */\r
+"Bestanden aan het installeren...",\r
+/* TR_INSTALLING_GRUB */\r
+"LILO aan het installeren...",\r
+/* TR_INTERFACE */\r
+"%s interface",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Aktief worden interface mislukt.",\r
+/* TR_INVALID_FIELDS */\r
+"De volgende velden zijn ongeldig:\n\n",\r
+/* TR_INVALID_IO */\r
+"De opgegeven IO poort details zijn ongeldig. ",\r
+/* TR_INVALID_IRQ */\r
+"Het opgegeven IRQ is ongeldig.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP adres\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP adres:",\r
+/* TR_ISDN_CARD */\r
+"ISDN kaart",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"ISDN kaart niet gedetecteerd. U kunt additionele module parameters opgeven als het om kaart gaat van het ISA type of speciale instellingen vereist.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"ISDN kaart selectie",\r
+/* TR_ISDN_CONFIGURATION */\r
+"ISDN Configuratie",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"ISDN configuratie menu",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN niet ingesteld. Sommige items zijn niet geselecteerd.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN is nog niet geconfigureerd. Selecteer het item dat u wilt instellen.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"ISDN protocol selectie",\r
+/* TR_ISDN_STATUS */\r
+"ISDN is op dit moment %s.\n\n   Protocol: %s\n   Kaart: %s\n   Lokaal telefoon nummer: %s\n\nSelecteer het item wat u opnieuw wilt configureren, of kies voor de huidige instellingen.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Toetsenbord layout",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Kies het type toetsenbord dat u gebruikt in de lijst hieronder.",\r
+/* TR_LEASED_LINE */\r
+"Huurlijn",\r
+/* TR_LOADING_MODULE */\r
+"Laden van module...",\r
+/* TR_LOADING_PCMCIA */\r
+"Laden van PCMCIA modules...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Zoekt naar: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Opstart bestandssysteem aan het maken...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"log bestandssysteem aan het maken...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Maken van root bestandssysteem...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"SWAP ruimte aan het maken...",\r
+/* TR_MANUAL */\r
+"* HANDMATIG *",\r
+/* TR_MAX_LEASE */\r
+"Max lease (minuten):",\r
+/* TR_MAX_LEASE_CR */\r
+"Max lease tijd\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Er is geen IP informatie voor de BLAUWE interface.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Er is geen IP informatie voor de ORANJE interface.",\r
+/* TR_MISSING_RED_IP */\r
+"Er is geen IP informatie voor de RODE interface.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Module naam kan niet leeg zijn.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Geef de module naam en parameters voor de benodigde driver.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Koppelen van opstart bestandssysteem...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Koppelen van log bestandssysteem...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Root bestandssysteem aan het koppelen...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Swap partitie aan het koppelen...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Lokaal telefoon nummer (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Netwerk mask:",\r
+/* TR_NETWORKING */\r
+"Netwerk",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Netwerk adres\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Netwerk adres:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Netwerk configuratie menu",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Netwerk configuratie type",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Selecteer de netwerkconfiguratie voor %s.  De volgende configuratie types rangschikt de interfaces welke aan ethernet gekoppeld zijn. Als u deze instelling aanpast, is een netwerk herstart nodig en u zult netwerk toewijzingen moeten herconfigureren. ",\r
+/* TR_NETWORK_MASK_CR */\r
+"Netwerk mask\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Netwerk setup mislukt.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Er zijn niet genoeg kaarten toegewezen.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Er is geen BLAUWE interface aangewezen.",\r
+/* TR_NO_CDROM */\r
+"Geen CD-ROM gevonden.",\r
+/* TR_NO_HARDDISK */\r
+"Geen harddisk gevonden.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Geen ipcop tarbestand gevonden op de webserver.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Er is geen ORANJE interface toegewezen.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Er is geen RODE interface toegewezen.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Geen SCSI bestand gevonden op de webserver.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Geen ongebruikte netwerkkaarten meer, u heeft er meer nodig. U kunt autodetectie gebruiken om te zoeken naar meerkaarten of er een selecteren uit de lijst.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Indelen schijf...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"De wachtwoorden komen niet overeen.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Het wachtwoord kan niet leeg zijn.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Wachtwoord mag geen spaties bevatten.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Wachtwoord:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Het telefoon nummer kan niet leeg zijn",\r
+/* TR_PREPARE_HARDDISK */\r
+"Het installatie programma zal nu uw harde schijf voorbereiden voor %s. Eerst zal de schijf ingedeeld worden, en dan zal er een bestandssysteem op geschreven worden.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Kies Ok om opnieuw te starten.",\r
+/* TR_PRIMARY_DNS */\r
+"Primaire DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Primaire DNS\n",\r
+/* TR_PROBE */\r
+"Probeer",\r
+/* TR_PROBE_FAILED */\r
+"Auto detectie mislukt.",\r
+/* TR_PROBING_SCSI */\r
+"Zoeken SCSI apparaten...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Probleem bij het instellen van het %s admin wachtwoord.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Probleem bij het instellen van het 'root' wachtwoord.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Probleem bij het instellen van het 'setup' wachtwoord.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protocol/Land",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Netwerk activeren...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Netwerk uitschakelen...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Down brengen lokaal netwerk...",\r
+/* TR_QUIT */\r
+"Stop",\r
+/* TR_RED_IN_USE */\r
+"ISDN (of andere externe verbinding) is op dit moment in gebruik.U kan ISDN niet instellen als de RODE interface aktief is.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nAls de comfiguratie compleet is, is een netwerk herstart nodig.",\r
+/* TR_RESTORE */\r
+"Terugzetten",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Als je een floppy met de %s systeemconfiguratie hebt, plaats de floppy in de drive en selecteer Terugzetten.",\r
+/* TR_ROOT_PASSWORD */\r
+"'root' wachtwoord",\r
+/* TR_SECONDARY_DNS */\r
+"Secondaire DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Secondaire DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Secondaire DNS opgegeven zonder Primaire DNS",\r
+/* TR_SECTION_MENU */\r
+"Sectie menu",\r
+/* TR_SELECT */\r
+"Selecteer",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Selecteer CDROM type",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Er is geen CD-ROM gedetecteerd.  Geef aan welke van de volgendedrivers u wilt gebruiken om %s toegang te geven tot de CD-ROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Selecteer installatie manier",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s kan vanaf meerdere bronnen geinstalleerd worden.  De simpelste is gebruik te maken van de cdrom. Als de computer geen cdrom speler heeft kunt u installeren via een andere computer op het netwerk met via HTTP. In dit geval zult u een netwerkkaart driver diskette nodig hebben.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Selecteer netwerk driver",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Selecteer de netwerk driver voor de geinstalleerde kaart in deze machine.Als u HANDMATIG selecteert kunt u de driver module naam en parameter opgeven voor drivers die speciale vereisten hebben, zoals ISA kaarten",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Selecteer de interface die u wilt herconfigureren.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Selecteer het item dat u wilt configureren.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Instellen %s admin wachtwoord....",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Instellen 'root' wachtwoord....",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Instellen 'setup' wachtwoord....",\r
+/* TR_SETUP_FINISHED */\r
+"Setup is voltooid. Selecteer Ok om opnieuw te start.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"De initiële setup is niet helemaal compleet. Controleer dat Setup netjes voltooid is door Setup nogmaals te draaien vanaf de shell.",\r
+/* TR_SETUP_PASSWORD */\r
+"'setup' wachtwoord",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Geef additionele module parameters",\r
+/* TR_SINGLE_GREEN */\r
+"Uw configuratie is ingesteld voor een enkele GROENE interface.",\r
+/* TR_SKIP */\r
+"Overslaan",\r
+/* TR_START_ADDRESS */\r
+"Begin adres:",\r
+/* TR_START_ADDRESS_CR */\r
+"Begin adres\n",\r
+/* TR_STATIC */\r
+"Statisch",\r
+/* TR_SUGGEST_IO */\r
+"(suggestie %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(suggestie %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Deze driver module is al geladen.",\r
+/* TR_TIMEZONE */\r
+"Tijdzone",\r
+/* TR_TIMEZONE_LONG */\r
+"Kies de tijdzone waarin u zich bevind in de lijst hieronder.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Kan de CDROM niet uitwerpen.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Kon modules niet uitpakken.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Kan geen additionele drivers vinden.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Kan geen ISDN kaart vinden in deze computer. Misschien moet u additionele module parameters opgeven als het een ISA type is of speciale instellingen vereist.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Kan ISDN niet initialiseren.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Installeren bestanden mislukt.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Het installeren van GRUB is mislukt.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Kan driver module niet laden.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Maken van opstart bestandssysteem mislukt.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Maken van log bestandssysteem mislukt.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Maken van root bestandssysteem mislukt.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Maken van SWAP ruimte mislukt.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Kan geen symbolische link maken naar /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Kan geen symbolische link maken naar /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Kan geen symbolische link maken naar /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Kan geen symbolische link maken naar /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Kan geen symbolische link maken naar /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Kan geen symbolische link maken naar /dev/root",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Koppelen van opstart bestandssysteem mislukt.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Koppelen van log bestandssysteem mislukt.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Koppelen van proc bestandssysteem mislukt.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Koppelen root bestandssysteem mislukt.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Koppelen van de SWAP partitie mislukt.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Kan hosts bestand niet openen.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Kan instellingen bestand niet openen",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Het indelen van de schijf is mislukt.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Het verwijderen van tijdelijke opgehaalde bestanden is mislukt.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Kan machinenaam niet wegschijven.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Het loskoppelen van de CDROM/Floppy is mislukt.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Het loskoppelen van de harde schijf is mislukt",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Kan /etc/fstab niet wegschrijven",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Kan /etc/hostname niet wegschrijven",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Kan niet wegschrijven /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Kan niet wegschrijven /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Kan niet wegschrijven /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Kan %s/ethernet/settings niet wegschrijven.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Kan niet wegschrijven %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Kan %s/main/settings niet wegschrijven.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Dit is een ongebruikte netwerkkaart van het type:\n%s\n\nU kunt deze toewijzen aan:",\r
+/* TR_UNKNOWN */\r
+"ONBEKEND",\r
+/* TR_UNSET */\r
+"ONGEDAAN MAKEN",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"De USB key is niet inorde (geen vfat partitie gevonden).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"WAARSCHUWING",\r
+/* TR_WARNING_LONG */\r
+"Als u dit IP adres aanpast, en u bent op afstand verbonden, zal u verbinding met de %s machine worden verbroken, en u zult dan opnieuw moeten verbinden, gebruikmakend van het nieuwe IP. Dit is een risicovolle operatie en zou alleen uitgevoerd moeten worden als u fysieke toegang heeft tot de machine voor het geval dat er iets fout gaat.",\r
+/* TR_WELCOME */\r
+"Welkom in het %s installatie programma. Het selecteren van Annuleer op enig van de volgende schermen laat uw computer herstarten.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Uw configuratie is ingesteld voor een enkele GROENE interface, welke al een driver heeft.",\r
+}; \r
+  \r
diff --git a/langs/no/CVS/Entries b/langs/no/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/no/CVS/Repository b/langs/no/CVS/Repository
new file mode 100644 (file)
index 0000000..1a85239
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/no
diff --git a/langs/no/CVS/Root b/langs/no/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/no/CVS/Tag b/langs/no/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/no/cgi-bin/CVS/Entries b/langs/no/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..05b130b
--- /dev/null
@@ -0,0 +1,2 @@
+/no.pl/1.8.2.35/Sun Nov 20 12:45:59 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/no/cgi-bin/CVS/Repository b/langs/no/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..d63f923
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/no/cgi-bin
diff --git a/langs/no/cgi-bin/CVS/Root b/langs/no/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/no/cgi-bin/CVS/Tag b/langs/no/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/no/cgi-bin/no.pl b/langs/no/cgi-bin/no.pl
new file mode 100644 (file)
index 0000000..135fae8
--- /dev/null
@@ -0,0 +1,948 @@
+# Norwegian (no) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Morten Grendal, Alexander Dawson, Mounir S. Chermiti, \r
+# Runar Skraastad, Alf-Ivar Holm\r
+# \r
+#  \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Et sertifikatutstedersertifikat med dette navnet finnes allerede.', \r
+'a connection with this common name already exists' => 'En forbindelse med dette fellesnavnet finnes allerede.', \r
+'a connection with this name already exists' => 'En forbindelse med dette navnet finnes allerede.', \r
+'access allowed' => 'Tilgang tillatt fra:', \r
+'access refused with this oinkcode' => 'Ingen tilgang med denne Oink-koden', \r
+'action' => 'Handling', \r
+'add' => 'Legg til', \r
+'add a host' => 'Legg til vert', \r
+'add a new rule' => 'Legg til ny regel', \r
+'add device' => 'Legg til enhet', \r
+'add network' => 'Legg til nettverk', \r
+'add new alias' => 'Legg til nytt alias', \r
+'add new lease' => 'Legg til ny fast leie', \r
+'add service' => 'Legg til tjeneste', \r
+'add xtaccess' => 'Legg til ekstern tilgang', \r
+'added from dhcp lease list' => 'lagt til fra DHCP leieliste', \r
+'admin user password has been changed' => 'Adminbrukers passord har blitt endret.', \r
+'administrator user password' => 'Adminbrukerpassord:', \r
+'adsl settings' => 'ADSL-innstillinger', \r
+'advanced' => 'Avansert', \r
+'again' => 'Gjenta:', \r
+'alcatelusb help' => 'For å benytte Speedtouch USB-modem må du laste opp firmware til IPCop. Last ned pakken <b>Embedded Firmware</b> fra speedtouch.com. Pakk den ut, og så kan du nedenfor laste opp filen for ditt modem: KQD6_3.xxx for Rev<4 eller ZZZL_3.xxx for Rev=4.', \r
+'alcatelusb upload' => 'Last opp Speedtouch USB-firmware', \r
+'alias ip' => 'Alias-IP', \r
+'aliases' => 'Alias', \r
+'aliases not active' => 'Alias vil ikke være aktive hvis ikke RØDT grensesnitt er STATISK', \r
+'all' => 'Alle', \r
+'all interfaces' => 'Alle grensesnitt', \r
+'all updates installed' => 'Alle oppdateringer er installert', \r
+'alt dialup' => 'Oppringt', \r
+'alt home' => 'Hjem', \r
+'alt information' => 'Informasjon', \r
+'alt logs' => 'Logger', \r
+'alt services' => 'Tjenester', \r
+'alt system' => 'System', \r
+'alt vpn' => 'VPN', \r
+'and' => 'Og', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Bruk', \r
+'april' => 'April', \r
+'archive not exist' => 'Oppsettarkivfil finnes ikke', \r
+'are you sure' => 'Er du sikker?', \r
+'arp table entries' => 'ARP-tabelloppføringer', \r
+'august' => 'August', \r
+'authentication' => 'Autentisering', \r
+'automatic' => 'Automatisk', \r
+'available updates' => 'Tilgjengelige oppdateringer:', \r
+'average' => 'Gjennomsnitt', \r
+'avoid dod' => 'Ikke bruk denne innstillingen med Dial on Demand! Brukes hovedsakelig når IPCop er plassert bak en router. Din RØDE IP må være i et av de tre reserverte nettverksområdene - 10/8, 172.16/12 eller 192.168/16', \r
+'back' => 'TILBAKE', \r
+'backup' => 'Backup', \r
+'backup config floppy' => 'Backupoppsett - Diskett', \r
+'backup configuration' => 'Backupoppsett:', \r
+'backup sets' => 'Backupsett', \r
+'backup to floppy' => 'Backup til diskett', \r
+'backupprofile' => 'Dersom gjenoppkobling ikke lykkes, bytt til profil', \r
+'bad characters in script field' => 'Ugyldige tegn i skriptfeltet', \r
+'bad characters in the telephone number field' => 'Ugyldige tegn i telefonnummerfeltet.', \r
+'bad destination range' => 'Målportområdet har en startverdi som er større enn eller lik sluttverdien.', \r
+'bad ignore filter' => 'Feil i ignoreringsfilter:', \r
+'bad return code' => 'Hjelpeprogram returnerte feilkode', \r
+'bad source range' => 'Kildeportområdet har en startverdi som er større enn eller lik sluttverdien.', \r
+'beep when ppp connects or disconnects' => 'Lydvarsling når IPCop kobler til eller fra', \r
+'behind a proxy' => 'Bak en proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'BLÅ', \r
+'blue access' => 'Blå tilgang', \r
+'blue interface' => 'Blått grensesnitt', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Brutt dataledning', \r
+'buffered memory' => 'Bufret minne', \r
+'buffers' => 'buffere', \r
+'bytes per second' => 'Bytes pr. sekund', \r
+'ca certificate' => 'Sertifikatutstedersertifikat', \r
+'ca name' => 'Sertifikatutstedernavn', \r
+'cache management' => 'Hurtigminneadministrasjon', \r
+'cache size' => 'Hurtigminnestørrelse (MB):', \r
+'cached' => 'lagt i hurtigminne', \r
+'cached memory' => 'Hurtigminne', \r
+'cancel' => 'Avbryt', \r
+'cannot enable both nat traversal and compression' => 'Kan ikke aktivere både NAT-traversal og -komprimering.', \r
+'cannot enable ntp without specifying primary' => 'Kan ikke aktivere NTP uten angitt primær.', \r
+'cannot specify secondary dns without specifying primary' => 'Kan ikke angi sekundær DNS uten å angi primær.', \r
+'cannot specify secondary ntp without specifying primary' => 'Kan ikke angi sekundær NTP-tjener uten å angi primær', \r
+'cannot specify secondary wins without specifying primary' => 'Kan ikke angi sekundær WINS uten å angi primær.', \r
+'cant change certificates' => 'Kan ikke endre sertifikat.', \r
+'cant enable xtaccess' => 'Den tilhørende portvideresendingsregelen er deaktivert, derfor kan du ikke aktivere ekstern tilgang for denne regelen.', \r
+'cant start openssl' => 'Kan ikke starte OpenSSL.', \r
+'caps all' => 'ALLE', \r
+'capsclosed' => 'LUKKET', \r
+'capsopen' => 'ÅPEN', \r
+'capswarning' => 'ADVARSEL', \r
+'cert' => 'Sertifikat', \r
+'certificate' => 'Sertifikat', \r
+'certificate authorities' => 'Sertifikatutsteder', \r
+'certificate does not have a valid ca associated with it' => 'Sertifikatet er ikke utstedt av en gyldig sertifikatusteder.', \r
+'certificate file move failed' => 'Sertifikatfilflytting feilet', \r
+'cfg restart' => 'En omstart er anbefalt etter gjenopppretting av oppsettarkivfil.', \r
+'chain' => 'Chain', \r
+'change passwords' => 'Endre passord', \r
+'check vpn lr' => 'Sjekk', \r
+'city' => 'By', \r
+'clear cache' => 'Tøm hurtigminne', \r
+'clenabled' => 'Tilby tid til lokalt nettverk', \r
+'click to disable' => 'Aktivert (trykk for å deaktivere)', \r
+'click to enable' => 'Deaktivert (trykk for å aktivere)', \r
+'clock has not been synchronized' => 'Klokken har ikke blitt synkronisert', \r
+'clock last synchronized at' => 'Klokken ble sist synkronisert', \r
+'common name' => 'Fellesnavn', \r
+'compression' => 'Kompresjon:', \r
+'computer to modem rate' => 'Datamaskin til modem-hastighet:', \r
+'concentrator name' => 'Konsentratornavn:', \r
+'confirmation' => 'godkjennelse', \r
+'connect on ipcop restart' => 'Koble til ved omstart av IPCop:', \r
+'connect the modem' => 'Koble til modemet', \r
+'connect timeout' => 'Tilkoblingstidsavbrudd:', \r
+'connected' => 'Tilkoblet', \r
+'connecting' => 'Kobler til...', \r
+'connection' => 'Tilkobling', \r
+'connection debugging' => 'Forbindelsesdebugging', \r
+'connection status and controlc' => 'Forbindelsesstatus og -kontroll:', \r
+'connection tracking' => 'IPTables-tilkoblingssporing', \r
+'connection type' => 'Forbindelsestype', \r
+'connection type is invalid' => 'Forbindelsestype er ugyldig.', \r
+'connections' => 'Tilkoblinger', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'Forbindelser er knyttet opp til denne sertifikatutsteder.  Ved sletting av sertifikatutstederen vil disse forbindelsene også bli slettet.', \r
+'could not be opened' => 'kunne ikke åpnes', \r
+'could not connect to' => 'Klarte ikke å koble til', \r
+'could not connect to www ipcop org' => 'Klarte ikke å koble til www.ipcop.org', \r
+'could not create directory' => 'Klarte ikke å opprette mappe.', \r
+'could not download latest patch list' => 'Klarte ikke å laste ned nyeste patchliste (ikke tilkoblet).', \r
+'could not download latest updates' => 'Klarte ikke å laste ned siste oppdateringer.', \r
+'could not download the available updates list' => 'Klarte ikke å laste ned listen over tilgjengelige oppdateringer.', \r
+'could not open available updates file' => 'Klarte ikke å åpne filen med tilgjengelige oppdateringer.', \r
+'could not open installed updates file' => 'Klarte ikke å åpne filen med installerte oppdateringer', \r
+'could not open update information file' => 'Klarte ikke å åpne filen med oppdateringsinformasjon. Oppdateringsfilen er skadet.', \r
+'could not retrieve common name from certificate' => 'Klarte ikke å hente fellesnavnet til dette sertifikatet.', \r
+'country' => 'Land', \r
+'cpu usage per' => 'CPU-forbruk pr.', \r
+'create' => 'Opprett', \r
+'credits' => 'Bidragsytere', \r
+'cron server' => 'CRON-tjener', \r
+'current' => 'Gjeldende', \r
+'current aliases' => 'Gjeldende alias', \r
+'current dhcp leases on blue' => 'Gjeldende DHCP-leier på BLÅ', \r
+'current dynamic leases' => 'Gjeldende dynamiske leieadresser', \r
+'current fixed leases' => 'Gjeldende faste leieadresser', \r
+'current hosts' => 'Gjeldende verter', \r
+'current profile' => 'Gjeldende profil:', \r
+'current rules' => 'Gjeldende regler', \r
+'custom networks' => 'Egendefinerte nettverk', \r
+'custom services' => 'Egendefinerte tjenester', \r
+'dat without key' => 'En kryptert arkivfil kan ikke gjenopprettes uten nøkkelen.', \r
+'date' => 'Dato', \r
+'date not in logs' => 'Det finnes ingen (eller bare ufullstendige) logger for valgt dag', \r
+'day' => 'Dag', \r
+'day after' => 'Dagen etter', \r
+'day before' => 'Dagen før', \r
+'days' => 'dager', \r
+'ddns hostname added' => 'Dynamisk DNS-vertsnavn lagt til', \r
+'ddns hostname modified' => 'Dynamisk DNS vertsnavn endret', \r
+'ddns hostname removed' => 'Dynamisk DNS-vertsnavn fjernet', \r
+'ddns minimize updates' => 'Minimer oppdateringen: før en oppdatering, sammenligner dns IP for vertsnavn "[vert.]domene" mot RØD IP.', \r
+'ddns noip prefix' => 'For å bruke no-ip i gruppemodus må vertsnavnet begynne med <b>%</b>', \r
+'december' => 'Desember', \r
+'def lease time' => 'Standard leietid', \r
+'default lease time' => 'Standard leietid (minutter):', \r
+'default networks' => 'Standard nettverk', \r
+'default renewal time' => 'Standard fornyelsestid', \r
+'default services' => 'Standard tjenester', \r
+'delete' => 'Slett', \r
+'demon login script' => 'Demon loginskript', \r
+'description' => 'Beskrivelse', \r
+'dest ip and port' => 'Mål-IP:Port', \r
+'destination' => 'Mål', \r
+'destination ip' => 'Mål-IP', \r
+'destination ip bad' => 'Ugyldig mål-IP', \r
+'destination ip or net' => 'Destinasjon IP eller nett', \r
+'destination net' => 'Målnett', \r
+'destination port' => 'Målport', \r
+'destination port numbers' => 'Målporten må være et gyldig portnummer eller portområde.', \r
+'destination port overlaps' => 'Målportområdet overlapper et eksisterende portområde.', \r
+'detail level' => 'Detaljnivå', \r
+'device' => 'Enhet', \r
+'devices on blue' => 'Enheter på BLÅ', \r
+'dhcp advopt add' => 'DHCP legg til innstilling', \r
+'dhcp advopt added' => 'DHCP innstilling lagt til', \r
+'dhcp advopt blank value' => 'DHCP innstillingsverdi kan ikke være blank.', \r
+'dhcp advopt custom definition' => 'Din tilpassede definisjonsinnstilling', \r
+'dhcp advopt definition' => 'Definisjon', \r
+'dhcp advopt definition exists' => 'Definisjonsinnstilling finnes allerede. Du kan bare redigere eller fjerne den.', \r
+'dhcp advopt edit' => 'DHCP endre innstilling', \r
+'dhcp advopt help' => 'List innstillinger', \r
+'dhcp advopt list' => 'DHCP innstillingsliste', \r
+'dhcp advopt modified' => 'DHCP innstilling endret', \r
+'dhcp advopt name' => 'Innstillingsnavn', \r
+'dhcp advopt removed' => 'DHCP innstilling fjernet', \r
+'dhcp advopt scope' => 'Innstillingsområde', \r
+'dhcp advopt scope global' => 'Global', \r
+'dhcp advopt scope help' => 'Globalt område eller begrens område til valgte grensesnitt', \r
+'dhcp advopt unknown' => 'DHCP ukjent innstillingsnavn', \r
+'dhcp advopt value' => 'Innstillingsverdi', \r
+'dhcp allow bootp' => 'Tillat bootp klienter', \r
+'dhcp configuration' => 'DHCP-oppsett', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP-tjener', \r
+'dhcp server disabled' => 'DHCP-tjener deaktivert.  Stoppet.', \r
+'dhcp server disabled on blue interface' => 'DHCP-tjener deaktivert på BLÅTT grensesnitt', \r
+'dhcp server enabled' => 'DHCP-tjener aktivert.  Restarter.', \r
+'dhcp server enabled on blue interface' => 'DHCP-tjener aktivert på BLÅTT grensesnitt', \r
+'dial' => 'Koble til', \r
+'dial user password' => 'Modembrukerpassord:', \r
+'dial user password has been changed' => 'Modembrukers passord har blitt endret.', \r
+'dialing mode' => 'Ringemetode:', \r
+'dialup settings' => 'Oppringningsinnstillinger', \r
+'disk access per' => 'Diskaksess pr.', \r
+'disk usage' => 'Diskforbruk', \r
+'display' => 'Vis', \r
+'display hostname in window title' => 'Vis vertsnavn i vindutittel', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'DMZ-nåløyeoppsett', \r
+'dmz pinhole rule added' => 'DMZ-nåløyeregel lagt til - restarter DMZ-nåløye', \r
+'dmz pinhole rule removed' => 'DMZ-nåløyeregel fjernet - restarter DMZ-nåløye', \r
+'dmzpinholes for same net not necessary' => 'DMZ-nåløyer er ikke nødvendig for samme nett. Velg forskjellige kilde- og målnett.', \r
+'dns check failed' => 'DNS-sjekk feilet', \r
+'dns proxy server' => 'DNS-proxytjener', \r
+'do not log this port list' => 'Dropp porter i denne listen rett før de logges (begrenser størrelsen på loggen)', \r
+'dod' => 'Dial on Demand', \r
+'dod for dns' => 'Dial on Demand for DNS:', \r
+'dod not compatible with ddns' => 'Dial on Demand er ikke kompatibelt med dynamisk DNS tjeneste', \r
+'dod waiting' => 'Dial on Demand venter', \r
+'domain' => 'Domene', \r
+'domain name' => 'Domenenavn', \r
+'domain name suffix' => 'Domenenavnsuffiks:', \r
+'domain not set' => 'Domene ikke angitt.', \r
+'downlink speed' => 'Nedstrømshastighet (kbit/sek)', \r
+'download ca certificate' => 'Last ned sertifikatutstedersertifikat', \r
+'download certificate' => 'Last ned sertifikat', \r
+'download host certificate' => 'Last ned tjenersertifikat', \r
+'download new ruleset' => 'Last ned nytt regelsett', \r
+'download pkcs12 file' => 'Last ned PKCS12-fil', \r
+'download root certificate' => 'Last ned rotsertifikat', \r
+'dpd action' => 'Dead Peer Detection handling', \r
+'driver' => 'Driver', \r
+'dst port' => 'Målport', \r
+'dstprt range overlaps' => 'Målportområdet overlapper en port som allerede er definert.', \r
+'dstprt within existing' => 'Målporten er innenfor et område som allerede er definert.', \r
+'duplicate ip' => 'IP-adressen er allerede lagt til', \r
+'duplicate ip bold' => 'Duplikate IP-adresser vises med <b>fet</b> skrift', \r
+'duplicate mac' => 'MAC-adressen er allerede lagt til', \r
+'duplicate name' => 'Navnet er allerede i bruk, velg et annet.', \r
+'dyn dns source choice' => 'Dynamisk DNS tilbyder(e) vil motta IP-adresse for denne IPCop fra:', \r
+'dynamic dns' => 'Dynamisk DNS', \r
+'dynamic dns client' => 'Dynamisk DNS-klient', \r
+'e-mail address too long' => 'E-postadressen er for lang: Den kan ikke være lenger enn 40 tegn.', \r
+'eciadsl help' => 'For å benytte ECI ADSL-modem må du laste opp filen synch.bin til IPCop-boksen. Last ned filen fra vevsiden til ECIADSL og last opp filen <B>synch.bin</B> nedenfor.', \r
+'eciadsl upload' => 'Last opp ECI ADSL Synch.bin-fil', \r
+'edit' => 'Rediger', \r
+'edit a rule' => 'Rediger en eksisterende regel:', \r
+'edit advanced settings when done' => 'Rediger avanserte innstillinger etterpå.', \r
+'edit an existing alias' => 'Rediger et eksisterende alias', \r
+'edit an existing host' => 'Rediger en eksisterende vert', \r
+'edit an existing lease' => 'Rediger en eksisterende leie', \r
+'edit device' => 'Rediger enhet', \r
+'edit hosts' => 'Rediger verter', \r
+'edit network' => 'Rediger nettverk', \r
+'edit service' => 'Rediger tjeneste', \r
+'empty' => 'Tom', \r
+'enable ignore filter' => 'Aktiver ignoreringsfilter', \r
+'enable javascript' => 'Aktiver Javaskript', \r
+'enable wildcards' => 'Bruk jokertegn:', \r
+'enabled' => 'Aktiv:', \r
+'enabled on' => 'Aktivert på', \r
+'enabledtitle' => 'Aktiv', \r
+'encapsulation' => 'Innpakket', \r
+'encrypted' => 'Kryptert', \r
+'end address' => 'Sluttadresse:', \r
+'err bk 1' => 'Feil ved oppretting av arkivfil', \r
+'err bk 2 key' => 'Feil ved oppretting av nøkkelfil', \r
+'err bk 3 tar' => 'Feil ved tilføying av filer til arkivfilen', \r
+'err bk 4 gz' => 'Feil ved pakking av arkivfilen', \r
+'err bk 5 encrypt' => 'Feil ved kryptering av arkivfilen', \r
+'err rs 1' => 'Feil ved gjenoppretting av arkivfilen', \r
+'err rs 6 decrypt' => 'Feil ved dekryptering av arkivfilen', \r
+'err rs 7 untartst' => 'Ugyldig kryptert arkivfil', \r
+'err rs 8 untar' => 'Feil ved utpakking av arkivfil', \r
+'error messages' => 'Feilmeldinger:', \r
+'esp encryption' => 'ESP-kryptering:', \r
+'esp grouptype' => 'ESP-gruppetype:', \r
+'esp integrity' => 'ESP-integritet:', \r
+'esp keylife' => 'ESP-nøkkellivstid:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP-nøkkellivstid må være mellom 1 og 24 timer.', \r
+'every' => 'Hver', \r
+'excluding buffers and cache' => '-/+ buffere/hurtigminne', \r
+'expected' => 'Forventet', \r
+'expires' => 'Utløper', \r
+'export' => 'Eksporter', \r
+'external access' => 'Ekstern tilgang', \r
+'external access configuration' => 'Eksterntilgang oppsett', \r
+'external access rule added' => 'Regel for ekstern tilgang lagt til - restarter tilgangskontroller', \r
+'external access rule removed' => 'Regel for ekstern tilgang fjernet - restarter tilgangskontroller', \r
+'external aliases configuration' => 'Eksterne alias-oppsett', \r
+'february' => 'Februar', \r
+'fetch ip from' => 'Prøv å hente faktisk offentlig IP ved hjelp av en ekstern server', \r
+'filename' => 'Filnavn', \r
+'filesystem full' => 'Filsystem fullt', \r
+'firewall' => 'Brannmur', \r
+'firewall hits' => 'Totalt antall brannmurtreff for', \r
+'firewall log' => 'Brannmurlogg', \r
+'firewall log viewer' => 'Brannmurloggvisning', \r
+'firewall logs' => 'Brannmurlogg', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Last opp firmware/drivere', \r
+'fixed ip lease added' => 'Fast IP-leie lagt til', \r
+'fixed ip lease modified' => 'Fast IP-leie er endra', \r
+'fixed ip lease removed' => 'Fast IP-leie fjernet', \r
+'force update' => 'Oppdater nå', \r
+'forwarding rule added' => 'Videresendingsregel lagt til - restarter videresending', \r
+'forwarding rule removed' => 'Videresendingsregel fjernet - restarter videresending', \r
+'forwarding rule updated' => 'Videresendingsregel oppdatert - restarter videresending', \r
+'free' => 'Ledig', \r
+'free memory' => 'Ledig minne', \r
+'free swap' => 'Ledig veksleminne', \r
+'friday' => 'Fredag', \r
+'fritzdsl help' => 'For å bruke en av Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modem, må du laste opp en package til IPCop\'en.  Last ned den tarballen som passer med din versjon fra IPCop\'s websted og last så opp hele <b>fcdsl-(your_version).tgz</b> vha formularet under.', \r
+'fritzdsl upload' => 'Last opp Fritz!DSL-driver', \r
+'from' => 'Fra', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Gateway', \r
+'gateway ip' => 'Gateway-IP', \r
+'generate a certificate' => 'Lag et sertifikat:', \r
+'generate root/host certificates' => 'Lag rot-/tjenersertifikat', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generering av rot- og tjenersertifikatene kan ta lang tid. Det kan ta opptil flere minutter på gammel maskinvare. Vennligst ha tålmodighet.', \r
+'global settings' => 'Globale innstillinger', \r
+'graph' => 'Kurve', \r
+'graph per' => 'Kurve pr.', \r
+'green' => 'GRØNN', \r
+'green interface' => 'Grønt grensesnitt', \r
+'gui settings' => 'GUI-innstillinger', \r
+'gz with key' => 'Bare en kryptert arkivfil kan gjenopprettes på denne maskinen.', \r
+'hangup' => 'Koble fra', \r
+'hangup string' => 'Legg på:', \r
+'high' => 'Høy', \r
+'high memory usage' => 'Høyt minneforbruk', \r
+'holdoff' => 'Holdoff-tid (i sekunder)', \r
+'host' => 'Vert', \r
+'host certificate' => 'Tjenersertifikat', \r
+'host configuration' => 'Oppsett av verter', \r
+'host ip' => 'Vert IP-adresse', \r
+'host to net vpn' => 'Vert-til-nett-Virtuelt Privat Nettverk (RoadWarrior)', \r
+'hostname' => 'Vertsnavn', \r
+'hostname and domain already in use' => 'Vertsnavn og domene allerede i bruk.', \r
+'hostname cant be empty' => 'Vertsnavn må være fylt ut.', \r
+'hostname not set' => 'Vertsnavn ikke angitt.', \r
+'hosts config added' => 'vertsinnstillinger lagt til', \r
+'hosts config changed' => 'vertsinnstillinger endret', \r
+'hours' => 'timer', \r
+'hours2' => 'Timer', \r
+'ibod for dual isdn only' => 'iBOD kan bare brukes med Dobbel ISDN.', \r
+'icmp selected but no type' => 'ICMP er valgt protokoll, men ICMP-type er ikke spesifisert.', \r
+'icmp type' => 'ICMP-type', \r
+'id' => 'ID', \r
+'idle' => 'Inaktiv', \r
+'idle cpu' => 'Inaktiv CPU', \r
+'idle cpu usage' => 'Inaktiv CPU-forbruk', \r
+'idle timeout' => 'Inaktivitet tidsavbrudd (0 min. deaktiverer):', \r
+'idle timeout not set' => 'Inaktivitetsperiode ikke angitt.', \r
+'ids log viewer' => 'IDS-loggvisning', \r
+'ids logs' => 'IDS-logg', \r
+'ids rules license' => 'For å benytte Sourcefire VRT sertifiserte regler må du registrere deg på', \r
+'ids rules license2' => 'Godta lisensen, motta passord via epost og koble til siden. Gå til', \r
+'ids rules license3' => 'klikk \'Get Code\'-knappen på bunnen og kopier den 40 tegn lange Oink-koden inn i feltet under.', \r
+'ids rules update' => 'Snort regeloppdatering', \r
+'iface' => 'Gsnitt', \r
+'ignore filter' => 'Ignoreringsfilter', \r
+'ike encryption' => 'IKE-kryptering:', \r
+'ike grouptype' => 'IKE-gruppetype:', \r
+'ike integrity' => 'IKE-integritet:', \r
+'ike lifetime' => 'IKE-livstid:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE-livstid må være mellom 1 og 8 timer.', \r
+'import' => 'Importer', \r
+'in' => 'Inn', \r
+'incoming traffic in bytes per second' => 'Innkommende trafikk i bytes pr. sekund', \r
+'info' => 'Info', \r
+'init string' => 'Init:', \r
+'insert floppy' => 'Sett inn en formattert diskett og trykk <i>Backup til diskett</i> for å ta backup av systemoppsettet. Sjekk resultatet nøye for å være sikker på at operasjonen var vellykket.<p>', \r
+'install new update' => 'Installer ny oppdatering:', \r
+'installed' => 'Installert', \r
+'installed updates' => 'Installerte oppdateringer:', \r
+'instant update' => 'Oppdater nå', \r
+'interface' => 'Grensesnitt', \r
+'interfaces' => 'Grensesnitt', \r
+'internet' => 'INTERNETT', \r
+'intrusion detection' => 'Snokvarsling', \r
+'intrusion detection system' => 'Snokvarslingssystem', \r
+'intrusion detection system log viewer' => 'Snokvarslingssystemloggvisning', \r
+'intrusion detection system2' => 'Snokvarslingssystem:', \r
+'invalid broadcast ip' => 'Ugyldig broadcast-IP', \r
+'invalid cache size' => 'Ugyldig hurtigminnestørrelse.', \r
+'invalid characters found in pre-shared key' => 'Ugyldige tegn funnet i forhåndsutdelt nøkkel.', \r
+'invalid date entered' => 'Ugyldig dato angitt.', \r
+'invalid default lease time' => 'Ugyldig standard leietid.', \r
+'invalid domain name' => 'Ugyldig domenenavn.', \r
+'invalid downlink speed' => 'Ugyldig nedstrømshastighet.', \r
+'invalid end address' => 'Ugyldig sluttadresse.', \r
+'invalid fixed ip address' => 'Ugyldig fast IP-adresse', \r
+'invalid fixed mac address' => 'Ugyldig fast MAC-adresse', \r
+'invalid hostname' => 'Ugyldig vertsnavn.', \r
+'invalid input' => 'Ugyldig verdi', \r
+'invalid input for authentication method' => 'Ugyldig verdi for autentiseringsmetode.', \r
+'invalid input for city' => 'Ugyldig verdi for by.', \r
+'invalid input for country' => 'Ugyldig verdi for land.', \r
+'invalid input for department' => 'Ugyldig verdi for avdeling.', \r
+'invalid input for e-mail address' => 'Ugyldig verdi for e-postadresse.', \r
+'invalid input for esp keylife' => 'Ugyldig verdi for ESP-nøkkellivstid', \r
+'invalid input for hostname' => 'Ugyldig verdi for tjenernavn.', \r
+'invalid input for ike lifetime' => 'Ugyldig verdi for IKE-livstid', \r
+'invalid input for name' => 'Ugyldig verdi for vertsnavn eller brukers egennavn.', \r
+'invalid input for oink code' => 'Feil i Oink-koden', \r
+'invalid input for organization' => 'Ugyldig verdi for organisasjon', \r
+'invalid input for remote host/ip' => 'Ugyldig verdi for ikke-lokal vert/IP', \r
+'invalid input for state or province' => 'Ugyldig verdi for stat eller område.', \r
+'invalid ip' => 'Ugyldig IP-adresse', \r
+'invalid keep time' => 'Behold tid må være et gyldig tall', \r
+'invalid key' => 'Ugyldig nøkkel.', \r
+'invalid loaded file' => 'Feil ved innlest fil', \r
+'invalid logserver address' => 'Ugyldig adresse til syslogd-tjener', \r
+'invalid max lease time' => 'Ugyldig maks leietid.', \r
+'invalid maximum incoming size' => 'Ugyldig maksimum innkommende størrelse.', \r
+'invalid maximum object size' => 'Ugyldig maksimum objektstørrelse.', \r
+'invalid maximum outgoing size' => 'Ugyldig maksimum utgående størrelse.', \r
+'invalid md5sum' => 'Ugyldig MD5Sum.', \r
+'invalid minimum object size' => 'Ugyldig minimum objektstørrelse.', \r
+'invalid netmask' => 'Ugyldig nettmaske', \r
+'invalid port' => 'Ugyldig port. Må være et gyldig portnummer.', \r
+'invalid port list' => 'Syntax for portlisten er: port[,port] ... hvor port finnes i /etc/services eller er et nummer', \r
+'invalid primary dns' => 'Ugyldig primær DNS.', \r
+'invalid primary ntp' => 'Ugyldig primær NTP-tjeneradresse', \r
+'invalid secondary dns' => 'Ugyldig sekundær DNS.', \r
+'invalid secondary ntp' => 'Ugyldig sekundær NTP-tjeneradresse', \r
+'invalid start address' => 'Ugyldig startadresse.', \r
+'invalid time entered' => 'Ugyldig tid angitt.', \r
+'invalid time period' => 'Ugyldig tidsperiode', \r
+'invalid uplink speed' => 'Ugyldig oppstrømshastighet.', \r
+'invalid upstream proxy username or password setting' => 'Ugyldig oppstrømsproxybrukernavn eller -passord.', \r
+'invalid vpi vpci' => 'Ugyldige VPI-/VPCI-innstillinger', \r
+'invalid wins address' => 'Ugyldig WINS-tjeneradresse.', \r
+'invert' => 'Inverter', \r
+'ip address' => 'IP-adresse', \r
+'ip address in use' => 'IP-adresse er allerede i bruk', \r
+'ip alias added' => 'Eksternt IP-alias lagt til', \r
+'ip alias changed' => 'Eksternt IP-alias endret', \r
+'ip alias removed' => 'Eksternt IP-alias fjerna', \r
+'ip info' => 'IP-informasjon', \r
+'ipcop has now rebooted' => 'IPCop har nå startet på nytt.', \r
+'ipcop has now shutdown' => 'IPCop har nå avsluttet.', \r
+'ipcop side' => 'IPCop-side:', \r
+'ipcop side is invalid' => 'IPCop-side er ugyldig.', \r
+'ipcops hostname' => 'IPCops vertsnavn', \r
+'ipinfo' => 'IP-info', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Flere ISDN-innstillinger:', \r
+'isdn1' => 'Enkel ISDN', \r
+'isdn2' => 'Dobbel ISDN', \r
+'january' => 'Januar', \r
+'javascript menu error1' => 'Hvis nedtrekksmenyene ikke fungerer kan du deaktivere Javaskript på siden', \r
+'javascript menu error2' => '&nbsp;', \r
+'july' => 'Juli', \r
+'june' => 'Juni', \r
+'kernel' => 'Kjerne', \r
+'kernel logging server' => 'Kjerneloggtjener', \r
+'kernel version' => 'Kjerneversjon', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Velg språket du vil bruke i IPCop:', \r
+'lease expires' => 'Leie utløper', \r
+'legend' => 'Tegnforklaring', \r
+'line' => 'Linje', \r
+'loaded modules' => 'Lastede moduler', \r
+'local ntp server specified but not enabled' => 'Lokal NTP-server spesifisert men ikke startet', \r
+'local subnet' => 'Lokalt subnett:', \r
+'local subnet is invalid' => 'Lokalt subnett er ugyldig.', \r
+'local vpn hostname/ip' => 'Lokalt VPN-vertsnavn / -IP', \r
+'log' => 'Logg', \r
+'log enabled' => 'Logg aktivert', \r
+'log lines per page' => 'Linjer pr. side', \r
+'log server address' => 'Syslogtjener', \r
+'log settings' => 'Loggoppsett', \r
+'log summaries' => 'Loggsammendrag', \r
+'log summary' => 'Loggsammendrag', \r
+'log viewer' => 'Loggvisning', \r
+'log viewing options' => 'Loggvisningsoppsett', \r
+'logging server' => 'Loggtjener', \r
+'loginlogout' => 'Inn-/utlogging', \r
+'lookup failed' => 'Reversoppslag mislyktes', \r
+'low' => 'Lav', \r
+'ls_dhcpd' => 'DHCP-tjener:', \r
+'ls_disk space' => 'Diskplass:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP-tjener:', \r
+'ls_init' => 'Initialisering:', \r
+'ls_kernel' => 'Kjerne og brannmur:', \r
+'ls_modprobe' => 'Modulopplasting:', \r
+'ls_pam_unix' => 'Lokalbrukerlogin:', \r
+'ls_sshd' => 'Fjernbrukerlogin:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'MAC-adresse', \r
+'mac address in use' => 'MAC-adresse allerede i bruk', \r
+'main page' => 'Hovedside', \r
+'manual' => 'Manuell', \r
+'manual control and status' => 'Manuell kontroll og status', \r
+'manually' => 'Manuelt', \r
+'march' => 'Mars', \r
+'marked' => 'Merket', \r
+'max incoming size' => 'Maks. innkommende størrelse (KB):', \r
+'max lease time' => 'Maks leietid (minutter):', \r
+'max outgoing size' => 'Maksimum utgående størrelse (KB):', \r
+'max renewal time' => 'Maksimum fornyelsestid', \r
+'max retries not set' => 'Maks antall nye forsøk ikke angitt.', \r
+'max size' => 'Maksimum objekt størrelse (KB):', \r
+'maximal' => 'Maksimum', \r
+'maximum retries' => 'Maks antall nye forsøk:', \r
+'may' => 'Mai', \r
+'medium' => 'Middels', \r
+'memory' => 'Minne', \r
+'memory usage per' => 'Minneforbruk pr.', \r
+'method' => 'Metode:', \r
+'min size' => 'Minimum objektstørrelse (KB):', \r
+'minutes' => 'Minutter', \r
+'missing dat' => 'Fant ingen kryptert arkivfil', \r
+'missing gz' => 'Fant ingen ukryptert arkivfil', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Modemoppsett', \r
+'modem on com1' => 'Modem på COM1', \r
+'modem on com2' => 'Modem på COM2', \r
+'modem on com3' => 'Modem på COM3', \r
+'modem on com4' => 'Modem på COM4', \r
+'modem on com5' => 'Modem på COM5', \r
+'modem settings have errors' => 'Modeminnstillingene har feil', \r
+'modem speaker on' => 'Modemhøyttaler på:', \r
+'modulation' => 'Modulasjon', \r
+'monday' => 'Mandag', \r
+'month' => 'Måned', \r
+'months' => 'måned', \r
+'mounted on' => 'Montert på', \r
+'name' => 'Navn', \r
+'name is invalid' => 'Navnet er ugyldig', \r
+'name must only contain characters' => 'Navnet kan bare inneholde bokstaver.', \r
+'name too long' => 'Vertsnavn eller brukers egennavn er for langt', \r
+'nat-traversal' => 'Nat-traversal:', \r
+'net' => 'Nett', \r
+'net to net vpn' => 'Nett-til-nett-Virtuelt Privat Nettverk', \r
+'netmask' => 'Nettmaske', \r
+'network' => 'Nettverk', \r
+'network added' => 'Egendefinert nettverk lagt til', \r
+'network configuration' => 'Nettverksoppsett', \r
+'network removed' => 'Egendefinert nettverk fjernet', \r
+'network status information' => 'Nettverksstatusinformasjon', \r
+'network time' => 'Bruk en tidstjener (NTP)', \r
+'network time from' => 'Hent tid fra en tidstjener (NTP)', \r
+'network traffic graphs' => 'Nettverkstrafikkurver', \r
+'network updated' => 'Egendefinert nettverk oppdatert', \r
+'networks settings' => 'Brannmur - Nettverksoppsett', \r
+'new optionsfw later' => 'Endringen(e) vil aktiveres ved neste omstart', \r
+'new optionsfw must boot' => 'Du må starte IPCop på nytt', \r
+'newer' => 'Nyere', \r
+'next address' => 'Neste adresse', \r
+'no' => 'Nei', \r
+'no alcatelusb firmware' => 'Ingen Alcatel USB firmware. Vennligst last opp.', \r
+'no cfg upload' => 'Ingen data ble lastet opp', \r
+'no dhcp lease' => 'DHCP-leie ikke opprettet.', \r
+'no eciadsl synch.bin file' => 'Ingen ECI ADSL synch.bin-fil. Vennligst last opp.', \r
+'no fritzdsl driver' => 'Ingen Fritz!DSL-driver. Vennligst last opp.', \r
+'no information available' => 'Ingen informasjon tilgjengelig.', \r
+'no modem selected' => 'Modem ikke valgt', \r
+'no set selected' => 'Ikke noe sett ble valgt', \r
+'no time limit' => 'ubegrenset tid', \r
+'none found' => 'ingen funnet', \r
+'nonetworkname' => 'Nettverksnavn ikke oppgitt', \r
+'noservicename' => 'Tjenestenavn ikke oppgitt', \r
+'not a valid ca certificate' => 'Ugyldig sertifikatutstedersertifikat.', \r
+'not enough disk space' => 'Ikke nok diskplass', \r
+'not present' => '<B>Ikke</B> tilstede', \r
+'not running' => 'ikke startet', \r
+'november' => 'November', \r
+'ntp configuration' => 'NTP-oppsett', \r
+'ntp must be enabled to have clients' => 'NTP må være aktivert for å ha klienter.', \r
+'ntp server' => 'NTP-tjener', \r
+'ntp syncro disabled' => 'NTP-synkronisering deaktivert', \r
+'ntp syncro enabled' => 'NTP-synkronisering aktivert', \r
+'ntpd restarted' => 'ntpd er restartet', \r
+'number' => 'Nummer:', \r
+'october' => 'Oktober', \r
+'older' => 'Eldre', \r
+'online help en' => 'Online hjelp (på engelsk)', \r
+'only digits allowed in holdoff field' => 'Kun tall tillatt i holdoff-feltet', \r
+'only digits allowed in max retries field' => 'Kun tall tillatt under "Maks antall nye forsøk".', \r
+'only digits allowed in the idle timeout' => 'Kun tall tillatt under "Inaktivitetsperiode".', \r
+'only red' => 'Bare RØD', \r
+'open to all' => 'Overstyr ekstern tilgang for ALLE', \r
+'openssl produced an error' => 'OpenSSL ga en feilmelding', \r
+'options' => 'Innstillinger', \r
+'options fw' => 'Brannmur innstillinger', \r
+'optionsfw portlist hint' => 'Portlisten må være kommaseparert (f.eks. 137,138). Du kan angi maks. 15 porter pr. protokoll.', \r
+'optionsfw warning' => 'Endring av disse innstillingene krever omstart av brannmuren', \r
+'orange' => 'ORANSJE', \r
+'organization cant be empty' => 'Organisasjonsnavn må fylles ut.', \r
+'organization name' => 'Organisasjonsnavn', \r
+'organization too long' => 'Organisasjonsnavn er for lang; Det kan ikke være lenger enn 60 tegn.', \r
+'original' => 'Original', \r
+'other countries' => 'Andre land', \r
+'other login script' => 'Annet loginskript', \r
+'out' => 'Ut', \r
+'outgoing traffic in bytes per second' => 'Utgående trafikk i bytes pr. sekund', \r
+'package failed to install' => 'Installering av pakken feilet.', \r
+'pap or chap' => 'PAP eller CHAP', \r
+'password' => 'Passord:', \r
+'password contains illegal characters' => 'Passordet inneholder ugyldige tegn.', \r
+'password not set' => 'Passord ikke angitt.', \r
+'password too short' => 'Passordet er for kort.', \r
+'passwords do not match' => 'Passordene er ikke like.', \r
+'passwords must be at least 6 characters in length' => 'Passordet må være minst 6 tegn langt.', \r
+'percentage' => 'Prosentandel', \r
+'persistent' => 'Fast', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Fase1-gruppe', \r
+'phonebook entry' => 'Telefonkatalogoppføring:', \r
+'ping disabled' => 'Deaktiver ping-respons', \r
+'pkcs12 file password' => 'PKCS12-filpassord', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Portvideresendingsoppsett', \r
+'ports' => 'Porter', \r
+'pots' => 'Analog klassisk linje', \r
+'ppp setup' => 'PPP-oppsett', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Flere PPPoE-innstillinger:', \r
+'pptp settings' => 'Flerer PPTP-innstillinger:', \r
+'pre-shared key is too short' => 'Forhåndsutdelt nøkkel er for kort.', \r
+'present' => 'Tilstede', \r
+'primary dns' => 'Primær DNS:', \r
+'primary ntp server' => 'Primær NTP-tjener', \r
+'primary wins server address' => 'Primær WINS-tjeneradresse', \r
+'priority' => 'Prioritet', \r
+'profile' => 'Profil', \r
+'profile deleted' => 'Profil slettet: ', \r
+'profile has errors' => 'Profilen har feil', \r
+'profile made current' => 'Profil gjort gjeldende: ', \r
+'profile name' => 'Profilnavn:', \r
+'profile name not given' => 'Profilnavn ikke angitt.', \r
+'profile saved' => 'Profil lagret: ', \r
+'profiles' => 'Profiler', \r
+'proto' => 'Proto', \r
+'protocol' => 'Protokoll', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Proxyaksesskurver', \r
+'proxy log viewer' => 'Proxyloggvisning', \r
+'proxy logs' => 'Proxylogg', \r
+'proxy port' => 'Proxyport', \r
+'psk' => 'PSK', \r
+'pulse' => 'Puls', \r
+'pulse dial' => 'Pulsoppringning:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Leste sektorer', \r
+'reboot' => 'Start på nytt', \r
+'reboot schedule' => 'Tidsplan for omstart av IPCop', \r
+'rebooting' => 'Starter på nytt', \r
+'rebooting ipcop' => 'Starter IPCop på nytt', \r
+'reconnection' => 'Gjenoppkobling', \r
+'references' => 'Referanser', \r
+'refresh' => 'Oppfrisk', \r
+'refresh index page while connected' => 'Oppfrisk index.cgi når tilkoblet', \r
+'refresh update list' => 'Oppfrisk oppdateringsliste', \r
+'registered user rules' => 'Sourcefire VRT regler for registrerte brukere', \r
+'released' => 'Utgitt', \r
+'remark' => 'Merknad', \r
+'remark title' => 'Merknad:', \r
+'remote access' => 'Fjerntilgang', \r
+'remote host/ip' => 'Ikke-lokal vert/IP', \r
+'remote logging' => 'Fjernlogging', \r
+'remote subnet' => 'Fjernsubnett:', \r
+'remote subnet is invalid' => 'Fjernsubnett er ugyldig.', \r
+'remove' => 'Fjern', \r
+'remove ca certificate' => 'Fjern sertifikatustedersertifikat', \r
+'reserved dst port' => 'Målporten er reservert for bruk av IPCop:', \r
+'reserved src port' => 'Kildeporten er reservert for bruk av IPCop:', \r
+'reset' => 'Tilbakestill', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Resetting av VPN-innstillingene vil fjerne rotsertifikat, tjenersertifikat og alle sertifikat basert på oppkoblinger', \r
+'restart' => 'Restart', \r
+'restore' => 'Gjenopprett', \r
+'restore defaults' => 'Gjenopprett standarder', \r
+'restore hardware settings' => 'Gjenopprett maskinvareoppsett', \r
+'reverse sort' => 'Sorter i omvendt kronologisk rekkefølge', \r
+'root certificate' => 'Rotsertifikat', \r
+'root path' => 'Root-filsti', \r
+'router ip' => 'Router-IP-adresse:', \r
+'routing table entries' => 'Routingtabelloppføringer', \r
+'rsvd dst port overlap' => 'Målportområdet overlapper en port som er reservert IPCop:', \r
+'rsvd src port overlap' => 'Kildeportområdet overlapper en port som er reservert IPCop:', \r
+'rules already up to date' => 'Reglene er allerede oppdatert', \r
+'running' => '&nbsp;KJØRER&nbsp;', \r
+'saturday' => 'Lørdag', \r
+'save' => 'Lagre', \r
+'save error' => 'Klarte ikke lagre oppsettarkivfil', \r
+'script name' => 'Skriptnavn:', \r
+'secondary dns' => 'Sekundær DNS:', \r
+'secondary ntp server' => 'Sekundær NTP-tjener', \r
+'secondary wins server address' => 'Sekundær WINS-tjeneradresse', \r
+'seconds' => 'Sek.', \r
+'section' => 'Seksjon', \r
+'sectors read from disk per second' => 'Sektorer lest fra disk pr. sekund', \r
+'sectors written to disk per second' => 'Sektorer skrevet til disk pr. sekund', \r
+'secure shell server' => 'SSH-tjener', \r
+'select' => 'Velg', \r
+'select dest net' => 'Velg et målnett.', \r
+'select source net' => 'Velg et kildenett. Hvis du ikke har konfigurert Oransje eller Blått nett trenger du ingen DMZ-nåløyer.', \r
+'send cr' => 'ISP krever Carriage Return:', \r
+'september' => 'September', \r
+'serial' => 'Seriell', \r
+'service' => 'Tjeneste', \r
+'service added' => 'Egendefinert nettverkstjeneste lagt til', \r
+'service name' => 'Tjenestenavn:', \r
+'service removed' => 'Egendefinert nettverkstjeneste fjernet', \r
+'service updated' => 'Egendefinert nettverkstjeneste oppdatert', \r
+'servicename' => 'Tjenestenavn', \r
+'services' => 'Tjenester', \r
+'services settings' => 'Brannmur - Tjenesteoppsett', \r
+'set time now' => 'Still klokken nå', \r
+'set time now help' => 'For å starte en synkronisering (selv om det benyttes en repeterende plan) trykk på knappen <i>Still klokken nå</i>. Vær oppmerksom på at det kan gå fem minutter eller mer før synkroniseringen skjer.', \r
+'settings' => 'Innstillinger', \r
+'shaping add options' => 'Legg til tjeneste', \r
+'shaping list options' => 'Trafikkforming tjenester', \r
+'shared' => 'delt', \r
+'shared memory' => 'Delt minne', \r
+'show ca certificate' => 'Vis sertifikatustedersertifikat', \r
+'show certificate' => 'Vis sertifikat', \r
+'show host certificate' => 'Vis tjenersertifikat', \r
+'show root certificate' => 'Vis rotsertifikat', \r
+'shutdown' => 'Avslutt', \r
+'shutdown control' => 'Avslutningskontroll', \r
+'shutdown2' => 'Avslutt:', \r
+'shutting down' => 'Avslutter', \r
+'shutting down ipcop' => 'Avslutter IPCop', \r
+'size' => 'Størrelse', \r
+'snort hits' => 'Totalt antall innbruddsregler aktivert for', \r
+'sort ascending' => 'Sorter stigende', \r
+'sort descending' => 'Sorter synkende', \r
+'sound' => 'Lyd', \r
+'source' => 'Kilde', \r
+'source ip' => 'Kilde-IP', \r
+'source ip and port' => 'Kilde-IP:Port', \r
+'source ip bad' => 'Ikke en gyldig IP-adresse eller en nettverksadresse.', \r
+'source ip in use' => 'Kilde-IP som brukes:', \r
+'source ip or net' => 'Kilde IP eller nett', \r
+'source net' => 'Kildenett', \r
+'source network' => 'Kilde-IP, eller nettverk (blank for "ALLE"):', \r
+'source port' => 'Kildeport', \r
+'source port in use' => 'Kildeport i bruk:', \r
+'source port numbers' => 'Kildeporten må være et gyldig portnummer eller portområde.', \r
+'source port overlaps' => 'Kildeportområdet overlapper et eksisterende portområde.', \r
+'speaker off' => 'Høyttaler av:', \r
+'speaker on' => 'Høyttaler på:', \r
+'src port' => 'Kildeport', \r
+'srcprt range overlaps' => 'Kildeportområdet overlapper en port som allerede er definert.', \r
+'srcprt within existing' => 'Kildeporten er innenfor et område som allerede er definert.', \r
+'ssdmz pinholes' => 'DMZ nåløyer', \r
+'ssh access' => 'SSH-tilgang', \r
+'ssh fingerprint' => 'Fingeravtrykk', \r
+'ssh host keys' => 'SSH-vertsnøkler', \r
+'ssh is disabled' => 'SSH is deaktivert.  Stopper.', \r
+'ssh is enabled' => 'SSH er aktivert.  Restarter.', \r
+'ssh key' => 'Nøkkel', \r
+'ssh key size' => 'Størrelse (bits)', \r
+'ssh keys' => 'Tillat autentisering basert på public key', \r
+'ssh no auth' => 'Du har ikke tillatt noen autentiseringsmetode. Dette gjør at du ikke kan logge inn.', \r
+'ssh passwords' => 'Tillat autentisering basert på passord', \r
+'ssh portfw' => 'Tillat TCP-videresending', \r
+'ssh1 disabled' => 'SSHv1 er deaktivert, en klient for versjon 2 må benyttes.', \r
+'ssh1 enabled' => 'SSHv1 er aktivert, eldre klienter er støttet.', \r
+'ssh1 support' => 'Støtte for SSH-protokoll versjon 1 (bare nødvendig for eldre klienter)', \r
+'ssnetwork status' => 'Nettverksstatus', \r
+'sspasswords' => 'Passord', \r
+'ssport forwarding' => 'Videresending av porter', \r
+'ssproxy graphs' => 'Proxykurver', \r
+'sssystem status' => 'Systemstatus', \r
+'sstraffic graphs' => 'Trafikkurver', \r
+'standard login script' => 'Standard loginskript', \r
+'start address' => 'Startadresse:', \r
+'state or province' => 'Stat eller område', \r
+'static ip' => 'Statisk IP', \r
+'status' => 'Status', \r
+'status information' => 'Statusinformasjon', \r
+'stopped' => 'STOPPET', \r
+'subject' => 'Emne', \r
+'subnet is invalid' => 'Nettmaske er ugyldig', \r
+'subscripted user rules' => 'Sourcefire VRT regler med abonnement', \r
+'successfully refreshed updates list' => 'Vellykket oppdatering av oppdateringslisten.', \r
+'summaries kept' => 'Behold sammendrag i', \r
+'sunday' => 'Søndag', \r
+'swap' => 'Veksleminne', \r
+'swap usage per' => 'Veksleminneforbruk pr.', \r
+'system cpu' => 'System-CPU', \r
+'system cpu usage' => 'System-CPU-forbruk', \r
+'system graphs' => 'Systemkurver', \r
+'system log viewer' => 'Systemloggvisning', \r
+'system logs' => 'Systemlogg', \r
+'system status information' => 'Systemstatusinformasjon', \r
+'telephone not set' => 'Telefonnummer ikke angitt.', \r
+'the following update was successfully installed' => 'Følgende oppdatering ble installert', \r
+'the statistics were last updated at' => 'Statistikken ble sist oppdatert', \r
+'there are updates' => 'Oppdateringer er tilgjengelig for dette systemet. Gå til <b>System > Oppdateringer</b> for mer informasjon.', \r
+'there are updates available' => 'Oppdateringer er tilgjengelig for dette systemet. Det anbefales sterkt å installere dem så raskt som mulig.', \r
+'there was no file upload' => 'Ingen filer ble lastet opp.', \r
+'this feature has been sponsored by' => 'Denne egenskapen er sponset av', \r
+'this field may be blank' => 'Dette feltet kan være tomt.', \r
+'this is not a valid archive' => 'Dette er ikke en gyldig arkivfil.', \r
+'this is not an authorised update' => 'Dette er ikke en autorisert oppdatering.', \r
+'this update is already installed' => 'Denne oppdateringen er allerede installert.', \r
+'thursday' => 'Torsdag', \r
+'time' => 'Tid', \r
+'time date manually reset' => 'Tid/dato manuell tilbakestilling.', \r
+'time server' => 'Tidstjener', \r
+'timeout must be a number' => 'Tidsavbrudd må være et tall.', \r
+'title' => 'Tittel', \r
+'to' => 'Til', \r
+'to install an update' => 'For å installere en oppdatering laster du opp .tgz.gpg-filen nedenfor:', \r
+'toggle enable disable' => 'Aktiver eller deaktiver', \r
+'tone' => 'Tone', \r
+'tone dial' => 'Toneoppringning:', \r
+'total hits for log section' => 'Totale treff for loggseksjon', \r
+'traffic on' => 'Trafikk på', \r
+'traffic shaping' => 'Trafikkforming', \r
+'traffic shaping settings' => 'Trafikkformingsinnstillinger', \r
+'transfer limits' => 'Overføringsgrenser', \r
+'transparent on' => 'Transparent på', \r
+'tuesday' => 'Tirsdag', \r
+'type' => 'Type', \r
+'unable to alter profiles while red is active' => 'Kan ikke endre profiler mens RØD er aktiv.', \r
+'unable to contact' => 'Klarte ikke kontakte', \r
+'unencrypted' => 'Ukryptert', \r
+'unknown' => 'UKJENT', \r
+'unnamed' => 'Uten navn', \r
+'update' => 'Oppdater', \r
+'update time' => 'Oppdater klokken', \r
+'update transcript' => 'Oppdateringslogg', \r
+'updates' => 'Oppdateringer', \r
+'updates installed' => 'Oppdateringer installert', \r
+'updates is old1' => 'Oppdateringsfilen er ', \r
+'updates is old2' => 'gammel.<br>Det anbefales at du oppdaterer den under <b>System > Oppdateringer</b>.', \r
+'uplink speed' => 'Oppstrømshastighet (kbit/sek)', \r
+'upload' => 'Last opp', \r
+'upload a certificate' => 'Last opp et sertifikat:', \r
+'upload a certificate request' => 'Last opp en sertifikatsforespørsel:', \r
+'upload ca certificate' => 'Last opp sertifikatutstedersertifikat', \r
+'upload fcdsl.o' => 'Last opp fcdsl.o', \r
+'upload file' => 'Last opp fil', \r
+'upload p12 file' => 'Last opp PKCS12-fil', \r
+'upload successful' => 'Opplasting vellykket.', \r
+'upload synch.bin' => 'Last opp synch.bin', \r
+'upload update file' => 'Last opp oppdatering:', \r
+'upstream password' => 'Oppstrømspassord:', \r
+'upstream proxy host:port' => 'Oppstrømsproxy (vert:port)', \r
+'upstream username' => 'Oppstrømsbrukernavn:', \r
+'uptime and users' => 'Oppetid og brukere', \r
+'usb modem on acm0' => 'USB modem på ACM0', \r
+'usb modem on acm1' => 'USB modem på ACM1', \r
+'usb modem on acm2' => 'USB modem på ACM2', \r
+'usb modem on acm3' => 'USB modem på ACM3', \r
+'use' => 'Bruk', \r
+'use a pre-shared key' => 'Bruk en forhåndsutdelt nøkkel:', \r
+'use dov' => 'Bruk DOV (Data Over Voice):', \r
+'use ibod' => 'Bruk Bandwidth on Demand (iBOD):', \r
+'use ipcop red ip' => 'Den klassiske RØDE IP brukt av IPCop ved tilkobling', \r
+'use only proposed settings' => 'Bruk bare foreslåtte innstillinger.', \r
+'used' => 'I bruk', \r
+'used memory' => 'Brukt minne', \r
+'used swap' => 'Brukt veksleminne', \r
+'user cpu' => 'Bruker-CPU', \r
+'user cpu usage' => 'Bruker-CPU-forbruk', \r
+'username' => 'Brukernavn:', \r
+'username not set' => 'Brukernavn ikke angitt.', \r
+'users department' => 'Brukers avdeling', \r
+'users email' => 'Brukers e-postadresse', \r
+'users fullname or system hostname' => 'Vertsnavn eller brukers egennavn', \r
+'valid root certificate already exists' => 'Gyldig rotsertifikat ekisterer allerede.', \r
+'vci number' => 'VCI-nummer:', \r
+'virtual private networking' => 'Virtuelt Privat Nettverk', \r
+'vpi number' => 'VPI-nummer:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN-oppsett - Hovedside', \r
+'vpn delayed start' => 'Pause før oppstart av VPN (sekunder)', \r
+'vpn delayed start help' => 'Ved behov kan denne pausen benyttes for å la dynamisk DNS oppdateres først. 60 er en vanlig verdi når RØD er en dynamisk IP.', \r
+'vpn on blue' => 'VPN på BLÅ', \r
+'waiting to synchronize clock' => 'Venter på synkronisering av klokken', \r
+'warning messages' => 'Advarsler', \r
+'web hits' => 'Totalt antall vevsider som passer til valgte kriterier for', \r
+'web proxy' => 'Vevproxy', \r
+'web proxy configuration' => 'Vevproxyoppsett', \r
+'web server' => 'Vevtjener', \r
+'website' => 'Vevsted', \r
+'wednesday' => 'Onsdag', \r
+'week' => 'Uke', \r
+'weeks' => 'uker', \r
+'wildcards' => 'Jokertegn', \r
+'wireless' => 'Trådløst', \r
+'wireless config added' => 'Trådløsinnstillinger lagt til', \r
+'wireless config changed' => 'Trådløsinnstillinger endra', \r
+'wireless configuration' => 'Trådløsoppsett', \r
+'written sectors' => 'Skrevne sektorer', \r
+'xtaccess all error' => 'Du kan ikke sette opp ekstern tilgang til ALLE, det gjøres med portvideresending.', \r
+'year' => 'År', \r
+'yes' => 'Ja', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Du kan bare definere én Roadwarrior-forbindelse når du bruker forhåndsutdelt nøkkelautentisering.<br />Enten har du allerede en Roadwarrior-forbindelse med forhåndsutdelt nøkkelautentisering eller du prøver å legge til en nå.', \r
+'your department' => 'Din avdeling', \r
+'your e-mail' => 'Din e-mailadresse', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/no/install/CVS/Entries b/langs/no/install/CVS/Entries
new file mode 100644 (file)
index 0000000..7b1d5a8
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_no.c/1.10.2.7/Mon Dec 12 09:23:29 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/no/install/CVS/Repository b/langs/no/install/CVS/Repository
new file mode 100644 (file)
index 0000000..d155770
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/no/install
diff --git a/langs/no/install/CVS/Root b/langs/no/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/no/install/CVS/Tag b/langs/no/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/no/install/lang_no.c b/langs/no/install/lang_no.c
new file mode 100644 (file)
index 0000000..2b7f0d6
--- /dev/null
@@ -0,0 +1,510 @@
+/*\r
+ * Norwegian (no) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Morten Grendal, Alexander Dawson, Mounir S. Chermiti, \r
+ * Runar Skraastad, Alf-Ivar Holm\r
+ * \r
+ *  \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *no_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Adresseinnstillinger",\r
+/* TR_ADMIN_PASSWORD */\r
+"Adminpassord",\r
+/* TR_AGAIN_PROMPT */\r
+"Gjenta:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Alle kort fikk tildelt drivere.",\r
+/* TR_AUTODETECT */\r
+"* AUTOSØK *",\r
+/* TR_BUILDING_INITRD */\r
+"Bygger INITRD...",\r
+/* TR_CANCEL */\r
+"Avbryt",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Tildel kort",\r
+/* TR_CHECKING */\r
+"Sjekker URL...",\r
+/* TR_CHECKING_FOR */\r
+"Søker etter: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Velg ISDN-kortet som er installert i denne maskinen.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Velg ISDN-protokollen du behøver.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Sett opp DHCP-tjeneren ved å skrive inn innstillingsinformasjonen.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Oppsett av nettverket",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Du skal nå sette opp nettverket ved først å laste korrekt driver for det GRØNNE grensesnittet. Du kan gjøre dette enten ved autosøking etter nettverkskort, eller ved å velge riktig driver fra en liste. Merk deg at hvis du har mer enn ett nettverkskort vil du kunne sette opp de andre senere i installasjonen. Hvis du har mer enn ett kort av samme type som det GRØNNE og hvert kort krever spesielle modulparametere bør du skrive inn parametere for alle kort samtidig, slik at alle kort kan bli aktivert når du setter opp det GRØNNE grensesnittet.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Sett opp nettverksdrivere og hvilket grensesnitt hvert kort skal tildeles.  Gjeldende oppsett er som følger:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Konfigurer CDROM ved å velge riktig IO-adresse og/eller IRQ.",\r
+/* TR_CONGRATULATIONS */\r
+"Gratulerer!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"Installasjonen av %s var vellykket. Fjern evt. diskett eller CDROM fra maskinen. Nå kjøres oppsettet, hvor du kan sette opp ISDN, nettverkskort og systempassordene. Etter at oppsettet er fullført bør du åpne http://%s:81 eller https://%s:445 (eller hva du har kalt din %s) i nettleseren din, og sette opp oppringt forbindelse (hvis nødvendig) og fjerntilgang. Husk å sette et passord for %s modembruker hvis du ønsker at andre enn %s administratorer skal kunne kontrollere forbindelsen.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Harddisken din er veldig liten, men du kan fortsette uten vekslefil (brukes med varsomhet).",\r
+/* TR_CURRENT_CONFIG */\r
+"Gjeldende oppsett: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Standard gateway:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Standard gateway\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Standard leietid (min.):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Standard leietid\n",\r
+/* TR_DETECTED */\r
+"Fant et: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"DHCP-vertsnavn:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"DHCP-vertsnavn\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"DHCP-tjeneroppsett",\r
+/* TR_DISABLED */\r
+"Deaktivert",\r
+/* TR_DISABLE_ISDN */\r
+"Deaktiver ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"Harddisken din er for liten.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"DNS- og gatewayinnstillinger",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Skriv inn DNS- og gatewayinformasjon. Disse innstillingene blir bare brukt hvis DHCP er deaktivert på det RØDE grensesnittet.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Gjeldende oppsett benytter ikke et ethernetkort for sitt RØDE grensesnitt.  DNS- og gatewayinformasjon for oppringte brukere blir satt opp automatisk når oppringning foretas.",\r
+/* TR_DOMAINNAME */\r
+"Domenenavn",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Domenenavn kan ikke være tomt.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Domenenavn kan ikke inneholde mellomrom.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Domenenavn kan bare inneholde bokstaver, tall, bindestrek og punktum.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Domenenavnsuffiks:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Domenenavnsuffiks\n",\r
+/* TR_DONE */\r
+"Ferdig",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nVil du endre disse innstillingene?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Tildeling av kort og drivere",\r
+/* TR_ENABLED */\r
+"Aktivert",\r
+/* TR_ENABLE_ISDN */\r
+"Aktiver ISDN",\r
+/* TR_END_ADDRESS */\r
+"Sluttadresse:",\r
+/* TR_END_ADDRESS_CR */\r
+"Sluttadresse\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Noen ISDN-kort (spesielt ISA) behøver ekstra modulparametere for å sette IRQ- og IO-adresseinformasjon. Hvis du har et slikt ISDN-kort kan du skrive inn disse ekstra parameterene her. F.eks.: \"io=0x280 irq=9\". Dette vil bli brukt ved søking etter kort.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Skriv inn %s 'admin'-passord. Denne brukeren benyttes ved innlogging på %s vevadministrasjonssidene.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Skriv inn domenenavn",\r
+/* TR_ENTER_HOSTNAME */\r
+"Skriv inn maskinens vertsnavn.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Skriv inn IP-adresseinformasjonen",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Klarte ikke finne nettverkskort automatisk. Skriv inn driveren og eventuelle parametere for nettverkskortet.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Skriv inn 'root'-passordet. Logg inn som 'root' for kommandolinjetilgang.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Skriv inn 'setup'-passord. Logg inn som 'setup' for tilgang til oppsettprogrammet.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Skriv inn IP-adresseinformasjonen for %s grensesnitt.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Skriv inn lokalt telefonnummer (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Skriv inn URL-banen til filene ipcop-<versjon>.tgz og images/scsidrv-<versjon>.img. OBS: DNS er ikke tilgjengelig! Adressen skal være i formatet http://X.X.X.X/<mappe>",\r
+/* TR_ERROR */\r
+"Feil",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Feil ved skriving av oppsettinformasjon.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Pakker ut moduler...",\r
+/* TR_FAILED_TO_FIND */\r
+"Klarte ikke finne URL-filen.",\r
+/* TR_FOUND_NIC */\r
+"%s fant følgende nettverkskort i maskinen: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"Tysk 1TR6",\r
+/* TR_HELPLINE */\r
+"             <Tab>/<Alt-Tab> mellom elementer  |  <Mellomrom> velger",\r
+/* TR_HOSTNAME */\r
+"Vertsnavn",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Vertsnavn kan ikke være blankt.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Vertsnavn kan ikke inneholde mellomrom.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Vertsnavn kan bare inneholde bokstaver, tall og bindestreker.",\r
+/* TR_INITIALISING_ISDN */\r
+"Starter ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Sett inn %s CD-en i CDROM-spilleren.",\r
+/* TR_INSERT_FLOPPY */\r
+"Sett inn %s driverdiskett i diskettstasjonen.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Installasjon avbrutt.",\r
+/* TR_INSTALLING_FILES */\r
+"Installerer filer...",\r
+/* TR_INSTALLING_GRUB */\r
+"Installerer GRUB...",\r
+/* TR_INTERFACE */\r
+"%s grensesnitt",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Grensesnittet startet ikke.",\r
+/* TR_INVALID_FIELDS */\r
+"Følgende felt er ugyldige:\n\n",\r
+/* TR_INVALID_IO */\r
+"Valgt IO-adresse er ugyldig. ",\r
+/* TR_INVALID_IRQ */\r
+"Valgt IRQ er ugyldig.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP-adresse\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP-adresse:",\r
+/* TR_ISDN_CARD */\r
+"ISDN-kort",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"ISDN-kort ikke funnet. Du må kanskje angi ekstra modulparametere hvis kortet er av typen ISA eller det har spesielle krav.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"ISDN-kort valg",\r
+/* TR_ISDN_CONFIGURATION */\r
+"ISDN-oppsett",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"ISDN-oppsettmeny",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN ikke satt opp. Noen punkter har ikke blitt valgt.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN har ikke blitt satt opp enda. Velg punktet du vil sette opp.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"ISDN-protokollvalg",\r
+/* TR_ISDN_STATUS */\r
+"Gjeldende ISDN er %s.\n\n   Protokoll: %s\n   Kort: %s\n   Lokalt telefonnummer: %s\n\nVelg punktet du vil endre, eller bruk gjeldende innstillinger.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Tastaturoppsett",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Velg typen tastatur du bruker ved å velge fra listen under.",\r
+/* TR_LEASED_LINE */\r
+"Leid linje",\r
+/* TR_LOADING_MODULE */\r
+"Laster modul...",\r
+/* TR_LOADING_PCMCIA */\r
+"Laster PCMCIA-moduler...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Søker etter: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Oppretter bootfilsystem...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Oppretter loggfilsystem...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Oppretter rootfilsystem...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Oppretter veksleområde...",\r
+/* TR_MANUAL */\r
+"* MANUELL *",\r
+/* TR_MAX_LEASE */\r
+"Maks leietid (min.):",\r
+/* TR_MAX_LEASE_CR */\r
+"Maks leietid\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Mangler IP-informasjon for BLÅTT grensesnitt.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Mangler IP-informasjon for ORANSJE grensesnitt.",\r
+/* TR_MISSING_RED_IP */\r
+"Mangler IP-informasjon for RØDT grensesnitt.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Modulnavnet kan ikke være blankt.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Skriv inn modulnavnet og parametere for den ønskede driveren.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Monterer bootfilsystem...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Monterer loggfilsystem...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Monterer rootfilesystem...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Monterer swapområde...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Lokalt telefonnummer (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Nettverksmaske:",\r
+/* TR_NETWORKING */\r
+"Nettverk",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Nettverksadresse\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Nettverksadresse:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Nettverksoppsettmeny",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Velg nettverksoppsett",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Velg nettverksoppsett for %s. Følgende typer oppsett viser grensesnittene som har ethernet tilkoblet. Hvis du endrer dette oppsettet må nettverket startes på nytt, og du må sette opp tildelingen av nettverksdriver på nytt.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Nettverksmaske\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Nettverksoppsett feilet.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"For få kort er tildelt.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"BLÅTT grensesnitt ikke tildelt.",\r
+/* TR_NO_CDROM */\r
+"Ingen CD-ROM funnet.",\r
+/* TR_NO_HARDDISK */\r
+"Ingen harddisk funnet.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Fant ikke IPCop-tarball på vevtjeneren.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"ORANSJE grensesnitt ikke tildelt.",\r
+/* TR_NO_RED_INTERFACE */\r
+"RØDT grensesnitt ikke tildelt.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Fant ikke SCSI-image på vevtjeneren.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Det finnes ikke flere ledige kort, men flere er nødvendig. Du kan bruke autosøk for å finne flere kort, eller velge en driver fra listen.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Partisjonerer disken...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Passordene er ikke like.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Passordet kan ikke være blankt.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Passordet kan ikke inneholde mellomrom.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Passord:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Telefonnummer kan ikke være blankt.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Installasjonsprogrammet vil nå forberede harddisken på %s. Først vil disken bli partisjonert, og så vil filsystem bli opprettet på partisjonene.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Trykk Ok for å starte på nytt.",\r
+/* TR_PRIMARY_DNS */\r
+"Primær DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Primær DNS\n",\r
+/* TR_PROBE */\r
+"Søk",\r
+/* TR_PROBE_FAILED */\r
+"Autosøk feilet.",\r
+/* TR_PROBING_SCSI */\r
+"Søker etter SCSI-enheter...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Problem ved setting av 'admin'-passord.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Problem ved setting av 'root'-passord.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Problem ved setting av 'setup'-passord.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protokoll/Land",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Tar opp nettverket...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Tar ned nettverket...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Tar ned eksternt nettverk...",\r
+/* TR_QUIT */\r
+"Avslutt",\r
+/* TR_RED_IN_USE */\r
+"ISDN (eller en annen ekstern tilkobling) er i bruk.  Du kan ikke sette opp ISDN mens RØDT grensesnitt er aktivt.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nNår oppsettet er fullført må nettverket startes på nytt.",\r
+/* TR_RESTORE */\r
+"Gjenopprett",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Hvis du har en diskett med %s systemoppsett, sett den i diskettstasjonen og trykk gjenopprett-knappen.",\r
+/* TR_ROOT_PASSWORD */\r
+"'root'-passord",\r
+/* TR_SECONDARY_DNS */\r
+"Sekundær DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Sekundær DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Sekundær DNS er angitt uten en primær DNS",\r
+/* TR_SECTION_MENU */\r
+"Seksjonsmeny",\r
+/* TR_SELECT */\r
+"Velg",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Velg CDROM-type",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Ingen CDROM ble funnet i denne maskinen.  Velg hvilken av de følgende driverene du vil bruke slik at %s kan få tilgang til CDROM-en.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Velg installasjonsmedia",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s kan installeres fra flere kilder. Det enkleste er å bruke maskinens CDROM-spiller. Hvis maskinen ikke har CDROM-spiller, kan du installere fra en annen maskin på nettverket som har installasjonsfilene tilgjengelig via HTTP. I så fall behøves disketten med nettverksdrivere.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Velg nettverksdriver",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Velg nettverksdriver for kortet som er installert i maskinen. Hvis du velger MANUELL vil du få muligheten til å skrive inn driverens modulnavn og evt. parametere dersom driveren krever spesielle innstillinger, slik som ISA-kort.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Velg grensesnittet du vil endre.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Velg det du vil sette opp.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Setter %s 'admin'-passord...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Setter 'root'-passord...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Setter 'setup'-passord....",\r
+/* TR_SETUP_FINISHED */\r
+"Oppsettet er fullført. Trykk Ok for å starte maskinen på nytt.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Grunninstallasjonen ble ikke helt fullført. Du må forsikre deg om at oppsettet er fullstendig ved å kjøre oppsettet igjen fra skallet.",\r
+/* TR_SETUP_PASSWORD */\r
+"'setup'-passord",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Sett ekstra modulparametere",\r
+/* TR_SINGLE_GREEN */\r
+"Gjeldende oppsett er for ett enkelt GRØNT grensesnitt.",\r
+/* TR_SKIP */\r
+"Hopp over",\r
+/* TR_START_ADDRESS */\r
+"Startadresse:",\r
+/* TR_START_ADDRESS_CR */\r
+"Startadresse\n",\r
+/* TR_STATIC */\r
+"Statisk",\r
+/* TR_SUGGEST_IO */\r
+"(prøv %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(prøv %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Denne drivermodulen er allerede lastet.",\r
+/* TR_TIMEZONE */\r
+"Tidssone",\r
+/* TR_TIMEZONE_LONG */\r
+"Velg tidssonen du befinner deg i fra listen under.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Klarte ikke løse ut CDROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Klarte ikke pakke ut moduler.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Klarte ikke finne ekstra drivere.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Klarte ikke finne et ISDN-kort i denne maskinen. Du må kanskje angi ekstra modulparametere hvis kortet er av typen ISA eller det har spesielle krav.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Klarte ikke starte ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Klarte ikke installere filer.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Klarte ikke installere GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Klarte ikke laste drivermodulen.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Klarte ikke opprette bootfilsystem.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Klarte ikke opprette loggfilsystem.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Klarte ikke opprette rootfilsystem.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Klarte ikke opprette veksleområde.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Klarte ikke opprette symlenke /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Klarte ikke opprette symlenke /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Klarte ikke opprette symlenke /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Klarte ikke opprette symlenke /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Klarte ikke opprette symlenke /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Klarte ikke opprette symlenke /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Klarte ikke montere bootfilsystem.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Klarte ikke montere loggfilsystem.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Klarte ikke montere procfilsystem.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Klarte ikke montere rootfilsystem.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Klarte ikke montere veksleområde.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Klarte ikke åpne filen hosts.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Klarte ikke åpne innstillingsfilen",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Klarte ikke partisjonere disken.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Klarte ikke fjerne midlertidig nedlastede filer.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Klarte ikke sette vertsnavn.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Klarte ikke demontere CDROM/diskett.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Klarte ikke demontere harddisk.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Klarte ikke skrive /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Klarte ikke skrive /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Klarte ikke skrive /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Klarte ikke skrive /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Klarte ikke skrive /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Klarte ikke skrive %s/ethernet/innstillinger.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Klarte ikke skrive %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Klarte ikke skrive %s/main/innstillinger.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Et ethernetkort av type:\n%s er ikke tildelt noen driver.\n\nDu kan tildele dette til:",\r
+/* TR_UNKNOWN */\r
+"UKJENT",\r
+/* TR_UNSET */\r
+"IKKE SATT",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"ADVARSEL",\r
+/* TR_WARNING_LONG */\r
+"Hvis du endrer denne IP-adressen og du er fjerntilkoblet, vil forbindelsen til %s-maskinen bli brutt, og du må koble til på nytt mot den nye IP-adressen. Dette er en risikabel operasjon, og bør kun gjennomføres hvis du har fysisk tilgang til maskinen - i tilfelle noe skulle gå galt!",\r
+/* TR_WELCOME */\r
+"Velkommen til installasjonsprogrammet for %s. Velger du Avbryt i noen av de følgende skjermbildene vil maskinen startes på nytt.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Du har satt opp ett enkelt GRØNT grensesnitt som allerede er tildelt en driver.",\r
+}; \r
+  \r
diff --git a/langs/pl/CVS/Entries b/langs/pl/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/pl/CVS/Repository b/langs/pl/CVS/Repository
new file mode 100644 (file)
index 0000000..ffc555b
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/pl
diff --git a/langs/pl/CVS/Root b/langs/pl/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/pl/CVS/Tag b/langs/pl/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/pl/cgi-bin/CVS/Entries b/langs/pl/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..2d9f2e6
--- /dev/null
@@ -0,0 +1,2 @@
+/pl.pl/1.6.2.48/Thu Oct 20 12:41:36 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/pl/cgi-bin/CVS/Repository b/langs/pl/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..c323853
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/pl/cgi-bin
diff --git a/langs/pl/cgi-bin/CVS/Root b/langs/pl/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/pl/cgi-bin/CVS/Tag b/langs/pl/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl
new file mode 100644 (file)
index 0000000..ad198e0
--- /dev/null
@@ -0,0 +1,945 @@
+# Polish  (pl) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2004 Jack Korzeniowski, Piotr, Andrzej Zolnierowicz\r
+# (c) 2005 Remi Schleicher \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Certyfikat CA z tą nazwą już istnieje.', \r
+'a connection with this common name already exists' => 'Połączenie z tą nazwą publiczną już istnieje.', \r
+'a connection with this name already exists' => 'Połączenie z taką nazwą już istnieje.', \r
+'access allowed' => 'Dostęp dozwolony z:', \r
+'access refused with this oinkcode' => 'Dostęp zabroniony z kodem Oink', \r
+'action' => 'Akcja', \r
+'add' => 'Dodaj', \r
+'add a host' => 'Dodaj hosta:', \r
+'add a new rule' => 'Dodaj nową regułę:', \r
+'add device' => 'Dodaj urządzenie', \r
+'add network' => 'Dodaj sieć', \r
+'add new alias' => 'Dodaj nowy alias:', \r
+'add new lease' => 'Dodaj łącze stałe', \r
+'add service' => 'Dodaj usługę', \r
+'add xtaccess' => 'Dodaj połączenie zewn.', \r
+'added from dhcp lease list' => 'dodane z listy DHCP', \r
+'admin user password has been changed' => 'Zmieniono hasło uzytkownika admin', \r
+'administrator user password' => 'Hasło użytkownika Admin:', \r
+'adsl settings' => 'Ustawienia ADSL', \r
+'advanced' => 'Zaawansowane', \r
+'again' => 'Ponownie:', \r
+'alcatelusb help' => 'Aby używać modemu Speedtouch USB musisz wysłać firmware do twojego komputera z IPCop. Proszę ściągnąć plik <b>Embedded Firmware</b> ze strony speedtouch.com, rozpakować i wysłać właściwy plik dla twojego modemu: KQD6_3.xxx w wersji nowszej niż 4 lub ZZZL_3.xxx w wersji nowszej niż 4 używając poniższego formularza.', \r
+'alcatelusb upload' => 'Wgraj sterownik Speedtouch USB', \r
+'alias ip' => 'Alias IP', \r
+'aliases' => 'Aliases', \r
+'aliases not active' => 'Aliasy nie będą aktywne, chyba że interfejs RED ma STATYCZNY adres', \r
+'all' => 'Wszystkie', \r
+'all interfaces' => 'Wszystkie interfejsy', \r
+'all updates installed' => 'Wszystkie aktualizacje zainstalowano', \r
+'alt dialup' => 'Dialup', \r
+'alt home' => 'Home', \r
+'alt information' => 'Informacja', \r
+'alt logs' => 'Logi', \r
+'alt services' => 'Usługi', \r
+'alt system' => 'System', \r
+'alt vpn' => 'VPN-y', \r
+'and' => 'I', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Zastosuj teraz', \r
+'april' => 'Kwiecień', \r
+'archive not exist' => 'Archiwalna konfiguracja nie istnieje', \r
+'are you sure' => 'Czy jesteś pewny?', \r
+'arp table entries' => 'Wpisy w tabeli ARP:', \r
+'august' => 'Sierpień', \r
+'authentication' => 'Uwierzytelnianie:', \r
+'automatic' => 'Automatyczny', \r
+'available updates' => 'Dostępne aktualizacje:', \r
+'average' => 'Średnio', \r
+'avoid dod' => 'Nie używaj z opcją „Łącz na żądanie”. Używane jeśli twój IPCop znajduje się za NAT-em. Numer IP (CZERWONY) musi znajdować się w zarezerwowanym zakresie adresów IP, np.: 10/8, 172.16/12, 192.168/16', \r
+'back' => 'WSTECZ', \r
+'backup' => 'Kopia', \r
+'backup config floppy' => 'Kopia Konfiguracji - napęd dyskietek FDD', \r
+'backup configuration' => 'Kopia Konfiguracji:', \r
+'backup sets' => 'Zestawy Kopii', \r
+'backup to floppy' => 'Kopia na dyskietkę', \r
+'backupprofile' => 'Profil zapasowy', \r
+'bad characters in script field' => 'Nieprawidłowe znaki w polu skrypt', \r
+'bad characters in the telephone number field' => 'Nieprawidłowe znaki w polu numer telefonu.', \r
+'bad destination range' => 'Zakres <B>Porty Docelowe</B> ma dolną granicę większą lub równą górnej.', \r
+'bad ignore filter' => 'Nieprawidłowy filtr ignoruj:', \r
+'bad return code' => 'Błąd wykonania programu pomocniczego', \r
+'bad source range' => 'Zakres <B>Porty Źródłowe</B> ma dolną granicę większą lub równą górnej.', \r
+'beep when ppp connects or disconnects' => 'Sygnalizuj przy łączeniu/rozłącząniu IPCop', \r
+'behind a proxy' => 'Za serwerem Proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'BLUE', \r
+'blue access' => 'Dostęp Blue', \r
+'blue interface' => 'Interfejs BLUE ', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Błędny potok', \r
+'buffered memory' => 'Pamięć Buforowana', \r
+'buffers' => 'bufory', \r
+'bytes per second' => 'Bajty na sekundę.', \r
+'ca certificate' => 'Certyfikat CA', \r
+'ca name' => 'Nazwa CA', \r
+'cache management' => 'Zarządzanie Cache', \r
+'cache size' => 'Rozmiar Cache (MB)', \r
+'cached' => 'cached', \r
+'cached memory' => 'Pamięć "Keszowana" (cached)', \r
+'cancel' => 'Anuluj', \r
+'cannot enable both nat traversal and compression' => 'Nie można uaktywnić jednocześnie przeglądania NAT i kompresji.', \r
+'cannot enable ntp without specifying primary' => 'Nie mogę aktywować NTP bez określenia podstawowego serwera.', \r
+'cannot specify secondary dns without specifying primary' => 'Nie można ustawiać zapasowego DNS bez podania podstawowego.', \r
+'cannot specify secondary ntp without specifying primary' => 'Nie można ustawić zapasowego serwera NTP bez podania podstawowego.', \r
+'cannot specify secondary wins without specifying primary' => 'Nie można określić podrzędnego WINS bez określenia podstawowego.', \r
+'cant change certificates' => 'Nie mogę zmienić certyfikatów.', \r
+'cant enable xtaccess' => 'Odpowiednia reguła przekierowania portu jest nieczynna, dlatego nie można uruchomić zewnętrznego dostępu dla tej reguły.', \r
+'cant start openssl' => 'Nie mogę uruchomić OpenSSL', \r
+'caps all' => 'WSZYSTKIE', \r
+'capsclosed' => 'ZAMKNIĘTY', \r
+'capsopen' => 'OTWARTY', \r
+'capswarning' => 'OSTRZEŻENIE', \r
+'cert' => 'Certyfikat', \r
+'certificate' => 'Certyfikat', \r
+'certificate authorities' => 'Certyfikat Autentyczności', \r
+'certificate does not have a valid ca associated with it' => 'Certyfikat nie ma poprawnego połączonego z nim CA.', \r
+'certificate file move failed' => 'Przeniesienie pliku certyfikatu nie powiodło się', \r
+'cfg restart' => 'Sugeruje się ponowne uruchomienie systemu po odtworzeniu konfiguracji.', \r
+'chain' => 'Łańcuch', \r
+'change passwords' => 'Zmień hasła', \r
+'check vpn lr' => 'Sprawdź', \r
+'city' => 'Miasto', \r
+'clear cache' => 'Wyczyść Cache', \r
+'clenabled' => 'Serwer czasu dla LAN.', \r
+'click to disable' => 'Uruchomiony (kliknij aby zablokować)', \r
+'click to enable' => 'Zablokowany (kliknij aby uruchomić)', \r
+'clock has not been synchronized' => 'Zegar nie został zsynchronizowany', \r
+'clock last synchronized at' => 'Ostatnia synchronizacja zegara o', \r
+'common name' => 'Wspólna nazwa', \r
+'compression' => 'Kompresja:', \r
+'computer to modem rate' => 'Prędkość między komputerem i modemem:', \r
+'concentrator name' => 'Nazwa koncentratora:', \r
+'confirmation' => 'potwierdzenie', \r
+'connect on ipcop restart' => 'Połącz przy restarcie IPCop-a:', \r
+'connect the modem' => 'Podłącz modem', \r
+'connect timeout' => 'Czas połączenia:', \r
+'connected' => 'Połączony', \r
+'connecting' => 'Łączę ...', \r
+'connection' => 'Połączenie', \r
+'connection debugging' => 'Debugowanie połączenia', \r
+'connection status and controlc' => 'Stan i kontrola połączenia:', \r
+'connection tracking' => 'Śledzenie połączeń IPTables', \r
+'connection type' => 'Typ połączenia', \r
+'connection type is invalid' => 'Typ połączenia jest nieprawidłowy.', \r
+'connections' => 'Połączenia', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'połączenia są związane z tym CA. Skasowanie CA skasuje również te połączenia.', \r
+'could not be opened' => 'nie można otworzyć', \r
+'could not connect to' => 'Nie można połączyć się z', \r
+'could not connect to www ipcop org' => 'Nie można połączyć się z www.ipcop.org', \r
+'could not create directory' => 'Nie można stworzyć katalogu.', \r
+'could not download latest patch list' => 'Nie mogę wczytać listy poprawek (niepołączony).', \r
+'could not download latest updates' => 'Nie mogę wczytać aktualnych poprawek.', \r
+'could not download the available updates list' => 'Nie mogę wczytać listy dostępnych poprawek.', \r
+'could not open available updates file' => 'Nie mogę otworzyć pliku dostępnych poprawek.', \r
+'could not open installed updates file' => 'Nie mogę otworzyć pliku zainstalowanych poprawek', \r
+'could not open update information file' => 'Nie mogę otworzyć pliku z opisem poprawki. Plik poprawki jest uszkodzony.', \r
+'could not retrieve common name from certificate' => 'Nie mogę pobrać nazwy publicznej z certyfikatu.', \r
+'country' => 'Kraj', \r
+'cpu usage per' => 'Użycie CPU przez', \r
+'create' => 'Utwórz', \r
+'credits' => 'Credits', \r
+'cron server' => 'Usługa CRON', \r
+'current' => 'Bieżący', \r
+'current aliases' => 'Bieżące aliasy:', \r
+'current dhcp leases on blue' => 'Aktualne adresy przydzielone na intefejsie NIEBIESKIM', \r
+'current dynamic leases' => 'Bieżące łącza dzierżawione dynamicznie', \r
+'current fixed leases' => 'Bieżące łącza dzierżawione stałe', \r
+'current hosts' => 'Bieżące serwery:', \r
+'current profile' => 'Bieżący profil:', \r
+'current rules' => 'Bieżące reguły:', \r
+'custom networks' => 'Sieci własne', \r
+'custom services' => 'Własne usługi', \r
+'dat without key' => 'Zaszyfrowane archiwum nie może być rozpakowane bez hasła.', \r
+'date' => 'Data', \r
+'date not in logs' => 'Nie istnieją (lub tylko częściowo) logi dla danego dnia', \r
+'day' => 'Dzień', \r
+'day after' => 'Następny dzień', \r
+'day before' => 'Poprzedni dzień', \r
+'days' => 'dni', \r
+'ddns hostname added' => 'Nazwa dynamicznego serwera DNS dodana', \r
+'ddns hostname modified' => 'Dynamiczny DNS został zmodyfikowany', \r
+'ddns hostname removed' => 'Nazwa dynamicznego serwera DNS usunieta', \r
+'ddns minimize updates' => 'Minimalizuj aktualizacje: przed aktualizacją, porównaj wpis dns z adresem IP ', \r
+'ddns noip prefix' => 'Dla zmiennych IP, prefiks nazwy hosta z <b>%</b>', \r
+'december' => 'Grudzień', \r
+'def lease time' => 'Domyślny czas dzierżawy', \r
+'default lease time' => 'Domyślny czas dzierżawy (w minutach):', \r
+'default networks' => 'Domyślne sieci', \r
+'default renewal time' => 'Domyślny czas powtórzenia', \r
+'default services' => 'Domyślne usługi', \r
+'delete' => 'Usuń', \r
+'demon login script' => 'Skrypt Demon logowania', \r
+'description' => 'Opis', \r
+'dest ip and port' => 'Docel. IP:Port', \r
+'destination' => 'Miejsce docelowe', \r
+'destination ip' => 'Docelowe IP', \r
+'destination ip bad' => 'Niewłaściwe docelowe IP', \r
+'destination ip or net' => 'Docelowy adres IP lub zakres sieci', \r
+'destination net' => 'Sieć Docelowa', \r
+'destination port' => 'Port docelowy', \r
+'destination port numbers' => 'Port docelowy musi być właściwym numerem portu lub zakresem portów.', \r
+'destination port overlaps' => 'Zakres portów docelowych pokrywa się częściowo z istniejącym zakresem portów.', \r
+'detail level' => 'Poziom szczegółów', \r
+'device' => 'Urzędzenie', \r
+'devices on blue' => 'Interfejs Niebieski', \r
+'dhcp advopt add' => 'Dodaj opcje DHCP', \r
+'dhcp advopt added' => 'Opcja DHCP dodana', \r
+'dhcp advopt blank value' => 'Opcja DHCP wartość niemoże być pusta', \r
+'dhcp advopt custom definition' => 'Nazwa twojej opcji', \r
+'dhcp advopt definition' => 'Nazwa', \r
+'dhcp advopt definition exists' => 'Nazwa opcji już istnieje. Możesz tylko edytowaćlub usunuąć.', \r
+'dhcp advopt edit' => 'Edytuj opcje DHCP', \r
+'dhcp advopt help' => 'Lista opcji', \r
+'dhcp advopt list' => 'Dodatkowe opcje DHCP', \r
+'dhcp advopt modified' => 'Opcje DHCP zmodyfikowane', \r
+'dhcp advopt name' => 'Nazwa opcji', \r
+'dhcp advopt removed' => 'Usunięto opcję DHCP', \r
+'dhcp advopt scope' => 'Zakres opcji', \r
+'dhcp advopt scope global' => 'Ogólne', \r
+'dhcp advopt scope help' => 'Zakres globalny lub limit zakresu dla wybranych interfejsów.', \r
+'dhcp advopt unknown' => 'Opcja DHCP nie rozpoznana', \r
+'dhcp advopt value' => 'Wartość opcji', \r
+'dhcp allow bootp' => 'Zezwalaj na klientów bootp', \r
+'dhcp configuration' => 'Konfiguracja DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'Serwer DHCP', \r
+'dhcp server disabled' => 'Serwer DHCP jest niedostępny.  Zatrzymany.', \r
+'dhcp server disabled on blue interface' => 'Serwer DHCP niedostępny w interfejsie BLUE', \r
+'dhcp server enabled' => 'Serwer DHCP jest dostępny. Restartuje.', \r
+'dhcp server enabled on blue interface' => 'Serwer DHCP dostępny w interfejsie BLUE', \r
+'dial' => 'Połącz', \r
+'dial user password' => 'Hasło użytkownika "wdzwanianego":', \r
+'dial user password has been changed' => 'Hasło użytkownika "wdzwanianego" zostało zmienione.', \r
+'dialing mode' => 'Tryb wybierania:', \r
+'dialup settings' => 'Ustawienia połączenia Dialup', \r
+'disk access per' => 'Dostęp do dysku', \r
+'disk usage' => 'Użycie dysku:', \r
+'display' => 'Wyświetlanie', \r
+'display hostname in window title' => 'Wyświetl nazwe hosta w tytule okna', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Konfiguracja DMZ pinhole', \r
+'dmz pinhole rule added' => 'Reguła DMZ pinhole dodana; restartuje DMZ pinhole', \r
+'dmz pinhole rule removed' => 'Reguła DMZ pinhole usunięta; DMZ pinhole restartuje', \r
+'dmzpinholes for same net not necessary' => 'DMZ Pinholes nie są potrzebne dla tej samej sieci. Wybierz inną sieć źródłową lub docelową.', \r
+'dns check failed' => 'Błąd wyszukiwania DNSu', \r
+'dns proxy server' => 'serwer proxy DNS', \r
+'do not log this port list' => 'Pomiń ten port przy logowaniu (zmniejsza rozmiar logów)', \r
+'dod' => 'Łącz na żądanie', \r
+'dod for dns' => '„Łącz na żądanie” dla DNS:', \r
+'dod not compatible with ddns' => 'Usługa „Łącz na żądanie” (Dial on demand) nie współpracuje z usługą dynamicznego DNS', \r
+'dod waiting' => '„Łącz na żądanie” oczekuje', \r
+'domain' => 'Domena', \r
+'domain name' => 'Nazwa domeny', \r
+'domain name suffix' => 'Sufiks nazwy domeny:', \r
+'domain not set' => 'Domena nie ustawiona.', \r
+'downlink speed' => 'Szybkość Downlink (kbit/s)', \r
+'download ca certificate' => 'Pobierz certyfikat CA', \r
+'download certificate' => 'Pobierz certyfikat', \r
+'download host certificate' => 'Pobierz certyfikat hosta', \r
+'download new ruleset' => 'Ściągnij nowy zestaw reguł', \r
+'download pkcs12 file' => 'Pobierz plik PKCS12', \r
+'download root certificate' => 'Pobierz certyfikat root\'a', \r
+'dpd action' => 'Wykrywanie nieaktywnych węzłów (?!)', \r
+'driver' => 'Sterownik', \r
+'dst port' => 'Port Docel.', \r
+'dstprt range overlaps' => 'Zakres portów docelowych pokrywa częściowo porty już zdefiniowane.', \r
+'dstprt within existing' => 'Port docelowy znajduje się w zdefiniowanym już zakresie portów', \r
+'duplicate ip' => 'Wprowadzono zduplikowany adres IP', \r
+'duplicate ip bold' => 'Wielokrotne adresy IP są <b>pogrubione</b>', \r
+'duplicate mac' => 'Wprowadzono zduplikowany adres MAC', \r
+'duplicate name' => 'Ta nazwa jest już w użyciu, proszę wybrać inną.', \r
+'dyn dns source choice' => 'Dostawca dynamicznego DNS otrzyma adres IP dla tego komputera z IPCop z:', \r
+'dynamic dns' => 'Dynamiczny DNS', \r
+'dynamic dns client' => 'Klient dynamicznego DNS\'a', \r
+'e-mail address too long' => 'Podany e-mail jest za długi, adres nie powinien być dłuższy niż 40 znaków.', \r
+'eciadsl help' => 'W celu używania modemu ECI ADSL musisz załadować plik synch.bin do swojego komputera IPCop. Ściągnij plik ze strony ECIADSL a następnie załaduj plik <B>synch.bin</B> używając poniższego pola.', \r
+'eciadsl upload' => 'Załaduj plik synch.bin ECI ADSL', \r
+'edit' => 'Edytuj', \r
+'edit a rule' => 'Edytuj istniejącą regułę:', \r
+'edit advanced settings when done' => 'Edytuj ustawienia zaawansowane gdy wykonane.', \r
+'edit an existing alias' => 'Edytuj istniejący alias', \r
+'edit an existing host' => 'Edytuj istniejącego hosta', \r
+'edit an existing lease' => 'Edytuj istniejące łącze', \r
+'edit device' => 'Edytuj urządzenie', \r
+'edit hosts' => 'Edytuj Hosty', \r
+'edit network' => 'Edytuj sieć', \r
+'edit service' => 'Edytuj usługę', \r
+'empty' => 'Puste', \r
+'enable ignore filter' => 'Aktywuj filtr ignorowania', \r
+'enable javascript' => 'Aktywuj Javascript', \r
+'enable wildcards' => 'Aktywuj znaki zastępcze:', \r
+'enabled' => 'Aktywny:', \r
+'enabled on' => 'Aktywny', \r
+'enabledtitle' => 'Aktywny', \r
+'encapsulation' => 'Kapsułkowanie', \r
+'encrypted' => 'Szyfrowane', \r
+'end address' => 'Adres końcowy:', \r
+'err bk 1' => 'Błąd tworzenia archiwum', \r
+'err bk 2 key' => 'Błąd tworzenia pliku klucza', \r
+'err bk 3 tar' => 'Błąd w dodawaniu plików do archiwum', \r
+'err bk 4 gz' => 'Błąd kompresowania archiwum', \r
+'err bk 5 encrypt' => 'Błąd szyfrowania archiwum', \r
+'err rs 1' => 'Błąd odtwarzania archiwum', \r
+'err rs 6 decrypt' => 'Błąd rozszyfrowywania archiwum', \r
+'err rs 7 untartst' => 'Źle rozszyfrowane archiwum', \r
+'err rs 8 untar' => 'Błąd roztarowywania archiwum', \r
+'error messages' => 'Informacje o błędach:', \r
+'esp encryption' => 'Szyfrowanie ESP:', \r
+'esp grouptype' => 'ESP Grouptype:', \r
+'esp integrity' => 'ESP Integrity:', \r
+'esp keylife' => 'ESP Kelife:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP keylife powinien mieć wartość od 1 do 24 godzin.', \r
+'every' => 'Co każde', \r
+'excluding buffers and cache' => '-/+ bufory/cache', \r
+'expected' => 'Oczekiwane', \r
+'expires' => 'Traci ważność', \r
+'export' => 'Export', \r
+'external access' => 'Dostęp zewnętrzny', \r
+'external access configuration' => 'Konfiguracja dostępu zewnętrznego', \r
+'external access rule added' => 'Dodana reguła dostępu zewnętrznego, restartuje kontroler dostępu', \r
+'external access rule removed' => 'Usunięta reguła dostępu zewnętrznego, restartuje kontroler dostępu', \r
+'external aliases configuration' => 'Konfiguracja zewnętrznych aliasów', \r
+'february' => 'Luty', \r
+'fetch ip from' => 'Zgadnij prawdziwy numer publicznego IP z pomocą zewnętrznego serwera', \r
+'filename' => 'Nazwa pliku', \r
+'filesystem full' => 'system plików pełny', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Całkowita liczba trafień firewalla dla', \r
+'firewall log' => 'Log firewalla', \r
+'firewall log viewer' => 'Przeglądarka Logów Firewalla', \r
+'firewall logs' => 'Logi firewall\'a', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Załaduj Firmware/Sterowniki', \r
+'fixed ip lease added' => 'Dodana dzierżawa stałego IP', \r
+'fixed ip lease modified' => 'Dzierżawa stałego ip zmieniona', \r
+'fixed ip lease removed' => 'Usunięta dzierżawa stałego IP', \r
+'force update' => 'Wymuś aktualizację', \r
+'forwarding rule added' => 'Dodana reguła przekazywania; restart forwardera', \r
+'forwarding rule removed' => 'Usunięta reguła przekazywania; restart forwardera', \r
+'forwarding rule updated' => 'Uaktualizowana reguła przekazywania; restart forwardera', \r
+'free' => 'Wolne', \r
+'free memory' => 'Wolna pamięć', \r
+'free swap' => 'Wolny plik wymiany', \r
+'friday' => 'Piątek', \r
+'fritzdsl help' => 'Aby używać jednego z modemów Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb musisz wysłać firmware do twojego komputera z IPCop. Proszę ściągnąć właściwy plik ze strony ipcop.org, rozpakować i wysłać właściwy plik <b>fcdsl-(twoja_wersja).tgz</b> używająć poniższego formularza.', \r
+'fritzdsl upload' => 'Załaduj sterownik Fritz!DSL', \r
+'from' => 'Od', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Brama ', \r
+'gateway ip' => 'IP bramy', \r
+'generate a certificate' => 'Generuj certyfikat:', \r
+'generate root/host certificates' => 'Generuj certyfikat Root/Host', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generowanie certyfikatów root\'a i hosta może zabrać dużo czasu. Może zająć do kilku minut na starszym sprzęcie. Proszę bądź cierpliwy.', \r
+'global settings' => 'Ustawienia globalne', \r
+'graph' => 'Wykres', \r
+'graph per' => 'Wykres na', \r
+'green' => 'GREEN', \r
+'green interface' => 'Interfejs Green', \r
+'gui settings' => 'Ustawienia GUI', \r
+'gz with key' => 'Tylko szyfrowane archiwum może być odtworzone na tej maszynie.', \r
+'hangup' => 'Rozłącz', \r
+'hangup string' => 'Rozłącz:', \r
+'high' => 'Wysoki', \r
+'high memory usage' => 'Użycie pamięci wysokiej', \r
+'holdoff' => 'Czas zatrzymania (w sekundach).', \r
+'host' => 'Host', \r
+'host certificate' => 'Certyfikat Hosta', \r
+'host configuration' => 'Konfiguracja hosta', \r
+'host ip' => 'Adres IP serwera.', \r
+'host to net vpn' => 'Host-do-Sieci Wirtualna Sieć Prywatna VPN (RoadWarrior)', \r
+'hostname' => 'Nazwa hosta', \r
+'hostname and domain already in use' => 'Nazwa hosta i domena w użyciu', \r
+'hostname cant be empty' => 'Nazwa hosta nie może być pusta.', \r
+'hostname not set' => 'Nazwa hosta nie ustawiona.', \r
+'hosts config added' => 'dodano konfigurację serwerów', \r
+'hosts config changed' => 'zmieniono konfigurację serwerów', \r
+'hours' => 'godzin(y)', \r
+'hours2' => 'Godziny', \r
+'ibod for dual isdn only' => 'iBOD może być używane tylko z dwoma kanałami B w ISDN.', \r
+'icmp selected but no type' => 'ICMP wybrane dla protokołu, ale nie określono rodzaju ICMP.', \r
+'icmp type' => 'Rodzaj ICMP', \r
+'id' => 'ID', \r
+'idle' => 'Bezczynny', \r
+'idle cpu' => 'Bezczynność CPU', \r
+'idle cpu usage' => 'Użycie bezczynności CPU', \r
+'idle timeout' => 'Limit czasu bezczynności (minut; 0 aby wyłączyć):', \r
+'idle timeout not set' => 'Limit czasu bezczynności nie ustawiony.', \r
+'ids log viewer' => 'Przeglądarka logów IDS', \r
+'ids logs' => 'Logi IDS', \r
+'ids rules license' => 'Aby wykorzystać reguły z Sourcefire, musisz się zarejestrować', \r
+'ids rules license2' => 'Zatwierdź licencję, otrzymasz pocztą swoje hasło, połącz się ze stroną. Idź do', \r
+'ids rules license3' => 'przycisku \'Get code\' na dole stronu i skopiuj 40-znakowy kod Oink do pola poniżej.', \r
+'ids rules update' => 'Aktualizacja reguł Snorta', \r
+'iface' => 'Interfejs', \r
+'ignore filter' => 'Filtr ignorowania', \r
+'ike encryption' => 'IKE szyfrowanie', \r
+'ike grouptype' => 'IKE typ Grupy:', \r
+'ike integrity' => 'IKE spójność:', \r
+'ike lifetime' => 'IKE żywotność:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE żywotność powinna zawierać się między 1 a 8 godzin.', \r
+'import' => 'Import', \r
+'in' => 'Wew.', \r
+'incoming traffic in bytes per second' => 'Ruch przychodzący w bajtach na sek.', \r
+'info' => 'Informacje', \r
+'init string' => 'Startowy:', \r
+'insert floppy' => 'W celu wykonania backup\'a na dyskietce, włóż sformatowaną dyskietkę do napędu w ruterze IPCop i kliknij <i>Kopia na dyskietkę</i> żeby zapisać konfigurację systemu. Sprawdź wyniki dokładnie żeby mieć pewność, że backup został zakończony pomyślnie.<p>', \r
+'install new update' => 'Instaluj nową poprawkę:', \r
+'installed' => 'Zainstalowane', \r
+'installed updates' => 'Zainstalowane poprawki:', \r
+'instant update' => 'Szybka aktualizacja', \r
+'interface' => 'Interfejs', \r
+'interfaces' => 'Interfejsy:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Wykrywanie Intruzów', \r
+'intrusion detection system' => 'System Wykrywania Intruzów (IDS)', \r
+'intrusion detection system log viewer' => 'Przeglądarka Systemu Wykrywania Włamań IDS', \r
+'intrusion detection system2' => 'System Wykrywania Intruzów (IDS):', \r
+'invalid broadcast ip' => 'Niepoprawny adres IP rozgłoszeniowy', \r
+'invalid cache size' => 'Niewłaściwy rozmiar cache\'u.', \r
+'invalid characters found in pre-shared key' => 'Niewłaściwe znaki w kluczu pre-shared.', \r
+'invalid date entered' => 'Niepoprawna data', \r
+'invalid default lease time' => 'Niepoprawny domyślny czas dzierżawy.', \r
+'invalid domain name' => 'Niepoprawna nazwa domeny', \r
+'invalid downlink speed' => 'Niewłaściwa szybkość Downlink.', \r
+'invalid end address' => 'Niepoprawny adres końcowy.', \r
+'invalid fixed ip address' => 'Niepoprawny stały adres IP', \r
+'invalid fixed mac address' => 'Niepoprawny stały adres MAC', \r
+'invalid hostname' => 'Niepoprawna nazwa hosta', \r
+'invalid input' => 'Niepoprawne wejście', \r
+'invalid input for authentication method' => 'niewłaściwe dane: metoda autentykacji', \r
+'invalid input for city' => 'Niewłaściwe dane: miasto', \r
+'invalid input for country' => 'Niewłaściwe dane: państwo.', \r
+'invalid input for department' => 'Niewłaściwe dane: wydział.', \r
+'invalid input for e-mail address' => 'Niewłaściwe dane: adres e-mail.', \r
+'invalid input for esp keylife' => 'Niewłaściwy wpis dla ESP Keylife.', \r
+'invalid input for hostname' => 'Niewłaściwy wpis dla nazwy hosta.', \r
+'invalid input for ike lifetime' => 'Niewłaściwy wpis dla czasu trwania IKE.', \r
+'invalid input for name' => 'Niewłaściwy wpis w polu "Pełna nazwa użytkownika lub Nazwa Serwera."', \r
+'invalid input for oink code' => 'Nieprawidłowy wpis kodu Oink', \r
+'invalid input for organization' => 'Niewłaściwy wpis dla Nazwy organizacji', \r
+'invalid input for remote host/ip' => 'Niewłaściwy wpis dla zdalnego serwera/adresu', \r
+'invalid input for state or province' => 'Niewłaściwy wpis dla nazwy regionu.', \r
+'invalid ip' => 'Niewłaściwy adres IP', \r
+'invalid keep time' => 'Czas przechowywania musi być właściwą wartością.', \r
+'invalid key' => 'Nieważny klucz.', \r
+'invalid loaded file' => 'Załadowano niewłaściwy plik', \r
+'invalid logserver address' => 'Niepoprawny adres serwera syslogd', \r
+'invalid max lease time' => 'Niepoprawny maks. czas dzierżawy.', \r
+'invalid maximum incoming size' => 'Niepoprawny maksymalny rozmiar danych przychodzących.', \r
+'invalid maximum object size' => 'Niepoprawny maksymalny rozmiar obiektu.', \r
+'invalid maximum outgoing size' => 'Niepoprawny maksymalny rozmiar danych wychodzących.', \r
+'invalid md5sum' => 'Niepoprawne MD5Sum.', \r
+'invalid minimum object size' => 'Niepoprawny minimalny rozmiar obiektu.', \r
+'invalid netmask' => 'Nieprawidłowa maska sieci', \r
+'invalid port' => 'Nieprawidłowy port', \r
+'invalid port list' => 'Składnia listy portów to: port[,port]... gdy port jest w pliku /etc/services lub jest podany liczbowo ', \r
+'invalid primary dns' => 'Niepoprawny podstawowy DNS.', \r
+'invalid primary ntp' => 'Niepoprawny adres podstawowego serwera  NTP', \r
+'invalid secondary dns' => 'Niepoprawny wtórny DNS.', \r
+'invalid secondary ntp' => 'Niepoprawny wtórny adres serwera NTP.', \r
+'invalid start address' => 'Niepoprawny adres końcowy.', \r
+'invalid time entered' => 'Wprowadzono niewłaściwy czas.', \r
+'invalid time period' => 'Niepoprawny okres czasu.', \r
+'invalid uplink speed' => 'Niepoprawna szybkość Uplink.', \r
+'invalid upstream proxy username or password setting' => 'Niepoprawna nazwa użytkownika lub ustawienia hasła serwera proxy dla transmisji wychodzącej.', \r
+'invalid vpi vpci' => 'Niepoprawne ustawienia VPI/VPCI', \r
+'invalid wins address' => 'Niepoprawny adres serwera WINS.', \r
+'invert' => 'Odwrócić', \r
+'ip address' => 'Adres IP', \r
+'ip address in use' => 'Adres IP już w użyciu', \r
+'ip alias added' => 'Zewnętrzny alias dla adresu IP został dodany.', \r
+'ip alias changed' => 'Zewnętrzny alias dla adresu IP został zmieniony.', \r
+'ip alias removed' => 'Zewnętrzny alias dla adresu IP został usunięty.', \r
+'ip info' => 'Informacja IP', \r
+'ipcop has now rebooted' => 'IPCop teraz się przeładuje.', \r
+'ipcop has now shutdown' => 'IPCop teraz się zamknie.', \r
+'ipcop side' => 'Strona IPCop:', \r
+'ipcop side is invalid' => 'Strona IPCop jest nieprawidłowa.', \r
+'ipcops hostname' => 'Nazwa dla Serwera IPCop.', \r
+'ipinfo' => 'IP info', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Dodatkowe ustawienia ISDN:', \r
+'isdn1' => 'Pojedyńczy ISDN', \r
+'isdn2' => 'Podwójny ISDN', \r
+'january' => 'Styczeń', \r
+'javascript menu error1' => 'Jeśli menu rozwijane nie działają, zablokuj JavaScript na', \r
+'javascript menu error2' => 'stronie.', \r
+'july' => 'Lipiec', \r
+'june' => 'Czerwiec', \r
+'kernel' => 'Jądro', \r
+'kernel logging server' => 'Serwer rejestrowania zdarzeń jądra', \r
+'kernel version' => 'Wersja jądra:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Wybierz język w jakim chcesz mieć wyświetlany IPCop:', \r
+'lease expires' => 'Dzierżawa wygasa', \r
+'legend' => 'Legenda', \r
+'line' => 'Linia', \r
+'loaded modules' => 'Załadowane moduły:', \r
+'local ntp server specified but not enabled' => 'Lokalny server NTP określony ale nie uaktywniony', \r
+'local subnet' => 'Lokalna podsieć:', \r
+'local subnet is invalid' => 'Pole „Lokalna podsieć” jest nieprawidłowe', \r
+'local vpn hostname/ip' => 'Nazwa lokalnego serwera VPN / Adres IP', \r
+'log' => 'Dziennik:', \r
+'log enabled' => 'Dziennik włączony', \r
+'log lines per page' => 'Linii na stronę', \r
+'log server address' => 'Serwer syslog', \r
+'log settings' => 'Ustawienia dziennika', \r
+'log summaries' => 'Podsumowania dziennika', \r
+'log summary' => 'Podsumowanie dziennika', \r
+'log viewer' => 'Przeglądarka plików dziennika', \r
+'log viewing options' => 'Opcje przeglądania logów,', \r
+'logging server' => 'Serwer logowania', \r
+'loginlogout' => 'Zaloguj/Wyloguj', \r
+'lookup failed' => 'Wyszukiwanie zwrotne nie powiodło się', \r
+'low' => 'Niski', \r
+'ls_dhcpd' => 'Serwer DHCP', \r
+'ls_disk space' => 'Przestrzeń dyskowa:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'Serwer HTTP:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kernel i Firewall:', \r
+'ls_modprobe' => 'Ładowanie modułów', \r
+'ls_pam_unix' => 'Login-y dla lokalnych użytkowników:', \r
+'ls_sshd' => 'Login-y dla zdalnych użytkowników:', \r
+'ls_syslogd' => 'Demon logów', \r
+'mac address' => 'Adres MAC', \r
+'mac address in use' => 'Adres MAC jest już w użyciu', \r
+'main page' => 'Strona główna', \r
+'manual' => 'Ręczny', \r
+'manual control and status' => 'Ręczne sterowanie i status:', \r
+'manually' => 'Ręcznie', \r
+'march' => 'Marzec', \r
+'marked' => 'Zaznaczone', \r
+'max incoming size' => 'Maks. rozmiar przychodzący (KB):', \r
+'max lease time' => 'Mak. czas dzierżawy (min.):', \r
+'max outgoing size' => 'Maks. rozmiar wychodzący (KB):', \r
+'max renewal time' => 'Maksymalny czas odnawiania', \r
+'max retries not set' => 'Maks. ilość powt. nie ustawiona.', \r
+'max size' => 'Maks. rozmiar obiektu (KB):', \r
+'maximal' => 'Maksymalnie', \r
+'maximum retries' => 'Maks. ilość powtórzeń:', \r
+'may' => 'Maj', \r
+'medium' => 'Średni', \r
+'memory' => 'Pamięć', \r
+'memory usage per' => 'Użycie pamięci na', \r
+'method' => 'Metoda:', \r
+'min size' => 'Min. rozmiar obiektu (KB):', \r
+'minutes' => 'Minuty', \r
+'missing dat' => 'Szyfrowane archiwum nie znalezione', \r
+'missing gz' => 'Nieszyfrowane archiwum nie znalezione', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Konfiguracja modemu', \r
+'modem on com1' => 'Modem na COM1', \r
+'modem on com2' => 'Modem na COM2', \r
+'modem on com3' => 'Modem na COM3', \r
+'modem on com4' => 'Modem na COM4', \r
+'modem on com5' => 'Modem na COM5', \r
+'modem settings have errors' => 'Ustawienia modemu zawierają błędy.', \r
+'modem speaker on' => 'Głośnik modemu włączony:', \r
+'modulation' => 'Modulacja', \r
+'monday' => 'Poniedziałek', \r
+'month' => 'Miesiąc', \r
+'months' => 'miesiące(y)', \r
+'mounted on' => 'Zamontowano na', \r
+'name' => 'Nazwa', \r
+'name is invalid' => 'Nazwa jest niepoprawna', \r
+'name must only contain characters' => 'Nazwa musi zawierać tylko litery.', \r
+'name too long' => 'Za długa nazwa', \r
+'nat-traversal' => 'Nat Traversal:', \r
+'net' => 'Sieć', \r
+'net to net vpn' => 'Połączenie z VPN', \r
+'netmask' => 'Maska sieci', \r
+'network' => 'Sieć', \r
+'network added' => 'Sieć użytkownika dodana', \r
+'network configuration' => 'Konfiguracja sieci', \r
+'network removed' => 'Sieć użytkownika usunięta', \r
+'network status information' => 'Informacja o statusie sieci', \r
+'network time' => 'Użyj sieciowego serwera czasu:', \r
+'network time from' => 'Pobierz czas z Internetu', \r
+'network traffic graphs' => 'Wykres ruchu sieciowego', \r
+'network updated' => 'Własna sieć zaktualizowana', \r
+'networks settings' => 'Firewall - Ustawienia sieci', \r
+'new optionsfw later' => 'Twoje zmiany będą aktywne po następnym restarcie komputera', \r
+'new optionsfw must boot' => 'Musisz zrestartować komputer z IPCop', \r
+'newer' => 'Nowsze', \r
+'next address' => 'Następny adres', \r
+'no' => 'Nie', \r
+'no alcatelusb firmware' => 'Brak firmware\'u Alcatel USB. Proszę załadować.', \r
+'no cfg upload' => 'Nie załadowano żadnych danych', \r
+'no dhcp lease' => 'Nie uzyskano żadnej dzierżawy DHCP', \r
+'no eciadsl synch.bin file' => 'Brak pliku ECI ADSL synch.bin. Proszę załadować.', \r
+'no fritzdsl driver' => 'Brak sterownika Fritz!DSL. Proszę załadować.', \r
+'no information available' => 'Brak dostępnych informacji.', \r
+'no modem selected' => 'Nie wybrano żadnego modemu', \r
+'no set selected' => 'Nie wybrano zestawu', \r
+'no time limit' => 'bez limitu czasowego', \r
+'none found' => 'nic nie znaleziono', \r
+'nonetworkname' => 'Nie wprowadzono nazwy sieci', \r
+'noservicename' => 'Nie wprowadzono nazwy usługi', \r
+'not a valid ca certificate' => 'Nieprawidłowy certyfikat CA.', \r
+'not enough disk space' => 'Brak miejsca na dysku', \r
+'not present' => '<B>Nie</B> obecny', \r
+'not running' => 'ZATRZYMANY', \r
+'november' => 'Listopad', \r
+'ntp configuration' => 'Konfiguracja NTP', \r
+'ntp must be enabled to have clients' => 'NTP musi być włączone żeby obsługiwać klientów.', \r
+'ntp server' => 'Serwer NTP', \r
+'ntp syncro disabled' => 'Synchronizacja NTP wyłączona', \r
+'ntp syncro enabled' => 'Synchronizacja NTP włączona', \r
+'ntpd restarted' => 'Demon NTP zrestartowany', \r
+'number' => 'Numer:', \r
+'october' => 'Październik', \r
+'older' => 'Starsze', \r
+'online help en' => 'Podręczna pomoc (po angielsku)', \r
+'only digits allowed in holdoff field' => 'Można używać tylko cyfr w polu "Czas zatrzymania"', \r
+'only digits allowed in max retries field' => 'Dozwolone tylko cyfry w polu maks. ponowienia.', \r
+'only digits allowed in the idle timeout' => 'Dozwolone tylko cyfry w "limicie czasu bezczynności".', \r
+'only red' => 'Tylko CZERWONY', \r
+'open to all' => 'Nadpisz dostęp zewnętrzny na ALL', \r
+'openssl produced an error' => 'OpenSSL wykonał błędną operacje.', \r
+'options' => 'Opcje', \r
+'options fw' => 'Opcje firewall\'a', \r
+'optionsfw portlist hint' => 'Lista portów musi być oddzielona przecinkami (np. 137,138). Można podać do 15 portów na protokół.', \r
+'optionsfw warning' => 'Modyfikacja tych opcji oznacza restart firewalla', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'Pole "Nazwa Organiazacji" nie może zostać puste.', \r
+'organization name' => 'Nazwa organizacji', \r
+'organization too long' => 'Nazwa organizacji za długa.', \r
+'original' => 'Oryginalne', \r
+'other countries' => 'Inne kraje', \r
+'other login script' => 'Inny skrypt logowania', \r
+'out' => 'Zew.', \r
+'outgoing traffic in bytes per second' => 'Ruch wychodzący w bajtach na sekundę', \r
+'package failed to install' => 'Nie udało się zainstalować paczki', \r
+'pap or chap' => 'PAP lub CHAP', \r
+'password' => 'Hasło:', \r
+'password contains illegal characters' => 'Hasło zawiera niedozwolone znaki.', \r
+'password not set' => 'Hasło nie ustawione.', \r
+'password too short' => 'Hasło jest za krótkie.', \r
+'passwords do not match' => 'Hasła nie pasują do siebie.', \r
+'passwords must be at least 6 characters in length' => 'Hasło musi zawierać co najmniej 6 znaków.', \r
+'percentage' => 'Procentowo', \r
+'persistent' => 'Stałe', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'faza1 grupy', \r
+'phonebook entry' => 'Wpis w książce telefonicznej:', \r
+'ping disabled' => 'Zablokuj odpowiadanie na ping', \r
+'pkcs12 file password' => 'Plik z hasłami w formacie KCS12', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Konfiguracja przekierowywania portów', \r
+'ports' => 'Porty', \r
+'pots' => 'Klasyczna linia telefoniczna', \r
+'ppp setup' => 'Ustawienia PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Dodatkowe ustawienia PPPoE:', \r
+'pptp settings' => 'Dodatkowe ustawienia PPTP:', \r
+'pre-shared key is too short' => 'Pre-dzielony klucz jest za krótki.', \r
+'present' => 'Obecny', \r
+'primary dns' => 'Podstawowy DNS:', \r
+'primary ntp server' => 'Podstawowy serwer NTP', \r
+'primary wins server address' => 'Adres podstawowego serwera WINS', \r
+'priority' => 'Priorytet', \r
+'profile' => 'Profil', \r
+'profile deleted' => 'Profil skasowany:', \r
+'profile has errors' => 'Profil posiada błędy', \r
+'profile made current' => 'Profil bieżący:', \r
+'profile name' => 'Nazwa profilu:', \r
+'profile name not given' => 'Nazwa profilu nie podana.', \r
+'profile saved' => 'Profil zapisany:', \r
+'profiles' => 'Profile:', \r
+'proto' => 'Prot.', \r
+'protocol' => 'Protokół', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Wykres dostępu do Proxy', \r
+'proxy log viewer' => 'Przeglądarka logów proxy', \r
+'proxy logs' => 'Logi proxy', \r
+'proxy port' => 'Port Proxy', \r
+'psk' => 'PSK', \r
+'pulse' => 'Pulsacyjne', \r
+'pulse dial' => 'Dzwonienie pulsacyjne:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Czytaj sektory.', \r
+'reboot' => 'Uruchom ponownie', \r
+'rebooting' => 'Trwa ponowne uruchamianie', \r
+'rebooting ipcop' => 'Trwa ponowne uruchamianie IPCop\'a', \r
+'reconnection' => 'Wznawnianie połączenia.', \r
+'references' => 'Referencje', \r
+'refresh' => 'Odśwież', \r
+'refresh index page while connected' => 'Odśwież stronę w traktcie sesji.', \r
+'refresh update list' => 'Odśwież listę aktualizacji', \r
+'registered user rules' => 'Reguły Sourcefire VRT dla zarejestrowanych użytkowników', \r
+'released' => 'Wydano', \r
+'remark' => 'Komentarz', \r
+'remark title' => 'Komentarz:', \r
+'remote access' => 'Zdalny dostęp', \r
+'remote host/ip' => 'Zdalny Serwer lub adres IP', \r
+'remote logging' => 'Zdalne logowanie', \r
+'remote subnet' => 'Zdalna podsieć:', \r
+'remote subnet is invalid' => 'Zdalna podsieć jest nieprawidłowa.', \r
+'remove' => 'Usuń', \r
+'remove ca certificate' => 'Usuń certyfikat CA', \r
+'reserved dst port' => 'Docelowy port jest zarezerwowany tylko dla użytku IPCop:', \r
+'reserved src port' => 'Źródłowy port jest zarezerwowany tylko dla użytku IPCop:', \r
+'reset' => 'Reset', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Zresetowanie konfiguracji VPN usunie CA, certyfikaty i wszystkie certyfikowane połączenia.', \r
+'restart' => 'Restart', \r
+'restore' => 'Przywróć', \r
+'restore defaults' => 'Przywróć ustawienia domyślne', \r
+'restore hardware settings' => 'Zresetuj ustawienia sprzętu.', \r
+'reverse sort' => 'Sortuj w odwrotnej kolejności chronologicznej', \r
+'root certificate' => 'Certyfikat root\'a', \r
+'root path' => 'Główna ścieżka', \r
+'router ip' => 'Adres IP routera:', \r
+'routing table entries' => 'Tabela routingu:', \r
+'rsvd dst port overlap' => 'Zasięg portów przeznaczenia zachodzących na porty zarezerwowane dla IPCop:', \r
+'rsvd src port overlap' => 'Zasięg portów żródłowych zachodzących na porty zarezerwowane dla IPCop:', \r
+'rules already up to date' => 'Reguły są aktualne', \r
+'running' => 'URUCHOMIONY', \r
+'saturday' => 'sobota', \r
+'save' => 'Zapisz', \r
+'save error' => 'Błąd zapisu', \r
+'script name' => 'Nazwa skryptu:', \r
+'secondary dns' => 'Dodatkowy DNS:', \r
+'secondary ntp server' => 'Dodatkowy serwer NTP', \r
+'secondary wins server address' => 'Drugorzędny adres serwera WINS', \r
+'seconds' => 'sekund', \r
+'section' => 'Sekcja', \r
+'sectors read from disk per second' => 'Sektory odczytywane na sekunde.', \r
+'sectors written to disk per second' => 'Sektory zapisywane na sekunde.', \r
+'secure shell server' => 'Bezpieczna powłoka serwera', \r
+'select' => 'Wybierz', \r
+'select dest net' => 'Wybierz sieć docelową', \r
+'select source net' => 'Wybierz sieć źródłową. Jeśli masz Orange (Pomarańczową) lub Blue (Niebieską) sieć skonfigurowaną niepotrzebujesz DMZ pinholes. ', \r
+'send cr' => 'ISP wymaga znaku CR (powrót karetki):', \r
+'september' => 'Wrzesień', \r
+'serial' => 'Szeregowe', \r
+'service' => 'Usługa', \r
+'service added' => 'Wybrane usługa sieciowa została dodana', \r
+'service name' => 'Nazwa usługi:', \r
+'service removed' => 'Wybrane usługa sieciowa została usunięta', \r
+'service updated' => 'Wybrane usługa sieciowa została zaktualizowana', \r
+'servicename' => 'Nazwa usługi', \r
+'services' => 'Usługi', \r
+'services settings' => 'Ustawienia Zapory ogniowej.', \r
+'set time now' => 'Ustaw czas teraz', \r
+'set time now help' => 'Aby dodać do kolejki synchronizacji nowe zdarzenie w dowolnym czasie (nawet gdy ustawione jest synchronizowanie wielokrotne), naciśnij przycisk <i>Ustaw czas teraz</i>. Proszę wziąć pod uwagę, że być może będzie trzeba poczekać do pięciu minut lub więcej przed kolejnym zdarzeniem synchronizacji.', \r
+'settings' => 'Ustawienia', \r
+'shaping add options' => 'Dodaj usługe.', \r
+'shaping list options' => 'Usługa modulacji ruchu', \r
+'shared' => 'Dzielenie', \r
+'shared memory' => 'Dzielenie pamięci', \r
+'show ca certificate' => 'Pokaż certyfikat CA', \r
+'show certificate' => 'Pokaż certyfikat', \r
+'show host certificate' => 'Pokaż certyfikat hosta', \r
+'show root certificate' => 'Pokaż certyfikat roota', \r
+'shutdown' => 'Wyłącz', \r
+'shutdown control' => 'Kontrola wyłączeń', \r
+'shutdown2' => 'Wyłącz:', \r
+'shutting down' => 'Zamykanie', \r
+'shutting down ipcop' => 'Zamykanie IPCop\'a', \r
+'size' => 'Rozmiar', \r
+'snort hits' => 'Suma aktywnych reguł (Intruzi)', \r
+'sort ascending' => 'Sortuj rosnąco', \r
+'sort descending' => 'Sortuj malejąco', \r
+'sound' => 'Dźwięk', \r
+'source' => 'Źródło', \r
+'source ip' => 'Źródłowy adres IP', \r
+'source ip and port' => 'Źródłowy adres IP:Port', \r
+'source ip bad' => 'Nieprawidłowy adres IP lub adres sieciowy.', \r
+'source ip in use' => 'Źródłowy adres IP w użyciu:', \r
+'source ip or net' => 'Źródłowy adres IP lub zakres sieci', \r
+'source net' => 'Źródlowa sieć', \r
+'source network' => 'Sieć źródłowa', \r
+'source port' => 'Port źródłowy', \r
+'source port in use' => 'Port źródłowy w użyciu:', \r
+'source port numbers' => 'Port źródłowy musi być właściwym portem bądź zakresem portów.', \r
+'source port overlaps' => 'Port źródłowy zachodzi na istniejący zakres portów.', \r
+'speaker off' => 'głośnik wył.', \r
+'speaker on' => 'Głośnik wł.:', \r
+'src port' => 'Port źródł.', \r
+'srcprt range overlaps' => 'Port źródłowy zachodzi na już zddefiniowany port.', \r
+'srcprt within existing' => 'Port źródłowy znajduje się w  już zdefiniowanym zakresie.', \r
+'ssdmz pinholes' => 'DMZ pinholes.', \r
+'ssh access' => 'Dostęp przez SSH', \r
+'ssh fingerprint' => 'Odcisk palca.', \r
+'ssh host keys' => 'Klucze ssh hosta.', \r
+'ssh is disabled' => 'SSH jest wyłączone. Zatrzymywanie.', \r
+'ssh is enabled' => 'SSH jest włączone. Ponowne uruchomienie.', \r
+'ssh key' => 'Klucz SSH.', \r
+'ssh key size' => 'Rozmiar klucza (w bitach)', \r
+'ssh keys' => 'Zezwalaj na autoryzacje kluczami publicznymi', \r
+'ssh no auth' => 'Brak zezwolenia na użycie metod autoryzacji; proces logowania został zatrzymany', \r
+'ssh passwords' => 'Zezwalaj na autoryzację hasłem', \r
+'ssh portfw' => 'Zezwalaj na przekierowywanie portów.', \r
+'ssh1 disabled' => 'SSHv1 jest wyłączony, klient wersji 2 będzie wymagany. ', \r
+'ssh1 enabled' => 'SSHv1 jest włączony, stare klienty są obsługiwane.', \r
+'ssh1 support' => 'Wsparcie dla protokołu SSHv1 (wymagane dla starszych klientów)', \r
+'ssnetwork status' => 'Stan sieci', \r
+'sspasswords' => 'Hasła', \r
+'ssport forwarding' => 'Przekierowywanie portów', \r
+'ssproxy graphs' => 'Wykres proxy', \r
+'sssystem status' => 'Informacje o systemie', \r
+'sstraffic graphs' => 'Wykres ruchu', \r
+'standard login script' => 'Stadardowy skrypt logowania', \r
+'start address' => 'Adres początkowy', \r
+'state or province' => 'Region', \r
+'static ip' => 'Stałe IP', \r
+'status' => 'status', \r
+'status information' => 'Informacje o statusie', \r
+'stopped' => 'zatrzymane', \r
+'subject' => 'Podmiot', \r
+'subnet is invalid' => 'Nieprawidłowa podsieć', \r
+'subscripted user rules' => 'Reguły Sourcefire VRT z płatną subscrybcją', \r
+'successfully refreshed updates list' => 'Odświeżenie listy uaktualnień zakończyło się powodzeniem.', \r
+'summaries kept' => 'Zachowaj podsumowanie przez', \r
+'sunday' => 'Niedziela', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Użycie swap\'a przez', \r
+'system cpu' => 'Procesor', \r
+'system cpu usage' => 'Użycie procesora', \r
+'system graphs' => 'Wykresy wydajności', \r
+'system log viewer' => 'Przglądarka logów systemowych', \r
+'system logs' => 'Logi systemowe', \r
+'system status information' => 'Informacje o statusie systemu', \r
+'telephone not set' => 'Nie podałeś telefonu', \r
+'the following update was successfully installed' => 'Poniższe poprawki zostały zainstalowane prawidłowo', \r
+'the statistics were last updated at' => 'Statystyki zostały zaktualizowane oststnio:', \r
+'there are updates' => 'Są uaktualnienia dostępne dla systemu. Proszę przejść do sekcji "Poprawki" po dalsze informacje.', \r
+'there are updates available' => 'Pojawiły sie aktualizacje dla twojego systemu. Zaleca sie ażebyś zainstalował je jak tylko bedzie to możliwe.', \r
+'there was no file upload' => 'Nie ma plików wysłanych.', \r
+'this feature has been sponsored by' => 'Ta cecha jest sponsorowana przez', \r
+'this field may be blank' => 'To pole może być puste.', \r
+'this is not a valid archive' => 'To nie jest prawidłowe archiwum.', \r
+'this is not an authorised update' => 'To nie jest autoryzowany plik aktualizacji.', \r
+'this update is already installed' => 'Ta aktualizacja jest juz zainstalowana.', \r
+'thursday' => 'Czwartek', \r
+'time' => 'Czas', \r
+'time date manually reset' => 'Ręczne resetowanie Czasu/Daty.', \r
+'time server' => 'Serwer czasu', \r
+'timeout must be a number' => 'Timeout musi być liczbą.', \r
+'title' => 'Tytuł', \r
+'to' => 'Do', \r
+'to install an update' => 'Jesli chcesz zainstalować aktualizacje załaduj plik .tgz.gpg poniżej:', \r
+'toggle enable disable' => 'Włącz lub Wyłącz', \r
+'tone' => 'Tonowe', \r
+'tone dial' => 'Sygnał wybierania:', \r
+'total hits for log section' => 'Trafień w sekcji logów', \r
+'traffic on' => 'Ruch włączony', \r
+'traffic shaping' => 'Modulacja ruchem', \r
+'traffic shaping settings' => 'Ustawienia "Modulacja ruchu"', \r
+'transfer limits' => 'Ograniczenia transferu.', \r
+'transparent on' => 'Przeżroczystość włączona.', \r
+'tuesday' => 'Wtorek', \r
+'type' => 'Typ', \r
+'unable to alter profiles while red is active' => 'Nie można uruchomić pomocnicznego profilu kiedy Czerwony interfejs jest aktywny.', \r
+'unable to contact' => 'Nie mozna się połączyć.', \r
+'unencrypted' => 'Niezaszyfrownane', \r
+'unknown' => 'NIEZNANY', \r
+'unnamed' => 'Nienazwany', \r
+'update' => 'Uaktualnij', \r
+'update time' => 'Uaktualnij czas:', \r
+'update transcript' => 'Uaktualnij transkrypcje', \r
+'updates' => 'Poprawki', \r
+'updates installed' => 'Zainstalowano uaktualnienia.', \r
+'updates is old1' => 'Twój plik z uaktualnieniami ma', \r
+'updates is old2' => 'dni. Zalecamy uaktualnienie w <b>System>Updates</b> page.', \r
+'uplink speed' => 'Szybkość Uplink (kbit/s)', \r
+'upload' => 'Wysłane', \r
+'upload a certificate' => 'Wyślij certyfikat:', \r
+'upload a certificate request' => 'Wyślij żądanie certyfikacji:', \r
+'upload ca certificate' => 'Wyślij CA certyfikat', \r
+'upload fcdsl.o' => 'Wyślij fcdsl.o', \r
+'upload file' => 'Wyślij', \r
+'upload p12 file' => 'Wyślij plik PKCS12', \r
+'upload successful' => 'Wysyłanie zakończyło się sukcesem.', \r
+'upload synch.bin' => 'Wyślij synch.bin', \r
+'upload update file' => 'Wyślij plik aktualizacji:', \r
+'upstream password' => 'Hasło transmisji wychodzącej:', \r
+'upstream proxy host:port' => 'Proxy dla transmisji wychodzącej (host:port)', \r
+'upstream username' => 'Nazwa użytkownika:', \r
+'uptime and users' => 'Czas pracy i użytkownicy:', \r
+'usb modem on acm0' => 'Modem USB na ACM0', \r
+'usb modem on acm1' => 'Modem USB na ACM1', \r
+'usb modem on acm2' => 'Modem USB na ACM2', \r
+'usb modem on acm3' => 'Modem USB na ACM3', \r
+'use' => 'Użyj', \r
+'use a pre-shared key' => 'Użyj pre-dzielonego klucza:', \r
+'use dov' => 'Użyj DOV (Data Over Voice):', \r
+'use ibod' => 'Użyj Pasma na żądanie (iBOD):', \r
+'use ipcop red ip' => 'Klasyczny adres IP interfejsu CZERWONEGO podczas połączenia.', \r
+'use only proposed settings' => 'Użyj tylko proponowanych ustawień:', \r
+'used' => 'użyto', \r
+'used memory' => 'Zajęta pamięć', \r
+'used swap' => 'Użyty plik wymiany', \r
+'user cpu' => 'Procesor', \r
+'user cpu usage' => 'Użycie procesora:', \r
+'username' => 'Nazwa użytkownika:', \r
+'username not set' => 'Nie podano nazwy użytkownika.', \r
+'users department' => 'Wydział użytkownika:', \r
+'users email' => 'Email użytkownika', \r
+'users fullname or system hostname' => 'Pełna nazwa użytkownika lub Nazwa Serwera.', \r
+'valid root certificate already exists' => 'Prawidłowy certyfikat główny już istnieje.', \r
+'vci number' => 'Numer VCI:', \r
+'virtual private networking' => 'Wirtualne połączenie (VPN)', \r
+'vpi number' => 'Numer VPI:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'Główna konfiguracja VPN', \r
+'vpn delayed start' => 'Opóźnienie w starcie VPN (w sekundach)', \r
+'vpn delayed start help' => 'Jeśli wymagane, opóźnienie może być użyte aby uaktualnienia Dynamicznego DNS były prawidłowo rozgłaszane. 60 to standardowa wartość gdy interfejs CZERWONY ma zmienny numer IP.', \r
+'vpn on blue' => 'VPN na BLUE (Niebieskim) interfejsie', \r
+'waiting to synchronize clock' => 'Oczekiwanie na synchronizacje czasu', \r
+'warning messages' => 'Ostrzeżenie', \r
+'web hits' => 'Suma wszystkich stron pasujących do kryterium', \r
+'web proxy' => 'Web proxy (squid)', \r
+'web proxy configuration' => 'Konfiguracja squida', \r
+'web server' => 'Serwer www', \r
+'website' => 'strona www', \r
+'wednesday' => 'Środa', \r
+'week' => 'Tydzień', \r
+'weeks' => 'tygodni(e)', \r
+'wildcards' => 'znaki *.*', \r
+'wireless' => 'Bezprzewodowy', \r
+'wireless config added' => 'Dodano konfigurację sieci', \r
+'wireless config changed' => 'Konfiguracja sieci zmieniona', \r
+'wireless configuration' => 'Konfiguracja sieci bezprzewodowej', \r
+'written sectors' => 'Zapisanych sektorów', \r
+'xtaccess all error' => 'Nie możesz dać dostępu z zewnątrz do WSZYSTKIEGO, zostało to zrobione w przekierowywaniu portów.', \r
+'year' => 'Rok', \r
+'yes' => 'Tak', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Możesz zdefiniować tylko jedno połączenie Roadwarrior w traktcie połączenia z pomocą pre-dzielonego klucza.<br/>Albo już jest połączenie Roadworrior za pomocą pre-dzielonego klucza, albo prubujesz dodać jedno teraz.', \r
+'your department' => 'Twój Dział', \r
+'your e-mail' => 'Twój adres E-mail', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/pl/install/CVS/Entries b/langs/pl/install/CVS/Entries
new file mode 100644 (file)
index 0000000..1c622f1
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_pl.c/1.1.2.12/Mon Dec 12 09:23:29 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/pl/install/CVS/Repository b/langs/pl/install/CVS/Repository
new file mode 100644 (file)
index 0000000..ad6d31f
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/pl/install
diff --git a/langs/pl/install/CVS/Root b/langs/pl/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/pl/install/CVS/Tag b/langs/pl/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/pl/install/lang_pl.c b/langs/pl/install/lang_pl.c
new file mode 100644 (file)
index 0000000..5094592
--- /dev/null
@@ -0,0 +1,508 @@
+/*\r
+ * Polish  (pl) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2004 Jack Korzeniowski, Piotr, Andrzej Zolnierowicz\r
+ * (c) 2005 Remi Schleicher \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *pl_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Ustawienie adresu",\r
+/* TR_ADMIN_PASSWORD */\r
+"Hasło dla użytkownika Admin",\r
+/* TR_AGAIN_PROMPT */\r
+"Ponownie:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Wszystkie karty skutecznie zlokalizowano.",\r
+/* TR_AUTODETECT */\r
+"* AUTOWYKRYWANIE *",\r
+/* TR_BUILDING_INITRD */\r
+"Tworzenie INITRD...",\r
+/* TR_CANCEL */\r
+"Anuluj",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Przypisanie karty",\r
+/* TR_CHECKING */\r
+"Sprawdzanie URL...",\r
+/* TR_CHECKING_FOR */\r
+"Sprawdzanie dla: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Wybierz kartę ISDN zainstalowaną w tym komputerze.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Wybierz protokół ISDN jaki potrzebujesz.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Konfiguruj serwer DHCP przez wprowadzenie informacji o ustawieniach.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Konfiguracja sieci",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Powinieneś teraz skonfigurować sieć przez załadowanie właściwego sterownika dla interfejsu GREEN. Możesz to zrobić przez automatyczne rozpoznawanie sprzętu lub przez wybranie właściwego sterownika z listy. Zauważ, że jeśli masz więcej zainstalowanych kart sieciowych niż jedną, będziesz musiał skonfigurować pozostałe później podczas instalacji. Zwróć również uwagę na to, że jeśli masz więcej niż jedną kartę, która jest tego samego typu co GREEN i każda karta wymaga specjalnych parametrów modułu, powinieneś wprowadzić parametry dla wszystkich kart tego typu tak, że wszystkie karty staną się aktywne gdy skonfigurujesz interfejs GREEN.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Konfiguruj sterowniki sieciowe i do którego interfejsu jest przypisana każda karta. Bieżąca konfiguracja jest następująca:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Skonfiguruj CDROM przez wybranie właściwego adresu IO i/lub IRQ.",\r
+/* TR_CONGRATULATIONS */\r
+"Gratulacje!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s został poprawnie zainstalowany. Usuń dyskietki lub CDROMy z komputera. Setup poprowadzi Cię teraz przez konfigurację ISDN, kart sieciowych, i haseł systemowych. Gdy Setup będzie pomyślnie zakończony powinineś wpisać w swojej ulubionej przeglądarce http://%s:81 lub https://%s:445 (lub jak tam nazwałeś %s), i skonfigurować dialup networking (jeśli wymagane) i zdalny dostęp. Pamiętaj aby wybrać hasło dla %s użytkownika 'dial', jeśli sobie życzysz by nie %s użytkownicy 'admin' mieli możliwość kontrolowania linka.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Twój twardy... (dysk) ;-) jest bardzo mały, ale możesz kontynuować bez żadnego swap'a. (Używać ostrożnie).",\r
+/* TR_CURRENT_CONFIG */\r
+"Bieżąca konfiguracja: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Domyślna bramka:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Domyślna bramka\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Dzierżawa domyślna (min.):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Domyślny czas dzierżawy\n",\r
+/* TR_DETECTED */\r
+"Wykryto a:%s",\r
+/* TR_DHCP_HOSTNAME */\r
+"DHCP Hostname:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"DHCP Hostname\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Konfiguracja serwera DHCP",\r
+/* TR_DISABLED */\r
+"Nie aktywny",\r
+/* TR_DISABLE_ISDN */\r
+"ISDN nie aktywny",\r
+/* TR_DISK_TOO_SMALL */\r
+"Twój dysk jest za mały.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Ustawienia DNS i bramy",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Wpisz informacje o DNS i bramie. Ustawienia te używane są tylko przy Statycznym IP (oraz DHCP jeśli ustawiono DNS) dla interfejsu RED.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Twoja konfiguracja nie używa karty ethernet dla interfejsu RED. Informacje o DNS i bramie dla łącza dial-up są ustawiane automatycznie w czasie łączenia z internetem.",\r
+/* TR_DOMAINNAME */\r
+"Nazwa domeny",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Nazwa Domeny nie może być pusta.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Nazwa Domeny nie może zawierać spacji.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Nazwa Domeny może zawierać tylko litery, cyfry,minus,podkreślenie i kropkę.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Sufiks nazwy domeny:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Sufiks nazwy domeny:\n",\r
+/* TR_DONE */\r
+"Zrobione",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nCzy Chcesz zmienić te ustawienia?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Przypisania sterowników i kart",\r
+/* TR_ENABLED */\r
+"Aktywny",\r
+/* TR_ENABLE_ISDN */\r
+"Włącz ISDN",\r
+/* TR_END_ADDRESS */\r
+"Końcowy adres",\r
+/* TR_END_ADDRESS_CR */\r
+"Adres końcowy\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Niektóre karty ISDN (szczególnie ISA) moga wymagać dodatkowych parametrów do ustawienia przerwania IRQ i adresu portu IO. Jeżeli masz taką kartę ISDN, wpisz tu dodatkowe parametry. Np. \"io=0x280 irq=9\". Będą one używane przy wykrywaniu karty.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Wpisz hasło użytkownika admin serwera %s. Użytkownik ten może logować się do stron www administrowania serwerem %s.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Podaj nazwę Domeny",\r
+/* TR_ENTER_HOSTNAME */\r
+"Podaj nazwę komputera.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Podaj informajcę o adrsie IP",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Nieudane automatyczne wykrycie kart sieciowych. Podaj driver i opcjonalne parametry dla karty sieciowej",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Podaj hasło dla użytkownika 'root'. Logowanie z poziomu powłoki.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Podaj hasło dla użytkownika 'setup'. Logowanie z poziomu powłoki.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Podaj adres IP dla interfejsu: %s ",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Podaj numer telefonu (MSN/EAZ)",\r
+/* TR_ENTER_URL */\r
+"Podaj adres URL do plików: ipcop-<wersja>.tgz i images/scsidrv-<wersja>.img. Ostrzeżenia: DNS nieosiągalny. Powinno być http://X.X.X.X/<katalog>",\r
+/* TR_ERROR */\r
+"Błąd",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Błąd przy zapisywaniu konfiguracji",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSSI)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Rozpakowywanie modułów...",\r
+/* TR_FAILED_TO_FIND */\r
+"Błąd przy szukaniu adresu",\r
+/* TR_FOUND_NIC */\r
+"%s odnalazł następujący instefejs NIC w twoim komputerze: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"Niemiecki 1TR6 (nieużywany)",\r
+/* TR_HELPLINE */\r
+"             <Tab>/<Alt-Tab> pomiędzy elementami | <Spacja> wybierz",\r
+/* TR_HOSTNAME */\r
+"Nazwa hosta",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Nazwa hosta nie może być pusta.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Nazwa hosta nie może zawierać spacji",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Hostname może zawierać litery, cyfry i niektóre znaki specjalne.",\r
+/* TR_INITIALISING_ISDN */\r
+"Uruchamianie ISDN..",\r
+/* TR_INSERT_CDROM */\r
+"Proszę włożyć %s CD do napędu CDROM",\r
+/* TR_INSERT_FLOPPY */\r
+"Proszę włożyć %s dyskietkę do napędu 3,5\"",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Instalacja została anulowana",\r
+/* TR_INSTALLING_FILES */\r
+"Instalacja plików",\r
+/* TR_INSTALLING_GRUB */\r
+"Instalowanie GRUB-a...",\r
+/* TR_INTERFACE */\r
+"%s interfejs",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Nieudane uruchamianie intefejsu.",\r
+/* TR_INVALID_FIELDS */\r
+"Następujące pola są nieprawidłowe:\n\n",\r
+/* TR_INVALID_IO */\r
+"Dane o porcie IO są nieprawidłowe",\r
+/* TR_INVALID_IRQ */\r
+"Dane o IRQ są nieprawidłowe",\r
+/* TR_IP_ADDRESS_CR */\r
+"Adres IP\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"Adres IP:",\r
+/* TR_ISDN_CARD */\r
+"Karta ISDN",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"Karta ISDN nie została wykryta. Należy podać dodatkowe parametry modułu jeśli karta jest typu ISA lub jeśli ma specjalne wymagania.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Wybierz kartę ISDN",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Konfiguracja ISDN",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Menu konfiguracyjne ISDN",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN nie jest skonfigurowany. Niektóre rzeczy nie zostały wybrane.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN nie został jeszcze skonfigurowany. Wybierz co chcesz skonfigurować",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Wybierz protokół ISDN.",\r
+/* TR_ISDN_STATUS */\r
+"ISDN jest obecnie %s.\n\nProtokół: %s\nKarta: %s\nNumer telefonu: %s\nWybierz co chcesz przekonfigurować, albo wybierz aktualne ustawienia.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Mapowanie klawiatury",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Wybierz typ klawiatury którą używasz z poniższej listy.",\r
+/* TR_LEASED_LINE */\r
+"Linia dzierżawiona",\r
+/* TR_LOADING_MODULE */\r
+"Ładowanie modułów...",\r
+/* TR_LOADING_PCMCIA */\r
+"Ładowanie modułów PCMCIA...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Szukanie: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Tworzenie systemu plików dla boot...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Tworzenie systemu plików dla log...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Tworzenie systemu plików dla root...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Tworzenie pliku wymiany...",\r
+/* TR_MANUAL */\r
+"* RĘCZNIE *",\r
+/* TR_MAX_LEASE */\r
+"Maksymalny czas dzierżawy (w min):",\r
+/* TR_MAX_LEASE_CR */\r
+"Maksymalny czas dzierżawy\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Brakuje adresy IP dla interfejsu BLUE (Niebieskiego).",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Brakuje adresu IP dla interfejsu ORANGE (Pomarańczowego).",\r
+/* TR_MISSING_RED_IP */\r
+"Brakuje adresu IP dla interfejsu RED (Czerwonego).",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Nazwa modułu nie może być pusta.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Podaj nazwa modułu i parametry dla wymaganego sterownika.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Montowanie systemu plików boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Montowanie systemu plików log...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Montowanie systemu plików root...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Montowanie partycji swap...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Numer telefonu (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Maska sieci:",\r
+/* TR_NETWORKING */\r
+"Sieć",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Adres sieciowy\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Adres sieciowy:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Menu konfiguracji sieci",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Typ konfiguracji sieci",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Wybierz konfiguracje sieciową dla %s. Konfiguracja typów dla następujących interfejsów siecowych. Jeśli zmienisz ustawienia wymagane będzie ponowne uruchomienie sieci, i będziesz musiał ponownie przekonfigurować zadania sieciowe.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Maska sieci\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Błąd ustawień sieci.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Za mała ilość kart.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Brak Blue (Niebieskiego) inerfejsu.",\r
+/* TR_NO_CDROM */\r
+"Brak CD-ROM-u",\r
+/* TR_NO_HARDDISK */\r
+"Brak twrdego dysku.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Brak archiwum ipcop na  serwerze.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Brak Pomarańczowego interfejsu",\r
+/* TR_NO_RED_INTERFACE */\r
+"Brak Czerwonego interfejsu.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Brak obrazu z SCSI na serwerze.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Nie ma więcej nieprzydzielonych kart sieciowych, potrzeba więcej. Możesz wyszukać automatycznie więcej kart lub wybrać ręcznie z listy.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Partycjonowanie dysku.",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Hasła nie pasują do siebie.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Hasło nie może być puste.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Hasło nie może zawierać spacji.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Hasło:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Numer telefonu nie może być pusty.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Program instalacyjny przygotuje dysk na %s. Najpierw dysk zostanie podzielony, potem partycje zostaną sformatowane.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Wciśnij Ok aby ponownie uruchomić komputer.",\r
+/* TR_PRIMARY_DNS */\r
+"Podstawowy DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Podstawowy DNS\n",\r
+/* TR_PROBE */\r
+"Wykryj.",\r
+/* TR_PROBE_FAILED */\r
+"Automatyczne wykrywanie nieudało się.",\r
+/* TR_PROBING_SCSI */\r
+"Wykrywanie urządzeń SCSI...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Problem z ustawieniem %s hasła administratora.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Problem z ustawieniem hasła dla użytkownika 'root'.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Problem z ustawieniem hasła dla użytkownika 'setup'.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protokół/Kraj",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Rozruch sieci...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Zamykanie sieci...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Zamykanie połączeń innych niż lokalne... ",\r
+/* TR_QUIT */\r
+"Koniec",\r
+/* TR_RED_IN_USE */\r
+"ISDN (lub inne połączenie zewnętrzne) jest w użyciu. Nie możesz konfigurować jeśli ISDN lub Czerwony interfejs jest aktywny.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nKiedy konfiguracja się zakończy, będzie wymagany rozruch ponowny sieci.",\r
+/* TR_RESTORE */\r
+"Odzyskaj.",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Jesłi masz dyskietke z %s konfiguracją systemu, włóż ją do napędu i wciśnij Odzyskaj.",\r
+/* TR_ROOT_PASSWORD */\r
+"Hasło root-a",\r
+/* TR_SECONDARY_DNS */\r
+"Dodatkowy DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Dodatkowy DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Drugorzędny serwer DNS bez Pierwszorzędnego.",\r
+/* TR_SECTION_MENU */\r
+"Sekcja menu",\r
+/* TR_SELECT */\r
+"Wybierz",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Wybierz typ CD-ROM-u",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Nie wykryto CD-ROM-u w tym komputerze. Proszę wybrać  sterownik %s przy pomocy którego chcesz uruchomić CD-ROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Wybierz źródło instalacji.",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s może być instalowany z kilku źródeł. Najprościej jest użyć CD-ROM-u.Jeśli instalacja z płyty przebiega powoli, możesz instalować poprzez sieć LAN z instalacją udostępniona poprzez HTTP. W tym wypadku będzie wymagana dyskietka z driverami do kart sieciowych.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Wybierz sterownik karty sieciowej.",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Wybierz sterownik do karty sieciowej zainstalowanej w twoim komputerze. Jeśli wybierzesz RĘCZNIE, będziesz miał możliwość podania nazwy modułu i parametrów dla driverów które tego wymagają, np. kart ISA.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Wybierz interfejs do przekonfigurowania.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Wybierz co chcesz skonfigurować.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Ustawianie %s hasła dla użytkownika 'admin'...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Ustawieniem hasła dla użytkownika 'root'...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Ustawianie %s hasła dla użytkownika 'setup'...",\r
+/* TR_SETUP_FINISHED */\r
+"Konfiguracja jest  skończona. Wciśnij Ok aby wykonać restart.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Uruchamianie instalacji nie zostało zakończone. Musisz się upewnić czy Konfiduracja jest skończona poprawnie poprzez uruchomienie 'setup'  z powłoki.",\r
+/* TR_SETUP_PASSWORD */\r
+"Hasło do 'setup'",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Podaj parametry dodatkowe dla modułu.",\r
+/* TR_SINGLE_GREEN */\r
+"Twoja konfiguracja dla interfejsu GREEN (Zielonego) jest ustawiona.",\r
+/* TR_SKIP */\r
+"Pomiń",\r
+/* TR_START_ADDRESS */\r
+"Adres początkowy:",\r
+/* TR_START_ADDRESS_CR */\r
+"Adres początkowy\n",\r
+/* TR_STATIC */\r
+"Statycznie",\r
+/* TR_SUGGEST_IO */\r
+"(proponowane %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(proponowane %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Ten moduł jest już załadowany.",\r
+/* TR_TIMEZONE */\r
+"Strefa czasowa",\r
+/* TR_TIMEZONE_LONG */\r
+"Wybierz strefe czasową w której się znajdujesz.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Nie można otworzyć CD-ROM-u.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Nie można rozpakować modułów.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Nie można znaleźć odpowiednich driverów.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Nie można znaleźć karty ISDN w twoim komputerze. Możesz potrzebować podać dodatkowe parametry jeśli karta jest typu ISDN to wymagane są dodatkowe parametry.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Nie można uruchomić ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Nie można zaisntalować plików.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Nie można zaisntalować GRUB-a.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Nie można załadować modułów.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Nie można stworzyć systemu plików dla boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Nie można stworzyć systemu plików dla log. ",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Nie można stworzyć systemu plików dla root.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Nie można stworzyć systemu plików dla swap.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Nie można stworzyć dowiązania symbolicznego /dev/harddisk",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Nie można stworzyć dowiązania symbolicznego /dev/harddisk1",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Nie można stworzyć dowiązania symbolicznego /dev/harddisk2",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Nie można stworzyć dowiązania symbolicznego /dev/harddisk3",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Nie można stworzyć dowiązania symbolicznego /dev/harddisk4",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Nie można stworzyć dowiązania symbloicznego /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Nie można zamontować boot.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Nie można zamontować log.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Nie można zamontować proc.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Nie można zamontować root.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Nie można zamontować partycji swap.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Nie można otworzyć pliku hosts.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Nie można otworzyć pliku z ustawieniami.",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Nie można spartycjonować dysku.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Nie można usunąć tymczasowo ściągniętych plików.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Nie można ustawić nazwy hosta.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Nie można odmontować CD-ROM-u lub stacji dyskietek.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Nie można odmontować dysku twardego.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Nie można zapisać do /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Nie można zapisać do /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Nie można zapisać do /etc/hosts",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Nie można zapisać do /etc/hosts.allow",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Nie można zapisać do /etc/hosts.deny",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Nie można zapisać do %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Nie można zapisać do %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Nie można zapisać do %s/main/settings",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Wykryto nieprzypisaną kartę sieciową typu:\n%s\n\nMożna ja użyć do:",\r
+/* TR_UNKNOWN */\r
+"NIEZNANY",\r
+/* TR_UNSET */\r
+"NIEUSTAWIONE",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"OSTRZEŻENIE",\r
+/* TR_WARNING_LONG */\r
+"Jeśli zmienisz ten adres IP i jesteś zalogowany zdalnie, twoje połączenie z %s komputerem zostanie zerwane i będziesz musiał ponownie połączyć się na nowy adres IP. To jest ryzykowna operacja, powinna być przeprowadzana tylko wtedy, jeśli masz fizyczny dostęp do komputera, jeśli coś by poszło źle.",\r
+/* TR_WELCOME */\r
+"Witaj w programie instalacyjnym %s. Wybranie Anuluj na którymkolwiek z następnych ekranów zrestartuje komputer.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Twoja konfiguracja została ustawiona dla Zielonego interfejsu, który ma już skonfigurowany sterownik.",\r
+}; \r
+  \r
diff --git a/langs/pt/CVS/Entries b/langs/pt/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/pt/CVS/Repository b/langs/pt/CVS/Repository
new file mode 100644 (file)
index 0000000..3819686
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/pt
diff --git a/langs/pt/CVS/Root b/langs/pt/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/pt/CVS/Tag b/langs/pt/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/pt/cgi-bin/CVS/Entries b/langs/pt/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..a017d79
--- /dev/null
@@ -0,0 +1,2 @@
+/pt.pl/1.4.2.19/Tue Jul  5 20:39:41 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/pt/cgi-bin/CVS/Repository b/langs/pt/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..c9ee8ef
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/pt/cgi-bin
diff --git a/langs/pt/cgi-bin/CVS/Root b/langs/pt/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/pt/cgi-bin/CVS/Tag b/langs/pt/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/pt/cgi-bin/pt.pl b/langs/pt/cgi-bin/pt.pl
new file mode 100644 (file)
index 0000000..3461492
--- /dev/null
@@ -0,0 +1,857 @@
+# Portuguese  (pt) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Luis Santos, Renato Kenji Kano, Mark Peter, Wladimir Nunes,\r
+# Daniela Cattarossi \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Um certificado CA com este nome ja existe', \r
+'a connection with this common name already exists' => 'Já existe uma ligação com este nome comum.', \r
+'a connection with this name already exists' => 'Já existe uma ligação com este nome.', \r
+'access allowed' => 'Acesso permitido de:', \r
+'access refused with this oinkcode' => 'Acesso recusado com este Código Oink', \r
+'action' => 'Acção', \r
+'add' => 'Adicionar', \r
+'add a host' => 'Adicionar um host:', \r
+'add a new rule' => 'Adicionar uma nova regra:', \r
+'add network' => 'adicionar rede', \r
+'add new alias' => 'Adicionar um novo alias:', \r
+'add new lease' => 'Adicionar um novo lease fixo', \r
+'add service' => 'adicionar serviço', \r
+'add xtaccess' => 'Adicionar Acesso Externo', \r
+'admin user password has been changed' => 'A senha do utilizador Admin foi mudada.', \r
+'administrator user password' => 'Senha do utilizador Admin:', \r
+'adsl settings' => 'parâmetros adsl', \r
+'advanced' => 'Avançado', \r
+'again' => 'Novamente:', \r
+'alcatelusb help' => 'Para utilizar o modem Speedtouch USB você precisa carregar o firmware para sua caixa IPCop. Por favor, baixe o pacote <b>Firmware Embarcado</b> da speedtouch.com, desconpacte-o e então atualize o arquivo apropriado para o seu modem: KQD6_3.xxx quando Rev<4 ou ZZZL_3.xxx para Rev=4 usando o formulário abaixo.', \r
+'alcatelusb upload' => 'Carregue o Firmware USB Speedtouch', \r
+'alias ip' => 'IP alias', \r
+'aliases' => 'Aliases', \r
+'aliases not active' => 'Os aliases não serão ativados a menos que a interface VERMELHA seja ESTÁTICA', \r
+'all updates installed' => 'Todas as actualizações instaladas', \r
+'alt dialup' => 'Marcação', \r
+'alt home' => 'Principal', \r
+'alt information' => 'Informação', \r
+'alt logs' => 'Registros', \r
+'alt services' => 'Serviços', \r
+'alt system' => 'Sistema', \r
+'alt vpn' => 'VPNs', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'april' => 'Abril', \r
+'archive not exist' => 'Arquivo de configuação não existe', \r
+'are you sure' => 'Tem a certeza?', \r
+'arp table entries' => 'Tabela de Entradas ARP', \r
+'august' => 'Agosto', \r
+'authentication' => 'Autenticação:', \r
+'automatic' => 'Automático', \r
+'available updates' => 'Actualizações disponíveis:', \r
+'average' => 'Média', \r
+'avoid dod' => 'Não use esta opção com Marcação por Pedido! Normalmente usada se seu IPCop estiver por trás de um roteador. Seu IP VERMELHO precisa estar dentro de uma das três redes de números reservadas. Ex: 10/8, 172.16/12, 192.168/16', \r
+'back' => 'VOLTAR', \r
+'backup' => 'Backup', \r
+'backup config floppy' => 'Cópia de Segurança - Disquete', \r
+'backup configuration' => 'Configuração do Backup:', \r
+'backup sets' => 'Cópias de segurança', \r
+'backup to floppy' => 'Cópia de segurança para disquete', \r
+'backupprofile' => 'No caso de falha de reconexão, comute para o perfil', \r
+'bad characters in script field' => 'Caracteres errados no campo do script', \r
+'bad characters in the telephone number field' => 'Caracteres errados no campo do número do telefone.', \r
+'bad destination range' => 'A faixa de portas Destino teve um primeiro valor maior ou igual ao segundo valor', \r
+'bad ignore filter' => 'Filtro de exclusão errado:', \r
+'bad return code' => 'Código de erro do programa de ajuda', \r
+'bad source range' => 'A faixa de portas Origem teve um primeiro valor maior ou igual ao segundo valor.', \r
+'behind a proxy' => 'Por trás de um proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'Azul', \r
+'blue access' => 'Acesso Azul', \r
+'blue interface' => 'Interface Azul', \r
+'broadcast' => 'Transmissão', \r
+'broken pipe' => 'Tubo quebrado', \r
+'buffered memory' => 'Memória Buffered', \r
+'buffers' => 'buffers', \r
+'bytes per second' => 'bytes por segundo', \r
+'ca certificate' => 'Certificado CA', \r
+'ca name' => 'Nome da CA', \r
+'cache management' => 'Gestão da cache', \r
+'cache size' => 'Tamanho do Cache (MB):', \r
+'cached' => 'em cache', \r
+'cached memory' => 'Memória Cacheada', \r
+'cancel' => 'Cancelar', \r
+'cannot enable both nat traversal and compression' => 'Não foi possível activar ambos NAT Transversal e Compressão.', \r
+'cannot enable ntp without specifying primary' => 'Não é possível activar o NTP sem especificar o primário.', \r
+'cannot specify secondary dns without specifying primary' => 'Impossível especificar o DNS Secundário sem especificar o Primário.', \r
+'cannot specify secondary ntp without specifying primary' => 'Impossível especificar o Servidor NTP Secundário sem especificar o Primário', \r
+'cannot specify secondary wins without specifying primary' => 'Não é possível especificar o WINS secondário sem especificar o primário.', \r
+'cant change certificates' => 'Não é possível modificar os certificados.', \r
+'cant enable xtaccess' => 'A regra associada ao redireccionamento de portos está desactivada, consequentemente você não pode autorizar acessos externos para esta regra.', \r
+'cant start openssl' => 'Não é possível iniciar OpenSSL', \r
+'caps all' => 'TODOS', \r
+'capsclosed' => 'FECHADO', \r
+'capsopen' => 'ABERTO', \r
+'capswarning' => 'AVISO', \r
+'cert' => 'Certificado', \r
+'certificate' => 'Certificado', \r
+'certificate authorities' => 'Autoridades dos Certificados', \r
+'certificate does not have a valid ca associated with it' => 'O certificados não tem uma CA válida associada com ele.', \r
+'certificate file move failed' => 'Falhou a mudança do ficheiro de Certificado.', \r
+'cfg restart' => 'Sugere-se que se reinicie o computador após restaurar o ficheiro de configuração.', \r
+'chain' => 'Chain', \r
+'change passwords' => 'Alterar senhas', \r
+'check vpn lr' => 'Verificação', \r
+'city' => 'Cidade', \r
+'clear cache' => 'Limpar cache', \r
+'clenabled' => 'Fornece hora para a rede local', \r
+'click to disable' => 'Activo (clique para desactivar)', \r
+'click to enable' => 'Desactivado (clique para activar)', \r
+'clock has not been synchronized' => 'O relógio não foi sincronizado', \r
+'clock last synchronized at' => 'O relógio foi sincronizado pela última vez em', \r
+'common name' => 'Nome Comum', \r
+'compression' => 'Compressão:', \r
+'computer to modem rate' => 'Taxa do computador para o modem:', \r
+'concentrator name' => 'Nome do concentrador:', \r
+'confirmation' => 'confirmação', \r
+'connect on ipcop restart' => 'Conectar ao reiniciar o IPCop:', \r
+'connect the modem' => 'Ligar o modem', \r
+'connect timeout' => 'Tempo de expiração de conexão:', \r
+'connected' => 'Conectado', \r
+'connecting' => 'Conectando...', \r
+'connection' => 'Conexão', \r
+'connection debugging' => 'Debugging da ligação', \r
+'connection status and controlc' => 'Estado e controlo da Ligação', \r
+'connection tracking' => 'Rastreio de Conexões do IPTables', \r
+'connection type' => 'Tipo de ligação', \r
+'connection type is invalid' => 'O tipo de conexão é inválido.', \r
+'connections' => 'Conexões', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'As conexões estão associadas com este CA. Apagando o CA vai apagar também as conexões.', \r
+'could not be opened' => 'não pode ser aberto', \r
+'could not connect to' => 'Não foi possível ligar a ', \r
+'could not connect to www ipcop org' => 'Não foi possivel conectar a www.ipcop.org', \r
+'could not create directory' => 'Impossível criar diretório', \r
+'could not download latest patch list' => 'Impossível efectuar download da última lista de correcções (não conectado).', \r
+'could not download latest updates' => 'Não foi possível receber as últimas actualizações.', \r
+'could not download the available updates list' => 'Impossível efectuar download da lista de actualizações disponíveis', \r
+'could not open available updates file' => 'Impossível abrir arquivo disponível de atualizações.', \r
+'could not open installed updates file' => 'Impossível abrir o arquivo de atualizações instaladas', \r
+'could not open update information file' => 'Impossível abrir arquivo de informação de atualização. O arquivo está corrompido.', \r
+'could not retrieve common name from certificate' => 'Não foi possivel retirar o nome comum do certificado.', \r
+'country' => 'País', \r
+'cpu usage per' => 'Uso do processador por', \r
+'create' => 'Criar', \r
+'credits' => 'Créditos', \r
+'cron server' => 'Servidor CRON', \r
+'current' => 'Actual', \r
+'current aliases' => 'Aliases correntes:', \r
+'current dynamic leases' => 'Leases dinâmicos atuais', \r
+'current fixed leases' => 'Leases fixos atuais', \r
+'current hosts' => 'hosts actuais:', \r
+'current profile' => 'Perfil actual:', \r
+'current rules' => 'Regras actuais:', \r
+'custom networks' => 'Redes personalizadas', \r
+'custom services' => 'Serviços personalizados', \r
+'dat without key' => 'Um ficheiro encriptado não pode ser restaurado sem a chave.', \r
+'date' => 'Data', \r
+'date not in logs' => 'Nenhum (ou parcial apenas) registros existem para o dia consultado', \r
+'day' => 'Dia', \r
+'day after' => 'dia seguinte', \r
+'day before' => 'dia anterior', \r
+'days' => 'dias', \r
+'ddns hostname added' => 'Hostname do DNS dinâmico adicionado', \r
+'ddns hostname removed' => 'Hostname do DNS dinâmico removido', \r
+'december' => 'Dezembro', \r
+'def lease time' => 'Tempo de Empréstimo por Defeito', \r
+'default lease time' => 'Tempo padrão do lease (minutos):', \r
+'default networks' => 'Redes por defeito', \r
+'default renewal time' => 'Tempo de renovação por defeito', \r
+'default services' => 'Serviços por defeito', \r
+'delete' => 'Remover', \r
+'demon login script' => 'Serviço do script de login', \r
+'description' => 'Descrição', \r
+'dest ip and port' => 'IP Dest.:Porta', \r
+'destination' => 'Destino', \r
+'destination ip' => 'ip de destino', \r
+'destination ip bad' => 'IP de destino inválido', \r
+'destination net' => 'Rede de Destino', \r
+'destination port' => 'porta de destino', \r
+'destination port numbers' => 'número da porta de destino', \r
+'destination port overlaps' => 'Faixa de portas destino sobrepõe-se à faixa existente.', \r
+'detail level' => 'Nível de detalhe', \r
+'device' => 'dispositivo', \r
+'dhcp configuration' => 'configuração DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'Servidor DHCP', \r
+'dhcp server disabled' => 'Servidor DHCP desactivado. Parado.', \r
+'dhcp server disabled on blue interface' => 'Servidor DHCP desactivado no interface AZUL', \r
+'dhcp server enabled' => 'Servidor DHCP activo. Reiniciando.', \r
+'dhcp server enabled on blue interface' => 'Servidor DHCP activo no interface AZUL', \r
+'dial' => 'Conectar', \r
+'dial user password' => 'Senha do usuário de discagem.', \r
+'dial user password has been changed' => 'A senha do usuário de discagem foi mudada.', \r
+'dialing mode' => 'Modo de discagem:', \r
+'dialup settings' => 'Parâmetros da ligação telefónica', \r
+'disk access per' => 'Acesso ao disco por', \r
+'disk usage' => 'uso do disco', \r
+'display hostname in window title' => 'Exibe hostname no título da janela', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Configuração dos furos para a DMZ', \r
+'dmz pinhole rule added' => 'Regra de abertura para DMZ adicionada; reiniciando abertura para DMZ.', \r
+'dmz pinhole rule removed' => 'Abertura para DMZ removido; reiniciando aberturas para DMZ.', \r
+'dmzpinholes for same net not necessary' => 'Buracos da agulha DMZ não são necessários para a mesma rede. Seleccione uma rede de origem ou de destino diferente.', \r
+'dns check failed' => 'Falha na verificação do dns', \r
+'dns proxy server' => 'Servidor proxy DNS', \r
+'dod' => 'Marcação por requisito', \r
+'dod for dns' => 'Marcação por requisito de DNS:', \r
+'dod waiting' => 'Ligação por requisito aguardando', \r
+'domain' => 'Domínio', \r
+'domain name' => 'Nome do Domínio', \r
+'domain name suffix' => 'Sufixo do domínio.', \r
+'domain not set' => 'Domínio não configurado.', \r
+'downlink speed' => 'Velocidade Downlink (kbit/seg)', \r
+'download ca certificate' => 'Download do Certificado CA', \r
+'download certificate' => 'Download Certificate', \r
+'download host certificate' => 'Download certificado de anfitrião', \r
+'download new ruleset' => 'Download de novo conjunto de regras', \r
+'download pkcs12 file' => 'Download ficheiro PCKS12', \r
+'download root certificate' => 'Download certificado root', \r
+'driver' => 'Driver', \r
+'dst port' => 'porta dst', \r
+'dstprt range overlaps' => 'Faixa de portas destino sobrepõe-se às portas já definidas.', \r
+'dstprt within existing' => 'Porta destino está contida em uma faixa de portas já definida.', \r
+'duplicate ip' => 'Endereço IP inserido duplicado', \r
+'duplicate mac' => 'Introduzido endereço MAC duplicado', \r
+'duplicate name' => 'Esse nome já está a ser usado, por favor escolha outro.', \r
+'dynamic dns' => 'DNS Dinâmico', \r
+'dynamic dns client' => 'Cliente de DNS dinâmico', \r
+'e-mail address too long' => 'Endereço e-mail demasiado comprido; não deve ser mais longo que 40 caracteres.', \r
+'eciadsl help' => 'Para utilizar o modem ECI ADSL você precisa enviar um arquivo synch.bin para o IPCop. Por favor, faça download do arquivo do site da ECIADSL e envie o arquivo <B>synch.bin</B> usando o formulário abaixo.', \r
+'eciadsl upload' => 'Envie o arquivo synch.bin do ECI ADSL.', \r
+'edit' => 'editar', \r
+'edit a rule' => 'Modificar uma regra existente:', \r
+'edit advanced settings when done' => 'Edite parâmetros avançados quando terminar.', \r
+'edit an existing alias' => 'Editar um alias existente', \r
+'edit an existing host' => 'Editar um host existente', \r
+'edit an existing lease' => 'Editar um empréstimo existente', \r
+'edit hosts' => 'Editar Hosts', \r
+'edit network' => 'Editar rede', \r
+'edit service' => 'Editar serviço', \r
+'empty' => 'vazio', \r
+'enable ignore filter' => 'Active ignorar o filtro', \r
+'enable javascript' => 'Activar Javascript', \r
+'enable wildcards' => 'Habilite wildcards:', \r
+'enabled' => 'permitido', \r
+'enabled on' => 'Activo ligado', \r
+'enabledtitle' => 'Activo', \r
+'encapsulation' => 'Encapsulamento', \r
+'encrypted' => 'Encriptado', \r
+'end address' => 'Endereço final:', \r
+'err bk 1' => 'Erro criando ficheiro', \r
+'err bk 2 key' => 'Erro criando ficheiro chave', \r
+'err bk 3 tar' => 'Erro acrescentando ficheiros ao arquivo', \r
+'err bk 4 gz' => 'Erros comprimindo ficheiro', \r
+'err bk 5 encrypt' => 'Erro encriptando ficheiro', \r
+'err rs 1' => 'Erro restaurando ficheiro', \r
+'err rs 6 decrypt' => 'Erro na descriptação de arquivo', \r
+'err rs 7 untartst' => 'Ficheiro desencriptado inválido', \r
+'err rs 8 untar' => 'Erro ao descompactar arquivo', \r
+'error messages' => 'Mensagens de erro:', \r
+'esp encryption' => 'Encriptação ESP', \r
+'esp grouptype' => 'Tipo de grupo ESP:', \r
+'esp integrity' => 'Integridade ESP:', \r
+'esp keylife' => 'Ficheiro chave ESP:', \r
+'esp keylife should be between 1 and 24 hours' => 'A duração da chave ESP deve ser entre 1 hora e 24 horas.', \r
+'every' => 'cada', \r
+'excluding buffers and cache' => '-/+ buffers/cache', \r
+'expected' => 'esperado', \r
+'expires' => 'expira', \r
+'export' => 'exportar', \r
+'external access' => 'Acesso Externo', \r
+'external access configuration' => 'Configuração de acesso externo', \r
+'external access rule added' => 'Regra de acesso externo adicionada; reiniciando controlador de acesso', \r
+'external access rule removed' => 'Regra de acesso externo removida; reiniciando controlador de acesso', \r
+'external aliases configuration' => 'Configuração de aliases externos.', \r
+'february' => 'Fevereiro', \r
+'filename' => 'Ficheiro', \r
+'filesystem full' => 'Sistema de arquivos cheio.', \r
+'firewall' => 'firewall', \r
+'firewall hits' => 'Número total de hits do firewall para', \r
+'firewall log' => 'Registros da firewall', \r
+'firewall log viewer' => 'Visualizador de Registo da Firewall', \r
+'firewall logs' => 'Registros da Firewall', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Envio de Firmware/Drivers', \r
+'fixed ip lease added' => 'Lease de IP fixo adicionado', \r
+'fixed ip lease modified' => 'Empréstimo de IP fixo modificado', \r
+'fixed ip lease removed' => 'Lease de IP fixo removido', \r
+'force update' => 'Force atualização', \r
+'forwarding rule added' => 'Regra de redireccionamento adicionada; reiniciando redireccionamento', \r
+'forwarding rule removed' => 'Regra de redireccionamento removida; reiniciando redireccionamento', \r
+'forwarding rule updated' => 'Regra de redireccionamento atualizada; reiniciando redireccionamento', \r
+'free' => 'Livre', \r
+'free memory' => 'Memoria Livre', \r
+'free swap' => 'Swap livre', \r
+'fritzdsl upload' => 'Upload do driver Fritz!DSL', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Porta de Saída', \r
+'gateway ip' => 'IP Porta de Saída', \r
+'generate a certificate' => 'Gerar um certificado:', \r
+'generate root/host certificates' => 'Gerar Certificados Raiz/Host', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Gerar os certificados root e host pode demorar bastante tempo. Pode demorar bastantes minutos em hardware antigo. Por favor seja paciente.', \r
+'global settings' => 'Ajustes globais', \r
+'graph' => 'Gráfico', \r
+'graph per' => 'Gráfico por', \r
+'green' => 'VERDE', \r
+'green interface' => 'Interface Verde', \r
+'gui settings' => 'configuração ambiente gráfico', \r
+'gz with key' => 'Apenas um ficheiro encriptado pode ser restaurado nesta máquina.', \r
+'hangup' => 'Disconecte', \r
+'hangup string' => 'Desligar:', \r
+'high' => 'Alto', \r
+'high memory usage' => 'Alto uso de memória', \r
+'holdoff' => 'Tempo de posse (em segundos)', \r
+'host certificate' => 'Certificado host', \r
+'host configuration' => 'Configuração Host', \r
+'host ip' => 'Endereço IP do Host', \r
+'host to net vpn' => 'VPN Host-para-Rede (RoadWarrior)', \r
+'hostname' => 'hostname', \r
+'hostname and domain already in use' => 'Hostname e domínio já em uso.', \r
+'hostname cant be empty' => 'O hostname não pode ser vazio.', \r
+'hostname not set' => 'Hostname não ajustado.', \r
+'hosts config added' => 'configuração hosts adicionada', \r
+'hosts config changed' => 'configuração dos hosts modificada', \r
+'hours' => 'horas', \r
+'hours2' => 'Horas', \r
+'ibod for dual isdn only' => 'iBOD só pode ser usado com ISDN dupla.', \r
+'icmp selected but no type' => 'ICMP seleccionado como protocolo, mas não foi especificado o tipo de ICMP.', \r
+'icmp type' => 'Tipo de ICMP', \r
+'id' => 'id', \r
+'idle' => 'Parado', \r
+'idle cpu' => 'Processador sem carga', \r
+'idle cpu usage' => 'CPU sem uso.', \r
+'idle timeout' => 'Timeout por inatividade (min; 0 para desabilitar):', \r
+'idle timeout not set' => 'Timeout por inatividade não ajustado.', \r
+'ids log viewer' => 'Visualizador de registro IDS', \r
+'ids logs' => 'Registo de IDS', \r
+'iface' => 'Iface', \r
+'ignore filter' => 'Ignore filtro', \r
+'ike encryption' => 'Encriptação IKE:', \r
+'ike grouptype' => 'Tipo de grupo IKE:', \r
+'ike integrity' => 'Integridade do IKE:', \r
+'ike lifetime' => 'Tempo de vida do IKE:', \r
+'ike lifetime should be between 1 and 8 hours' => 'O tempo de vida IKE deve ser entre 1 a 8 horas.', \r
+'import' => 'Importar', \r
+'in' => 'Entrada', \r
+'incoming traffic in bytes per second' => 'Chegada de tráfego em Bytes por Segundo', \r
+'info' => 'Informação', \r
+'init string' => 'Inicialização:', \r
+'insert floppy' => 'Insira uma disquete formatada na drive do IPCop e clique <i>Cópia de segurança para disquete</i> para criar uma cópia de segurança da configuração do sistema. Por favor, examine os resultados cuidadosamente para certificar-se que a cópia foi completada com sucesso.<p>', \r
+'install new update' => 'Instalar nova atualização:', \r
+'installed' => 'Instalado', \r
+'installed updates' => 'Actualizações instaladas:', \r
+'instant update' => 'Actualização Instantânea', \r
+'interface' => 'Interface:', \r
+'interfaces' => 'Interfaces:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Detecção de Intrusão', \r
+'intrusion detection system' => 'Sistema de Detecção de Intrusos', \r
+'intrusion detection system log viewer' => 'Visualisador do Registo da Detecção de Intrusão', \r
+'intrusion detection system2' => 'Sistema de Detecção de Intrusos:', \r
+'invalid broadcast ip' => 'IP de transmissão inválido', \r
+'invalid cache size' => 'Tamanho do cache inválido.', \r
+'invalid characters found in pre-shared key' => 'Caracteres inválidos encontrados na chave pré-partilhada.', \r
+'invalid date entered' => 'Data introduzida inválida', \r
+'invalid default lease time' => 'Tempo de lease padrão inválido.', \r
+'invalid domain name' => 'nome do domínio inválido', \r
+'invalid downlink speed' => 'Velocidade downlink inválida.', \r
+'invalid end address' => 'Endereço final inválido.', \r
+'invalid fixed ip address' => 'Endereço IP fixo inválido.', \r
+'invalid fixed mac address' => 'Endereço MAC fixo inválido.', \r
+'invalid hostname' => 'Hostname inválido.', \r
+'invalid input' => 'Entrada inválida.', \r
+'invalid input for authentication method' => 'Input inválido para método de autenticação.', \r
+'invalid input for city' => 'Entrada inválida para cidade.', \r
+'invalid input for country' => 'Dado errado para país.', \r
+'invalid input for department' => 'Entrada inválida para departamento.', \r
+'invalid input for e-mail address' => 'Introdução errada para endereço e-mail.', \r
+'invalid input for esp keylife' => 'Entrada inválida para Arquivo Chave ESP', \r
+'invalid input for hostname' => 'Entrada inválida para nome de host.', \r
+'invalid input for ike lifetime' => 'Entrada inválida para tempo de vida IKE.', \r
+'invalid input for name' => 'Entrada inválida para nome.', \r
+'invalid input for organization' => 'Entrada inválida para organização.', \r
+'invalid input for remote host/ip' => 'Entrada inválida para host/ip remoto.', \r
+'invalid input for state or province' => 'Entrada inválida para estado ou província.', \r
+'invalid ip' => 'Endereço IP inválido.', \r
+'invalid keep time' => 'Tempo a manter deve ser um número válido.', \r
+'invalid key' => 'Chave inválida.', \r
+'invalid logserver address' => 'Endereço do servidor syslog inválido', \r
+'invalid max lease time' => 'Tempo de lease máximo inválido.', \r
+'invalid maximum incoming size' => 'Tamanho máximo de entrada inválido.', \r
+'invalid maximum object size' => 'Tamanho máximo de objecto inválido.', \r
+'invalid maximum outgoing size' => 'Tamanho máximo de saída inválido.', \r
+'invalid md5sum' => 'MD5Sum inválido.', \r
+'invalid minimum object size' => 'Tamanho mínimo de objecto inválido.', \r
+'invalid netmask' => 'Máscara de rede inválida', \r
+'invalid port' => 'Porto inválido. Deve ser um número de porto válido.', \r
+'invalid primary dns' => 'DNS primário inválido.', \r
+'invalid primary ntp' => 'Endereço do servidor NTP primário inválido.', \r
+'invalid secondary dns' => 'DNS secundário inválido.', \r
+'invalid secondary ntp' => 'Endereço do servidor NTP secundário inválido.', \r
+'invalid start address' => 'Endereço inicial inválido.', \r
+'invalid time entered' => 'A hora introduzida é inválida.', \r
+'invalid time period' => 'Período de tempo inválido.', \r
+'invalid uplink speed' => 'Velocidade uplink inválida.', \r
+'invalid upstream proxy username or password setting' => 'Nome de utilizador e palavra-passe do proxy de saída inválido.', \r
+'invalid vpi vpci' => 'Parâmetros VPI/VPCI inválidos', \r
+'invalid wins address' => 'Endereço do servidor WINS inválido.', \r
+'invert' => 'Inverter', \r
+'ip address' => 'Endereço IP', \r
+'ip address in use' => 'Endereço IP já em uso.', \r
+'ip alias added' => 'Alias de IP externo adicionado.', \r
+'ip alias changed' => 'Alias de IP externo mudou', \r
+'ip alias removed' => 'Alias de IP externo mudou', \r
+'ip info' => 'Informação IP', \r
+'ipcop has now rebooted' => 'O IPCop foi reinicializado', \r
+'ipcop has now shutdown' => 'O IPCop foi finalizado.', \r
+'ipcop side' => 'Lado do IPCop:', \r
+'ipcop side is invalid' => 'Lado do IPCop é inválido.', \r
+'ipcops hostname' => 'Nome de host do IPCop', \r
+'ipinfo' => 'Info. IP', \r
+'isdn' => 'RDIS', \r
+'isdn settings' => 'Ajustes RDIS adicionais:', \r
+'isdn1' => 'RDIS Simples', \r
+'isdn2' => 'RDIS Dupla', \r
+'january' => 'Janeiro', \r
+'javascript menu error1' => 'Se os menús não estão funcionando, desabilite o Javascript na', \r
+'javascript menu error2' => 'página.', \r
+'july' => 'Julho', \r
+'june' => 'Junho', \r
+'kernel' => 'Kernel', \r
+'kernel logging server' => 'Servidor de logs do kernel', \r
+'kernel version' => 'Versão do kernel:', \r
+'lan' => 'Rede Local', \r
+'languagepurpose' => 'Selecione o idioma que você deseja que o IPCop utilize:', \r
+'lease expires' => 'Lease expirado', \r
+'legend' => 'Legenda', \r
+'line' => 'Linha', \r
+'loaded modules' => 'Módulos carregados:', \r
+'local subnet' => 'Sub-rede Local:', \r
+'local subnet is invalid' => 'Sub-rede local inválida.', \r
+'local vpn hostname/ip' => 'VPN Nome_de_Anfitrião/IP Local', \r
+'log' => 'Registro:', \r
+'log enabled' => 'Registo activo', \r
+'log server address' => 'Servidor de registo do sistema', \r
+'log settings' => 'Parâmetros do registo', \r
+'log summaries' => 'Sumários do Registo', \r
+'log summary' => 'Sumário do Registo', \r
+'log viewer' => 'Visualizador do Log', \r
+'log viewing options' => 'Opções da visualização do registo', \r
+'logging server' => 'Servidor de Log', \r
+'loginlogout' => 'Login/Logout', \r
+'lookup failed' => 'Busca reversa falhou', \r
+'low' => 'Baixo', \r
+'ls_dhcpd' => 'Servidos DHCP:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'Servidor HTTP:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => 'Kernel e Firewall:', \r
+'ls_modprobe' => 'Carregador do módulo:', \r
+'ls_pam_unix' => 'Logins de usuário local:', \r
+'ls_sshd' => 'Logins de usuário remoto:', \r
+'ls_syslogd' => ' Syslogd: ', \r
+'mac address' => 'Endereço MAC', \r
+'mac address in use' => 'Endereço MAC já em uso', \r
+'main page' => 'Página principal', \r
+'manual' => 'Manual', \r
+'manual control and status' => 'Controle manual e situação:', \r
+'manually' => 'Manualmente', \r
+'march' => 'Março', \r
+'marked' => 'Marcado', \r
+'max incoming size' => 'Tamanho máx. de entrada (KB):', \r
+'max lease time' => 'Tempo máx. de lease (minutos):', \r
+'max outgoing size' => 'Tamanho máx. de saída (KB):', \r
+'max renewal time' => 'Tempo máximo de renovação', \r
+'max retries not set' => 'Tentativas máx. não ajustado.', \r
+'max size' => 'Tamanho máx. do objeto (KB):', \r
+'maximal' => 'Máxima', \r
+'maximum retries' => 'Num. max. de tentativas:', \r
+'may' => 'Maio', \r
+'medium' => 'Médio', \r
+'memory' => 'Memória:', \r
+'memory usage per' => 'Uso de Memória por', \r
+'method' => 'Método:', \r
+'min size' => 'Tam. min. de objeto (KB):', \r
+'minutes' => 'minutos', \r
+'missing dat' => 'Ficheiro encriptado não encontrado', \r
+'missing gz' => 'Ficheiro desencriptado não encontrado', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Configuração do modem', \r
+'modem on com1' => 'Modem na com1', \r
+'modem on com2' => 'Modem na COM2', \r
+'modem on com3' => 'Modem na COM3', \r
+'modem on com4' => 'Modem na COM4', \r
+'modem on com5' => 'Modem na COM5', \r
+'modem settings have errors' => 'Ajustes do modem tem erros', \r
+'modem speaker on' => 'Alto-falante do modem ligado:', \r
+'modulation' => 'Modulação', \r
+'month' => 'Mês', \r
+'months' => 'meses', \r
+'mounted on' => 'Mounted ligado', \r
+'name' => 'Nome', \r
+'name is invalid' => 'Nome inválido', \r
+'name must only contain characters' => 'Nome deve conter apenas caracteres.', \r
+'name too long' => 'Nome completo do utilizador ou hostname do sistema muito longos.', \r
+'nat-traversal' => 'Nat Traversal:', \r
+'net' => 'Rede', \r
+'net to net vpn' => 'Rede Privada Virtual Rede-à-Rede', \r
+'netmask' => 'Máscara de Rede', \r
+'network' => 'rede', \r
+'network added' => 'Rede específica adicionada', \r
+'network configuration' => 'Configuração da Rede', \r
+'network removed' => 'Rede específica removida', \r
+'network status information' => 'Informação de Situação da Rede', \r
+'network time' => 'Use um Servidor de Tempo de Rede:', \r
+'network traffic graphs' => 'Gráficos de tráfego da rede', \r
+'network updated' => 'Rede específica actualizada', \r
+'networks settings' => 'Firewall - Parâmetros da Rede', \r
+'newer' => 'Novo', \r
+'next address' => 'Próximo Endereço', \r
+'no alcatelusb firmware' => 'Falta o firmware do Alcatel USB. Por favor, carregue-o.', \r
+'no cfg upload' => 'Nenhuns dados foram enviados', \r
+'no dhcp lease' => 'Não foi adquirido nenhum empréstimo de DHCP', \r
+'no eciadsl synch.bin file' => 'Falta o arquivo synch.in do ECI ADSL. Por favor, carregue-o.', \r
+'no fritzdsl driver' => 'Não existe driver Fritz!DSL. Faça o upload.', \r
+'no information available' => 'Informação não disponível.', \r
+'no modem selected' => 'Nenhum modem seleccionado', \r
+'no set selected' => 'Nenhuma opção foi seleccionada', \r
+'none found' => 'nenhum encontrado', \r
+'nonetworkname' => 'Nenhum nome de rede introduzido', \r
+'noservicename' => 'Nenhum nome de serviço introduzido', \r
+'not a valid ca certificate' => 'Certificado CA inválido.', \r
+'not present' => '<B>Não</B> presente', \r
+'not running' => 'parado', \r
+'november' => 'Novembro', \r
+'ntp configuration' => 'Configuração do NTP', \r
+'ntp must be enabled to have clients' => 'O NTP deve estar activo para ter clientes.', \r
+'ntp server' => 'Servidor NTP', \r
+'ntp syncro disabled' => 'Sincronização NPT desligada', \r
+'ntp syncro enabled' => 'Sincronização NTP habilitada', \r
+'ntpd restarted' => 'ntpd reiniciado', \r
+'number' => 'Número:', \r
+'october' => 'Outubro', \r
+'older' => 'Mais velho', \r
+'only digits allowed in holdoff field' => 'Apenas dígitos são permitidos no campo holdoff.', \r
+'only digits allowed in max retries field' => 'Apenas números são permitidos no campo de tentativas máximas.', \r
+'only digits allowed in the idle timeout' => 'Apenas números são permitidos no campo de tempo de queda por inatividade.', \r
+'open to all' => 'Permite acesso externo para TODOS', \r
+'openssl produced an error' => 'OpenSSL produziu um erro', \r
+'orange' => 'LARANJA', \r
+'organization cant be empty' => 'Organização não pode ser vazio.', \r
+'organization name' => 'Nome da Organização', \r
+'organization too long' => 'Organização muito grande; o nome não deve ter mais que 60 caracteres.', \r
+'original' => 'Original', \r
+'other login script' => 'Outro script de login', \r
+'out' => 'Saída', \r
+'outgoing traffic in bytes per second' => 'Tráfego de Saída em Bytes por Segundo', \r
+'package failed to install' => 'A instalação do pacote falhou.', \r
+'pap or chap' => 'PAP ou CHAP', \r
+'password' => 'Palavra-passe:', \r
+'password contains illegal characters' => 'A palavra-passe contém caracteres inválidos.', \r
+'password not set' => 'Palavra-passe não definida.', \r
+'password too short' => 'Palavra-passe é muito pequena.', \r
+'passwords do not match' => 'As palavras-passe não coincidem.', \r
+'passwords must be at least 6 characters in length' => 'A palavra-passe tem que ter pelo menos 6 caracteres.', \r
+'percentage' => 'percentagem', \r
+'persistent' => 'persistente', \r
+'phase1 group' => 'Grupo da Fase1', \r
+'phonebook entry' => 'Entrada do Phonebook:', \r
+'pkcs12 file password' => 'Arquivo de senha PKCS12', \r
+'port' => 'porto', \r
+'port forwarding configuration' => 'Configuração de forwarding de porta', \r
+'ports' => 'portos', \r
+'pots' => 'analógica', \r
+'ppp setup' => 'Configuração de PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Parâmetros adicionais do PPPOE:', \r
+'pptp settings' => 'Parâmetros adicionais do PPTP', \r
+'pre-shared key is too short' => 'Chave pré-compartilhada é muito pequena.', \r
+'present' => 'driver actual', \r
+'primary dns' => 'DNS primário:', \r
+'primary ntp server' => 'Servidor NTP primário', \r
+'primary wins server address' => 'Endereço do servidor WINS primário.', \r
+'priority' => 'Prioridade', \r
+'profile' => 'Perfil', \r
+'profile deleted' => 'Perfil apagado:', \r
+'profile has errors' => 'Perfil tem erros', \r
+'profile made current' => 'Perfil corrente:', \r
+'profile name' => 'Nome do perfil:', \r
+'profile name not given' => 'Falta nome do perfil.', \r
+'profile saved' => 'Perfil salvo:', \r
+'profiles' => 'Perfís:', \r
+'proto' => 'Proto', \r
+'protocol' => 'Protocolo', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Gráficos de acesso do proxy', \r
+'proxy log viewer' => 'Visualizador do registro do proxy', \r
+'proxy logs' => 'Registo da Proxy', \r
+'proxy port' => 'Porto Proxy', \r
+'pulse' => 'Decádica', \r
+'pulse dial' => 'Marcando por decádico', \r
+'ram' => 'Memória RAM', \r
+'read sectors' => 'Sectores Lidos', \r
+'reboot' => 'Reiniciar', \r
+'rebooting' => 'Reiniciando', \r
+'rebooting ipcop' => 'Reiniciando IPCOP', \r
+'reconnection' => 'Reconexão', \r
+'references' => 'Referências', \r
+'refresh' => 'Refrescar', \r
+'refresh update list' => 'Refrescar lista de actualizações', \r
+'released' => 'Libertado', \r
+'remark' => 'Observação', \r
+'remark title' => 'Observação:', \r
+'remote access' => 'Acesso remoto', \r
+'remote host/ip' => 'Host/IP Remoto', \r
+'remote logging' => 'Acesso remoto', \r
+'remote subnet' => 'Subrede remota:', \r
+'remote subnet is invalid' => 'Subrede remota é inválida.', \r
+'remove' => 'Remover', \r
+'remove ca certificate' => 'Remove Certificado CA', \r
+'reserved dst port' => 'Porta de destino é reservada para uso excusivo do IPCop:', \r
+'reserved src port' => 'Porta origem reservada para uso exclusivo do IPCop:', \r
+'reset' => 'Reajuste', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Reiniciando a configuração da VPN removerá o CA raiz, o certificado do host e todas as conexões baseadas em certificados.', \r
+'restart' => 'Reiniciar', \r
+'restore' => 'Restabelecer', \r
+'restore defaults' => 'Valores predeterminados', \r
+'restore hardware settings' => 'Restaurar configuração de hardware', \r
+'reverse sort' => 'Ordenar por ordem cronológica inversa', \r
+'root certificate' => 'Certificado Raiz', \r
+'root path' => 'Caminho Root', \r
+'router ip' => 'Endereço IP do Router:', \r
+'routing table entries' => 'Entradas na Tabela de Roteamento:', \r
+'rsvd dst port overlap' => 'Faixa de portas destino sobrepões-se à porta reservada para o IPCop:', \r
+'rsvd src port overlap' => 'Faixa de portas origem sobrepõe-se à porta reservada para o IPCop:', \r
+'running' => 'RODANDO', \r
+'save' => 'Guardar', \r
+'save error' => 'Incapaz de gravar ficheiro de configuração', \r
+'script name' => 'Nome do script:', \r
+'secondary dns' => 'DNS secundário:', \r
+'secondary ntp server' => 'Servidor NTP Secundário', \r
+'secondary wins server address' => 'Endereço do Servidor WINS Secundário', \r
+'seconds' => 'Segs', \r
+'section' => 'Secção', \r
+'sectors read from disk per second' => 'Sectores lidos do disco por segundo', \r
+'sectors written to disk per second' => 'Sectores escritos no disco por segundo', \r
+'secure shell server' => 'Servidor de shell seguro', \r
+'select' => 'Seleccione', \r
+'select dest net' => 'Seleccione uma rede de destino.', \r
+'select source net' => 'Selecione uma rede de origem. Se você não tiver uma rede Laranja ou Azul, você não precisa de furos de DMZ.', \r
+'send cr' => 'O ISP requer Retorno da Portadora', \r
+'september' => 'Setembro', \r
+'serial' => 'Serial', \r
+'service' => 'Serviço', \r
+'service added' => 'Serviço de Rede Personalizada adicionado', \r
+'service name' => 'Nome do serviço:', \r
+'service removed' => 'Serviço de Rede Personalizada removido', \r
+'service updated' => 'Servido de Rede Personalizada actualizado', \r
+'servicename' => 'Nome do Serviço', \r
+'services' => 'Serviços:', \r
+'services settings' => 'Firewall - Parâmetros dos serviços', \r
+'set time now' => 'Acerte a hora agora', \r
+'settings' => 'Parâmetros', \r
+'shaping add options' => 'Adicionar serviço', \r
+'shaping list options' => 'Serviços de forma de tráfego', \r
+'shared' => 'partilhado', \r
+'shared memory' => 'Memória Partilhada', \r
+'show ca certificate' => 'Mostra Certificado CA', \r
+'show certificate' => 'Mostra Certificado', \r
+'show host certificate' => 'Mostra Certificado Host', \r
+'show root certificate' => 'Mostra Certificado Raiz', \r
+'shutdown' => 'Desligar', \r
+'shutdown control' => 'Controle de desligamento', \r
+'shutdown2' => 'Encerramento:', \r
+'shutting down' => 'Encerrando', \r
+'shutting down ipcop' => 'Encerrando o IPCop', \r
+'size' => 'tamanho', \r
+'snort hits' => 'Número total de regras de Intrusão ativadas para', \r
+'sort ascending' => 'Ordenar ascendente', \r
+'sort descending' => 'Ordenar descendente', \r
+'source' => 'Origem', \r
+'source ip' => 'IP origem', \r
+'source ip and port' => 'IP:Porta origem', \r
+'source ip bad' => 'Endereço IP ou endereço de rede inválidos.', \r
+'source ip in use' => 'IP origem em uso:', \r
+'source net' => 'Rede Origem', \r
+'source network' => 'IP ou rede de origem (vazio para "TUDO"):', \r
+'source port' => 'Porta origem', \r
+'source port in use' => 'Porta origem em uso:', \r
+'source port numbers' => 'Porta origem deve ter um número de porta válido ou de faixa válido.', \r
+'source port overlaps' => 'Faixa da portas origem sobrepõe-se a uma faixa de portas existente.', \r
+'speaker off' => 'Altofalante desligado:', \r
+'speaker on' => 'Altofalante ligado:', \r
+'src port' => 'Porta Orig', \r
+'srcprt range overlaps' => 'Faixa de portas origem se sobrepõe a uma porta já definida.', \r
+'srcprt within existing' => 'Porta origem está dentro de uma faixa de portas já definida.', \r
+'ssdmz pinholes' => 'Aberturas da dmz', \r
+'ssh access' => 'Acesso SSH', \r
+'ssh fingerprint' => 'Fingerprint', \r
+'ssh host keys' => 'Chaves Host SSH', \r
+'ssh is disabled' => 'SSH está desligado. Parando.', \r
+'ssh is enabled' => 'SSH está ligado. Re-iniciando.', \r
+'ssh key' => 'Chave', \r
+'ssh key size' => 'Tamanho (bits)', \r
+'ssh keys' => 'Permitir chaves públicas de autenticação', \r
+'ssh no auth' => 'Não permitiu qualquer método de autenticação; isso o irá impedir de aceder futuramente', \r
+'ssh passwords' => 'Permitir autenticação baseada em palavra passe', \r
+'ssh portfw' => 'Permitir Reencaminhamento TCP', \r
+'ssh1 disabled' => 'SSHv1 está desactivado, a versão 2 do cliente será necessária.', \r
+'ssh1 enabled' => 'SSHv1 está activo, clientes antigos serão suportados.', \r
+'ssh1 support' => 'Suporte protocolo SSH versão 1 (requerida apenas para clientes antigos)', \r
+'ssnetwork status' => 'Situação da rede', \r
+'sspasswords' => 'Palavras-passe', \r
+'ssport forwarding' => 'Redireccionamento de porto', \r
+'ssproxy graphs' => 'Gráficos do proxy', \r
+'sssystem status' => 'Estado do sistema', \r
+'sstraffic graphs' => 'Gráficos de tráfego', \r
+'standard login script' => 'Script de login padrão', \r
+'start address' => 'Endereço inicial', \r
+'state or province' => 'Estado ou Província', \r
+'static ip' => 'IP fixo', \r
+'status' => 'Estado', \r
+'status information' => 'Informação do estado', \r
+'stopped' => 'parado', \r
+'subject' => 'Assunto', \r
+'subnet is invalid' => 'A máscara de rede é inválida', \r
+'successfully refreshed updates list' => 'Lista de actualizações actualizada com sucesso.', \r
+'summaries kept' => 'Manter sumários para', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Uso de swap por', \r
+'system cpu' => 'CPU do sistema', \r
+'system cpu usage' => 'Uso da CPU do Sistema', \r
+'system graphs' => 'Gráficos do Sistema', \r
+'system log viewer' => 'Visualizador do registo do sistema', \r
+'system logs' => 'Registos do sistema', \r
+'system status information' => 'Informação de Estado do Sistema', \r
+'telephone not set' => 'Telefone não indicado.', \r
+'the following update was successfully installed' => 'A seguinte actualização foi instalada com sucesso', \r
+'the statistics were last updated at' => 'As estatísticas foram actualizadas em ', \r
+'there are updates' => 'Existem actualizações disponíveis para seu sistema. Por favor vá até a seção de "Actualizações" para mais informações.', \r
+'there are updates available' => 'Existem actualizações disponíveis para seu sistema. Recomendamos fortemente que as instale o mais breve possível.', \r
+'there was no file upload' => 'Não houve envio de arquivo.', \r
+'this feature has been sponsored by' => 'Este recurso foi patrocinado por', \r
+'this field may be blank' => 'Este campo pode ficar vazio..', \r
+'this is not a valid archive' => 'Este não é um ficheiro válido.', \r
+'this is not an authorised update' => 'Esta não é uma atualização autorizada.', \r
+'this update is already installed' => 'Esta atualização já está instalada.', \r
+'time' => 'Tempo', \r
+'time date manually reset' => 'Hora/Data redefinida manualmente.', \r
+'time server' => 'Servidor de Horas', \r
+'timeout must be a number' => 'Timeout deve ser um número.', \r
+'title' => 'Título', \r
+'to install an update' => 'Para instalar um update, por favor, carregue o ficheiro .tgz.gpg abaixo:', \r
+'toggle enable disable' => 'Liga ou Desliga', \r
+'tone' => 'Tom', \r
+'tone dial' => 'Discagem por tom:', \r
+'traffic on' => 'Tráfego em', \r
+'traffic shaping' => 'Forma de Tráfego', \r
+'traffic shaping settings' => 'Parâmetros de Forma de Tráfego', \r
+'transfer limits' => 'Limites de transferências', \r
+'transparent on' => 'Transparência ligada', \r
+'type' => 'Tipo:', \r
+'unable to alter profiles while red is active' => 'Impedido de alterar os perfis enquanto o RED está activo', \r
+'unable to contact' => 'Incapaz de contactar', \r
+'unencrypted' => 'Desencriptado', \r
+'unknown' => 'DESCONHECIDO', \r
+'unnamed' => 'Sem nome', \r
+'update' => 'Actualiza', \r
+'update time' => 'Actualizar a hora:', \r
+'update transcript' => 'Actualizar transcrições', \r
+'updates' => 'Actualizações', \r
+'updates installed' => 'Actualizações instaladas', \r
+'updates is old1' => 'O seu ficheiro de actualização é', \r
+'updates is old2' => 'dias sem actualização. Recomendamos que actualize na página <b>Sistema/Actualizações</b>', \r
+'uplink speed' => 'Velocidade de Uplink (kbit/seg)', \r
+'upload' => 'enviar', \r
+'upload a certificate' => 'Enviar um certificado:', \r
+'upload a certificate request' => 'Enviar uma requisição de certificado:', \r
+'upload ca certificate' => 'Enviar um Certificado CA', \r
+'upload fcdsl.o' => 'Upload fcdsl.o', \r
+'upload file' => 'Enviar arquivo', \r
+'upload p12 file' => 'Enviar um arquivo PKCS12', \r
+'upload successful' => 'Envio com sucesso', \r
+'upload synch.bin' => 'Carregar synch.bin', \r
+'upload update file' => 'Carregar ficheiro de actualização:', \r
+'upstream password' => 'Palavra-passe de Upstream:', \r
+'upstream proxy host:port' => 'Proxy de Upstream (anfitrião:porto)', \r
+'upstream username' => 'Nome de utilizador de Upstream:', \r
+'uptime and users' => 'Tempo de ligação e Utilizadores:', \r
+'usb modem on acm0' => 'Modem USB em ACM0', \r
+'usb modem on acm1' => 'Modem USB em ACM1', \r
+'usb modem on acm2' => 'Modem USB em ACM2', \r
+'usb modem on acm3' => 'Modem USB em ACM3', \r
+'use' => 'Use', \r
+'use a pre-shared key' => 'Use uma Chave Pré-partilhada:', \r
+'use dov' => 'Usar DOV (Dados Sobre Voz)', \r
+'use ibod' => 'Usar largura de banda por Requisito (iBOD)', \r
+'use only proposed settings' => 'Utilizar apenas configurações propostas.', \r
+'used' => 'usado', \r
+'used memory' => 'Memória Usada', \r
+'used swap' => 'Swap Usado', \r
+'user cpu' => 'Uso da CPU', \r
+'user cpu usage' => 'Utilização da CPU pelo utilizador.', \r
+'username' => 'Nome do utilizador:', \r
+'username not set' => 'Nome do utilizador não definido.', \r
+'users department' => 'Departamento do utilizador', \r
+'users email' => 'Endereço de Email do utilizador', \r
+'users fullname or system hostname' => 'Nome Completo do Utilizador ou Hostname do Sistema', \r
+'valid root certificate already exists' => 'Um certificado raiz válido já existe.', \r
+'vci number' => 'Número VCI:', \r
+'virtual private networking' => 'Rede virtual privada', \r
+'vpi number' => 'Número VPI:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'Confiuração da VPN - Principal', \r
+'vpn on blue' => 'VPN no Azul', \r
+'waiting to synchronize clock' => 'Aguardando a sincronização do relógio', \r
+'warning messages' => 'Mensagens de Advertência', \r
+'web hits' => 'Quantidade de sítios Web coincidentes com o critério seleccionado', \r
+'web proxy' => 'Proxy Web', \r
+'web proxy configuration' => 'Configuração do Proxy Web', \r
+'web server' => 'Servidor Web', \r
+'website' => 'Sítio Web', \r
+'week' => 'semana', \r
+'weeks' => 'semanas', \r
+'wildcards' => 'Wildcards', \r
+'wireless' => 'Sem fios', \r
+'wireless config added' => 'Configuração wireless adicionada', \r
+'wireless config changed' => 'Configuração wireless modificada', \r
+'wireless configuration' => 'Configuração Sem Fios', \r
+'written sectors' => 'Sectores Escritos', \r
+'xtaccess all error' => 'Não pode definir um acesso externo para ALL, pode defini-lo ni registo de redireccionamento de portos.', \r
+'year' => 'Ano', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Você pode definir apenas uma conexão Roadwarrior quando estiver usando chaves de autenticação pré-compartilhadas.<br/>Ou você já tem uma conexãoone Roadwarrior com chave de autenticação pré-compartilhada ou você está tentando adicionar uma agora.', \r
+'your department' => 'O seu Departamento', \r
+'your e-mail' => 'O seu E-Mail', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/pt/install/CVS/Entries b/langs/pt/install/CVS/Entries
new file mode 100644 (file)
index 0000000..b188a5c
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_pt.c/1.8.2.6/Mon Dec 12 09:23:29 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/pt/install/CVS/Repository b/langs/pt/install/CVS/Repository
new file mode 100644 (file)
index 0000000..538f189
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/pt/install
diff --git a/langs/pt/install/CVS/Root b/langs/pt/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/pt/install/CVS/Tag b/langs/pt/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/pt/install/lang_pt.c b/langs/pt/install/lang_pt.c
new file mode 100644 (file)
index 0000000..64d36dd
--- /dev/null
@@ -0,0 +1,508 @@
+/*\r
+ * Portuguese  (pt) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Luis Santos, Renato Kenji Kano, Mark Peter, Wladimir Nunes,\r
+ * Daniela Cattarossi \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *pt_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Configurações de endereço",\r
+/* TR_ADMIN_PASSWORD */\r
+"Palavra-passe do administrador",\r
+/* TR_AGAIN_PROMPT */\r
+"Novamente:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Todas as placas alocadas com sucesso.",\r
+/* TR_AUTODETECT */\r
+"* AUTO-DETECÇÃO *",\r
+/* TR_BUILDING_INITRD */\r
+"Construindo INITRD...",\r
+/* TR_CANCEL */\r
+"Cancela",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Atribuição da placa",\r
+/* TR_CHECKING */\r
+"Verificando URL...",\r
+/* TR_CHECKING_FOR */\r
+"Procurando por: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Escolha a placa RDIS instalada neste computador.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Escolha o protocolo RDIS requerido.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Configure o servidor DHCP entrando com as informações.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Configure a rede",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Você agora deve configurar a rede primeiro carregando o driver correto para a interface VERDE. Você pode fazer isso por teste automático da placa de rede ou escolhendo o driver correto da lista. Note que se houver mais de uma placa de rede do mesmo tipo como VERDE e cada placa precisar de parâmetros especiais do módulo, você deve entrar com estes parâmetros para todas as placas de modo que todas ativem-se quando você configurar a interface VERDE.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Configure os drivers de rede a a qual placa estes pertencem. A configuração actual é a seguinte:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Configure o CD-ROM escolhendo o endereço de I/O e/ou o IRQ apropriados.",\r
+/* TR_CONGRATULATIONS */\r
+"Parabéns!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s foi instalado com sucesso. Por favor remova qualquer disquete ou CD-ROM deste computador. O programa de configuração será executado agora e permitirá que seja configurado RDIS, placas de rede e palavras-passe do sistema. Depois da configuração estar completa, você apontar seu web browser para http?//%s:81 ou https://%s:445 (ou seja lá como tiver nomeado seu %s), e configurar a marcação (se necessário) e acesso remoto. Lembre-se de definir a palavra-passe para o utilizador 'marcador' no %s, se você quiser que utilizador não administradores do %s possam controlar o link.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Seu disco rígido é muito pequeno mas você pode continuar sem qualquer área de troca (swap). Use com cuidado.",\r
+/* TR_CURRENT_CONFIG */\r
+"Configuração atual:%s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Gateway Padrão:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Gateway Padrão\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Lease padrão (mins):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Tempo de lease padrão\n",\r
+/* TR_DETECTED */\r
+"Detectado um: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Hostname DHCP:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Hostname DHCP\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Configuração do servidor DHCP",\r
+/* TR_DISABLED */\r
+"Desactivado",\r
+/* TR_DISABLE_ISDN */\r
+"Desactivar RDIS",\r
+/* TR_DISK_TOO_SMALL */\r
+"O seu disco duro é muito pequeno.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Configurações de DNS e Gateway",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Entre os parâmetros de DNS e gateway. Este serão usados apenas se o DHCP estiver desactivado na interface VERMELHA.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Sua configuração não utiliza um adaptador ethernet como sua interface VERMELHA. A informação de DNS e gateway para conexão discada é configurada automaticamente quando a discagem é completada.",\r
+/* TR_DOMAINNAME */\r
+"NomeDomínio",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"O Nome de Domínio não pode estar vazio.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"NomeDomínio não pode conter espaços.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"O Nome de Domínio pode apenas conter letras, números, hífens e pontos.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Sufixo do domínio:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Sufixo do domínio\n",\r
+/* TR_DONE */\r
+"Pronto",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nVocê quer mudar estes parâmetros?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Atribuições de drivers e placas",\r
+/* TR_ENABLED */\r
+"Activado",\r
+/* TR_ENABLE_ISDN */\r
+"Activar RDIS",\r
+/* TR_END_ADDRESS */\r
+"Endereço final:",\r
+/* TR_END_ADDRESS_CR */\r
+"Endereço final\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Algumas placas RDIS (especialmente os ISA) podem requerer parâmetros adicionais do módulo para ajustes de IRQ e endereços de I/O. Se você tiver um destes cartões ISDN, entre estes parâmetros extras aqui. Por exemplo: \"io=0x280 irq=9\". Eles serão usados durante a detecção da placa.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Entre com a palavra-passe admin do %s. Este é o utilizador para entrar nas páginas web de administração do %s.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Introduza NomeDomínio",\r
+/* TR_ENTER_HOSTNAME */\r
+"Entre com o nome de anfitrião desta máquina.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Entre com a informação do endereço IP",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"A detecção automática da placa de rede falhou. Introduza o driver e parâmetros opcionais usados para esta placa de rede.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Introduza a palavra-passe do utilizador 'root'. Entre com este utilizador para acesso via linha de comandos.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Introduza a senha do utilizador 'setup'. Este é o utilizador que deve ser usado para aceder o programa de configuração.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Introduza a informação do endereço IP para o interface %s.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Entre com o número de telefone local (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Introduza o caminho URL para os ficheiros ipcop-<version>.tgz e images/scsidrv-<version>.img . ATENÇÃO: DNS não disponível! Deve ser apenas http://X.X.X.X/<directory>",\r
+/* TR_ERROR */\r
+"Erro",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Erro gravando a configuração.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Extraindo módulos...",\r
+/* TR_FAILED_TO_FIND */\r
+"Falhou a procura de ficheiro URL.",\r
+/* TR_FOUND_NIC */\r
+"%s detectou o seguinte NIC em sua máquina: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"1TR6 Alemão",\r
+/* TR_HELPLINE */\r
+"            <Tab>/<Alt-Tab> entre elementos  |  <Espaço> seleciona",\r
+/* TR_HOSTNAME */\r
+"Nome de Anfitrião",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Nome do anfitrião não pode ficar vazio.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Nome do anfitrião não pode conter espaços.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"O Hostname só pode conter letras, números e hífens.",\r
+/* TR_INITIALISING_ISDN */\r
+"Iniciando RDIS...",\r
+/* TR_INSERT_CDROM */\r
+"Por Favor insira o %s CD na drive de CDROM",\r
+/* TR_INSERT_FLOPPY */\r
+"Por favor, insira o disquete com o driver %s.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Instalação cancelada.",\r
+/* TR_INSTALLING_FILES */\r
+"Instalando arquivos...",\r
+/* TR_INSTALLING_GRUB */\r
+"Instalando GRUB...",\r
+/* TR_INTERFACE */\r
+"Interface %s",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Não consegui levantar o interface.",\r
+/* TR_INVALID_FIELDS */\r
+"Os seguintes campos são inválidos:\n\n",\r
+/* TR_INVALID_IO */\r
+"A porta de I/O fornecida é inválida.",\r
+/* TR_INVALID_IRQ */\r
+"O IRQ fornecido é inválido.",\r
+/* TR_IP_ADDRESS_CR */\r
+"Endereço de IP\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"Endereço de IP:",\r
+/* TR_ISDN_CARD */\r
+"Placa RDIS",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"Placa Rdis não detectado. Você pode precisar especificar parâmetros adicionais se a placa for ISA ou tiver necessidades especiais.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Selecção da placa RDIS",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Configuração da RDIS.",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Menu de configuração da RDIS",\r
+/* TR_ISDN_NOT_SETUP */\r
+"RDIS não configurada. Parece que alguns parâmetros não foram selecionados.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"RDIS não configurada ainda. Selecione o ítem que deseja configurar.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Seleção de protocolo RDIS.",\r
+/* TR_ISDN_STATUS */\r
+"RDIS actual é %s.\n\n Protocolo: %s\n Placa: %s\n Telefone local: %s\n\nSelecione o item que deseja configurar ou escolha usar os valores correntes.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Mapeamento de teclado",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Escolha o tipo de teclado que está a usar da lista abaixo.",\r
+/* TR_LEASED_LINE */\r
+"Linha alugada",\r
+/* TR_LOADING_MODULE */\r
+"Carregando módulo...",\r
+/* TR_LOADING_PCMCIA */\r
+"Carregando módulos PCMCIA...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Procurando por: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Criando sistema de arquivos de boot...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Criando sistema de arquivos de registro...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Criando sistema de arquivos raiz...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Criando espaço de troca...",\r
+/* TR_MANUAL */\r
+"* MANUAL *",\r
+/* TR_MAX_LEASE */\r
+"Lease max. (mins):",\r
+/* TR_MAX_LEASE_CR */\r
+"Tempo max. de lease\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Falta informação IP do interface Azul.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Falta informação do IP da interface LARANJA.",\r
+/* TR_MISSING_RED_IP */\r
+"Falta informação IP da interface VERMELHA.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Nome do módulo não pode estar vazio.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Introduza o nome do módulo e os parâmetros para o driver que você quer usar.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Montando o sistema de arquivos boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Montando o sistema de arquivos log...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Montando o sistema de arquivos raiz...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Montando partição de troca...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Número de telefone local (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Máscara de rede:",\r
+/* TR_NETWORKING */\r
+"Rede",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Endereço de rede\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Endereço de rede:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Menu de configuração de rede",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Tipo de configuração de rede",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Seleccione a configuração de rede para %s. Os tipos de configuração seguintes listam quais interfaces tem ethernet conectada. Se você mudar esta configuração, uma reinicialização da rede será necessária e você terá que reconfigurar os drivers de rede alocados.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Máscara de rede\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Configuração de rede falhou.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Não foram alocados cartões suficientes.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Não está atribuido nenhum interface Azul.",\r
+/* TR_NO_CDROM */\r
+"Não foi encontrado nenhum CD-ROM",\r
+/* TR_NO_HARDDISK */\r
+"Nenhum disco duro encontrado.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Não foi encontrado o tarball no Servidor Web.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Nenhuma interface LARANJA atribuida.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Nenhuma interface VERMELHA atribuida.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Não foi encontrada imagem SCSI no Servidor Web.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Nenhuma placa livre encontrada, são necessárias mais. Você pode escolher usar a auto-detecção para procurar por mais placas ou escolher um driver da lista.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"A criar partições...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"As palavras-passe não coincidem.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"A palavra-passe não pode ficar em branco.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"A Palavra passe não pode conte espaços.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Palavra-passe:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Número do telefone não pode ser vazio.",\r
+/* TR_PREPARE_HARDDISK */\r
+"O programa de instalação preparará agora o disco duro em %s. Primeiramente o disco será particionado e então as partições terão um sistema de arquivos colocado nas mesmas.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Pressione OK para reiniciar.",\r
+/* TR_PRIMARY_DNS */\r
+"DNS Primário:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"DNS primário\n",\r
+/* TR_PROBE */\r
+"Teste",\r
+/* TR_PROBE_FAILED */\r
+"Auto detecção falhou.",\r
+/* TR_PROBING_SCSI */\r
+"Analisando dispositivos SCSI...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Problema ao definir a palavra-passe admin do %s.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Problema ao definir a palavra-passe 'root' do %s.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Problema em definir a palavra-passe 'setup' do %s.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protocolo/País",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Erguendo a rede...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Derrubando a rede...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Derrubando a rede não local...",\r
+/* TR_QUIT */\r
+"Sair",\r
+/* TR_RED_IN_USE */\r
+"A RDIS (ou outra conexão externa) em uso. Não se pode configurar a RDIS enquanto a interface VERMELHA estiver ativa.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nQuando a configuração estiver completa, uma reinicialização da rede será requerida.",\r
+/* TR_RESTORE */\r
+"Recuperar",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Se você tiver um disquete com a configuração do %s, coloque-o no drive e acione o botão Restore.",\r
+/* TR_ROOT_PASSWORD */\r
+"palavra-passe \"root\"",\r
+/* TR_SECONDARY_DNS */\r
+"DNS secundário:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"DNS secundário\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"DNS secundário especificado sem um DNS primário",\r
+/* TR_SECTION_MENU */\r
+"Menu de selecção",\r
+/* TR_SELECT */\r
+"Seleccione",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Seleccione o tipo do CD-ROM",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Nenhum CD-ROM foi detectado nesta máquina. Por favor, selecione qual dos seguintes drivers você quer usar para que %s possa aceder ao CD-ROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Selecione o suporte da instalação",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s pode ser instalado de multiplas fontes. A mais simples é usar o CD-ROM da máquina. Se o computador não tiver um, você pode instalar via outra máquina na rede que tenha os arquivos de instalação disponíveis via HTTP. Neste caso um disquete com os drivers de rede serão necessários.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Selecione o controlador de rede",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Selecione o driver para a placa de rede que está instalada nesta máquina. Se você selecionar MANUAL, lhe será dada a oprtunidade de entrar com o nome do módulo e parâmetros para drivers que tiverem necessidades especiais como para placas ISA.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Selecione a interface que deseja reconfigurar.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Selecione o ítem que deseja configurar.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Definindo a palavra passe do admin de %s...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Definindo a palavra-passe do root...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Definindo a palavra do 'setup'...",\r
+/* TR_SETUP_FINISHED */\r
+"Configuração terminada. Pressione OK para reiniciar.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"A configuração inicial não foi inteiramente terminada. Você deve assegurar-se que a instalação seja finalizada corretamente, executando de novo a configuração no terminal.",\r
+/* TR_SETUP_PASSWORD */\r
+"Palavra-passe do setup",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Ajuste os parâmetros adicionais do módulo.",\r
+/* TR_SINGLE_GREEN */\r
+"A sua configuração está definida para uma interface VERDE apenas.",\r
+/* TR_SKIP */\r
+"Saltar",\r
+/* TR_START_ADDRESS */\r
+"Endereço inicial:",\r
+/* TR_START_ADDRESS_CR */\r
+"Endereço inicial\n",\r
+/* TR_STATIC */\r
+"Estático",\r
+/* TR_SUGGEST_IO */\r
+"(sugestão %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(sugestão %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Este módulo já está carregado.",\r
+/* TR_TIMEZONE */\r
+"Fuso horário",\r
+/* TR_TIMEZONE_LONG */\r
+"Escolha o fuso horário em que você se encontra da lista abaixo.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Não foi possível ejectar o CD-ROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Não foi possível extrair os módulos.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Não foi possível encontrar nenhum driver adicional.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Não foi possível encontrar uma placa RDIS. Pode ser necessário especificar parâmetros adicionais para o módulo se a placa for tipo ISA ou tiver características especiais.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Incapaz de inicializar RDIS",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Impossível instalar arquivos.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Não foi possível instalar GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Não foi possível carregar o módulo do driver.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Impossibilitado de criar arquivos de boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Não foi possível criar o sistema de arquivos de registro.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Não foi possível criar o sistema de arquivos raiz.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Não foi possível criar o espaço de troca.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Incapaz de criar a ligação simbólica /dev/harddisk",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Incapaz de criar a ligação simbólica /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Incapaz de criar a ligação simbólica /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Incapaz de criar a ligação simbólica /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Incapaz de criar a ligação simbólica /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Incapaz de criar a ligação simbólica /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Não foi possível montar o sistema de arquivos boot.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Não foi possível montar o sistema de arquivos de registro.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Não foi possível montar o sistema de arquivos proc.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Não foi possível montar o sistema de arquivos raiz.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Não foi possível montar a partição de troca.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Incapaz de abrir ficheiro principal de hosts.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Não foi possível abrir o arquivo de configuração.",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Não foi possível particionar o disco.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Não foi possível remover os arquivos temporários.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Não foi possível ajustar o nome do host.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Não foi possível desmontar o CD-ROM/disquete.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Não foi possível desmontar o disco rígido.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Não foi possível gravar /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Não foi possível gravar /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Não foi possível gravar /etc/hosts",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Não foi possível gravar /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Não foi possível gravar /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Não foi possível gravar %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Não foi possível gravar %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Não foi possível gravar %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Há um cartão ethernet não relacionado do tipo:\n%s\n\nVocê pode relaciona-lo a:",\r
+/* TR_UNKNOWN */\r
+"DESCONHECIDO",\r
+/* TR_UNSET */\r
+"UNSET",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"ATENÇÃO",\r
+/* TR_WARNING_LONG */\r
+"Se você mudar este endereço IP e estiver conectado remotamente, sua conexão à máquina %s será interrompida e você tera que se reconectar no novo IP. Esta é uma operação arriscada e deve ser tentada apenas se você tiver acesso físico à maquina para o casod e algo sair errado.",\r
+/* TR_WELCOME */\r
+"Bem-vindo ao programa de instalação do %s. Ao cancelar em qualquer das próximas etapas o computador será reinicializado.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"A sua configuração consta de uma interface VERDE, que já tem um driver atribuído.",\r
+}; \r
+  \r
diff --git a/langs/ro/CVS/Entries b/langs/ro/CVS/Entries
new file mode 100644 (file)
index 0000000..9030d32
--- /dev/null
@@ -0,0 +1 @@
+D/cgi-bin////
diff --git a/langs/ro/CVS/Repository b/langs/ro/CVS/Repository
new file mode 100644 (file)
index 0000000..078201d
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/ro
diff --git a/langs/ro/CVS/Root b/langs/ro/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/ro/CVS/Tag b/langs/ro/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/ro/cgi-bin/CVS/Entries b/langs/ro/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..e2d8949
--- /dev/null
@@ -0,0 +1,2 @@
+/ro.pl/1.4.2.11/Wed Dec  1 07:39:56 2004//TIPCOP_v1_4_0
+D
diff --git a/langs/ro/cgi-bin/CVS/Repository b/langs/ro/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..2065f58
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/ro/cgi-bin
diff --git a/langs/ro/cgi-bin/CVS/Root b/langs/ro/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/ro/cgi-bin/CVS/Tag b/langs/ro/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/ro/cgi-bin/ro.pl b/langs/ro/cgi-bin/ro.pl
new file mode 100644 (file)
index 0000000..9000f31
--- /dev/null
@@ -0,0 +1,278 @@
+# Romanian  (ro) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2004 Viorel Melinte\r
+#  \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Există deja un Certificat CA cu acest nume.', \r
+'a connection with this common name already exists' => 'Există deja o conexiune cu acest nume uzual.', \r
+'a connection with this name already exists' => 'Există deja o conexiune cu acest nume.', \r
+'access allowed' => 'Acces permis de la:', \r
+'action' => 'Acţiune', \r
+'add' => 'Adauga', \r
+'add a host' => 'Adauga o gazda:', \r
+'add a new rule' => 'Adauga o regula noua:', \r
+'add network' => 'Adaugă reţea', \r
+'add new alias' => 'Adauga alias nou:', \r
+'add new lease' => 'Adauga inchiriere noua fixa:', \r
+'add service' => 'Adaugă serviciu', \r
+'add xtaccess' => 'Adauga acces extern', \r
+'admin user password has been changed' => 'Parola utilizatorului admin a fost schimbata', \r
+'administrator user password' => 'Parola administratorului', \r
+'adsl settings' => 'Setări ADSL', \r
+'advanced' => 'Avansat', \r
+'again' => 'Din nou:', \r
+'alcatelusb help' => 'Pentru a folosi un modem model Speedtouch 330 sau Speedtouch USB trebuie să aduceţi microcodul pe sistemul IPCop. Vă rugăm să faceţi download la pachetul de <b>Microcod Integrat</b> pentru SpeedTouch 330 de la speedtouch.com, despachetaţi arhiva cu unzip şi încărcaţi fişierul corespunzător modelului de modem: RQD6_3.xxx pentru Rev<4 sau ZZZL_3.xxx pentru Rev=4 folosind formularul de mai jos.', \r
+'alcatelusb upload' => 'Încarcă fişierul de Speedtouch USB', \r
+'alias ip' => 'IP alias', \r
+'aliases' => 'Alias-uri', \r
+'aliases not active' => 'Alias-urile nu vor fi active pana cand interfata RED nu va avea IP static.', \r
+'all updates installed' => 'Toate actualizarile sunt instalate.', \r
+'alt dialup' => 'Formeaza numar.', \r
+'alt home' => 'Acasa', \r
+'alt information' => 'Informatii', \r
+'alt logs' => 'Log-uri', \r
+'alt services' => 'Servicii', \r
+'alt system' => 'Sistem', \r
+'alt vpn' => 'Vpn-uri', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'april' => 'Aprilie', \r
+'archive not exist' => 'Arhiva de configurare nu există', \r
+'are you sure' => 'Sunteţi sigur?', \r
+'arp table entries' => 'Inregistrari tabel ARP:', \r
+'august' => 'August', \r
+'authentication' => 'Autentificare:', \r
+'automatic' => 'Automat', \r
+'available updates' => 'Actualizari valabile:', \r
+'average' => 'Valoarea medie', \r
+'back' => 'Inapoi', \r
+'backup' => 'Backup', \r
+'backup config floppy' => 'Disc floppy de rezervă a configurării', \r
+'backup configuration' => 'Configurare backup:', \r
+'backup sets' => 'Seturi de rezervă', \r
+'backup to floppy' => 'Salvează pe floppy ca rezervă', \r
+'backupprofile' => 'În cazul în care reconectarea eşuează, treceţi pe profilul ', \r
+'bad characters in script field' => 'Caractere incorecte in campul de scriere.', \r
+'bad characters in the telephone number field' => 'Caractere incorecte in campul numarului de telefon.', \r
+'bad destination range' => 'Prima valoare a intervalului de porturi este egala sau mai mare decat valoarea secundara.', \r
+'bad ignore filter' => 'Filtru de ignorare eronat:', \r
+'bad return code' => 'Programul de ajutor a returnat codul de eroare', \r
+'bad source range' => 'Intervalul sursa are prima valoare mai mare sau egala cu valoarea secundara.', \r
+'behind a proxy' => 'In spatele unui proxy', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'ALBASTRU', \r
+'blue access' => 'Acces pe Albastru', \r
+'blue interface' => 'Interfaţa Albastră', \r
+'broadcast' => 'Transmisie', \r
+'broken pipe' => 'Flux întrerupt', \r
+'buffered memory' => 'Memorie Tampon', \r
+'buffers' => 'tampoane de date', \r
+'bytes per second' => 'Octeţi pe Secundă', \r
+'ca certificate' => 'Certificat CA', \r
+'ca name' => 'Numele CA', \r
+'cache management' => 'Administrarea rezervei de date', \r
+'cache size' => 'Mărimea rezervei de date (MB):', \r
+'cached' => 'rezervat', \r
+'cached memory' => 'Memoria Tampon', \r
+'cancel' => 'Anulează', \r
+'cannot enable both nat traversal and compression' => 'Nu se pot activa simultan NAT Transversal şi Compresia', \r
+'cannot enable ntp without specifying primary' => 'Nu puteţi activa NTP-ul fără precizarea NTP-ului primar.', \r
+'cannot specify secondary dns without specifying primary' => 'Nu puteti specifica dns-ul secundar fara a specifica dns-ul primar.', \r
+'cannot specify secondary ntp without specifying primary' => 'Nu puteti specifica NTP-ul secundar fara a specifica NTP-ul primar', \r
+'cant enable xtaccess' => 'Daca regula de forwarding este dezactivata atunci nu puteti activa accesul extern pentru aceasta regula.', \r
+'caps all' => 'TOT', \r
+'capsclosed' => 'INCHIS', \r
+'capsopen' => 'DESCHIDE', \r
+'capswarning' => 'AVERTIZARE', \r
+'cfg restart' => 'O restartare este sugerată după restaurarea unei arhive de configurare', \r
+'chain' => 'Lanţ', \r
+'change passwords' => 'Schimba parola', \r
+'check vpn lr' => 'Verifica', \r
+'city' => 'Oraş', \r
+'clear cache' => 'Curăţă rezerva de date', \r
+'clenabled' => 'Activează sincronizarea clienţilor', \r
+'click to disable' => 'Activat (click ca să dezactivezi)', \r
+'click to enable' => 'Dezactivat (click ca să activezi)', \r
+'clock has not been synchronized' => 'Ceasul nu a fost sincronizat', \r
+'clock last synchronized at' => 'Ceasul a fost ultima dată sincronizat la', \r
+'common name' => 'Nume Uzual', \r
+'compression' => 'Compresie:', \r
+'computer to modem rate' => 'Rata de transfer calculator - modem:', \r
+'concentrator name' => 'Numele concentratorului:', \r
+'confirmation' => 'confirmare', \r
+'connect on ipcop restart' => 'Conectare dupa restartare IpCop', \r
+'connect timeout' => 'Timp conexiune expirat:', \r
+'connected' => 'Conectat', \r
+'connecting' => 'Se conecteaza...', \r
+'connection' => 'Conexiune', \r
+'connection tracking' => 'Urmărirea conexiunilor IPTables', \r
+'connections' => 'Conexiuni', \r
+'could not be opened' => 'nu poate fi deschisa', \r
+'could not connect to' => 'Nu m-am putut conecta la', \r
+'could not connect to www ipcop org' => 'Nu ma pot conecta la www.ipcop.org', \r
+'could not create directory' => 'Nu pot creea directorul.', \r
+'could not download latest patch list' => 'Nu pot descarca ultima lista (nu sunt conectat).', \r
+'could not download latest updates' => 'N-am putut descărca ultimele actualizări.', \r
+'could not download the available updates list' => 'Nu pot descarca lista valabila de actualizari.', \r
+'could not open available updates file' => 'Nu pot deschide fisierul cu actualizarile valabile.', \r
+'could not open installed updates file' => 'Nu pot deschide fisierul actulizat instalat', \r
+'could not open update information file' => 'Nu pot deschide fisierul cu informatii despre actualizare', \r
+'create' => 'Crează', \r
+'credits' => 'Credite', \r
+'cron server' => 'Server CRON', \r
+'current aliases' => 'Aliasuri curente', \r
+'current dynamic leases' => 'Inchirieri dinamice curente', \r
+'current fixed leases' => 'Inchirieri fixe curente', \r
+'current hosts' => 'Gazde curente:', \r
+'current profile' => 'Profil curent:', \r
+'current rules' => 'Reguli curente:', \r
+'custom networks' => 'Reţele individuale', \r
+'custom services' => 'Servicii individuale', \r
+'dat without key' => 'O arhivă încriptată nu poate fi restaurată fără cheie.', \r
+'date' => 'Data', \r
+'date not in logs' => 'Nu exista inregistrari (sau doar partiale) pentru ziua dorita.', \r
+'day' => 'Ziua', \r
+'days' => 'zile', \r
+'ddns hostname added' => 'Adaugare nume gazda - dinamic DNS', \r
+'ddns hostname removed' => 'Stergere nume gazda - dinamic DNS', \r
+'december' => 'Decembrie', \r
+'default lease time' => 'Timp inchiriere initial (minute):', \r
+'default networks' => 'Reţele implicite', \r
+'default renewal time' => 'Timp de reînnoire implicit', \r
+'default services' => 'Servicii implicite', \r
+'delete' => 'Sterge', \r
+'demon login script' => 'Script logare Demon', \r
+'description' => 'Descriere', \r
+'dest ip and port' => 'IP destinatie:Port', \r
+'destination' => 'Destinatie', \r
+'destination ip' => 'IP destinatie', \r
+'destination ip bad' => 'IP destinatie incorect', \r
+'destination port' => 'Port destinatie', \r
+'destination port numbers' => 'Portul destinatie trebuie sa fie un numar sau un interval de numere corecte.', \r
+'destination port overlaps' => 'Intervalul porturilor destinatie se suprapun cu un interval de porturi existent.', \r
+'detail level' => 'Nivel de detalii', \r
+'device' => 'Dispozitiv', \r
+'dhcp configuration' => 'Configurare DHCP', \r
+'dhcp mode' => 'Mod DHCP', \r
+'dhcp server' => 'Server DHCP', \r
+'dhcp server disabled' => 'Serverul DHCP este dezactivat. Oprit.', \r
+'dhcp server disabled on blue interface' => 'server DHCP dezactivat pentru interfaţa ALBASTRĂ', \r
+'dhcp server enabled' => 'Serverul DHCP activat. Repornit.', \r
+'dial' => 'Conectează', \r
+'dial user password' => 'Parola utilizatorului pentru conectarea telefonică:', \r
+'dial user password has been changed' => 'Parola utilizatorului pentru conectarea telefonică a fost schimbată.', \r
+'dialing mode' => 'Mod de conectare telefonică:', \r
+'dialup settings' => 'Setări de conectare telefonică', \r
+'disk usage' => 'Utilizare de disc:', \r
+'dmz' => 'ZDM', \r
+'dmz pinhole configuration' => 'Configurarea orificiilor ZDM', \r
+'dmz pinhole rule added' => 'Adăugat regulă de orificiu de ZDM; restartez orificiul de ZDM', \r
+'dmz pinhole rule removed' => 'Eliminat regulă de orificiu de ZDM; restartez orificiul de ZDM', \r
+'dns check failed' => 'Verificarea DNS a eşuat', \r
+'dns proxy server' => 'Server proxy DNS', \r
+'dod' => 'Conectează telefonic la cerere', \r
+'dod for dns' => 'Conectează telefonic la cerere pentru DNS:', \r
+'dod waiting' => 'Conectarea telefonică în progres', \r
+'domain' => 'Domeniu', \r
+'domain name' => 'Nume de domeniu', \r
+'domain name suffix' => 'Sufixul numelui de domeniu:', \r
+'domain not set' => 'Domeniul nu este setat.', \r
+'downlink speed' => 'Viteza de descărcare (kbit/sec)', \r
+'download new ruleset' => 'Descarcă un set de reguli noi', \r
+'driver' => 'Driver', \r
+'dst port' => 'Port de destinaţie', \r
+'dstprt range overlaps' => 'Portul de destinaţie se suprapune cu un port deja definit.', \r
+'dstprt within existing' => 'Portul de destinaţie se află într-un interval de porturi deja definit.', \r
+'duplicate ip' => 'A fost introdusă o adresă de IP deja existentă', \r
+'duplicate mac' => 'A fost introdusă o adresă de MAC deja existentă', \r
+'duplicate name' => 'Numele introdus e deja folosit. Vă rugăm să alegeţi un alt nume.', \r
+'dynamic dns' => 'DNS dinamic', \r
+'dynamic dns client' => 'Client de DNS dinamic', \r
+'e-mail address too long' => 'Adresa e-mail este prea lungă; nu poate să aibă mai mult de 40 de caractere.', \r
+'eciadsl help' => 'Pentru a folosi modemul de ECI ADSL trebuie să încărcaţi fişierul synch.bin pe serverul de IPCOP. Vă rugăm să descărcaţi fişierul de pe site-ul ECIADSL, apoi să încărcaţi fişierul <B>synch.bin</B> folosind câmpurile de mai jos.', \r
+'eciadsl upload' => 'Încărcaţi fişierul synch.bin pentru ECI ADSL', \r
+'edit' => 'Modifică', \r
+'edit a rule' => 'Modifică o regulă existentă:', \r
+'edit hosts' => 'Modifică gazdele', \r
+'edit network' => 'Modifică reţeaua', \r
+'edit service' => 'Modifică serviciul', \r
+'empty' => 'Gol', \r
+'enable ignore filter' => 'Activează filtrul de ignorare', \r
+'enable javascript' => 'Activează JavaScript', \r
+'enable wildcards' => 'Activează şabloane:', \r
+'enabled' => 'Activat:', \r
+'enabled on' => 'Activat la', \r
+'enabledtitle' => 'Activat', \r
+'encapsulation' => 'Încapsulare', \r
+'encrypted' => 'Încriptat', \r
+'end address' => 'Adresă de sfârşit:', \r
+'err bk 1' => 'Eroare în crearea arhivei', \r
+'err bk 2 key' => 'Eroare în crearea fişierului cheie', \r
+'err bk 3 tar' => 'Eroare în adăugarea fişierelor la arhivă', \r
+'err bk 4 gz' => 'Eroare în comprimarea arhivei', \r
+'err bk 5 encrypt' => 'Eroare în încriptarea arhivei', \r
+'err rs 1' => 'Eroare în restaurarea arhivei', \r
+'err rs 6 decrypt' => 'Eroare în decriptarea arhivei', \r
+'err rs 7 untartst' => 'Arhivă decriptată invalidă', \r
+'err rs 8 untar' => 'Eroare în dezarhivarea arhivei', \r
+'error messages' => 'Mesaje de eroare', \r
+'every' => 'Fiecare', \r
+'excluding buffers and cache' => '-/+ tampoane/rezervă de date', \r
+'expected' => 'Expectat', \r
+'expires' => 'Expira', \r
+'export' => 'Exporta', \r
+'external access' => 'Acces extern', \r
+'external access configuration' => 'Configurare acces extern', \r
+'external access rule added' => 'Adăugat regulă de acces extern; controler-ul de acces este restartat', \r
+'external access rule removed' => 'Eliminat regulă de acces extern; controler-ul de acces este restartat.', \r
+'external aliases configuration' => 'Configurare de alias-uri externe', \r
+'february' => 'februarie', \r
+'filename' => 'Nume de fişier', \r
+'filesystem full' => 'Fişier de sistem plin', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Numărul total de conexiuni pe firewall pentru', \r
+'firewall log' => 'Arhiva de firewall', \r
+'firewall log viewer' => 'Vizualizator al arhivei de firewall', \r
+'firewall logs' => 'Arhive de firewall', \r
+'firmware' => 'Arhivă', \r
+'firmware upload' => 'Înarcă arhivă/drivere', \r
+'fixed ip lease added' => 'Adăugat lease de IP fix', \r
+'fixed ip lease removed' => 'Eliminat lease de IP fix', \r
+'force update' => 'Forţează actualizare', \r
+'forwarding rule added' => 'Adăugat regulă de expediere; expeditorul este restartat', \r
+'forwarding rule removed' => 'Eliminat regulă de expediere; expeditorul este restartat', \r
+'forwarding rule updated' => 'Actualizat regulă de expediere; expeditorul este restartat', \r
+'free' => 'Liber', \r
+'g.dtm' => 'G.dmt', \r
+'hours' => 'ore', \r
+'not present' => '<B>Nu-i</B> prezent', \r
+'present' => 'Prezent', \r
+'unknown' => 'NECUNOSCUT', \r
+'vpn' => 'VPN', \r
+'year' => 'Anul', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/ru/CVS/Entries b/langs/ru/CVS/Entries
new file mode 100644 (file)
index 0000000..9030d32
--- /dev/null
@@ -0,0 +1 @@
+D/cgi-bin////
diff --git a/langs/ru/CVS/Repository b/langs/ru/CVS/Repository
new file mode 100644 (file)
index 0000000..e590257
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/ru
diff --git a/langs/ru/CVS/Root b/langs/ru/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/ru/CVS/Tag b/langs/ru/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/ru/cgi-bin/CVS/Entries b/langs/ru/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..e21d095
--- /dev/null
@@ -0,0 +1,2 @@
+/ru.pl/1.2.2.20/Tue Jul  5 20:39:42 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/ru/cgi-bin/CVS/Repository b/langs/ru/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..20265bf
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/ru/cgi-bin
diff --git a/langs/ru/cgi-bin/CVS/Root b/langs/ru/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/ru/cgi-bin/CVS/Tag b/langs/ru/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl
new file mode 100644 (file)
index 0000000..d4a57a9
--- /dev/null
@@ -0,0 +1,570 @@
+# Russian (ru) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2004 Vladimir Grichina, Vitaly Tarasov, Rodion Kotelnikov \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'СА сертификат с таким именем уже существует.', \r
+'a connection with this common name already exists' => 'Соединение с таким простым именем уже существует.', \r
+'a connection with this name already exists' => 'Соединение с таким именем уже существует.', \r
+'access allowed' => 'Доступ разрешен', \r
+'action' => 'Добавить', \r
+'add' => 'Добавить', \r
+'add a host' => 'Добавить host', \r
+'add a new rule' => 'Добавить новое правило:', \r
+'add network' => 'Добавить сеть', \r
+'add new alias' => 'Добавить алиас', \r
+'add new lease' => 'Добавить фиксированную аренду', \r
+'add service' => 'добавить службу', \r
+'add xtaccess' => 'Добавить внешний адрес', \r
+'admin user password has been changed' => 'Пароль пользователя  "admin" изменен.', \r
+'administrator user password' => 'Пароль пользователя administrator', \r
+'adsl settings' => 'Параметры adsl', \r
+'advanced' => 'Специальный', \r
+'again' => 'Еще раз:', \r
+'alcatelusb help' => 'Чтобы использовать Speedtouch USB модем, вам нужно загрузить программное обеспичение (firmware) на IPCop. Пожалуйста скачайте пакет <b>Embedded Firmware</b> со speedtouch.com, распакуйте и загрузите файлы соответсвующие вашему модему:  KQD6_3.xxx для Rev<4, ZZZL_3.xxx для Rev=4 используя страницу внизу.', \r
+'alcatelusb upload' => 'Загрузка firmware для Speedtouch USB', \r
+'alias ip' => 'ip алиас', \r
+'aliases' => 'Алиасы', \r
+'aliases not active' => 'Алиасы не будут активны пока КРАСНЫЙ интерфейс не СТАТИЧЕСКИЙ.', \r
+'all updates installed' => 'Все обновления установлены', \r
+'alt dialup' => 'Соединение', \r
+'alt home' => 'Начало', \r
+'alt information' => 'Информация', \r
+'alt logs' => 'Логи', \r
+'alt services' => 'Службы', \r
+'alt system' => 'Система', \r
+'alt vpn' => 'ВЧС', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'april' => 'Апрель', \r
+'archive not exist' => 'Архиф конфигурации не существует', \r
+'are you sure' => 'Вы уверены?', \r
+'arp table entries' => 'ARP  таблица:', \r
+'august' => 'Август', \r
+'authentication' => 'Вход:', \r
+'automatic' => 'Автоматический', \r
+'available updates' => 'Доступные обновления', \r
+'average' => 'Среднее число', \r
+'back' => 'Назад', \r
+'backup' => 'Сохранение на дискету', \r
+'backup config floppy' => 'Сохранение конфигурации - дискета', \r
+'backup configuration' => 'Сохранение конфигурации', \r
+'backup sets' => 'Резервные Копии', \r
+'backup to floppy' => 'Сохранение на дискету', \r
+'backupprofile' => 'Если не удаётся пересоедениться, переключиться на профиль', \r
+'bad characters in script field' => 'Недопустимые символы в поле сценария', \r
+'bad characters in the telephone number field' => 'Недопустимые символы в поле телефонного номера.', \r
+'bad destination range' => 'Начальное значение порта в интервале больше или равно начального', \r
+'bad ignore filter' => 'Недопустимый фильтр игнорирований', \r
+'bad return code' => 'Программа-помощник возвратила код ошибки', \r
+'bad source range' => 'Первая величина дипазона портов Источника больше или равна второй величине.', \r
+'behind a proxy' => 'за прокси сервером', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'ГОЛУБОЙ', \r
+'blue access' => 'Доступ к Синему интерфейсу', \r
+'blue interface' => 'Синий интерфейс', \r
+'broadcast' => 'Передача', \r
+'broken pipe' => 'Разорваный туннель', \r
+'buffered memory' => 'Буферная Память', \r
+'buffers' => 'буферы', \r
+'bytes per second' => 'байт в секунду', \r
+'ca certificate' => 'СА Сертификат', \r
+'ca name' => 'СА имя', \r
+'cache management' => 'Управление кешом', \r
+'cache size' => 'Размер кеша (МБ):', \r
+'cached' => 'кеширован', \r
+'cached memory' => 'Кеш Память', \r
+'cancel' => 'Отмена', \r
+'cannot enable both nat traversal and compression' => 'Невозможно одновременно запустить пересечение NAT и Сжатие.', \r
+'cannot enable ntp without specifying primary' => 'Невозможно включить NTP без указания первичного.', \r
+'cannot specify secondary dns without specifying primary' => 'Невозможно указать вторичный DNS без указания первичного', \r
+'cannot specify secondary ntp without specifying primary' => 'Не могу указать вторичный NTP без указания первичного', \r
+'cannot specify secondary wins without specifying primary' => 'Нельзя задать вторичный WINS без задания первичного.', \r
+'cant change certificates' => 'Не могу сменить сертификаты.', \r
+'cant enable xtaccess' => 'Это правило переадресации портов отключено, следовательно вы не можете разрешить внешний доступ для этого правила.', \r
+'cant start openssl' => 'Не могу запустить OpenSSL', \r
+'caps all' => 'BCE', \r
+'capsclosed' => 'ЗАКРЫТ', \r
+'capsopen' => 'ОТКРЫТ', \r
+'capswarning' => 'ПРЕДУПРЕЖДЕНИЕ', \r
+'cert' => 'Сертификат', \r
+'certificate' => 'Сертификат', \r
+'certificate authorities' => 'Администрации сертификатов', \r
+'certificate does not have a valid ca associated with it' => 'Сертификат не имеет действительного СА.', \r
+'certificate file move failed' => 'Не удалось переместить файл сертификата', \r
+'cfg restart' => 'После восстановления архива конфигурации требуется перезагрузка.', \r
+'chain' => 'Цепочка', \r
+'change passwords' => 'Изменение паролей', \r
+'check vpn lr' => 'Проверка', \r
+'city' => 'Город', \r
+'clear cache' => 'Очистить кеш', \r
+'clenabled' => 'Клиенты разрешены', \r
+'click to disable' => 'Активаровано (нажмите для деактивации)', \r
+'click to enable' => 'Деактивировано (нажмите для активации)', \r
+'clock has not been synchronized' => 'Часы не синхронизированы', \r
+'clock last synchronized at' => 'Последняя синхронизация часов прошла', \r
+'common name' => 'Общее Имя', \r
+'compression' => 'Сжатие:', \r
+'computer to modem rate' => 'Скорость от компьютера к модему:', \r
+'concentrator name' => 'Имя концентратора:', \r
+'confirmation' => 'подтверждение', \r
+'connect on ipcop restart' => 'Подключится после перезагрузки IPCop:', \r
+'connect the modem' => 'Подсоедените модем', \r
+'connect timeout' => 'Тайм-аут соединения:', \r
+'connected' => 'Соединён', \r
+'connecting' => 'Соединяемся...', \r
+'connection' => 'Имя', \r
+'connection debugging' => 'Отладка соединения', \r
+'connection status and controlc' => 'Статус и управление соединением', \r
+'connection tracking' => 'ТРАССИРОВКА Связи по IPTables', \r
+'connection type' => 'Тип Соединения', \r
+'connection type is invalid' => 'Тип соединения неверен.', \r
+'connections' => 'Соединения', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'связи ассоциированы с этим CA. Удаление этого CA также удалит эти соединения.', \r
+'could not be opened' => 'не может быть открыт', \r
+'could not connect to' => 'Не могу подсоедениться к', \r
+'could not connect to www ipcop org' => 'Не могу соединиться с www.ipcop.org', \r
+'could not create directory' => 'Не могу создать директорию.', \r
+'could not download latest patch list' => 'Не могу загрузить последный список  обновлении (нет соединении)', \r
+'could not download latest updates' => 'Не могу загрузить последные обновления.', \r
+'could not download the available updates list' => 'Не могу загрузить список доступных обновлении', \r
+'could not open available updates file' => 'Не могу открыть файл обновления', \r
+'could not open installed updates file' => 'Не могу открыть файл инсталированных обновлений', \r
+'could not open update information file' => 'Не могу открыть файл содержащий информацию об обновленни. Файл обновления повреждён.', \r
+'could not retrieve common name from certificate' => 'Не смог вывести общее имя от сертификата.', \r
+'country' => 'Страна', \r
+'cpu usage per' => 'Загрузка Центрального Процессора за', \r
+'create' => 'Создать', \r
+'credits' => 'Cоздатели', \r
+'cron server' => 'CRON сервер', \r
+'current' => 'текущий', \r
+'current aliases' => 'Текущие алиасы:', \r
+'current dynamic leases' => 'Текущие динамические аренды', \r
+'current fixed leases' => 'Текущие фиксированные аренды', \r
+'current hosts' => 'Текущие рабочие станции:', \r
+'current profile' => 'Текущий профиль', \r
+'current rules' => 'Текущие правила:', \r
+'custom networks' => 'Свои сети', \r
+'custom services' => 'Свои сервисы', \r
+'dat without key' => 'Невозможно восстановить данные с зашифрованного архива без ключа.', \r
+'date' => 'Дата', \r
+'date not in logs' => 'Несуществуют (или существуют но только частично) записи в журнале по заданному дню', \r
+'day' => 'День', \r
+'day after' => 'Следующий день', \r
+'day before' => 'Предыдущий день', \r
+'days' => 'дней', \r
+'ddns hostname added' => 'Динамическое DNS имя хоста добавлено', \r
+'ddns hostname removed' => 'Динамическое DNS имя хоста убрано', \r
+'december' => 'Декабрь', \r
+'def lease time' => 'Время аренды по умолчанию', \r
+'default lease time' => 'Время аренды по умолчанию (мин):', \r
+'default networks' => 'сети по умолчанию', \r
+'default renewal time' => 'время обновления по умолчанию', \r
+'default services' => 'сервисы по умолчанию', \r
+'delete' => 'Удалить', \r
+'description' => 'Описание', \r
+'dest ip and port' => 'ip назначения и порт', \r
+'destination' => 'место назначения', \r
+'destination ip' => 'ip назначения', \r
+'destination ip bad' => 'неправильный IP назначения', \r
+'destination net' => 'Сеть Назначения', \r
+'destination port' => 'Порт Назначения', \r
+'destination port numbers' => 'Порт назначения должен быть правильным номером порта или интервалом портов.', \r
+'destination port overlaps' => 'Диапазон портов назначения перекрывает существующий диапазон портов.', \r
+'detail level' => 'Уровень детализации', \r
+'device' => 'Устройство', \r
+'dhcp configuration' => 'Конфигурация DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'Сервер DHCP', \r
+'dhcp server disabled' => 'DHCP сервер деактивирован.', \r
+'dhcp server disabled on blue interface' => 'DHCP сервер отключен на СИНЕМ интерфэйсе', \r
+'dhcp server enabled' => 'DHCP сервер активирован. Идет перезагрузка.', \r
+'dhcp server enabled on blue interface' => 'DHCP сервер включен на СИНЕМ интерфэйсе', \r
+'dial' => 'Соединиться', \r
+'dial user password' => 'Пользователский пароль соединения:', \r
+'dial user password has been changed' => 'Пользователский пароль соединения изменён.', \r
+'dialing mode' => 'Способ набора:', \r
+'dialup settings' => 'Параметры Dialup', \r
+'disk access per' => 'Доступ диска', \r
+'disk usage' => 'Использование диска:', \r
+'display hostname in window title' => 'Показать имя хоста в названии окна', \r
+'dmz' => 'Неохраняемая Зона (DMZ)', \r
+'dns proxy server' => 'DNS  прокси сервер', \r
+'dod' => 'Набирать по запросу', \r
+'dod waiting' => 'Набор по запросу ждёт', \r
+'domain' => 'Домен', \r
+'domain name' => 'Доменное имя', \r
+'download ca certificate' => 'Скачать CA сертификат', \r
+'download certificate' => 'Скачать сертификат', \r
+'download host certificate' => 'Скачать сертификат хоста', \r
+'download root certificate' => 'Скачать корневой сертификат', \r
+'driver' => 'Драйвер', \r
+'dst port' => 'Порт Назначения', \r
+'duplicate ip' => 'Такой IP адресс уже существует', \r
+'duplicate mac' => 'Введен существующий MAC адрес', \r
+'duplicate name' => 'Это имя уже используется, пожалуйста выберите другое.', \r
+'dynamic dns' => 'Динамический DNS', \r
+'dynamic dns client' => 'Клиент к динамическому DNS', \r
+'e-mail address too long' => 'Почтовый адрес слишко большой, он должен быть в пределах 40 букв.', \r
+'eciadsl help' => 'Чтобы использовать ECI ADSL модем, загрузите файл synch.bin на IPCop. Пожалуйста скачайте его с ECIADSL сайта и загрузите файл <b>synch.bin</b> используя страницу внизу.', \r
+'edit' => 'Изменить', \r
+'edit a rule' => 'Изменить существующее правило:', \r
+'edit hosts' => 'Изменить хосты', \r
+'edit network' => 'Изменить сеть', \r
+'edit service' => 'Изменить сервис', \r
+'empty' => 'Пустой', \r
+'end address' => 'Конечный адрес:', \r
+'err rs 1' => 'Ошибка при восстановлении архива', \r
+'err rs 6 decrypt' => 'Ошибка при разшифровке архива', \r
+'err rs 7 untartst' => 'Неисправный зашифрованный архив', \r
+'err rs 8 untar' => 'Ошибка при разпаковке архива', \r
+'error messages' => 'Сообщения об ошибках:', \r
+'every' => 'Каждый', \r
+'expected' => 'Ожидается', \r
+'expires' => 'Истекает', \r
+'export' => 'Экспорт', \r
+'external access' => 'Внешний доступ', \r
+'external access configuration' => 'Настройка внешнего доступа', \r
+'external access rule added' => 'Правило для внешнего доступа добавлено; перезагружаю диспетчер доступа', \r
+'external access rule removed' => 'Правило для внешнего доступа удалено; перезагружаю диспетчер доступа', \r
+'external aliases configuration' => 'Настройка внешних алиасов', \r
+'february' => 'Февраль', \r
+'filename' => 'Имя файла', \r
+'filesystem full' => 'Файловая система заполнена', \r
+'firewall' => 'Файервол', \r
+'firewall hits' => 'Общее число обращений к файерволу для', \r
+'firewall log' => 'Журнал Файрвола', \r
+'firewall logs' => 'Журнал Файервола', \r
+'firmware' => 'Микропрограмма', \r
+'firmware upload' => 'Загрузка Микропрограммы/Драйверов', \r
+'fixed ip lease added' => 'Фиксированная аренда IP добавлена', \r
+'fixed ip lease removed' => 'Фиксированная аренда IP удалена', \r
+'force update' => 'Принудительное обновление', \r
+'forwarding rule added' => 'Правило переадресации добавлено; перезапуск переадресатора', \r
+'forwarding rule removed' => 'Правило переадресации удалено; перезапуск переадресатора', \r
+'free' => 'свободно', \r
+'free memory' => 'Свободная память', \r
+'free swap' => 'Свободная подкачка', \r
+'g.dtm' => 'G.dmt', \r
+'gateway' => 'Шлюз', \r
+'generate a certificate' => 'Сгенерировать сертификат:', \r
+'generate root/host certificates' => 'Сгенерировать корневой/хоста сертификат', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Генерация корневого/хоста сертификата может занять много времени -  до нескольких минут на старых машинах. Пожалуйста подождите.', \r
+'global settings' => 'Глобальные настройки', \r
+'graph' => 'График', \r
+'graph per' => 'График в', \r
+'green' => 'ЗЕЛЁНЫЙ', \r
+'green interface' => 'Зелёный Интерфейс', \r
+'gui settings' => 'Настройки GUI', \r
+'hangup' => 'Отсоедениться', \r
+'high' => 'Высокий', \r
+'high memory usage' => 'Использование верхней памяти', \r
+'holdoff' => 'Время задержки (в секундах)', \r
+'host certificate' => 'Сертификат Хоста', \r
+'host configuration' => 'Конфигурация Хоста', \r
+'host ip' => 'IP адресс хоста', \r
+'hostname' => 'Имя Хоста', \r
+'hostname and domain already in use' => 'Имена хоста и домена уже заняты,', \r
+'hostname not set' => 'Имя хоста не указано', \r
+'hosts config added' => 'Конфигурация хостов добавлена', \r
+'hosts config changed' => 'Конфигурация хостов изменина', \r
+'hours' => 'часы', \r
+'hours2' => 'Часов', \r
+'id' => 'ID', \r
+'idle' => 'Ожидание', \r
+'idle cpu' => 'Ожидание ЦП', \r
+'idle cpu usage' => 'Ожидание ЦП', \r
+'idle timeout' => 'Время ожидания (в минутах; 0 чтобы отключить):', \r
+'idle timeout not set' => 'Время ожидания не установлено.', \r
+'ids log viewer' => 'Просмотрщик лога IDS', \r
+'ids logs' => 'Журнал Системы Обнаружения Атак (IDS)', \r
+'iface' => 'Ифейс', \r
+'ignore filter' => 'Игнорировать фильтр', \r
+'import' => 'Импорт', \r
+'in' => 'Входящий', \r
+'incoming traffic in bytes per second' => 'Входящий траффик в Байтах в Секунду', \r
+'info' => 'Информация', \r
+'init string' => 'Инициализация:', \r
+'insert floppy' => 'Для сохранения конфигурации системы, пожалуйста вставьте диск в дисковод IPCop и нажмите <i>Сохранение на дискету</i>. Проверьте аккуратно результаты, чтобы быть уверенным в том, что сохранение прошло успешно.<p>', \r
+'install new update' => 'Установить новое обновление:', \r
+'installed' => 'Установлен', \r
+'installed updates' => 'Установленные Обновления:', \r
+'instant update' => 'Мгновенное Обновление', \r
+'interface' => 'Интерфейс', \r
+'interfaces' => 'Интерфейсы:', \r
+'internet' => 'ИНТЕРНЕТ', \r
+'intrusion detection' => 'Обнаружение Атак', \r
+'intrusion detection system' => 'Система Обнаружения Атак', \r
+'intrusion detection system2' => 'Система Обнаружения Атак:', \r
+'invalid cache size' => 'Неверный размер кеша.', \r
+'invalid date entered' => 'Дата введена неправильно.', \r
+'invalid domain name' => 'Неправильное доменное имя', \r
+'invalid downlink speed' => 'Неправильная скорость скачивания.', \r
+'invalid end address' => 'Неправильный конечный адрес.', \r
+'invalid fixed ip address' => 'Неправильный фиксированый IP адрес', \r
+'invalid fixed mac address' => 'Неправильный фиксированый MAC адрес', \r
+'invalid hostname' => 'Неправильое имя хоста.', \r
+'invalid input' => 'Неверный ввод', \r
+'invalid input for city' => 'Неправильный ввод города.', \r
+'invalid input for country' => 'Неправильный ввод страны.', \r
+'invalid input for department' => 'Неправильный ввод департамента.', \r
+'invalid input for e-mail address' => 'Неправильный ввод почтового адреса.', \r
+'invalid input for hostname' => 'Неправильный ввод имя хоста.', \r
+'invalid input for name' => 'Неправельный ввод имя пользователя или хоста', \r
+'invalid input for organization' => 'Неправильный ввод организации.', \r
+'invalid ip' => 'Неправильнвы IP адрес', \r
+'invalid key' => 'Неверный ключ.', \r
+'invalid maximum object size' => 'Неправильный максимальный размер объекта ', \r
+'invalid port' => 'Неправильный порт. Должен быть правильный номер порта', \r
+'invalid start address' => 'Неправильный начальный адрес.', \r
+'invalid time entered' => 'Время введно неправильное.', \r
+'invalid time period' => 'Неправильный временной промежуток.', \r
+'invert' => 'Инвертировать', \r
+'ip address' => 'IP адрес', \r
+'ip address in use' => 'IP адрес  уже используется', \r
+'ip info' => 'Информация об IP', \r
+'ipcop has now rebooted' => 'IPCop только что перезагрузился.', \r
+'ipcop has now shutdown' => 'IPCop уже выключен.', \r
+'ipinfo' => 'Информация о IP', \r
+'isdn' => 'ISDN', \r
+'january' => 'Январь', \r
+'july' => 'Июль', \r
+'june' => 'Июнь', \r
+'kernel' => 'Ядро', \r
+'kernel logging server' => 'Сервер регистрирующий события в ядре', \r
+'kernel version' => 'Версия ядра:', \r
+'lan' => 'ЛВС', \r
+'languagepurpose' => 'Выберите язык IPCop`а', \r
+'lease expires' => 'Аренда истекает', \r
+'legend' => 'История', \r
+'line' => 'Линия', \r
+'loaded modules' => 'Загруженные модули:', \r
+'local subnet' => 'Локальная подсеть:', \r
+'log' => 'Журнал:', \r
+'log enabled' => 'Журнал Включен', \r
+'log settings' => 'Настройки Журнала', \r
+'log summaries' => 'Итоги Журнала', \r
+'log summary' => 'Итоги Журнала', \r
+'log viewer' => 'Просмотр Журнала', \r
+'low' => 'Низкий', \r
+'mac address' => 'MAC  адрес', \r
+'main page' => 'Главная страница', \r
+'manual' => 'Ручной', \r
+'manually' => 'Вручную', \r
+'march' => 'Март', \r
+'max size' => 'Максимальный размер объекта (КБ):', \r
+'maximal' => 'Максималное', \r
+'maximum retries' => 'Максимальное число попыток', \r
+'may' => 'Май', \r
+'medium' => 'Средний', \r
+'memory' => 'Память:', \r
+'method' => 'Метод:', \r
+'min size' => 'Минимальный размер объекта(КБ):', \r
+'minutes' => 'Минуты', \r
+'modem' => 'Модем', \r
+'modem configuration' => 'Настройка модема', \r
+'modem on com1' => 'Модем на COM1', \r
+'modem on com2' => 'Модем на COM2', \r
+'modem on com3' => 'Модем на COM3', \r
+'modem on com4' => 'Модем на COM4', \r
+'modem settings have errors' => 'В настройках модема содержатся ошибки.', \r
+'modem speaker on' => 'Динамик модема включён:', \r
+'modulation' => 'Модуляция', \r
+'month' => 'Месяц', \r
+'months' => 'Месяцы', \r
+'mounted on' => 'Смонтирован на', \r
+'name' => 'Имя', \r
+'name must only contain characters' => 'Имя должно содержать только символы.', \r
+'net' => 'Сеть', \r
+'netmask' => 'Маска сети', \r
+'network' => 'Сеть', \r
+'network added' => 'Сеть добавлена', \r
+'network configuration' => 'Настройка Сети', \r
+'network traffic graphs' => 'Графики сетевого трафика', \r
+'newer' => 'Новее', \r
+'next address' => 'Следующий адрес', \r
+'not present' => '<b>Не</b>доступен', \r
+'november' => 'Ноябрь', \r
+'number' => 'Номер:', \r
+'october' => 'Октябрь', \r
+'older' => 'Старше', \r
+'open to all' => 'Аннулировать внешний доступ для ВСЕХ', \r
+'orange' => 'ОРАНЖЕВЫЙ', \r
+'organization name' => 'Название организации', \r
+'original' => 'Оригинальный', \r
+'other countries' => 'Другие страны', \r
+'other login script' => 'Другой сценарий подключения', \r
+'out' => 'Исходящий', \r
+'outgoing traffic in bytes per second' => 'Исходящий траффик в байтах в секунду', \r
+'package failed to install' => 'Не удалось установить пакет.', \r
+'password' => 'Пароль:', \r
+'password contains illegal characters' => 'Пароль содержит запрещённые символы.', \r
+'password not set' => 'Пароль не установлен.', \r
+'password too short' => 'Пароль слишком короткий.', \r
+'passwords do not match' => 'Пароли не совпадают.', \r
+'passwords must be at least 6 characters in length' => 'Пароли должны быть хотя бы 6 символов в длину', \r
+'percentage' => 'Проценты', \r
+'port' => 'Порт', \r
+'port forwarding configuration' => 'Настройка переназначения портов', \r
+'ports' => 'Порты', \r
+'pppoe' => 'PPPoE', \r
+'present' => 'Доступен', \r
+'primary dns' => 'Первичный DNS:', \r
+'primary ntp server' => 'Первичный Сервер Времени (NTP)', \r
+'priority' => 'Приоритет', \r
+'profile' => 'Профиль', \r
+'profile deleted' => 'Профиль удалён:', \r
+'profile has errors' => 'Профиль содержит ошибки', \r
+'profile made current' => 'Профиль сделанный текущим:', \r
+'profile name' => 'Имя профиля:', \r
+'profile name not given' => 'Имя профиля не указано.', \r
+'profile saved' => 'Профиль сохранён:', \r
+'profiles' => 'Профили:', \r
+'protocol' => 'Протокол', \r
+'proxy' => 'Прокси', \r
+'proxy access graphs' => 'Графики доступа к прокси', \r
+'proxy log viewer' => 'Посмотреть журнал обращений к прокси', \r
+'proxy logs' => 'Журнал обращений к прокси', \r
+'proxy port' => 'Порт прокси сервера', \r
+'reboot' => 'Перезагрузить', \r
+'rebooting' => 'Перезагружается', \r
+'rebooting ipcop' => 'IPCop перезагружается', \r
+'reconnection' => 'Пересоединение', \r
+'refresh' => 'Обновить', \r
+'released' => 'Освобождён', \r
+'remark' => 'Заметка', \r
+'remark title' => 'Заметка:', \r
+'remote access' => 'Удалённый доступ', \r
+'remote logging' => 'Запись удалённых событий', \r
+'remove' => 'Удалить', \r
+'reset' => 'Сброс', \r
+'restart' => 'Перезагрузить', \r
+'restore' => 'Восстановить', \r
+'restore defaults' => 'Восстановить начальные установки', \r
+'root certificate' => 'Корневой сертификат', \r
+'root path' => 'Корневой путь', \r
+'router ip' => 'IP Адрес Маршрутизатора', \r
+'running' => 'ЗАПУЩЕН', \r
+'save' => 'Сохранить', \r
+'save error' => 'Не могу сохранить архив с конфигурацией', \r
+'script name' => 'Имя сценария', \r
+'secondary dns' => 'Вторичный DNS:', \r
+'secondary ntp server' => 'Вторичный Сервер Времени (NTP)', \r
+'seconds' => 'Cекунды', \r
+'section' => 'Секция', \r
+'secure shell server' => 'Cервер безопасного соединения', \r
+'select' => 'Выбрать', \r
+'september' => 'Сентябрь', \r
+'serial' => 'Последовательное', \r
+'service' => 'Сервис', \r
+'service added' => 'Пользовательский Сетевой Сервис добавлен', \r
+'service removed' => 'Пользовательский Сетевой Сервис удалён', \r
+'service updated' => 'Пользовательский Сетевой Сервис обновлён', \r
+'servicename' => 'Имя Сервиса', \r
+'services' => 'Сервисы:', \r
+'services settings' => 'Файрволл - Настройка сервисов', \r
+'set time now' => 'Настроить Время', \r
+'settings' => 'Настройки', \r
+'shaping list options' => 'Сервис ограничения трафика', \r
+'shared' => 'Общий', \r
+'show certificate' => 'Показать сертификат', \r
+'show host certificate' => 'Показать сертификат хоста', \r
+'show root certificate' => 'Показать корневой сертификат', \r
+'shutdown' => 'Выключить маршрутизатор', \r
+'shutdown control' => 'Управление выключением', \r
+'shutdown2' => 'Выключение:', \r
+'shutting down' => 'Вырубаюсь.....', \r
+'shutting down ipcop' => 'IPCop выключается.......', \r
+'ssh access' => 'Доступ через SSH', \r
+'ssh key' => 'Ключ', \r
+'ssh passwords' => 'Разрешить вход по паролю', \r
+'ssnetwork status' => 'Состояние Сети', \r
+'sspasswords' => 'Пароли', \r
+'ssport forwarding' => 'Перенаправление портов', \r
+'ssproxy graphs' => 'Графики Прокси', \r
+'sssystem status' => 'Состояние Системы', \r
+'status' => 'Состояние', \r
+'status information' => 'Информация состояния', \r
+'stopped' => 'ОСТАНОВЛЕННО', \r
+'swap' => 'Подкачка', \r
+'system graphs' => 'Графики Системы', \r
+'system logs' => 'Системный Журнал', \r
+'system status information' => 'Системная информация состояния', \r
+'telephone not set' => 'Телефон не сконфигурирован', \r
+'time' => 'Время', \r
+'time server' => 'Сервер Времени', \r
+'traffic shaping' => 'Ограничение Трафика', \r
+'traffic shaping settings' => 'Настройка Ограничений Трафика', \r
+'type' => 'Тип', \r
+'unnamed' => 'Неназванный', \r
+'update' => 'Обновление', \r
+'update time' => 'Время обновления', \r
+'updates' => 'Обновления', \r
+'updates installed' => 'Установленные обновления', \r
+'updates is old1' => 'Ваш файл обновления', \r
+'updates is old2' => 'дней. Мы рекомендуем вам обновить вашу систему на страничке <b>Система>Обновления</b>', \r
+'uplink speed' => 'Скорость закачки (килобит/сек)', \r
+'upload' => 'Закачка', \r
+'upload a certificate' => 'Закачать сертификат', \r
+'upload a certificate request' => 'Закачать запрос сертификата', \r
+'upload ca certificate' => 'Загрузить CA сертификат', \r
+'upload fcdsl.o' => 'Закачать fcdsl.o', \r
+'upload file' => 'Закачать файл', \r
+'upload successful' => 'Закачка удалась.', \r
+'upload synch.bin' => 'Закачать synch.bin', \r
+'upload update file' => 'Закачать файл обновления', \r
+'uptime and users' => 'Время работы и пользователи', \r
+'use' => 'Использовать', \r
+'use a pre-shared key' => 'Использовать общий ключ:', \r
+'used' => 'Используется', \r
+'used memory' => 'Занятая память', \r
+'username' => 'Имя пользователя:', \r
+'username not set' => 'Имя пользователя не установлено', \r
+'users department' => 'Департамент пользователя', \r
+'users email' => 'Почтовый адрес пользователя', \r
+'valid root certificate already exists' => 'Правельный корневой сертификат уже существует.', \r
+'vci number' => 'VCI Номер:', \r
+'virtual private networking' => 'Виртуальная Частная Сеть (VPN)', \r
+'vpi number' => 'Номер VPI', \r
+'vpn' => 'Виртуальная Частная Сеть (VPN)', \r
+'vpn configuration main' => 'Настройка Виртуальной Частной Сети (VPN) - Главное меню', \r
+'vpn on blue' => 'Виртуальная Частная Сеть на СИНЕМ', \r
+'waiting to synchronize clock' => 'жду синхронизации часов', \r
+'warning messages' => 'Сообщения об ошибках', \r
+'web hits' => 'Число попаданий', \r
+'web proxy' => 'Интернет прокси', \r
+'web proxy configuration' => 'Конфигурация интернет прокси сервера', \r
+'web server' => 'Web сервер', \r
+'website' => 'Сайт', \r
+'week' => 'Неделя', \r
+'weeks' => 'недели', \r
+'wireless' => 'безпроводная сеть', \r
+'wireless configuration' => 'Настройка Беспроводной сети', \r
+'written sectors' => 'Записанные секторы', \r
+'year' => 'Год', \r
+'your e-mail' => 'Ваш E-mail', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/sk/CVS/Entries b/langs/sk/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/sk/CVS/Repository b/langs/sk/CVS/Repository
new file mode 100644 (file)
index 0000000..0f94eb5
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/sk
diff --git a/langs/sk/CVS/Root b/langs/sk/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/sk/CVS/Tag b/langs/sk/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/sk/cgi-bin/CVS/Entries b/langs/sk/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..f1627dd
--- /dev/null
@@ -0,0 +1,2 @@
+/sk.pl/1.1.2.14/Tue Jan 31 12:02:25 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/sk/cgi-bin/CVS/Repository b/langs/sk/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..d053008
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/sk/cgi-bin
diff --git a/langs/sk/cgi-bin/CVS/Root b/langs/sk/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/sk/cgi-bin/CVS/Tag b/langs/sk/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/sk/cgi-bin/sk.pl b/langs/sk/cgi-bin/sk.pl
new file mode 100644 (file)
index 0000000..0695018
--- /dev/null
@@ -0,0 +1,946 @@
+# Slovak  (sk) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2005 Drlik Zbynek, Miloš Mráz \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Certifikát CA s týmto menom už existuje.', \r
+'a connection with this common name already exists' => 'Pripojenie s týmto všeobecným menom už existuje.', \r
+'a connection with this name already exists' => 'Pripojenie s týmto menom už existuje.', \r
+'access allowed' => 'Prístup povolený z:', \r
+'access refused with this oinkcode' => 'Prístup s týmto Oink kódom bol odmietnutý.', \r
+'action' => 'Akcia', \r
+'add' => 'Pridať', \r
+'add a host' => 'Pridať počítač:', \r
+'add a new rule' => 'Pridať nové pravidlo:', \r
+'add device' => 'Pridať zariadenie', \r
+'add network' => 'Pridať sieť', \r
+'add new alias' => 'Pridať nový alias:', \r
+'add new lease' => 'Pridať nové trvalé zapožičanie', \r
+'add service' => 'Pridať službu', \r
+'add xtaccess' => 'Pridať externý prístup', \r
+'added from dhcp lease list' => 'pridať z DHCP zoznamu zapožičania', \r
+'admin user password has been changed' => 'Bolo zmenené heslo užívateľa admin.', \r
+'administrator user password' => 'Heslo užívateľa admin:', \r
+'adsl settings' => 'Nastavenie ADSL', \r
+'advanced' => 'Pokročilý', \r
+'again' => 'Znovu:', \r
+'alcatelusb help' => 'Pred použitím Speedtouch 330 alebo Speedtouch USB modemu je nutné nahrať firmware. Prosím stiahnite balíček <b>Embedded Firmware</b> z speedtouch.com, rozbaľte ho a potom nahrajte príslušný súbor pre váš modem pomocou nasledujúceho formulára: KQD6_3.xxx pre Rev<4 alebo ZZZL_3.xxx pre Rev=4.', \r
+'alcatelusb upload' => 'Nahrať Speedtouch USB firmware', \r
+'alias ip' => 'IP adresa aliasu', \r
+'aliases' => 'Aliasy', \r
+'aliases not active' => 'Pokiaľ nebude adresa IP RED rozhrania STATICKÁ, nebudú aliasy aktívne.', \r
+'all' => 'Všetky', \r
+'all interfaces' => 'Všetky rozhrania', \r
+'all updates installed' => 'Všetky aktualizácie boli nainštalované.', \r
+'alt dialup' => 'Vytáčanie', \r
+'alt home' => 'Domov', \r
+'alt information' => 'Informácia', \r
+'alt logs' => 'Záznamy', \r
+'alt services' => 'Služby', \r
+'alt system' => 'Systém', \r
+'alt vpn' => 'VPN', \r
+'and' => 'a', \r
+'apply' => 'Použiť', \r
+'april' => 'Apríl', \r
+'archive not exist' => ' Neexistuje archív s nastavením.', \r
+'are you sure' => 'Ste si istý?', \r
+'arp table entries' => 'Položky ARP tabuľky:', \r
+'august' => 'August', \r
+'authentication' => 'Overovanie:', \r
+'automatic' => 'Automatické', \r
+'available updates' => 'Dostupné aktualizácie:', \r
+'average' => 'priem.', \r
+'avoid dod' => 'Nepoužívajte túto možnosť spolu s "Vytočiť na požiadanie". Prevažne sa používa ak je váš IPCop pred smerovačom. Vaša IP adresa RED rozhrania musí byť vnútri jednej z troch rezervovaných sietí napr. 10/8, 172.16/12, 192.168/16.', \r
+'back' => 'Späť', \r
+'backup' => 'Zálohovať', \r
+'backup config floppy' => 'Zálohovať nastavenie na disketu:', \r
+'backup configuration' => 'Zálohovať nastavenie:', \r
+'backup sets' => 'Sady záloh', \r
+'backup to floppy' => 'Zálohovať na disketu', \r
+'backupprofile' => 'V prípade zlyhania opätovného pripojenia prepnúť na profil', \r
+'bad characters in script field' => 'Boli zadané neplatné znaky v poli skript.', \r
+'bad characters in the telephone number field' => 'Boli zadané neplatné znaky v poli telefónne číslo.', \r
+'bad destination range' => 'Rozsah cieľových portov má prvú hodnotu väčšiu alebo rovnú druhej hodnote.', \r
+'bad ignore filter' => 'Filter:', \r
+'bad return code' => 'Pomocný program vrátil chybový kód', \r
+'bad source range' => 'Rozsah zdrojových portov má prvú hodnotu väčšiu alebo rovnú druhej hodnote.', \r
+'beep when ppp connects or disconnects' => 'Pípnuť pri pripojení alebo odpojení IPCop-u', \r
+'behind a proxy' => 'Za proxy serverom:', \r
+'blue' => 'BLUE', \r
+'blue access' => 'Prístup k BLUE', \r
+'blue interface' => 'BLUE rozhranie', \r
+'broadcast' => 'Všesmerové vysielanie', \r
+'broken pipe' => 'Prerušená rúra', \r
+'buffered memory' => 'bufferovaná pamäť', \r
+'buffers' => 'buffery', \r
+'bytes per second' => 'B/s', \r
+'ca certificate' => 'CA certifikát', \r
+'ca name' => 'Meno CA', \r
+'cache management' => 'Správa cache', \r
+'cache size' => 'Veľkosť cache (MB):', \r
+'cached' => 'v cache', \r
+'cached memory' => 'cachovaná pamäť', \r
+'cancel' => 'Zrušiť', \r
+'cannot enable both nat traversal and compression' => 'Nie je možné súčasne povoliť NAT Traversal aj kompresiu.', \r
+'cannot enable ntp without specifying primary' => 'Nie je možné povoliť NTP bez zadania primárneho NTP serveru.', \r
+'cannot specify secondary dns without specifying primary' => 'Nie je možné zadať sekundárny DNS server bez zadania primárneho DNS serveru.', \r
+'cannot specify secondary ntp without specifying primary' => 'Nie je možné zadať sekundárny DNS server bez zadania primárneho DNS serveru.', \r
+'cannot specify secondary wins without specifying primary' => 'Nie je možné zadať sekundárny WINS server bez zadania primárneho WINS serveru.', \r
+'cant change certificates' => 'Nie je možné zmeniť certifikáty.', \r
+'cant enable xtaccess' => 'Priradené pravidlo pre mapovanie portov je zakázané, preto nie je možné pre toto pravidlo povoliť externý prístup.', \r
+'cant start openssl' => 'Nie je možné spustiť OpenSSL', \r
+'caps all' => 'Všetky', \r
+'capsclosed' => 'ZATVORENÝ', \r
+'capsopen' => 'OTVORENÝ', \r
+'capswarning' => 'VAROVANIE', \r
+'cert' => 'Certifikát', \r
+'certificate' => 'Certifikát', \r
+'certificate authorities' => 'Certifikačné autority', \r
+'certificate does not have a valid ca associated with it' => 'K certifikátu nie je priradená platná CA.', \r
+'certificate file move failed' => 'Nepodarilo sa presnúť súbor s certifikátom.', \r
+'cfg restart' => 'Po obnovení konfigurácie z archívu je doporučené reštartovať počítač.', \r
+'chain' => 'Reťazec', \r
+'change passwords' => 'Zmena hesiel', \r
+'check vpn lr' => 'Skontrolovať', \r
+'city' => 'Mesto', \r
+'clear cache' => 'Vymazať cache', \r
+'clenabled' => 'Poskytovať čas pre lokálnu sieť', \r
+'click to disable' => 'Povolené (kliknite na zakázanie)', \r
+'click to enable' => 'Zakázané (kliknite na povolenie)', \r
+'clock has not been synchronized' => 'Čas nebol synchronizovaný.', \r
+'clock last synchronized at' => 'Čas bol naposledy synchronizovaný v', \r
+'common name' => 'Všeobecné meno', \r
+'compression' => 'Kompresia:', \r
+'computer to modem rate' => 'Rýchlosť medzi počítačom a modemom:', \r
+'concentrator name' => 'Meno koncentrátora:', \r
+'confirmation' => 'potvrdenie', \r
+'connect on ipcop restart' => 'Obnoviť pripojenie po reštarte IPCop-u:', \r
+'connect the modem' => 'Pripojiť modem', \r
+'connect timeout' => 'Časové oneskorenie pripojenia:', \r
+'connected' => 'Pripojené', \r
+'connecting' => 'Pripojujem sa ...', \r
+'connection' => 'Pripojenie', \r
+'connection debugging' => 'Ladiť pripojenie', \r
+'connection status and controlc' => 'Stav a ovládanie pripojenia:', \r
+'connection tracking' => 'IPTables - sledovanie pripojenia', \r
+'connection type' => 'Typ pripojenia', \r
+'connection type is invalid' => 'Neplatný typ pripojenia.', \r
+'connections' => 'Pripojenia', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'K tejto CA sú priradené pripojenia. Pri odstránení CA budú odstránené aj tieto pripojenia.', \r
+'could not be opened' => 'nie je možné otvoriť', \r
+'could not connect to' => 'Nie je možné sa pripojiť k', \r
+'could not connect to www ipcop org' => 'Nie je možné sa pripojiť k www.ipcop.org', \r
+'could not create directory' => 'Nie je možné vytvoriť adresár.', \r
+'could not download latest patch list' => 'Nie je možné stiahnuť najnovší zoznam aktualizácií (nepripojené).', \r
+'could not download latest updates' => 'Nie je možné stiahnuť najnovšie aktualizácie.', \r
+'could not download the available updates list' => 'Nie je možné stiahnuť zoznam aktualizácií.', \r
+'could not open available updates file' => 'Nie je možné otvoriť súbor dostupných aktualizácií.', \r
+'could not open installed updates file' => 'Nie je možné otvoriť súbor nainštalovaných aktualizácií.', \r
+'could not open update information file' => 'Nie je možné otvoriť súbor aktualizácií. Súbor je poškodený.', \r
+'could not retrieve common name from certificate' => 'Nie je možné vyhľadať všeobecné meno v certifikáte.', \r
+'country' => 'Krajina', \r
+'cpu usage per' => 'Použitie CPU za', \r
+'create' => 'Vytvoriť', \r
+'credits' => 'Poďakovanie', \r
+'cron server' => 'CRON server', \r
+'current' => 'aktuál.', \r
+'current aliases' => 'Aktuálne aliasy:', \r
+'current dhcp leases on blue' => 'Aktuálne DHCP zapožičania pre BLUE', \r
+'current dynamic leases' => 'Aktuálne dynamické zapožičania', \r
+'current fixed leases' => 'Aktuálne trvalé zapožičania', \r
+'current hosts' => 'Aktuálne hostiteľské počítače:', \r
+'current profile' => 'Aktuálny profil:', \r
+'current rules' => 'Aktuálne pravidlá:', \r
+'custom networks' => 'Užívateľské siete', \r
+'custom services' => 'Užívateľské služby', \r
+'dat without key' => 'Nie je možné obnoviť šifrovaný archív bez kľúča.', \r
+'date' => 'Dátum', \r
+'date not in logs' => 'Pre dotazovaný deň neexistuje záznam alebo záznam je len čiastočný', \r
+'day' => 'Deň', \r
+'day after' => 'Deň potom', \r
+'day before' => 'Deň predtým', \r
+'days' => 'dní', \r
+'ddns hostname added' => 'Bolo pridané meno počítača dynamickej DNS.', \r
+'ddns hostname modified' => 'Bolo zmenené meno počítača dynamickej DNS.', \r
+'ddns hostname removed' => 'Bolo odobraté meno počítača dynamickej DNS.', \r
+'ddns minimize updates' => 'Minimalizujte aktualizácie: pred aktualizáciou, porovnajte DNS záznam IP adresy pre počítač "[počítač.]doména" s RED IP.', \r
+'ddns noip prefix' => 'Na použitie no-ip v skupinovom móde, zadajte predponu počítača <b>%</b>', \r
+'december' => 'December', \r
+'def lease time' => 'Východzí čas zapožičania', \r
+'default lease time' => 'Východzí čas zapožičania (min):', \r
+'default networks' => 'Východzie siete', \r
+'default renewal time' => 'Východzí obnovovací čas', \r
+'default services' => 'Východzie služby', \r
+'delete' => 'Vymazať', \r
+'demon login script' => 'Prihlasovací skript démona', \r
+'description' => 'Popis', \r
+'dest ip and port' => 'cieľová IP:Port', \r
+'destination' => 'Cieľ', \r
+'destination ip' => 'Cieľová IP', \r
+'destination ip bad' => 'Neplatná cieľová IP', \r
+'destination ip or net' => 'Cieľová IP alebo sieť', \r
+'destination net' => 'Cieľová sieť', \r
+'destination port' => 'Cieľový port', \r
+'destination port numbers' => 'Cieľový port musí byť platné číslo portu alebo rozsah portov.', \r
+'destination port overlaps' => 'Cieľový port sa prekrýva s už existujúcim rozsahom portov.', \r
+'detail level' => 'Úroveň podrobností', \r
+'device' => 'Zariadenie', \r
+'devices on blue' => 'Zariadenie pre BLUE rozhranie', \r
+'dhcp advopt add' => 'Pridať DHCP voľbu', \r
+'dhcp advopt added' => 'Bola pridaná DHCP voľba', \r
+'dhcp advopt blank value' => 'Musí byť zadaná hodnota DHCP voľby.', \r
+'dhcp advopt custom definition' => 'Definícia užívateľskej voľby', \r
+'dhcp advopt definition' => 'Definovanie', \r
+'dhcp advopt definition exists' => 'Definícia voľby už existuje. Smiete ju iba upraviť alebo odstrániť.', \r
+'dhcp advopt edit' => 'Upraviť DHCP voľbu', \r
+'dhcp advopt help' => 'Zoznam volieb', \r
+'dhcp advopt list' => 'Doplňujúce DHCP voľby', \r
+'dhcp advopt modified' => 'Boli upravené DHCP voľby', \r
+'dhcp advopt name' => 'Meno voľby', \r
+'dhcp advopt removed' => 'Bola odstránená DHCP voľba', \r
+'dhcp advopt scope' => 'Rozsah voľby', \r
+'dhcp advopt scope global' => 'Hlavný', \r
+'dhcp advopt scope help' => 'Hlavný rozsah alebo limit kontrolovaných rozhraní.', \r
+'dhcp advopt unknown' => 'Nebolo rozpoznané meno DHCP voľby.', \r
+'dhcp advopt value' => 'Hodnota voľby', \r
+'dhcp allow bootp' => 'Povoliť bootp klientov', \r
+'dhcp bootp pxe data' => 'Zadajte voliteľné bootp pxe údaje pre toto trvalé zapožičanie', \r
+'dhcp configuration' => 'Nastavenie DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP server', \r
+'dhcp server disabled' => 'Bol zakázaný DHCP server. Zastavujem ho.', \r
+'dhcp server disabled on blue interface' => 'DHCP server bol zakázaný pre BLUE rozhranie.', \r
+'dhcp server enabled' => 'Bol povolený DHCP server. Reštartujem ho.', \r
+'dhcp server enabled on blue interface' => 'DHCP server bol povolený pre BLUE rozhranie.', \r
+'dial' => 'Pripojiť', \r
+'dial user password' => 'Heslo užívateľa dial:', \r
+'dial user password has been changed' => 'Bolo zmenené heslo užívateľa dial.', \r
+'dialing mode' => 'Spôsob vytáčania:', \r
+'dialup settings' => 'Nastavenie vytáčania', \r
+'disk access per' => 'Prístup k disku za', \r
+'disk usage' => 'Použitie disku:', \r
+'display' => 'Zobraziť', \r
+'display hostname in window title' => 'Zobraziť meno počítača v názve okna', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Nastavenie DMZ trhlín', \r
+'dmz pinhole rule added' => 'Bolo pridané pravidlo do DMZ trhlín. Reštartujem DMZ trhliny.', \r
+'dmz pinhole rule removed' => 'Bolo odobraté pravidlo z DMZ trhlín. Reštartujem DMZ trhliny.', \r
+'dmzpinholes for same net not necessary' => 'DMZ trhliny nie je potrebné nastaviť pre rovnakú sieť. Vyberte inú zdrojovú alebo cieľovú sieť.', \r
+'dns check failed' => 'Zlyhala kontrola DNS', \r
+'dns proxy server' => 'Proxy server pre DNS', \r
+'do not log this port list' => 'Vynechať tieto porty zo záznamov (zmenšenie veľkosti záznamu)', \r
+'dod' => 'Vytočiť na požiadanie', \r
+'dod for dns' => 'Vytočiť na požiadanie pre DNS:', \r
+'dod not compatible with ddns' => 'Vytočiť na požiadanie nie je možné používať spolu s dynamickou DNS službou.', \r
+'dod waiting' => 'Čakanie pri vytáčaní na požiadanie', \r
+'domain' => 'Doména', \r
+'domain name' => 'Meno domény', \r
+'domain name suffix' => 'Prípona mena domény:', \r
+'domain not set' => 'Nie je nastavená doména.', \r
+'downlink speed' => 'Rýchlosť sťahovania (kb/s)', \r
+'download ca certificate' => 'stiahnuť CA certifikát', \r
+'download certificate' => 'Stiahnuť certifikát', \r
+'download host certificate' => 'Stiahnuť hostiteľský certifikát', \r
+'download new ruleset' => 'Stiahnuť novú sadu pravidiel', \r
+'download pkcs12 file' => 'Stiahnuť PKCS12 súbor', \r
+'download root certificate' => 'Stiahnuť koreňový certifikát', \r
+'dpd action' => 'Ukončiť pred detekciou', \r
+'driver' => 'Ovládač', \r
+'dst port' => 'Cieľ. port', \r
+'dstprt range overlaps' => 'Cieľový rozsah portov sa prekrýva s už definovaným portom.', \r
+'dstprt within existing' => 'Cieľový port je vo vnútri už definovaného rozsahu portov.', \r
+'duplicate ip' => 'Bola zadaná duplicitná IP adresa', \r
+'duplicate ip bold' => 'Duplicitné adresy sú označené <b>tučne</b>.', \r
+'duplicate mac' => 'Bola zadaná duplicitná MAC adresa.', \r
+'duplicate name' => 'Toto meno sa už používa, prosím zvoľte iné.', \r
+'dyn dns source choice' => 'Poskytovateľ dynamickej DNS dostane IP adresu pre IPCop z:', \r
+'dynamic dns' => 'Dynamická DNS', \r
+'dynamic dns client' => 'Klient dymanickej DNS', \r
+'e-mail address too long' => 'E-mailová adresa je príliš dlhá; dĺžka by nemala presiahnúť 40 znakov.', \r
+'eciadsl help' => 'Pred použitím ECI ADSL modemu musíte nahrať súbor synch.bin. Prosím stiahnite ho zo stránok ECIADSL a nahrajte súbor <b>synch.bin</b> pomocou nasledujúceho formulára.', \r
+'eciadsl upload' => 'Nahrať ECI ADSL Synch.bin súbor', \r
+'edit' => 'Upraviť', \r
+'edit a rule' => 'Upraviť existujúce pravidlo:', \r
+'edit advanced settings when done' => 'Po dokončení upraviť pokročilé nastavenie.', \r
+'edit an existing alias' => 'Upraviť existujúci alias', \r
+'edit an existing host' => 'Upraviť existujúceho hosťa', \r
+'edit an existing lease' => 'Upraviť existujúce zapožičanie', \r
+'edit device' => 'Upraviť zariadenie', \r
+'edit hosts' => 'Upraviť počítače', \r
+'edit network' => 'Upraviť sieť', \r
+'edit service' => 'Upraviť službu', \r
+'eg' => 'napr.:', \r
+'empty' => 'Prázdny', \r
+'enable ignore filter' => 'Povoliť filter', \r
+'enable javascript' => 'Povoliť Javascript', \r
+'enable wildcards' => 'Povoliť zástupné znaky:', \r
+'enabled' => 'Povoliť:', \r
+'enabled on' => 'Povoliť pre', \r
+'enabledtitle' => 'povolené', \r
+'encapsulation' => 'Zhrnutie', \r
+'encrypted' => 'Šifrovaný', \r
+'end address' => 'Koncová adresa:', \r
+'err bk 1' => 'Nastala chyba pri vytváraní archívu.', \r
+'err bk 2 key' => 'Nastala chyba pri vytváraní súboru s kľúčom.', \r
+'err bk 3 tar' => 'Nastala chyba pri pridávaní súboru do archívu.', \r
+'err bk 4 gz' => 'Nastala chyba pri kompresii archívu.', \r
+'err bk 5 encrypt' => 'Nastala chyba pri šifrovaní archívu.', \r
+'err rs 1' => 'Nastala chyba pri obnove archívu.', \r
+'err rs 6 decrypt' => 'Nastala chyba pri dešifrovaní archívu.', \r
+'err rs 7 untartst' => 'Šifrovaný archív je poškodený.', \r
+'err rs 8 untar' => 'Nastala chyba pri rozbaľovaní archívu.', \r
+'error messages' => 'Chybové správy:', \r
+'esp encryption' => 'ESP šifrovanie:', \r
+'esp grouptype' => 'ESP typ skupiny:', \r
+'esp integrity' => 'ESP integrita:', \r
+'esp keylife' => 'ESP platnosť kľúča:', \r
+'esp keylife should be between 1 and 24 hours' => 'Hodnota ESP platnosti kľúča by mala byť medzi 1 až 24 hodinami.', \r
+'every' => 'Každých', \r
+'excluding buffers and cache' => '-/+  buffery/cache', \r
+'expected' => 'Predpokladaná', \r
+'expires' => 'Platnosť', \r
+'export' => 'Exportovať', \r
+'external access' => 'Externý prístup', \r
+'external access configuration' => 'Nastavenie externého prístupu', \r
+'external access rule added' => 'Bolo pridané pravidlo pre externý prístup. Reštartujem kontrolu prístupu.', \r
+'external access rule removed' => 'Bolo odobraté pravidlo pre externý prístup. Reštartujem kontrolu prístupu.', \r
+'external aliases configuration' => 'Nastavenie externých aliasov', \r
+'february' => 'Február', \r
+'fetch ip from' => 'Odhadnúť skutočnú verejnú IP adresu pomocou externého serveru', \r
+'filename' => 'Meno súboru', \r
+'filesystem full' => 'Súborový systém je plný.', \r
+'firewall' => 'Firewall', \r
+'firewall hits' => 'Celkový počet aktívnych záznamov firewallu pre', \r
+'firewall log' => 'Záznam firewallu', \r
+'firewall log viewer' => 'Prehliadač záznamov firewallu', \r
+'firewall logs' => 'Záznamy firewallu', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Nahrať firmware/ovládač', \r
+'fixed ip lease added' => 'Bolo pridané trvalé zapožičanie IP', \r
+'fixed ip lease modified' => 'Bolo zmenené trvalé zapožičanie IP', \r
+'fixed ip lease removed' => 'Bolo odstránené trvalé zapožičanie IP', \r
+'force update' => 'Vynútene aktualizovať', \r
+'forwarding rule added' => 'Bolo pridané pravidlo pre mapovanie portov. Reštartujem mapovanie portov.', \r
+'forwarding rule removed' => 'Bolo odobraté pravidlo pre mapovanie portov. Reštartujem mapovanie portov.', \r
+'forwarding rule updated' => 'Bolo zmenené pravidlo pre mapovanie portov. Reštartujem mapovanie portov.', \r
+'free' => 'Voľná', \r
+'free memory' => 'voľná pamäť', \r
+'free swap' => 'voľný swap', \r
+'friday' => 'Piatok', \r
+'fritzdsl help' => 'Pred použitím jedného z Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modemu, musíte nahrať ovládač. Stiahnite balíček s odpovedajúcou verziou pre IPCop z www stránok a nahrajte <b>fcdsl-(your_version).tgz</b> pomocou nasledujúceho formulára.', \r
+'fritzdsl upload' => 'Nahrať Fritz!DSL ovládač', \r
+'from' => 'Od', \r
+'gateway' => 'Brána', \r
+'gateway ip' => 'IP adresa brány', \r
+'generate a certificate' => 'Vygenerovať certifikát:', \r
+'generate root/host certificates' => 'Generovať koreňový/hostiteľský certifikát', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generovanie koreňového a hostiteľského certifikátu môže trvať dlho. Na staršom počítači to môže trvať až niekoľko minút. Buďte trpezlivý.', \r
+'global settings' => 'Hlavné nastavenia', \r
+'graph' => 'graf', \r
+'graph per' => 'Graf za', \r
+'green' => 'GREEN', \r
+'green interface' => 'GREEN rozhranie', \r
+'gui settings' => 'Nastavenie rozhrania', \r
+'gz with key' => ' Na tomto počítači môže byť obnovený iba šifrovaný archív.', \r
+'hangup' => 'Odpojiť', \r
+'hangup string' => 'Zavesiť:', \r
+'high' => 'Vysoká', \r
+'high memory usage' => 'Použitie hornej pamäti', \r
+'holdoff' => 'Doba oneskorenia (s)', \r
+'host' => 'Hostiteľ', \r
+'host certificate' => 'Hostiteľský certifikát', \r
+'host configuration' => 'Nastavenie hostiteľa', \r
+'host ip' => 'IP adresa počítača', \r
+'host to net vpn' => 'Virtuálna súkromná sieť (VPN) - Hosť-Sieť (RoadWarrior)', \r
+'hostname' => 'Meno počítača', \r
+'hostname and domain already in use' => 'Meno počítača a doména boli už použité.', \r
+'hostname cant be empty' => 'Nebol zadaný názov počítača.', \r
+'hostname not set' => 'Nebol nastavený názov počítača.', \r
+'hosts config added' => 'Bolo pridané nastavenie hostiteľov.', \r
+'hosts config changed' => 'Bolo zmenené nastavenie hostiteľov.', \r
+'hours' => 'hodín', \r
+'hours2' => 'Hodiny', \r
+'ibod for dual isdn only' => 'Používať šírku pásma podľa požiadavky (iBOD) je možné iba s dvojkanálovým ISDN.', \r
+'icmp selected but no type' => 'Bol vybraný ICMP protokol, ale nebol zvolený ICMP typ.', \r
+'icmp type' => 'ICMP typ', \r
+'id' => 'ID', \r
+'idle' => 'Nečinný', \r
+'idle cpu' => 'nečinnosť CPU', \r
+'idle cpu usage' => 'nečinnosť CPU', \r
+'idle timeout' => 'Odpojiť po (min; 0 - zakázať):', \r
+'idle timeout not set' => 'Nebolo nastavené odpojenie pri nečinnosti.', \r
+'ids log viewer' => 'Prehliadač záznamov systému detekcie vniknutia', \r
+'ids logs' => 'Zázmamy detekcie vniknutia', \r
+'ids rules license' => 'Pred použitím Sourcefire VRT certifikovaných pravidiel sa musíte zaregistrovať na', \r
+'ids rules license2' => 'Potvrďte licenciu a dostanete heslo pomocou e-mailu. Znovu sa pripojte na stránku. Choďte na', \r
+'ids rules license3' => 'stlačte \'Get Code\' tlačítko. V dolnej časti stránky nájdete 40 znakový Oink kód, ktorý zadajte do nasledujúceho poľa.', \r
+'ids rules update' => 'Aktualizovať pravidlá pre detekciu vniknutia', \r
+'iface' => 'Rozhr.', \r
+'ignore filter' => 'Nezobrazovať súbory typu', \r
+'ike encryption' => 'IKE šifrovanie:', \r
+'ike grouptype' => 'IKE typ skupiny:', \r
+'ike integrity' => 'IKE integrita:', \r
+'ike lifetime' => 'IKE platnosť:', \r
+'ike lifetime should be between 1 and 8 hours' => 'Hodnota IKE platnosti by mala byť medzi 1 až 8 hodinami.', \r
+'import' => 'Importovať', \r
+'in' => 'vstup', \r
+'incoming traffic in bytes per second' => 'prichádzajúca prevádzka', \r
+'info' => 'Info', \r
+'init string' => 'Inicializácia:', \r
+'insert floppy' => 'Ak chcete zálohovať systémové nastavenie na disketu, vložte naformátovanú disketu do mechaniky na IPCop-e a kliknite na <i>Zálohovať na disketu</i>". Prosím, overte či zálohovanie prebehlo v poriadku. Môže to chvíľu trvať, prosím buďte trpezlivý.<p>', \r
+'install new update' => 'Nainštalovať novú aktualizáciu:', \r
+'installed' => 'Nainštalované', \r
+'installed updates' => 'Nainštalované aktualizácie:', \r
+'instant update' => 'Ihneď nastaviť', \r
+'interface' => 'Rozhranie', \r
+'interfaces' => 'Rozhrania:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Detekcia vniknutia', \r
+'intrusion detection system' => 'Systém detekcie vniknutia', \r
+'intrusion detection system log viewer' => 'Prehliadač záznamov systému detekcie vniknutia', \r
+'intrusion detection system2' => 'Systém detekcie vniknutia:', \r
+'invalid broadcast ip' => 'Bola zadaná neplatná adresa všesmerového vysielania.', \r
+'invalid cache size' => 'Bola zadaná neplatná veľkosť cache.', \r
+'invalid characters found in pre-shared key' => 'Zdieľaný kľúč obsahuje neplatné znaky.', \r
+'invalid date entered' => 'Bol zadaný neplatný dátum.', \r
+'invalid default lease time' => 'Bol zadaný neplatný východzí čas zapožičania.', \r
+'invalid domain name' => 'Bolo zadané neplatné meno domény.', \r
+'invalid downlink speed' => 'Bola zadaná neplatná rýchlosť sťahovania.', \r
+'invalid end address' => 'Bola zadaná neplatná koncová adresa.', \r
+'invalid fixed ip address' => 'Bola zadaná neplatná pevná IP adresa.', \r
+'invalid fixed mac address' => 'Bola zadaná neplatná pevná MAC adresa.', \r
+'invalid hostname' => 'Bolo zadané neplatné meno počítača.', \r
+'invalid input' => 'Neplatný vstup', \r
+'invalid input for authentication method' => 'Neplatný vstup pre metódu overovania.', \r
+'invalid input for city' => 'Bol zadaný neplatný vstup - mesto.', \r
+'invalid input for country' => 'Bol zadaný neplatný vstup - krajina.', \r
+'invalid input for department' => 'Bol zadaný neplatný vstup - oddelenie.', \r
+'invalid input for e-mail address' => 'Bol zadaný neplatný vstup - e-mailová adresa.', \r
+'invalid input for esp keylife' => 'Bol zadaný neplatný vstup - ESP platnosť kľúča.', \r
+'invalid input for hostname' => 'Bol zadaný neplatný vstup - meno počítača.', \r
+'invalid input for ike lifetime' => 'Bol zadaný neplatný vstup - IKE platnosť.', \r
+'invalid input for name' => 'Bol zadaný neplatný vstup - úplné meno užívateľa alebo počítača.', \r
+'invalid input for oink code' => 'Bol zadaný neplatný Oink kód.', \r
+'invalid input for organization' => 'Bol zadaný neplatný vstup - organizácia.', \r
+'invalid input for remote host/ip' => 'Bol zadaný neplatný vstup - vzdialený hostiteľ/IP.', \r
+'invalid input for state or province' => 'Bol zadaný neplatný vstup - štát alebo provincia.', \r
+'invalid ip' => 'Bola zadaná neplatná IP Adresa', \r
+'invalid keep time' => 'Doba uchovávania záznamov musí byť platné číslo.', \r
+'invalid key' => 'Neplatný kľúč.', \r
+'invalid loaded file' => 'Nahraný súbor je poškodený.', \r
+'invalid local-remote id' => 'Pri použití, leftid a rightid nesmú byť rovnaké a musia začínať znakom "@".', \r
+'invalid logserver address' => 'Bola zadaná neplatná adresa záznamového serveru', \r
+'invalid max lease time' => 'Bol zadaný neplatný čas zapožičania.', \r
+'invalid maximum incoming size' => 'Bola zadaná neplatná maximálna prichádzajúca veľkosť.', \r
+'invalid maximum object size' => 'Bola zadaná neplatná maximálna veľkosť objektu.', \r
+'invalid maximum outgoing size' => 'Bola zadaná neplatná maximálna odchádzajúca veľkosť.', \r
+'invalid md5sum' => 'Chybný kontrolný súčet MD5.', \r
+'invalid minimum object size' => 'Bola zadaná neplatná minimálna veľkosť objektu.', \r
+'invalid netmask' => 'Bola zadaná neplatná sieťová maska.', \r
+'invalid port' => 'Bol zadaný neplatný port. Je nutné zadať platné číslo portu.', \r
+'invalid port list' => 'Syntax zoznamu portov je: port[,port]... kde port je uvedený v /etc/services alebo je číslo.', \r
+'invalid primary dns' => 'Bola zadaná neplatná adresa primárna DNS serveru.', \r
+'invalid primary ntp' => 'Bola zadaná neplatná adresa primárneho NTP serveru.', \r
+'invalid secondary dns' => 'Bola zadaná neplatná adresa sekundárna DNS serveru.', \r
+'invalid secondary ntp' => 'Bola zadaná neplatná adresa sekundárneho NTP serveru.', \r
+'invalid start address' => 'Bola zadaná neplatná počiatočná adresa.', \r
+'invalid time entered' => 'Bol zadaný neplatný čas.', \r
+'invalid time period' => 'Bola zadaná neplatná doba opakovania.', \r
+'invalid uplink speed' => 'Bola zadaná neplatná rýchlosť odosielania.', \r
+'invalid upstream proxy username or password setting' => 'Bolo zadané neplatné meno alebo heslo nadradenej proxy.', \r
+'invalid vpi vpci' => 'Bolo zadané neplatné nastavenie VPI/VPCI.', \r
+'invalid wins address' => 'Bola zadaná neplatná adresa WINS serveru.', \r
+'invert' => 'Obrátiť', \r
+'ip address' => 'IP adresa', \r
+'ip address in use' => 'IP adresa už bola použitá.', \r
+'ip address outside subnets' => 'Bola zadaná IP adresa mimo rozsahu lokálnej siete.', \r
+'ip alias added' => 'Bol pridaný externý IP alias.', \r
+'ip alias changed' => 'Bol zmenený externý IP alias.', \r
+'ip alias removed' => 'Bol odstránený externý IP alias.', \r
+'ip info' => 'IP Informácie', \r
+'ipcop has now rebooted' => 'IPCop sa reštartuje.', \r
+'ipcop has now shutdown' => 'IPCop sa vypína.', \r
+'ipcop side' => 'Strana IPCop-u:', \r
+'ipcop side is invalid' => 'Bola zadaná neplatná strana IPCop-u.', \r
+'ipcops hostname' => 'Meno počítača IPCop-u', \r
+'ipinfo' => 'Info o IP', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Doplňujúce nastavenie ISDN:', \r
+'isdn1' => 'Jednokanálové ISDN', \r
+'isdn2' => 'Dvojkanálové ISDN', \r
+'january' => 'Január', \r
+'javascript menu error1' => 'Ak nefunguje rozbalovacie menu, zakážte Javascript na', \r
+'javascript menu error2' => 'stránke.', \r
+'july' => 'Júl', \r
+'june' => 'Jún', \r
+'kernel' => 'Jadro', \r
+'kernel logging server' => 'Server záznamov jadra', \r
+'kernel version' => 'Verzia jadra:', \r
+'lan' => 'Sieť', \r
+'languagepurpose' => 'Vyberte jazyk, ktorý chcete používať:', \r
+'lease expires' => 'Zapožičanie uplynie', \r
+'legend' => 'Legenda', \r
+'line' => 'Linka', \r
+'loaded modules' => 'Zavedené moduly:', \r
+'local ntp server specified but not enabled' => 'Je uvedený lokálny NTP server, ktorý nie je povolený.', \r
+'local subnet' => 'Lokálna podsieť:', \r
+'local subnet is invalid' => 'Bola zadaná neplatná lokálna podsieť.', \r
+'local vpn hostname/ip' => 'Lokálny VPN hostiteľ/IP', \r
+'log' => 'Záznam:', \r
+'log enabled' => 'Povoliť záznam', \r
+'log lines per page' => 'Počet riadkov na stránku', \r
+'log server address' => 'Záznamový server:', \r
+'log settings' => 'Nastavenie záznamov', \r
+'log summaries' => 'Zhrnutie záznamov', \r
+'log summary' => 'Záznamy - súhrn', \r
+'log viewer' => 'Prehliadač záznamov', \r
+'log viewing options' => 'Nastavenie zobrazovania záznamov', \r
+'logging server' => 'Záznamový server', \r
+'loginlogout' => 'Prihlásiť/Odhlásiť', \r
+'lookup failed' => 'Reverzné vyhľadávanie bolo neúspešné', \r
+'low' => 'Nízka', \r
+'ls_dhcpd' => 'DHCP server:', \r
+'ls_disk space' => 'Diskový priestor:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP server:', \r
+'ls_init' => 'Inicializácia:', \r
+'ls_kernel' => 'Jadro a firewall:', \r
+'ls_modprobe' => 'Zavádzač modulov:', \r
+'ls_pam_unix' => 'Lokálne prihlásenie užívateľov:', \r
+'ls_sshd' => 'Vzdialené prihlásenie užívateľov:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'MAC adresa', \r
+'mac address in use' => 'MAC adresa už bola použitá.', \r
+'main page' => 'Hlavná stránka', \r
+'manual' => 'Ručné', \r
+'manual control and status' => 'Ručné ovládanie a stav:', \r
+'manually' => 'Ručne', \r
+'march' => 'Marec', \r
+'marked' => 'Označenie', \r
+'max incoming size' => 'Max. prichádzajúca veľkosť (KB):', \r
+'max lease time' => 'Max. čas zapožičania (min):', \r
+'max outgoing size' => 'Max. odchádzajúca veľkosť (KB):', \r
+'max renewal time' => 'Max. obnovovací čas', \r
+'max retries not set' => 'Nebol nastavený maximálny počet pokusov.', \r
+'max size' => 'Max. veľkosť objektu (KB):', \r
+'maximal' => 'max.', \r
+'maximum retries' => 'Maximálny počet pokusov:', \r
+'may' => 'Máj', \r
+'medium' => 'Stredná', \r
+'memory' => 'Pamäť:', \r
+'memory usage per' => 'Použitie pamäti za', \r
+'method' => 'Metóda:', \r
+'min size' => 'Min. veľkosť objektu (KB):', \r
+'minutes' => 'Minúty', \r
+'missing dat' => 'Nebol nájdený šifrovaný archív.', \r
+'missing gz' => 'Nebol nájdený nešifrovaný archív.', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Nastavenie modemu', \r
+'modem on com1' => 'Modem na COM1', \r
+'modem on com2' => 'Modem na COM2', \r
+'modem on com3' => 'Modem na COM3', \r
+'modem on com4' => 'Modem na COM4', \r
+'modem on com5' => 'Modem na COM5', \r
+'modem settings have errors' => 'V nastavení modemu sú chyby.', \r
+'modem speaker on' => 'Zapnúť reproduktor modemu:', \r
+'modulation' => 'Modulácia', \r
+'monday' => 'Pondelok', \r
+'month' => 'Mesiac', \r
+'months' => 'mesiacov', \r
+'mounted on' => 'Pripojený k', \r
+'name' => 'Meno', \r
+'name is invalid' => 'Bolo zadané neplatné meno.', \r
+'name must only contain characters' => 'Meno smie obsahovať iba znaky.', \r
+'name too long' => 'Bolo zadané príliš dlhé meno užívateľa alebo počítača.', \r
+'nat-traversal' => 'Nat Traversal:', \r
+'net' => 'Sieť', \r
+'net to net vpn' => 'Virtuálna súkromná sieť (VPN) - Sieť-Sieť', \r
+'netmask' => 'Sieťová maska', \r
+'network' => 'Sieť', \r
+'network added' => 'Bola pridaná užívateľská sieť.', \r
+'network configuration' => 'Nastavenie siete', \r
+'network removed' => 'Bola odobratá užívateľská sieť.', \r
+'network status information' => 'Informácia o stave siete', \r
+'network time' => 'Použiť NTP server:', \r
+'network time from' => 'Získať čas z NTP serveru', \r
+'network traffic graphs' => 'Graf sieťovej prevádzky', \r
+'network updated' => 'Bola aktualizovaná užívateľská sieť.', \r
+'networks settings' => 'Firewall - nastavenie siete', \r
+'new optionsfw later' => 'Vaša modifikácia bude aktívna až po ďalšom reštarte.', \r
+'new optionsfw must boot' => 'Musíte reštartovať IPCop.', \r
+'newer' => 'Novšie', \r
+'no' => 'Nie', \r
+'no alcatelusb firmware' => 'Nie je k dispozícii firmware pre Alcatel USB. Prosím nahrajte ho.', \r
+'no cfg upload' => 'Neboli nahraté žiadne údaje.', \r
+'no dhcp lease' => 'Nebolo možné získať DHCP zapožičanie.', \r
+'no eciadsl synch.bin file' => 'Nie je k dispozícii súbor ECI ADSL synch.bin. Prosím nahrajte ho.', \r
+'no fritzdsl driver' => 'Ovládač Fritz!DSL nie je k dispozícii. Prosím nahrajte ho.', \r
+'no information available' => ' Informácia nie je dostupná.', \r
+'no modem selected' => 'Nebol vybratý žiadny modem.', \r
+'no set selected' => 'Nebola vybratá žiadna sada.', \r
+'no time limit' => 'neobmedzení čas', \r
+'none found' => 'Neboli nájdené', \r
+'nonetworkname' => 'Nebolo zadané meno siete.', \r
+'noservicename' => 'Nebolo zadané meno služby.', \r
+'not a valid ca certificate' => 'Toto nie je platný CA certifikát.', \r
+'not enough disk space' => 'Nie je dostatok voľného miesta.', \r
+'not present' => '<b>Neprítomný</b>', \r
+'not running' => 'nespustený', \r
+'november' => 'November', \r
+'ntp configuration' => 'Nastavenie NTP', \r
+'ntp must be enabled to have clients' => 'NTP server musí byť povolený, aby mohol mať klientov.', \r
+'ntp server' => 'NTP server', \r
+'ntp syncro disabled' => 'Bola zakázaná synchronizácia s NTP serverom.', \r
+'ntp syncro enabled' => 'Bola povolená synchronizácia s NTP serverom.', \r
+'ntpd restarted' => 'Bol reštartovaný NTP server.', \r
+'number' => 'Počeť:', \r
+'october' => 'Október', \r
+'older' => 'Staršie', \r
+'online help en' => 'Online Help (v angličtine)', \r
+'only digits allowed in holdoff field' => 'V poli doba oneskorenia sú povolené iba čísla.', \r
+'only digits allowed in max retries field' => 'V poli maximálny počet pokusov sú povolené iba čísla.', \r
+'only digits allowed in the idle timeout' => 'V poli odpojiť po sú povolené iba čísla.', \r
+'only red' => 'Iba na RED', \r
+'open to all' => 'Povoliť externý prístup pre všetky IP adresy', \r
+'openssl produced an error' => 'OpenSSL spôsobilo chybu.', \r
+'options' => 'Možnosti', \r
+'options fw' => 'Možnosti firewallu', \r
+'optionsfw portlist hint' => 'Môžete priradiť maximálne 15 portov k jedenému protokolu. Porty v zozname portov sú oddelené čiarkou (napr. 137,138).', \r
+'optionsfw warning' => 'Zmena týchto volieb vyžaduje reštart firewallu.', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'Nebolo zadané meno organizácie.', \r
+'organization name' => 'Meno organizácie', \r
+'organization too long' => 'Zadané meno organizácie je príliš dlhé. Meno by nemalo byť dlhšie ako 60 znakov.', \r
+'original' => 'Pôvodná', \r
+'other countries' => 'Iná krajina', \r
+'other login script' => 'Iný prihlasovací skript', \r
+'out' => 'výstup', \r
+'outgoing traffic in bytes per second' => 'odchádzajúca prevádzka', \r
+'override mtu' => 'Potlačiť východziu hodnotu MTU', \r
+'package failed to install' => 'Zlyhala inštalácia balíčka.', \r
+'pap or chap' => 'PAP alebo CHAP', \r
+'password' => 'Heslo:', \r
+'password contains illegal characters' => 'Zadané heslo obsahuje neprípustné znaky.', \r
+'password not set' => 'Heslo nebolo nastavené.', \r
+'password too short' => 'Zadané heslo je príliš krátke.', \r
+'passwords do not match' => 'Heslá nesúhlasia.', \r
+'passwords must be at least 6 characters in length' => 'Heslá musia obsahovať minimálne 6 znakov.', \r
+'percentage' => 'Percento', \r
+'persistent' => 'Trvalé', \r
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
+'phase1 group' => 'Phase1 skupina', \r
+'phonebook entry' => 'Položka tel. zoznamu:', \r
+'ping disabled' => 'Zakázať odpovedať na ping', \r
+'pkcs12 file password' => 'Heslo PKCS12 súboru', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Nastavenie mapovania portov', \r
+'ports' => 'Porty', \r
+'pots' => 'Klasická alanógova linka', \r
+'ppp setup' => 'Nastavenie PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Doplňujúce nastavenia PPPoE:', \r
+'pptp settings' => 'Doplňujúce nastavenia PPTP:', \r
+'pre-shared key is too short' => 'Zdieľaný kľúč je príliš krátky.', \r
+'present' => 'Prítomný', \r
+'primary dns' => 'Primárny DNS server:', \r
+'primary ntp server' => 'Primárny NTP server', \r
+'primary wins server address' => 'Adresa primárneho WINS serveru', \r
+'priority' => 'Priorita', \r
+'profile' => 'Profil', \r
+'profile deleted' => 'Vymazaný profil: ', \r
+'profile has errors' => 'Profil obsahuje chyby.', \r
+'profile made current' => 'Aktívny profil: ', \r
+'profile name' => 'Meno profilu:', \r
+'profile name not given' => 'Nebolo zadané meno profilu.', \r
+'profile saved' => 'Uložené profily:', \r
+'profiles' => 'Profily:', \r
+'proto' => 'Protokol', \r
+'protocol' => 'Protokol', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Graf prístupov k proxy', \r
+'proxy log viewer' => 'Prehliadač záznamov proxy', \r
+'proxy logs' => 'Záznamy proxy', \r
+'proxy port' => 'Port proxy', \r
+'psk' => 'PSK', \r
+'pulse' => 'Pulzné', \r
+'pulse dial' => 'Pulzné vytáčanie:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'prečítané sektory', \r
+'reboot' => 'Reštartovať', \r
+'reboot schedule' => 'Plánované reštarty', \r
+'rebooting' => 'Reštartujem', \r
+'rebooting ipcop' => 'Reštartujem IPCop', \r
+'reconnection' => 'Opakované pripojenie', \r
+'references' => 'Odkazy', \r
+'refresh' => 'Obnoviť', \r
+'refresh index page while connected' => 'Obnovovať index.cgi stránku počas pripojenia', \r
+'refresh update list' => 'Aktualizovať zoznam aktualizácií', \r
+'registered user rules' => 'Sourcefire VRT pravidlá pre registrovaných užívateľov', \r
+'released' => 'Vydané', \r
+'remark' => 'Poznámka', \r
+'remark title' => 'Poznámka:', \r
+'remote access' => 'Vzdialený prístup', \r
+'remote host/ip' => 'Vzdialený hostiteľ/IP', \r
+'remote logging' => 'Vzdialené záznamy', \r
+'remote subnet' => 'Vzdialená podsieť:', \r
+'remote subnet is invalid' => 'Bola zadaná neplatná vzdialená sieť.', \r
+'remove' => 'Odobrať', \r
+'remove ca certificate' => 'Odobrať CA certifikát', \r
+'reserved dst port' => 'Cieľový port je rezervovaný výhradne pre IPCop:', \r
+'reserved src port' => 'Zdrojový port je rezervovaný výhradne pre IPCop:', \r
+'reset' => 'Resetovať', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Resetovanie VPN nastavenia má za následok odstránenie CA certifikátu, hostiteľského certifikátu a pripojenia na základe certifikátu.', \r
+'restart' => 'Reštart', \r
+'restore' => 'Obnoviť', \r
+'restore defaults' => 'Obnoviť východzie hodnoty', \r
+'restore hardware settings' => 'Obnoviť nastavenie hardwaru', \r
+'reverse sort' => 'Triediť v obrátenom chronologickom poradí', \r
+'root certificate' => 'Koreňový certifikát', \r
+'root path' => 'Cesta ku koreňovému adresáru', \r
+'router ip' => 'IP adresa smerovača:', \r
+'routing table entries' => 'Položky smerovacej tabuľky:', \r
+'rsvd dst port overlap' => 'Cieľový rozsah portov sa prekrýva s portom rezervovaným pre IPCop:', \r
+'rsvd src port overlap' => 'Zdrojový rozsah portov sa prekrýva s portom rezervovaným pre IPCop:', \r
+'rules already up to date' => 'Pravidlá sú aktuálne.', \r
+'running' => 'STUSTENÝ', \r
+'saturday' => 'Sobota', \r
+'save' => 'Uložiť', \r
+'save error' => 'Nie je možné uložiť súbor s archívom nastavenia.', \r
+'script name' => 'Meno skriptu:', \r
+'secondary dns' => 'Sekundárny DNS server:', \r
+'secondary ntp server' => 'Sekundárny NTP server', \r
+'secondary wins server address' => 'Adresa sekundárneho WINS serveru', \r
+'seconds' => 's', \r
+'section' => 'Sekcia', \r
+'sectors read from disk per second' => 'sektory prečítané z disku za sekundu', \r
+'sectors written to disk per second' => 'sektory zapísané na disk za sekundu', \r
+'secure shell server' => 'SSH server', \r
+'select' => 'Vybrať', \r
+'select dest net' => 'Vybrať cieľovú sieť.', \r
+'select source net' => 'Vyberte zdrojovú sieť. Ak nemáte nastavenú ORANGE alebo BLUE sieť, potom nepotrebujete DMZ trhliny.', \r
+'send cr' => 'ISP vyžaduje znak Carriage Return:', \r
+'september' => 'September', \r
+'serial' => 'Sériové', \r
+'service' => 'Služba', \r
+'service added' => 'Bola pridaná užívateľská sieťová služba.', \r
+'service name' => 'Meno služby:', \r
+'service removed' => 'Bola odobratá užívateľská sieťová služba.', \r
+'service updated' => 'Bola aktualizovaná užívateľská sieťová služba.', \r
+'servicename' => 'Meno služby', \r
+'services' => 'Služby:', \r
+'services settings' => 'Firewall - nastavenie služieb', \r
+'set time now' => 'Teraz nastaviť čas', \r
+'set time now help' => 'Na okamžitú synchronizáciu času (aj keď používate plánovač) stlačte tlačítko <i>Teraz nastaviť čas</i>. Môžete čakať päť minúť, alebo aj viac, pokiaľ sa synchronizácia uskutoční.', \r
+'settings' => 'Nastavenie', \r
+'shaping add options' => 'Pridať službu', \r
+'shaping list options' => 'Služba obmedzovania prevádzky', \r
+'shared' => 'zdieľaná', \r
+'shared memory' => 'zdieľaná pamäť', \r
+'show ca certificate' => 'Zobraziť CA certifikát', \r
+'show certificate' => 'Zobraziť certifikát', \r
+'show host certificate' => 'Zobraziť hostiteľský certifikát', \r
+'show root certificate' => 'Zobraziť koreňový certifikát', \r
+'shutdown' => 'Vypnúť', \r
+'shutdown control' => 'Ovládanie vypínania', \r
+'shutdown2' => 'Vypnúť:', \r
+'shutting down' => 'Vypínam', \r
+'shutting down ipcop' => 'IPCop sa vypína', \r
+'size' => 'Veľkosť', \r
+'snort hits' => 'Celkový počet aktivovaných pravidiel detekcie vniknutia pre', \r
+'sort ascending' => 'Zoradiť vzostupne', \r
+'sort descending' => 'Zoradiť zostupne', \r
+'sound' => 'Zvuk', \r
+'source' => 'Zdroj', \r
+'source ip' => 'Zdrojová IP', \r
+'source ip and port' => 'zdrojová IP:Port', \r
+'source ip bad' => 'Neplatná IP adresa alebo adresa siete.', \r
+'source ip in use' => 'Používaná zdrojová IP:', \r
+'source ip or net' => 'Zdrojová IP alebo sieť', \r
+'source net' => 'Zdrojová sieť', \r
+'source network' => 'Zdrojová IP alebo sieť (prázdne pre všetky):', \r
+'source port' => 'Zdrojový port', \r
+'source port in use' => 'Používaný zdrojový port:', \r
+'source port numbers' => 'Zdrojový post musí byť platné číslo portu alebo rozsah portov.', \r
+'source port overlaps' => 'Zdrojový port sa prekrýva s už definovaným rozsahom portom.', \r
+'speaker off' => 'Vypnúť reproduktor:', \r
+'speaker on' => 'Zapnúť reproduktor:', \r
+'squid extension methods' => 'Zoznam <tt>rozširujúcich metód</tt>', \r
+'squid extension methods invalid' => 'Zoznam \'rozširujúcich metód\' smie obsahovať iba slová s veľkými písmenami a číslami oddelené medzerou.', \r
+'src port' => 'Zdr. port', \r
+'srcprt range overlaps' => 'Zdrojový rozsah portov sa prekrýva s už definovaným portom.', \r
+'srcprt within existing' => 'Zdrojový port je vo vnútri definovaného rozsahu portov.', \r
+'ssdmz pinholes' => 'DMZ trhliny', \r
+'ssh access' => 'SSH prístup', \r
+'ssh fingerprint' => 'Otlačok', \r
+'ssh host keys' => 'SSH kľúče', \r
+'ssh is disabled' => 'SSH bolo zakázané. Zastavujem.', \r
+'ssh is enabled' => 'SSH bolo povolené. Reštartujem.', \r
+'ssh key' => 'Kľúč', \r
+'ssh key size' => 'Veľkosť (bitov)', \r
+'ssh keys' => 'Povoliť overenie pomocou verejného kľúča', \r
+'ssh no auth' => 'Nie je povolená žiadna z overovacích metód, nebude možné sa prihlásiť.', \r
+'ssh passwords' => 'Povoliť overenie pomocou hesla', \r
+'ssh portfw' => 'Povoliť presmerovanie TCP', \r
+'ssh1 disabled' => 'SSHv1 bola zakázaná, je potrebné použiť klienta verzie 2.', \r
+'ssh1 enabled' => 'SSHv1 je povolená, staré verzie klientov budú podporované.', \r
+'ssh1 support' => 'Podpora SSH protokolu verzie 1 (potrebná iba pre starých klientov)', \r
+'ssnetwork status' => 'Stav siete', \r
+'sspasswords' => 'Heslá', \r
+'ssport forwarding' => 'Presmerovať port', \r
+'ssproxy graphs' => 'Graf proxy', \r
+'sssystem status' => 'Stav systému', \r
+'sstraffic graphs' => 'Graf prevádzky', \r
+'standard login script' => 'Štandartný prihlasovací skript', \r
+'start address' => 'Počiatočná adresa:', \r
+'state or province' => 'Štát alebo provincia', \r
+'static ip' => 'Statická IP', \r
+'status' => 'Stav', \r
+'status information' => 'Informácia o stave', \r
+'stopped' => 'ZASTAVENÝ', \r
+'subject' => 'Predmet', \r
+'subnet is invalid' => 'Bola zadaná neplatná sieťová maska.', \r
+'subscripted user rules' => 'Sourcefire VRT predplatené pravidlá', \r
+'successfully refreshed updates list' => 'Zoznam aktualizácií bol úspešne obnovený.', \r
+'summaries kept' => 'Uchovať záznamy počas', \r
+'sunday' => 'Nedeľa', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Použitie swapu za', \r
+'system cpu' => 'použ. CPU - systém', \r
+'system cpu usage' => 'použitie CPU systémom', \r
+'system graphs' => 'Graf systému', \r
+'system log viewer' => 'Prehliadač systémových záznamov', \r
+'system logs' => 'Záznamy systému', \r
+'system status information' => 'Informácie o stave systému', \r
+'telephone not set' => 'Nebolo nastavené telefónne číslo.', \r
+'the following update was successfully installed' => 'Nasledujúce aktualizácie boli úspešne nainštalované.', \r
+'the statistics were last updated at' => 'Štatistika bola naposledy aktualizovaná', \r
+'there are updates' => 'Pre váš systém sú dostupné tieto aktualizácie. Pre viacej informácií prosím navštívte sekciu "Aktualizácie".', \r
+'there are updates available' => 'Pre váš systém sú dostupné tieto aktualizácie. Doporučujeme previesť aktualizáciu čo najskôr.', \r
+'there was no file upload' => 'Nebol nahratý žiadny súbor.', \r
+'this feature has been sponsored by' => 'Táto vlastnosť je sponzorovaná', \r
+'this field may be blank' => 'Toto pole môže byť prázdne.', \r
+'this is not a valid archive' => 'Tento archív nie je platný.', \r
+'this is not an authorised update' => 'Toto nie je autorizovaná aktualizácia.', \r
+'this update is already installed' => 'Táto aktualizácia je už nainštalovaná.', \r
+'thursday' => 'Štvrtok', \r
+'time' => 'Čas', \r
+'time date manually reset' => 'Bol ručne nastavený čas/dátum.', \r
+'time server' => 'NTP server', \r
+'timeout must be a number' => 'Timeout musí byť číslo.', \r
+'title' => 'Názov', \r
+'to' => 'Do', \r
+'to install an update' => 'Na inštaláciu aktualizácie prosím nahrajte súbor .tgz.gpg:', \r
+'toggle enable disable' => 'Povoliť alebo zakázať', \r
+'tone' => 'Tónový', \r
+'tone dial' => 'Tónové vytáčanie:', \r
+'total hits for log section' => 'Počet záznov pre sekciu', \r
+'traffic on' => 'Prevádzka na', \r
+'traffic shaping' => 'Obmedzovanie prevádzky', \r
+'traffic shaping settings' => 'Nastavenie obmedzovania prevádzky', \r
+'transfer limits' => 'Obmedzenie prenosu', \r
+'transparent on' => 'Transparentný na', \r
+'tuesday' => 'Utorok', \r
+'type' => 'Typ', \r
+'unable to alter profiles while red is active' => 'Nie je možné meniť profily pokiaľ je aktívne RED rozhranie.', \r
+'unable to contact' => 'Nie je možné nadviazať spojenie s', \r
+'unencrypted' => 'Nešifrovaný', \r
+'unknown' => 'NEZNÁMY', \r
+'unnamed' => 'Bezmenný', \r
+'update' => 'Aktualizovať', \r
+'update time' => 'Aktualizovať čas:', \r
+'update transcript' => 'Aktualizovať záznam', \r
+'updates' => 'Aktualizácie', \r
+'updates installed' => 'Nainštalované aktualizácie', \r
+'updates is old1' => 'Váš aktualizačný súbor je starý ', \r
+'updates is old2' => 'dní. Doporučujeme vám ho aktualizovať na stránke <b>Systém>Aktualizácie</b>.', \r
+'uplink speed' => 'Rýchlosť odosielania (kb/s)', \r
+'upload' => 'Nahrať', \r
+'upload a certificate' => 'Nahrať certifikát:', \r
+'upload a certificate request' => 'Nahrať žiadosť o certifikát:', \r
+'upload ca certificate' => 'Nahrať CA certifikát', \r
+'upload file' => 'Nahrať súbor', \r
+'upload p12 file' => 'Nahrať PKCS12 súbor', \r
+'upload successful' => 'Nahratie bolo úspešné.', \r
+'upload synch.bin' => 'Nahrať synch.bin', \r
+'upload update file' => 'Nahrať aktualizačný súbor:', \r
+'upstream password' => 'Heslo k nadradenej proxy:', \r
+'upstream proxy host:port' => 'Nadradená proxy (počíťač:port)', \r
+'upstream username' => 'Užív. meno pre nadradenú proxy:', \r
+'uptime and users' => 'Doba prevádzky a užívatelia:', \r
+'usb modem on acm0' => 'USM modem na ACM0', \r
+'usb modem on acm1' => 'USM modem na ACM1', \r
+'usb modem on acm2' => 'USM modem na ACM2', \r
+'usb modem on acm3' => 'USM modem na ACM3', \r
+'use' => 'Použiť', \r
+'use a pre-shared key' => 'Použiť zdieľaný kľúč:', \r
+'use dov' => 'Používať hlasové data (Data Over Voice):', \r
+'use ibod' => 'Používať šírku pásma podľa požiadavky (iBOD):', \r
+'use ipcop red ip' => 'Tradičná RED IP adresa použitá IPCop-om počas pripojenia', \r
+'use only proposed settings' => 'Použiť iba navrhované nastavenia', \r
+'used' => 'Použitá', \r
+'used memory' => 'použitá pamäť', \r
+'used swap' => 'použitý swap', \r
+'user cpu' => 'použ. CPU - užívateľ', \r
+'user cpu usage' => 'použitie CPU užívateľom', \r
+'username' => 'Užívateľ:', \r
+'username not set' => 'Nebolo zadané užívateľské meno.', \r
+'users department' => 'Oddelenie užívateľa', \r
+'users email' => 'Užívateľová e-mailová adresa', \r
+'users fullname or system hostname' => 'Úplné meno užívateľa alebo meno počítača', \r
+'valid root certificate already exists' => 'Existuje už platný koreňový certifikát.', \r
+'vci number' => 'Hodnota VCI:', \r
+'virtual private networking' => 'Virtuálna súkromná sieť (VPN)', \r
+'vpi number' => 'Hodnota VPI:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'Nastavenie VPN - Hlavné', \r
+'vpn delayed start' => 'Odložiť spustenie VPN (s)', \r
+'vpn delayed start help' => 'Ak je to treba, toto odloženie spustenia VPN môže byť použité na správnu aktualizáciu dynamickej DNS. Ak RED rozhranie má dynamickú IP adresu, 60 sekúnd je doporučená hodnota.', \r
+'vpn mtu invalid' => 'Hodnota MTU musí byť číslo!', \r
+'vpn on blue' => 'VPN na BLUE rozhraní', \r
+'waiting to synchronize clock' => 'Čakám na synchronizáciu času.', \r
+'warning messages' => 'Varovné správy', \r
+'web hits' => 'Celkový počet www stránok odpovedajúcich zvoleným kritériám pre', \r
+'web proxy' => 'Webová proxy', \r
+'web proxy configuration' => 'Nastavenie webovej proxy', \r
+'web server' => 'Webový server', \r
+'website' => 'WWW stránka', \r
+'wednesday' => 'Streda', \r
+'week' => 'Týždeň', \r
+'weeks' => 'týždňov', \r
+'wildcards' => 'Zástupné znaky', \r
+'wireless' => 'Wireless', \r
+'wireless config added' => 'Bolo pridané nastavenie wireless.', \r
+'wireless config changed' => 'Bolo zmenené nastavenie wirelles.', \r
+'wireless configuration' => 'Nastavenie wirelees', \r
+'written sectors' => 'zapísané sektory', \r
+'xtaccess all error' => 'Nemôžete nastaviť externý prístup na VŠETKY, toto sa nastavuje v mapovaní portov.', \r
+'year' => 'Rok', \r
+'yes' => 'Áno', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Smiete nastaviť iba jedno Roadwarrior pripojenie keď používate zdieľaný overovací kľúč.<br />Buď už máte Roadwarrior pripojenie s zdieľaným overovacím kľúčom, alebo ho sa pokúšate teraz pridať.', \r
+'your department' => 'Vaše oddelenie', \r
+'your e-mail' => 'Vaša e-mailová adresa', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/sk/install/CVS/Entries b/langs/sk/install/CVS/Entries
new file mode 100644 (file)
index 0000000..20aaa36
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_sk.c/1.1.2.6/Thu Dec 22 13:21:45 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/sk/install/CVS/Repository b/langs/sk/install/CVS/Repository
new file mode 100644 (file)
index 0000000..802fa98
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/sk/install
diff --git a/langs/sk/install/CVS/Root b/langs/sk/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/sk/install/CVS/Tag b/langs/sk/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/sk/install/lang_sk.c b/langs/sk/install/lang_sk.c
new file mode 100644 (file)
index 0000000..78f37ad
--- /dev/null
@@ -0,0 +1,507 @@
+/*\r
+ * Slovak  (sk) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2005 Drlik Zbynek, Miloš Mráz \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *sk_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Nastavenie adries",\r
+/* TR_ADMIN_PASSWORD */\r
+"Heslo užívateľa 'admin'",\r
+/* TR_AGAIN_PROMPT */\r
+"Znovu:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Všetky karty boli úspešne priradené.",\r
+/* TR_AUTODETECT */\r
+"* AUTODETEKCIA *",\r
+/* TR_BUILDING_INITRD */\r
+"Vytváram INITRD ...",\r
+/* TR_CANCEL */\r
+"Zrušiť",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Priraďovanie kariet",\r
+/* TR_CHECKING */\r
+"Kontrolujem URL ...",\r
+/* TR_CHECKING_FOR */\r
+"Kontrola: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Vyberte v tomto počítači nainštalovanú ISDN kartu.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Vyberte požadovaný ISDN protokol.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Zadajte požadované informácie pre nastavenie DHCP serveru.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Nastavenie siete",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Teraz je nutné nastaviť pripojenie k sieti a to najprv zavedením odpovedajúceho ovládača pre GREEN rozhranie. Ten je možné určiť pomocou automatického vyhľadania sieťovej karty alebo vybraním tohoto ovládača zo zoznamu. Ak máte nainštalovaných viacej sieťových kariet, tie budete môcť nastaviť neskoršie počas inštalácie. Pokiaľ máte ďalšie karty rovnakého typu ako je karta GREEN rozhrania a každá z nich vyžaduje zvláštne parametre modulu, mali by ste tieto parametre zadať pre všetky karty príslušného typu tak, aby mohli byť aktivované po nastavení GREEN rozhrania.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Nastavte sieťové ovládače a priraďte karty príslušným rozhraniam. Aktuálna konfigurácia je nasledovná:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Nastavte CD-ROM výberom odpovedajúcej IO adresy a/alebo IRQ.",\r
+/* TR_CONGRATULATIONS */\r
+"Blahoželám!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"Inštalácia %s-u bola úspešne dokončená. Prosím vyberte všetky diskety a CD-ROM, ktoré sú v mechanikách počítača. Ak systém nenaštartuje správne, prosím skúste naštartovať z DOS diskiet a zadať príkaz 'fdisk /mbr' k znovuvytvoreniu Master Boot Record-u. Bude spustený setup a budete môcť nastaviť IDSN, sieťové karty a systémové heslá. Po úspešnom ukončení setup-u, budete sa môcť pripojiť pomocou prehliadača na adrese http://%s:81 alebo https://%s:445 (alebo meno vašeho %s-u), nastavte vytáčané pripojenie (ak je treba) a vzdialený prístup. Pokiaľ chcete užívateľom umožniť ovládať pripojenie, nezabudnite nastaviť heslo pre užívateľa 'dial'.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Váš pevný disk je veľmi malý, ale je možné pokračovať bez swap oddielu. (Túto možnosť použite len s opatrnosťou).",\r
+/* TR_CURRENT_CONFIG */\r
+"Aktuálne nastavenie: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Východzia brána:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Východzia brána\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Východzí čas zapožičania (min):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Východzí čas zapožičania\n",\r
+/* TR_DETECTED */\r
+"Nájdený: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Meno DHCP serveru:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Meno DHCP serveru\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Nastavenie DHCP serveru",\r
+/* TR_DISABLED */\r
+"zakázané",\r
+/* TR_DISABLE_ISDN */\r
+"Zakázať ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"Váš pevný disk je veľmi malý.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Nastavenie DNS a brány",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Zadajte údaje o DNS a bráne. Tieto nastavenia sa používajú iba ak je zakázané DHCP na RED rozhraní.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Vaše nastavenie nepoužíva sieťový adaptér pre RED rozhranie. Údaje o DNS a bráne pre dialup užívateľa sa nastavujú automaticky v okamžiku vytočenia.",\r
+/* TR_DOMAINNAME */\r
+"Meno domény",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Nebolo zadané meno domény.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Meno domény nesmie obsahovať medzery.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Meno domény smie obsahovať iba písmená, čísla, pomlčky a bodky.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Prípona mena domény:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Prípona mena domény\n",\r
+/* TR_DONE */\r
+"Hotovo",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nChcete zmeniť tieto nastavenia?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Priradenie ovládačov a kariet",\r
+/* TR_ENABLED */\r
+"Povoliť",\r
+/* TR_ENABLE_ISDN */\r
+"Povoliť ISDN",\r
+/* TR_END_ADDRESS */\r
+"Koncová adresa:",\r
+/* TR_END_ADDRESS_CR */\r
+"Koncová adresa\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Niektoré ISDN karty (najmä ISA) môžu vyžadovať upresňujúce parametre modulu pre nastavenie údajov o IRQ a adrese IO portu. Ak máte takúto ISDN kartu, zadajte sem príslušné parametre. Napríklad: \"io=0x280 irq=9\". Tie budú použité pri detekcii karty.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Zadajte heslo 'admin' užívateľa %s-u. Tento účet slúži na prihlasovanie sa k webovému rozhraniu %s-u.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Zadajte meno domény.",\r
+/* TR_ENTER_HOSTNAME */\r
+"Zadajte meno počítača.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Zadajte IP adresu",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Nepodarilo sa automaticky detekovať sieťovú kartu. Zadajte ovládač a voliteľné parametre pre sieťovú kartu.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Zadajte heslo 'root' užívateľa IPCop-u. Tento účet slúži na prihlasovanie sa k príkazovému riadku IPCop-u.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Zadajte heslo 'setup' užívateľa. Tento účet slúži na prihlasovanie sa k programu setup.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Zadajte IP adresu %s rozhrania.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Zadajte vaše telefónne číslo (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Zadajte cestu (URL) k súborom ipcop-<verzia>.tgz a images/scsidrv-<verzia>.img. Pozor: DNS nie je dostupná! Cesta má mať tvar http://X.X.X.X/<adresár>",\r
+/* TR_ERROR */\r
+"Chyba",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Nastala chyba pri zápise údajov o nastavení.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Rozbaľujem moduly ...",\r
+/* TR_FAILED_TO_FIND */\r
+"Nepodarilo sa nájsť súbor na zadanej URL.",\r
+/* TR_FOUND_NIC */\r
+"%s našiel vo vašom počítači nasledujúcu sieťovú kartu: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"German 1TR6",\r
+/* TR_HELPLINE */\r
+"            <Tab>/<Alt-Tab> pre prepnutie  |  <Medzera> pre výber",\r
+/* TR_HOSTNAME */\r
+"Meno počítača",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Nebolo zadané meno počítača.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Meno počítača nesmie obsahovať medzery.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Meno počítača smie obsahovať iba písmená, čísla, pomlčky.",\r
+/* TR_INITIALISING_ISDN */\r
+"Inicializujem ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Prosím vložte %s CD do CD-ROM mechaniky.",\r
+/* TR_INSERT_FLOPPY */\r
+"Prosím vložte %s disketu s ovládačmi do disketovej mechaniky.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Inštalácia bola zrušená.",\r
+/* TR_INSTALLING_FILES */\r
+"Inštalujem súbory ...",\r
+/* TR_INSTALLING_GRUB */\r
+"Inštalujem GRUB ...",\r
+/* TR_INTERFACE */\r
+"%s rozhranie",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Nepodarilo sa spustiť rozhranie.",\r
+/* TR_INVALID_FIELDS */\r
+"Nasledujúce polia sú chybne vyplnené:\n\n",\r
+/* TR_INVALID_IO */\r
+"Zadané údaje o IO porte sú chybné. ",\r
+/* TR_INVALID_IRQ */\r
+"Zadané údaje o IRQ sú chybné.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP adresa\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP adresa:",\r
+/* TR_ISDN_CARD */\r
+"ISDN karta",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"Nebola detekovaná ISDN karta. Ak sa jedná o kartu typu ISA alebo kartu, ktorá má zvláštne požiadavky, zrejme bude nutné zadať upresňujúce parametre modulu.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Výber ISDN karty",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Nastavenie ISDN",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Menu pre nastavenie ISDN",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN nie je nastavené. Niektoré položky neboli vybrané.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"Zatiaľ nie je ISDN nastavené. Vyberte položku, ktorú chcete nastaviť.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Výber ISDN protokolu",\r
+/* TR_ISDN_STATUS */\r
+"Aktuálne nastavenie ISDN - %s.\n\n Protokol: %s\n Karta: %s\n Vaše telefónne číslo: %s\n\nVyberte položku, ktorú chcete zmeniť, alebo použite aktuálne nastavenie.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Rozloženie klávesnice",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Vyberte typ klávesnice z nižšie uvedeného zoznamu.",\r
+/* TR_LEASED_LINE */\r
+"Pevná linka",\r
+/* TR_LOADING_MODULE */\r
+"Zavádzam modul ...",\r
+/* TR_LOADING_PCMCIA */\r
+"Zavádzam PCMCIA moduly ...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Vyhľadávam: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Vytváram súborový systém /boot ...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Vytváram súborový systém /log ...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Vytváram koreňový súborový systém / ...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Vytváram swap oddiel ...",\r
+/* TR_MANUAL */\r
+"* RUČNE *",\r
+/* TR_MAX_LEASE */\r
+"Maximálny čas zapožičania (min):",\r
+/* TR_MAX_LEASE_CR */\r
+"Max. čas zapožičania\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Nebola zadaná IP adresa BLUE rozhrania.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Nebola zadaná IP adresa ORANGE rozhrania.",\r
+/* TR_MISSING_RED_IP */\r
+"Nebola zadaná IP adresa RED rozhrania.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Nebolo zadané meno modulu.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Zadajte meno modulu a požadované parametre ovládača.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Pripájam súborový systém /boot ...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Pripájam súborový systém /log ...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Pripájam koreňový súborový systém / ...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Pripájam swap oddiel ...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Vaše telefónne číslo (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Sieťová maska:",\r
+/* TR_NETWORKING */\r
+"Siete",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Sieťová adresa\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Sieťová adresa:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Menu pre nastavenie siete",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Typ nastavenia siete",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Z nasledujúceho zoznamu typov nastavení siete vyberte nastavenie pre %s. Pokiaľ nastavenie zmeníte, bude nutné sieť reštartovať a tiež znovu priradiť sieťové ovládače k rozhraniam.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Sieťová maska\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Nepodarilo sa nastaviť sieť.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Nebol priradený dostatočný počet kariet.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Nebolo priradené žiadne BLUE rozhranie.",\r
+/* TR_NO_CDROM */\r
+"Nebola nájdená žiadna CD-ROM mechanika.",\r
+/* TR_NO_HARDDISK */\r
+"Nebol nájdený žiadny pevný disk.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Nebol nájdený ipcop tarball na www serveri.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Nebolo priradené žiadne ORANGE rozhranie.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Nebolo priradené žiadne RED rozhranie.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Nebol nájdený SCSI obraz na www serveri.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Neostávajú žiadne nepriradené karty, pričom sa vyžadujú ďalšie. K ich vyhľadaniu môžete použiť autodetekciu, alebo zvoliť odpovedajúci ovládač zo zoznamu.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Rozdeľujem disk ...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Heslá nesúhlasia.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Nebolo zadané heslo.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Heslo nesmie obsahovať medzery.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Heslo:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Nebolo zadané telefónne číslo.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Inštalačný program teraz pripraví pevný disk %s. Disk bude najprv rozdelený na oddiely, na ktorých bude vytvorený súborový systém.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Na reštartovanie stlačte Ok.",\r
+/* TR_PRIMARY_DNS */\r
+"Primárny DNS server:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Primárny DNS server\n",\r
+/* TR_PROBE */\r
+"Detekovať",\r
+/* TR_PROBE_FAILED */\r
+"Nepodarila sa automatická detekcia.",\r
+/* TR_PROBING_SCSI */\r
+"Detekujem SCSI zariadenia ...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Nastal problém pri nastavovaní hesla užívateľa %s 'admin'.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Nastal problém pri nastavovaní hesla užívateľa 'root'.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Nastal problém pri nastavovaní hesla užívateľa 'setup'.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protokol/Krajina",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Spúšťam sieť ...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Zastavujem sieť ...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Zastavujem vzdialenú sieť ...",\r
+/* TR_QUIT */\r
+"Skončiť",\r
+/* TR_RED_IN_USE */\r
+"ISDN (alebo iné externé pripojenie) sa práve používa. Nie je možné nastaviť IDSN pokiaľ je aktívne RED rozhranie.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nPo dokončení nastavenia je nutné reštartovať sieť.",\r
+/* TR_RESTORE */\r
+"Obnoviť",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Ak máte disketu zo zálohou systémového nastavenia %s-u, vložte ju do disketovej mechaniky a stlačte tlačítko Obnoviť.",\r
+/* TR_ROOT_PASSWORD */\r
+"Heslo užívateľa 'root'",\r
+/* TR_SECONDARY_DNS */\r
+"Sekundárny DNS server:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Sekundárny DNS server\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Sekundárny DNS server je uvedený bez zadania primárneho DNS serveru.",\r
+/* TR_SECTION_MENU */\r
+"Menu",\r
+/* TR_SELECT */\r
+"Vybrať",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Vyberte typ CD-ROM",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"V tomto počítači nebola nájdená žiadna CD-ROM mechanika. Prosím vyberte, ktorý z týchto ovládačov chcete použiť, aby %s mohol získať prístup k CD-ROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Vyberte inštalačné médium",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s je možné nainštalovať z rôznych zdrojov. Najjednoduchšie je použiť CD-ROM mechaniku počítača. Ak nie je k dispozícii, je možné inštalovať pomocou iného počítača v sieti LAN, ktorý poskytuje inštalačné súbory prostredníctvom HTTP protokolu. V tomto prípade je nutné vytvoriť sieťovú inštalačnú disketu.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Vyberte sieťový ovládač",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Zvoľte ovládač sieťovej karty nainštalovanej v tomto počítači. Pokiaľ vyberiete možnosť RUČNE, budete môcť zadať meno ovládača a tiež parametre ovládača pre karty zo zvláštnymi požiadavkami, napr. ISA karty.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Vyberte rozhranie, ktoré chcete znovu nastaviť.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Vyberte položku, ktorú chcete nastaviť.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Nastavujem heslo %s užívateľa 'admin' ...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Nastavujem heslo užívateľa 'root' ...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Nastavujem heslo užívateľa 'setup' ...",\r
+/* TR_SETUP_FINISHED */\r
+"Inštalácia bola úspešne dokončená. Stlačení tlačítka Ok reštartujete počítač.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Počiatočné nastavenie nebolo úplne dokončené. Je bezpodmienečne nutné zaistiť jeho správne dokončenie opätovným spustením programu setup z príkazového riadku.",\r
+/* TR_SETUP_PASSWORD */\r
+"Heslo užívateľa 'setup'",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Nastavenie doplňujúcich parametrov modulu",\r
+/* TR_SINGLE_GREEN */\r
+"Vaše nastavenie má iba GREEN rozhranie.",\r
+/* TR_SKIP */\r
+"Preskočiť",\r
+/* TR_START_ADDRESS */\r
+"Počiatočná adresa:",\r
+/* TR_START_ADDRESS_CR */\r
+"Počiatočná adresa\n",\r
+/* TR_STATIC */\r
+"Statická",\r
+/* TR_SUGGEST_IO */\r
+"(navrhujem %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(navrhujem %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Tento ovládač je už zavedený.",\r
+/* TR_TIMEZONE */\r
+"Časové pásmo",\r
+/* TR_TIMEZONE_LONG */\r
+"Vyberte časové pásmo, v ktorom sa nachádzate, z nasledujúceho zoznamu.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Nie je možné vysunúť CD-ROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Nie je možné rozbaliť moduly.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Nie je možné nájsť akékoľvek ďalšie ovládače.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Nie je možné v tomto počítači nájsť ISDN kartu. Je treba špecifikovať ďalšie parametre, pokiaľ je karta typu ISA alebo má zvláštne požiadavky.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Nie je možné inicializovať ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Nie je možné nainštalovať súbory.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Nie je možné nainštalovať GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Nie je možné zaviesť modul ovládača.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Nie je možné vytvoriť súborový systém /boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Nie je možné vytvoriť súborový systém /log.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Nie je možné vytvoriť koreňový súborový systém /.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Nie je možné vytvoriť swap oddiel.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Nie je možné vytvoriť symbolický odkaz /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Nie je možné vytvoriť symbolický odkaz /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Nie je možné vytvoriť symbolický odkaz /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Nie je možné vytvoriť symbolický odkaz /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Nie je možné vytvoriť symbolický odkaz /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Nie je možné vytvoriť symbolický odkaz /dev/root",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Nie je možné pripojiť súborový systém /boot",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Nie je možné pripojiť súborový systém /log",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Nie je možné pripojiť súborový systém /proc",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Nie je možné pripojiť koreňový súborový systém /.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Nie je možné pripojiť swap oddiel.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Nie je možné otvoriť súbor 'hosts'.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Nie je možné otvoriť súbor nastavenia",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Nie je možné rozdeliť disk.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Nie je možné odstrániť stiahnuté dočasné súbory.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Nie je možné nastaviť meno počítača.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Nie je možné odpojiť CD-ROM/disketu.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Nie je možné odpojiť pevný disk.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Nie je možné zapísať do súboru /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Nie je možné zapísať do súboru /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Nie je možné zapísať do súboru /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Nie je možné zapísať do súboru /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Nie je možné zapísať do súboru /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Nie je možné zapísať do súboru %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Nie je možné zapísať do súboru %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Nie je možné zapísať do súboru %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Zatiaľ nie je priradená sieťová karta typu:\n%s\n\nMôžete ju priradiť rozhraniu:",\r
+/* TR_UNKNOWN */\r
+"NEZNÁMY",\r
+/* TR_UNSET */\r
+"NENASTAVENÉ",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"USB kľúč je poškodený (nebola nájdená vfat partícia).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"Varovanie",\r
+/* TR_WARNING_LONG */\r
+"Ak zmeníte túto IP adresu a ste prihlásení prostredníctvom vzdialeného prístupu, vaše spojenie s %s bude prerušené a budete sa musieť znovu pripojiť k novej IP adrese. Jedná sa o riskantnú operáciu, o ktorú by ste sa mali pokúsiť iba vtedy, pokiaľ máte fyzický prístup k počítaču, pre prípad, že by sa operácia nepodarila.",\r
+/* TR_WELCOME */\r
+"Vítajte v inštalačnom programe %s-u. Voľbou Zrušiť na ľubovoľnej nasledujúcej obrazovke reštartujete počítač.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Vaše nastavenie má iba GREEN rozhranie s už priradeným ovládačom.",\r
+}; \r
+  \r
diff --git a/langs/sl/CVS/Entries b/langs/sl/CVS/Entries
new file mode 100644 (file)
index 0000000..9030d32
--- /dev/null
@@ -0,0 +1 @@
+D/cgi-bin////
diff --git a/langs/sl/CVS/Repository b/langs/sl/CVS/Repository
new file mode 100644 (file)
index 0000000..9bae56c
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/sl
diff --git a/langs/sl/CVS/Root b/langs/sl/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/sl/CVS/Tag b/langs/sl/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/sl/cgi-bin/CVS/Entries b/langs/sl/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..d869eb5
--- /dev/null
@@ -0,0 +1,2 @@
+/sl.pl/1.1.2.2/Tue May 17 10:45:09 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/sl/cgi-bin/CVS/Repository b/langs/sl/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..074f01b
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/sl/cgi-bin
diff --git a/langs/sl/cgi-bin/CVS/Root b/langs/sl/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/sl/cgi-bin/CVS/Tag b/langs/sl/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/sl/cgi-bin/sl.pl b/langs/sl/cgi-bin/sl.pl
new file mode 100644 (file)
index 0000000..45d5fa6
--- /dev/null
@@ -0,0 +1,468 @@
+# Slovenian  (sl) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2005 Gregor Varl, Miha Martinec \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'CA certifikat s tem imenom že obstaja.', \r
+'a connection with this common name already exists' => 'Povezava s tem imenom že obstaja.', \r
+'a connection with this name already exists' => 'Povezava s tem imenom že obstaja.', \r
+'access allowed' => 'Dostop dovoljen:', \r
+'access refused with this oinkcode' => 'Dostop zavrnjen s to naročniško številko', \r
+'action' => 'Možnosti', \r
+'add' => 'Dodaj', \r
+'add a host' => 'Dodaj gostitelja:', \r
+'add a new rule' => 'Dodaj novo pravilo:', \r
+'add network' => 'Dodaj omrežje', \r
+'add new alias' => 'dodaj nov alias', \r
+'add service' => 'Dodaj storitev', \r
+'add xtaccess' => 'Dodaj zunanji dostop', \r
+'admin user password has been changed' => 'Geslo upravitelja je spremenjeno.', \r
+'administrator user password' => 'Geslo upravitelja:', \r
+'adsl settings' => 'ADSLL nastavitve', \r
+'advanced' => 'Napredno', \r
+'again' => 'Potrdi geslo:', \r
+'alcatelusb help' => 'Za uporabo Speedtouch 330 ali Speedtouch USB modema morate naložiti firmware na IPCopov disk. Prosimo snemite <b>uradne firmware</b> pakete za SpeedTouch 330 iz speedtouch.com, jih odpakirajte in nato naložite ustrezne (KQD6_3.xxx za Rev<4 ali ZZZL_3.xxx za Rev=4) datoteke s pomočjo spodnjega obrazca.', \r
+'alcatelusb upload' => 'Naloži Speedtouch USB Firmware', \r
+'aliases' => 'Psevdonimi', \r
+'aliases not active' => 'Psevdonimi ne bodo aktivni dokler RDEČE področje ni STATIČNO', \r
+'all updates installed' => 'Vsi popravki so nameščeni', \r
+'alt dialup' => 'Klicni dostop', \r
+'alt home' => 'Domov', \r
+'alt information' => 'Informacije', \r
+'alt logs' => 'Dnevniki', \r
+'alt services' => 'Storitve', \r
+'alt system' => 'Sistem', \r
+'alt vpn' => 'VPN', \r
+'april' => 'April', \r
+'archive not exist' => 'Arhiv nastavitev ne obstaja', \r
+'are you sure' => 'Ste prepričani?', \r
+'arp table entries' => 'ARP vnosi:', \r
+'august' => 'Avgust', \r
+'authentication' => 'Identifikacija:', \r
+'automatic' => 'Samodejno', \r
+'available updates' => 'Popravki na voljo:', \r
+'average' => 'Povprečno:', \r
+'avoid dod' => 'Ne uporabite te možnosti ko uporabljate Klic na Zahtevo! Ta možnost se uporablja predvsem ko je IPCop za usmerjevalnikom. Vaš RDEČ IP naslov mora biti znotraj enega od treh rezerviranih območij: 10/8, 172.16/12, 192.168/16', \r
+'back' => 'NAZAJ', \r
+'backup' => 'Arhiv nastavitev', \r
+'backup config floppy' => 'Ustvari varnostno kopijo nastavitev na disketo', \r
+'backup configuration' => 'Ustvari varnostno kopijo nastavitev', \r
+'backup sets' => 'Varnostne kopije', \r
+'backup to floppy' => 'Ustvari varnostno kopijo na disketo', \r
+'backupprofile' => 'V primeru neuspele povezave preklopi na profil', \r
+'bad characters in script field' => 'Nedovoljen znak v polju Skripta', \r
+'bad characters in the telephone number field' => 'Nedovoljen znak v polju Telefonska številka', \r
+'bad destination range' => 'Razpon Ciljnih vrat ima prvo vrednost večjo ali enako drugi vrednosti', \r
+'beep when ppp connects or disconnects' => 'Ustvari pisk ko se IPCop poveže oziroma prekine povezavo', \r
+'behind a proxy' => 'Za spletnim posrednikom:', \r
+'blue' => 'MODRO', \r
+'broadcast' => 'broadcast', \r
+'bytes per second' => 'Bajtov na Sekundo', \r
+'ca certificate' => 'CA Certifikat', \r
+'ca name' => 'CA Ime', \r
+'cancel' => 'Prekliči', \r
+'cannot enable ntp without specifying primary' => 'Ni možno vključiti NTP brez nastavitve primarnega strežnika.', \r
+'cannot specify secondary dns without specifying primary' => 'Ni možno nastaviti sekundarnega DNS strežnika brez primarnega.', \r
+'cannot specify secondary ntp without specifying primary' => 'Ni možno nastaviti sekundarnega NTP strežnika brez primarnega.', \r
+'cannot specify secondary wins without specifying primary' => 'Ni možno nastaviti sekundarnega WINS strežnika brez primarnega.', \r
+'cant change certificates' => 'Zamenjava certifikatov ni mogoča.', \r
+'cant start openssl' => 'Nemorem zagnati OpenSSL-a', \r
+'caps all' => 'VSI', \r
+'capsclosed' => 'ZAPRTO', \r
+'capsopen' => 'ODPRTO', \r
+'capswarning' => 'POZOR', \r
+'cert' => 'Certifikat', \r
+'certificate' => 'Certifikat', \r
+'certificate authorities' => 'Certifikati', \r
+'certificate does not have a valid ca associated with it' => 'Za ta Certifikat ni veljavnega root CA certifikata', \r
+'cfg restart' => 'Po končanem nalaganju nastavitev priporočamo ponoven zagon sistema.', \r
+'change passwords' => 'Zamenjaj gesla', \r
+'city' => 'Mesto', \r
+'clear cache' => 'Pobriši pomnilnik', \r
+'clenabled' => 'Postavi lokalni NTP strežnik (dovoli uporabnikom iz ZELENEGA območja da uskladijo čas z IPCopom)', \r
+'click to disable' => 'Vključeno (klikni za Izključitev)', \r
+'click to enable' => 'Izključeno (klikni za Vključitev)', \r
+'clock has not been synchronized' => 'Ura ni bila sinhronizirana', \r
+'clock last synchronized at' => 'Ura zadnjič usklajena:', \r
+'common name' => 'Ime', \r
+'compression' => 'Kompresija', \r
+'confirmation' => 'potrditev', \r
+'connect on ipcop restart' => 'Poveži se ob ponovnem zagonu sistema:', \r
+'connect the modem' => 'Priključite modem', \r
+'connected' => 'Povezan', \r
+'connecting' => 'Povezujem...', \r
+'connection' => 'Povezava', \r
+'connection debugging' => 'Iskanje napak', \r
+'connection status and controlc' => 'Stanje povezav:', \r
+'connection tracking' => 'Sledenje povezavam (IPTables)', \r
+'connections' => 'Povezave', \r
+'could not connect to www ipcop org' => 'Povezava na spletno stran www.ipcop.org ni uspela', \r
+'could not download latest updates' => 'Ne morem posneti zadnjih posodobitev.', \r
+'could not download the available updates list' => 'Ne morem posneti seznama posodobitev ki so na voljo.', \r
+'could not open available updates file' => 'Ne morem odpreti datoteke za posodobitev.', \r
+'could not open installed updates file' => 'Ne morem odpreti datoteke nameščenih posodobitev.', \r
+'could not open update information file' => 'Ne morem odpreti datoteke z informacijami o posodobitvah. Datoteka je poškodovana.', \r
+'country' => 'Država', \r
+'cpu usage per' => 'Obremenitev CPE za:', \r
+'create' => 'Ustvari', \r
+'credits' => 'Avtorji', \r
+'cron server' => 'CRON strežnik', \r
+'current' => 'Trenutno:', \r
+'current dynamic leases' => 'Trenutni dodeljeni dinamični naslovi (DHCP)', \r
+'current hosts' => 'Trenutni gostitelji:', \r
+'current profile' => 'Trenutni profil:', \r
+'current rules' => 'Trenutna pravila:', \r
+'date' => 'Datum', \r
+'date not in logs' => 'Za izbrani datum dnevnik ne obstaja oziroma obstaja samo delno', \r
+'day' => 'Dan', \r
+'day after' => 'Naslednji dan', \r
+'day before' => 'Prejšnji dan', \r
+'days' => 'dnevi', \r
+'ddns noip prefix' => 'Za uporabo no-ip v skupinskem načinu dodajte pred ime gostitelja <b>%</b>', \r
+'december' => 'December', \r
+'delete' => 'Briši', \r
+'description' => 'Opis', \r
+'destination' => 'Cilj', \r
+'destination ip' => 'Ciljni IP', \r
+'destination port' => 'Ciljna vrata (port)', \r
+'device' => 'Naprava', \r
+'dhcp advopt add' => 'DHPC opcije', \r
+'dhcp advopt added' => 'DHPC opcije dodane', \r
+'dhcp advopt removed' => 'DHCP opcije odstranjene', \r
+'dhcp configuration' => 'Nastavitve DHCP strežnika', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP strežnik', \r
+'dhcp server disabled' => 'DHCP server izklopljen.', \r
+'dhcp server disabled on blue interface' => 'DHCP server na MODREM izklopljen ', \r
+'dial' => 'Poveži', \r
+'dial user password' => 'Geslo klicatelja:', \r
+'disk access per' => 'Dostopi do diska za:', \r
+'disk usage' => 'Prostor na disku:', \r
+'display' => 'Uporabniški vmesnik', \r
+'display hostname in window title' => 'Prikaži ime gostitelja v naslovu okna', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'DMZ pinhole nastavitve', \r
+'dns proxy server' => 'HOSTS/DNS strežnik', \r
+'dod' => 'Klic na zahtevo', \r
+'dod for dns' => 'Klic na zahtevo za DNS:', \r
+'domain' => 'Domena', \r
+'domain name' => 'Domena', \r
+'downlink speed' => 'Hitrost povezave proti uporabniku (kbit/sec)', \r
+'download certificate' => 'Shrani certifikat', \r
+'download new ruleset' => 'Naloži nova pravila', \r
+'driver' => 'Gonilnik', \r
+'dyn dns source choice' => 'IPCop bo dinamičnim DNS ponudnikom poslal IP, ki ga bo dobil na sledeč način:', \r
+'dynamic dns' => 'Dinamični DNS', \r
+'eciadsl help' => 'Za uporabi ECI ADSL modema je potrebno naložiti synch.bin datoteko na IPCopov disk. Prosimo snemite datoteko iz ECIADSL spletne strani in jo naložite s pomočjo spodnjega obrazca.', \r
+'eciadsl upload' => 'Naloži ECI ADSL Synch.bin datoteko', \r
+'edit' => 'Uredi', \r
+'edit a rule' => 'Uredi obstoječe pravilo:', \r
+'edit hosts' => 'HOSTS/DNS strežnik', \r
+'enable javascript' => 'Omogoči Javascript', \r
+'enable wildcards' => 'Omogoči wildcards:', \r
+'enabled' => 'Vključeno:', \r
+'enabled on' => 'Vključen za območje', \r
+'encrypted' => 'Zakodirano', \r
+'end address' => 'Zadnji naslov', \r
+'every' => 'Periodično', \r
+'expected' => 'Pričakovan', \r
+'expires' => 'Poteče', \r
+'export' => 'Izvozi', \r
+'external access' => 'Zunanji dostop', \r
+'external access configuration' => 'Zunanji dostop', \r
+'february' => 'Februar', \r
+'fetch ip from' => 'Ugani IP naslov s pomočjo zunanjih strežnikov', \r
+'firewall' => 'Pož. zid', \r
+'firewall log' => 'Dnevnik Požarnega zidu', \r
+'firewall log viewer' => 'Dnevniki Požarnega zidu', \r
+'firewall logs' => 'Dnevniki Požarnega zidu', \r
+'firmware upload' => 'Prenos', \r
+'force update' => 'Prisili posodobitev.', \r
+'forwarding rule updated' => 'Posodobljeno pravilo za preusmerjanje, ponovno zaganjam...', \r
+'free' => 'Prosto', \r
+'free swap' => 'Prost navidezni pomnilnik', \r
+'fritzdsl help' => 'Za uporabo Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modema je potrebno naložiti gonilnik na IPCopov disk. Prosimo snemite ustrezen paket iz IPCopove spletne strani in nato naložite <b>fcdsl-(verzija).tgz</b> s pomočjo spodnjega obrazca. ', \r
+'fritzdsl upload' => 'Naloži Fritz!DSL gonilnik', \r
+'gateway' => 'Prehod', \r
+'generate root/host certificates' => 'Generiraj Root/Host certifikate', \r
+'global settings' => 'Globalne nastavitve', \r
+'graph per' => 'Graf glede na:', \r
+'green' => 'ZELENO', \r
+'green interface' => 'ZELENO območje', \r
+'gui settings' => 'Nastavitve vmesnika', \r
+'hangup' => 'Prekini', \r
+'high' => 'Visoka', \r
+'holdoff' => 'Čas med poskusi (v sekundah)', \r
+'host certificate' => 'Host certifikat', \r
+'host ip' => 'IP naslov gostitelja', \r
+'hostname' => 'Gostitelj', \r
+'hours' => 'ure', \r
+'hours2' => 'Ure', \r
+'idle cpu' => 'prost CPE', \r
+'idle cpu usage' => 'Prost CPE', \r
+'idle timeout' => 'Prekini povezavo če ni dejavna (v minutah, 0 za izklop):', \r
+'ids log viewer' => 'Dnevniki SNORT', \r
+'ids logs' => 'Dnevniki SNORT', \r
+'ids rules update' => 'Posodobitev SNORT pravil', \r
+'import' => 'Uvozi', \r
+'insert floppy' => 'Za kopiranje nastavitev na disketo vstavite disketo v računalnik kjer je nameščen IPCop in kliknite <i>Ustvari varnostno kopijo na disketo</i>. Celoten postopek lahko traja nekaj časa, zato prosimo za potrpljenje. Pazljivo preglejte vsebino diskete ter se prepričajte ali je z arhivom vse vredu.', \r
+'install new update' => 'Namesti novo posodobitev:', \r
+'installed' => 'Nameščeno', \r
+'installed updates' => 'Nameščene posodobitve:', \r
+'instant update' => 'Nastavi', \r
+'interface' => 'Vmesnik', \r
+'interfaces' => 'Vmesniki:', \r
+'intrusion detection' => 'SNORT strežnik', \r
+'intrusion detection system' => 'SNORT strežnik', \r
+'intrusion detection system log viewer' => 'Dnevniki SNORT', \r
+'intrusion detection system2' => 'SNORT:', \r
+'invalid key' => 'Napačen ključ.', \r
+'invalid md5sum' => 'Napačen izračun po kontroli MD5', \r
+'invalid port' => 'Napačen port. Izberite veljavno številko porta.', \r
+'invalid primary dns' => 'Napačen primarni DNS.', \r
+'invalid wins address' => 'Napačen naslov WINS strežnika', \r
+'ip address' => 'IP Naslov', \r
+'ip address in use' => 'IP številka je že v uporabi', \r
+'ip info' => 'Podatki o IP naslovu', \r
+'ipcops hostname' => 'Gostitelj', \r
+'ipinfo' => 'IP info', \r
+'isdn' => 'ISDN', \r
+'isdn1' => 'Enojni ISDN', \r
+'isdn2' => 'Dvojni ISDN', \r
+'january' => 'Januar', \r
+'july' => 'Julij', \r
+'june' => 'Junij', \r
+'kernel' => 'Jedro (Kernel)', \r
+'kernel logging server' => 'Strežnik za pisanje dnevnikov (Kernel)', \r
+'kernel version' => 'Verzija jedra (Kernel):', \r
+'lan' => 'Mreža', \r
+'languagepurpose' => 'Jezik:', \r
+'lease expires' => 'Dodelitev poteče', \r
+'legend' => 'Legenda', \r
+'loaded modules' => 'Naloženi moduli:', \r
+'local vpn hostname/ip' => 'Ime/IP naslov lokalnega VPNja', \r
+'log' => 'Dnevnik', \r
+'log enabled' => 'Vodenje dnevnika', \r
+'log settings' => 'Nastavitve', \r
+'log summary' => 'Povzetki', \r
+'log viewer' => 'Dnevniki Sistema', \r
+'logging server' => 'Strežnik za pisanje dnevnikov', \r
+'low' => 'Nizka', \r
+'mac address' => 'MAC Naslov', \r
+'mac address in use' => 'MAC naslov že v uporabi', \r
+'main page' => 'Glavna stran', \r
+'manual' => 'Ročno', \r
+'manually' => 'Ročno', \r
+'march' => 'Marec', \r
+'marked' => 'Oznaka', \r
+'max incoming size' => 'Največja velikost prejetega objekta (KB):', \r
+'max outgoing size' => 'Največja velikost poslanega objekta (KB):', \r
+'max size' => 'Največja dovoljena velikost enega objekta (KB):', \r
+'maximal' => 'Največ:', \r
+'maximum retries' => 'Število poskusov:', \r
+'medium' => 'Srednja', \r
+'memory' => 'Pomnilnik:', \r
+'memory usage per' => 'Poraba pomnilnika za:', \r
+'method' => 'Način:', \r
+'minutes' => 'Minute', \r
+'modem configuration' => 'Nastavitve modema', \r
+'modem on com1' => 'Modem na COM1', \r
+'modem on com2' => 'Modem na COM2', \r
+'modem on com3' => 'Modem na COM3', \r
+'modem on com4' => 'Modem na COM4', \r
+'month' => 'Mesec', \r
+'months' => 'meseci', \r
+'mounted on' => 'Pripeto na', \r
+'name' => 'Ime', \r
+'name is invalid' => 'Napačno ime', \r
+'name too long' => 'Ime računalnika je predolgo', \r
+'network' => 'Omrežje', \r
+'network status information' => 'Status Omrežja', \r
+'network time' => 'Uporabi NTP strežnik:', \r
+'network time from' => 'Dobi čas od zunanjega NTP strežnika', \r
+'network traffic graphs' => 'Grafi Omrežja', \r
+'network updated' => 'Omrežje posodobljeno', \r
+'newer' => 'Novejše', \r
+'not a valid ca certificate' => 'CA Certifikat ni veljaven.', \r
+'not present' => '<b>Ni</b> datoteke', \r
+'november' => 'November', \r
+'ntp configuration' => 'Nastavitve NTP strežnika', \r
+'ntp server' => 'NTP strežnik', \r
+'number' => 'Številka:', \r
+'october' => 'Oktober', \r
+'older' => 'Starejše', \r
+'only red' => 'Samo RDEČ', \r
+'pap or chap' => 'PAP ali CHAP', \r
+'password' => 'Geslo:', \r
+'percentage' => 'Odstotki', \r
+'persistent' => 'Stalna povezava', \r
+'port' => 'Vrata (port)', \r
+'port forwarding configuration' => 'Preusmerjanje', \r
+'ppp setup' => 'Klicni dostop', \r
+'pppoe settings' => 'Dodatne PPPoE nastavitve:', \r
+'primary dns' => 'Primarni DNS:', \r
+'primary ntp server' => 'Primarni NTP strežnik', \r
+'primary wins server address' => 'IP primarnega WINS Strežnika', \r
+'priority' => 'Prioriteta', \r
+'profile' => 'Profil', \r
+'profile name' => 'Ime profila:', \r
+'profiles' => 'Profili:', \r
+'proto' => 'Protokol', \r
+'protocol' => 'Protokol', \r
+'proxy' => 'Spletni posrednik', \r
+'proxy access graphs' => 'Grafi Spletnega posrednika', \r
+'proxy log viewer' => 'Dnevniki Spletnega posrednika', \r
+'proxy logs' => 'Dnevniki Spletnega posrednika', \r
+'ram' => 'RAM', \r
+'reboot' => 'Ponovni zagon', \r
+'reconnection' => 'Ponovna povezava', \r
+'refresh' => 'Osveži', \r
+'refresh index page while connected' => 'Periodično osvežuj index.cgi ko je sistem povezan z internetom', \r
+'refresh update list' => 'Osveži seznam posodobitev', \r
+'released' => 'Datum izdaje', \r
+'remark' => 'Opombe', \r
+'remark title' => 'Opombe:', \r
+'remote access' => 'SSH dostop', \r
+'remove' => 'Odstrani', \r
+'remove ca certificate' => 'Odstrani CA Certifikat', \r
+'reset' => 'Ponastavi', \r
+'restart' => 'Ponovni zagon', \r
+'restore' => 'Uporabi', \r
+'restore defaults' => 'Ponastavi', \r
+'restore hardware settings' => 'Uporabi izbrane nastavitve', \r
+'root certificate' => 'Root certifikat', \r
+'routing table entries' => 'Tabela preusmerjanja:', \r
+'save' => 'Shrani', \r
+'script name' => 'Ime skripte:', \r
+'secondary dns' => 'Sekundarni DNS:', \r
+'secondary ntp server' => 'Sekundarni NTP strežnik', \r
+'secondary wins server address' => 'IP sekundarnega WINS Strežnika', \r
+'secure shell server' => 'SSH strežnik', \r
+'select' => 'Izberi', \r
+'service' => 'Storitev', \r
+'services' => 'Storitve:', \r
+'set time now' => 'Nastavi čas', \r
+'set time now help' => 'Za takojšnjo sprožitev sinhronizacije kliknite <i>Nastavi čas</i>. Traja lahko do pet minut do začetka sinhronizacije.', \r
+'settings' => 'Nastavitve', \r
+'shaping list options' => 'Dodeljen nadzor pretoka podatkov', \r
+'shared' => 'deljen', \r
+'show ca certificate' => 'Prikaži CA Certifikat', \r
+'show certificate' => 'Prikaži certifikat', \r
+'show host certificate' => 'Prikaži Host Certifikat', \r
+'shutdown' => 'Zaustavitev sistema', \r
+'shutdown control' => 'Zaustavitev sistema', \r
+'shutdown2' => 'Zaustavitev sistema:', \r
+'size' => 'Velikost', \r
+'snort hits' => 'Število SNORT pravil aktiviranih za', \r
+'sound' => 'Zvok', \r
+'source' => 'Vir', \r
+'source ip' => 'Vir', \r
+'source network' => 'Začetni IP naslov ali omreže (prazno za VSI)', \r
+'source port' => 'Začetna vrata (port)', \r
+'ssh access' => 'SSH Dostop', \r
+'ssh fingerprint' => 'Prstni odtis', \r
+'ssh host keys' => 'SSH ključi gostitelja', \r
+'ssh key' => 'Ključ', \r
+'ssh key size' => 'Velikost (biti)', \r
+'ssh keys' => 'Dovoli avtentikacijo z javnimi ključi', \r
+'ssh passwords' => 'Dovoli avtentikacijo z gesli', \r
+'ssh portfw' => 'Dovoli TCP preusmerjanje', \r
+'ssh1 support' => 'Podpora za SSH protokol verzija 1 (potrebno za starejše odjemalce)', \r
+'ssnetwork status' => 'Status Omrežja', \r
+'sspasswords' => 'Gesla', \r
+'ssport forwarding' => 'Preusmerjanje', \r
+'ssproxy graphs' => 'Grafi Spletnega posrednika', \r
+'sssystem status' => 'Status Sistema', \r
+'sstraffic graphs' => 'Grafi Omrežja', \r
+'start address' => 'Prvi naslov', \r
+'status information' => 'Status Sistema', \r
+'subject' => 'Predmet', \r
+'successfully refreshed updates list' => 'Uspešno osvežen seznam posodobitev.', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Poraba navideznega pomnilnika za:', \r
+'system cpu usage' => 'Sistemska CPE poraba', \r
+'system graphs' => 'Grafi Sistema', \r
+'system logs' => 'Dnevniki Sistema', \r
+'the following update was successfully installed' => 'Sledeča posodobitev je bila uspešno nameščena', \r
+'the statistics were last updated at' => 'Statistika nazadnje osvežena', \r
+'there are updates' => 'Za vaš sistem so na voljo posodobitve. Za več informacij obiščite v oddelek "Posodobitve".', \r
+'there are updates available' => 'Za vaš sistem so na voljo posodobitve. Priporočamo da si jih namestite takoj!', \r
+'this feature has been sponsored by' => 'Sponzoriral:', \r
+'this field may be blank' => 'Polje je lahko prazno.', \r
+'this is not an authorised update' => 'To ni uradna posodobitev.', \r
+'this update is already installed' => 'Ta posodobitev je že nameščena.', \r
+'time' => 'Čas', \r
+'time server' => 'NTP strežnik', \r
+'title' => 'Naslov', \r
+'to install an update' => 'Če želite namestiti posodobitev prosimo pošljite datoteko .tgz.gpg na strežnik s pomočjo spodnjega obrazca:', \r
+'traffic on' => 'Območje:', \r
+'traffic shaping' => 'Nadzorovanje pretoka podatkov', \r
+'traffic shaping settings' => 'Nadzorovanje pretoka podatkov', \r
+'transfer limits' => 'Omejevanje velikosti objektov', \r
+'transparent on' => 'Transparenten na območju', \r
+'type' => 'Tip', \r
+'unencrypted' => 'Nezakodirano', \r
+'update' => 'Posodobitev', \r
+'update time' => 'Nastavi čas:', \r
+'updates' => 'Posodobitve', \r
+'updates installed' => 'Nameščene posodobitve', \r
+'updates is old1' => 'Vaša seznam posodobitev je star', \r
+'updates is old2' => 'dni. Predlagamo da si ga osvežite na oddelku <b>Sistem > Posodobitve</b>', \r
+'uplink speed' => 'Hitrost povezave od uporabnika (kbit/sec)', \r
+'upload' => 'Prenos', \r
+'upload ca certificate' => 'Naloži CA Certifikat', \r
+'upload file' => 'Naloži datoteko', \r
+'upload synch.bin' => 'Prenos synch.bin', \r
+'upload update file' => 'Pošlji posodobitveno datoteko:', \r
+'upstream password' => 'Geslo:', \r
+'upstream proxy host:port' => 'Spletni posrednik za odhajajoč promet (gostitelj:vrata)', \r
+'upstream username' => 'Uporabniško ime:', \r
+'uptime and users' => 'Čas delovanja sistema in uporabniki:', \r
+'use' => 'Uporaba', \r
+'use ipcop red ip' => 'IP naslov dodeljen RDEČEMU območju ob povezovanju', \r
+'used' => 'Porabljeno', \r
+'used memory' => 'Porabljen pomnilnik', \r
+'used swap' => 'Porabljen navidezni pomnilnik', \r
+'user cpu' => 'Uporabnik CPE', \r
+'user cpu usage' => 'Uporabnikova CPE poraba', \r
+'username' => 'Uporabniško ime:', \r
+'users email' => 'Uporabnikov email naslov', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN', \r
+'web proxy' => 'Spletni posrednik', \r
+'web proxy configuration' => 'Nastavitve spletnega posrednika', \r
+'web server' => 'Spletni strežnik', \r
+'website' => 'Spletna stran', \r
+'week' => 'Teden', \r
+'weeks' => 'tedni', \r
+'wireless config changed' => 'Nastavitve brezžičnega omrežja spremenjene', \r
+'wireless configuration' => 'Nastavitve brezžičnega omrežja', \r
+'xtaccess all error' => 'Ne morete dovoliti zunanjega dostopa VSEM, to lahko storite v oddelku Preusmerjanje', \r
+'year' => 'Leto', \r
+'your department' => 'Vaš oddelek', \r
+'your e-mail' => 'Vaš email naslov', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/so/CVS/Entries b/langs/so/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/so/CVS/Repository b/langs/so/CVS/Repository
new file mode 100644 (file)
index 0000000..af34c70
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/so
diff --git a/langs/so/CVS/Root b/langs/so/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/so/CVS/Tag b/langs/so/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/so/cgi-bin/CVS/Entries b/langs/so/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..93a736c
--- /dev/null
@@ -0,0 +1,2 @@
+/so.pl/1.1.2.6/Tue Jul  5 20:39:43 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/so/cgi-bin/CVS/Repository b/langs/so/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..01ef659
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/so/cgi-bin
diff --git a/langs/so/cgi-bin/CVS/Root b/langs/so/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/so/cgi-bin/CVS/Tag b/langs/so/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/so/cgi-bin/so.pl b/langs/so/cgi-bin/so.pl
new file mode 100644 (file)
index 0000000..db74401
--- /dev/null
@@ -0,0 +1,763 @@
+# Somali  (so) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# Copyright (c) 2004 Arnt Karlsen, Mohamed Musa Ali, Michael Spann\r
+#  \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'access allowed' => 'Ogolaansho kuscocta katimid:', \r
+'action' => 'wax qabad', \r
+'add' => 'Ku siyaadin', \r
+'add a host' => 'Ku siyaadin xiriiriye barnaamij:', \r
+'add a new rule' => 'Ku siyaadin qaanuun cusub:', \r
+'add network' => 'Ku siyaadin shabakad', \r
+'add new alias' => 'Ku siyaadin alias cusub:', \r
+'add new lease' => 'Ku siyaadin hishiis kiro oo cusub', \r
+'add service' => 'Ku siyaadin hawleed', \r
+'admin user password has been changed' => 'mamul isticmalee password waa badalmey.', \r
+'administrator user password' => 'mamulee isticmalee password:', \r
+'adsl settings' => 'ADSL gelin', \r
+'advanced' => 'Horumarin', \r
+'again' => 'Mar kale:', \r
+'alias ip' => 'Alias-IP', \r
+'aliases' => 'Alias', \r
+'aliases not active' => 'Alias ma shaqaynayo ', \r
+'all updates installed' => 'Casriyaynto oo dhan waa la rakibay', \r
+'alt dialup' => 'wicida oo dhan ', \r
+'alt home' => 'Gudaha waddanka ', \r
+'alt information' => 'Macluumaad ', \r
+'alt logs' => 'Diiwaano ', \r
+'alt services' => 'Adeeg ', \r
+'alt system' => 'Nidaam', \r
+'alt vpn' => 'VPN', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'april' => 'Abriil', \r
+'archive not exist' => 'Arkiifyo ma jiraan', \r
+'are you sure' => 'Ma hubtaa?', \r
+'arp table entries' => 'ARP jadwal gelin', \r
+'august' => 'Agoosto', \r
+'authentication' => 'Tasdiiqin ', \r
+'automatic' => 'Awtomatik ', \r
+'available updates' => 'Casriyeyn diyaar ah:', \r
+'average' => 'Isku celcelin', \r
+'back' => 'Gadaal', \r
+'backup' => 'Ayidaad', \r
+'backup config floppy' => 'Qaabdhisid ayideysa floppy', \r
+'backup configuration' => 'Qaabdhisid ayidaad leh:', \r
+'backup sets' => 'Ayidaad gelin', \r
+'backup to floppy' => 'Ayidaad oo floppy leeyahay', \r
+'backupprofile' => 'Ayidaad oo floppy leeyahay', \r
+'bad characters in script field' => 'Xarfoo xun oo ku jiraa qoraal majaal', \r
+'bad characters in the telephone number field' => 'Xarfoo xun oo ku jiraa taleefoon lambar.', \r
+'bad destination range' => 'Bardhammaad xun oo safeed.', \r
+'bad ignore filter' => 'Ogaaldiid xun oo ka timiid miire:', \r
+'bad return code' => 'Soo noqosho xun oo kalmado sir ah', \r
+'bad source range' => 'Saf il-wax-ka soobax xun lee.', \r
+'behind a proxy' => 'Wakiil dhambee ', \r
+'bewan adsl pci st' => 'bewan adsl pci st', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'buluug', \r
+'blue access' => 'Jid bulluug ', \r
+'blue interface' => 'Interface buluug ah ', \r
+'broadcast' => 'Warbaahin ', \r
+'broken pipe' => 'Dhuun khilafid ', \r
+'buffered memory' => 'Tuurid xusuus', \r
+'buffers' => 'tuuritaan ', \r
+'bytes per second' => 'Bytes il-biriqsi kastaba ', \r
+'ca certificate' => 'Ca shahaado ', \r
+'ca name' => 'Ca magac ', \r
+'cache management' => 'Cache maamul', \r
+'cache size' => 'Cache cabbiraad:', \r
+'cached' => 'Cashekarayn', \r
+'cached memory' => 'Cashe xusuus ', \r
+'cancel' => 'Burin', \r
+'cannot enable both nat traversal and compression' => 'Ma shaqaysinkaro cadaadista iyo ka-gudbida.', \r
+'cannot enable ntp without specifying primary' => 'Ma shaqaysinkaro ntp inta aanan khaasyelin asaaskii.', \r
+'cannot specify secondary dns without specifying primary' => 'Ma shaqaysinkaro labad inta aanan khaasyelin kowbaad.', \r
+'cannot specify secondary ntp without specifying primary' => 'Aan khaasyelikarin ntp labaad kobaad la aantii ', \r
+'cannot specify secondary wins without specifying primary' => 'Aan khaasyelikarin libin helida kobaad labaad la aantii.', \r
+'cant change certificates' => 'Aan karin badalka shahaadoyinka.', \r
+'cant enable xtaccess' => 'Aan karin xtacess.', \r
+'cant start openssl' => 'Aan karin bilaabid OpenSSL.', \r
+'caps all' => 'KULLI', \r
+'capsclosed' => 'XIRAN', \r
+'capsopen' => 'FURAN', \r
+'capswarning' => 'DIGNIIN', \r
+'certificate' => 'Shahaado', \r
+'certificate authorities' => 'Awood shahaado', \r
+'certificate does not have a valid ca associated with it' => 'Shahaadado ma lee xubin ka lee.', \r
+'certificate file move failed' => 'Shahaadada faylka waa khalaad', \r
+'cfg restart' => 'Cfg dib u bilaabid.', \r
+'chain' => 'silsilad', \r
+'change passwords' => 'Badal password', \r
+'check vpn lr' => 'hubii', \r
+'city' => 'Magaloo', \r
+'clear cache' => 'Nadifii cache', \r
+'clenabled' => 'Nadafadu waa shaqayneeysa', \r
+'click to disable' => 'Riix shaqayn la aan', \r
+'click to enable' => 'Riix shaqayn', \r
+'clock has not been synchronized' => 'Saacadu ma buxdo', \r
+'clock last synchronized at' => 'Saacadu mar danbee aya la buxiyey', \r
+'common name' => 'Mgac ka dhexeya', \r
+'compression' => 'Cadaadis:', \r
+'computer to modem rate' => 'Kampuyuutar ila iyo dhaqsaha:', \r
+'concentrator name' => 'Isugeeye magac:', \r
+'confirmation' => 'Sugitaan', \r
+'connect on ipcop restart' => 'Ku xiriid dib u bilaabida ipcop:', \r
+'connect the modem' => 'Ku xiriid modemka', \r
+'connect timeout' => 'Ku xiriid waqtika:', \r
+'connected' => 'Ku xiriin', \r
+'connecting' => 'Ku xiriin...', \r
+'connection' => 'Ku xiriid', \r
+'connection debugging' => 'Ku xiriid qalabka aan dubin', \r
+'connection status and controlc' => 'Ku xiriid aqoonsi iyo hubin:', \r
+'connection tracking' => 'Ku xiriid raad-raacid', \r
+'connection type' => 'Ku xiriid nooc', \r
+'connection type is invalid' => 'Ku xiriida noocu waa khalaad.', \r
+'connections' => 'Ku xiriid ', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'Ku xiriidu waaxay laa xirrirsantahay ca', \r
+'could not be opened' => 'Aan laa furi karin', \r
+'could not connect to' => 'Aan laa ku xirii karin', \r
+'could not connect to www ipcop org' => 'Aan laa ku xirii karin www ipcop org', \r
+'could not create directory' => 'Aan laaburikarin hogaamiyee.', \r
+'could not download latest patch list' => 'Aan laga soo xammulikarin hoos.', \r
+'could not download latest updates' => 'Aan laga soo xammulikarin casrigii u danbeyay.', \r
+'could not download the available updates list' => 'Aan laga soo xammulikarin casrika diyaarka ah.', \r
+'could not open available updates file' => 'Aan furikarin faylka diyaarka ah.', \r
+'could not open installed updates file' => 'Aan furikarin faylka dhignaa', \r
+'could not open update information file' => 'Aan furikarin macluumaadka faylka.', \r
+'could not retrieve common name from certificate' => 'Aan karin in u doono magaca wada-jirka ah.', \r
+'country' => 'Wadan', \r
+'cpu usage per' => 'CPU isticmalid kastar.', \r
+'create' => 'Abuur', \r
+'credits' => 'Qaddarin', \r
+'cron server' => 'CRON server', \r
+'current' => 'Socda', \r
+'current aliases' => 'Alias socda', \r
+'current dynamic leases' => 'Cinwaankiro oo firfircon', \r
+'current fixed leases' => 'Kiro joogta ah', \r
+'current hosts' => 'Qimo xidhidhsan', \r
+'current profile' => 'Qimo profil:', \r
+'current rules' => 'Qimo sharci ah', \r
+'custom networks' => 'Macmil networks', \r
+'custom services' => 'Shaqad macmilka', \r
+'dat without key' => 'Tarikh muftaax la aan.', \r
+'date' => 'Tarih', \r
+'date not in logs' => 'Ku ma jirto wax log ', \r
+'day' => 'Maalin', \r
+'day after' => 'Maalin ka dib', \r
+'day before' => 'Maalin ka hor', \r
+'days' => 'Maalmo', \r
+'ddns hostname added' => 'Ku-dariid xidhidhiye magac ddns', \r
+'ddns hostname removed' => 'Ka-sariid xidhidhiye magac ddns', \r
+'december' => 'Dieembar', \r
+'def lease time' => 'Cabbir kiro', \r
+'default lease time' => 'Fulin la aan waqtika kiro(midhidh):', \r
+'default networks' => 'Fulin la aan network', \r
+'default renewal time' => 'Fulin la aan cusbooneysiin waqti', \r
+'default services' => 'Fulin la aan shaqo', \r
+'delete' => 'Tir-tirid', \r
+'demon login script' => 'Demon login script', \r
+'description' => 'Sifo', \r
+'dest ip and port' => 'IP:Port kusocoda', \r
+'destination' => 'Bardhammaadka', \r
+'destination ip' => 'Bardhammaadka ip', \r
+'destination ip bad' => 'Bardhammaadka ip xun', \r
+'destination net' => 'Bardhammaadka net', \r
+'destination port' => 'Bardhammaadka port', \r
+'destination port numbers' => 'Bardhammaadka port lambar.', \r
+'destination port overlaps' => 'Bardhammaadka port khalaad yar.', \r
+'detail level' => 'Fah-fahin heer', \r
+'device' => 'Khiddad', \r
+'dhcp configuration' => 'Qaabdhisida DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP server', \r
+'dhcp server disabled' => 'DHCP server ma shaqaynayo.', \r
+'dhcp server disabled on blue interface' => 'DHCP server ma shaqaynayo interface buluuga', \r
+'dhcp server enabled' => 'DHCP server awoodin.', \r
+'dhcp server enabled on blue interface' => 'DHCP server ma awoodo interface buluuga dhexdisa ', \r
+'dial' => 'Teleefoon diris', \r
+'dial user password' => 'Teleefoon diris password:', \r
+'dial user password has been changed' => 'Teleefoon diris password waa labadalay.', \r
+'dialing mode' => 'Qaab Teleefoon diris:', \r
+'dialup settings' => 'Gelin Teleefoon diris:', \r
+'disk access per' => 'Diski kasta acess.', \r
+'disk usage' => 'Disk isticmalid ', \r
+'display hostname in window title' => 'Xidhidhiye magac tusid ku magacaa darishada', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'DMZ qaabdhisida ', \r
+'dmz pinhole rule added' => 'DMZ qaabdhisid iyo xeerkeda ku dariid', \r
+'dmz pinhole rule removed' => 'DMZ qaabdhisid iyo xeerkeda ka deyn', \r
+'dmzpinholes for same net not necessary' => 'DMZ net kaliyaa ma aha qasabn.', \r
+'dns check failed' => 'DNS hubin waa khalaad', \r
+'dns proxy server' => 'DNS proxy server', \r
+'dod' => 'Teleefoon diris qasab ah', \r
+'dod for dns' => 'Teleefoon dirista dns:', \r
+'dod waiting' => 'Teleefoon diris oo la sugayo', \r
+'domain' => 'Majaal ', \r
+'domain name' => 'Majaal magac', \r
+'domain name suffix' => 'Majaal magac gadaal-gal:', \r
+'domain not set' => 'Majaal la ma gelin.', \r
+'downlink speed' => 'Xidhidh hoose xawaare', \r
+'download ca certificate' => 'Xammulid hoose ca oo shahaado', \r
+'download certificate' => 'Xammulid hoose oo shahaado', \r
+'download host certificate' => 'Xammulid hoose xiririye shahaado', \r
+'download new ruleset' => 'Xammulid hoose sharci cusub gelin', \r
+'download pkcs12 file' => 'Xammulid hoose faylka PKCS12', \r
+'download root certificate' => 'Xammulid hoose shahaado root', \r
+'driver' => 'Driver', \r
+'dst port' => 'Dst port', \r
+'dstprt range overlaps' => 'Dstprt taxan oo khalaad yar ah', \r
+'dstprt within existing' => 'Dstprt waa dhex jirta.', \r
+'duplicate ip' => 'IP ciwaan ', \r
+'duplicate mac' => 'MAC ciwaan', \r
+'duplicate name' => 'Magac ka lee doroo', \r
+'dynamic dns' => 'DNS socota', \r
+'dynamic dns client' => 'DNS socota ee macmilka', \r
+'e-mail address too long' => 'E-mailcinwaan waa dheryahay.', \r
+'eciadsl upload' => 'Eciadsl soo xammul', \r
+'edit' => 'Iskdbubaridin', \r
+'edit a rule' => 'Iskdbubaridin sharci:', \r
+'edit advanced settings when done' => 'Iskdbubaridin horusocka kadib gelinta.', \r
+'edit an existing alias' => 'Iskdbubaridin alias jirta', \r
+'edit an existing host' => 'Iskdbubaridin xiririye jira ', \r
+'edit an existing lease' => 'Iskdbubaridin kiro jirta', \r
+'edit hosts' => 'Iskdbubaridin xiririyeyal', \r
+'edit network' => 'Iskdbubaridin network', \r
+'edit service' => 'Iskdbubaridin hawl', \r
+'empty' => 'Maran', \r
+'enable ignore filter' => 'Karsiin iska dhaga tirid miire', \r
+'enable javascript' => 'Karsiin javascript', \r
+'enable wildcards' => 'Karsiin kaarar badan:', \r
+'enabled' => 'Karsiin:', \r
+'enabled on' => 'Karsiinta', \r
+'enabledtitle' => 'Karsiin', \r
+'encapsulation' => 'Pakked-gelin', \r
+'encrypted' => 'Qarin', \r
+'end address' => 'Dhamad cinwaan:', \r
+'err bk 1' => 'err bk 1', \r
+'err bk 2 key' => 'err bk 2 fure', \r
+'err bk 3 tar' => 'err bk 3 tar', \r
+'err bk 4 gz' => 'err bk 4 gz', \r
+'err bk 5 encrypt' => 'err bk 5 qarin', \r
+'err rs 1' => 'err rs 1', \r
+'err rs 6 decrypt' => 'err rs 6 tusid ', \r
+'err rs 7 untartst' => 'err rs 7 kayd fayl', \r
+'err rs 8 untar' => 'err rs 8 kasarid', \r
+'error messages' => 'Waar khalaad ah:', \r
+'esp encryption' => 'ESP qarid:', \r
+'esp grouptype' => 'ESP-gruppetype:', \r
+'esp integrity' => 'ESP dhex-gelid:', \r
+'esp keylife' => 'ESP fure fayl:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP fure fayl waa in la helaa inta u dhexaya sacad iyo 24 sacdodo.', \r
+'every' => 'Kasta', \r
+'excluding buffers and cache' => '-/  kasaar', \r
+'expected' => 'Laga sugayey', \r
+'expires' => 'Dhicid waqti', \r
+'export' => 'U gudboid', \r
+'external access' => 'Acess dibada', \r
+'external access configuration' => 'Qaabdhisida dibada', \r
+'external access rule added' => 'Ku darid xerka dibada', \r
+'external access rule removed' => 'Ka qadid xerka dibada', \r
+'external aliases configuration' => 'Qaabdisida aliasaska dibad', \r
+'february' => 'Febraayo', \r
+'filename' => 'Fayl magac', \r
+'filesystem full' => 'Fayl nidaam waa buxaa', \r
+'firewall' => 'Gidardab', \r
+'firewall hits' => 'Gidardabyadi lala kulmay oo dhan ', \r
+'firewall log' => 'Gidardab logg', \r
+'firewall log viewer' => 'Gidardab aragtida log', \r
+'firewall logs' => 'Gidardab logs', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Xammul firmware', \r
+'fixed ip lease added' => 'Geli IP kiro oo ku dar', \r
+'fixed ip lease modified' => 'Geli IP kiro oo ka badal', \r
+'fixed ip lease removed' => 'Geli IP kiro oo ka qaad', \r
+'force update' => 'Xoog casi ah', \r
+'forwarding rule added' => 'Gelinta xeer luhu darayo', \r
+'forwarding rule removed' => 'Gelinta xeer laga qaadayo', \r
+'forwarding rule updated' => 'Gelinta xeer casri', \r
+'free' => 'Banaan', \r
+'free memory' => 'Xusuus banaan', \r
+'free swap' => 'Swap banaan', \r
+'fritzdsl upload' => 'Fritzdsl dhacday', \r
+'g.dtm' => 'G.dtm', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Irrid', \r
+'gateway ip' => 'Irrid IP', \r
+'generate a certificate' => 'Same shahaado:', \r
+'generate root/host certificates' => 'Same root', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Sameynta irrid iyo shahaadadu waqti ayey qadan.  Fadlaan samir.', \r
+'global settings' => 'Gelin guud', \r
+'graph' => 'Garaaf', \r
+'graph per' => 'Garaaf kasta.', \r
+'green' => 'CAGAAR', \r
+'green interface' => 'Interface cagaar', \r
+'gui settings' => 'GUI gelin', \r
+'gz with key' => 'Gz iyo fure', \r
+'hangup' => 'Demin:', \r
+'hangup string' => 'Demin:', \r
+'high' => 'Sare', \r
+'high memory usage' => 'Xusuus sare oo isticmalan', \r
+'holdoff' => 'Holdoff waqti (ilbidhiqsi)', \r
+'host certificate' => 'Xiririye shahaado', \r
+'host configuration' => 'Qaabdhisid shahaado', \r
+'host ip' => 'Xiririyeyal IP cinwaan', \r
+'host to net vpn' => 'Xiririyr ila iyo vpn', \r
+'hostname' => 'Xiririyemagac', \r
+'hostname and domain already in use' => 'Xiririyemagac iyo majaal la isticmaley.', \r
+'hostname cant be empty' => 'Xiririyemagac ma banaan karo.', \r
+'hostname not set' => 'Xiririyemagac ku ma jiro.', \r
+'hosts config added' => 'Xiririyemagac ku dar qaabdhisid', \r
+'hosts config changed' => 'Xiririyeyal badal qaabdhisidoda', \r
+'hours' => 'sacado', \r
+'hours2' => 'Sacado', \r
+'ibod for dual isdn only' => 'iBOD waxa lo istimalikara ISDN oo kaliya.', \r
+'icmp selected but no type' => 'ICMP waa la dortay lakin la khaasyelin.', \r
+'icmp type' => 'ICMP khaasyelid', \r
+'id' => 'ID', \r
+'idle' => 'Aan shaqayneynin', \r
+'idle cpu' => 'CPU aan shaqayneynin', \r
+'idle cpu usage' => 'CPU aan shaqayneynin isticmalideda', \r
+'idle timeout' => 'Waqti dhacay', \r
+'idle timeout not set' => 'Waqti dhacay egida.', \r
+'ids log viewer' => 'IDS log egida', \r
+'ids logs' => 'IDS-log', \r
+'iface' => 'Iface', \r
+'ignore filter' => 'Iska dhagatir miire', \r
+'ike encryption' => 'IKE muqda:', \r
+'ike grouptype' => 'IKE kox khaas:', \r
+'ike integrity' => 'IKE dhexgelid:', \r
+'ike lifetime' => 'IKE waqti nololeed:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE waqti nololeed waa inta u dhexeysa sacad iyo 8 sacadod.', \r
+'import' => 'Gelid', \r
+'in' => 'Dhex', \r
+'incoming traffic in bytes per second' => 'Socodka bytes soo gelaya ilgibidhsi kastaba', \r
+'info' => 'Macluumaad', \r
+'init string' => 'Init:', \r
+'install new update' => 'Geli casri cusuub:', \r
+'installed' => 'Gelin', \r
+'installed updates' => 'Gelin casri', \r
+'instant update' => 'Waqti casri', \r
+'interface' => 'Interface ', \r
+'interfaces' => 'Interfaces', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Ogaan soo gelida ', \r
+'intrusion detection system' => 'Nidaam oog soo gelida ', \r
+'intrusion detection system log viewer' => 'Nidaam log oo oog soo gelida tusid ', \r
+'intrusion detection system2' => 'Nidaam2 oog soo gelida:', \r
+'invalid broadcast ip' => 'Warbaahin ip aan soconayn', \r
+'invalid cache size' => 'Cabiir cashe aan soconayn', \r
+'invalid characters found in pre-shared key' => 'Xarfo aan soconayn aya laga heley furaha.', \r
+'invalid date entered' => 'Tariikh aan soconayn aya la geliyey.', \r
+'invalid default lease time' => 'Kiro aan soconayn waqtigegu.', \r
+'invalid domain name' => 'Majaal magac aan soconayn.', \r
+'invalid downlink speed' => 'Xidhidh aan soconayn xawaare.', \r
+'invalid end address' => 'Cinwaan damaad aan soconayn.', \r
+'invalid fixed ip address' => 'Gelin cinwaan ip aan soconayn', \r
+'invalid fixed mac address' => 'Gelid cinwaan mac aan soconayn', \r
+'invalid hostname' => 'Xirriye aan soconayn.', \r
+'invalid input' => 'input aan soconayn', \r
+'invalid input for authentication method' => 'input aan soconayn xaqiijintisa.', \r
+'invalid input for city' => 'input aan soconayn oo magaleed.', \r
+'invalid input for country' => 'input aan soconayn oo wadan.', \r
+'invalid input for department' => 'input aan soconayn oo gobooled.', \r
+'invalid input for e-mail address' => 'input aan soconayn cinwaan e-mail.', \r
+'invalid input for esp keylife' => 'input aan soconayn oo esp fure fayl', \r
+'invalid input for hostname' => 'input aan soconayn oo xiririye magac.', \r
+'invalid input for ike lifetime' => 'input aan soconayn oo ike waqtnololeed', \r
+'invalid input for name' => 'input aan soconayn oo magac.', \r
+'invalid input for organization' => 'input aan soconayn oo gudi', \r
+'invalid input for remote host/ip' => 'input aan soconayn oo xiririye yar ip', \r
+'invalid input for state or province' => 'input aan soconayn oo tuulo ama degmo.', \r
+'invalid ip' => 'Cinwaan ip aan soconayn ', \r
+'invalid keep time' => 'Waqti qabad aan soconayn', \r
+'invalid key' => 'Fure aan soconayn.', \r
+'invalid logserver address' => 'Cinwaan logserver aan soconayn', \r
+'invalid max lease time' => 'Waqti u ku sareeyo oo aan soconayn', \r
+'invalid maximum incoming size' => 'Cabiir gelin u ku badan aan soconayn', \r
+'invalid maximum object size' => 'Cabiir hadafka u sareeya oo aan soconayn.', \r
+'invalid maximum outgoing size' => 'Cabiirabixitaan u sareeya oo aan soconayn.', \r
+'invalid md5sum' => 'MD5Sum aan soconayn.', \r
+'invalid minimum object size' => 'Cabiir hadafka u yar oo aan soconayn.', \r
+'invalid netmask' => 'Nettmask aan soconayn', \r
+'invalid port' => 'Port aan soconayn.', \r
+'invalid primary dns' => 'DNS gobaad oo aan soconayn.', \r
+'invalid primary ntp' => 'NTP gobaad oo aan soconayn', \r
+'invalid secondary dns' => 'DNS labaad oo aan soconayn.', \r
+'invalid secondary ntp' => 'NTP labaad oo aan soconayn', \r
+'invalid start address' => 'Cinwaan bilabid oo aan soconayn.', \r
+'invalid time entered' => 'Waqti gelin oo aan soconayn.', \r
+'invalid time period' => 'Mudosacaded oo aan soconayn', \r
+'invalid uplink speed' => 'Xawware aan xidhidh lahayn oo aan soconayn.', \r
+'invalid upstream proxy username or password setting' => 'Magacgelin iyo password aan soconayn.', \r
+'invalid vpi vpci' => 'VPI-/VPCI gelin oo aan soconayn', \r
+'invalid wins address' => 'WINS cinwaan oo aan soconayn.', \r
+'invert' => 'Foororin', \r
+'ip address' => 'Cinwaan IP', \r
+'ip address in use' => 'Cinwaan IP isticmalid', \r
+'ip alias added' => 'IP-alias ku darid', \r
+'ip alias changed' => 'IP-alias badalid ', \r
+'ip alias removed' => 'IP-alias ka sarid', \r
+'ip info' => 'IP- macluumaad', \r
+'ipcop has now rebooted' => 'IPCop aya dib u bilabtay.', \r
+'ipcop has now shutdown' => 'IPCop aya makhtiyay.', \r
+'ipcop side' => 'Gees IPCop:', \r
+'ipcop side is invalid' => 'Geeska IPCop aan soconayn.', \r
+'ipcops hostname' => 'IPCops xidhidhiye magac', \r
+'ipinfo' => 'IP-macluumaad', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'ISDN gelin:', \r
+'isdn1' => 'ISDN kaliya', \r
+'isdn2' => 'ISDN lamaan', \r
+'january' => 'Jannaaayo', \r
+'javascript menu error1' => 'javascript khalaad aya ku jira ', \r
+'javascript menu error2' => 'bog.', \r
+'july' => 'July', \r
+'june' => 'Jun', \r
+'kernel' => 'Nururka', \r
+'kernel logging server' => 'Nururka log serverka', \r
+'kernel version' => 'Nururka riwaayad', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Doroo luqada u istismaleyid IPCop:', \r
+'lease expires' => 'Kiro dhamatay', \r
+'legend' => 'Sharaxad', \r
+'line' => 'Khad', \r
+'loaded modules' => 'Xammul modulada', \r
+'local subnet' => 'Subnet degmo:', \r
+'local subnet is invalid' => 'Subnet degmo aan soconayn.', \r
+'local vpn hostname/ip' => 'VPN degmo xiririye magac IP', \r
+'log' => 'Log', \r
+'log enabled' => 'Log shaqaysiin', \r
+'log server address' => 'Cinwaan nidaam log server', \r
+'log settings' => 'Log gelin', \r
+'log summaries' => 'Log kobid', \r
+'log summary' => 'Log kobid', \r
+'log viewer' => 'Log arkid', \r
+'log viewing options' => 'Log arkid doraasho', \r
+'logging server' => 'Log hawl', \r
+'lookup failed' => 'Buug ka firiin khalaad', \r
+'low' => 'Hooe', \r
+'ls_dhcpd' => 'DHCP hawl:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP hawl:', \r
+'ls_init' => 'ls_init:', \r
+'ls_kernel' => 'ls_kernel:', \r
+'ls_modprobe' => 'ls_modprobe:', \r
+'ls_pam_unix' => 'ls_pam_unix:', \r
+'ls_sshd' => 'ls_sshd:', \r
+'ls_syslogd' => 'ls_syslogd:', \r
+'mac address' => 'MAC cinwaan', \r
+'mac address in use' => 'MAC cinwaan oo isticmalo', \r
+'main page' => 'Gees u muhimsana', \r
+'manual' => 'Gacanqabad', \r
+'manual control and status' => 'Gacanqabad hubin iyo heer', \r
+'manually' => 'Gacanqabadtin ', \r
+'march' => 'Mars', \r
+'marked' => 'Muqda', \r
+'max incoming size' => 'inta u badan ee geli karta:', \r
+'max lease time' => 'inta sacadod ee la kireynkaro:', \r
+'max outgoing size' => 'inta u badan ee ka bixikarta:', \r
+'max renewal time' => 'inta ubadan ee sacadod ee la cusboneysinkaro', \r
+'max retries not set' => 'inta u badan ee laga sarikaro ku ma jiro.', \r
+'max size' => 'Cabirka u badan ', \r
+'maximal' => 'inta u badan ee', \r
+'maximum retries' => 'inta u badan ee laga sarikaro:', \r
+'may' => 'Maajo', \r
+'medium' => 'Dhexaad', \r
+'memory' => 'Xusuus', \r
+'memory usage per' => 'Isticmalida xusuus kastaba.', \r
+'method' => 'Qaab:', \r
+'min size' => 'Ugu yaraan cabir:', \r
+'minutes' => 'Daqiiqad', \r
+'missing dat' => 'Tarikh dhumtay', \r
+'missing gz' => 'Gz dhumtay', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Qaabdhisida modem', \r
+'modem on com1' => 'Modem ka COM1', \r
+'modem on com2' => 'Modem ka COM2', \r
+'modem on com3' => 'Modem ka COM3', \r
+'modem on com4' => 'Modem ka COM4', \r
+'modem on com5' => 'Modem ka COM5', \r
+'modem settings have errors' => 'Modem gelin waa khalaad', \r
+'modem speaker on' => 'Modem ka samacada:', \r
+'modulation' => 'modulation', \r
+'month' => 'Bil', \r
+'months' => 'Bilo', \r
+'mounted on' => 'Fuulid', \r
+'name' => 'Magac', \r
+'name is invalid' => 'Magacu waa khalaad', \r
+'name must only contain characters' => 'Magacu wuxu ka kobanyahay xuruf.', \r
+'name too long' => 'Magacu waa dheeryahay', \r
+'nat-traversal' => 'Nat-traversal:', \r
+'net' => 'Net', \r
+'net to net vpn' => 'Net il iyo net vpn', \r
+'netmask' => 'Netmask', \r
+'network' => 'Network', \r
+'network added' => 'kudarid network kale', \r
+'network configuration' => 'Network qaabdhisid', \r
+'network removed' => 'Ka srid network', \r
+'network status information' => 'Network heer macluumaad', \r
+'network time' => 'Network waqti', \r
+'network traffic graphs' => 'Network socod graaf', \r
+'network updated' => 'Network casri', \r
+'networks settings' => 'Network gelin', \r
+'newer' => 'ka cusub', \r
+'next address' => 'Cinwaanka sosocda', \r
+'no alcatelusb firmware' => 'Alcatel USB ma jiro.', \r
+'no cfg upload' => 'Cfg la ma xammuin', \r
+'no dhcp lease' => 'DHCP kiro ma jiro.', \r
+'no eciadsl synch.bin file' => 'ECI ADSL synch.bin-fil la ma xammulin.', \r
+'no fritzdsl driver' => 'Ma Fritz!DSL-driverka. La ma xammulin.', \r
+'no information available' => 'Macluumaad la haya ma jiro.', \r
+'no modem selected' => 'Modem la ma doraan', \r
+'no set selected' => 'Gelin la doortay ma jiro', \r
+'none found' => 'Waxba la ma helin', \r
+'nonetworkname' => 'Network magac', \r
+'noservicename' => 'Hawl magac ma jiro', \r
+'not a valid ca certificate' => 'Shahaado aan soconayn.', \r
+'not present' => 'May waqtigan xadirka', \r
+'not running' => 'Ha bilaadin', \r
+'november' => 'Noofembar', \r
+'ntp configuration' => 'NTP qaabdhisid', \r
+'ntp must be enabled to have clients' => 'NTP wa diyar u ahata macmil.', \r
+'ntp server' => 'NTP hawl', \r
+'ntp syncro disabled' => 'NTP sacadeydii ma haqayso', \r
+'ntp syncro enabled' => 'NTP sacadeydii wa haqaysa', \r
+'ntpd restarted' => 'ntpd dib aya lo bilabay', \r
+'number' => 'lambar:', \r
+'october' => 'Oktoobar', \r
+'older' => 'duug', \r
+'only digits allowed in max retries field' => 'Lambarka unbay u banantahay max fayl.', \r
+'only digits allowed in the idle timeout' => 'Lambarka unbay u banantahay waqti ka sarida.', \r
+'open to all' => 'Fur dhaman', \r
+'openssl produced an error' => 'FuriidSSL waxay sameyneyasa khalaad', \r
+'orange' => 'ORANJA', \r
+'organization cant be empty' => 'Gudigu ma madhnankaro', \r
+'organization name' => 'Gudimagac', \r
+'organization too long' => 'Gudigu waa dheeryahay.', \r
+'original' => 'Asli ah', \r
+'other login script' => 'login kale', \r
+'out' => 'Dabad', \r
+'outgoing traffic in bytes per second' => 'Kabixitaanka socodka bytes ilbidhiqsikastaba', \r
+'package failed to install' => 'Gelinta pakada wa khalaad.', \r
+'pap or chap' => 'PAP ama CHAP', \r
+'password' => 'Password:', \r
+'password contains illegal characters' => 'Passwordka ayay ku jirta xarfo khalaad ah.', \r
+'password not set' => 'Password la ma gelint.', \r
+'password too short' => 'Passwordku wa gabanyahay.', \r
+'passwords do not match' => 'Passwordku ku ma filnaa.', \r
+'passwords must be at least 6 characters in length' => 'Passwordku ku yaraan wa 6 xaraf.', \r
+'percentage' => 'boqolkiiba', \r
+'persistent' => 'Buxa', \r
+'phase1 group' => 'Marxalad1 goox', \r
+'phonebook entry' => 'Telefoonbuug gelin', \r
+'pkcs12 file password' => 'PKCS12 fayl password', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Qaabdhisida porka', \r
+'ports' => 'Portrar', \r
+'pots' => 'pots', \r
+'ppp setup' => 'PPP gelin', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'PPPoE badan gelin:', \r
+'pptp settings' => 'PPTP gelin:', \r
+'pre-shared key is too short' => 'Furaha pre-shared wa gabanyahay.', \r
+'present' => 'Xaadir', \r
+'primary dns' => 'DNS gobaad:', \r
+'primary ntp server' => 'Gobaad NTP hawl ', \r
+'primary wins server address' => 'Cinwaan gobaad WINS hawl', \r
+'priority' => 'Mudnaan', \r
+'profile' => 'Muuqaal', \r
+'profile deleted' => 'Muuqaal msaxan: ', \r
+'profile has errors' => 'Muuqaal khaldan', \r
+'profile made current' => 'Muuqaal samayn ku jiraa : ', \r
+'profile name' => 'Muuqaal magac', \r
+'profile name not given' => 'Muuqaal magac ku ma jiro.', \r
+'profile saved' => 'Muuqaal wa kaysanyahay: ', \r
+'profiles' => 'Muuqaalo', \r
+'proto' => 'Proto', \r
+'protocol' => 'haab-raac', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Proxy access graaf', \r
+'proxy log viewer' => 'Proxy log arkid', \r
+'proxy logs' => 'Proxy logyal ', \r
+'proxy port' => 'Proxyport', \r
+'pulse' => 'Garaac', \r
+'pulse dial' => 'Garaac tallefoon:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Akhri qaybtaan', \r
+'reboot' => 'Reboot', \r
+'rebooting' => 'Dib u bilaabid', \r
+'rebooting ipcop' => 'Dib u bilaabid ipcop', \r
+'reconnection' => 'Dib isku xidhid', \r
+'references' => 'Tixraac', \r
+'refresh' => 'Fir fircoon helid', \r
+'refresh update list' => 'Fir fircoon helid casri ee liska', \r
+'released' => 'Sii deyn', \r
+'remark' => 'Faallo', \r
+'remark title' => 'Cinwaan faallo:', \r
+'remote access' => 'Access yar', \r
+'remote host/ip' => 'Magac yar ip', \r
+'remote logging' => 'log yar', \r
+'remote subnet' => 'subnet yar:', \r
+'remote subnet is invalid' => 'subnet yar wa khalaad.', \r
+'remove' => 'Qadid', \r
+'remove ca certificate' => 'Shahaado ca qadid', \r
+'reserved dst port' => 'U khaas ah dst port:', \r
+'reserved src port' => 'U khaas ah src port:', \r
+'reset' => 'Soo labaad', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Soo labaad qaabdhisida vpn iyo ka qaadid ca sahaado iyo shahaadoyin ku dhisan xidhidh', \r
+'restart' => 'Dib u bilaabid', \r
+'restore' => 'Sooc-celin', \r
+'restore defaults' => 'Sooc-celin khalaad', \r
+'restore hardware settings' => 'Sooc-celin gelin harware', \r
+'reverse sort' => 'Kala rogid Sort', \r
+'root certificate' => 'Root shahaado', \r
+'root path' => 'Root fayl', \r
+'router ip' => 'Router cinwaan IP:', \r
+'routing table entries' => 'Routing majaal gelin', \r
+'running' => 'Ordaya', \r
+'save' => 'Kaydi', \r
+'save error' => 'Aan karin kaydinta khalaadke', \r
+'script name' => 'Script magac:', \r
+'secondary dns' => 'DNS labaad:', \r
+'secondary ntp server' => 'NTP hawl labaad ooserver', \r
+'secondary wins server address' => 'Sekundær WINS labaad cinwaan server', \r
+'seconds' => 'Ilbidhiqsi.', \r
+'section' => 'Goon', \r
+'sectors read from disk per second' => 'Qaybta akhrista ee diskiga ilbidhiqsi kastaba', \r
+'sectors written to disk per second' => 'Qaybta qoraal ee diskiga ilbidhiqsi kastaba', \r
+'secure shell server' => 'SSH hawl', \r
+'select' => 'doroo', \r
+'select dest net' => 'doroo dest net.', \r
+'select source net' => 'doroo asal net.', \r
+'send cr' => 'Dir cr:', \r
+'september' => 'Setembar', \r
+'serial' => 'Taxane', \r
+'service' => 'Hawl', \r
+'service added' => 'Hawl ku darid', \r
+'service name' => 'Magac hawl:', \r
+'service removed' => 'Qadid hawl', \r
+'service updated' => 'Hawl casri', \r
+'servicename' => 'Tjenestenavn', \r
+'services' => 'Hawlo', \r
+'services settings' => 'Hawl gelin', \r
+'set time now' => 'Geli waqtika imika', \r
+'settings' => 'Gelin', \r
+'shaping add options' => 'Ku darid hawl', \r
+'shaping list options' => 'Socodka hawlaha', \r
+'shared' => 'Qaybin', \r
+'shared memory' => 'Qaybi xusuusta', \r
+'show ca certificate' => 'Tus shahaadada ca', \r
+'show certificate' => 'Tus shahaadada', \r
+'show host certificate' => 'Tus xiririye shahaado', \r
+'show root certificate' => 'tus root shahaado', \r
+'shutdown' => 'Demi', \r
+'shutdown control' => 'kantrool demin', \r
+'shutdown2' => 'Demi:', \r
+'shutting down' => 'demid', \r
+'shutting down ipcop' => 'demi IPCop', \r
+'size' => 'Cabir', \r
+'sort ascending' => 'nooc kor u kacaya', \r
+'sort descending' => 'nooc hoose u kacaya', \r
+'source' => 'Asaas', \r
+'source ip' => 'Asaas IP', \r
+'source ip and port' => 'Asaas IP:Port', \r
+'source ip bad' => 'Asaas IP oo xun.', \r
+'source ip in use' => 'Asaas IP la isticmalo:', \r
+'source net' => 'Asaas net', \r
+'source network' => 'Asaas network', \r
+'source port' => 'Asaas port', \r
+'source port in use' => 'Asaas la isticmalo:', \r
+'source port numbers' => 'Asaas port lambar', \r
+'source port overlaps' => 'Asaas port oeverlap.', \r
+'speaker off' => 'Samacad demin:', \r
+'speaker on' => 'Samac shidid:', \r
+'src port' => 'src port', \r
+'srcprt range overlaps' => 'srcprt saf overlaps.', \r
+'srcprt within existing' => 'srcprt dhexdisa wa jira.', \r
+'ssh fingerprint' => 'Faro ku hayn', \r
+'ssh host keys' => 'SSH xiririye magac', \r
+'ssh is disabled' => 'SSH ma shaqaynayo.', \r
+'ssh is enabled' => 'SSH wa helikarta.', \r
+'ssh key' => 'Fure', \r
+'ssh key size' => 'Cabiraad fure', \r
+'ssh keys' => 'ssh fureyal', \r
+'ssh1 disabled' => 'SSH1 ma shaqayneyso', \r
+'ssh1 enabled' => 'SSH1 wey shaqayneysa.', \r
+'sspasswords' => 'Password', \r
+'ssproxy graphs' => 'Proxy graaf', \r
+'sssystem status' => 'Heer nidaam', \r
+'sstraffic graphs' => 'Graaf socod', \r
+'standard login script' => 'Heer nidaam script', \r
+'start address' => 'Bilow cinwaanka:', \r
+'state or province' => 'Degmo ama degaan', \r
+'static ip' => 'IP jogta ah', \r
+'status' => 'Heer', \r
+'status information' => 'Heer macluumaad', \r
+'stopped' => 'Jojin', \r
+'subject' => 'Mowduc', \r
+'subnet is invalid' => 'Subnrt ma shaqayo', \r
+'successfully refreshed updates list' => 'Ku guleysi liska casrika ah.', \r
+'summaries kept' => 'Qabso muhimada', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'swap isticmalid kasta.', \r
+'system cpu' => 'Nidaam CPU', \r
+'system cpu usage' => 'Nidaam CPU isticmalid', \r
+'system graphs' => 'Nidaam graaf', \r
+'system log viewer' => 'Nidaam log tusid ', \r
+'system logs' => 'Nidaamo log', \r
+'system status information' => 'Nidaam heer macluumaad', \r
+'telephone not set' => 'Telefoon lambar la ma gelin.', \r
+'the following update was successfully installed' => 'Qayb ta ku xigta ee casrika ah waa la geliyey', \r
+'the statistics were last updated at' => 'Tiro-koob u danbeyey', \r
+'there are updates' => 'Halkaaas waa la xcasriyeyey.', \r
+'there are updates available' => 'Halkaaas la xcasriyeyey waa la helikara.', \r
+'there was no file upload' => 'Fayl la xammuley ma jiro.', \r
+'this feature has been sponsored by' => 'Muuqaalkan waxa kafaala-qaday', \r
+'this field may be blank' => 'Faylkan waa bannaanyahay.', \r
+'time' => 'Waqti', \r
+'time server' => 'Waqti Server', \r
+'toggle enable disable' => 'Karsiin ama Karsiin La Aan', \r
+'traffic on' => 'Socod shidid', \r
+'traffic shaping' => 'Socodka Wadid', \r
+'traffic shaping settings' => 'Socodka Wadid Gelin', \r
+'type' => 'Teeb', \r
+'unnamed' => 'Maagac  ku ma jiro', \r
+'use' => 'Isticmaal', \r
+'use dov' => 'DOV (Data Over Voice) isticmaalnaa:', \r
+'use ibod' => 'Bandwidth on Demand (iBOD) isticmaalnaa:', \r
+'used' => 'Isticmaalay', \r
+'used memory' => 'Xusuus isticmaanaa', \r
+'used swap' => 'Swap isticmaalnaa', \r
+'vci number' => 'Tiro VCI:', \r
+'vpi number' => 'Tiro VPI:', \r
+'vpn on blue' => 'VPN ku BULUUG', \r
+'week' => 'Asbuuc', \r
+'weeks' => 'asbuuc', \r
+'year' => 'Sanad', \r
+'your e-mail' => 'E-mailcinwaanaa', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/so/install/CVS/Entries b/langs/so/install/CVS/Entries
new file mode 100644 (file)
index 0000000..a1edb22
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_so.c/1.1.2.5/Mon Dec 12 09:23:30 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/so/install/CVS/Repository b/langs/so/install/CVS/Repository
new file mode 100644 (file)
index 0000000..f1b2e79
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/so/install
diff --git a/langs/so/install/CVS/Root b/langs/so/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/so/install/CVS/Tag b/langs/so/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/so/install/lang_so.c b/langs/so/install/lang_so.c
new file mode 100644 (file)
index 0000000..fb2e379
--- /dev/null
@@ -0,0 +1,508 @@
+/*\r
+ * Somali  (so) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * Copyright (c) 2004 Arnt Karlsen, Mohamed Musa Ali, Michael Spann\r
+ *  \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *so_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Cinwaagelin",\r
+/* TR_ADMIN_PASSWORD */\r
+"Mamul 'admin' user password",\r
+/* TR_AGAIN_PROMPT */\r
+"Celin:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Karkastaba guul ugu tala gelid.",\r
+/* TR_AUTODETECT */\r
+"* AWTOMATIK RAADIYE * ",\r
+/* TR_BUILDING_INITRD */\r
+"Samayn INITRD...",\r
+/* TR_CANCEL */\r
+"Burin",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Ogolaansho kaar",\r
+/* TR_CHECKING */\r
+"Houbin URL...",\r
+/* TR_CHECKING_FOR */\r
+"Raadis: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Doroo card-ISDN ku jira mashiinka.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Doro protocol-ISDN aad uu bahantahay.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Qaabdhis DHCP-server adoo gelinya macluumayada.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Qaabdhis networking.",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Wa inaad sameysa qaabdhisida ado xammulaya driverka ku haboon interface CAGAAR, waxa sidtan ku surtobaysa adoo ku daya kaar shabakadayd ama driverka ku haboon ee liska.  Hadii anad hayn kaar shabakadeyd galaya, gadal ayad ka qaabdhisidoonta gelinta.  Hadii anad hayn kaarlamid ah interface CAGAAR, hab raac khaas ah aya lo bahanyahay karaarka iyo hab raac ee interface CAGAAR waa in la qaabdhisa.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Qaabdhis shabaakada driver si kaarkastaba interface loo qoondeeyo.  Interface waain u u qaabdhisnada sida faylalka:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Qaabdhis CDROM aadigo dooranaya cinwaanka IO ee saxdaah iyo/ama IRQ.",\r
+/* TR_CONGRATULATIONS */\r
+"Hambalyo!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"Gelintaan %s waa la guleeystay. Fadlaan ka saar disket ama CDROM kambuyuutarka. Gelintu way shaqayn marka aad qaabdhistid ISDN, karrarka shabakada iyo nidaam password. Kadib gelintu markay dhamato wa in aad duljojisa dhaqaaqida web http://%s:81 ama https://%s:445 (sidad u magacabtay %s) netkaga dhexdisa oo qaabdhis tallefoon diriista (hadii loo bahdo) shaqaysii access.  Xusuuso gelinta password ee %s modemisticmalka hadii aad u bahantahay in u kantrollo %s 'admin' xidhidhka.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Harddiskagu waa yaryahey, laakiin waad wadikartaa swap kaastaba.",\r
+/* TR_CURRENT_CONFIG */\r
+"Qaabdhisid lagujiro: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Fulin la´aan irrid:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Fulin la´aan irrid\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Fulin la´aan hishiiska waqtika (min.):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Fulin la´aan hishiiska waqtika\n",\r
+/* TR_DETECTED */\r
+"Raadii: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Hostmagac DHCP:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Hostmagac DHCP\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Qaabdhisida DHCP shabakada",\r
+/* TR_DISABLED */\r
+"Shaqeynla´aan",\r
+/* TR_DISABLE_ISDN */\r
+"Awood-beelid ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"Harddisk waa yaryahay.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Gelinta DNS iyo irrid iyo",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Qor macluumaadka DNS iyo irrid.  Qaabdhisidan waxa la isticmalikaraya hadii IP neg jirtoo (iyo DHCP hadii DNS qaabdhisantahay) interface GUDUUD dhexdisa.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Qaabdhisidadu ma isticmalikarayso interface GUDUUD ee kaarka ethernetka.  DNS iyo macluumaadka irrid waa in u awtomatik u shaqaya marka aad dialup taleefoonka.",\r
+/* TR_DOMAINNAME */\r
+"Domainmagac",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Domainmagac ma bannaankaro.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Domainmagac ku ma jiiro masaafo dhexe.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Domainmagac ku ma jiiro xuruuf ama joogsi.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Domainmagac gadddaal-gal:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Domainmagac gadddaal-gal\n",\r
+/* TR_DONE */\r
+"Dhammaada",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nMa rabtaa iin aad beddashid qaab gelinta?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Gelinta kaar iyo driverda",\r
+/* TR_ENABLED */\r
+"U ogolaan",\r
+/* TR_ENABLE_ISDN */\r
+"U ogolaan ISDN",\r
+/* TR_END_ADDRESS */\r
+"Dhammee cinwaanka:",\r
+/* TR_END_ADDRESS_CR */\r
+"Dhammaad cinwaan\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Kaarar ISDN (khasatan ISA) aya u baahan kalkaliyeyal hab raac IRQ- iyo macluumad cinwaan IO.  Hadii aad heshid kaararka ISDN u qor sidataan kalkaliyeyasha. F.ex.: \"io=0x280 irq=9\"...",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Gelii %s 'admin' password.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Gelii domainmagac",\r
+/* TR_ENTER_HOSTNAME */\r
+"Gelii hostmagac ee kambuyuutarka.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Gelii macluumad cinwaanka IP",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Aan helin khalad aawtotik aah.  Qor kalkaliyayasha lo bahanyahay.\"",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Gelii 'root'-password.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Gelii 'setup'-password.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Gelii macluumadka cinwanka IP ee %s interface.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Gelii degmo taleefoon lambar (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Geliid jid URL ku socota ipcop-<version>.tgz iyo images/scsidrv-<version>.img. OBS: DNS la ma helikaro wa in ay noqotaa http://X.X.X.X/<directory>",\r
+/* TR_ERROR */\r
+"Khalad",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Khalad qoraal ooka yimid qaabdhisida.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Ka saarid baakada hab raac...",\r
+/* TR_FAILED_TO_FIND */\r
+"Aan helin faylkii URL.",\r
+/* TR_FOUND_NIC */\r
+"%s u xu heelay kalkaliye NIC kambuyuutarka dhexdisa: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"Jarmal 1TR6",\r
+/* TR_HELPLINE */\r
+"               <Tab>/<Alt-Tab> Udhexeysa curiyaha | <Space> dooro",\r
+/* TR_HOSTNAME */\r
+"Hostmagac",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Hostmagac la ma heelin.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Hostmagac ma lee masaafo dhexe.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Hostmagac ma lee xuuruf iyo lambaro.",\r
+/* TR_INITIALISING_ISDN */\r
+"Bilowid ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Geeli %s CD CDROM driverka dhexdisa.",\r
+/* TR_INSERT_FLOPPY */\r
+"Fadlaan geeli %s driverka floppy dhexdisa.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Dhigitankii waa masaaxmay.",\r
+/* TR_INSTALLING_FILES */\r
+"Dhigitaan faylal...",\r
+/* TR_INSTALLING_GRUB */\r
+"Dhigitaan GRUB...",\r
+/* TR_INTERFACE */\r
+"Interface %s",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Khalad interface aya soo baxay.",\r
+/* TR_INVALID_FIELDS */\r
+"Faylalka ku xiga waa khalad:\n\n",\r
+/* TR_INVALID_IO */\r
+"Doorashada cinwaanka IO adresse waa khalad.",\r
+/* TR_INVALID_IRQ */\r
+"Faahfaahinta IRQ waa khalad.",\r
+/* TR_IP_ADDRESS_CR */\r
+"Cinwaan IP\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"Cinwaan IP:",\r
+/* TR_ISDN_CARD */\r
+"Kaar ISDN",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"Kaar ISDN lama helin wa in aad xaqijiisa kalkaliyeyasha racaya.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Doorasho kaar ISDN",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Qaabdhisid ISDN",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Qaabdhisidtanka liiska ISDN",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN ma asaasno sida shay aan la dooran.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN ma qaabdhisno dooro shayka rabtid in aad qaabdhistid.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Doorosho nidaam ISDN.",\r
+/* TR_ISDN_STATUS */\r
+"ISDN waa socda %s.\n\n   Nidaam: %s\n   Kaar: %s\n   Degmo taleefoon lambar: %s\n\nDooro item raabtid in aad qaabdhistid, ama dooro dhigitanka socda.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Maab botoomo",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Dooro nooca botoomada aad isticmaleeysid liiska hoose.",\r
+/* TR_LEASED_LINE */\r
+"Hishiis kiro khadka taleefoonka",\r
+/* TR_LOADING_MODULE */\r
+"Xamuulid hab raac...",\r
+/* TR_LOADING_PCMCIA */\r
+"Xamuulid hab raac PCMCIA...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Doon-doonid: %s\"",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Samayn faylal nidaam boot...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Samayn faylal nidaam log...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Samayn faylal nidaam root...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Samayn swap dhaxaysiin...",\r
+/* TR_MANUAL */\r
+"* Gacmaha lugu sameeyo *",\r
+/* TR_MAX_LEASE */\r
+"Inta ugu badan gaarsiin hishiis waqti (min.):",\r
+/* TR_MAX_LEASE_CR */\r
+"Inta ugu badan gaarsiin hishiis waqti\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Maqnasho macluumadki IP ee buluug interfaceka.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Maqnasho macluumadki IP ee oranja interfaceka.",\r
+/* TR_MISSING_RED_IP */\r
+"Maqnasho macluumadki IP ee GUDUUD interfaceka.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Magaca hab raac ma bannaankaro.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Gelin hab raac magacisa iyo kalkaaliyeyasha driverka aad u baahantahay.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Isku dubbaridid faylalka nidaamka boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Isku dubbaridid faylalka nidaamka log...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Isku dubbaridid faylalka nidaamka root...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Isku dubbaridid baddalad xuddud...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Degmo lambar taleefoon (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Qarin warbaahineyd:",\r
+/* TR_NETWORKING */\r
+"Nidaam warbaahineyd",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Cinwaan warbaahineyd\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Cinwaan warbaahineyd:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Nooc qaabdhisida nidaam",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Dooro nidaam qaabdhismed",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Dooro nidaam ka warbaahineed ee  %s.  Racii noocyada qaabdhismedka ee interfaceyada ku xidhaan ethernet.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Qari nidaam warbaahineed\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Khalad asaas nidaam warbaahineed.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Ma haysatid ogolaansho kaar oo ku filan.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Ma jiro buluug interface hawl gaar ah lagu qeybiyay.",\r
+/* TR_NO_CDROM */\r
+"La ma helin CD-ROM.",\r
+/* TR_NO_HARDDISK */\r
+"Harddisk la ma helin shabakada dhexdeda.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"IPCOP la ma helin shabakada dhexdeda.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Ma jiro oranja interface hawl gaar ah lagu qeybiyay.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Ma jiro GUDUUD interface hawl gaar ah lagu qeybiyay.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"La ka ma helin sawir SCSI shabakada.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Ku ma jiro kaarar bannaan, laakiin qaar badan aya lo baahanyayhay oo liiska ka dooro driver iyo kaararklaba.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Qeybinta disk...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Passwordhadu si ma ahiin.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Passwordku ma bannaankaro.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Passwordku ku jirikaromasaafo dhexe.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Password:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Taleefoon lambar ma noqoonkaro faaruq.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Dhigidii barnaamij waa diyaarinaya harddiskkihi %s.  Bilow qaynbi disk, ka dib qaybitanku wuxu leeyahay nidaam fayl daar.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Cadaadi  Ok  si aad dib u ka cayriso.",\r
+/* TR_PRIMARY_DNS */\r
+"Asaas DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Asaas DNS\n",\r
+/* TR_PROBE */\r
+"Baaris",\r
+/* TR_PROBE_FAILED */\r
+"Iskii u helid khalad.",\r
+/* TR_PROBING_SCSI */\r
+"Baaris xeeladaha SCSI...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Dhibaato gelin %s 'admin' password.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Dhibaato gelin 'root'-password.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Dhibaato gelin ´setup´ password.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Nidaan/Dal",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Istaajin nidaam warbbahineed...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Hoos u durkid degmo nidaam warbbahineed...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Hoos u durkid la´ aan degmo nidaam warbbahineed...",\r
+/* TR_QUIT */\r
+"Joojin",\r
+/* TR_RED_IN_USE */\r
+"ISDN (ama xidhid kale oosiyadaa) hadoo shaqaynayo. Ma awoodeysid in aad qaabdhistid inta ushaqaynayo GUDUUD interface.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nMarkay qaabdhisidu dhamatoo dib u shidid shabakaded aya lo baahanyahay.",\r
+/* TR_RESTORE */\r
+"Soocelin",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Haddi aad hayso diskett iyo nidaam %s qaabdhismed geli diskettka oo cadadi Soocelin.",\r
+/* TR_ROOT_PASSWORD */\r
+"'root'-password",\r
+/* TR_SECONDARY_DNS */\r
+"DNS labaad:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"DNS labaad\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"DNS labaad ah aan-lahayn asaas DNS",\r
+/* TR_SECTION_MENU */\r
+"Dooro liiska",\r
+/* TR_SELECT */\r
+"Dooro",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Dooro nooca CDROM",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"CDROM la ma helin mashin dhexdisa dooro driverka aad rabtid in aad isticmaashid si uu %s u awoodo CDROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Dooro dhigida war-baahinta.",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s waxa laga soxigankara meelo kaladuwaan .Ta uku sahlaan waa in aad isticmashid CDROM driverka kambuyuutarka.  Hadii u kambuyuutarku lahaayn drive ,waxa isticmaligartaa kambuyuutar klaee adoo adeegsanaya LAN taasi oo lee faylal HTTP.  Tani waxay ubahantahay diskette aqriyee.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Dooro shabakada driver",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Dooro shabakada driverka kaar ku jira mashinka.  Hadii aad dorato MANUAL, waxa janis aad u sinaysa gelinta magac habraaca driver iyo kalkaliyayasha driveradakalee ee u bahaan qalaab gaar ah, sida kaarka ISA. driver uu.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Dooro interfaceka aad rabtid in aad qaabdhistid.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Dooro itemka aad rabtid in aad qaabdhistid.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Gelin %s mamul (admin) password...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Gelin 'root' password...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Gelin 'setup' password",\r
+/* TR_SETUP_FINISHED */\r
+"Asaasku waa dhenyahay cadadi Ok si aad u ka cayriiso.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Asaasku ma dhamestirnoo.  Waa in aad hubisa in si wanagsan aad u dhamestirtay asaaska marlabaad shellka dhexdisa ",\r
+/* TR_SETUP_PASSWORD */\r
+"Asaas (setup) password",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Xirmo siyaada aah hab raac iyo kalkaaliyeyasha.",\r
+/* TR_SINGLE_GREEN */\r
+"Qaabdhismedkagu waa ku xiranyahay CAGAAR interface oo kaliya.",\r
+/* TR_SKIP */\r
+"Iska-dhafid",\r
+/* TR_START_ADDRESS */\r
+"Biloow cinwaan:",\r
+/* TR_START_ADDRESS_CR */\r
+"Biloow cinwaan\n",\r
+/* TR_STATIC */\r
+"Fadhiya",\r
+/* TR_SUGGEST_IO */\r
+"(Soo jeedin  %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(Soo jeedin %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Driverkan hab raac waa xammulsanyahay.",\r
+/* TR_TIMEZONE */\r
+"Waqtisoone",\r
+/* TR_TIMEZONE_LONG */\r
+"Dooro waqtisoone oo ku jira liiska hoosse.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Aan karin soo-tuurida CDROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Aan karin ka-saarid hab raac.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Aan karin helida driver kaasta oo siyaada aah.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Aan karin helida kaar ISDN kambuyuutarka dhexdisa. Waxa u  bahantahay in khaasyeshiid kalkaliyayasha racaya hadii u yahay kaarku ISA ama ku qalab khaas ah u bahaan.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Aan karin bilowida ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Aan karin rakibida faylaka.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Aan karin rakibida GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Aan karin xammulida hab raac driver.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Aan karin sameyynta nidaam faylalka boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Aan karin sameyynta nidaam faylalka log.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Aan karin sameyynta nidaam faylalka root.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Aan karin sameyynta swap dhaxaysiin.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Aan karin sameyynta xidhiid /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Aan karin sameyynta xidhiid /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Aan karin sameyynta xidhiid /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Aan karin sameyynta xidhiid /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Aan karin sameyynta xidhiid /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Aan karin sameyynta xidhiid /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Aan karin fuulid nidaam faylal boot.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Aan karin fuulid nidaam faylal log.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Aan karin fuulid nidaam faylal proc.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Aan karin fuulid nidaam faylal root.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Aan karin fuulid swap xuduud.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Aan karin furid xiriiriyeyalfayl.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Aan karin furida faylal kii ku jiray.",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Aan karin xudduudida disk.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Aan karin qaadida waqti go´an faylalki xammulsana.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Aan karin xirida xiriiriye magac.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Aan karin dhadhicid CDROM/diskett.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Aan karin dhadhicid harddisk.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Aan karin qoorida /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Aan karin qoorida /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Aan karin qoorida /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Aan karin qoorida /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Aan karin qoorida /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Aan karin qoorida %s/ethernet/settings (gelin).",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Aan karin qoorida /main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Aan karin qoorida %s/main/settings (%s/muhiimmada/gelin).",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Waa kaar ethernet lakoo dacwoon karin noocisu u yahay :\n%s\n\nWaxa ku xirikartaa labadan:",\r
+/* TR_UNKNOWN */\r
+"LA GARANEYN",\r
+/* TR_UNSET */\r
+"AAN KU JIIRIN",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"DIGNIIN",\r
+/* TR_WARNING_LONG */\r
+"Hadii badasho cinwaanka IP %s mashinkanen aya xidhiidhiki joogsanaya, waa in aad IP cusuub ku xidhidhiisa.  Tani waxay halis u tahay muuqaal ahaan marka ay dhibato so foodsarto mashinka.",\r
+/* TR_WELCOME */\r
+"Ku soo dhawoow baarnamijgi dhismaha. FIX!!!",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Waad sameysay kalhoree interface CAGAAR ee driverka.",\r
+}; \r
+  \r
diff --git a/langs/sv/CVS/Entries b/langs/sv/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/sv/CVS/Repository b/langs/sv/CVS/Repository
new file mode 100644 (file)
index 0000000..edcf456
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/sv
diff --git a/langs/sv/CVS/Root b/langs/sv/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/sv/CVS/Tag b/langs/sv/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/sv/cgi-bin/CVS/Entries b/langs/sv/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..603a08f
--- /dev/null
@@ -0,0 +1,2 @@
+/sv.pl/1.5.2.25/Tue Jan 24 08:44:26 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/sv/cgi-bin/CVS/Repository b/langs/sv/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..0eca4cc
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/sv/cgi-bin
diff --git a/langs/sv/cgi-bin/CVS/Root b/langs/sv/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/sv/cgi-bin/CVS/Tag b/langs/sv/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/sv/cgi-bin/sv.pl b/langs/sv/cgi-bin/sv.pl
new file mode 100644 (file)
index 0000000..34225e9
--- /dev/null
@@ -0,0 +1,947 @@
+# Swedish (sv) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Anders Johansson, Christer Jonson\r
+#  \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Ett CA certifikat med detta namn finns redan.', \r
+'a connection with this common name already exists' => 'En förbindelse med detta namn finns redan.', \r
+'a connection with this name already exists' => 'En förbindelse med det namnet finns redan.', \r
+'access allowed' => 'Tillgång tillåten från:', \r
+'access refused with this oinkcode' => 'Tillgång nekas med denna oink-kod', \r
+'action' => 'Åtgärd', \r
+'add' => 'Lägg till', \r
+'add a host' => 'Lägg till en värd:', \r
+'add a new rule' => 'Lägg till en ny regel:', \r
+'add device' => 'Lägg till enhet', \r
+'add network' => 'Lägg till nätverk', \r
+'add new alias' => 'Lägg till ny alternativ IP:', \r
+'add new lease' => 'Lägg till nytt fast lån:', \r
+'add service' => 'Lägg till tjänst', \r
+'add xtaccess' => 'Lägg till extern access', \r
+'added from dhcp lease list' => 'adderad från DHCP lista över IP-lån', \r
+'admin user password has been changed' => 'Lösenord för admin har ändrats.', \r
+'administrator user password' => 'Lösenord för administratör:', \r
+'adsl settings' => 'ADSL inställningar', \r
+'advanced' => 'Avancerad', \r
+'again' => 'Repetera:', \r
+'alcatelusb help' => 'För att använda SpeedTouch USB modem så måste man ladda upp modemets firmware till din IPCop dator. Ladda ner <b>Embedded Firmware</b> paketet från speedtouch.com, zippa upp filen och använd formuläret nedan till att ladda upp den fil som hör till ditt modem: KQD6_3.xxx för modem med Rev<4 eller ZZZL_3.xxx för modem med Rev=4.', \r
+'alcatelusb upload' => 'Ladda ner ny Firmware (drivprogram) för Speedtouch USB', \r
+'alias ip' => 'Alternativ IP (alias)', \r
+'aliases' => 'Alias', \r
+'aliases not active' => 'Alternativadresser (alias) aktiveras inte om inte det RÖDA gränssnittet är STATISKT', \r
+'all' => 'alla', \r
+'all interfaces' => 'Alla gränssnitt', \r
+'all updates installed' => 'Alla uppdateringar installerade', \r
+'alt dialup' => 'Uppringning', \r
+'alt home' => 'Hem', \r
+'alt information' => 'Information', \r
+'alt logs' => 'Loggar', \r
+'alt services' => 'Tjänster', \r
+'alt system' => 'System', \r
+'alt vpn' => 'VPN', \r
+'and' => 'och', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'apply' => 'Aktivera ändringar', \r
+'april' => 'April', \r
+'archive not exist' => 'Konfigurationsarkiv saknas', \r
+'are you sure' => 'Är du säker?', \r
+'arp table entries' => 'Poster i ARP-tabellen', \r
+'august' => 'Augusti', \r
+'authentication' => 'Identifiering', \r
+'automatic' => 'Automatisk', \r
+'available updates' => 'Tillgängliga uppdateringar:', \r
+'average' => 'Medelvärde', \r
+'avoid dod' => 'Använd inte denna inställning tillsammans med "Dial on Demand". Används huvudsakligen när IPCop finns bakom en router. RÖD IP-adress måste vara inom någon av de reserverade adressområdena 10/8, 172.16/12 eller 192.168/16.', \r
+'back' => 'Bakåt', \r
+'backup' => 'Backup', \r
+'backup config floppy' => 'Backupkonfiguration - Floppy disk', \r
+'backup configuration' => 'Konfiguration av backup:', \r
+'backup sets' => 'Backup set', \r
+'backup to floppy' => 'Backup till floppydisk', \r
+'backupprofile' => 'Om återanslutningen inte lyckas, byt till profil', \r
+'bad characters in script field' => 'Ogiltiga tecken i skriptfält', \r
+'bad characters in the telephone number field' => 'Ogiltiga tecken i telefonnummer.', \r
+'bad destination range' => 'Första angivna portnummer för mottagande system är större än eller lika med det andra värdet', \r
+'bad ignore filter' => 'Felaktigt filter:', \r
+'bad return code' => 'Hjälpprogrammet returnerade en felkod', \r
+'bad source range' => 'Första angivna portnummer för källsystemet är större eller lika med det andra värdet', \r
+'beep when ppp connects or disconnects' => 'Ge signal när IPCop ansluter eller kopplar ner förbindelse', \r
+'behind a proxy' => 'Bakom en proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'Blått', \r
+'blue access' => 'Tillgång till Blått nät', \r
+'blue interface' => 'Blått gränssnitt', \r
+'broadcast' => 'Multianrop (broadcast)', \r
+'broken pipe' => 'Bruten "pipe"', \r
+'buffered memory' => 'Buffrat minne', \r
+'buffers' => 'buffertar', \r
+'bytes per second' => 'Bytes per sekund', \r
+'ca certificate' => 'CA Certifikat', \r
+'ca name' => 'CA Namn', \r
+'cache management' => 'Mellanlagring av websidor', \r
+'cache size' => 'Cachestorlek (MB):', \r
+'cached' => 'buffrad', \r
+'cached memory' => 'Cache minne', \r
+'cancel' => 'Avbryt', \r
+'cannot enable both nat traversal and compression' => 'Du kan inte aktivera både "NAT Traversal" (släppa igenom VPN-data) och kompression', \r
+'cannot enable ntp without specifying primary' => 'Det går inte att starta NTP utan att ange primärdata.', \r
+'cannot specify secondary dns without specifying primary' => 'Kan inte specificera sekundär DNS utan att specificera primär.', \r
+'cannot specify secondary ntp without specifying primary' => 'Du kan inte ange en Sekundär NTP-server utan att ange en Primär server', \r
+'cannot specify secondary wins without specifying primary' => 'Du måste ange en primär WINS-server innan du anger en sekundär.', \r
+'cant change certificates' => 'Går inte att byta certifikat.', \r
+'cant enable xtaccess' => 'Den tillhörande vidarebefordningsregeln är inaktiverad, därför kan du inte aktivera extern access för denna regeln.', \r
+'cant start openssl' => 'Går inte att starta OpenSSL', \r
+'caps all' => 'ALLA', \r
+'capsclosed' => 'STÄNGD', \r
+'capsopen' => 'ÖPPEN', \r
+'capswarning' => 'VARNING', \r
+'cert' => 'Certifikat', \r
+'certificate' => 'Certifikat', \r
+'certificate authorities' => 'Certifikatutfärdare', \r
+'certificate does not have a valid ca associated with it' => 'Certifikatet är inte associerat med en giltig CA .', \r
+'certificate file move failed' => 'Gick inte att flytta certifikat filen', \r
+'cfg restart' => 'Du rekommenderas att starta om datorn efter återkopiering.', \r
+'chain' => 'Kedja', \r
+'change passwords' => 'Ändra lösenord', \r
+'check vpn lr' => 'Kontrollera', \r
+'city' => 'City', \r
+'clear cache' => 'Töm minnesbuffert', \r
+'clenabled' => 'NTP synkning från klient tillåten', \r
+'click to disable' => 'Aktiv (klicka för att deaktivera)', \r
+'click to enable' => 'Deaktiverad (klicka för att aktivera)', \r
+'clock has not been synchronized' => 'Systemklockan har inte synkroniserats', \r
+'clock last synchronized at' => 'Systemklockan synkroniserades senast', \r
+'common name' => 'Gemensamt namn', \r
+'compression' => 'Kompression:', \r
+'computer to modem rate' => 'Hastighet dator till modem:', \r
+'concentrator name' => 'Namn på koncentrator:', \r
+'confirmation' => 'bekräftelse', \r
+'connect on ipcop restart' => 'Anslut vid återstart av IPCop:', \r
+'connect the modem' => 'Anslut modemet', \r
+'connect timeout' => 'Anslutningstimeout:', \r
+'connected' => 'Ansluten', \r
+'connecting' => 'Ansluter...', \r
+'connection' => 'Anslutning', \r
+'connection debugging' => 'Analys av förbindelse', \r
+'connection status and controlc' => 'Status på förbindelse:', \r
+'connection tracking' => 'IPTables uppkopplingsspårning', \r
+'connection type' => 'Typ av förbindelse', \r
+'connection type is invalid' => 'Ogiltig förbindelsetyp.', \r
+'connections' => 'Anslutningar', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'anslutningar är associerade med denna CA. Raderas CA raderas även anslutningarna.', \r
+'could not be opened' => 'kunde inte öppnas', \r
+'could not connect to' => 'Kunde inte ansluta till', \r
+'could not connect to www ipcop org' => 'Kunde inte ansluta till www.ipcop.org', \r
+'could not create directory' => 'Kunde inte skapa skapa katalog.', \r
+'could not download latest patch list' => 'Kunde inte ladda ner den senaste listan över patcher (inte ansluten).', \r
+'could not download latest updates' => 'Kunde inte hämta aktuella uppdateringar', \r
+'could not download the available updates list' => 'Kunde inte ladda ner listan över tillgängliga uppdateringar.', \r
+'could not open available updates file' => 'Kunde inte öppna filen för tillgängliga uppdateringar.', \r
+'could not open installed updates file' => 'Kunde inte öppna filen med installerade uppdateringar', \r
+'could not open update information file' => 'Kunde inte öppna filen med information om uppdateringar.  Filen är korrumperad.', \r
+'could not retrieve common name from certificate' => 'Kan inte hämta gemensamt namn från certifikatet.', \r
+'country' => 'Land', \r
+'cpu usage per' => 'CPU utnyttjande per', \r
+'create' => 'Skapa', \r
+'credits' => 'Tack till', \r
+'cron server' => 'CRON-server', \r
+'current' => 'Nuvarande', \r
+'current aliases' => 'Nuvarande alternativa IP adresser:', \r
+'current dhcp leases on blue' => 'Aktuella DHCP-lån på Blått nät', \r
+'current dynamic leases' => 'Aktuella dynamiska (ip-adress-) lån', \r
+'current fixed leases' => 'Nuvarande fasta lån', \r
+'current hosts' => 'Nuvarande datorer:', \r
+'current profile' => 'Nuvarande profil:', \r
+'current rules' => 'Nuvarande regler:', \r
+'custom networks' => 'Speciella nätverk', \r
+'custom services' => 'Speciella tjänster', \r
+'dat without key' => 'Ett krypterat arkiv kan inte återkopieras utan nyckeln.', \r
+'date' => 'Datum', \r
+'date not in logs' => 'Ingen (eller endast ofullständig) loggning finns för den valda dagen', \r
+'day' => 'Dag', \r
+'day after' => 'Dagen efter', \r
+'day before' => 'Dagen före', \r
+'days' => 'dagar', \r
+'ddns hostname added' => 'Lagt till Dynamiskt DNS värdnamn', \r
+'ddns hostname modified' => 'Dynamisk DNS värdnamn är ändrat', \r
+'ddns hostname removed' => 'Tagit bort DNS värdnamn', \r
+'ddns minimize updates' => 'Minimera uppdateringar: innan uppdatering jämförs IP-adressen för hostname "[host.]domän" från DNS med IP-adress för RÖTT gränssnitt.', \r
+'ddns noip prefix' => 'I grupp-läge kan IP-adress utelämnas om värdnamnet föregås av <b>%</b>', \r
+'december' => 'December', \r
+'def lease time' => 'Normal lånetid', \r
+'default lease time' => 'Standardlånetid (min):', \r
+'default networks' => 'Normal nätverk', \r
+'default renewal time' => 'Normal förnyelsetid', \r
+'default services' => 'Normala tjänster', \r
+'delete' => 'Radera', \r
+'demon login script' => 'Loginskript för Demon', \r
+'description' => 'Beskrivning', \r
+'dest ip and port' => 'Dest. IP:Port', \r
+'destination' => 'Destination', \r
+'destination ip' => 'Destinations-IP', \r
+'destination ip bad' => 'Ogiltig destinations-IP', \r
+'destination ip or net' => 'Destinationens IP eller nät', \r
+'destination net' => 'Destinations nät', \r
+'destination port' => 'Destinationsport', \r
+'destination port numbers' => 'Destinationsport måste vara ett nummer.', \r
+'destination port overlaps' => 'Angivet intervall för portnummer överlappar existerande intervall.', \r
+'detail level' => 'Detaljnivå', \r
+'device' => 'Enhet', \r
+'devices on blue' => 'Enheter på Blått nät', \r
+'dhcp advopt add' => 'DHCP option lägg till', \r
+'dhcp advopt added' => 'DHCP option tillagd', \r
+'dhcp advopt blank value' => 'Värde för DHCP option kan inte lämnas tom', \r
+'dhcp advopt custom definition' => 'Dina sparade val av alternativ', \r
+'dhcp advopt definition' => 'Definition', \r
+'dhcp advopt definition exists' => 'Valt alternativ finns redan skapat. Du kan bara ändra eller radera det.', \r
+'dhcp advopt edit' => 'DHCP option ändra', \r
+'dhcp advopt help' => 'Lista optioner', \r
+'dhcp advopt list' => 'Lista DHCP optioner', \r
+'dhcp advopt modified' => 'DHCP optioner ändrade', \r
+'dhcp advopt name' => 'Optionens namn', \r
+'dhcp advopt removed' => 'DHCP option borttagen', \r
+'dhcp advopt scope' => 'Optionens påverkan', \r
+'dhcp advopt scope global' => 'Global påverkan', \r
+'dhcp advopt scope help' => 'Global påverkan eller begränsa till markerade interface.', \r
+'dhcp advopt unknown' => 'DHCP optionens namn okänt', \r
+'dhcp advopt value' => 'Optionens värde', \r
+'dhcp allow bootp' => 'Tillåt "bootp"-klienter', \r
+'dhcp bootp pxe data' => 'Ange eventuella bootp "pxe"-data för denna fasta dhcp-adress', \r
+'dhcp configuration' => 'DHCP-konfiguration', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP-server', \r
+'dhcp server disabled' => 'DHCP server inaktiverad.  Stoppad.', \r
+'dhcp server disabled on blue interface' => 'DHCP server deaktiverad för BLÅTT interface', \r
+'dhcp server enabled' => 'DHCP server aktiverad.  Startar om.', \r
+'dhcp server enabled on blue interface' => 'DHCP server aktiverad för BLÅTT interface', \r
+'dial' => 'Anslut', \r
+'dial user password' => 'Lösenord för uppringd användare har', \r
+'dial user password has been changed' => 'Lösenord för uppringd användare har ändrats.', \r
+'dialing mode' => 'Uppringning:', \r
+'dialup settings' => 'Inställningar för uppringning', \r
+'disk access per' => 'Diskaccesser per', \r
+'disk usage' => 'Diskutnyttjande:', \r
+'display' => 'Visa', \r
+'display hostname in window title' => 'Visa datornamnet i titelraden på browserfönster', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'DMZ pinhole konfiguration', \r
+'dmz pinhole rule added' => 'Lagt till DMZ pinhole regel; startar om DMZ pinhole', \r
+'dmz pinhole rule removed' => 'Tagit bort DMZ pinhole regel; startar om DMZ pinhole', \r
+'dmzpinholes for same net not necessary' => 'Det är inte nödvändigt att skapa "hål" inom samma nät. Byt käll- eller mål-nät.', \r
+'dns check failed' => 'Kontroll av namnserver (DNS) misslyckades', \r
+'dns proxy server' => 'DNS-proxyserver', \r
+'do not log this port list' => 'Logga inte trafik på portar i denna lista (reducerar logfilens storlek)', \r
+'dod' => 'Uppringning vid Förfrågan', \r
+'dod for dns' => 'Uppringning vid Förfrågan för DNS:', \r
+'dod not compatible with ddns' => 'Dial on demand går inte att använda tillsammans med den dynamiska dns-tjänsten', \r
+'dod waiting' => 'Väntar på begäran om uppringning', \r
+'domain' => 'Domän', \r
+'domain name' => 'Domännamn', \r
+'domain name suffix' => 'Domän (domän suffix):', \r
+'domain not set' => 'Domän inte inställd.', \r
+'downlink speed' => 'Hastighet nerlänk (kbit/s)', \r
+'download ca certificate' => 'Ladda hem CA certifikat', \r
+'download certificate' => 'Ladda ner certifikat', \r
+'download host certificate' => 'Ladda ner värd-certifikat', \r
+'download new ruleset' => 'Hämta nytt regelset', \r
+'download pkcs12 file' => 'Ladda ner PKCS12-fil', \r
+'download root certificate' => 'Ladda ner rot-certifikat', \r
+'dpd action' => '"Dead Peer Detection" -funktion', \r
+'driver' => 'Drivrutin', \r
+'dst port' => 'Dst port', \r
+'dstprt range overlaps' => 'Intervall för mottagande port överlappar en redan definierad port.', \r
+'dstprt within existing' => 'Intervall för mottagande port ligger inom ett redan definierat område.', \r
+'duplicate ip' => 'Angiven IP-adress finns redan', \r
+'duplicate ip bold' => 'Dubbla adresser är angivna i <b>fetstil</b>', \r
+'duplicate mac' => 'Angiven MAC-adress redan använd', \r
+'duplicate name' => 'Angivet namn är redan använt, välj ett annat.', \r
+'dyn dns source choice' => 'De(n) som erbjuder Dynamisk DNS kommer att erhålla IP-adress för denna IPCop från:', \r
+'dynamic dns' => 'Dynamisk DNS', \r
+'dynamic dns client' => 'Klient för dynamisk namnserver (DNS)', \r
+'e-mail address too long' => 'För lång e-post adress. Den måste vara kortare än 40 tecken.', \r
+'eciadsl help' => 'För att använda ECI ADSL modemet måste du ladda upp synch.bin filen till IPCop-datorn. Ladda ner firmware från ECIADSL:s hemsida och ladda upp filen <B>synch.bin</B> genom att använda formuläret nedför.', \r
+'eciadsl upload' => 'Ladda upp ECI ADSL Synch.bin filen', \r
+'edit' => 'Redigera', \r
+'edit a rule' => 'Ändra en befintlig regel:', \r
+'edit advanced settings when done' => 'Ändra avancerade inställningar när du är klar.', \r
+'edit an existing alias' => 'Ändra existerande alias', \r
+'edit an existing host' => 'Ändra en existerande värd', \r
+'edit an existing lease' => 'Ändra ett befintligt IP-lån', \r
+'edit device' => 'Ändra enhet', \r
+'edit hosts' => 'Redigera värdnamn', \r
+'edit network' => 'Redigera nätverk', \r
+'edit service' => 'Redigera tjänst', \r
+'empty' => 'Tom', \r
+'enable ignore filter' => 'Aktivera ignorerafilter', \r
+'enable javascript' => 'Aktivera Javaskript', \r
+'enable wildcards' => 'Aktivera wildcards:', \r
+'enabled' => 'Aktiverad:', \r
+'enabled on' => 'Aktiverad på', \r
+'enabledtitle' => 'Aktiverad', \r
+'encapsulation' => 'Inkapsling', \r
+'encrypted' => 'Krypterad', \r
+'end address' => 'Slutadress:', \r
+'err bk 1' => 'Fel vid skapande av arkiv', \r
+'err bk 2 key' => 'Fel vid skapande av nyckelfil', \r
+'err bk 3 tar' => 'Fel vid addering av filer till arkiv', \r
+'err bk 4 gz' => 'Fel vid komprimering av arkiv', \r
+'err bk 5 encrypt' => 'Fel vid kryptering av arkiv', \r
+'err rs 1' => 'Fel vid återkopiering av arkiv', \r
+'err rs 6 decrypt' => 'Fel vid dekryptering av arkiv', \r
+'err rs 7 untartst' => 'Ogiltigt krypterat arkiv', \r
+'err rs 8 untar' => 'Fel vid uppackning (untar) av arkiv', \r
+'error messages' => 'Felmeddelanden:', \r
+'esp encryption' => 'ESP kryptering:', \r
+'esp grouptype' => 'ESP grupptyp:', \r
+'esp integrity' => 'ESP säkerhet:', \r
+'esp keylife' => 'Livslängd ESP-nyckel:', \r
+'esp keylife should be between 1 and 24 hours' => 'Livslängd för ESP nyckel ska vara mellan 1-24 timmar.', \r
+'every' => 'Varje', \r
+'excluding buffers and cache' => '-/+ buffertar/minneslagring', \r
+'expected' => 'Förväntad', \r
+'expires' => 'Giltig till', \r
+'export' => 'Exportera', \r
+'external access' => 'Extern tillgång', \r
+'external access configuration' => 'Konfiguration av extern access', \r
+'external access rule added' => 'Lagt till regel för extern access; startar om access kontrollant', \r
+'external access rule removed' => 'Tagit bort regel för extern access; startar om access kontrollant', \r
+'external aliases configuration' => 'Alternativ IP (alias) konfiguration', \r
+'february' => 'Februari', \r
+'fetch ip from' => 'Ta reda på verklig publik IP-adress med hjälp av en extern server', \r
+'filename' => 'Filnamn', \r
+'filesystem full' => 'Filsystemet är fullt', \r
+'firewall' => 'Brandvägg', \r
+'firewall hits' => 'Totalt antal anrop mot brandväggen för', \r
+'firewall log' => 'Brandväggslogg', \r
+'firewall log viewer' => 'Läsare för brandväggslogg', \r
+'firewall logs' => 'Loggfiler för brandvägg', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Ladda upp firmware / drivrutiner', \r
+'fixed ip lease added' => 'Lagt till fast IP lån', \r
+'fixed ip lease modified' => 'Fast IP-lån ändrat.', \r
+'fixed ip lease removed' => 'Fast IP lån borttaget', \r
+'force update' => 'Tvinga uppdatering', \r
+'forwarding rule added' => 'Lagt till regel för vidarebefordring; startar om vidarebefordrare', \r
+'forwarding rule removed' => 'Tagit bort regel för vidarebefordring; startar om vidarebefordrare', \r
+'forwarding rule updated' => 'Regel för vidarebefordring har ändrats; startar om vidarebefordrare', \r
+'free' => 'Ledigt', \r
+'free memory' => 'Ledigt minne', \r
+'free swap' => 'Ledigt "Swap"-utrymme', \r
+'friday' => 'Fredag', \r
+'fritzdsl help' => 'För att använda något av Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modemen, behöver du ladda in ett programpaket till din IPCop-dator. Hämta hem tar-filen för din modemversion från IPCop\'s hemsida och ladda in hela filen (<b>fcdsl-(din_version).tgz</b>) med formuläret nedan.', \r
+'fritzdsl upload' => 'Inläsning av Fritz!DSL drivrutin', \r
+'from' => 'Från', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Gateway', \r
+'gateway ip' => 'IP-adress för gateway', \r
+'generate a certificate' => 'Skapa ett certifikat:', \r
+'generate root/host certificates' => 'Skapa Root/Host-certifikat', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Att skapa root och host certifikat kan ta en stund, upp till flera minuter på äldre hårdvara. Ha lite tålamod.', \r
+'global settings' => 'Globala inställningar', \r
+'graph' => 'Diagram', \r
+'graph per' => 'Diagram per', \r
+'green' => 'GRÖNT', \r
+'green interface' => 'Grönt gränssnitt', \r
+'gui settings' => 'Inställningar för användargränssnitt', \r
+'gz with key' => 'Endast ett krypterat arkiv kan återkopieras på den här maskinen.', \r
+'hangup' => 'Koppla ner', \r
+'hangup string' => 'Lägg på:', \r
+'high' => 'Hög', \r
+'high memory usage' => 'Högt minnesutnyttjande', \r
+'holdoff' => '"Holdoff"-tid (i sekunder)', \r
+'host' => 'Värd', \r
+'host certificate' => 'Värd- (host-) certifikat', \r
+'host configuration' => 'Konfiguration av värddator', \r
+'host ip' => 'Värdens IP-adress', \r
+'host to net vpn' => 'Värd-för-nät Virtuellt Privat Nät ("RoadWarrior")', \r
+'hostname' => 'Värd', \r
+'hostname and domain already in use' => 'Värdnamn och domän används redan.', \r
+'hostname cant be empty' => 'Värdnamnet kan inte lämnas tomt.', \r
+'hostname not set' => 'Värdnamn inte inställt.', \r
+'hosts config added' => 'värd ("hosts") konfiguration har lagts till', \r
+'hosts config changed' => 'värd ("hosts") konfiguration har ändrats', \r
+'hours' => 'timmar', \r
+'hours2' => 'Timmar', \r
+'ibod for dual isdn only' => 'iBOD kan bara användas med tvåkanals (Dual) ISDN.', \r
+'icmp selected but no type' => 'ICMP valt för protokollet men ingen ICMP-typ angiven', \r
+'icmp type' => 'ICMP-typ', \r
+'id' => 'ID', \r
+'idle' => 'Viloläge', \r
+'idle cpu' => 'Outnyttjad CPU-kraft', \r
+'idle cpu usage' => 'CPU-kraft vid tomgång', \r
+'idle timeout' => 'Inaktivitetstimeout (min; 0=inaktiverad):', \r
+'idle timeout not set' => 'Inaktivitetstimeout ej inställt.', \r
+'ids log viewer' => 'Visa IDS-logg', \r
+'ids logs' => 'IDS-loggar', \r
+'ids rules license' => 'För att använda Sourcefire VRT certifierade regler så måste du registrera dig på', \r
+'ids rules license2' => 'Godkänn licensen, tag emot ditt lösenord via email och koppla upp dig mot siten', \r
+'ids rules license3' => 'tryck på knappen "Get Code" längs ner och kopiera den 40 tecken långa Oink koden till fältet nedan.', \r
+'ids rules update' => 'Uppdatering av regler för Snort', \r
+'iface' => 'GrSnitt', \r
+'ignore filter' => 'Ignorerafilter:', \r
+'ike encryption' => 'IKE kryptering:', \r
+'ike grouptype' => 'IKE grupptyp:', \r
+'ike integrity' => 'IKE säkerhet:', \r
+'ike lifetime' => 'IKE livslängd:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE livslängd ska vara mellan 1-8 timmar.', \r
+'import' => 'Importera', \r
+'in' => 'In', \r
+'incoming traffic in bytes per second' => 'Inkommande trafik (bytes per sekund)', \r
+'info' => 'Info', \r
+'init string' => 'Initiera:', \r
+'insert floppy' => 'Sätt in en formatterad floppydisk i enheten och klicka <i>Backup till floppydisk</i> för att göra en säkerhetskopia av systemkonfigurationen. Granska noga meddelanden som visas för att försäkra dig om att kopieringen lyckades.<p>', \r
+'install new update' => 'Installera ny uppdatering:', \r
+'installed' => 'Installerad', \r
+'installed updates' => 'Installerade uppdateringar:', \r
+'instant update' => 'Omedelbar uppdatering', \r
+'interface' => 'Gränssnitt:', \r
+'interfaces' => 'Gränssnitt:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Intrångslarm', \r
+'intrusion detection system' => 'System för att Upptäcka Intrång', \r
+'intrusion detection system log viewer' => 'Läsare för loggfiler från Intrångslarmsystemet', \r
+'intrusion detection system2' => 'System för att Upptäcka Intrång:', \r
+'invalid broadcast ip' => 'Ogiltig IP-adress för Multianrop (broadcast)', \r
+'invalid cache size' => 'Ogiltig cachestorlek.', \r
+'invalid characters found in pre-shared key' => 'Ogiltiga tecken i delade ("pre-shared") nyckeln.', \r
+'invalid date entered' => 'Ogiltigt datum angivet.', \r
+'invalid default lease time' => 'Ogiltig standardlånetid.', \r
+'invalid domain name' => 'Ogiltigt domännamn.', \r
+'invalid downlink speed' => 'Ogiltig hastighet på "nerlänk".', \r
+'invalid end address' => 'Ogiltig slutadress.', \r
+'invalid fixed ip address' => 'Angiven fast IP-adress är ogiltig', \r
+'invalid fixed mac address' => 'Angiven fast MAC-adress är ogiltig', \r
+'invalid hostname' => 'Ogiltigt värdnamn.', \r
+'invalid input' => 'Felaktig inmatning', \r
+'invalid input for authentication method' => 'Ogiltig inmatning för autenticeringsmetod.', \r
+'invalid input for city' => 'Ogiltigt val för stad.', \r
+'invalid input for country' => 'Ogiltigt val för land.', \r
+'invalid input for department' => 'Ogiltigt val för avdelning.', \r
+'invalid input for e-mail address' => 'Ogiltigt val för e-post adress.', \r
+'invalid input for esp keylife' => 'Ogiltigt val för livslängd på ESP-nyckel', \r
+'invalid input for hostname' => 'Ogiltigt val för värdnamn.', \r
+'invalid input for ike lifetime' => 'Ogiltigt val för IKE livslängd', \r
+'invalid input for name' => 'Ogiltigt val för användarnamn eller systemets värdnamn', \r
+'invalid input for oink code' => 'Ej godkändt värde för Oink-kod', \r
+'invalid input for organization' => 'Ogiltigt val för organisation', \r
+'invalid input for remote host/ip' => 'Ogiltigt val för fjärr-värds namn eller IP.', \r
+'invalid input for state or province' => 'Ogiltigt val för "state" eller "province".', \r
+'invalid ip' => 'Ogiltig IP-adress', \r
+'invalid keep time' => 'Antal dagar måste vara ett heltal', \r
+'invalid key' => 'Ogiltig nyckel.', \r
+'invalid loaded file' => 'Laddad fil är ogiltig', \r
+'invalid logserver address' => 'Ogiltig server-adress för "syslogd"', \r
+'invalid max lease time' => 'Ogiltig maxlåneetid.', \r
+'invalid maximum incoming size' => 'Ogiltig maximal inkommande storlek.', \r
+'invalid maximum object size' => 'Ogiltig maximal objektstorlek.', \r
+'invalid maximum outgoing size' => 'Ogiltig maximal utgående storlek.', \r
+'invalid md5sum' => 'Felaktig MD5-kontrollsumma.', \r
+'invalid minimum object size' => 'Ogiltig minimal objektstorlek.', \r
+'invalid netmask' => 'Felaktig nätmask', \r
+'invalid port' => 'Felaktig port. Måste vara ett giltigt portnummer.', \r
+'invalid port list' => 'Syntax för portlista är: port[,port]...  där port är angiven i /etc/services eller med nummer', \r
+'invalid primary dns' => 'Ogiltig primär DNS.', \r
+'invalid primary ntp' => 'Ogiltig adress till primär tids-server (NTP)', \r
+'invalid secondary dns' => 'Ogiltig sekundär DNS.', \r
+'invalid secondary ntp' => 'Ogiltig adress till sekundär tids-server (NTP)', \r
+'invalid start address' => 'Ogiltig startadress.', \r
+'invalid time entered' => 'Felaktig tid angiven.', \r
+'invalid time period' => 'Ogiltig tidsperiod', \r
+'invalid uplink speed' => 'Ogiltig hastighet för "upplänk".', \r
+'invalid upstream proxy username or password setting' => 'Ogiltigt användarnamn eller lösenord för utgående proxy.', \r
+'invalid vpi vpci' => 'Ogiltiga inställningar för VPI/VPCI', \r
+'invalid wins address' => 'Ogiltid adress för Wins server.', \r
+'invert' => 'Invertera', \r
+'ip address' => 'IP-Adress', \r
+'ip address in use' => 'IP adressen används redan', \r
+'ip address outside subnets' => 'IP-adressen är utanför lokala subnät(en).', \r
+'ip alias added' => 'Externt IP-alias har lagts till', \r
+'ip alias changed' => 'Externt IP-alias har ändrats', \r
+'ip alias removed' => 'Externt IP-alias borttaget', \r
+'ip info' => 'IP-information', \r
+'ipcop has now rebooted' => 'IPCop har nu startats om.', \r
+'ipcop has now shutdown' => 'IPCop har nu avslutats.', \r
+'ipcop side' => 'IPCop sida:', \r
+'ipcop side is invalid' => 'Ogiltig IPCop sida.', \r
+'ipcops hostname' => 'Eget värdnamn för IPCop', \r
+'ipinfo' => 'IP-info', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Ytterligare inställningar för ISDN:', \r
+'isdn1' => 'Enkanals ISDN', \r
+'isdn2' => 'Tvåkanals (Dual) ISDN', \r
+'january' => 'Januari', \r
+'javascript menu error1' => 'Om inte rullgardinsmenyer fungerar, koppla bort Javascripts på', \r
+'javascript menu error2' => 'sidan.', \r
+'july' => 'Juli', \r
+'june' => 'Juni', \r
+'kernel' => 'Kernel', \r
+'kernel logging server' => 'Kernel loggserver', \r
+'kernel version' => 'Kernelversion:', \r
+'lan' => 'Lokalt nätverk', \r
+'languagepurpose' => 'Välj det språk du vill använda i IPCop:', \r
+'lease expires' => 'IP-adresslån upphör', \r
+'legend' => 'Förklaring', \r
+'line' => 'Linje', \r
+'loaded modules' => 'Laddade moduler:', \r
+'local ntp server specified but not enabled' => 'Lokal NTP-server har definierats men inte aktiverats', \r
+'local subnet' => 'Lokalt subnät:', \r
+'local subnet is invalid' => 'Ogiltigt lokalt subnät.', \r
+'local vpn hostname/ip' => 'Lokalt VPN värdnamn/IP', \r
+'log' => 'Logg:', \r
+'log enabled' => 'Logg aktiverad', \r
+'log lines per page' => 'Rader per sida', \r
+'log server address' => 'Syslog server', \r
+'log settings' => 'Inställningar för logg', \r
+'log summaries' => 'Sammandrag av loggning', \r
+'log summary' => 'Sammandrag av loggning', \r
+'log viewer' => 'Visa logg', \r
+'log viewing options' => 'Alternativ för visning av loggning', \r
+'logging server' => 'Loggserver', \r
+'loginlogout' => 'Logga in/Logga ut', \r
+'lookup failed' => 'Omvänd uppslagning misslyckades', \r
+'low' => 'Låg', \r
+'ls_dhcpd' => 'DHCP server:', \r
+'ls_disk space' => 'Diskutrymme:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP server:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => '"Kernel" och brandvägg:', \r
+'ls_modprobe' => 'Dynamiska moduler:', \r
+'ls_pam_unix' => 'Lokala användarlogin:', \r
+'ls_sshd' => 'Fjärranvändarlogin:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'MAC-adress', \r
+'mac address in use' => 'MAC adressen används redan', \r
+'main page' => 'Huvudsida', \r
+'manual' => 'Manuell', \r
+'manual control and status' => 'Manuell hantering och status:', \r
+'manually' => 'Manuell', \r
+'march' => 'Mars', \r
+'marked' => 'Markerad', \r
+'max incoming size' => 'Max inkommande storlek (KB):', \r
+'max lease time' => 'Max lånetid (min):', \r
+'max outgoing size' => 'Max utgående storlek (KB):', \r
+'max renewal time' => 'Max lånetid (DHCP)', \r
+'max retries not set' => 'Max antal försök ej angivet.', \r
+'max size' => 'Max objektstorlek (KB):', \r
+'maximal' => 'Maximal', \r
+'maximum retries' => 'Max antal försök:', \r
+'may' => 'Maj', \r
+'medium' => 'Mellan', \r
+'memory' => 'Minne:', \r
+'memory usage per' => 'Minnesutnyttjande per', \r
+'method' => 'Metod:', \r
+'min size' => 'Min objektstorlek (KB):', \r
+'minutes' => 'Minuter', \r
+'missing dat' => 'Krypterat filarkiv saknas', \r
+'missing gz' => 'Okrypterat filarkiv saknas', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Konfiguration av modem', \r
+'modem on com1' => 'Modem på COM1', \r
+'modem on com2' => 'Modem på COM2', \r
+'modem on com3' => 'Modem på COM3', \r
+'modem on com4' => 'Modem på COM4', \r
+'modem on com5' => 'Modem på COM5', \r
+'modem settings have errors' => 'Modeminställningar felaktiga', \r
+'modem speaker on' => 'Modemhögtalare på:', \r
+'modulation' => 'Modulation', \r
+'monday' => 'Måndag', \r
+'month' => 'Månad', \r
+'months' => 'månader', \r
+'mounted on' => 'Monterad på', \r
+'name' => 'Namn', \r
+'name is invalid' => 'Namnet är ogiltigt', \r
+'name must only contain characters' => 'Namn får bara innehålla tecken.', \r
+'name too long' => 'Användarens eller systemets namn är för långt', \r
+'nat-traversal' => '"NAT traversal" (genomgång för VPN-data):', \r
+'net' => 'Nät', \r
+'net to net vpn' => 'Nät-till-nät Virtuellt Privat Nät', \r
+'netmask' => 'Nätmask', \r
+'network' => 'Nätverk', \r
+'network added' => 'Speciellt nätverk adderat', \r
+'network configuration' => 'Konfiguration av nätverk', \r
+'network removed' => 'Speciellt nätverk borttaget', \r
+'network status information' => 'Information om nätverksstatus', \r
+'network time' => 'Använd tids-server (NTS):', \r
+'network time from' => 'Hämta tid från en "Network Time Server"', \r
+'network traffic graphs' => 'Trafikdiagram för nätverket', \r
+'network updated' => 'Eget nätverk uppdaterat', \r
+'networks settings' => 'Brandvägg - Nätverksinställningar', \r
+'new optionsfw later' => 'Gjorda ändringar träder i kraft vid nästa omstart', \r
+'new optionsfw must boot' => 'Du måste starta om din IPCop', \r
+'newer' => 'Nyare', \r
+'no' => 'Nej', \r
+'no alcatelusb firmware' => 'Firmware för Alcatel USB saknas. Vänligen installera detta. ', \r
+'no cfg upload' => 'Inget data skickades in', \r
+'no dhcp lease' => 'Ingen DHCP-adress erhållen', \r
+'no eciadsl synch.bin file' => 'Ingen ECI ADSL synch.bin fil.  Ladda upp filen.', \r
+'no fritzdsl driver' => 'Fritz!DSL drivprogram saknas. Vänligen ladda in sådant.', \r
+'no information available' => 'Ingen information tillgänglig.', \r
+'no modem selected' => 'Inget modem valt', \r
+'no set selected' => 'Inget \'set\' är valt', \r
+'no time limit' => 'obegränsad tid', \r
+'none found' => 'saknas', \r
+'nonetworkname' => 'Inget nätverksnamn angivet', \r
+'noservicename' => 'Inget namn på tjänst angivet', \r
+'not a valid ca certificate' => 'Ogiltigt CA-certifikat.', \r
+'not enough disk space' => 'Otillräckligt diskutrymme', \r
+'not present' => '<B>Ej</B> tillgänglig', \r
+'not running' => 'inte startad', \r
+'november' => 'November', \r
+'ntp configuration' => 'Konfiguration av NTP', \r
+'ntp must be enabled to have clients' => 'NTP måste aktiveras för att serva klienter.', \r
+'ntp server' => 'NTP-server', \r
+'ntp syncro disabled' => 'NTP synkronisering inaktiverad', \r
+'ntp syncro enabled' => 'NTP synkronisering aktiverad', \r
+'ntpd restarted' => 'ntpd omstartad', \r
+'number' => 'Nummer:', \r
+'october' => 'Oktober', \r
+'older' => 'Äldre', \r
+'online help en' => 'Onlinehjälp (på engelska)', \r
+'only digits allowed in holdoff field' => 'Endast siffror tillåtna i "holdoff"-fältet', \r
+'only digits allowed in max retries field' => 'Enbart siffror tillåtna i max antal försök.', \r
+'only digits allowed in the idle timeout' => 'Enbart siffror tillåtna för inaktivitetstimeout.', \r
+'only red' => 'Endast RÖTT ', \r
+'open to all' => 'Ta bort extern access till ALLA', \r
+'openssl produced an error' => 'OpenSSL orsakade ett fel', \r
+'options' => 'Alternativ', \r
+'options fw' => 'Brandväggsalternativ', \r
+'optionsfw portlist hint' => 'Listan på portnr ska vara kommaseparerad (d.v.s. 137,138). Du kan ange upp till 15 portar per protokoll. ', \r
+'optionsfw warning' => 'Ändring av dessa parametrar kräver omstart av brandväggen', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'Organisation kan inte lämnas tomt.', \r
+'organization name' => 'Organisations namn', \r
+'organization too long' => 'Organisation är för långt, det måste vara kortare än 60 tecken.', \r
+'original' => 'Ursprunglig', \r
+'other countries' => 'Andra länder', \r
+'other login script' => 'Loginskript övrigt', \r
+'out' => 'Ut', \r
+'outgoing traffic in bytes per second' => 'Utgående trafik (bytes per sekund)', \r
+'package failed to install' => 'Misslyckades med installation av paket.', \r
+'pap or chap' => 'PAP eller CHAP', \r
+'password' => 'Lösenord:', \r
+'password contains illegal characters' => 'Lösenordet innehåller otillåtna tecken', \r
+'password not set' => 'Lösenord saknas.', \r
+'password too short' => 'Lösenordet är för kort.', \r
+'passwords do not match' => 'Lösenorden är olika.', \r
+'passwords must be at least 6 characters in length' => 'Lösenordet måste vara minst 6 tecken långt', \r
+'percentage' => 'Procentandel', \r
+'persistent' => 'Ständig', \r
+'pfs yes no' => '"Perfect Forward Secrecy" (PFS)', \r
+'phase1 group' => 'Fas 1-grupp', \r
+'phonebook entry' => 'Telefonboksuppgift:', \r
+'ping disabled' => 'Deaktivera "ping"-respons', \r
+'pkcs12 file password' => 'PKCS12-fils lösenord', \r
+'port' => 'Port', \r
+'port forwarding configuration' => 'Konfiguration för vidarebefordring av portar', \r
+'ports' => 'Portar', \r
+'pots' => 'Telefonlinje', \r
+'ppp setup' => 'Inställningar för PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Utökade inställningar för PPPoE:', \r
+'pptp settings' => 'Utökade inställningar för PPTP:', \r
+'pre-shared key is too short' => 'Delade nyckeln är för kort.', \r
+'present' => 'Tillgänglig', \r
+'primary dns' => 'Primär DNS:', \r
+'primary ntp server' => 'Primär NTP-server', \r
+'primary wins server address' => 'Adress för primär WINS server', \r
+'priority' => 'Prioritet', \r
+'profile' => 'Profil', \r
+'profile deleted' => 'Profil raderad:', \r
+'profile has errors' => 'Profilen innehåller fel', \r
+'profile made current' => 'Aktuell profil:', \r
+'profile name' => 'Profilnamn:', \r
+'profile name not given' => 'Profilnamn saknas.', \r
+'profile saved' => 'Profil sparad:', \r
+'profiles' => 'Profiler:', \r
+'proto' => 'Prot.', \r
+'protocol' => 'Proto', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Trafikstatistik för proxy', \r
+'proxy log viewer' => 'Visa proxylogg', \r
+'proxy logs' => 'Loggfiler för Proxy', \r
+'proxy port' => 'Proxy port', \r
+'psk' => 'Överenskommen nyckel  ("Pre Shared Key")', \r
+'pulse' => 'Puls', \r
+'pulse dial' => 'Pulsringning:', \r
+'ram' => 'Primärminne (RAM)', \r
+'read sectors' => 'Lästa sektorer', \r
+'reboot' => 'Starta om', \r
+'reboot schedule' => 'Schemalägg omstart av IPCop', \r
+'rebooting' => 'Startar om', \r
+'rebooting ipcop' => 'Startar om IPCop', \r
+'reconnection' => 'Återinkoppling', \r
+'references' => 'Referenser', \r
+'refresh' => 'Uppdatera', \r
+'refresh index page while connected' => 'Förnya "index.cgi"-sidan så länge förbindelsen är uppkopplad', \r
+'refresh update list' => 'Förnya uppdateringslistan', \r
+'registered user rules' => 'Sourcefire VRT regler för registrerade användare', \r
+'released' => 'Släppt', \r
+'remark' => 'Anmärkning', \r
+'remark title' => 'Anmärkning:', \r
+'remote access' => 'Fjärråtkomst', \r
+'remote host/ip' => 'Fjärrvärd/IP', \r
+'remote logging' => 'Loggning till annan dator', \r
+'remote subnet' => 'Fjärrsubnät:', \r
+'remote subnet is invalid' => 'Ogiltigt fjärrsubnät.', \r
+'remove' => 'Ta bort', \r
+'remove ca certificate' => 'Radera CA-certifikat', \r
+'reserved dst port' => 'Mottagande port är reserverad för IPCop:', \r
+'reserved src port' => 'Avsändande port är reserverad för IPCop:', \r
+'reset' => 'Återställning', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Återställning av VPN-konfiguration kommer att radera "root"-certifikatet, värd-certifikatet och alla certifikat-baserade förbindelser', \r
+'restart' => 'Återstarta', \r
+'restore' => 'Återställ', \r
+'restore defaults' => 'Återställ grundinställningar', \r
+'restore hardware settings' => 'Återställ inställningar för hårdvara', \r
+'reverse sort' => 'Sortering med yngsta överst', \r
+'root certificate' => '"Root"-certifikat', \r
+'root path' => '"Root"-sökväg', \r
+'router ip' => 'IP adress för router:', \r
+'routing table entries' => 'Poster i routingtabellen', \r
+'rsvd dst port overlap' => 'Intervall för mottagande port överlappar en port som är reserverad för IPCop:', \r
+'rsvd src port overlap' => 'Intervall för avsändande port överlappar en port reserverad för IPCop:', \r
+'rules already up to date' => 'Reglerna var redan uppdaterade', \r
+'running' => 'AKTIV', \r
+'saturday' => 'Lördag', \r
+'save' => 'Spara', \r
+'save error' => 'Det gick inte att spara fil med konfigurationsarkiv', \r
+'script name' => 'Skriptnamn:', \r
+'secondary dns' => 'Sekundär DNS:', \r
+'secondary ntp server' => 'Alternativ NTP-server', \r
+'secondary wins server address' => 'Adress för sekundär WINS-server', \r
+'seconds' => 'Sekunder', \r
+'section' => 'Sektion', \r
+'sectors read from disk per second' => 'Lästa sektorer från disk per sekund', \r
+'sectors written to disk per second' => 'Skrivna sektorer till disk per sekund', \r
+'secure shell server' => 'Säkert skal server', \r
+'select' => 'Välj', \r
+'select dest net' => 'Ange ett destinations nät.', \r
+'select source net' => 'Ange ett mål-nät. Om du saknar Orange och Blått nät krävs inga "hål" i DMZ.', \r
+'send cr' => 'ISP kräver vagnretur (CR):', \r
+'september' => 'September', \r
+'serial' => 'Seriell', \r
+'service' => 'Tjänst', \r
+'service added' => 'Egen nätverkstjänst adderad ', \r
+'service name' => 'Tjänstnamn:', \r
+'service removed' => 'Egen nätverkstjänst raderad', \r
+'service updated' => 'Egen nätverkstjänst uppdaterad', \r
+'servicename' => 'Namn på tjänst', \r
+'services' => 'Tjänster:', \r
+'services settings' => 'Brandvägg - Inställningar för tjänster', \r
+'set time now' => 'Ställ in tiden nu', \r
+'set time now help' => 'För att begära en synkronisering av tiden (även upprepad sådan), tryck på <i>Ställ in tiden nu</i> knappen. Notera att du kan behöva vänta upp till fem minuter, eller mer, innan synkronisering sker.', \r
+'settings' => 'Inställningar', \r
+'shaping add options' => 'Lägg till tjänst', \r
+'shaping list options' => 'Tjänster för trafikbegränsning', \r
+'shared' => 'delad', \r
+'shared memory' => 'Delat minne', \r
+'show ca certificate' => 'Visa CA-certifikat', \r
+'show certificate' => 'Visa certifikat', \r
+'show host certificate' => 'Visa värdcertifikat', \r
+'show root certificate' => 'Visa "root"-certifikat', \r
+'shutdown' => 'Stäng av', \r
+'shutdown control' => 'Avsluta kontroll', \r
+'shutdown2' => 'Stäng av:', \r
+'shutting down' => 'Avslutar', \r
+'shutting down ipcop' => 'Avslutar IPCop', \r
+'size' => 'Storlek', \r
+'snort hits' => 'Totalt antal brott mot definierade tillträdesregler för', \r
+'sort ascending' => 'Sortera stigande', \r
+'sort descending' => 'Sortera fallande', \r
+'sound' => 'Ljud', \r
+'source' => 'Källa', \r
+'source ip' => 'Käll-IP', \r
+'source ip and port' => 'Avsändande IP:port', \r
+'source ip bad' => 'Inte en giltlig IP- eller nätverksadress.', \r
+'source ip in use' => 'Avsändande IP-adress används redan:', \r
+'source ip or net' => 'Källans IP eller nät', \r
+'source net' => 'Käll nät', \r
+'source network' => 'Käll-IP, eller nätverk (blank för "ALLA"):', \r
+'source port' => 'Källport', \r
+'source port in use' => 'Källport används:', \r
+'source port numbers' => 'Avsändande port måste vara ett giltigt portnummer eller intervall.', \r
+'source port overlaps' => 'Intervall för avsändande port överlappar ett existerande intervall.', \r
+'speaker off' => 'Högtalare från:', \r
+'speaker on' => 'Högtalare till:', \r
+'src port' => 'Källport', \r
+'srcprt range overlaps' => 'Intervall för avsändande port överlappar en redan definierad port.', \r
+'srcprt within existing' => 'Avsändande port är inom ett redan definierat intervall.', \r
+'ssdmz pinholes' => 'Undantag (skapade "hål") i dmz', \r
+'ssh access' => 'Säker anslutning (SSH)', \r
+'ssh fingerprint' => '"Fingerprint"', \r
+'ssh host keys' => 'SSH värdnycklar', \r
+'ssh is disabled' => 'SSH är inaktiverad. Stoppar.', \r
+'ssh is enabled' => 'SSH är aktiverad. Startar om.', \r
+'ssh key' => 'Nyckel', \r
+'ssh key size' => 'Storlek (bits)', \r
+'ssh keys' => 'Tillåt anslutning med publik nyckel (SSH)', \r
+'ssh no auth' => 'Ingen metod för identifiering vald, du kan inte ansluta till systemet', \r
+'ssh passwords' => 'Tillåt identifiering based på lösenord', \r
+'ssh portfw' => 'Tillåt vidareförmedling av TCP', \r
+'ssh1 disabled' => 'Stöd för SSH v1 är deaktiverat, en version 2 client krävs.', \r
+'ssh1 enabled' => 'Stöd för SSH v1 är aktiverat, även äldre klienter stöds.', \r
+'ssh1 support' => 'Stöd för SSH version 1 (krävs endast för äldre klienter)', \r
+'ssnetwork status' => 'Nätverksstatus', \r
+'sspasswords' => 'Lösenorden', \r
+'ssport forwarding' => 'Vidarebefodring av portar', \r
+'ssproxy graphs' => 'Proxygrafer', \r
+'sssystem status' => 'Systemstatus', \r
+'sstraffic graphs' => 'Trafikgrafer', \r
+'standard login script' => 'Standard loginskript', \r
+'start address' => 'Startadress:', \r
+'state or province' => 'Stat eller provins', \r
+'static ip' => 'Statisk IP-adress', \r
+'status' => 'Status', \r
+'status information' => 'Statusinformation', \r
+'stopped' => 'STOPPAD', \r
+'subject' => 'Ärende', \r
+'subnet is invalid' => 'Angiven nätmask är ogiltig', \r
+'subscripted user rules' => 'Sourcefire VRT regler med prenumeration', \r
+'successfully refreshed updates list' => 'Lyckades med att förnya uppdateringslistan.', \r
+'summaries kept' => 'Spara log-sammandrag i', \r
+'sunday' => 'Söndag', \r
+'swap' => 'Växlingsfil', \r
+'swap usage per' => '"Swap"-utnyttjande per', \r
+'system cpu' => 'System CPU', \r
+'system cpu usage' => 'Utnyttjande av system CPU', \r
+'system graphs' => 'System diagram', \r
+'system log viewer' => 'Läsare för systemloggar', \r
+'system logs' => 'Systemloggar', \r
+'system status information' => 'Information om systemstatus', \r
+'telephone not set' => 'Telefonnummer saknas.', \r
+'the following update was successfully installed' => 'Följande uppdatering var framgångsrikt installerad', \r
+'the statistics were last updated at' => 'Statistiken senast uppdaterad', \r
+'there are updates' => 'Det finns uppdateringar för ditt system. Gå till sektionen "Uppdateringar" för mer information.', \r
+'there are updates available' => 'Det finns uppdateringar för ditt system. Det är väldigt viktigt att du installerar dessa så snart som möjligt.', \r
+'there was no file upload' => 'Ingen fil skickades in.', \r
+'this feature has been sponsored by' => 'Denna funktion har sponsrats av', \r
+'this field may be blank' => 'Detta fält kan vara tomt.', \r
+'this is not a valid archive' => 'Detta är inte ett giltigt arkiv.', \r
+'this is not an authorised update' => 'Detta är inte en godkänd uppdatering.', \r
+'this update is already installed' => 'Denna uppdatering är redan installerad.', \r
+'thursday' => 'Torsdag', \r
+'time' => 'Tid', \r
+'time date manually reset' => 'Tid/Datum återställt manuellt.', \r
+'time server' => 'Tidsserver', \r
+'timeout must be a number' => 'Timeout måste vara numeriskt.', \r
+'title' => 'Titel', \r
+'to' => 'Till', \r
+'to install an update' => 'Var snäll och ladda upp .tgz.gpg file nedan för att installera uppdateringen:', \r
+'toggle enable disable' => 'Aktivera eller inaktivera', \r
+'tone' => 'Ton', \r
+'tone dial' => 'Tonringning:', \r
+'total hits for log section' => 'Antal träffar för Log-sektionen', \r
+'traffic on' => 'Trafik på', \r
+'traffic shaping' => 'Trafikbegränsning', \r
+'traffic shaping settings' => 'Inställningar för trafikbegränsning', \r
+'transfer limits' => 'Överföringsbegränsningar', \r
+'transparent on' => '"Transparent" läge aktiverat', \r
+'tuesday' => 'Tisdag', \r
+'type' => 'Typ:', \r
+'unable to alter profiles while red is active' => 'Kan inte ändra profiler när RÖD är aktiv.', \r
+'unable to contact' => 'Ingen kontakt med', \r
+'unencrypted' => 'Okrypterad', \r
+'unknown' => 'OKÄND', \r
+'unnamed' => 'Inget namn', \r
+'update' => 'Uppdatera', \r
+'update time' => 'Uppdatera klockan:', \r
+'update transcript' => 'Uppdatera transcript', \r
+'updates' => 'Uppdateringar', \r
+'updates installed' => 'Uppdateringar installerade', \r
+'updates is old1' => 'Din uppdateringsfil är', \r
+'updates is old2' => 'dagar gammal. Vi rekommenderar att du uppdaterar den under sidan "Uppdateringar".', \r
+'uplink speed' => 'Hastighet på "upplänk" (kbit/sek)', \r
+'upload' => 'Ladda upp', \r
+'upload a certificate' => 'Skicka in certifikat:', \r
+'upload a certificate request' => 'Skicka in en certifikat-begäran:', \r
+'upload ca certificate' => 'Skicka in CA certifikat', \r
+'upload fcdsl.o' => 'Ladda upp fcdsl.o', \r
+'upload file' => 'Ladda upp fil', \r
+'upload p12 file' => 'Skicka in PKCS12-fil', \r
+'upload successful' => 'Uppladdningen lyckades.', \r
+'upload synch.bin' => 'Ladda upp synch.bin', \r
+'upload update file' => 'Ladda upp uppdateringsfil:', \r
+'upstream password' => 'Lösenord utgående dataström:', \r
+'upstream proxy host:port' => 'Överordnad proxy (host:port)', \r
+'upstream username' => 'Användarnamn utgående dataström:', \r
+'uptime and users' => 'Drifttid och användare:', \r
+'usb modem on acm0' => 'USB modem på ACM0', \r
+'usb modem on acm1' => 'USB modem på ACM1', \r
+'usb modem on acm2' => 'USB modem på ACM2', \r
+'usb modem on acm3' => 'USB modem på ACM3', \r
+'use' => 'Använd', \r
+'use a pre-shared key' => 'Använd en utdelad nyckel:', \r
+'use dov' => 'Använd DOV (Data Over Voice):', \r
+'use ibod' => 'Använd Bandwidth on Demand (iBOD):', \r
+'use ipcop red ip' => 'Den klassiska RÖDA IP-adreessen som används under uppkopplingen', \r
+'use only proposed settings' => 'Använd endast förelagna inställningar.', \r
+'used' => 'Använt', \r
+'used memory' => 'Använt minne', \r
+'used swap' => 'Använt "Swap"-utrymme', \r
+'user cpu' => 'Användar CPU', \r
+'user cpu usage' => 'Utnyttjande av CPU för användare', \r
+'username' => 'Användarnamn:', \r
+'username not set' => 'Användarnamn saknas.', \r
+'users department' => 'Användarens avdelning', \r
+'users email' => 'Användarens e-post adress', \r
+'users fullname or system hostname' => 'Användarens hela namn eller systemets värdnamn', \r
+'valid root certificate already exists' => 'Ett giltigt "root"-certifikat finns redan.', \r
+'vci number' => 'VCI-nummer:', \r
+'virtual private networking' => 'Virtuellt Privat Nätverk', \r
+'vpi number' => 'VPI-nummer:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN-konfiguration - Allmänt', \r
+'vpn delayed start' => 'Fördröjning innan start av VPN (sekunder)', \r
+'vpn delayed start help' => 'Vid behov kan denna fördröjning användas för att möjliggöra att den nya dynamiska adresssen hinner spridas till DNS. 60 kan vara lagom värde om RÖTT nät har en dynamisk IP.', \r
+'vpn on blue' => 'VPN på BLÅTT', \r
+'waiting to synchronize clock' => 'Väntar på synkronisering av klockan', \r
+'warning messages' => 'Varningsmeddelanden', \r
+'web hits' => 'Totalt antal websidor som passar till det valda kriteriet för', \r
+'web proxy' => 'Webproxy', \r
+'web proxy configuration' => 'Konfiguration av webproxy', \r
+'web server' => 'Webserver', \r
+'website' => 'Websida', \r
+'wednesday' => 'Onsdag', \r
+'week' => 'Vecka', \r
+'weeks' => 'veckor', \r
+'wildcards' => 'Wildcards', \r
+'wireless' => 'Trådlöst näverk', \r
+'wireless config added' => 'Konfiguration av trådlöst nät har lagts till', \r
+'wireless config changed' => 'Konfiguration av trådlöst nät ändrad', \r
+'wireless configuration' => 'Konfigurering trådlöst nätverk', \r
+'written sectors' => 'Skrivna sektorer', \r
+'xtaccess all error' => 'Du kan inte sätta en extern access till "ALLA", det görs i "vidarebefodring av portar".', \r
+'year' => 'År', \r
+'yes' => 'Ja', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Du kan bara definiera en "Roadwarrior"-förbindelse som använder utdelad nyckel.<br />Antingen har du redan en "Roadwarrior"-förbindelse med utdelad nyckel eller så försöker du addera en nu.', \r
+'your department' => 'Din avdelning', \r
+'your e-mail' => 'Din e-post adress', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/sv/install/CVS/Entries b/langs/sv/install/CVS/Entries
new file mode 100644 (file)
index 0000000..1ac1bf0
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_sv.c/1.8.2.10/Fri Jan 13 12:11:47 2006//TIPCOP_v1_4_0
+D
diff --git a/langs/sv/install/CVS/Repository b/langs/sv/install/CVS/Repository
new file mode 100644 (file)
index 0000000..1783391
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/sv/install
diff --git a/langs/sv/install/CVS/Root b/langs/sv/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/sv/install/CVS/Tag b/langs/sv/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/sv/install/lang_sv.c b/langs/sv/install/lang_sv.c
new file mode 100644 (file)
index 0000000..f11b5b8
--- /dev/null
@@ -0,0 +1,508 @@
+/*\r
+ * Swedish (sv) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Anders Johansson, Christer Jonson\r
+ *  \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *sv_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Adressinställningar",\r
+/* TR_ADMIN_PASSWORD */\r
+"Admin lösenord",\r
+/* TR_AGAIN_PROMPT */\r
+"En gång till:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Alla kort har allokerats på ett korrekt sätt.",\r
+/* TR_AUTODETECT */\r
+"* AUTODETECT *",\r
+/* TR_BUILDING_INITRD */\r
+"Bygger INITRD....",\r
+/* TR_CANCEL */\r
+"Avbryt",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Korttilldelning",\r
+/* TR_CHECKING */\r
+"Kontrollerar URL...",\r
+/* TR_CHECKING_FOR */\r
+"Letar efter: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Välj det ISDN kort du har installerat i den här datorn.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Välj det ISDN protokoll du vill använda.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Konfigurera DHCP-servern genom att skriva in konfigurationsinformationen.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Konfigurera nätverket",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Nu skall du konfigurera nätverket genom att först ladda den rätta drivrutinen för det GRÖNA gränssnittet. Du kan göra det antingen genom att söka efter ett kort, eller genom att välja rätt drivrutin från en lista. Om du har mer än ett nätverkskort installerat så kommer du att kunna konfigurera dessa senare under installationen. Om du har mer än ett kort av samma typ som ditt GRÖNA gränssnitt och dessa behöver speciella parametrar till modulen så skall du välja parametrarna både för ditt GRÖNA kort och de andra på ett sådant sätt att alla  kort kan vara aktiva samtidigt.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Konfigurera nätverksdrivrutiner och vilket gränssnitt som respektive kort är tilldelat till. Den nuvarande konfigurationen är som följer:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Konfigurera CDROM-läsaren genom att välja lämplig IO-adress och/eller IRQ.",\r
+/* TR_CONGRATULATIONS */\r
+"Gratulerar!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s installerade korrekt. Tag ut eventuella disketter eller CDROM från datorn. Installationsprogrammet kommer nu fortsätta med konfigurering av ISDN, nätverkskort och systemlösenord. När installationsprogrammet har avslutat så skall du peka din webläsare mot http://%s:81 eller https://%s:445 (eller vad du nu namngett din %s), och konfigurera uppringt nätverk (om det behövs) och yttre tillgång. Kom ihåg att sätta ett lösenord för %s \"dial\" användare om du vill att andra än %s 'admin' användare skall kunna koppla upp och koppla ner modemkopplingen.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Din hårddisk är mycket liten men du kan fortsätta utan \"swap\". (används med försiktighet)",\r
+/* TR_CURRENT_CONFIG */\r
+"Nuvarande konfiguration: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Standard-Gateway:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Standard-Gateway\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Standard lånetid (minuter):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Standard lånetid\n",\r
+/* TR_DETECTED */\r
+"Hittade en/ett: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Dynamisk-IP datornamn:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Dynamisk-IP datornamn\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Dynamisk-IP server konfiguration",\r
+/* TR_DISABLED */\r
+"Inaktiverad",\r
+/* TR_DISABLE_ISDN */\r
+"Inaktivera ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"Din hårddisk är för liten.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"DNS och Gateway inställningar",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Skriv in DNS och gateway informationen. Dessa inställningar används endast om Dynamisk-IP är inaktiverad på det RÖDA gränssnittet.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Din konfiguration använder sig inte av ett nätverkskort för det RÖDA gränssnittet.  DNS och Gateway information för uppringda användare konfigureras automatiskt vid uppringning.",\r
+/* TR_DOMAINNAME */\r
+"Domännamn",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Domännamnet kan inte utelämnas.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Domännamn kan inte innehålla mellanslag",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Domännamnet får bara innehålla bokstäver, nummer, minus och punkt.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Domännamns suffix:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Domännamns suffix\n",\r
+/* TR_DONE */\r
+"Klar",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nVill du ändra de här inställningarna?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Drivrutiner och tilldelning av kort",\r
+/* TR_ENABLED */\r
+"Aktiverad",\r
+/* TR_ENABLE_ISDN */\r
+"Aktivera ISDN",\r
+/* TR_END_ADDRESS */\r
+"Slutadress:",\r
+/* TR_END_ADDRESS_CR */\r
+"Slutadress\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Vissa ISDN kort (speciellt ISA) kan behöva extra modulparametrar för att sätta IRQ och IO-adress information. Om du har ett sådant ISDN kort så kan du skriva in de parametrarna här. Till exempel: \"io=0x280 irq=9\". De kommer i så fall att användas vid detektering av kortet.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Skriv in lösenordet för %s admin.  Det här är användaren som används för att logga in på  %s web administrationssidor.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Ange domännamn",\r
+/* TR_ENTER_HOSTNAME */\r
+"Skriv in datorns namn.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Skriv in IP-adressen",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Misslyckades att detektera nätverkskortet. Skriv in nätverkskortets drivrutin och dess eventuella parametrar.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Skriv in lösenordet för 'root'. Logga in som 'root' för kommandoradsaccess.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Skriv in lösenordet för 'setup'. Logga in som 'setup' för att komma åt installations programmet.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Skriv in IP-adressen för %s gränssnittet.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Skriv in det lokala telefonnummret (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Ange sökväg till ipcop-<version>.tgz och images/scsidrv-<version>.img. Obs, översättning av domännamn ej tillgängligt. Använd IP-adress (http://X.X.X.X/<directory>)",\r
+/* TR_ERROR */\r
+"Fel",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Misslyckades skriva konfigurationsinformation.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Extraherar moduler...",\r
+/* TR_FAILED_TO_FIND */\r
+"Lyckades inte hitta en URL-fil.",\r
+/* TR_FOUND_NIC */\r
+"%s har detekterat följande nätverksgränssnitt i din maskin: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"Tyskland 1TR6",\r
+/* TR_HELPLINE */\r
+"              <Tab>/<Alt-Tab> mellan element   |  <Mellanslag> väljer",\r
+/* TR_HOSTNAME */\r
+"Datornamn",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Datorns namn kan inte vara tomt.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Datorns namn kan inte innehålla mellanslag.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Namnet (\"Hostname\") får bara innehålla bokstäver, siffror och bindestreck",\r
+/* TR_INITIALISING_ISDN */\r
+"Initierar ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Sätt in %s CDn i CDROM-läsaren.",\r
+/* TR_INSERT_FLOPPY */\r
+"Sätt in %s drivrutinsdisketten floppy-läsaren.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Installationen avbruten.",\r
+/* TR_INSTALLING_FILES */\r
+"Installerar filer...",\r
+/* TR_INSTALLING_GRUB */\r
+"Installerar GRUB...",\r
+/* TR_INTERFACE */\r
+"%s gränssnittet",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Gränssnittett startade inte.",\r
+/* TR_INVALID_FIELDS */\r
+"Följande fält är ogiltiga:\n\n",\r
+/* TR_INVALID_IO */\r
+"Vald IO-adress är inte giltig. ",\r
+/* TR_INVALID_IRQ */\r
+"Vald IRQ är inte giltig.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP-adress\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP-adress:",\r
+/* TR_ISDN_CARD */\r
+"ISDN kort",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"ISDN kort kunde inte hittas. Du kan behöva ytterligare parameterar för att konfigurera modulen om kortet är av ISA typ eller har speciella behov.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Val av ISDN kort",\r
+/* TR_ISDN_CONFIGURATION */\r
+"ISDN Konfiguration",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"ISDN konfigurations meny",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN är inte konfigurerad. Några delar har inte valts.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN har inte konfigurerats ännu. Välj vad du vill konfigurera.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"ISDN val av protokoll",\r
+/* TR_ISDN_STATUS */\r
+"ISDN är för tillfället %s.\n\n   Protokoll: %s\n   Kort: %s\n   Lokalt telefonnummer: %s\n\nVälj vad du vill omkonfigurera eller välj att använda nuvarande inställningar.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Tangentbordsinställning",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Välj typen av tangentbord du har från listan nedan.",\r
+/* TR_LEASED_LINE */\r
+"Hyrd lina",\r
+/* TR_LOADING_MODULE */\r
+"Laddar modulen...",\r
+/* TR_LOADING_PCMCIA */\r
+"Laddar PCMCIA (PC-card) moduler...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Söker efter: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Skapar boot filsystemet...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Skapar log filsystemet...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Skapar root filsystemet...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Skapar swap utrymme...",\r
+/* TR_MANUAL */\r
+"* MANUELLT *",\r
+/* TR_MAX_LEASE */\r
+"Maximal lånetid (minuter):",\r
+/* TR_MAX_LEASE_CR */\r
+"Maximal lånetid\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"IP-information saknas för BLÅTT interface.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Saknar IP information om det ORANGA gränsnittet.",\r
+/* TR_MISSING_RED_IP */\r
+"Saknar IP information om det RÖDA gränsnittet.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Modulnamn kan inte vara tomt.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Skriv in modulens namn och de parametrar som den behöver.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Monterar boot filsystemet...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Monterar log filsystemet...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Monterar root filsystemet...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Monterar swap partitionen...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Lokalt telefonnummer(MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Nätmask:",\r
+/* TR_NETWORKING */\r
+"Nätverk",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Nätverksadress\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Nätverksadress:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Nätverkskonfigurations meny",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Typ av nätverkskonfiguration",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Välj nätverkskonfigurering för %s.  Följande konfigurationstyper visar de gränssnitt som har ethernet inkopplat. Om du ändrar den här inställningen så kommer nätverkskommunikationen att behöva startas om, och du kommer behöva omkonfigurera nätverksdrivrutinstilldelningen.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Nätmask\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Nätverksinställningarna misslyckades.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Det har inte allokerats tillräckligt många kort.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Inget BLÅTT gränssnitt definierat.",\r
+/* TR_NO_CDROM */\r
+"Ingen CD-ROM funnen.",\r
+/* TR_NO_HARDDISK */\r
+"Ingen hårddisk funnen.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"IpCop TAR-arkiv saknas på Web-server.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Inget ORANGE gränssnitt är tilldelat.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Inget RÖTT gränssnitt är tilldelat.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"SCSI-image saknas på Web-server.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Inga oallokerade kort återstår och det behövs flera. Du kan försöka söka efter flera eller välja en drivrutin från en lista.",\r
+/* TR_OK */\r
+"Ok",\r
+/* TR_PARTITIONING_DISK */\r
+"Partitionerar disken...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Lösenorden är olika.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Lösenordet kan inte vara tomt.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Lösenordet får inte innehålla mellanslag.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Lösenord:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Telefonnummret kan inte vara tomt.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Installationsprogrammet kommmer nu att förbereda hårddisken på %s. Först kommer disken att partitioneras och sedan kommer filsystem skapas på partitionerna.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Tryck på OK för att starta om.",\r
+/* TR_PRIMARY_DNS */\r
+"Primär DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Primär DNS\n",\r
+/* TR_PROBE */\r
+"Sök",\r
+/* TR_PROBE_FAILED */\r
+"Automatisk detektering misslyckades.",\r
+/* TR_PROBING_SCSI */\r
+"Söker SCSI-enheter...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Problem att sätta lösenordet för %s admin.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Problem att sätta lösenordet för 'root'.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Problem att sätta lösenordet för 'setup'.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protokoll/Land",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Tar upp nätverket...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Tar ner nätverket...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Tar ner det lokala nätverket...",\r
+/* TR_QUIT */\r
+"Avsluta",\r
+/* TR_RED_IN_USE */\r
+"ISDN (eller annan extern uppkoppling) används redan.  Du kan inte konfigurera ISDN medans det RÖDA gränssnittet är aktivt.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nNär konfigurationen är färdig så kommer nätverket i datorn att behöva startas om.",\r
+/* TR_RESTORE */\r
+"Återställ",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Om du har en diskett med en %s systemkonfiguration på så skall du sätta in den i diskettdriven och trycka på återställknappen",\r
+/* TR_ROOT_PASSWORD */\r
+"'root' lösenord",\r
+/* TR_SECONDARY_DNS */\r
+"Sekundär DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"Sekundär DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Sekundär DNS specificerad utan någon Primär DNS",\r
+/* TR_SECTION_MENU */\r
+"Sektions menu",\r
+/* TR_SELECT */\r
+"Välj",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Välj typ av CDROM läsare",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Kunde inte hittade någon CDROM.  Välj vilken av följande drivrutiner som skall användas så att %s kan komma åt CDROM-läsaren.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Välj installations media",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s kan installeras från olika källor.  Det är enklast att använda datorns CDROM läsare. Om datorn saknar en CDROM så kan du installera från en annan dator på nätverket som har installationsfilerna tillgängliga via HTTP. I så fall så kommer disketten med nätverksdrivrutiner att behövas.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Välj nätverksdrivrutin",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Välj den nätverksdrivrutin som matchar det kort som är installerat. Om du väljer MANUELLT, så kommer du få möjligheten att skriva in modulens namn och parametrar som hör till drivrutiner som har speciella behov, till exempel ISA kort.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Välj det gränssnitt som du vill konfigurera om.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Välj det du vill konfigurera.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Sätter lösenordet för %s admin....",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Sätter lösenordet för 'root'....",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Sätter lösenordet för 'setup'....",\r
+/* TR_SETUP_FINISHED */\r
+"Installationen är komplett.  Tryck på Ok för att starta om.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Grundinstalltionen är inte helt komplett. Du måste se till att installtionen genomförs fullständigt genom att köra setup igen från prompten.",\r
+/* TR_SETUP_PASSWORD */\r
+"'setup' lösenord",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Sätt eventuella extra modulparametrar",\r
+/* TR_SINGLE_GREEN */\r
+"Din konfiguration är satt till att endast ha ett GRÖNT gränssnitt.",\r
+/* TR_SKIP */\r
+"Hoppa över",\r
+/* TR_START_ADDRESS */\r
+"Start adress:",\r
+/* TR_START_ADDRESS_CR */\r
+"Start adress\n",\r
+/* TR_STATIC */\r
+"Statisk",\r
+/* TR_SUGGEST_IO */\r
+"(föreslår %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(föreslår %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Den här modulen är redan inladdad.",\r
+/* TR_TIMEZONE */\r
+"Tidszon",\r
+/* TR_TIMEZONE_LONG */\r
+"Välj den tidszon du befinner dig i från listan nedan.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Misslyckades att mata ut CDROM.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Misslyckades att extrahera moduler.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Kunde inte hitta några fler drivrutiner.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"ISDN kort kunde inte hittas i den här datorn. Du kan behöva ytterligare parameterar för att konfigurera modulen om kortet är av ISA typ eller har speciella behov.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Misslyckades med initieringen av ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Misslyckades att installera filer.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Misslyckades att installera GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Kunde inte ladda modulen.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Misslyckades att skapa boot filsystemet.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Misslyckades att skapa log filsystemet.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Misslyckades att skapa root filsystemet.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Misslyckades att skapa swap utrymme.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Misslyckades att skapa symbolisk länk /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Misslyckades att skapa symbolisk länk /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Misslyckades att skapa symbolisk länk /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Misslyckades att skapa symbolisk länk /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Misslyckades att skapa symbolisk länk /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Omöjligt att skapa symbolisk länk /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Misslyckades att montera boot filsystemet.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Misslyckades att montera log filsystemet.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Omöjligt att montera proc-filsystemet.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Misslyckades att montera root filsystemet.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Misslyckades att montera swap partitionen.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Det gick inte att öppna filen \"hosts\".",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Kan inte öppna inställningsfil",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Misslyckades att partitionera disken.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Kunde inte ta bort temporära filer.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Kan inte sätta datornamn.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Misslyckades att avmontera  CDROM/disketten.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Misslyckader att avmontera hårddisken.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Misslyckades att skriva till /etc/fstab",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Misslyckades att skriva till /etc/hostname",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Kan inte skriva till /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Kan inte skriva till /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Kan inte skriva till /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Misslyckades att skriva %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Kan inte skriva till %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Misslyckades att skriva %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Det finns ett oanvänt ethernetkort av typen:\n%s\n\nDu kan tilldela det här till:",\r
+/* TR_UNKNOWN */\r
+"OKÄND",\r
+/* TR_UNSET */\r
+"OANVÄNT",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"Denna USB-nyckel är ogiltig (ingen vfat-partition kunde hittas).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"VARNING",\r
+/* TR_WARNING_LONG */\r
+"Om du ändrar den här IP-adressen och är inloggad från annnan plats, som kommer din uppkoppling mot %s att brytas och du måste koppla upp dig igen med den nya IP-adressen. Detta är en riskfull operation och skall bara göras om du har fysisk tillgång till maskinen ifall något går fel.",\r
+/* TR_WELCOME */\r
+"Välkommen till %s installationsprogram. Om du väljer avbryt på någon av de följande sidorna så kommer datorn att startas om.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Din konfiguration är vald att ha ett enda GRÖNT gränssnitt och har redan tilldelats en drivrutin.",\r
+}; \r
+  \r
diff --git a/langs/th/CVS/Entries b/langs/th/CVS/Entries
new file mode 100644 (file)
index 0000000..9030d32
--- /dev/null
@@ -0,0 +1 @@
+D/cgi-bin////
diff --git a/langs/th/CVS/Repository b/langs/th/CVS/Repository
new file mode 100644 (file)
index 0000000..c2be371
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/th
diff --git a/langs/th/CVS/Root b/langs/th/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/th/CVS/Tag b/langs/th/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/th/cgi-bin/CVS/Entries b/langs/th/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..6f11d1b
--- /dev/null
@@ -0,0 +1,2 @@
+/th.pl/1.1.2.4/Tue Sep 28 07:04:54 2004//TIPCOP_v1_4_0
+D
diff --git a/langs/th/cgi-bin/CVS/Repository b/langs/th/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..9cb30d2
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/th/cgi-bin
diff --git a/langs/th/cgi-bin/CVS/Root b/langs/th/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/th/cgi-bin/CVS/Tag b/langs/th/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/th/cgi-bin/th.pl b/langs/th/cgi-bin/th.pl
new file mode 100644 (file)
index 0000000..1435950
--- /dev/null
@@ -0,0 +1,138 @@
+# Thai  (th) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation \r
+# (c) 2004 Pongsathorn S \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'ชื่อใบรับรอง CA นี้ได้มีอยู่ก่อนแล้ว', \r
+'a connection with this common name already exists' => 'ชื่อตัวเชื่อมต่อนี้ได้มีอยู่ก่อนแล้ว', \r
+'a connection with this name already exists' => 'ได้มีตัวเชื่อมต่อชื่อนี้อยู่ก่อนแล้ว', \r
+'access allowed' => 'อนุญาตให้มีการเข้าถึงจาก:', \r
+'action' => 'การกระทำ', \r
+'add' => 'เพิ่ม', \r
+'add a host' => 'เพิ่มโฮสต์', \r
+'add a new rule' => 'เพิ่มกฎใหม่', \r
+'add network' => 'เพิ่มเครือข่าย', \r
+'add new alias' => 'เพิ่มสมนามใหม่', \r
+'add new lease' => 'เพิ่มลีสแบบคงที่ใหม่', \r
+'add service' => 'เพิ่มบริการ', \r
+'add xtaccess' => 'เพิ่มการเข้าถึงจากภายนอก', \r
+'admin user password has been changed' => 'ได้ทำการเปลี่ยนรหัสผ่านของผู้ดูแลระบบเรียบร้อยแล้ว', \r
+'administrator user password' => 'รหัสผ่านผู้ดูแลระบบ', \r
+'adsl settings' => 'ตั้งค่า ADSL', \r
+'advanced' => 'ขั้นสูง', \r
+'again' => 'อีกครั้ง:', \r
+'alcatelusb help' => 'วิธีใช้ alcatel usb', \r
+'alcatelusb upload' => 'อัพโหลดเฟิร์มแวร์ alcatel usb', \r
+'alias ip' => 'ip สมนาม', \r
+'aliases' => 'สมนาม', \r
+'aliases not active' => 'สมนามยังไม่ได้ถูกใช้งาน', \r
+'all updates installed' => 'ตัวปรับปรุงทั้งหมดที่ได้ติดตั้งแล้ว', \r
+'alt dialup' => 'หมุนโทรศัพท์', \r
+'alt home' => 'บ้าน', \r
+'alt information' => 'ข้อมูล', \r
+'alt logs' => 'บันทึก', \r
+'alt services' => 'บริการ', \r
+'alt system' => 'ระบบ', \r
+'alt vpn' => 'VPN', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'april' => 'เมษายน', \r
+'archive not exist' => 'ไม่พบแฟ้มบีบอัดการปรับแต่งค่า', \r
+'are you sure' => 'คุณแน่ใจหรือ?', \r
+'arp table entries' => 'รายการตาราง ARP:', \r
+'august' => 'สิงหาคม', \r
+'authentication' => 'การตรวจสอบสิทธิ์:', \r
+'automatic' => 'อัตโนมัติ', \r
+'available updates' => 'ตัวปรับรุ่นที่มี:', \r
+'average' => 'เฉลี่ย', \r
+'back' => 'ย้อนกลับ', \r
+'backup' => 'สำรอง', \r
+'backup config floppy' => 'สำรองการตั้งค่า - ลงแผ่นฟลอปปี้', \r
+'backup configuration' => 'สำรองการตั้งค่า:', \r
+'backup sets' => 'ชุดการสำรอง', \r
+'backup to floppy' => 'สำรองไปที่แผ่นฟลอปปี้', \r
+'backupprofile' => 'ในกรณีที่การเชื่อมต่อล้มเหลว ให้ใช้โปรไฟล์นี้', \r
+'bad characters in script field' => 'มีตัวอักษรที่ใช้ไม่ได้ในเขตข้อมูลของสคริปต์', \r
+'bad characters in the telephone number field' => 'มีตัวอักษรที่ใช้ไม่ได้ในเขตข้อมูลของหมายเลขโทรศัพท์', \r
+'bad destination range' => 'ช่วงระยะพอร์ตปลายทาง ค่าแรกจะต้องมากกว่าหรือเท่ากับค่าที่สอง', \r
+'bad ignore filter' => 'ตัวกรองที่ไม่สนใจว่าจะใช้ได้:', \r
+'bad return code' => 'โปรแกรมช่วยเหลือได้แสดงรหัสค่าผิดพลาด', \r
+'bad source range' => 'ช่วงระยะพอร์ตต้นทาง ค่าแรกจะต้องมากกว่าหรือเท่ากับค่าที่สอง', \r
+'behind a proxy' => 'อยู่หลังพร็อกซี:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'น้ำเงิน', \r
+'blue access' => 'เข้าถึงอุปกรณ์น้ำเงิน', \r
+'blue interface' => 'ตัวเชื่อมต่ออุปกรณ์น้ำเงิน', \r
+'broadcast' => 'การกระจาย', \r
+'broken pipe' => 'ท่อแตก', \r
+'buffered memory' => 'หน่วยความจำกันชน', \r
+'buffers' => 'กันชน', \r
+'bytes per second' => 'ไบต์ต่อวินาที', \r
+'ca certificate' => 'ใบรับรอง CA', \r
+'ca name' => 'ชื่อ CA', \r
+'cache management' => 'การบริหารแคช', \r
+'cache size' => 'ขนาดแคช (MB):', \r
+'cached' => 'เก็บเข้าแคชไว้แล้ว', \r
+'cached memory' => 'เก็บเข้าหน่วยความจำแคชไว้แล้ว', \r
+'cancel' => 'ยกเลิก', \r
+'date' => 'วันที่', \r
+'day' => 'วัน', \r
+'day after' => 'วันหลังจาก', \r
+'day before' => 'วันก่อน', \r
+'days' => 'วัน', \r
+'december' => 'ธันวาคม', \r
+'delete' => 'ลบ', \r
+'description' => 'รายละเอียด', \r
+'destination' => 'ปลายทาง', \r
+'destination ip' => 'ไอพีปลายทาง', \r
+'destination port' => 'พอร์ตปลายทาง', \r
+'device' => 'อุปกรณ์', \r
+'dhcp server' => 'เซิร์ฟเวอร์ DHCP', \r
+'domain' => 'โดเมน', \r
+'domain name' => 'ชื่อโดเมน', \r
+'domain not set' => 'ไม่ได้ตั้งโดเมน', \r
+'edit hosts' => 'แก้ไขโฮสต์', \r
+'edit service' => 'แก้ไขบริการ', \r
+'empty' => 'ว่างเปล่า', \r
+'filename' => 'ชื่อแฟ้ม', \r
+'save' => 'บันทึก', \r
+'update' => 'อัพเดต', \r
+'upload' => 'อัพโหลด', \r
+'upload fcdsl.o' => 'อัพโหลด fcdsl.o', \r
+'upload file' => 'อัพโหลดแฟ้ม', \r
+'upload successful' => 'อัพโหลดเสร็จสิ้น', \r
+'upload synch.bin' => 'อัพโหลด synch.bin', \r
+'username' => 'ชื่อผู้ใช้:', \r
+'username not set' => 'ชื่อผู้ใช้ไม่ได้ถูกตั้ง', \r
+'warning messages' => 'ข้อความเตือน', \r
+'website' => 'เว็บไซต์', \r
+'week' => 'สัปดาห์', \r
+'weeks' => 'สัปดาห์', \r
+'wireless' => 'ไร้สาย', \r
+'year' => 'ปี', \r
+'your e-mail' => 'อีเมลของคุณ', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/tr/CVS/Entries b/langs/tr/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/tr/CVS/Repository b/langs/tr/CVS/Repository
new file mode 100644 (file)
index 0000000..87baa94
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/tr
diff --git a/langs/tr/CVS/Root b/langs/tr/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/tr/CVS/Tag b/langs/tr/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/tr/cgi-bin/CVS/Entries b/langs/tr/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..584bc82
--- /dev/null
@@ -0,0 +1,2 @@
+/tr.pl/1.5.2.13/Tue Jul  5 20:39:45 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/tr/cgi-bin/CVS/Repository b/langs/tr/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..692179a
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/tr/cgi-bin
diff --git a/langs/tr/cgi-bin/CVS/Root b/langs/tr/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/tr/cgi-bin/CVS/Tag b/langs/tr/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/tr/cgi-bin/tr.pl b/langs/tr/cgi-bin/tr.pl
new file mode 100644 (file)
index 0000000..28e32c9
--- /dev/null
@@ -0,0 +1,442 @@
+# Turkish (tr) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Ismail Murat Dilek\r
+#  \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Bu isimde bir CA sertifikasi mevcut', \r
+'a connection with this common name already exists' => 'Bu isimli baglanti mevcut', \r
+'a connection with this name already exists' => 'bu isimde bir baglanti mevcut', \r
+'access allowed' => 'Erişime izin verilenler:', \r
+'action' => 'Eylem', \r
+'add' => 'Ekle', \r
+'add a host' => 'Bir makina ekle:', \r
+'add a new rule' => 'Yeni bir kural ekle:', \r
+'add network' => 'Ağ ekle', \r
+'add new alias' => 'Yeni bir rumuz ekle:', \r
+'add service' => 'Hizmet ekle', \r
+'add xtaccess' => 'Dış erişim ekle', \r
+'admin user password has been changed' => 'Yönetici kullanıcı parolası değişti.', \r
+'administrator user password' => 'Yönetici kullanıcı parolası:', \r
+'adsl settings' => 'ADSL ayarları', \r
+'advanced' => 'Gelismis', \r
+'again' => 'Tekrar:', \r
+'alcatelusb upload' => 'Speedtouch USB firmware yüklemesi', \r
+'alias ip' => 'Rumuz IP', \r
+'aliases' => 'Rumuzlar', \r
+'aliases not active' => 'KIRMIZI arabiriminiz STATİK olmadıkça rumuzlar aktif olmayacaktır', \r
+'all updates installed' => 'Tüm güncellemeler kuruldu', \r
+'alt dialup' => 'Çevirmeli', \r
+'alt home' => 'Başlangıç', \r
+'alt information' => 'Bilgi', \r
+'alt logs' => 'Kayıtlar', \r
+'alt services' => 'Hizmetler', \r
+'alt system' => 'Sistemi', \r
+'alt vpn' => 'VPNs', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'april' => 'Nisan', \r
+'archive not exist' => 'Yapılandırma arşivi yok', \r
+'are you sure' => 'Eminmisiniz ?', \r
+'arp table entries' => 'ARP Tablosu Girdileri:', \r
+'august' => 'Ağustos', \r
+'authentication' => 'Kimlik denetimi:', \r
+'automatic' => 'Otomatik', \r
+'available updates' => 'Mevcut güncellemeler:', \r
+'average' => 'Ortalama', \r
+'back' => 'GERİ', \r
+'backup' => 'Yedek', \r
+'backup config floppy' => 'Ayarları Yedekleme - Disket', \r
+'backup configuration' => 'Yedekleme Konfigürasyonu:', \r
+'backup sets' => 'Yedek Setleri', \r
+'backup to floppy' => 'Diskete yedekle', \r
+'bad characters in script field' => 'Betik alanında hatalı karakterler var.', \r
+'bad characters in the telephone number field' => 'Telefon numarası alanında hatalı karakterler.', \r
+'bad destination range' => 'Hedef port değerlerinin ilki sonuncuya eşit yada daha büyük.', \r
+'bad ignore filter' => 'Yoksayılacak filtre kötü:', \r
+'bad return code' => 'Yardımcı program bir hata kodu getirdi', \r
+'bad source range' => 'Kaynak port değerlerinin ilki sonuncuya eşit yada daha büyük.', \r
+'behind a proxy' => 'Bir vekilsunucu arkasında:', \r
+'blue interface' => 'Mavi Arayüz', \r
+'broadcast' => 'Yayın (Broadcast)', \r
+'bytes per second' => 'bayt/saniye', \r
+'cache management' => 'Önbellek Yönetimi', \r
+'cache size' => 'Önbellek boyutu (MB):', \r
+'cached' => 'önbelleklenmiş', \r
+'cancel' => 'İptal', \r
+'cannot enable ntp without specifying primary' => 'Birincil olan tanımlanmadan NTP başlatılamaz.', \r
+'cannot specify secondary dns without specifying primary' => 'Birinci dns i belirtmeden, ikinciyi yazamazsınız.', \r
+'cannot specify secondary ntp without specifying primary' => 'Birincil NTP adresi belirtmeden İkincil olanı belirtemezsiniz.', \r
+'cant enable xtaccess' => 'İlişkili port yönlendirme kuralı devre dışı, bu yüzden bu kural için dışarıdan erişimi devreye sokamazsınız.', \r
+'cant start openssl' => 'OpenSSL baslatilamiyor', \r
+'caps all' => 'TÜMÜ', \r
+'capsclosed' => 'KAPALI', \r
+'capsopen' => 'AÇIK', \r
+'cfg restart' => 'Ayarları yedekten geri aldıktan sonra sistemin yeniden başlatılması önerilir.', \r
+'chain' => 'Zincir', \r
+'change passwords' => 'Parola değiştir', \r
+'click to disable' => 'Açık (Kapatmak için tıklayın)', \r
+'click to enable' => 'Kapalı (Açmak için tıklayın)', \r
+'clock has not been synchronized' => 'Saat senkronize edilmedi', \r
+'clock last synchronized at' => 'En son saat eşzamanlaması', \r
+'compression' => 'Sıkıştırma:', \r
+'computer to modem rate' => 'Bilgisayardan modeme hız:', \r
+'concentrator name' => 'yoğunlaştırıcı name:', \r
+'confirmation' => 'onay', \r
+'connect on ipcop restart' => 'Yeniden başlamada IPCop a bağlan:', \r
+'connect timeout' => 'Bağlantı zamanaşımı:', \r
+'connected' => 'Bağlandı', \r
+'connecting' => 'Bağlanıyor...', \r
+'connection' => 'Bağlantı', \r
+'connection tracking' => 'IPTables Bağlantı Takibi', \r
+'connection type' => 'Baglanti Turu', \r
+'connections' => 'Bağlantılar', \r
+'could not be opened' => 'açılamadı', \r
+'could not connect to www ipcop org' => 'www.ipcop.org sitesine bağlanılamadı.', \r
+'could not create directory' => 'Dizin oluşturulamıyor.', \r
+'could not download latest patch list' => 'En son yama listesi indirilemedi (bağlı değil).', \r
+'could not download latest updates' => 'En son çıkan güncellemeler indirilemedi.', \r
+'could not download the available updates list' => 'Mevcut güncellemelerin listesi alınamıyor.', \r
+'could not open available updates file' => 'Mevcut güncelleme dosyası açılamıyor.', \r
+'could not open installed updates file' => 'Kurulu güncellemeler dosyası açılamadı', \r
+'could not open update information file' => 'Güncelleme bilgi dosyası açılamıyor. Güncelleme dosyası bozuk.', \r
+'create' => 'oluştur', \r
+'credits' => 'Krediler', \r
+'cron server' => 'CRON sunucusu', \r
+'current aliases' => 'Geçerli rumuzlar:', \r
+'current hosts' => 'Geçerli makinalar:', \r
+'current profile' => 'Geçerli belgi:', \r
+'current rules' => 'Geçerli kurallar:', \r
+'dat without key' => 'Şifrelenmiş bir yedek anahtar olmadan geri alınamaz.', \r
+'date' => 'Tarih', \r
+'date not in logs' => 'Sorgulanan güne ait kayıt yok veya kısmen mevcut', \r
+'day' => 'Gün', \r
+'days' => 'gün', \r
+'ddns hostname added' => 'Dinamik DNS makina adı eklendi', \r
+'ddns hostname removed' => 'Dinamik DNS makina adı silindi', \r
+'december' => 'Aralık', \r
+'default lease time' => 'Varsayılan kira zamanı (dk):', \r
+'delete' => 'Sil', \r
+'demon login script' => 'Demon giriş betiği', \r
+'description' => 'Tanımlama', \r
+'destination' => 'Hedef', \r
+'destination ip' => 'Hedef IP', \r
+'destination ip bad' => 'Geçersiz hedef IP', \r
+'destination port' => 'Hedef kapı', \r
+'destination port numbers' => 'Hedef kapısı bir numara olmalı.', \r
+'detail level' => 'Detay seviyesi', \r
+'dhcp configuration' => 'DHCP konfigürasyonu', \r
+'dhcp server' => 'DHCP sunucusu', \r
+'dhcp server disabled' => 'DHCP sunucusu pasif.  Durduruldu.', \r
+'dhcp server enabled' => 'DHCP sunucusu aktif edildi. Yeniden başlatılıyor.', \r
+'dial' => 'Bağlan', \r
+'dial user password' => 'Çevirmeli kullanıcı parolası:', \r
+'dial user password has been changed' => 'Çevirmeli kullanıcı parolası değişti.', \r
+'dialing mode' => 'Çefvirme tipi:', \r
+'disk usage' => 'Disk kullanımı:', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'DMZ iğnedeliği konfigürasyonu', \r
+'dmz pinhole rule added' => 'DMZ iğnedeliği kuralı; DMZ iğnedeliği yeniden başlatılıyor', \r
+'dmz pinhole rule removed' => 'DMZ iğnedeliği kuralı silindi; DMZ iğnedeliği yeniden başlatılıyor', \r
+'dns proxy server' => 'DNS vekil sunucusu', \r
+'dod' => 'Gerektiğinde Çevir', \r
+'dod for dns' => 'DNS için Gerektiğinde Çevir:', \r
+'domain' => 'Alan', \r
+'domain name' => 'Alan adı', \r
+'domain name suffix' => 'Alan adı soneki:', \r
+'domain not set' => 'Alan adı girilmemİş.', \r
+'download new ruleset' => 'Yeni kural tanımlarını indir', \r
+'driver' => 'Surucu', \r
+'dst port' => 'Hedef kapısı', \r
+'duplicate ip' => 'Eş IP adresi girildi', \r
+'duplicate name' => 'Bu isim kullanılıyor, lütfen başka bir isim seçin.', \r
+'dynamic dns' => 'Dinamik DNS', \r
+'edit' => 'Düzenle', \r
+'empty' => 'Boş', \r
+'enable ignore filter' => 'Filtre yoksayta aktif', \r
+'enable wildcards' => 'Joker karakterleri aktif:', \r
+'enabled' => 'Etkinleştirildi:', \r
+'enabledtitle' => 'Aktif edildi', \r
+'end address' => 'Bitiş adresi:', \r
+'error messages' => 'Hata mesajları:', \r
+'every' => 'Her', \r
+'export' => 'Dışarı ver', \r
+'external access configuration' => 'Harici erişim konfigürasyonu', \r
+'external access rule added' => 'Harici erişim kuralı eklendi; erişim kontrolcüsü yeniden başlatılıyor', \r
+'external access rule removed' => ' Harici erişim kuralı silindi; erişim kontrolcüsü yeniden başlatılıyor', \r
+'february' => 'Şubat', \r
+'firewall log' => 'Firewall kayıdı', \r
+'firmware' => 'Bellenim', \r
+'force update' => 'Güncellemeye zorla', \r
+'forwarding rule added' => 'İletim kuralı eklendi; iletici yeniden başlatılıyor', \r
+'forwarding rule removed' => 'İletim kuralı silindi; iletici yeniden başlatılıyor', \r
+'free' => 'Boş', \r
+'free memory' => 'Boş Bellek', \r
+'global settings' => 'Genel ayarlar', \r
+'gui settings' => 'Grafik Arabirim Ayarları', \r
+'hangup' => 'Bağlantıyı kes', \r
+'hangup string' => 'Kes:', \r
+'hostname' => 'Makina adı', \r
+'hostname and domain already in use' => 'Makina adı ve alan adı zaten kullanımda.', \r
+'hostname not set' => 'Makina adı girilmemiş.', \r
+'hours' => 'saat', \r
+'ibod for dual isdn only' => 'iBOD, sadece çift ISDN ile kullanılabilir.', \r
+'id' => 'ID', \r
+'idle timeout' => 'Boşta kalma zamanaşımı (dk; pasif için 0):', \r
+'idle timeout not set' => 'Boşta kalma zamanaşımı ayarlanmamış.', \r
+'ids log viewer' => 'IDS kayıt göstericisi', \r
+'ignore filter' => 'Filtreyi yoksay', \r
+'import' => 'Al', \r
+'info' => 'Bilgi', \r
+'init string' => 'Init:', \r
+'insert floppy' => 'Sistem konfigürasyonunu yedeklemek için biçimlendirilmiş bir disketi sürücüye takın ve <i>Diskete yedekle</i> e tıklayın. Lütfen yedeklemenin sağlığı açısından sonuçları dikkatle inceleyiniz.<p>', \r
+'install new update' => 'Yeni güncelleme kur:', \r
+'installed' => 'Kuruldu', \r
+'installed updates' => 'Kurulu güncellemeler:', \r
+'interface' => 'Arabirim:', \r
+'interfaces' => 'Arabirimler:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection system' => 'Saldırı Tesbit Sistemi', \r
+'intrusion detection system2' => 'Saldırı Tesbit Sistemi:', \r
+'invalid broadcast ip' => 'Geçersiz yayın (broadcast) IP adresi', \r
+'invalid cache size' => 'Geçersiz önbellek boyutu.', \r
+'invalid default lease time' => 'Geçersiz varsayılan kira zamanı.', \r
+'invalid domain name' => 'Geçersiz alan adı.', \r
+'invalid end address' => 'Geçersiz bitiş adresi.', \r
+'invalid hostname' => 'Geçersiz makina adı.', \r
+'invalid input' => 'Geçersiz giriş', \r
+'invalid ip' => 'Geçersiz IP Adresi', \r
+'invalid max lease time' => 'Geçersiz en fazla kira zamanı.', \r
+'invalid maximum incoming size' => 'Geçersiz en fazla giren sayısı.', \r
+'invalid maximum object size' => 'Geçersiz en fazla nesne sayısı.', \r
+'invalid maximum outgoing size' => 'Geçersiz en fazla çıkan sayısı.', \r
+'invalid minimum object size' => 'Geçersiz en az nesne sayısı.', \r
+'invalid primary dns' => 'Geçersiz birinci DNS.', \r
+'invalid primary ntp' => 'Geçersiz Birincil NTP sunucusu adresi', \r
+'invalid secondary dns' => 'Geçersiz ikinci DNS.', \r
+'invalid secondary ntp' => 'Geçersiz İkincil NTP sunucusu adresi', \r
+'invalid start address' => 'Geçersiz başlangıç adresi.', \r
+'invalid time period' => 'Geçersiz zaman aralığı', \r
+'invalid upstream proxy username or password setting' => 'Geçersiz yukarı akım vekilsunucu kulanıcıadı veya parola ayarı.', \r
+'invalid wins address' => 'Geçersiz Wins Sunucusu adresi.', \r
+'ip address' => 'IP Adresi', \r
+'ip info' => 'IP Bilgisi', \r
+'ipcop has now rebooted' => 'IPCop yeniden başlatıldı.', \r
+'ipcop has now shutdown' => 'IPCop kapandı.', \r
+'ipinfo' => 'IP bilgisi', \r
+'isdn settings' => 'İlave ISDN ayarları:', \r
+'isdn1' => 'Tek ISDN', \r
+'isdn2' => 'Çift ISDN', \r
+'january' => 'Ocak', \r
+'july' => 'Temmuz', \r
+'june' => 'Haziran', \r
+'kernel' => 'Çekirdek', \r
+'kernel logging server' => 'Çekirdek kayıt sunucusu', \r
+'kernel version' => 'Çekridek sürümü:', \r
+'loaded modules' => 'Yüklü modüller:', \r
+'log' => 'Kayıt:', \r
+'log viewer' => 'Kayıt göstericisi', \r
+'logging server' => 'Kayıt sunucusu', \r
+'loginlogout' => 'Giriş/Çıkış', \r
+'lookup failed' => 'Ters sorgulama başarısız', \r
+'mac address' => 'MAC Adresi', \r
+'main page' => 'Ana sayfa', \r
+'manual' => 'El ile', \r
+'manual control and status' => 'El ile kontrol ve durum:', \r
+'manually' => 'El ile', \r
+'march' => 'Mart', \r
+'max incoming size' => 'En fazla giriş sayısı (KB):', \r
+'max lease time' => 'En fazla kira zamanı (dk):', \r
+'max outgoing size' => 'En fazla çıkış sayısı (KB):', \r
+'max retries not set' => 'En fazla deneme sayısı ayarlanmamış.', \r
+'max size' => 'En fazla nesne sayısı (KB):', \r
+'maximum retries' => 'En fazla deneme:', \r
+'may' => 'Mayıs', \r
+'memory' => 'Hafıza:', \r
+'method' => 'Metot:', \r
+'min size' => 'En az nesne sayısı (KB):', \r
+'modem configuration' => 'Modem konfigürasyonu', \r
+'modem on com1' => 'COM1 de modem', \r
+'modem on com2' => 'COM2 de modem', \r
+'modem on com3' => 'COM3 te modem', \r
+'modem on com4' => 'COM4 te modem', \r
+'modem settings have errors' => 'Modem ayarlarında hata var', \r
+'modem speaker on' => 'Modem hoparlörü açık:', \r
+'month' => 'Ay', \r
+'months' => 'ay', \r
+'name' => 'İsim', \r
+'name must only contain characters' => 'İsim sadece karakterlerden oluşabilir.', \r
+'network time' => 'Ağ Zaman Sunucusu (NTP) kullan:', \r
+'network traffic graphs' => 'Ağ trafik grafikleri', \r
+'newer' => 'Yeni', \r
+'no fritzdsl driver' => 'Fritz!DSL sürücüsü yok, lütfen yükleyiniz.', \r
+'no information available' => 'Mevcut bilgi yok.', \r
+'none found' => 'hiçbiri bulunamadı', \r
+'not present' => '<b>sunulmamış</b>', \r
+'november' => 'Kasım', \r
+'ntp configuration' => 'NTP konfigürasyonu', \r
+'ntp syncro disabled' => 'NTP eşzamanlama pasif', \r
+'ntp syncro enabled' => 'NTP eşzamanlama aktif', \r
+'number' => 'Numara:', \r
+'october' => 'Ekim', \r
+'older' => 'Eski', \r
+'only digits allowed in max retries field' => 'En fazla deneme sayısında sadece sayı kullanabilirsiniz.', \r
+'only digits allowed in the idle timeout' => 'Boşta kalma zamanaşımında sadece sayı kullanabilirsiniz.', \r
+'other login script' => 'Diğer giriş betiği', \r
+'package failed to install' => 'Paket kurulamadı.', \r
+'pap or chap' => 'PAP veya CHAP', \r
+'password' => 'Parola:', \r
+'password contains illegal characters' => 'Parola içinde geçersiz karakterler var.', \r
+'password not set' => 'Parola ayarlanmamış.', \r
+'passwords do not match' => 'Parolalar uyuşmuyor.', \r
+'passwords must be at least 6 characters in length' => 'Parola en az 6 karakter uzunlukta olmalıdır.', \r
+'phonebook entry' => 'Telefon defteri girdisi:', \r
+'port forwarding configuration' => 'Kapı iletim konfigürasyonu', \r
+'ppp setup' => 'PPP kurulumu', \r
+'pppoe settings' => 'İlave PPPoE ayarları:', \r
+'pptp settings' => 'İlave PPTP ayarları:', \r
+'present' => 'Sunum', \r
+'primary dns' => 'Brinci DNS:', \r
+'primary ntp server' => 'Birincil NTP Sunucusu', \r
+'priority' => 'Öncelik', \r
+'profile deleted' => 'Belgi silindi: ', \r
+'profile has errors' => 'Belgi hatalı', \r
+'profile made current' => 'Belgi şundan yapılmış: ', \r
+'profile name' => 'Belgi ismi:', \r
+'profile name not given' => 'Belgi ismi verilmemiş.', \r
+'profile saved' => 'Belgi kaydedildi: ', \r
+'profiles' => 'Belgiler:', \r
+'protocol' => 'Baş', \r
+'proxy' => 'Vekil sunucu', \r
+'proxy access graphs' => 'Vekil sunucu erişim grafikleri', \r
+'proxy log viewer' => 'Vekilsunucu kayıt göstericisi', \r
+'pulse' => 'Darbeli', \r
+'pulse dial' => 'Darbeli arama:', \r
+'reboot' => 'Yendien başlat', \r
+'rebooting' => 'Yeniden başlatılıyor', \r
+'rebooting ipcop' => 'IPCop yeniden başlatılıyor', \r
+'references' => 'Referanslar', \r
+'refresh' => 'Yenile', \r
+'refresh update list' => 'Güncelleme listesini yenile', \r
+'released' => 'Yayınlanma', \r
+'remote access' => 'Uzaktan erişim', \r
+'remove' => 'Sil', \r
+'restart' => 'Yeniden başlat', \r
+'restore' => 'Geri yükle', \r
+'restore defaults' => 'Varsayılanlara dön', \r
+'running' => 'ÇALIŞIYOR', \r
+'save' => 'Kaydet', \r
+'script name' => 'Betik adı:', \r
+'secondary dns' => 'İkinci DNS:', \r
+'secondary ntp server' => 'İkincil NTP Sunucusu', \r
+'section' => 'Bölüm', \r
+'secure shell server' => 'Güvenli kabuk sunucusu', \r
+'select' => 'Seç', \r
+'send cr' => 'ISP satırbaşı karakteri istiyor:', \r
+'september' => 'Eylül', \r
+'service' => 'Hizmet', \r
+'service name' => 'Hizmet ismi:', \r
+'servicename' => 'Servis İsmi', \r
+'services' => 'Hizmetler:', \r
+'set time now' => 'Zamanı Ayarla', \r
+'settings' => 'Ayarlar', \r
+'shutdown' => 'Kapan', \r
+'shutdown control' => 'Kapanma kontrolü', \r
+'shutdown2' => 'Kapan:', \r
+'shutting down' => 'Kapanıyor', \r
+'shutting down ipcop' => 'IPCop kapatılıyor', \r
+'source' => 'Kaynak', \r
+'source ip' => 'Kaynak IP', \r
+'source ip bad' => 'Geçerli bir IP adresi veya ağ adresi değil.', \r
+'source network' => 'Kaynak IP si veya ağı ("TÜMÜ" için boş):', \r
+'source port' => 'Kaynak kapı', \r
+'source port in use' => 'Kaynak kapısı kullnımda:', \r
+'source port numbers' => 'Kaynak kapısı bir numara olmalı.', \r
+'speaker off' => 'Hoparlör kapalı:', \r
+'speaker on' => 'Hoparlör açık:', \r
+'src port' => 'Kaynak kapısı', \r
+'ssdmz pinholes' => 'DMZ iğnedelikleri', \r
+'ssh access' => 'SSH Erişimi', \r
+'ssh is disabled' => 'SSH pasif.  Durduruluyor.', \r
+'ssh is enabled' => 'SSH aktif.  Yeniden başlatılıyor.', \r
+'sspasswords' => 'Parolalar', \r
+'ssport forwarding' => 'Port iletimi', \r
+'ssproxy graphs' => 'Vekilsunucu grafikleri', \r
+'sstraffic graphs' => 'Trafik grafikleri', \r
+'standard login script' => 'Standart giriş betiği', \r
+'start address' => 'Başlangıç adresi:', \r
+'status information' => 'Durum bilgisi', \r
+'stopped' => 'ÇALIŞMIYOR', \r
+'successfully refreshed updates list' => 'Güncelleme listesi başarıyla yenilendi.', \r
+'telephone not set' => 'Telefon ayarlanmamış.', \r
+'the following update was successfully installed' => 'Şu güncelleme başarıyla yüklendi', \r
+'there are updates' => 'Sisteminiz için güncellemeler var. Daha fazla bilgi için "Güncellemeler" bölümüne gidebilirsiniz.', \r
+'there are updates available' => 'Sisteminize uygun güncellemeler var. En kısa zamanda bunları yüklemeniz önemle tavsiye edilir.', \r
+'this field may be blank' => 'Bu alan boş kalabilir.', \r
+'this is not a valid archive' => 'Geçerli bir arşiv değil.', \r
+'this is not an authorised update' => 'Bu bir doğrulanmış güncelleme değil.', \r
+'this update is already installed' => 'Bu güncelleme zaten kurulu.', \r
+'time' => 'Zaman', \r
+'timeout must be a number' => 'Zamanaşımı bir numara olmalıdır.', \r
+'title' => 'Başlık', \r
+'to install an update' => 'Bir güncelleme kurmak için aşağıdan .tgz.gpg dosyası indirin:', \r
+'tone' => 'Tonlu', \r
+'tone dial' => 'Tonlu arama:', \r
+'type' => 'Tip', \r
+'unable to alter profiles while red is active' => 'KIRMIZI aktif iken belgi değiştirilemez.', \r
+'unable to contact' => 'Bağlantı Kurulamadı: ', \r
+'unknown' => 'BİLİNMEYEN', \r
+'unnamed' => 'İsimlendirilmemiş', \r
+'update' => 'Güncelle', \r
+'update time' => 'Zamanı güncelle:', \r
+'update transcript' => 'Belge güncelle', \r
+'updates' => 'Güncellemeler', \r
+'updates is old1' => 'Güncelleme dosyanız ', \r
+'updates is old2' => 'gün eski. "Güncellemeler" sayfasından güncellemenizi tavsiye ederiz.', \r
+'upload' => 'Yükle', \r
+'upload file' => 'Dosya yükle', \r
+'upload successful' => 'Yükleme başarılı.', \r
+'upload update file' => 'Güncelleme dosyasını yükle:', \r
+'upstream password' => 'Yukarı akım parolası:', \r
+'upstream username' => 'Yukarı akım kullanıcı adı:', \r
+'uptime and users' => 'Hizmet zamanı ve kullanıcılar:', \r
+'use dov' => 'DOV Kullan (Data Over Voice):', \r
+'use ibod' => 'iBOD kullan (Bandwidth on Demand):', \r
+'username' => 'Kullanıcıadı:', \r
+'username not set' => 'Kullanıcı adı belirlenmemiş..', \r
+'vci number' => 'VCI Numarası:', \r
+'vpi number' => 'VPI Numarası:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN konfigürasyonu - Ana', \r
+'waiting to synchronize clock' => 'Saat eşzamanlama için bekleyiniz', \r
+'web proxy' => 'Web vekil sunucusu', \r
+'web proxy configuration' => 'Web vekilsunucu konfigürasyonu', \r
+'web server' => 'Web sunucusu', \r
+'website' => 'Websitesi', \r
+'weeks' => 'hafta', \r
+'wildcards' => 'Joker karakterler', \r
+'year' => 'Yıl', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/tr/install/CVS/Entries b/langs/tr/install/CVS/Entries
new file mode 100644 (file)
index 0000000..2c3c15f
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_tr.c/1.7.2.4/Mon Dec 12 09:23:30 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/tr/install/CVS/Repository b/langs/tr/install/CVS/Repository
new file mode 100644 (file)
index 0000000..bd507a9
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/tr/install
diff --git a/langs/tr/install/CVS/Root b/langs/tr/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/tr/install/CVS/Tag b/langs/tr/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/tr/install/lang_tr.c b/langs/tr/install/lang_tr.c
new file mode 100644 (file)
index 0000000..72f9956
--- /dev/null
@@ -0,0 +1,508 @@
+/*\r
+ * Turkish (tr) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2003 Ismail Murat Dilek\r
+ *  \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *tr_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Adres ayarları",\r
+/* TR_ADMIN_PASSWORD */\r
+"Yönetici parolası",\r
+/* TR_AGAIN_PROMPT */\r
+"Tekrar:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Tüm kartlar başarıyla tahsis edildi.",\r
+/* TR_AUTODETECT */\r
+"* OTOTESBİT *",\r
+/* TR_BUILDING_INITRD */\r
+"Building INITRD...",\r
+/* TR_CANCEL */\r
+"Vazgeç",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Kart ataması",\r
+/* TR_CHECKING */\r
+"Checking URL...",\r
+/* TR_CHECKING_FOR */\r
+"Denetleniyor: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Bu bilgisayarda kullanılan ISDN kartı seçiniz.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Kullanacağınız ISDN protokolünü seçiniz.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Ayar bilgilerini girerek DHCP sunucusunu konfigüre ediniz.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Ağı konfigüre et",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Şu anda, öncelikle YEŞİL arabirim için doğru sürücüyü yükleyerek ağ ayarlarınızı yapabilirsiniz. Bunu yapmak için iki seçeneğiniz var, otomatik tanımayı seçebilirsiniz ya da listeden uygun bir sürücü seçebilirsiniz. Birden fazla ağ kartı kullanacaksanız, diğerlerini yine kurulum içinde daha sonra ayarlayabilirsiniz. YEŞİL ile aynı tipte birden fazla kartınız varsa, ve her kart özel modül parametreleri istiyorsa, bu tipteki tüm kartlar için parametreleri girerseniz YEŞİL arabirimi kongifüre ettiğinizde tüm kartlar aktif olacaktır.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Her kart atanmış arabirim için ağ sürücülerinizi konfigüre edin.  Geçerli konfigürasyon şöyledir:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"CDROM için uygun bir IO adresi ve/veya IRQ adresi seçiniz.",\r
+/* TR_CONGRATULATIONS */\r
+"Tebrikler!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s başarılı olarak kuruldu. Lütfen tüm disketleri ve CDROM ları sürücülerden çıkarın. Kur, şimdi ISDN, ağ kartları ve sistem parolalarını ayarlayacağınız arabirimi çalıştıracak. Kur tamamlandıktan sonra, web tarayıcınızla http://%s:81 adresine veya https://%s:445 adresine (ya da %s de ne ismi kullandıysanız) girin, ve çevirmeli ağ(if required) ve uzaktan erişimi ayarlayın. &s çevirmeli kullanıcısıiçin bir parola vermeyi unutmayın, %s istemiyorsanız, 'yönetici' kullanıcılar bağlantıyı kontrol edebileceklerdir.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Your harddisk is very small, but you can continue without any swap. (Use with caution).",\r
+/* TR_CURRENT_CONFIG */\r
+"Geçerli konfigürasyon: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Varsayılan Ağ geçidi:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Varsayılan Ağ geçidi\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Varsayılan kira (dk):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Varsayılan kira süresi\n",\r
+/* TR_DETECTED */\r
+"Tesbit edilen: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"DHCP Makina adı:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"DHCP Makina adı\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"DHCP sunucusu ayarları",\r
+/* TR_DISABLED */\r
+"Pasif",\r
+/* TR_DISABLE_ISDN */\r
+"ISDN kullanma",\r
+/* TR_DISK_TOO_SMALL */\r
+"Your harddisk is too small.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"DNS ve Ağ geçidi ayarları",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"DNS ve ağ geçidi bilgilerini girin.  Bu ayarlar sadece DHCP KIRMIZI arabirim üzerinde pasif edilmişse geçerlidir.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Konfigürasyonunuz KIRMIZI arabirim için bir ethernet bağdaştırıcısı kullanmıyor. Çevirmeli kullanıcılar için DNS ve Ağ geçidi bilgileri arama anında otomatik olarak ayarlanacaktır.",\r
+/* TR_DOMAINNAME */\r
+"Domain name",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Domain name cannot be empty.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Domain name cannot contain spaces.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Domain name may only contain letters, numbers, hyphens and periods.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Etki alanı son eki:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Etki alanı son eki\n",\r
+/* TR_DONE */\r
+"Tamam",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nBu ayarları değiştirmek istiyor musunuz?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Sürücüler ve kart atamaları",\r
+/* TR_ENABLED */\r
+"Aktif",\r
+/* TR_ENABLE_ISDN */\r
+"ISDN kullan",\r
+/* TR_END_ADDRESS */\r
+"Bitiş adresi:",\r
+/* TR_END_ADDRESS_CR */\r
+"Bitiş adresi\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Bazı ISA kartlar (özellikle ISA olanlar) IRQ ve IQ adres bilgileri için ilave modül parametreleri isterler. Böyle bir kartınız varsa bu ilave parametreleri buraya giriniz. Örneğin: \"io=0x280 irq=9\".Bu paramet5reler kart saptanması sırasında kullanılacaktır. ",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"%s yönetici parolasını girin.  Bu, %s web yönetimi sayfalarınınkayıtlarına erişebilen kullanıcıdır.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Enter Domain name",\r
+/* TR_ENTER_HOSTNAME */\r
+"Makina adını giriniz.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"IP adres bilgilerini gir",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Ağ kartı otomatik olarak tesbit edilemedi. Ağ kartı için sürücü ve ilave parametreleri giriniz.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"'root' için parola girin. Komut satırı erişimi için bu kullanıcı ile oturum açın.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"'setup' kullanıcı parolasını girin. Setup programına erişebilmek için bu kullanıcı ile oturum açın.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"%s arabirimi için IP adres bilgilerini girin.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Yerel telefon numarasını giriniz (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Enter the URL path to the ipcop-<version>.tgz and images/scsidrv-<version>.img files. WARNING: DNS not available! This should now just be http://X.X.X.X/<directory>",\r
+/* TR_ERROR */\r
+"Hata",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Konfigürasyon bilgisi yazılamadı.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Extracting modules...",\r
+/* TR_FAILED_TO_FIND */\r
+"Failed to find URL file.",\r
+/* TR_FOUND_NIC */\r
+"%s tarafından makinanızda şu NIC bulundu: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"German 1TR6",\r
+/* TR_HELPLINE */\r
+"              <Tab>/<Alt-Tab> öğeler arasında   |  <Boşluk> seçim",\r
+/* TR_HOSTNAME */\r
+"Makina adı",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Makina adı boş olamaz.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Makina adı boşluk içeremez.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Hostname may only contain letters, numbers and hyphens.",\r
+/* TR_INITIALISING_ISDN */\r
+"ISDN başlatılıyor...",\r
+/* TR_INSERT_CDROM */\r
+"%s CD sini CDROM sürücüye takınız.",\r
+/* TR_INSERT_FLOPPY */\r
+"%s sürücü disketini disket sürücüye takınız.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Yükleme iptal edildi.",\r
+/* TR_INSTALLING_FILES */\r
+"Dosyalar kuruluyor...",\r
+/* TR_INSTALLING_GRUB */\r
+"GRUB kuruluyor...",\r
+/* TR_INTERFACE */\r
+"%s arabirim",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Arabirim başlatılamadı.",\r
+/* TR_INVALID_FIELDS */\r
+"Şu alanlar geçersiz:\n\n",\r
+/* TR_INVALID_IO */\r
+"Girilen IO kapı ayrıntıları geçersiz. ",\r
+/* TR_INVALID_IRQ */\r
+"Girilen IRQ ayrıntıları geçersiz.",\r
+/* TR_IP_ADDRESS_CR */\r
+"IP adresi\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"IP adresi:",\r
+/* TR_ISDN_CARD */\r
+"ISDN Kartı",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"ISDN kart bulunamadı. ISA ya da özel gereksinimleri olan bir kart kullanıyorsanız ilave modül parametrelerini belirtebil irsiniz.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"ISDN kart seçimi",\r
+/* TR_ISDN_CONFIGURATION */\r
+"ISDN Ayarları",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"ISDN Konfigürasyonu menüsü",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN ayarlanmadı. Bazı öğeler henüz seçilmemiş.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN henüz ayarlanmamış. Ayarlamak istediğiniz öğeyi seçin.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"ISDN protokol seçimi",\r
+/* TR_ISDN_STATUS */\r
+"ISDN şu anda %s.\n\n   Protokol: %s\n   Kart: %s\n   Yerel telefon numarası: %s\n\nTekrar ayarlamak istediğiniz elemanı seçin, ya da geçerli ayarları kullanmayı seçin.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Klavye haritası",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Aşağıdaki listeden kullandığınız klavye tipini seçiniz.",\r
+/* TR_LEASED_LINE */\r
+"Kiralık hat",\r
+/* TR_LOADING_MODULE */\r
+"Modül yükleniyor...",\r
+/* TR_LOADING_PCMCIA */\r
+"Loading PCMCIA modules...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"%s için aranıyor.",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Önyükleme dosya sistemi oluşturuluyor...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Kayıt dosya sistemi oluşturuluyor...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Kök dosya sistemi oluşturuluyor...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Takas alanı oluşturuluyor...",\r
+/* TR_MANUAL */\r
+"* EL İLE *",\r
+/* TR_MAX_LEASE */\r
+"En fazla kira (dk):",\r
+/* TR_MAX_LEASE_CR */\r
+"EN fazla kira süresi\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Missing IP information on the BLUE interface.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"TURUNCU arabirim üzerinde hatalı IP adresi.",\r
+/* TR_MISSING_RED_IP */\r
+"KIRMIZI arabirim üzerinde hatalı IP adresi.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Modul adı boş olamaz.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Gereksinim duyduğunuz sürücü için modül adı ve parametrelerini giriniz.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Önyükleme dosya sistemi bağlanıyor...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Kayıt dosya sistemi bağlanıyor...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Kök dosya sistemi bağlanıyor...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Takas alanı bağlanıyor...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Yerel telefon numarası (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Ağ maskesi:",\r
+/* TR_NETWORKING */\r
+"Ağ",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Ağ adresi\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Ağ adresi:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Ağ konfigürasyonu menüsü",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Ağ konfigürasyon tipi",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"%s için ağ konfigürasyonunu seçiniz.  Aşağıdaki konfigürasyon tipleri ethernet bağlı arabirimlerin listesidir. Bu ayarları değiştirdiğinzde, ağın yeniden başlatılması gereklidir, ve ağ sürücü atamaları yeniden yapılmalıdır.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Ağ maskesi\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Ağ ayarları geçersiz.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Yeterli kart tahsis edilmedi.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"No BLUE interface assigned.",\r
+/* TR_NO_CDROM */\r
+"No CD-ROM found.",\r
+/* TR_NO_HARDDISK */\r
+"No hard disk found.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"No ipcop tarball found on Web Server.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"TURUNCU arabirim atanmamış.",\r
+/* TR_NO_RED_INTERFACE */\r
+"KIRMIZI arabirim atanmamış.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"No SCSI image found on Web Server.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"tahsis edilmemiş kart kalmadı, daha fazlası gereklidir. Kartı otomatik arattırabilirsiniz veya Listeden birtane seçebilirsiniz.",\r
+/* TR_OK */\r
+"Tamam",\r
+/* TR_PARTITIONING_DISK */\r
+"Disk bölümleniyor...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Parolalar eşleşmiyor.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Parola boş olamaz.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Password cannot contain spaces.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Parola:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Telefon numarası boş olamaz.",\r
+/* TR_PREPARE_HARDDISK */\r
+"S¸imdi kurulum programı %s üzerinde sabit diski hazırlayacaktır. Öncelikle disk bölümlenecek, daha sonra bu bölümlemeler üzerinebir dosya sistemi yazılacaktır.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Resetleme için Tamam a basınız.",\r
+/* TR_PRIMARY_DNS */\r
+"Birincil DNS:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"Birincil DNS\n",\r
+/* TR_PROBE */\r
+"Araştırma",\r
+/* TR_PROBE_FAILED */\r
+"Otomatik tanıma başarısız.",\r
+/* TR_PROBING_SCSI */\r
+"Probing SCSI devices...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"%s yönetici parolası ayarlanamadı.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"'root' parolası ayarlanamadı.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"'setup' parolası ayarlanamadı.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Protokol/Ülke",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Ağ başlatılıyor...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Ağ durduruluyor...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Yerel olmayan ağ durduruluyor...",\r
+/* TR_QUIT */\r
+"Çıkış",\r
+/* TR_RED_IN_USE */\r
+"ISDN (ya da herhangi bir harici bağlantı) şu anda kullanımda. Kırmızı arabirim aktif iken ISDN i konfigüre etmemelisiniz.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nKonfigürasyon tamamlandığında, ağ yeniden başlatılmalıdır.",\r
+/* TR_RESTORE */\r
+"Geri al",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Üzerinde %s sistem konfigürasyonu olan bir disketiniz varsa, lütfen bunudisket sürücüye takınız ve \"geri al\" düğmesine basınız.",\r
+/* TR_ROOT_PASSWORD */\r
+"'root' parola",\r
+/* TR_SECONDARY_DNS */\r
+"İkincil DNS:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"İkincil DNS\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Birincil DNS olmadan İkincil DNS belirtildi",\r
+/* TR_SECTION_MENU */\r
+"Bölüm menüsü",\r
+/* TR_SELECT */\r
+"Seçim",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"CDROM tipini seçiniz.",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Bu makinada CDROM bulunamadı.  Lütfen %s nin cdrom yerine kullanması için s¸u sürücülerden birisini seçiniz.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Kurulum ortamını seçiniz",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s çoklu kaynaktan kurulabilir. En basit olanı makinanın cdrom sürücüsünü kullanmaktır. Eğer bilgisayarın sürücüsü yoksa, yerel ağ üzerinde HTTP ile dosya alabileceğiniz bir bilgisayar mevcut ise onun üzerinden de kurulum yapabilirsiniz. Bu durumda ağ sürücü disketi gerekecektir.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Ağ sürücüsü seçiniz",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Bu makinada kurulu olan kart için bir ağ sürücüsü seçin. EL İLE yi seçerseniz , Özel gereksinimleri olan bir kart için (ISA kartlar gibi) sürücü modül adı ve parametrelerini yazmanız istenecektir.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Yeniden ayarlamak istediğiniz arabirimi seçin.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Ayarlamak istediğiniz öğeyi seçiniz.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"%s yönetici parolası ayarlanıyor....",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"'root' parolası ayarlanıyor....",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"'setup' parolası ayarlanıyor....",\r
+/* TR_SETUP_FINISHED */\r
+"Kurulum tamamlandı. Yeniden başlatmak için Tamam a basınız",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Başlangıç kurulumu tümüyle tamamlanamadı.  Kurulumu yeniden kabuktan çalıştırınca doğru olarak tammalandığından emin olun.",\r
+/* TR_SETUP_PASSWORD */\r
+"'setup' parola",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"İlave modül parametrelerini ayarla",\r
+/* TR_SINGLE_GREEN */\r
+"Konfigürasyonunuz bir tekil YEŞİL arabirim için yapıldı.",\r
+/* TR_SKIP */\r
+"Atla",\r
+/* TR_START_ADDRESS */\r
+"Başlangıç adresi:",\r
+/* TR_START_ADDRESS_CR */\r
+"Başlangıç adresi\n",\r
+/* TR_STATIC */\r
+"Statik",\r
+/* TR_SUGGEST_IO */\r
+"(önerilen %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(önerilen %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Bu sürücü modülü zaten yüklü.",\r
+/* TR_TIMEZONE */\r
+"Saat dilimi",\r
+/* TR_TIMEZONE_LONG */\r
+"Bulunduğunuz yerin zaman dilimini aşağıdaki listeden seçiniz.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"CDROM açılamadı.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Unable to extract modules.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"İlave sürücü bulunamadı.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Bu bilgisayarda bir ISDN kart bulunamadı. ISA ya da özel gereksinimleri olan bir kart kullanıyorsanız ilave modül parametrelerini belirtebilirsiniz. ",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"ISDN başlatılamadı.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Dosyalar kurulamadı.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"GRUB kurulamadı.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Sürücü modülü yüklenemiyor.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Önyükleme dosya sistemi oluşturulamadı.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Kayıt dosya sistemi oluşturulamadı.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Kök dosya sistemi oluşturulamadı.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Takas alanı oluşturulamadı.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"/dev/harddisk için symlink oluşturulamadı.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"/dev/harddisk1 için symlink oluşturulamadı.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"/dev/harddisk2 için symlink oluşturulamadı.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"/dev/harddisk3 için symlink oluşturulamadı.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"/dev/harddisk4 için symlink oluşturulamadı.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"/dev/root için symlink oluşturulamadı.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Önyükleme dosya sistemi bağlanamadı.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Kayıt dosya sistemi bağlanamadı.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"/proc dosya sistemi bag˘lanamadı.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Kök dosya sistemi bağlanamadı.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Takas alanı bağlanamadı.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Unable to open main hosts file.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Ayar dosyası açılamıyor",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Disk bölümlenemiyor.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"İndirilen geçici dosyalar silinemedi.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Makina adı yazılamıyor.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"cdrom/disket sürücü ayrılamadı.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Sabit disk ayrılamadı.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"/etc/fstab dosyasına yazılşamıyor",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"/etc/hostname dosyasına yazılşamıyor",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"/etc/hosts soayası yazılamıyor.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"/etc/hosts.allow dosyası yazılamıyor.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"/etc/hosts.deny dosyası yazılamıyor.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"%s/ethernet/settings yazılamıyor.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"%s/main/hostname.conf dosyası yazılamıyor.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"%s/main/settings yazılamıyor.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"TAlep edilmemiş bir ethernet kartı:\n%s\n\nBunu şuna atayabilirsiniz:",\r
+/* TR_UNKNOWN */\r
+"BİLİNMEYEN",\r
+/* TR_UNSET */\r
+"UNSET",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"DİKKAT",\r
+/* TR_WARNING_LONG */\r
+"Bu IP adresini değiştirirseniz, ve uzaktan oturum açmışsanız, %s makinası ile bağlantınız kesilecektir, ve bundan sonrayeni IP ile bağlanmanız gerekecektir. Bu riskli bir işlemdir, vefiziksel olarak makinanın başında iken, ve birşeyler yanlış gittiğinde yapılmalıdır.",\r
+/* TR_WELCOME */\r
+"%s kurulum programına hoşgeldiniz. Sonraki ekranların herhangi birindeVazgeç i seçtiğinizde bilgisayar yeniden başlatılacaktır.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Konfigürasyonunuz, zaten bir sürücü atanmış olan  tekil YEŞİL arabirim için yapılmış. ",\r
+}; \r
+  \r
diff --git a/langs/vi/CVS/Entries b/langs/vi/CVS/Entries
new file mode 100644 (file)
index 0000000..9808599
--- /dev/null
@@ -0,0 +1,2 @@
+D/cgi-bin////
+D/install////
diff --git a/langs/vi/CVS/Repository b/langs/vi/CVS/Repository
new file mode 100644 (file)
index 0000000..e796fce
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/vi
diff --git a/langs/vi/CVS/Root b/langs/vi/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/vi/CVS/Tag b/langs/vi/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/vi/cgi-bin/CVS/Entries b/langs/vi/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..8db54f1
--- /dev/null
@@ -0,0 +1,2 @@
+/vi.pl/1.3.2.35/Tue Jul  5 20:39:47 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/vi/cgi-bin/CVS/Repository b/langs/vi/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..ae6eb37
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/vi/cgi-bin
diff --git a/langs/vi/cgi-bin/CVS/Root b/langs/vi/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/vi/cgi-bin/CVS/Tag b/langs/vi/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/vi/cgi-bin/vi.pl b/langs/vi/cgi-bin/vi.pl
new file mode 100644 (file)
index 0000000..cfa1377
--- /dev/null
@@ -0,0 +1,862 @@
+# Vietnamese  (vi) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2004 Le Dinh Long \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => 'Đã tồn tại chứng chỉ số CA với tên này.', \r
+'a connection with this common name already exists' => 'Đã tồn tại kết nối với tên chung này.', \r
+'a connection with this name already exists' => 'Đã tồn tại kết nối với tên này.', \r
+'access allowed' => 'Cho phép truy cập từ:', \r
+'access refused with this oinkcode' => 'Truy cập bị từ chối với Oink Code này', \r
+'action' => 'Tác vụ', \r
+'add' => 'Thêm', \r
+'add a host' => 'Thêm máy:', \r
+'add a new rule' => 'Thêm mới luật:', \r
+'add network' => 'Thêm mạng', \r
+'add new alias' => 'Thêm mới alias:', \r
+'add new lease' => 'Thêm mới địa chỉ cấp cố định:', \r
+'add service' => 'Thêm dịch vụ:', \r
+'add xtaccess' => 'Thêm Truy cập từ Bên ngoài', \r
+'admin user password has been changed' => 'Mật khẩu người dùng quản trị đã được đổi.', \r
+'administrator user password' => 'Mật khẩu người dùng quản trị:', \r
+'adsl settings' => 'Thiết lập ADSL', \r
+'advanced' => 'Nâng cao', \r
+'again' => 'Lặp lại:', \r
+'alcatelusb help' => 'Để sử dụng Speedtouch USB modem, bạn phải tải firmware lên máy IPCop. Hãy tải xuống gói phần mềm <b>Embedded Firmware</b> từ speedtouch.com, giải nén rồi tải lên file dành cho modem của bạn: KQD6_3.xxx cho Rev<4 hoặc ZZZL_3.xxx cho Rev=4 bằng form sau.', \r
+'alcatelusb upload' => 'Tải lên Speedtouch USB Firmware', \r
+'alias ip' => 'IP alias', \r
+'aliases' => 'Các địa chỉ alias', \r
+'aliases not active' => 'Các địa chỉ alias sẽ không được kích hoạt trừ phi địa chỉ của giao tiếp RED là STATIC', \r
+'all updates installed' => 'Tất cả cập nhật đã được cài đặt', \r
+'alt dialup' => 'Quay số', \r
+'alt home' => 'Trang chính', \r
+'alt information' => 'Thông tin', \r
+'alt logs' => 'Nhật ký', \r
+'alt services' => 'Dịch vụ', \r
+'alt system' => 'Hệ thống', \r
+'alt vpn' => 'Mạng riêng ảo', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'april' => 'April', \r
+'archive not exist' => 'Không có bản sao lưu cấu hình', \r
+'are you sure' => 'Bạn có chắc chắn không?', \r
+'arp table entries' => 'Mục dữ liệu Bảng ARP:', \r
+'august' => 'August', \r
+'authentication' => 'Xác thực:', \r
+'automatic' => 'Tự động', \r
+'available updates' => 'Các cập nhật hiện có:', \r
+'average' => 'trung bình', \r
+'avoid dod' => 'Không sử dụng tùy chọn này với Quay số theo yêu cầu! Chỉ dùng nếu IPCop của bạn đứng sau một router. RED IP phải nằm trong một trong ba địa chỉ mạng dành riêng v.d 10/8, 172.16/12, 192.168/16', \r
+'back' => 'TRỞ LẠI', \r
+'backup' => 'Sao lưu ra đĩa mềm', \r
+'backup config floppy' => 'Sao lưu Cấu hình - Đĩa mềm', \r
+'backup configuration' => 'Cấu hình Sao lưu:', \r
+'backup sets' => 'Các bộ Sao lưu', \r
+'backup to floppy' => 'Sao lưu ra đĩa mềm', \r
+'backupprofile' => 'Trong trường hợp kết nối lại không được, chuyển sang dùng file cấu hình', \r
+'bad characters in script field' => 'Ký tự không hợp lệ trong ô script', \r
+'bad characters in the telephone number field' => 'Ký tự không hợp lệ trong ô số điện thoại.', \r
+'bad destination range' => 'Khoảng giá trị cổng Đích có giá trị đầu không nhỏ hơn giá trị cuối', \r
+'bad ignore filter' => 'Bỏ qua các bộ lọc hỏng:', \r
+'bad return code' => 'Trình phụ trợ trả về mã lỗi', \r
+'bad source range' => 'Khoảng trị cổng Nguồn có giá trị đầu không nhỏ hơn giá trị cuối.', \r
+'beep when ppp connects or disconnects' => 'Kêu bíp khi IPCop kết nối hoặc ngắt kết nối', \r
+'behind a proxy' => 'Đứng sau proxy:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'Bewan ADSL USB', \r
+'blue' => 'BLUE', \r
+'blue access' => 'Truy cập Không dây', \r
+'blue interface' => 'Giao tiếp Blue', \r
+'broadcast' => 'Broadcast', \r
+'broken pipe' => 'Broken pipe', \r
+'buffered memory' => 'Bộ nhớ đệm', \r
+'buffers' => 'bộ đệm', \r
+'bytes per second' => 'Byte trên giây', \r
+'ca certificate' => 'Chứng chỉ số CA', \r
+'ca name' => 'Tên CA', \r
+'cache management' => 'Quản lý cache', \r
+'cache size' => 'Dung lượng đĩa cache (MB):', \r
+'cached' => 'được cache', \r
+'cached memory' => 'Bộ nhớ cache', \r
+'cancel' => 'Hủy bỏ', \r
+'cannot enable both nat traversal and compression' => 'Không thể bật NAT Traversal và Nén đồng thời', \r
+'cannot enable ntp without specifying primary' => 'Không thể bật dịch vụ NTP mà không khai báo máy chủ NTP chính.', \r
+'cannot specify secondary dns without specifying primary' => 'Không thể khai báo DNS phụ khi chưa khai báo DNS chính.', \r
+'cannot specify secondary ntp without specifying primary' => 'Không thể khai báo Máy chủ NTP Phụ khi chưa khai báo Máy chủ NTP Chính.', \r
+'cannot specify secondary wins without specifying primary' => 'Không thể khai báo WINS phụ khi chưa khai báo WINS chính.', \r
+'cant change certificates' => 'Không thể thay đổi chứng chỉ số', \r
+'cant enable xtaccess' => 'Luật chuyển tiếp cổng tương ứng không được bật, vì vậy bạn không thể cho phép truy cập từ bên ngoài trong luật này.', \r
+'cant start openssl' => 'Không thể khởi động OpenSSL', \r
+'caps all' => 'TẤT CẢ', \r
+'capsclosed' => 'ĐÓNG', \r
+'capsopen' => 'MỞ', \r
+'capswarning' => 'CẢNH BÁO', \r
+'certificate' => 'Chứng chỉ số', \r
+'certificate authorities' => 'Nhà cung cấp chứng chỉ số', \r
+'certificate does not have a valid ca associated with it' => 'Chứng chỉ số không liên kết với một CA hợp lệ nào.', \r
+'certificate file move failed' => 'Chuyển file chứng chỉ số không được', \r
+'cfg restart' => 'Nên khởi động lại sau khi khôi phục cấu hình từ bản sao lưu.', \r
+'chain' => 'Chain', \r
+'change passwords' => 'Đổi mật khẩu', \r
+'check vpn lr' => 'Kiểm tra', \r
+'city' => 'Thành phố', \r
+'clear cache' => 'Xóa Cache', \r
+'clenabled' => 'Cung cấp dịch vụ đồng hồ cho mạng nội bộ', \r
+'click to disable' => 'Bật (click để tắt)', \r
+'click to enable' => 'Tắt (click để bật)', \r
+'clock has not been synchronized' => 'Đồng hồ chưa được đồng bộ', \r
+'clock last synchronized at' => 'Đồng hồ được đồng bộ lần cuối lúc', \r
+'common name' => 'Tên Chung', \r
+'compression' => 'Nén:', \r
+'computer to modem rate' => 'Tốc độ kết nối từ máy tính đến modem:', \r
+'concentrator name' => 'Tên bộ điều phối:', \r
+'confirmation' => 'xác nhận', \r
+'connect on ipcop restart' => 'Kết nối khi khởi động lại IPCop:', \r
+'connect the modem' => 'Kết nối với modem', \r
+'connect timeout' => 'Thời hạn kết nối:', \r
+'connected' => 'Đã kết nối', \r
+'connecting' => 'Đang kết nối...', \r
+'connection' => 'Kết nối', \r
+'connection debugging' => 'Gỡ lỗi kết nỗi', \r
+'connection status and controlc' => 'Tình trạng kết nối và điều khiển:', \r
+'connection tracking' => 'IPTables Giữ thông tin Kết nối', \r
+'connection type' => 'Kiểu Kết nối', \r
+'connection type is invalid' => 'Kiểu kết nối không hợp lệ.', \r
+'connections' => 'Các kết nối', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'có kêt nối gắn với CA này. Xoá CA này cũng sẽ xoá luôn các kết nối đó.', \r
+'could not be opened' => 'không thể mở được', \r
+'could not connect to' => 'Không thể kết nối tới', \r
+'could not connect to www ipcop org' => 'Không thể kết nối đến www.ipcop.org', \r
+'could not create directory' => 'Không thể tạo thư mục.', \r
+'could not download latest patch list' => 'Không thể tải xuống danh sách bản sửa lỗi mới nhất (chưa kết nối).', \r
+'could not download latest updates' => 'Không thể tải xuống các cập nhật mới nhất.', \r
+'could not download the available updates list' => 'Không thể tải xuống danh sách các cập nhật hiện có.', \r
+'could not open available updates file' => 'Không thể mở các file cập nhật hiện có.', \r
+'could not open installed updates file' => 'Không thể mở các file cập nhật đã cài đặt', \r
+'could not open update information file' => 'Không thể mở file thông tin cập nhật. File cập nhật bị hỏng.', \r
+'could not retrieve common name from certificate' => 'Không thể lấy được tên chung từ chứng chỉ số.', \r
+'country' => 'Quốc gia', \r
+'cpu usage per' => 'Sử dụng CPU trên', \r
+'create' => 'Tạo mới', \r
+'credits' => 'Ghi công', \r
+'cron server' => 'Dịch vụ CRON', \r
+'current' => 'Hiện thời', \r
+'current aliases' => 'Các alias hiện tại:', \r
+'current dynamic leases' => 'Các địa chỉ cấp động hiện tại', \r
+'current fixed leases' => 'Các địa chỉ cấp cố định hiện tại', \r
+'current hosts' => 'Các máy hiện tại:', \r
+'current profile' => 'File cấu hình hiện tại:', \r
+'current rules' => 'Các luật hiện tại:', \r
+'custom networks' => 'Mạng tự đặt', \r
+'custom services' => 'Dịch vụ tự đặt', \r
+'dat without key' => 'Bản lưu trữ được mã hoá không thể khôi phục nếu không có khoá', \r
+'date' => 'Ngày tháng', \r
+'date not in logs' => 'Không có (một phần) thông tin nhật ký nào cho ngày đã chọn', \r
+'day' => 'Ngày', \r
+'day after' => 'Ngày sau', \r
+'day before' => 'Ngày trước', \r
+'days' => 'ngày', \r
+'ddns hostname added' => 'Tên máy DNS động đã thêm', \r
+'ddns hostname modified' => 'Tên máy DNS động đã sửa đổi', \r
+'ddns hostname removed' => 'Tên máy DNS động đã xoá', \r
+'ddns noip prefix' => 'Để dùng no-ip trong chế độ group, đặt trước tên máy bằng <b>%</b>', \r
+'december' => 'December', \r
+'def lease time' => 'Thời gian Cấp địa chỉ Mặc định', \r
+'default lease time' => 'Thời gian cấp địa chỉ mặc định (phút):', \r
+'default networks' => 'Mạng mặc định', \r
+'default renewal time' => 'Thời gian Cấp mới Mặc định', \r
+'default services' => 'Dịch vụ mặc định', \r
+'delete' => 'Xoá', \r
+'demon login script' => 'Demon login script', \r
+'description' => 'Mô tả', \r
+'dest ip and port' => 'Dest. IP:Port', \r
+'destination' => 'Đích', \r
+'destination ip' => 'IP đích', \r
+'destination ip bad' => 'IP đích không hợp lệ', \r
+'destination net' => 'Mạng Đích', \r
+'destination port' => 'Cổng đích', \r
+'destination port numbers' => 'Cổng đích phải là một số hiệu cổng hoặc khoảng cổng hợp lệ.', \r
+'destination port overlaps' => 'Khoảng trị cổng đích phủ lấp với một khoảng trị cổng đã có.', \r
+'detail level' => 'Mức độ chi tiết', \r
+'device' => 'Thiết bị', \r
+'dhcp advopt add' => 'Thêm tùy chọn DHCP', \r
+'dhcp advopt added' => 'Tùy chọn DHCP đã thêm', \r
+'dhcp advopt blank value' => 'Giá trị tùy chọn DHCP không thể trống.', \r
+'dhcp advopt edit' => 'Soạn tùy chọn DHCP', \r
+'dhcp configuration' => 'Cấu hình DHCP', \r
+'dhcp mode' => 'DHCP', \r
+'dhcp server' => 'DHCP ', \r
+'dhcp server disabled' => 'Dịch vụ DHCP tắt. Đã dừng.', \r
+'dhcp server disabled on blue interface' => 'Dịch vụ DHCP tắt trên giao tiếp BLUE', \r
+'dhcp server enabled' => 'Dịch vụ DHCP bật. Đang khởi động lại.', \r
+'dhcp server enabled on blue interface' => 'Dịch vụ DHCP bật trên giao tiếp BLUE', \r
+'dial' => 'Kết nối', \r
+'dial user password' => 'Mật khẩu người dùng quay số:', \r
+'dial user password has been changed' => 'Mật khẩu người dùng quay số đã được đổi.', \r
+'dialing mode' => 'Chế độ quay số:', \r
+'dialup settings' => 'Thiết lập quay số', \r
+'disk access per' => 'Truy xuất Đĩa trên', \r
+'disk usage' => 'Sử dụng đĩa cứng:', \r
+'display hostname in window title' => 'Hiển thị tên máy trên tiêu đề trình duyệt', \r
+'dmz' => 'DMZ', \r
+'dmz pinhole configuration' => 'Cấu hình DMZ pinhole', \r
+'dmz pinhole rule added' => 'Luật cho DMZ pinhole đã thêm; đang khởi động lại DMZ pinhole', \r
+'dmz pinhole rule removed' => 'Luật cho DMZ pinhole đã xoá; đang khởi động lại DMZ pinhole', \r
+'dmzpinholes for same net not necessary' => 'DMZ Pinholes không cần phải cùng một mạng. Chọn mạng nguồn hoặc đích khác nhau.', \r
+'dns check failed' => 'Kiểm tra DNS không đạt', \r
+'dns proxy server' => 'Dịch vụ DNS proxy', \r
+'dod' => 'Quay số theo yêu cầu', \r
+'dod for dns' => 'Quay số theo yêu cầu cho DNS:', \r
+'dod waiting' => 'Quay số theo yêu cầu đang chờ', \r
+'domain' => 'Tên miền', \r
+'domain name' => 'Tên miền', \r
+'domain name suffix' => 'Đuôi tên miền:', \r
+'domain not set' => 'Tên miền chưa đặt.', \r
+'downlink speed' => 'Tốc độ tải xuống (kbit/s)', \r
+'download ca certificate' => 'Tải xuống Chứng chỉ số CA', \r
+'download certificate' => 'Tải xuống Chứng chỉ số', \r
+'download host certificate' => 'Tải xuống Chứng chỉ số của Máy', \r
+'download new ruleset' => 'Tải xuống tập luật mới', \r
+'download pkcs12 file' => 'Tải xuống File PKCS12', \r
+'download root certificate' => 'Tải xuống Chứng chỉ số Gốc', \r
+'driver' => 'Driver', \r
+'dst port' => 'Cổng Đích', \r
+'dstprt range overlaps' => 'Khoảng trị cổng đích phủ lấp một cổng đã đưọc định nghĩa.', \r
+'dstprt within existing' => 'Cổng đích nằm trong khoảng cổng đã được định nghĩa.', \r
+'duplicate ip' => 'Địa chỉ IP nhập bị trùng', \r
+'duplicate mac' => 'Địa chỉ MAC nhập bị trùng', \r
+'duplicate name' => 'Tên đó đã được dùng, hãy chọn một tên khác.', \r
+'dynamic dns' => 'DNS Động', \r
+'dynamic dns client' => 'Client DNS Động', \r
+'e-mail address too long' => 'Địa chỉ email quá dài; địa chỉ không nên dài quá 40 ký tự.', \r
+'eciadsl help' => 'Để sử dụng ECI ADSL modem bạn phải tải lên máy IPCop file synch.bin. Hãy tải xuống file này từ website ECIADSL sau đó tải lên file <b>synch.bin</b> bằng form dưới đây.', \r
+'eciadsl upload' => 'Tải lên File Synch.bin ECI ADSL ', \r
+'edit' => 'Soạn', \r
+'edit a rule' => 'Soạn luật đã có:', \r
+'edit advanced settings when done' => 'Soạn các thiết lập nâng cao khi hoàn tất.', \r
+'edit an existing alias' => 'Soạn một alias đã có', \r
+'edit an existing host' => 'Soạn một máy đã có', \r
+'edit an existing lease' => 'Soạn một cấp phát đã có', \r
+'edit hosts' => 'Soạn Thông tin máy', \r
+'edit network' => 'Soạn thông tin mạng', \r
+'edit service' => 'Soạn thông tin dịch vụ', \r
+'empty' => 'Rỗng', \r
+'enable ignore filter' => 'Bật bộ lọc bỏ qua', \r
+'enable javascript' => 'Bật Javascript', \r
+'enable wildcards' => 'Bật ký tự thay thế:', \r
+'enabled' => 'Bật:', \r
+'enabled on' => 'Bật trên', \r
+'enabledtitle' => 'Bật', \r
+'encapsulation' => 'Encapsulation', \r
+'encrypted' => 'Được mã hoá', \r
+'end address' => 'Địa chỉ cuối:', \r
+'err bk 1' => 'Lỗi khi tạo bản lưu', \r
+'err bk 2 key' => 'Lỗi khi tạo file khoá', \r
+'err bk 3 tar' => 'Lỗi khi nối file vào bản lưu', \r
+'err bk 4 gz' => 'Lỗi khi nén bản lưu', \r
+'err bk 5 encrypt' => 'Lỗi khi mã hoá bản lưu', \r
+'err rs 1' => 'Lỗi khi phục hồi bản lưu', \r
+'err rs 6 decrypt' => 'Lỗi khi giải mã bản lưu', \r
+'err rs 7 untartst' => 'Bản lưu đã giải mã không đúng', \r
+'err rs 8 untar' => 'Lỗi khi bung bản lưu', \r
+'error messages' => 'Thông báo lỗi:', \r
+'esp encryption' => 'Mã hoá ESP:', \r
+'esp grouptype' => 'Kiểu nhóm ESP:', \r
+'esp integrity' => 'Toàn vẹn ESP:', \r
+'esp keylife' => 'Tuổi thọ khoá ESP:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP Keylife nên từ 1 đến 24 giờ.', \r
+'every' => 'Mỗi', \r
+'excluding buffers and cache' => '-/+ buffers/cache', \r
+'expected' => 'Expected', \r
+'expires' => 'Hết hạn', \r
+'export' => 'Xuất ra', \r
+'external access' => 'Truy cập từ Bên ngoài', \r
+'external access configuration' => 'Cấu hình truy cập từ ngoài', \r
+'external access rule added' => 'Luật truy cập từ ngoài đã thêm; khởi động lại bộ kiểm soát truy cập', \r
+'external access rule removed' => 'Luật truy cập từ ngoài đã xoá; khởi động lại bộ kiểm soát truy cập', \r
+'external aliases configuration' => 'Cấu hình các alias bên ngoài', \r
+'february' => 'February', \r
+'filename' => 'Tên file', \r
+'filesystem full' => 'Hệ thống file đầy', \r
+'firewall' => 'Tường lửa', \r
+'firewall hits' => 'Tổng số truy cập tường lửa cho', \r
+'firewall log' => 'Nhật ký tường lửa', \r
+'firewall log viewer' => 'Xem Nhật ký Tường lửa', \r
+'firewall logs' => 'Nhật ký Tường lửa', \r
+'firmware' => 'Firmware', \r
+'firmware upload' => 'Tải lên Firmware/Driver', \r
+'fixed ip lease added' => 'IP cấp phát cố định đã thêm', \r
+'fixed ip lease modified' => 'IP cấp phát cố định đã sửa đổi', \r
+'fixed ip lease removed' => 'IP cấp phát cố định đã xoá', \r
+'force update' => 'Bắt buộc cập nhật', \r
+'forwarding rule added' => 'Luật chuyển tiếp đã thêm; khởi động lại bộ chuyển tiếp', \r
+'forwarding rule removed' => 'Luật chuyển tiếp đã xoá; khởi động lại bộ chuyển tiếp', \r
+'forwarding rule updated' => 'Luật chuyển tiếp đã cập nhật; khởi động lại bộ chuyển tiếp', \r
+'free' => 'Còn trống', \r
+'free memory' => 'Bộ nhớ Còn trống', \r
+'free swap' => 'Swap Còn trống', \r
+'fritzdsl upload' => 'Tải lên Fritz!DSL Driver', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'G.lite', \r
+'gateway' => 'Gateway', \r
+'gateway ip' => 'Gateway IP', \r
+'generate a certificate' => 'Tạo chứng chỉ số:', \r
+'generate root/host certificates' => 'Tạo Chứng chỉ số Gốc/Máy', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Tạo các chứng chỉ số gốc và của máy có thể mất nhiều thời gian. Có thể mất vài phút trên phần cứng cũ. Hãy kiên nhẫn.', \r
+'global settings' => 'Thiết lập Toàn cục', \r
+'graph' => 'Đồ thị', \r
+'graph per' => 'Đồ thị trên', \r
+'green' => 'GREEN', \r
+'green interface' => 'Giao tiếp Green', \r
+'gui settings' => 'Thiết lập Giao diện', \r
+'gz with key' => 'Chỉ có thể phục hồi bản lưu có mã hoá trên máy này.', \r
+'hangup' => 'Ngắt kết nối', \r
+'hangup string' => 'Lệnh ngắt modem:', \r
+'high' => 'Cao', \r
+'high memory usage' => 'Sử dụng bộ nhớ cao', \r
+'holdoff' => 'Thời gian chờ (theo giây)', \r
+'host certificate' => 'Chứng chỉ số Host', \r
+'host configuration' => 'Cấu hình Máy', \r
+'host ip' => 'Địa chỉ IP Máy', \r
+'host to net vpn' => 'Mạng Riêng Ảo Máy-đến-Mạng (RoadWarrior)', \r
+'hostname' => 'Tên máy', \r
+'hostname and domain already in use' => 'Tên máy và tên miền đã bị dùng.', \r
+'hostname cant be empty' => 'Tên máy không thể trống.', \r
+'hostname not set' => 'Chưa đặt tên máy.', \r
+'hosts config added' => 'cấu hình hosts đã thêm', \r
+'hosts config changed' => 'cấu hình hosts đã thay đổi', \r
+'hours' => 'giờ', \r
+'hours2' => 'Giờ', \r
+'ibod for dual isdn only' => 'iBOD chỉ có thể dùng với ISDN Kép.', \r
+'icmp selected but no type' => 'Giao thức ICMP được chọn, nhưng không khai báo kiểu ICMP.', \r
+'icmp type' => 'Kiểu ICMP', \r
+'id' => 'ID', \r
+'idle' => 'Rảnh', \r
+'idle cpu' => 'CPU rảnh', \r
+'idle cpu usage' => 'Sử dụng CPU rảnh', \r
+'idle timeout' => 'Thời hạn rảnh (theo phút; 0 để bỏ):', \r
+'idle timeout not set' => 'Chưa đặt thời hạn rảnh.', \r
+'ids log viewer' => 'Xem nhật ký IDS', \r
+'ids logs' => 'Nhật ký IDS', \r
+'iface' => 'Iface', \r
+'ignore filter' => 'Bộ lọc bỏ qua', \r
+'ike encryption' => 'Mã hoá IKE:', \r
+'ike grouptype' => 'Kiểu nhóm IKE:', \r
+'ike integrity' => 'Toàn vẹn IKE:', \r
+'ike lifetime' => 'Tuổi thọ IKE:', \r
+'ike lifetime should be between 1 and 8 hours' => 'Tuổi thọ IKE nên từ  1 đến 8 giờ.', \r
+'import' => 'Nhập vào', \r
+'in' => 'Vào', \r
+'incoming traffic in bytes per second' => 'Tải vào theo Byte trên Giây', \r
+'info' => 'Thông tin', \r
+'init string' => 'Khởi tạo:', \r
+'insert floppy' => 'Để sao lưu vào đĩa mềm, cho đĩa mềm đã format vào ổ đĩa trên máy IPCop và click vào <i>Sao lưu ra đĩa mềm</i> để sao lưu cấu hình hệ thống. Hãy xem kết quả một cách cẩn thận để chắc chắn việc sao lưu hoàn tất tốt đẹp. Có thể mất một lúc để thực hiện xong, hãy kiên nhẫn.<p>', \r
+'install new update' => 'Cài đặt cập nhật mới:', \r
+'installed' => 'Đã cài đặt', \r
+'installed updates' => 'Cập nhật đã cài đặt:', \r
+'instant update' => 'Cập nhật Ngay', \r
+'interface' => 'Giao tiếp', \r
+'interfaces' => 'Giao tiếp:', \r
+'internet' => 'INTERNET', \r
+'intrusion detection' => 'Phát hiện Xâm nhập', \r
+'intrusion detection system' => 'Hệ thống Phát hiện Xâm nhập', \r
+'intrusion detection system log viewer' => 'Xem Nhật ký Hệ thống Phát hiện Xâm nhập', \r
+'intrusion detection system2' => 'Hệ thống Phát hiện Xâm nhập:', \r
+'invalid broadcast ip' => 'IP broadcast không hợp lệ', \r
+'invalid cache size' => 'Độ lớn cache không hợp lệ.', \r
+'invalid characters found in pre-shared key' => 'Tìm thấy ký tự không hợp lệ trong khoá dùng chung.', \r
+'invalid date entered' => 'Ngày nhập vào không hợp lệ.', \r
+'invalid default lease time' => 'Thời gian cấp mặc định không hợp lệ.', \r
+'invalid domain name' => 'Tên miền không hợp lệ.', \r
+'invalid downlink speed' => 'Tốc độ tải xuống không hợp lệ.', \r
+'invalid end address' => 'Địa chỉ cuối không hợp lệ.', \r
+'invalid fixed ip address' => 'Địa chỉ IP cố định không hợp lệ', \r
+'invalid fixed mac address' => 'Địa chỉ MAC cố định không hợp lệ', \r
+'invalid hostname' => 'Tên máy không hợp lệ.', \r
+'invalid input' => 'Dữ liệu nhập không hợp lệ', \r
+'invalid input for authentication method' => 'Dữ liệu nhập cho phương pháp xác thực không hợp lệ.', \r
+'invalid input for city' => 'Dữ liệu nhập cho thành phố không hợp lệ.', \r
+'invalid input for country' => 'Dữ liệu nhập cho quốc gia không hợp lệ.', \r
+'invalid input for department' => 'Dữ liệu nhập cho bộ phận không hợp lệ.', \r
+'invalid input for e-mail address' => 'Dữ liệu nhập cho địa chỉ e-mail không hợp lệ.', \r
+'invalid input for esp keylife' => 'Dữ liệu nhập cho Tuổi thọ khóa ESP không hợp lệ.', \r
+'invalid input for hostname' => 'Dữ liệu nhập cho tên máy không hợp lệ.', \r
+'invalid input for ike lifetime' => 'Dữ liệu nhập cho tuổi thọ khóa IKE không hợp lệ.', \r
+'invalid input for name' => 'Dữ liêệ nhập cho tên đầy đủ của user hoặc tên máy không hợp lệ.', \r
+'invalid input for organization' => 'Dữ liệu nhập cho tổ chức không hợp lệ', \r
+'invalid input for remote host/ip' => 'Dữ liệu nhập cho địa chỉ/máy từ xa không hợp lệ.', \r
+'invalid input for state or province' => 'Dữ liệu nhập cho tỉnh hoặc thành phố không hợp lệ.', \r
+'invalid ip' => 'Địa chỉ IP không hợp lệ', \r
+'invalid keep time' => 'Thời gian lưu giữ phải là một số hợp lệ', \r
+'invalid key' => 'Khoá không hợp lệ.', \r
+'invalid logserver address' => 'Địa chỉ máy chủ syslogd không hợp lệ', \r
+'invalid max lease time' => 'Thời gian lease tối đa không hợp lệ.', \r
+'invalid maximum incoming size' => 'Kích thước dữ liệu nhận tối đa không hợp lệ.', \r
+'invalid maximum object size' => 'Kích thước đối tượng tối đa không hợp lệ.', \r
+'invalid maximum outgoing size' => 'Kích thước dữ liệu gửi tối đa không hợp lệ.', \r
+'invalid md5sum' => 'MD5Sum không hợp lệ.', \r
+'invalid minimum object size' => 'Kích thước đối tượng tối thiểu không hợp lệ.', \r
+'invalid netmask' => 'Netmask không hợp lệ', \r
+'invalid port' => 'Cổng không hợp lệ. Phải là một số hiệu cổng hợp lệ.', \r
+'invalid primary dns' => 'DNS chính không hợp lệ.', \r
+'invalid primary ntp' => 'Địa chỉ máy chủ NTP Chính không hợp lệ', \r
+'invalid secondary dns' => 'DNS phụ không hợp lệ.', \r
+'invalid secondary ntp' => 'Địa chỉ máy chủ NTP Phụ không hợp lệ', \r
+'invalid start address' => 'Địa chỉ bắt đầu không hợp lệ.', \r
+'invalid time entered' => 'Thời gian nhập vào không hợp lệ.', \r
+'invalid time period' => 'Khoảng thời gian không hợp lệ', \r
+'invalid uplink speed' => 'Tốc độ tải lên không hợp lệ.', \r
+'invalid upstream proxy username or password setting' => 'Thiết lập username hoặc password cho proxy cấp trên không hợp lệ.', \r
+'invalid vpi vpci' => 'Thiết lập VPI/VPCI không hợp lệ', \r
+'invalid wins address' => 'Địa chỉ Máy chủ WINS không hợp lệ.', \r
+'invert' => 'Đảo', \r
+'ip address' => 'Địa chỉ IP', \r
+'ip address in use' => 'Địa chỉ IP đã dùng', \r
+'ip alias added' => 'IP alias bên ngoài đã thêm', \r
+'ip alias changed' => 'IP alias bên ngoài đã thay đổi', \r
+'ip alias removed' => 'IP alias bên ngoài đã xoá', \r
+'ip info' => 'Thông tin IP', \r
+'ipcop has now rebooted' => 'IPCop đã khởi động lại.', \r
+'ipcop has now shutdown' => 'IPCop đã ngừng.', \r
+'ipcop side' => 'Phía IPCop:', \r
+'ipcop side is invalid' => 'Phía IPCop không hợp lệ.', \r
+'ipcops hostname' => 'Tên máy IPCop', \r
+'ipinfo' => 'Thông tin IP', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => 'Các thiết lập ISDN khác:', \r
+'isdn1' => 'ISDN Đơn', \r
+'isdn2' => 'ISDN Kép', \r
+'january' => 'January', \r
+'javascript menu error1' => 'Nếu menu sổ xuống không làm việc, tắt Javascript trong', \r
+'javascript menu error2' => 'trang.', \r
+'july' => 'July', \r
+'june' => 'June', \r
+'kernel' => 'Kernel', \r
+'kernel logging server' => 'Máy chủ ghi nhật ký kernel', \r
+'kernel version' => 'Phiên bản kernel:', \r
+'lan' => 'LAN', \r
+'languagepurpose' => 'Chọn ngôn ngữ bạn muốn IPCop hiển thị:', \r
+'lease expires' => 'Cấp phát địa chỉ hết hạn', \r
+'legend' => 'Chú giải', \r
+'line' => 'Đường dây', \r
+'loaded modules' => 'Mô-đun đã nạp:', \r
+'local subnet' => 'Mạng con nội bộ:', \r
+'local subnet is invalid' => 'Mạng con nội bộ không hợp lệ.', \r
+'local vpn hostname/ip' => 'Tên máy/IP VPN nội bộ', \r
+'log' => 'Nhật ký:', \r
+'log enabled' => 'Nhật ký Bật', \r
+'log server address' => 'Máy chủ ghi nhật ký', \r
+'log settings' => 'Thiết lập Nhật ký', \r
+'log summaries' => 'Tóm tắt nhật ký', \r
+'log summary' => 'Tóm tắt Nhật ký', \r
+'log viewer' => 'Xem nhật ký', \r
+'log viewing options' => 'Tuỳ chọn xem nhật ký', \r
+'logging server' => 'Máy chủ ghi nhật ký', \r
+'loginlogout' => 'Đăng nhập/Thoát', \r
+'lookup failed' => 'Phân giải ngược không được', \r
+'low' => 'Thấp', \r
+'ls_dhcpd' => 'Máy chủ DHCP:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'Máy chủ HTTP:', \r
+'ls_init' => 'Khởi tạo:', \r
+'ls_kernel' => 'Kernel và Tường lửa:', \r
+'ls_modprobe' => 'Nạp mô-đun:', \r
+'ls_pam_unix' => 'User nội bộ đăng nhập:', \r
+'ls_sshd' => 'User từ xa đăng nhập:', \r
+'ls_syslogd' => 'Syslogd:', \r
+'mac address' => 'Địa chỉ MAC', \r
+'mac address in use' => 'Địa chỉ MAC đã dùng', \r
+'main page' => 'Trang chính', \r
+'manual' => 'Thủ công', \r
+'manual control and status' => 'Điều khiển thủ công và trạng thái:', \r
+'manually' => 'Thủ công', \r
+'march' => 'March', \r
+'marked' => 'Đã đánh dấu', \r
+'max incoming size' => 'Kích thước dữ liệu nhận tối đa (KB):', \r
+'max lease time' => 'Thời gian cấp địa chỉ tối đa (phút):', \r
+'max outgoing size' => 'Kích thước dữ liệu gửi tối đa (KB):', \r
+'max renewal time' => 'Thời gian Cấp mới Tối đa', \r
+'max retries not set' => 'Số lần thử lại tối đa chưa đặt.', \r
+'max size' => 'Kích thước đối tượng tối đa (KB):', \r
+'maximal' => 'Tối đa', \r
+'maximum retries' => 'Số lần thử lại tối đa:', \r
+'may' => 'May', \r
+'medium' => 'Trung bình', \r
+'memory' => 'Bộ nhớ:', \r
+'memory usage per' => 'Sử dụng Bộ nhớ trên', \r
+'method' => 'Phương pháp:', \r
+'min size' => 'Kích thước đối tượng tối thiểu (KB):', \r
+'minutes' => 'Phút', \r
+'missing dat' => 'Không tìm thấy bản lưu đã mã hoá', \r
+'missing gz' => 'Không tìm thấy bản lưu chưa mã hoá', \r
+'modem' => 'Modem', \r
+'modem configuration' => 'Cấu hình modem', \r
+'modem on com1' => 'Modem gắn vào COM1', \r
+'modem on com2' => 'Modem gắn vào COM2', \r
+'modem on com3' => 'Modem gắn vào COM3', \r
+'modem on com4' => 'Modem gắn vào COM4', \r
+'modem on com5' => 'Modem gắn vào COM5', \r
+'modem settings have errors' => 'Thiết lập modem có lỗi', \r
+'modem speaker on' => 'Loa modem bật:', \r
+'modulation' => 'Mô-đun hoá', \r
+'month' => 'Tháng', \r
+'months' => 'tháng', \r
+'mounted on' => 'Gắn lên', \r
+'name' => 'Tên', \r
+'name is invalid' => 'Tên không hợp lệ', \r
+'name must only contain characters' => 'Tên chỉ có thể gồm các ký tự.', \r
+'name too long' => 'Tên đầy đủ của user hay tên máy quá dài', \r
+'nat-traversal' => 'Nat Traversal:', \r
+'net' => 'Mạng', \r
+'net to net vpn' => 'Mạng Riêng Ảo Mạng-đến-Mạng', \r
+'netmask' => 'Netmask', \r
+'network' => 'Mạng', \r
+'network added' => 'Mạng Tự đặt đã thêm', \r
+'network configuration' => 'Cấu hình Mạng', \r
+'network removed' => 'Mạng Tự đặt đã xoá', \r
+'network status information' => 'Thông tin Trạng thái Mạng', \r
+'network time' => 'Sử dụng Máy chủ Đồng hồ Mạng:', \r
+'network traffic graphs' => 'Đồ thị tải mạng', \r
+'network updated' => 'Mạng Tự đặt đã cập nhật', \r
+'networks settings' => 'Thiết lập Tường lửa - Mạng', \r
+'newer' => 'Mới hơn', \r
+'next address' => 'Địa chỉ Kế tiếp', \r
+'no alcatelusb firmware' => 'Không có firmware Alcatel USB. Hãy tải lên.', \r
+'no cfg upload' => 'Không có dữ liệu nào được tải lên', \r
+'no dhcp lease' => 'Không có DHCP tạm cấp nào được lấy', \r
+'no eciadsl synch.bin file' => 'Không có file synch.bin của ECI ADSL. Hãy tải lên.', \r
+'no fritzdsl driver' => 'Không có Fritz!DSL driver. Hãy tải lên.', \r
+'no information available' => 'Không có thông tin nào.', \r
+'no modem selected' => 'Chưa chọn modem', \r
+'no set selected' => 'Chưa chọn thiết lập nào', \r
+'none found' => 'không tìm thấy', \r
+'nonetworkname' => 'Chưa nhập Tên Mạng', \r
+'noservicename' => 'Chưa nhập Tên Dịch vụ', \r
+'not a valid ca certificate' => 'Không là một chứng chỉ số CA hợp lệ.', \r
+'not present' => '<b>Không</b> có', \r
+'not running' => 'chưa chạy', \r
+'november' => 'November', \r
+'ntp configuration' => 'Cấu hình NTP', \r
+'ntp must be enabled to have clients' => 'NTP phải được bật để client có thể sử dụng.', \r
+'ntp server' => 'Dịch vụ NTP', \r
+'ntp syncro disabled' => 'Đồng bộ NTP tắt', \r
+'ntp syncro enabled' => 'Đồng bộ NTP bật', \r
+'ntpd restarted' => 'ntpd đã khởi động lại', \r
+'number' => 'Số:', \r
+'october' => 'October', \r
+'older' => 'Cũ hơn', \r
+'only digits allowed in holdoff field' => 'Chỉ cho phép các chữ số trong ô thời gian chờ', \r
+'only digits allowed in max retries field' => 'Chỉ cho phép các chữ số trong ô thử lại tối đa.', \r
+'only digits allowed in the idle timeout' => 'Chỉ cho phép các chữ số trong ô mức thời gian rảnh.', \r
+'open to all' => 'Sửa truy cập từ ngoài thành TẤT CẢ', \r
+'openssl produced an error' => 'OpenSSL gây ra lỗi', \r
+'orange' => 'ORANGE', \r
+'organization cant be empty' => 'Tên tổ chức không thể trống.', \r
+'organization name' => 'Tên Tổ chức ', \r
+'organization too long' => 'Tên tổ chức quá dài; chỉ nên giới hạn không quá 60 ký tự.', \r
+'original' => 'Original', \r
+'other login script' => 'Script đăng nhập khác', \r
+'out' => 'Gửi ra', \r
+'outgoing traffic in bytes per second' => 'Tải mạng Gửi ra theo Byte trên Giây', \r
+'package failed to install' => 'Không cài được gói phần mềm.', \r
+'pap or chap' => 'PAP hoặc CHAP', \r
+'password' => 'Mật khẩu:', \r
+'password contains illegal characters' => 'Mật khẩu có chứa ký tự không hợp lệ.', \r
+'password not set' => 'Chưa đặt mật khẩu.', \r
+'password too short' => 'Mật khẩu quá ngắn.', \r
+'passwords do not match' => 'Mật khẩu không khớp.', \r
+'passwords must be at least 6 characters in length' => 'Mật khẩu phải dài ít nhất 6 ký tự', \r
+'percentage' => 'Phần trăm', \r
+'persistent' => 'Thường trực', \r
+'phase1 group' => 'Nhóm Phase1', \r
+'phonebook entry' => 'Mục danh bạ:', \r
+'pkcs12 file password' => 'Mật khẩu File PKCS12', \r
+'port' => 'Cổng', \r
+'port forwarding configuration' => 'Cấu hình chuyển tiếp cổng', \r
+'ports' => 'Cổng', \r
+'pots' => 'Đường điện thoại kiểu cũ', \r
+'ppp setup' => 'Cài đặt PPP', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'Thiết lập PPPoE khác:', \r
+'pptp settings' => 'Thiết lập PPTP khác:', \r
+'pre-shared key is too short' => 'Khoá dùng chung quá ngắn.', \r
+'present' => 'Có', \r
+'primary dns' => 'DNS Chính:', \r
+'primary ntp server' => 'Máy chủ NTP Chính', \r
+'primary wins server address' => 'Địa chỉ Máy chủ WINS Chính', \r
+'priority' => 'Ưu tiên', \r
+'profile' => 'File cấu hình', \r
+'profile deleted' => 'File cấu hình đã xoá:', \r
+'profile has errors' => 'File cấu hình có lỗi', \r
+'profile made current' => 'File cấu hình sử dụng hiện tại:', \r
+'profile name' => 'Tên file cấu hình:', \r
+'profile name not given' => 'Không đưa tên file cấu hình.', \r
+'profile saved' => 'File cấu hình đã lưu:', \r
+'profiles' => 'File cấu hình:', \r
+'proto' => 'Gthức', \r
+'protocol' => 'Giao thức', \r
+'proxy' => 'Proxy', \r
+'proxy access graphs' => 'Đồ thị truy cập proxy', \r
+'proxy log viewer' => 'Xem nhật ký proxy', \r
+'proxy logs' => 'Nhật ký Proxy', \r
+'proxy port' => 'Cổng Proxy', \r
+'pulse' => 'Pulse', \r
+'pulse dial' => 'Quay số kiểu Pulse:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Đọc Sector', \r
+'reboot' => 'Khởi động lại', \r
+'rebooting' => 'Đang khởi động lại', \r
+'rebooting ipcop' => 'Đang khởi động lại IPCop', \r
+'reconnection' => 'Kết nối lại', \r
+'references' => 'Tham khảo', \r
+'refresh' => 'Làm mới', \r
+'refresh update list' => 'Làm mới danh sách cập nhật', \r
+'released' => 'Phát hành', \r
+'remark' => 'Lưu ý', \r
+'remark title' => 'Lưu ý:', \r
+'remote access' => 'Truy cập từ xa', \r
+'remote host/ip' => 'IP/Máy Từ xa', \r
+'remote logging' => 'Ghi nhật ký từ xa', \r
+'remote subnet' => 'Mạng con từ xa:', \r
+'remote subnet is invalid' => 'Mạng con từ xa không hợp lệ.', \r
+'remove' => 'Xoá', \r
+'remove ca certificate' => 'Xoá Chứng chỉ số CA', \r
+'reserved dst port' => 'Cổng đích được dành riêng chỉ cho IPCop dùng:', \r
+'reserved src port' => 'Cổng nguồn được dành riêng chỉ cho IPCop dùng:', \r
+'reset' => 'Đặt lại', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Đặt lại cấu hình VPN sẽ xoá CA gốc, chứng chỉ số của máy và tất cả các kết nối dựa trên chứng chỉ số', \r
+'restart' => 'Khởi động lại', \r
+'restore' => 'Phục hồi', \r
+'restore defaults' => 'Phục hồi giá trị mặc định', \r
+'restore hardware settings' => 'Phục hồi thiết lập phần cứng', \r
+'reverse sort' => 'Sắp theo thứ tự thời gian ngược', \r
+'root certificate' => 'Chứng chỉ số Gốc', \r
+'root path' => 'Đường dẫn Gốc', \r
+'router ip' => 'Địa chỉ IP Router:', \r
+'routing table entries' => 'Mục dữ liệu Bảng Định tuyến:', \r
+'rsvd dst port overlap' => 'Khoảng Cổng Đích phủ lấp một cổng được dành riêng cho IPCop:', \r
+'rsvd src port overlap' => 'Khoảng Cổng Nguồn phủ lấp một cổng được dành riêng cho IPCop:', \r
+'running' => 'ĐANG CHẠY', \r
+'save' => 'Lưu', \r
+'save error' => 'Không thể lưu cấu hình vào file bản lưu', \r
+'script name' => 'Tên script:', \r
+'secondary dns' => 'DNS Phụ:', \r
+'secondary ntp server' => 'Máy chủ NTP Phụ', \r
+'secondary wins server address' => 'Địa chỉ Máy chủ WINS Phụ', \r
+'seconds' => 'Giây', \r
+'section' => 'Phần', \r
+'sectors read from disk per second' => 'Số sector đọc từ đĩa trên giây', \r
+'sectors written to disk per second' => 'Số sector ghi lên đĩa trên giây', \r
+'secure shell server' => 'Máy chủ secure shell', \r
+'select' => 'Chọn', \r
+'select dest net' => 'Chọn mạng đích.', \r
+'select source net' => 'Chọn mạng nguồn. Nếu bạn không cấu hình mạng Da cam hay Xanh dương thì không cần DMZ Pinholes. ', \r
+'send cr' => 'ISP yêu cầu Dấu Xuống dòng:', \r
+'september' => 'September', \r
+'serial' => 'Tuần tự', \r
+'service' => 'Dịch vụ', \r
+'service added' => 'Dịch vụ Mạng Tự đặt đã thêm', \r
+'service name' => 'Tên dịch vụ:', \r
+'service removed' => 'Dịch vụ Mạng Tự đặt đã xoá', \r
+'service updated' => 'Dịch vụ Mạng Tự đặt đã cập nhật', \r
+'servicename' => 'Tên Dịch vụ', \r
+'services' => 'Dịch vụ:', \r
+'services settings' => 'Thiết lập Tường lửa - Dịch vụ', \r
+'set time now' => 'Đặt Thời gian Ngay', \r
+'settings' => 'Thiết lập', \r
+'shaping add options' => 'Thêm dịch vụ', \r
+'shaping list options' => 'Các dịch vụ giới hạn tải', \r
+'shared' => 'chung', \r
+'shared memory' => 'Bộ nhớ Dùng chung', \r
+'show ca certificate' => 'Hiện Chứng chỉ số CA', \r
+'show certificate' => 'Hiện Chứng chỉ số', \r
+'show host certificate' => 'Hiện Chứng chỉ số Host', \r
+'show root certificate' => 'Hiện Chứng chỉ số Gốc', \r
+'shutdown' => 'Ngừng', \r
+'shutdown control' => 'Điều khiển ngừng', \r
+'shutdown2' => 'Ngừng:', \r
+'shutting down' => 'Đang ngừng', \r
+'shutting down ipcop' => 'Đang ngừng IPCop', \r
+'size' => 'Kích thước', \r
+'snort hits' => 'Tổng số luật Phát hiện xâm nhập được kích hoạt cho', \r
+'sort ascending' => 'Sắp Từ dưới lên', \r
+'sort descending' => 'Sắp Từ trên xuống', \r
+'source' => 'Nguồn', \r
+'source ip' => 'IP Nguồn', \r
+'source ip and port' => 'Source IP:Port', \r
+'source ip bad' => 'Không là địa chỉ IP hoặc địa chỉ mạng hợp lệ.', \r
+'source ip in use' => 'IP Nguồn đã dùng:', \r
+'source net' => 'Mạng Nguồn', \r
+'source network' => 'IP hoặc mạng nguồn (để trống bằng "TẤT CẢ"):', \r
+'source port' => 'Cổng nguồn', \r
+'source port in use' => 'Cổng nguồn đã dùng:', \r
+'source port numbers' => 'Cổng nguồn phải là một số cổng hoặc khoảng cổng hợp lệ.', \r
+'source port overlaps' => 'Khoảng cổng nguồn phủ lấp một khoảng cổng đã có.', \r
+'speaker off' => 'Loa tắt:', \r
+'speaker on' => 'Loa bật:', \r
+'src port' => 'Cổng Nguồn', \r
+'srcprt range overlaps' => 'Khoảng cổng nguồn phủ lấp một cổng đã được định nghĩa.', \r
+'srcprt within existing' => 'Cổng nguồn nằm trong một khoảng cổng đã được định nghĩa.', \r
+'ssdmz pinholes' => 'DMZ pinholes', \r
+'ssh access' => 'Truy cập SSH', \r
+'ssh fingerprint' => 'Dấu nhận dạng', \r
+'ssh host keys' => 'SSH Host Keys', \r
+'ssh is disabled' => 'SSH tắt. Đang dừng.', \r
+'ssh is enabled' => 'SSH bật. Đang chạy lại.', \r
+'ssh key' => 'Khóa', \r
+'ssh key size' => 'Kích thước (bit)', \r
+'ssh keys' => 'Cho phép xác thực bằng khóa công khai', \r
+'ssh no auth' => 'Bạn không cho phép phương pháp xác thực nào; bạn sẽ không thể đăng nhập được', \r
+'ssh passwords' => 'Cho phép xác thực bằng mật khẩu', \r
+'ssh portfw' => 'Cho phép Chuyển tiếp TCP', \r
+'ssh1 disabled' => 'SSH v1 tắt, cần có client phải hỗ trợ v2.', \r
+'ssh1 enabled' => 'SSH v1 bật, client cũ sẽ được hỗ trợ.', \r
+'ssh1 support' => 'Hỗ trợ SSH giao thức v1 (chỉ cần cho các client cũ)', \r
+'ssnetwork status' => 'Tình trạng Mạng', \r
+'sspasswords' => 'Mật khẩu', \r
+'ssport forwarding' => 'Chuyển tiếp cổng', \r
+'ssproxy graphs' => 'Đồ thị proxy', \r
+'sssystem status' => 'Tình trạng Hệ thống', \r
+'sstraffic graphs' => 'Đồ thị tải mạng', \r
+'standard login script' => 'Script đăng nhập chuẩn', \r
+'start address' => 'Địa chỉ đầu:', \r
+'state or province' => 'Tỉnh hoặc Thành Phố', \r
+'static ip' => 'IP tĩnh', \r
+'status' => 'Tình trạng', \r
+'status information' => 'Thông tin tình trạng', \r
+'stopped' => 'ĐàDỪNG', \r
+'subject' => 'Chủ đề', \r
+'subnet is invalid' => 'Netmask không hợp lệ', \r
+'successfully refreshed updates list' => 'Đã làm mới danh sách cập nhật.', \r
+'summaries kept' => 'Giữ thông tin tóm tắt trong', \r
+'swap' => 'Swap', \r
+'swap usage per' => 'Sử dụng Swap trên', \r
+'system cpu' => 'CPU Hệ thống', \r
+'system cpu usage' => 'Sử dụng CP Hệ thống', \r
+'system graphs' => 'Đồ thị Hệ thống', \r
+'system log viewer' => 'Xem Nhật ký Hệ thống', \r
+'system logs' => 'Nhật ký Hệ thống', \r
+'system status information' => 'Thông tin Tình trạng Hệ thống', \r
+'telephone not set' => 'Chưa đặt số điện thoại.', \r
+'the following update was successfully installed' => 'Cập nhật sau đã được cài đặt thành công', \r
+'the statistics were last updated at' => 'Các thống kê được cập nhật lần cuối lúc', \r
+'there are updates' => 'Có cập nhật mới cho hệ thống của bạn. Hãy đến phần "Cập nhật" để biết thêm thông tin.', \r
+'there are updates available' => 'Có cập nhật mới cho hệ thống của bạn. Bạn nên gấp rút cài đặt chúng càng sớm càng tốt.', \r
+'there was no file upload' => 'Không có file nào được tải lên.', \r
+'this feature has been sponsored by' => 'Tính năng này được tài trợ bởi', \r
+'this field may be blank' => 'Ô này có thể để trống.', \r
+'this is not a valid archive' => 'Đây không phải là một bản lưu hợp lệ.', \r
+'this is not an authorised update' => 'Đây không phải là một bản cập nhật tin cậy.', \r
+'this update is already installed' => 'Bản cập nhật này đã được cài đặt.', \r
+'time' => 'Thời gian', \r
+'time date manually reset' => 'Ngày/Giờ được đặt lại bằng tay.', \r
+'time server' => 'Máy chủ Đồng hồ', \r
+'timeout must be a number' => 'Thời hạn phải là một số.', \r
+'title' => 'Tiêu đề', \r
+'to install an update' => 'Để cài đặt bản cập nhật hãy tải lên file .tgz.gpg sau:', \r
+'toggle enable disable' => 'Bật hoặc Tắt', \r
+'tone' => 'Tone', \r
+'tone dial' => 'Quay số kiểu Tone:', \r
+'traffic on' => 'Tải mạng trên', \r
+'traffic shaping' => 'Giới hạn Tải mạng', \r
+'traffic shaping settings' => 'Thiết lập Giới hạn Tải mạng', \r
+'transfer limits' => 'Giới hạn truyền', \r
+'transparent on' => 'Trong suốt với', \r
+'type' => 'Kiểu', \r
+'unable to alter profiles while red is active' => 'Không thể thay đổi file cấu hình khi RED đang hoạt động.', \r
+'unable to contact' => 'Không thể kết nối đến', \r
+'unencrypted' => 'Không mã hoá', \r
+'unknown' => 'KHÔNG RÕ', \r
+'unnamed' => 'Không tên', \r
+'update' => 'Cập nhật', \r
+'update time' => 'Cập nhật thời gian:', \r
+'update transcript' => 'Bản sao cập nhật', \r
+'updates' => 'Cập nhật', \r
+'updates installed' => 'Cập nhật đã cài đặt', \r
+'updates is old1' => 'File cập nhật của bạn từ', \r
+'updates is old2' => 'ngày trước. Chúng tôi khuyên bạn cập nhật nó ở trang <b>Hệ thống>Cập nhật</b>', \r
+'uplink speed' => 'Tốc độ tải lên (kbit/giây)', \r
+'upload' => 'Tải lên', \r
+'upload a certificate' => 'Tải lên chứng chỉ số:', \r
+'upload a certificate request' => 'Tải lên chứng chỉ số yêu cầu:', \r
+'upload ca certificate' => 'Tải lên Chứng chỉ số CA', \r
+'upload fcdsl.o' => 'Tải lên fcdsl.o', \r
+'upload file' => 'Tải lên file', \r
+'upload p12 file' => 'Tải lên file PKCS12', \r
+'upload successful' => 'Tải lên thành công.', \r
+'upload synch.bin' => 'Tải lên synch.bin', \r
+'upload update file' => 'Tải lên file cập nhật:', \r
+'upstream password' => 'Mật khẩu proxy cấp trên:', \r
+'upstream proxy host:port' => 'Proxy cấp trên (máy:cổng)', \r
+'upstream username' => 'Tên user proxy cấp trên:', \r
+'uptime and users' => 'Thời gian chạy và user:', \r
+'usb modem on acm0' => 'USB Modem gắn vào ACM0', \r
+'usb modem on acm1' => 'USB Modem gắn vào ACM1', \r
+'usb modem on acm2' => 'USB Modem gắn vào ACM2', \r
+'usb modem on acm3' => 'USB Modem gắn vào ACM3', \r
+'use' => 'Sử dụng', \r
+'use a pre-shared key' => 'Sử dụng Khoá Dùng chung:', \r
+'use dov' => 'Sử dụng DOV (Data Over Voice):', \r
+'use ibod' => 'Sử dụng Băng thông theo Yêu cầu (iBOD):', \r
+'use only proposed settings' => 'Chỉ sử dụng các thiết lập đưa ra.', \r
+'used' => 'Đã dùng', \r
+'used memory' => 'Bộ nhớ Đã dùng', \r
+'used swap' => 'Swap Đã dùng', \r
+'user cpu' => 'CPU mức User ', \r
+'user cpu usage' => 'Sử dụng CPU mức User', \r
+'username' => 'Tên user:', \r
+'username not set' => 'Chưa đặt tên user.', \r
+'users department' => 'Bộ phận của User', \r
+'users email' => 'Địa chỉ email của User', \r
+'users fullname or system hostname' => 'Tên đầy đủ của User hoặc Tên máy', \r
+'valid root certificate already exists' => 'Đã có một chứng chỉ số gốc hợp lệ.', \r
+'vci number' => 'Số VCI:', \r
+'virtual private networking' => 'Mạng Riêng Ảo', \r
+'vpi number' => 'Số VPI:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'Cấu hình VPN - Phần chính', \r
+'vpn on blue' => 'VPN trên BLUE', \r
+'waiting to synchronize clock' => 'Đang chờ đồng bộ đồng hồ', \r
+'warning messages' => 'Thông điệp cảnh báo', \r
+'web hits' => 'Tổng số website phù hợp với tiêu chuẩn đã chọn', \r
+'web proxy' => 'Web proxy', \r
+'web proxy configuration' => 'Cấu hình web proxy', \r
+'web server' => 'Máy chủ web', \r
+'website' => 'Website', \r
+'week' => 'Tuần', \r
+'weeks' => 'tuần', \r
+'wildcards' => 'Ký tự thay thế', \r
+'wireless' => 'Không dây', \r
+'wireless config added' => 'Cấu hình không dây đã thêm', \r
+'wireless config changed' => 'Cấu hình không dây đã thay đổi', \r
+'wireless configuration' => 'Cấu hình Không dây', \r
+'written sectors' => 'Số sector Ghi', \r
+'xtaccess all error' => 'Bạn không thể đặt một truy cập từ bên ngoài thành TẤT CẢ, cái đó được thực hiện ở phần chuyển tiếp cổng.', \r
+'year' => 'Năm', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Bạn chỉ có thể định nghĩa một kết nối Roadwarrior khi sử dụng xác thực bằng khoá dùng chung.<br>Hoặc bạn đã có một kết nối Roadwarrior với xác thực khoá dùng chung, hoặc bạn đang cố thêm một cái.', \r
+'your department' => 'Bộ phận của bạn', \r
+'your e-mail' => 'Địa chỉ email của bạn', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/vi/install/CVS/Entries b/langs/vi/install/CVS/Entries
new file mode 100644 (file)
index 0000000..42898bc
--- /dev/null
@@ -0,0 +1,2 @@
+/lang_vi.c/1.1.2.3/Mon Dec 12 09:23:30 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/vi/install/CVS/Repository b/langs/vi/install/CVS/Repository
new file mode 100644 (file)
index 0000000..35d2580
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/vi/install
diff --git a/langs/vi/install/CVS/Root b/langs/vi/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/vi/install/CVS/Tag b/langs/vi/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/vi/install/lang_vi.c b/langs/vi/install/lang_vi.c
new file mode 100644 (file)
index 0000000..bee122c
--- /dev/null
@@ -0,0 +1,507 @@
+/*\r
+ * Vietnamese  (vi) Data File\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ * \r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ * \r
+ * (c) The SmoothWall Team\r
+ * \r
+ * IPCop translation\r
+ * (c) 2004 Le Dinh Long \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+char *vi_tr[] = {\r
+\r
+/* TR_ADDRESS_SETTINGS */\r
+"Thiết lập địa chỉ",\r
+/* TR_ADMIN_PASSWORD */\r
+"Mật khẩu Quản trị",\r
+/* TR_AGAIN_PROMPT */\r
+"Lặp lại:",\r
+/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */\r
+"Tất cả các card đã được cấp phát.",\r
+/* TR_AUTODETECT */\r
+"* TỰ ĐỘNG NHẬN  BIẾT *",\r
+/* TR_BUILDING_INITRD */\r
+"Đang tạo INITRD...",\r
+/* TR_CANCEL */\r
+"Huỷ bỏ",\r
+/* TR_CARD_ASSIGNMENT */\r
+"Chỉ định card",\r
+/* TR_CHECKING */\r
+"Đang kiểm tra URL...",\r
+/* TR_CHECKING_FOR */\r
+"Đang kiểm tra: %s",\r
+/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */\r
+"Chọn card ISDN được gắn trên máy này.",\r
+/* TR_CHOOSE_THE_ISDN_PROTOCOL */\r
+"Chọn giao thức ISDN cần có.",\r
+/* TR_CONFIGURE_DHCP */\r
+"Cấu hình dịch vụ DHCP bằng cách nhập các thông tin thiết lập.",\r
+/* TR_CONFIGURE_NETWORKING */\r
+"Cấu hình mạng",\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+"Bây giờ bạn nên cấu hình mạng bằng cách nạp driver đúng cho giao tiếp GREEN trước. Bạn có thể thực hiện bằng cách tự động dò card mạng, hoặc chọn driver đúng từ danh sách cho trước. Lưu ý rằng nếu bạn có nhiều hơn một card mạng được gắn, bạn có thể cấu hình các cái khác sau trong quá trình cài đặt. Cũng nhớ rằng nếu bạn có nhiều hơn một card mạng có cùng kiểu GREEN và mỗi card cần các tham số cho mô-đun khác nhau, bạn cần nhập các tham số cho tất cả các card loại này để chúng có thể được kích hoạt khi cấu hình giao tiếp GREEN.",\r
+/* TR_CONFIGURE_NETWORK_DRIVERS */\r
+"Cấu hình driver mạng và giao tiếp mỗi card được chỉ đến. Cấu hình hiện tại như sau:\n\n",\r
+/* TR_CONFIGURE_THE_CDROM */\r
+"Cấu hình CDROM bằng cách chọn địa chỉ IO và/hoặc IRQ thích hợp.",\r
+/* TR_CONGRATULATIONS */\r
+"Xin chúc mừng!",\r
+/* TR_CONGRATULATIONS_LONG */\r
+"%s đã được cài đặt thành công. Hãy lấy đĩa mềm hay CDROM ra khỏi máy. Trình thiết lập sẽ chạy để bạn có thể cấu hình ISDN, card mạng và mật khẩu của hệ thống. Sau khi thiết lập hoàn tất, bạn nên dùng trình duyệt trỏ đến http://%s:81 hoặc https://%s:445 (hoặc tên gì bạn đã đặt cho %s), và cấu hình quay số (nếu cần thiết) và truy cập từ xa. Nhớ đặt mật khẩu cho user 'dial' trên %s, nếu bạn muốn các user không phải 'admin' có thể điều khiển đườn kết nối quay số.",\r
+/* TR_CONTINUE_NO_SWAP */\r
+"Đĩa cứng của bạn quá nhỏ, bạn có thể tiếp tục mà không có swap. (Cẩn thận khi dùng).",\r
+/* TR_CURRENT_CONFIG */\r
+"Cấu hình hiện tại: %s%s",\r
+/* TR_DEFAULT_GATEWAY */\r
+"Gateway Mặc định:",\r
+/* TR_DEFAULT_GATEWAY_CR */\r
+"Gateway Mặc định\n",\r
+/* TR_DEFAULT_LEASE */\r
+"Thời gian cấp đchỉ mặc định (phút):",\r
+/* TR_DEFAULT_LEASE_CR */\r
+"Thời gian cấp địa chỉ mặc định (phút)\n",\r
+/* TR_DETECTED */\r
+"Nhận biết một: %s",\r
+/* TR_DHCP_HOSTNAME */\r
+"Tên máy chủ DHCP:",\r
+/* TR_DHCP_HOSTNAME_CR */\r
+"Tên máy chủ DHCP\n",\r
+/* TR_DHCP_SERVER_CONFIGURATION */\r
+"Cấu hình dịch vụ DHCP",\r
+/* TR_DISABLED */\r
+"Tắt",\r
+/* TR_DISABLE_ISDN */\r
+"Tắt ISDN",\r
+/* TR_DISK_TOO_SMALL */\r
+"Đĩa cứng của bạn quá nhỏ.",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS */\r
+"Thiết lập DNS và Gateway",\r
+/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */\r
+"Nhập thông tin DNS và gateway. Các thiết lập này chỉ được sử dụng với IP Tĩnh (và DHCP nếu DNS được đặt) trên giao tiếp RED.",\r
+/* TR_DNS_GATEWAY_WITH_GREEN */\r
+"Cấu hình của bạn không sử dụng card ethernet cho giao tiếp RED. Thông tin DNS và Gateway cho các user quay số sẽ được tự động cấu hình lúc quay số.",\r
+/* TR_DOMAINNAME */\r
+"Tên miền",\r
+/* TR_DOMAINNAME_CANNOT_BE_EMPTY */\r
+"Tên miền không thể trống.",\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+"Tên miền không thể chứa khoảng trắng.",\r
+/* TR_DOMAINNAME_NOT_VALID_CHARS */\r
+"Tên miền chỉ có thể chứa ký tự, chữ số, gạch ngang và dấu chấm.",\r
+/* TR_DOMAIN_NAME_SUFFIX */\r
+"Đuôi tên miền:",\r
+/* TR_DOMAIN_NAME_SUFFIX_CR */\r
+"Đuôi tên miền\n",\r
+/* TR_DONE */\r
+"Xong",\r
+/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */\r
+"\nBạn có muốn thay đổi các thiết lập này?",\r
+/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */\r
+"Chỉ định driver và card",\r
+/* TR_ENABLED */\r
+"Bật",\r
+/* TR_ENABLE_ISDN */\r
+"Bật ISDN",\r
+/* TR_END_ADDRESS */\r
+"Địa chỉ cuối:",\r
+/* TR_END_ADDRESS_CR */\r
+"Địa chỉ cuối\n",\r
+/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */\r
+"Một số card ISDN (nhất là card ISA) có thể cần thêm các tham số mô-đun khác để thiết lập thông tin IRQ và địa chỉ IO. Nếu bạn có loại card ISDN đó, nhập các tham số thêm ở đây. Ví dụ: \"io=0x280 irq=9\". Chúng sẽ được dùng khi nhận biết card.",\r
+/* TR_ENTER_ADMIN_PASSWORD */\r
+"Nhập mật khẩu quản trị %s. Nó sẽ được dùng để user đăng nhập vào trang web quản trị của %s.",\r
+/* TR_ENTER_DOMAINNAME */\r
+"Nhập Tên miền",\r
+/* TR_ENTER_HOSTNAME */\r
+"Nhập tên máy.",\r
+/* TR_ENTER_IP_ADDRESS_INFO */\r
+"Nhập thông tin địa chỉ IP",\r
+/* TR_ENTER_NETWORK_DRIVER */\r
+"Nhận biết card mạng tự động không được. Nhập driver và tham số tuỳ chọn cho card mạng.",\r
+/* TR_ENTER_ROOT_PASSWORD */\r
+"Nhập mật khẩu user 'root'. Đăng nhập với user này để thao tác dòng lệnh.",\r
+/* TR_ENTER_SETUP_PASSWORD */\r
+"Nhập mật khẩu user 'setup'. Đang nhập với user này để chạy chương trình thiết lập.",\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+"Nhập thông tin địa chỉ IP cho giao tiếp %s.",\r
+/* TR_ENTER_THE_LOCAL_MSN */\r
+"Nhập số điện thoại nội hạt (MSN/EAZ).",\r
+/* TR_ENTER_URL */\r
+"Nhập đường dẫn URL đến file ipcop-<version>.tgz và images/scsidrv-<version>.img. CẢNH BÁO: DNS chưa có! Lúc này chỉ nên nhập dạng http://X.X.X.X/<directory> ",\r
+/* TR_ERROR */\r
+"Lỗi",\r
+/* TR_ERROR_WRITING_CONFIG */\r
+"Lỗi ghi thông tin cấu hình.",\r
+/* TR_EURO_EDSS1 */\r
+"Euro (EDSS1)",\r
+/* TR_EXTRACTING_MODULES */\r
+"Đang bung các mô-đun...",\r
+/* TR_FAILED_TO_FIND */\r
+"Không tìm được file URL.",\r
+/* TR_FOUND_NIC */\r
+"%s đã nhận biết các NIC sau trên máy của bạn: %s",\r
+/* TR_GERMAN_1TR6 */\r
+"German 1TR6",\r
+/* TR_HELPLINE */\r
+"                 <Tab>/<Alt-Tab> để di chuyển | <Space> để chọn",\r
+/* TR_HOSTNAME */\r
+"Tên máy",\r
+/* TR_HOSTNAME_CANNOT_BE_EMPTY */\r
+"Tên máy không thể trống.",\r
+/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */\r
+"Tên máy không thể chứa khoảng trắng.",\r
+/* TR_HOSTNAME_NOT_VALID_CHARS */\r
+"Tên máy chỉ có thể chứa ký tự, chữ số và gạch ngang.",\r
+/* TR_INITIALISING_ISDN */\r
+"Đang khởi động ISDN...",\r
+/* TR_INSERT_CDROM */\r
+"Hãy cho CD %s vào ổ CDROM.",\r
+/* TR_INSERT_FLOPPY */\r
+"Hãy cho đĩa mềm driver %s  vào ổ đĩa mềm.",\r
+/* TR_INSTALLATION_CANCELED */\r
+"Cài đặt bị huỷ bỏ.",\r
+/* TR_INSTALLING_FILES */\r
+"Đang cài đặt file...",\r
+/* TR_INSTALLING_GRUB */\r
+"Đang cài đặt GRUB...",\r
+/* TR_INTERFACE */\r
+"Giao tiếp %s",\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+"Giao tiếp không bật được.",\r
+/* TR_INVALID_FIELDS */\r
+"Các ô sau không hợp lệ:\n\n",\r
+/* TR_INVALID_IO */\r
+"Thông tin chi tiết cổng IO nhập vào không hợp lệ.",\r
+/* TR_INVALID_IRQ */\r
+"Thông tin chi tiết IRQ nhập vào không hợp lệ.",\r
+/* TR_IP_ADDRESS_CR */\r
+"Địa chỉ IP\n",\r
+/* TR_IP_ADDRESS_PROMPT */\r
+"Địa chỉ IP:",\r
+/* TR_ISDN_CARD */\r
+"Card ISDN",\r
+/* TR_ISDN_CARD_NOT_DETECTED */\r
+"Card ISDN không nhận biết được. Bạn cần phải khai báo các tham số phụ cho mô-đun nếu card là loại ISA hoặc có yêu cầu đặc biệt khác.",\r
+/* TR_ISDN_CARD_SELECTION */\r
+"Chọn card ISDN",\r
+/* TR_ISDN_CONFIGURATION */\r
+"Cấu hình ISDN",\r
+/* TR_ISDN_CONFIGURATION_MENU */\r
+"Menu cấu hình ISDN",\r
+/* TR_ISDN_NOT_SETUP */\r
+"ISDN chưa thiết lập. Một vài mục chưa được chọn.",\r
+/* TR_ISDN_NOT_YET_CONFIGURED */\r
+"ISDN chưa được cấu hình. Chọn mục bạn muốn cấu hình.",\r
+/* TR_ISDN_PROTOCOL_SELECTION */\r
+"Chọn giao thức ISDN",\r
+/* TR_ISDN_STATUS */\r
+"ISDN hiện tại %s.\n\n Giao thức: %s\n Card: %s\n Số điện thoại nội hạt: %s\n\nChọn mục bạn muốn cấu hình lại, hoặc chọn để sử dụng thiết lập hiện tại.",\r
+/* TR_KEYBOARD_MAPPING */\r
+"Sắp đặt bàn phím",\r
+/* TR_KEYBOARD_MAPPING_LONG */\r
+"Chọn kiểu bàn phím bạn đang dùng từ danh sách sau.",\r
+/* TR_LEASED_LINE */\r
+"Kênh riêng",\r
+/* TR_LOADING_MODULE */\r
+"Đang nạp mô-đun...",\r
+/* TR_LOADING_PCMCIA */\r
+"Đang nạp PCMCIA mô-đun...",\r
+/* TR_LOOKING_FOR_NIC */\r
+"Đang tìm: %s",\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+"Đang tạo hệ thống file boot...",\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+"Đang tạo hệ thống file log...",\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+"Đang tạo hệ thống file root...",\r
+/* TR_MAKING_SWAPSPACE */\r
+"Đang tạo vùng swap...",\r
+/* TR_MANUAL */\r
+"* THỦ CÔNG *",\r
+/* TR_MAX_LEASE */\r
+"Thời gian cấp đchỉ tối đa (phút):",\r
+/* TR_MAX_LEASE_CR */\r
+"Thời gian tạm cấp tối đa\n",\r
+/* TR_MISSING_BLUE_IP */\r
+"Thiếu thông tin IP trên giao tiếp BLUE.",\r
+/* TR_MISSING_ORANGE_IP */\r
+"Thiếu thông tin IP trên giao tiếp ORANGE.",\r
+/* TR_MISSING_RED_IP */\r
+"Thiếu thông tin IP trên giao tiếp RED.",\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+"Tên mô-đun không thể để trống.",\r
+/* TR_MODULE_PARAMETERS */\r
+"Nhập tên mô-đun và tham số cho driver bạn cần.",\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+"Đang gắn kết hệ thống file boot...",\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+"Đang gắn kết hệ thống file log...",\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+"Đang gắn kết hệ thống file root...",\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+"Đang gắn kết phân vùng swap...",\r
+/* TR_MSN_CONFIGURATION */\r
+"Số điện thoại nội hạt (MSN/EAZ)",\r
+/* TR_NETMASK_PROMPT */\r
+"Mặt nạ địa chỉ:",\r
+/* TR_NETWORKING */\r
+"Mạng",\r
+/* TR_NETWORK_ADDRESS_CR */\r
+"Địa chỉ mạng\n",\r
+/* TR_NETWORK_ADDRESS_PROMPT */\r
+"Địa chỉ mạng:",\r
+/* TR_NETWORK_CONFIGURATION_MENU */\r
+"Menu cấu hình mạng",\r
+/* TR_NETWORK_CONFIGURATION_TYPE */\r
+"Kiểu cấu hình mạng",\r
+/* TR_NETWORK_CONFIGURATION_TYPE_LONG */\r
+"Chọn kiểu cấu hình mạng cho %s. Các kiểu cấu hình sau liệt kê các giao tiếp có gắn với card ethernet. Nếu bạn thay đổi thiết lập này, cần phải khởi động lại dịch vụ mạng, và bạn cũng sẽ phải cấu hình lại các chỉ định driver mạng.",\r
+/* TR_NETWORK_MASK_CR */\r
+"Mặt nạ địa chỉ mạng\n",\r
+/* TR_NETWORK_SETUP_FAILED */\r
+"Thiết lập mạng không được.",\r
+/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */\r
+"Không cấp phát đủ card.",\r
+/* TR_NO_BLUE_INTERFACE */\r
+"Chưa chỉ định giao tiếp BLUE.",\r
+/* TR_NO_CDROM */\r
+"Không tìm thấy CD-ROM.",\r
+/* TR_NO_HARDDISK */\r
+"Không tìm thấy đĩa cứng.",\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+"Không tìm thấy file nén ipcop trên máy chủ Web.",\r
+/* TR_NO_ORANGE_INTERFACE */\r
+"Chưa chỉ định giao tiếp ORANGE.",\r
+/* TR_NO_RED_INTERFACE */\r
+"Chưa chỉ định giao tiếp RED.",\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+"Không tìm thấy file ảnh SCSI trên máy chủ Web.",\r
+/* TR_NO_UNALLOCATED_CARDS */\r
+"Không còn card nào chưa được cấp phát, cần phải thêm. Bạn có thể tự động nhận biết và tìm thêm card, hoặc chọn để lựa một driver từ danh sách.",\r
+/* TR_OK */\r
+"OK",\r
+/* TR_PARTITIONING_DISK */\r
+"Đang phân vùng đĩa...",\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+"Mật khẩu không khớp.",\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+"Mật khẩu không thể để trống.",\r
+/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */\r
+"Mật khẩu không thể chứa khoảng trắng.",\r
+/* TR_PASSWORD_PROMPT */\r
+"Mật khẩu:",\r
+/* TR_PHONENUMBER_CANNOT_BE_EMPTY */\r
+"Số điện thoại không thể trống.",\r
+/* TR_PREPARE_HARDDISK */\r
+"Chương trình cài đặt sẽ chuẩn bị đĩa cứng trên %s. Trước tiên đĩa sẽ được phân vùng, sau đó các hệ thống file sẽ được đặt trên các phân vùng đó.",\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+"Nhấn Ok để khởi động lại.",\r
+/* TR_PRIMARY_DNS */\r
+"DNS Chính:",\r
+/* TR_PRIMARY_DNS_CR */\r
+"DNS Chính\n",\r
+/* TR_PROBE */\r
+"Dò tìm",\r
+/* TR_PROBE_FAILED */\r
+"Tự động nhận biết không được.",\r
+/* TR_PROBING_SCSI */\r
+"Đang dò tìm thiết bị SCSI...",\r
+/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */\r
+"Có vấn đề với thiết lập mật khẩu quản trị %s.",\r
+/* TR_PROBLEM_SETTING_ROOT_PASSWORD */\r
+"Có vấn đề với thiết lập mật khẩu 'root'.",\r
+/* TR_PROBLEM_SETTING_SETUP_PASSWORD */\r
+"Có vấn đề với thiết lập mật khẩu 'setup'.",\r
+/* TR_PROTOCOL_COUNTRY */\r
+"Giao thức/Quốc gia",\r
+/* TR_PULLING_NETWORK_UP */\r
+"Đang bật mạng lên...",\r
+/* TR_PUSHING_NETWORK_DOWN */\r
+"Đang tắt mạng...",\r
+/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */\r
+"Đang tắt mạng ngoài nội bộ...",\r
+/* TR_QUIT */\r
+"Thoát",\r
+/* TR_RED_IN_USE */\r
+"ISDN (hoặc kết nối ra ngoài khác) đang sử dụng. Bạn không thể cấu hình ISDN khi giao tiếp RED còn đang hoạt động.",\r
+/* TR_RESTART_REQUIRED */\r
+"\n\nKhi cấu hình hoàn tất, cần phải khởi động lại dịch vụ mạng.",\r
+/* TR_RESTORE */\r
+"Phục hồi",\r
+/* TR_RESTORE_CONFIGURATION */\r
+"Nếu bạn có đĩa mềm chứa cấu hình %s, cho vào ổ đĩa mềm rồi nhấn nút Phục hồi.",\r
+/* TR_ROOT_PASSWORD */\r
+"Mật khẩu 'root'",\r
+/* TR_SECONDARY_DNS */\r
+"DNS Phụ:",\r
+/* TR_SECONDARY_DNS_CR */\r
+"DNS Phụ\n",\r
+/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */\r
+"Khai báo DNS Phụ mà không có DNS Chính",\r
+/* TR_SECTION_MENU */\r
+"Phần menu ",\r
+/* TR_SELECT */\r
+"Chọn",\r
+/* TR_SELECT_CDROM_TYPE */\r
+"Chọn kiểu CDROM",\r
+/* TR_SELECT_CDROM_TYPE_LONG */\r
+"Không có CD-ROM nào trên máy được nhận biết. Hãy chọn một trong số các driver sau bạn muốn dùng để %s có thể truy xuất được CD-ROM.",\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+"Chọn phương tiện cài đặt",\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+"%s có thể được cài đặt từ nhiều nguồn. Cách đơn giản nhất là dùng máy tính có ổ CDROM. Nếu máy tính không có ổ CDROM, bạn có thể cài thông qua một máy khác trong mạng LAN có chứa các file cài đặt qua HTTP. Trong trường hợp này cần phải có đĩa mềm chứa driver mạng.",\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+"Chọn driver mạng",\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+"Chọn driver mạng cho card được gắn trên máy này. Nếu bạn chọn THỦ CÔNG, bạn sẽ có thể nhập tên driver và các tham số cho các driver có các yêu cầu đặc biệt, chẳng hạn như card loại ISA.",\r
+/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */\r
+"Chọn giao tiếp bạn muốn cấu hình lại.",\r
+/* TR_SELECT_THE_ITEM */\r
+"Chọn mục bạn muốn cấu hình.",\r
+/* TR_SETTING_ADMIN_PASSWORD */\r
+"Đang đặt mật khẩu quản trị %s...",\r
+/* TR_SETTING_ROOT_PASSWORD */\r
+"Đang đặt mật khẩu 'root'...",\r
+/* TR_SETTING_SETUP_PASSWORD */\r
+"Đang đặt mật khẩu 'setup'...",\r
+/* TR_SETUP_FINISHED */\r
+"Thiết lập hoàn tất. Nhấn Ok để khởi động lại.",\r
+/* TR_SETUP_NOT_COMPLETE */\r
+"Thiết lập khởi đầu không hoàn tất hết. Bạn phải chắc chắn chương trình Thiết lập kết thúc đúng đắn bằng cách chạy setup lại ở dòng lệnh.",\r
+/* TR_SETUP_PASSWORD */\r
+"mật khẩu 'setup'",\r
+/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */\r
+"Đặt các tham số mô-đun khác",\r
+/* TR_SINGLE_GREEN */\r
+"Cấu hình của bạn được đặt cho một giao tiếp GREEN.",\r
+/* TR_SKIP */\r
+"Bỏ qua",\r
+/* TR_START_ADDRESS */\r
+"Địa chỉ đầu:",\r
+/* TR_START_ADDRESS_CR */\r
+"Địa chỉ đầu\n",\r
+/* TR_STATIC */\r
+"Tĩnh",\r
+/* TR_SUGGEST_IO */\r
+"(đề nghị %x)",\r
+/* TR_SUGGEST_IRQ */\r
+"(đề nghị %d)",\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+"Mô-đun driver này đã được nạp.",\r
+/* TR_TIMEZONE */\r
+"Múi giờ",\r
+/* TR_TIMEZONE_LONG */\r
+"Chọn múi giờ bạn đang ở trong danh sách sau.",\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+"Không thể đẩy CDROM ra.",\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+"Không thể bung các mô-đun.",\r
+/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */\r
+"Không thể tìm thấy thêm driver nào.",\r
+/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */\r
+"Không thể tìm thấy card ISDN trên máy này. Có thể bạn cần khai báo thêm các tham số khác cho mô-đun nếu card là loại ISA hoặc có các yêu cầu đặc biệt.",\r
+/* TR_UNABLE_TO_INITIALISE_ISDN */\r
+"Không thể khởi tạo ISDN.",\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+"Không thể cài đặt file.",\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+"Không thể cài đặt GRUB.",\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+"Không thể nạp mô-đun driver.",\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+"Không thể tạo hệ thống file boot.",\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+"Không thể tạo hệ thống file log.",\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+"Không thể tạo hệ thống file root.",\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+"Không thể tạo không gian swap.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+"Không thể tạo liên kết /dev/harddisk.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+"Không thể tạo liên kết /dev/harddisk1.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+"Không thể tạo liên kết /dev/harddisk2.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+"Không thể tạo liên kết /dev/harddisk3.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+"Không thể tạo liên kết /dev/harddisk4.",\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+"Không thể tạo liên kết /dev/root.",\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+"Không thể gắn kết hệ thống file boot.",\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+"Không thể gắn kết hệ thống file log.",\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+"Không thể gắn kết hệ thống file proc.",\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+"Không thể gắn kết hệ thống file root.",\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+"Không thể gắn kết phân vùng swap.",\r
+/* TR_UNABLE_TO_OPEN_HOSTS_FILE */\r
+"Không thể mở file hosts.",\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+"Không thể mở file chứa thiết lập.",\r
+/* TR_UNABLE_TO_PARTITION */\r
+"Không thể phân vùng đĩa cứng.",\r
+/* TR_UNABLE_TO_REMOVE_TEMP_FILES */\r
+"Không thể xoá các file được tải xuống tạm.",\r
+/* TR_UNABLE_TO_SET_HOSTNAME */\r
+"Không thể đặt được tên máy.",\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+"Không thể gỡ gắn kết CDROM/đĩa mềm.",\r
+/* TR_UNABLE_TO_UNMOUNT_HARDDISK */\r
+"Không thể gỡ gắn kết đĩa cứng.",\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+"Không thể ghi lên /etc/fstab.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */\r
+"Không thể ghi lên /etc/hostname.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS */\r
+"Không thể ghi lên /etc/hosts.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */\r
+"Không thể ghi lên /etc/hosts.allow.",\r
+/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */\r
+"Không thể ghi lên /etc/hosts.deny.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */\r
+"Không thể ghi lên %s/ethernet/settings.",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */\r
+"Không thể ghi lên %s/main/hostname.conf",\r
+/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */\r
+"Không thể ghi lên %s/main/settings.",\r
+/* TR_UNCLAIMED_DRIVER */\r
+"Có một card ethernet không đòi hỏi bắt buộc có kiểu:\n%s\n\nBạn có thể chỉ định nó cho:",\r
+/* TR_UNKNOWN */\r
+"KHÔNG RÕ",\r
+/* TR_UNSET */\r
+"CHƯA ĐẶT",\r
+/* TR_USB_KEY_VFAT_ERR */\r
+"This USB key is invalid (no vfat partition found).",\r
+/* TR_US_NI1 */\r
+"US NI1",\r
+/* TR_WARNING */\r
+"CẢNH BÁO",\r
+/* TR_WARNING_LONG */\r
+"Nếu bạn đổi địa chỉ IP này, và bạn đang đăng nhập từ xa, kết nối của bạn đến máy %s sẽ bị ngắt, bạn sẽ phải kết nối lại đến IP mới. Đây là một thao tác mạo hiểm, và bạn chỉ nên thử nếu bạn có thể truy cập vật lý vào máy, khi có gì đó không ổn. ",\r
+/* TR_WELCOME */\r
+"Chào mừng đến chương trình cài đặt %s. Chọn Huỷ bỏ khi ở bất kỳ màn hình nào sau đây sẽ khởi động lại máy tính.",\r
+/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */\r
+"Cấu hình của bạn được đặt cho một giao tiếp GREEN đã được chỉ định driver.",\r
+}; \r
+  \r
diff --git a/langs/zh/CVS/Entries b/langs/zh/CVS/Entries
new file mode 100644 (file)
index 0000000..9030d32
--- /dev/null
@@ -0,0 +1 @@
+D/cgi-bin////
diff --git a/langs/zh/CVS/Repository b/langs/zh/CVS/Repository
new file mode 100644 (file)
index 0000000..c11b889
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/zh
diff --git a/langs/zh/CVS/Root b/langs/zh/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/zh/CVS/Tag b/langs/zh/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/zh/cgi-bin/CVS/Entries b/langs/zh/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..1fe0367
--- /dev/null
@@ -0,0 +1,2 @@
+/zh.pl/1.7.2.23/Wed Sep  7 19:52:48 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/zh/cgi-bin/CVS/Repository b/langs/zh/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..c572fd9
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/zh/cgi-bin
diff --git a/langs/zh/cgi-bin/CVS/Root b/langs/zh/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/zh/cgi-bin/CVS/Tag b/langs/zh/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/zh/cgi-bin/zh.pl b/langs/zh/cgi-bin/zh.pl
new file mode 100644 (file)
index 0000000..9d23ffb
--- /dev/null
@@ -0,0 +1,861 @@
+# Chinese Simplified (zh) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2003 Vince Chu, Yuan-Chen Cheng \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => '这个CA证书名字已经存在', \r
+'a connection with this common name already exists' => '这个连接名称已经存在', \r
+'a connection with this name already exists' => '这个连接名称已经存在', \r
+'access allowed' => '访问允许从:', \r
+'action' => '指令', \r
+'add' => '新增', \r
+'add a host' => '新增主机:', \r
+'add a new rule' => '新增规则:', \r
+'add network' => '填加网络', \r
+'add new alias' => '新增別名:', \r
+'add new lease' => '新增固定租约', \r
+'add service' => '添加服务', \r
+'add xtaccess' => '新增外部访问', \r
+'admin user password has been changed' => 'admin密码修改成功', \r
+'administrator user password' => 'admin密码:', \r
+'adsl settings' => 'ADSL 设置', \r
+'advanced' => '高级', \r
+'again' => '重试:', \r
+'alcatelusb help' => '要使用Speedtouch USB 猫你必须上传它的固件,请到speedtouch.com下载<b>Embedded Firmware</b> 解压缩并上传合适的你的猫的程序: 当 Rev<4使用KQD6_3.xxx 或者 Rev=4使用ZZZL_3.xxx  ', \r
+'alcatelusb upload' => '上传Speedtouch USB Firmware', \r
+'alias ip' => 'IP 別名', \r
+'aliases' => '别名', \r
+'aliases not active' => '红色 (RED) 介面卡需要为静态才能使別名 (Aliases) 生效', \r
+'all updates installed' => '全部更新已经安装', \r
+'alt dialup' => '拨号', \r
+'alt home' => '主页', \r
+'alt information' => '信息', \r
+'alt logs' => '日志', \r
+'alt services' => '服务', \r
+'alt system' => '系统', \r
+'alt vpn' => '虚拟专用网', \r
+'ansi t1.483' => 'ANSI T1.483', \r
+'april' => '四月', \r
+'archive not exist' => '配置文件不存在', \r
+'are you sure' => '你确定吗?', \r
+'arp table entries' => 'APR 列表:', \r
+'august' => '八月', \r
+'authentication' => '鉴定', \r
+'automatic' => '自动', \r
+'available updates' => '可用更新:', \r
+'average' => 'Average', \r
+'back' => '后退', \r
+'backup' => '备份到软盘', \r
+'backup config floppy' => '备份设置软盘', \r
+'backup configuration' => '备份设定:', \r
+'backup sets' => '备份设置', \r
+'backup to floppy' => '备份到软盘', \r
+'backupprofile' => '返回', \r
+'bad characters in script field' => '脚本有错误的字符', \r
+'bad characters in the telephone number field' => '电话号码中有非法字符', \r
+'bad destination range' => '目标端口范围第一个值应该小于等于第二个值', \r
+'bad ignore filter' => '有害信息忽略过滤', \r
+'bad return code' => '返回错误代码', \r
+'bad source range' => '源端口范围错误,第一个值应该大于等于第二个值', \r
+'beep when ppp connects or disconnects' => '当防火墙连接或断开时发出警告音', \r
+'behind a proxy' => '在代理之后:', \r
+'bewan adsl pci st' => 'Bewan ADSL PCI ST', \r
+'bewan adsl usb' => 'bewan adsl usb', \r
+'blue' => '蓝色接口(无线)', \r
+'blue access' => '无线网络', \r
+'blue interface' => '蓝色接口', \r
+'broadcast' => '广播', \r
+'broken pipe' => '坏通道', \r
+'buffered memory' => 'buffered memory', \r
+'buffers' => '磁盘缓存', \r
+'bytes per second' => 'Bytes per Second', \r
+'ca certificate' => 'CA证书', \r
+'ca name' => 'CA名称', \r
+'cache management' => '缓存管理', \r
+'cache size' => '缓存容量 (MB):', \r
+'cached' => '缓存', \r
+'cached memory' => 'cached memory', \r
+'cancel' => '取消', \r
+'cannot enable both nat traversal and compression' => '不能够打开双向NAT和压缩', \r
+'cannot enable ntp without specifying primary' => '不指定根无法激活NTP服务', \r
+'cannot specify secondary dns without specifying primary' => '不指定根无法激活第二个DNS', \r
+'cannot specify secondary ntp without specifying primary' => '不指定根无法激活第二NTP服务器', \r
+'cannot specify secondary wins without specifying primary' => '不能指定第二个WINS服务器,请先指定主WINS服务器', \r
+'cant change certificates' => '不能改变证书', \r
+'cant enable xtaccess' => '不能打开外部访问规则,因为端口转发没有打开', \r
+'cant start openssl' => '不能启动OpenSSL', \r
+'caps all' => '全部', \r
+'capsclosed' => '关闭', \r
+'capsopen' => '开启', \r
+'capswarning' => '警告', \r
+'cert' => '证书', \r
+'certificate' => '证书', \r
+'certificate authorities' => '认证授权', \r
+'certificate does not have a valid ca associated with it' => '证书不是一个有效的CA', \r
+'certificate file move failed' => '证书删除失败', \r
+'cfg restart' => '恢复备份建议重起系统', \r
+'chain' => '链', \r
+'change passwords' => '更改密码', \r
+'check vpn lr' => '检查', \r
+'city' => '城市', \r
+'clear cache' => '清除Cache', \r
+'clenabled' => '客户端激活', \r
+'click to disable' => '单击关闭', \r
+'click to enable' => '单击打开', \r
+'clock has not been synchronized' => '时钟没同步', \r
+'clock last synchronized at' => '上次时间同步在', \r
+'common name' => '普通名称', \r
+'compression' => '压缩:', \r
+'computer to modem rate' => '电脑至调制解调器的速度:', \r
+'concentrator name' => '接入中心名称', \r
+'confirmation' => '确认', \r
+'connect on ipcop restart' => '用IPCop重启连接', \r
+'connect the modem' => '连接modem', \r
+'connect timeout' => '连接超时:', \r
+'connected' => '已连接', \r
+'connecting' => '连接中...', \r
+'connection' => '连接', \r
+'connection debugging' => '连接调试', \r
+'connection status and controlc' => '连接状态和控制:', \r
+'connection tracking' => 'IPTables连接跟踪', \r
+'connection type' => '连接类型', \r
+'connection type is invalid' => '连接类型无效', \r
+'connections' => '连接跟踪', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => '连接与CA关联,删除CA将删除连接', \r
+'could not be opened' => '无法打开', \r
+'could not connect to' => '无法连接到', \r
+'could not connect to www ipcop org' => '无法连接到www.ipcop.org', \r
+'could not create directory' => '无法创建目录.', \r
+'could not download latest patch list' => '无法下载最新的补丁列表', \r
+'could not download latest updates' => '无法下载最新的升级程序', \r
+'could not download the available updates list' => '无法下载可用升级列表.', \r
+'could not open available updates file' => '无法打开可用更新文档.', \r
+'could not open installed updates file' => '无法打开已安装的更新文档', \r
+'could not open update information file' => '无法打开更新信息文档,此文档被破坏.', \r
+'could not retrieve common name from certificate' => '你不能从证书中恢复名称', \r
+'country' => '国家', \r
+'cpu usage per' => 'cpu usage per', \r
+'create' => '创建', \r
+'credits' => '开发人员榜', \r
+'cron server' => 'CRON服务', \r
+'current' => '当前', \r
+'current aliases' => '当前别名', \r
+'current dynamic leases' => '当前动态租约', \r
+'current fixed leases' => '当前固定租约', \r
+'current hosts' => '当前主机:', \r
+'current profile' => '当前配置文件', \r
+'current rules' => '当前规则', \r
+'custom networks' => '定制网络', \r
+'custom services' => '定制服务', \r
+'dat without key' => '没有密码无法恢复一个加密文档', \r
+'date' => '日期', \r
+'date not in logs' => '日期不在日志中', \r
+'day' => '日', \r
+'day after' => '以后', \r
+'day before' => '以前', \r
+'days' => '日', \r
+'ddns hostname added' => '动态DNS主机名已增加', \r
+'ddns hostname removed' => '动态域名删除', \r
+'december' => '十二月', \r
+'def lease time' => '默认租用时间', \r
+'default lease time' => '默认租期', \r
+'default networks' => '默认网络', \r
+'default renewal time' => '默认更新时间', \r
+'default services' => '默认服务端口表', \r
+'delete' => '刪除', \r
+'demon login script' => '登录脚本', \r
+'description' => '內容', \r
+'dest ip and port' => '目标.IP:端口', \r
+'destination' => '目的', \r
+'destination ip' => '目的IP地址', \r
+'destination ip bad' => '无效的目的IP地址', \r
+'destination net' => '目标网络', \r
+'destination port' => '目标端口', \r
+'destination port numbers' => '目标端口范围必须是一个有效的值或范围', \r
+'destination port overlaps' => '目标端口范围和已存在的端口范围重叠', \r
+'detail level' => '详细程度', \r
+'device' => '设备', \r
+'dhcp configuration' => 'dhcp 设置', \r
+'dhcp mode' => 'DHCP 模式', \r
+'dhcp server' => 'DHCP服务', \r
+'dhcp server disabled' => 'DHCP 服务关闭', \r
+'dhcp server disabled on blue interface' => '蓝色接口上DHCP服务关闭', \r
+'dhcp server enabled' => 'DHCP 激活.重新启动中', \r
+'dhcp server enabled on blue interface' => '蓝色接口上DHCP服务激活', \r
+'dial' => '拨号', \r
+'dial user password' => '拨号用户密码', \r
+'dial user password has been changed' => '拨号用户密码已经更改', \r
+'dialing mode' => '拨号方式', \r
+'dialup settings' => '拨号设置', \r
+'disk access per' => 'Disk Access per', \r
+'disk usage' => '硬盘使用情况:', \r
+'display' => '显示', \r
+'display hostname in window title' => '在windows title上显示主机名', \r
+'dmz' => '非军事区', \r
+'dmz pinhole configuration' => '非军事区设置', \r
+'dmz pinhole rule added' => '非军事区规则成功增加', \r
+'dmz pinhole rule removed' => '非军事区规则移除', \r
+'dmzpinholes for same net not necessary' => 'DMZ不能是同一个网络,请选择不同的源或目标网络', \r
+'dns check failed' => 'DNS 檢查失敗', \r
+'dns proxy server' => 'DNS代理服务器', \r
+'dod' => '按需拨号', \r
+'dod for dns' => '按需拨号for dns:', \r
+'dod waiting' => '按需拨号等待中', \r
+'domain' => '域', \r
+'domain name' => '域名', \r
+'domain name suffix' => '域名后缀', \r
+'domain not set' => '域未设定.', \r
+'downlink speed' => '下行链路速率(kbit/sec)', \r
+'download ca certificate' => '下载CA证书', \r
+'download certificate' => '下载证书', \r
+'download host certificate' => '下载主机证书', \r
+'download new ruleset' => '下载新的规则设定', \r
+'download pkcs12 file' => '下载PKCS12文件', \r
+'download root certificate' => '下载根证书', \r
+'driver' => '驱动程序', \r
+'dst port' => '目标端口', \r
+'dstprt range overlaps' => '目标端口范围和一个已定义的端口重叠', \r
+'dstprt within existing' => '目标端口已存在', \r
+'duplicate ip' => '输入了重复的IP地址', \r
+'duplicate mac' => '重复的mac地址', \r
+'duplicate name' => '重复的名称', \r
+'dynamic dns' => '动态 DNS', \r
+'dynamic dns client' => '动态DNS客户端', \r
+'e-mail address too long' => 'email地址太长;不能超过40个字符', \r
+'eciadsl help' => '使用ECI ADSL 你必须上传synch.bin 文件,请到ECIADSL网站下载并上传<B>synch.bin</B>', \r
+'eciadsl upload' => '上传ECI ADSL Synch.bin ', \r
+'edit' => '更改', \r
+'edit a rule' => '编辑现有规则:', \r
+'edit advanced settings when done' => '完成后将编辑高级设置', \r
+'edit an existing alias' => '编辑现有别名', \r
+'edit an existing host' => '编辑一个存在的主机', \r
+'edit an existing lease' => '编辑现有的租期', \r
+'edit hosts' => '主机设置', \r
+'edit network' => '编辑网络', \r
+'edit service' => '编辑服务', \r
+'empty' => '空白', \r
+'enable ignore filter' => '打开忽略过滤器', \r
+'enable javascript' => '打开javascript', \r
+'enable wildcards' => '启用通配符:', \r
+'enabled' => '启用:', \r
+'enabled on' => '激活', \r
+'enabledtitle' => '激活', \r
+'encapsulation' => '封装', \r
+'encrypted' => '加密', \r
+'end address' => '结束地址:', \r
+'err bk 1' => '创建文件错误', \r
+'err bk 2 key' => '创建key文件错误', \r
+'err bk 3 tar' => '追加文件错误', \r
+'err bk 4 gz' => '压缩文件错误', \r
+'err bk 5 encrypt' => '加密文件错误', \r
+'err rs 1' => '恢复文件错误', \r
+'err rs 6 decrypt' => '解密文件错误', \r
+'err rs 7 untartst' => '无效的解密文件', \r
+'err rs 8 untar' => '解压文件错误', \r
+'error messages' => '错误信息', \r
+'esp encryption' => 'ESP加密:', \r
+'esp grouptype' => 'ESP组类型:', \r
+'esp integrity' => 'ESP 完整性:', \r
+'esp keylife' => 'ESP密钥存活时间:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP密钥存活时间在1到24小时.', \r
+'every' => '每一個', \r
+'excluding buffers and cache' => '-/+ buffers/cache', \r
+'expected' => '预期的', \r
+'expires' => '过期', \r
+'export' => '导出', \r
+'external access' => '外部访问', \r
+'external access configuration' => '外部访问配置', \r
+'external access rule added' => '外部访问规则添加成功', \r
+'external access rule removed' => '外部访问规则移除成功;重新启动服务', \r
+'external aliases configuration' => '外部别名配置', \r
+'february' => '二月', \r
+'filename' => '文件名', \r
+'filesystem full' => '文件系统已满', \r
+'firewall' => '防火墙', \r
+'firewall hits' => '防火墙命中总数', \r
+'firewall log' => '防火墙日志', \r
+'firewall log viewer' => '防火墙日志查看', \r
+'firewall logs' => '防火墙日志', \r
+'firmware' => '固件', \r
+'firmware upload' => '上传固件/驱动', \r
+'fixed ip lease added' => '增加固定IP租约', \r
+'fixed ip lease modified' => '固定IP租期修改', \r
+'fixed ip lease removed' => '删除固定IP租约', \r
+'force update' => '强制更新', \r
+'forwarding rule added' => '转发规则添加;重新启动服务', \r
+'forwarding rule removed' => '转发规则被移除;重新启动服务', \r
+'forwarding rule updated' => '转发规则已升级;重新启动服务', \r
+'free' => '剩余', \r
+'free memory' => 'Free Memory', \r
+'free swap' => 'Free Swap', \r
+'fritzdsl help' => '对于Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb 型号的猫,你必须上传驱动fcdsl-(your_version).tgz</b>', \r
+'fritzdsl upload' => '上传Fritz!DSL驱动', \r
+'g.dtm' => 'G.dmt', \r
+'g.lite' => 'g.lite', \r
+'gateway' => '网关', \r
+'gateway ip' => '网关IP', \r
+'generate a certificate' => '产生一个证书:', \r
+'generate root/host certificates' => '产生根/主机证书', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => '产生根/主机证书需要较长时间,尤其是老机器,请耐心等待', \r
+'global settings' => '整体设置', \r
+'graph' => '图表', \r
+'graph per' => 'Graph per', \r
+'green' => '绿色接口(本地)', \r
+'green interface' => '绿色接口', \r
+'gui settings' => '语言设置', \r
+'gz with key' => '只有加密文档才能在本机恢复', \r
+'hangup' => '挂断', \r
+'hangup string' => '挂断:', \r
+'high' => '高', \r
+'high memory usage' => '高端内存使用', \r
+'holdoff' => '延时(秒)', \r
+'host' => '主机', \r
+'host certificate' => '主机证书', \r
+'host configuration' => '主机设定', \r
+'host ip' => '主机IP', \r
+'host to net vpn' => '主机到网络的VPN', \r
+'hostname' => '主机名', \r
+'hostname and domain already in use' => '主机名和域已使用', \r
+'hostname cant be empty' => '主机名不能为空', \r
+'hostname not set' => '没有设定主机名', \r
+'hosts config added' => '主机设置增加', \r
+'hosts config changed' => '主机设置改变', \r
+'hours' => '小时', \r
+'hours2' => '小时', \r
+'ibod for dual isdn only' => 'iBOD 只能使用双路ISDN.', \r
+'icmp selected but no type' => '选择ICMP协议,但没有指定ICMP类型', \r
+'icmp type' => 'ICMP类型', \r
+'id' => 'ID', \r
+'idle' => '空闲', \r
+'idle cpu' => 'Idle CPU', \r
+'idle cpu usage' => 'Idle CPU Usage', \r
+'idle timeout' => '空闲超时', \r
+'idle timeout not set' => '没有设定空闲超时', \r
+'ids log viewer' => '查看入侵日志', \r
+'ids logs' => '入侵检测日志', \r
+'iface' => '接口', \r
+'ignore filter' => '忽略过滤', \r
+'ike encryption' => 'IKE加密:', \r
+'ike grouptype' => 'IKE组类型:', \r
+'ike integrity' => 'IKE完整性:', \r
+'ike lifetime' => 'IKE存活期:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE存活时间在1到24小时', \r
+'import' => '导入', \r
+'in' => 'In', \r
+'incoming traffic in bytes per second' => 'Incoming Traffic in Bytes per Second', \r
+'info' => '信息', \r
+'init string' => '初始化字符串:', \r
+'insert floppy' => '插入一张格式化过的软盘,点击<i>备份到软盘</i> 开始备份.<p>', \r
+'install new update' => '安装新的更新:', \r
+'installed' => '已安装', \r
+'installed updates' => '已安装更新:', \r
+'instant update' => '直接更新', \r
+'interface' => '介面:', \r
+'interfaces' => '介面:', \r
+'internet' => '互联网', \r
+'intrusion detection' => '入侵检测', \r
+'intrusion detection system' => '入侵检测系统', \r
+'intrusion detection system log viewer' => '查看入侵检测系统日志', \r
+'intrusion detection system2' => '入侵检测系统:', \r
+'invalid broadcast ip' => '无效的广播IP', \r
+'invalid cache size' => 'cache 大小无效', \r
+'invalid characters found in pre-shared key' => '在共享密钥发现无效的字符', \r
+'invalid date entered' => '无效的日期输入', \r
+'invalid default lease time' => '无效的默认租期', \r
+'invalid domain name' => '无效的域名.', \r
+'invalid downlink speed' => '无效的下行链路速率', \r
+'invalid end address' => '无效的end地址', \r
+'invalid fixed ip address' => '无效的固定IP地址', \r
+'invalid fixed mac address' => '无效的固定Mac地址', \r
+'invalid hostname' => '无效的主机名.', \r
+'invalid input' => '无效的输入', \r
+'invalid input for authentication method' => '输入德鉴定方法无效', \r
+'invalid input for city' => '输入的城市无效', \r
+'invalid input for country' => '输入的国家无效', \r
+'invalid input for department' => '输入的部门无效', \r
+'invalid input for e-mail address' => '输入的email地址无效', \r
+'invalid input for esp keylife' => 'ESP的密钥存活期无效', \r
+'invalid input for hostname' => '输入的主机名无效', \r
+'invalid input for ike lifetime' => '输入的IKE存活期无效', \r
+'invalid input for name' => '输入的用户全称或系统主机名无效', \r
+'invalid input for organization' => '输入的组织无效', \r
+'invalid input for remote host/ip' => '输入的远端主机名/ip无效', \r
+'invalid input for state or province' => '输入的州或省无效', \r
+'invalid ip' => '无效的IP地址', \r
+'invalid keep time' => '保持时间必须是一个有效值', \r
+'invalid key' => '无效的key', \r
+'invalid logserver address' => '无效的syslog服务器地址', \r
+'invalid max lease time' => '无效的最大租期', \r
+'invalid maximum incoming size' => '无效的最大进入字节', \r
+'invalid maximum object size' => '无效的最大对象字节', \r
+'invalid maximum outgoing size' => '无效的最大流出字节', \r
+'invalid md5sum' => '无效的MD5校验值', \r
+'invalid minimum object size' => '无效的最小对象字节', \r
+'invalid netmask' => '无效的子网掩码', \r
+'invalid port' => '无效的端口', \r
+'invalid primary dns' => '无效的主DNS.', \r
+'invalid primary ntp' => '无效的主NTP服务器地址', \r
+'invalid secondary dns' => '无效的次DNS.', \r
+'invalid secondary ntp' => '无效的第二NTP服务器地址', \r
+'invalid start address' => '无效的起始地址', \r
+'invalid time entered' => '无效的时间输入', \r
+'invalid time period' => '无效的时间间隔', \r
+'invalid uplink speed' => '无效的上行连路速率', \r
+'invalid upstream proxy username or password setting' => '无效的代理服务器的用户名口令设定', \r
+'invalid vpi vpci' => '无效的VPI/VPCI设定', \r
+'invalid wins address' => '无效的WINS地址.', \r
+'invert' => '倒置', \r
+'ip address' => 'IP地址', \r
+'ip address in use' => 'IP地址已被使用', \r
+'ip alias added' => '外部IP别名增加', \r
+'ip alias changed' => '外部IP别名改变', \r
+'ip alias removed' => '外部IP别名删除', \r
+'ip info' => 'IP信息', \r
+'ipcop has now rebooted' => '防火墙正在重新启动.', \r
+'ipcop has now shutdown' => '防火墙正在关机.', \r
+'ipcop side' => '防火墙侧:', \r
+'ipcop side is invalid' => '防火墙侧无效', \r
+'ipcops hostname' => '防火墙的主机名', \r
+'ipinfo' => 'IP 信息', \r
+'isdn' => 'ISDN', \r
+'isdn settings' => '附加ISDN设定:', \r
+'isdn1' => '单路ISDN', \r
+'isdn2' => '双通道ISDN', \r
+'january' => '一月', \r
+'javascript menu error1' => '如果菜单不能够显示,请在"系统-语言设置"菜单中关闭Javascript ', \r
+'javascript menu error2' => 'javascript 错误', \r
+'july' => '七月', \r
+'june' => '六月', \r
+'kernel' => '系统核心', \r
+'kernel logging server' => '内核日志服务', \r
+'kernel version' => '系统核心版本:', \r
+'lan' => '局域网', \r
+'languagepurpose' => '选择所显示的语言:', \r
+'lease expires' => '租约到期', \r
+'legend' => '图例', \r
+'line' => 'line', \r
+'loaded modules' => '载入模组:', \r
+'local ntp server specified but not enabled' => '本地NTP服务没有激活', \r
+'local subnet' => '本地子网:', \r
+'local subnet is invalid' => '本地子网无效.', \r
+'local vpn hostname/ip' => '本地VPN 主机名/IP', \r
+'log' => '日志:', \r
+'log enabled' => '日志激活', \r
+'log server address' => 'Syslog 服务器', \r
+'log settings' => '日志设定', \r
+'log summaries' => '日志摘要', \r
+'log summary' => '日志摘要', \r
+'log viewer' => '日志查看', \r
+'log viewing options' => '日志查看选项', \r
+'logging server' => '日志服务', \r
+'loginlogout' => '登入/登出', \r
+'lookup failed' => '反向lookup失败', \r
+'low' => '低', \r
+'ls_dhcpd' => 'DHCP服务器:', \r
+'ls_free/swan' => 'VPN:', \r
+'ls_httpd' => 'HTTP服务器:', \r
+'ls_init' => 'Init:', \r
+'ls_kernel' => '内核和防火墙:', \r
+'ls_modprobe' => '模组载入:', \r
+'ls_pam_unix' => '本地用户登录:', \r
+'ls_sshd' => '远程用户登录:', \r
+'ls_syslogd' => '系统日志:', \r
+'mac address' => 'MAC地址', \r
+'mac address in use' => 'MAC地址已使用', \r
+'main page' => '首頁', \r
+'manual' => '手动', \r
+'manual control and status' => '手动控制和状态', \r
+'manually' => '手动', \r
+'march' => '三月', \r
+'marked' => '已标记', \r
+'max incoming size' => '最大流入大小 (KB):', \r
+'max lease time' => '最大租期(mins):', \r
+'max outgoing size' => '最大流出量(KB):', \r
+'max renewal time' => '最长更新时间', \r
+'max retries not set' => '最大重试未设定', \r
+'max size' => '最大目标大小 (KB):', \r
+'maximal' => 'maximal', \r
+'maximum retries' => '最大重试', \r
+'may' => '五月', \r
+'medium' => '中', \r
+'memory' => '内存:', \r
+'memory usage per' => 'Memory Usage per', \r
+'method' => '方式:', \r
+'min size' => '最小目标大小 (KB):', \r
+'minutes' => '分钟', \r
+'missing dat' => '未找到加密文档', \r
+'missing gz' => '未找到解密文档', \r
+'modem' => '调制解调器', \r
+'modem configuration' => 'Modem设置', \r
+'modem on com1' => '在 COM1 的Modem', \r
+'modem on com2' => '在 COM2 的Modem', \r
+'modem on com3' => '在 COM3 的Modem', \r
+'modem on com4' => '在 COM4 的Modem', \r
+'modem on com5' => '在 COM5 的Modem', \r
+'modem settings have errors' => 'Modem设定有误', \r
+'modem speaker on' => 'Modem的喇叭开启:', \r
+'modulation' => '调制', \r
+'month' => '月', \r
+'months' => '月', \r
+'mounted on' => '挂载', \r
+'name' => '名称', \r
+'name is invalid' => '名称无效', \r
+'name must only contain characters' => '名称只包含字符', \r
+'name too long' => '用户全称或系统主机名太长', \r
+'nat-traversal' => 'Nat阻断:', \r
+'net' => '网络', \r
+'net to net vpn' => '网络到网络的VPN', \r
+'netmask' => '掩码', \r
+'network' => '网络', \r
+'network added' => '定制网络已填加', \r
+'network configuration' => '网络配置', \r
+'network removed' => '定制网络移除', \r
+'network status information' => '网络状态信息', \r
+'network time' => '使用网络时间服务器 (NTP):', \r
+'network traffic graphs' => '网络流量图', \r
+'network updated' => '定制网络已升级', \r
+'networks settings' => '防火墙-网络设置', \r
+'newer' => '较新的', \r
+'next address' => '下一个地址', \r
+'no alcatelusb firmware' => '没有Alcatel USB firmware。请上传', \r
+'no cfg upload' => '没有数据被上传', \r
+'no dhcp lease' => '没有得到DHCP租期', \r
+'no eciadsl synch.bin file' => '没有ECI ADSL synch.bin文件,请上传', \r
+'no fritzdsl driver' => '没有Fritz!DSL驱动。请上传', \r
+'no information available' => '没有可用的信息', \r
+'no modem selected' => '没有选择调制解调器', \r
+'no set selected' => '没有设置被选择', \r
+'none found' => '找不到', \r
+'nonetworkname' => '没有网络名字被输入', \r
+'noservicename' => '没有服务名字被输入', \r
+'not a valid ca certificate' => '无效的CA证书', \r
+'not present' => '<B>不可用</B> 的驱动', \r
+'not running' => '没有运行', \r
+'november' => '十一月', \r
+'ntp configuration' => '网络时间服务器设定', \r
+'ntp must be enabled to have clients' => '网络时间服务器设定必须被激活来服务客户', \r
+'ntp server' => '网络时间服务器', \r
+'ntp syncro disabled' => '时间服务器同步被关闭', \r
+'ntp syncro enabled' => '时间服务器同步被激活', \r
+'ntpd restarted' => '重起时间服务', \r
+'number' => '数字:', \r
+'october' => '十月', \r
+'older' => '较旧的', \r
+'only digits allowed in holdoff field' => '延时只能填写数字', \r
+'only digits allowed in max retries field' => '最大重试次数栏只能是数字', \r
+'only digits allowed in the idle timeout' => '空闲超时只能是数字', \r
+'open to all' => 'Override external access to ALL', \r
+'openssl produced an error' => 'OpenSSL produced an error', \r
+'orange' => '橙色(DMZ)', \r
+'organization cant be empty' => '组织不能为空', \r
+'organization name' => '组织名', \r
+'organization too long' => '组织名不能太长;不能超过60个字符', \r
+'original' => '原有的', \r
+'other countries' => '其他国家', \r
+'other login script' => '其他登录脚本', \r
+'out' => 'Out', \r
+'outgoing traffic in bytes per second' => 'Outgoing Traffic in Bytes per Second', \r
+'package failed to install' => '包安装失败', \r
+'pap or chap' => 'PAP 或 CHAP', \r
+'password' => '密码:', \r
+'password contains illegal characters' => '密码包含非法字符', \r
+'password not set' => '密码未设定.', \r
+'password too short' => '密码太短.', \r
+'passwords do not match' => '密码不匹配', \r
+'passwords must be at least 6 characters in length' => '密码最少6个字符', \r
+'percentage' => '百分率', \r
+'persistent' => '持久', \r
+'phase1 group' => 'Phase1 组', \r
+'phonebook entry' => '电话本条目', \r
+'pkcs12 file password' => 'PKCS12文件密码', \r
+'port' => '端口', \r
+'port forwarding configuration' => '端口转发设定', \r
+'ports' => '端口', \r
+'pots' => 'POTS', \r
+'ppp setup' => 'PPP 設定', \r
+'pppoe' => 'PPPoE', \r
+'pppoe settings' => 'PPPOE设定:', \r
+'pptp settings' => 'PPTP设定', \r
+'pre-shared key is too short' => 'Pre-shared key太短', \r
+'present' => '驱动程序可用', \r
+'primary dns' => '主要 DNS:', \r
+'primary ntp server' => '主时间服务器', \r
+'primary wins server address' => '主WINS服务器地址', \r
+'priority' => '优先级', \r
+'profile' => '配置文件', \r
+'profile deleted' => '配置文件被删除', \r
+'profile has errors' => '配置文件有错', \r
+'profile made current' => '替换当前的配置文件', \r
+'profile name' => '配置文件名', \r
+'profile name not given' => '配置文件名未给出', \r
+'profile saved' => '配置文件已存档', \r
+'profiles' => '配置文件:', \r
+'proto' => '协议', \r
+'protocol' => '协议', \r
+'proxy' => '代理服务', \r
+'proxy access graphs' => '代理访问图', \r
+'proxy log viewer' => '查看代理日志', \r
+'proxy logs' => '代理日志', \r
+'proxy port' => '代理端口', \r
+'pulse' => '脉冲', \r
+'pulse dial' => '脉冲拨号:', \r
+'ram' => 'RAM', \r
+'read sectors' => 'Read Sectors', \r
+'reboot' => '重新启动', \r
+'rebooting' => '重起中..', \r
+'rebooting ipcop' => '重新启动防火墙', \r
+'reconnection' => '重新连接', \r
+'references' => '参考', \r
+'refresh' => '刷新', \r
+'refresh index page while connected' => '连接后刷新主页面', \r
+'refresh update list' => '刷新升级列表', \r
+'released' => '释放', \r
+'remark' => '备注', \r
+'remark title' => '备注:', \r
+'remote access' => '远程访问', \r
+'remote host/ip' => '远端主机/IP', \r
+'remote logging' => '远程访问纪录', \r
+'remote subnet' => '远端子网:', \r
+'remote subnet is invalid' => '远端子网无效.', \r
+'remove' => '删除', \r
+'remove ca certificate' => '删除CA证书', \r
+'reserved dst port' => '目标端口被保留使用:', \r
+'reserved src port' => '源端口被保留使用:', \r
+'reset' => '复位', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => '重新设置VPN配置,将删除所有的根证书主机证书和所有的基于连接的证书', \r
+'restart' => '重新启动', \r
+'restore' => '恢复', \r
+'restore defaults' => '恢复默认值', \r
+'restore hardware settings' => '恢复硬件设定', \r
+'reverse sort' => '反向排序', \r
+'root certificate' => '根证书', \r
+'root path' => '根路径', \r
+'router ip' => '路由IP地址', \r
+'routing table entries' => '路由表', \r
+'rsvd dst port overlap' => '目的端口范围和一个IPCop服务端口重叠:', \r
+'rsvd src port overlap' => '源端口范围和一个IPCop服务端口重叠:', \r
+'running' => '运行中', \r
+'save' => '保存', \r
+'save error' => '无法存储配置文件', \r
+'script name' => '脚本名称', \r
+'secondary dns' => '第二DNS:', \r
+'secondary ntp server' => '第二时间服务器', \r
+'secondary wins server address' => '第二个WINS服务器地址', \r
+'seconds' => '秒', \r
+'section' => '部分', \r
+'sectors read from disk per second' => 'Sectors read from disk per second', \r
+'sectors written to disk per second' => 'Sectors written to disk per second', \r
+'secure shell server' => 'SSH服务', \r
+'select' => '选择', \r
+'select dest net' => '选择一个目标网络', \r
+'select source net' => '选择一个源网络,如果你没有配置橙色或蓝色网络,你不能够使用非军事区', \r
+'send cr' => 'ISP要求发送回车符', \r
+'september' => '九月', \r
+'serial' => '串口', \r
+'service' => '服务', \r
+'service added' => '定制网络已填加', \r
+'service name' => '服务名称:', \r
+'service removed' => '定制网络移除', \r
+'service updated' => '定制', \r
+'servicename' => '服务名称', \r
+'services' => '服务:', \r
+'services settings' => '防火墙-网络设置', \r
+'set time now' => '设定现在的时间', \r
+'settings' => '设置', \r
+'shaping add options' => '增加服务', \r
+'shaping list options' => '流量控制服务', \r
+'shared' => '共享', \r
+'shared memory' => 'Shared Memory', \r
+'show ca certificate' => '显示CA证书', \r
+'show certificate' => '显示证书', \r
+'show host certificate' => '显示主机证书', \r
+'show root certificate' => '显示根证书', \r
+'shutdown' => '关机', \r
+'shutdown control' => '关机控制', \r
+'shutdown2' => '关机:', \r
+'shutting down' => '关闭中', \r
+'shutting down ipcop' => '正在关闭防火墙', \r
+'size' => '尺寸', \r
+'snort hits' => '符合入侵规则的总数', \r
+'sort ascending' => '升序', \r
+'sort descending' => '降序', \r
+'source' => '源', \r
+'source ip' => '源ip', \r
+'source ip and port' => '源IP:端口', \r
+'source ip bad' => '不是一个有效的IP地址或网络地址', \r
+'source ip in use' => '使用中的源IP:', \r
+'source net' => '源网络', \r
+'source network' => '源IP或网络(不填表示all)', \r
+'source port' => '源端口', \r
+'source port in use' => '使用中的源端口:', \r
+'source port numbers' => '源端口必须是有效的端口或端口范围', \r
+'source port overlaps' => '源端口范围和已存在的端口范围重叠', \r
+'speaker off' => '喇叭关闭:', \r
+'speaker on' => '喇叭打开:', \r
+'src port' => '源端口', \r
+'srcprt range overlaps' => '源端口范围和已定义的端口重叠', \r
+'srcprt within existing' => '源端口范围在已定义的端口范围中', \r
+'ssdmz pinholes' => '非军事区', \r
+'ssh access' => 'SSH访问', \r
+'ssh fingerprint' => '指纹', \r
+'ssh host keys' => 'SSH 主机密钥', \r
+'ssh is disabled' => 'SSH 目前关闭.', \r
+'ssh is enabled' => 'SSH 目前开启.重新启动', \r
+'ssh key' => '密钥', \r
+'ssh key size' => '大小(bits)', \r
+'ssh keys' => '允许公钥认证', \r
+'ssh no auth' => '你不允许任何授权方式;你将不能登录', \r
+'ssh passwords' => 'ssh密码认证', \r
+'ssh portfw' => '允许TCP 转发', \r
+'ssh1 disabled' => 'ssh1 关闭', \r
+'ssh1 enabled' => 'ssh1激活', \r
+'ssh1 support' => '支持SSH1', \r
+'ssnetwork status' => '网络状态', \r
+'sspasswords' => '密码', \r
+'ssport forwarding' => '端口转发', \r
+'ssproxy graphs' => '代理图', \r
+'sssystem status' => '系统状态', \r
+'sstraffic graphs' => '流量图', \r
+'standard login script' => '标准登录脚本', \r
+'start address' => '起始地址', \r
+'state or province' => '洲或省', \r
+'static ip' => '静态IP', \r
+'status' => '状态', \r
+'status information' => '状态信息', \r
+'stopped' => '停止', \r
+'subject' => '主题', \r
+'subnet is invalid' => '子网掩码无效', \r
+'successfully refreshed updates list' => '成功刷新更新列表.', \r
+'summaries kept' => '保存摘要', \r
+'swap' => '交换分区', \r
+'swap usage per' => 'Swap Usage per', \r
+'system cpu' => 'System CPU', \r
+'system cpu usage' => 'System CPU Usage', \r
+'system graphs' => '系统状态图', \r
+'system log viewer' => '查看系统日志', \r
+'system logs' => '系统日志', \r
+'system status information' => '系统状态信息', \r
+'telephone not set' => '电话未设置.', \r
+'the following update was successfully installed' => '以下更新已成功安装', \r
+'the statistics were last updated at' => '本次统计最新更新与', \r
+'there are updates' => '有几个可用的系统更新,请到"系统更新"查询更多信息', \r
+'there are updates available' => '有几个可用的系统更新,我们强烈建议你尽快安装.', \r
+'there was no file upload' => '没有文件上传', \r
+'this feature has been sponsored by' => '赞助人', \r
+'this field may be blank' => '这个字段可以为空', \r
+'this is not a valid archive' => '这不是一个有效的文件', \r
+'this is not an authorised update' => '这是一个未经授权的更新,或者是你的补丁列表太旧.', \r
+'this update is already installed' => '这个更新已经安装.', \r
+'time' => '时间', \r
+'time date manually reset' => '手动设定时间', \r
+'time server' => '时间服务', \r
+'timeout must be a number' => '超时时间必须是数字', \r
+'title' => '标题', \r
+'to install an update' => '要安装一个更新,请上传 .tgz.gpg文件:', \r
+'toggle enable disable' => '激活或禁用', \r
+'tone' => '音频', \r
+'tone dial' => '音频拨号', \r
+'traffic on' => 'Traffic on', \r
+'traffic shaping' => '流量控制', \r
+'traffic shaping settings' => '流量控制设定', \r
+'transfer limits' => '传输限制', \r
+'transparent on' => '透明', \r
+'type' => '类型', \r
+'unable to alter profiles while red is active' => '红色接口激活时无法改变配置文件', \r
+'unable to contact' => '无法连接到', \r
+'unencrypted' => '未加密', \r
+'unknown' => '未知', \r
+'unnamed' => '未命名', \r
+'update' => '升级', \r
+'update time' => '更新时间:', \r
+'update transcript' => '更新过程纪录', \r
+'updates' => '系统更新', \r
+'updates installed' => '更新已安装', \r
+'updates is old1' => '你的升级文件是', \r
+'updates is old2' => '很久没有升级了,我们建议你到<b>系统/升级</b>去进行更新', \r
+'uplink speed' => '上行链路速度(kbit/sec)', \r
+'upload' => '上传', \r
+'upload a certificate' => '上传证书:', \r
+'upload a certificate request' => '上传一个证书申请:', \r
+'upload ca certificate' => '上传CA证书', \r
+'upload fcdsl.o' => '上传fcdsl.o', \r
+'upload file' => '上传文件', \r
+'upload p12 file' => '上传PKCS12文件', \r
+'upload successful' => '上传成功', \r
+'upload synch.bin' => '上传synch.bin', \r
+'upload update file' => '上传更新文件:', \r
+'upstream password' => '上行数据流密码', \r
+'upstream proxy host:port' => '上游代理(主机:端口)', \r
+'upstream username' => '上行数据流用户名', \r
+'uptime and users' => '正常用户时间和用户', \r
+'usb modem on acm0' => 'USB调制解调器在ACM0', \r
+'usb modem on acm1' => 'USB调制解调器在ACM1', \r
+'usb modem on acm2' => 'USB调制解调器在ACM2', \r
+'usb modem on acm3' => 'USB调制解调器在ACM3', \r
+'use' => '使用', \r
+'use a pre-shared key' => '使用一个Pre-Shared Key:', \r
+'use dov' => '使用DOV (Data Over Voice):', \r
+'use ibod' => '使用按需带宽(iBOD):', \r
+'use only proposed settings' => '使用唯一推荐设置', \r
+'used' => '已使用', \r
+'used memory' => 'Used Memory', \r
+'used swap' => 'Used Swap', \r
+'user cpu' => 'User CPU', \r
+'user cpu usage' => 'User CPU Usage', \r
+'username' => '使用者名称:', \r
+'username not set' => '使用者名没有设置', \r
+'users department' => '用户的部门', \r
+'users email' => '用户的email地址', \r
+'users fullname or system hostname' => '用户的全称或系统主机', \r
+'valid root certificate already exists' => '一个有效的根证书已经存在', \r
+'vci number' => 'VCI Number:', \r
+'virtual private networking' => '虚拟专用网络', \r
+'vpi number' => 'VPI Number:', \r
+'vpn' => 'VPN', \r
+'vpn configuration main' => 'VPN设定-首页', \r
+'vpn on blue' => 'VPN on BLUE', \r
+'waiting to synchronize clock' => '等待同步时钟', \r
+'warning messages' => '警告信息', \r
+'web hits' => '符合条件的站点总数', \r
+'web proxy' => 'Web代理', \r
+'web proxy configuration' => 'Web代理设定', \r
+'web server' => 'Web服务', \r
+'website' => '网站', \r
+'week' => '星期', \r
+'weeks' => '周', \r
+'wildcards' => '通配字元', \r
+'wireless' => '无线网络', \r
+'wireless config added' => '无线网络设置增加', \r
+'wireless config changed' => '无线设置已更改', \r
+'wireless configuration' => '无线网络设置', \r
+'written sectors' => 'Written Sectors', \r
+'xtaccess all error' => '无法对所有人设定外部访问', \r
+'year' => '年', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => '你可以使用pre-shared key定义一个连接.<br />也可以已经有一个pre-shared key 的连接,或者增加一个', \r
+'your department' => '你的部门', \r
+'your e-mail' => '你的email地址', \r
\r
+); \r
\ No newline at end of file
diff --git a/langs/zt/CVS/Entries b/langs/zt/CVS/Entries
new file mode 100644 (file)
index 0000000..9030d32
--- /dev/null
@@ -0,0 +1 @@
+D/cgi-bin////
diff --git a/langs/zt/CVS/Repository b/langs/zt/CVS/Repository
new file mode 100644 (file)
index 0000000..104ec8e
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/zt
diff --git a/langs/zt/CVS/Root b/langs/zt/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/zt/CVS/Tag b/langs/zt/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/zt/cgi-bin/CVS/Entries b/langs/zt/cgi-bin/CVS/Entries
new file mode 100644 (file)
index 0000000..18dcaee
--- /dev/null
@@ -0,0 +1,2 @@
+/zt.pl/1.1.2.3/Thu Sep  8 21:09:17 2005//TIPCOP_v1_4_0
+D
diff --git a/langs/zt/cgi-bin/CVS/Repository b/langs/zt/cgi-bin/CVS/Repository
new file mode 100644 (file)
index 0000000..c7def60
--- /dev/null
@@ -0,0 +1 @@
+ipcop/langs/zt/cgi-bin
diff --git a/langs/zt/cgi-bin/CVS/Root b/langs/zt/cgi-bin/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/langs/zt/cgi-bin/CVS/Tag b/langs/zt/cgi-bin/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/langs/zt/cgi-bin/zt.pl b/langs/zt/cgi-bin/zt.pl
new file mode 100644 (file)
index 0000000..25b69f9
--- /dev/null
@@ -0,0 +1,802 @@
+# Chinese Traditional (zt) Data File \r
+#\r
+# This file is part of the IPCop Firewall.\r
+# \r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+# \r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# \r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+# \r
+# (c) The SmoothWall Team\r
+# \r
+# IPCop translation\r
+# (c) 2005 Ronald Ng \r
+#\r
+\r
+%tr = ( \r
+%tr, \r
\r
+'a ca certificate with this name already exists' => '這個CA證書名字已經存在', \r
+'a connection with this common name already exists' => '這個連接名稱已經存在', \r
+'a connection with this name already exists' => '這個連接名稱已經存在', \r
+'access allowed' => '訪問允許', \r
+'action' => '指令', \r
+'add' => '新增', \r
+'add a host' => '新增主機', \r
+'add a new rule' => '新增規則', \r
+'add network' => '新增網絡', \r
+'add new alias' => '新增別名', \r
+'add new lease' => '新增固定租約', \r
+'add service' => '新增服務', \r
+'add xtaccess' => '新增外部訪問', \r
+'admin user password has been changed' => 'admin密碼修改成功', \r
+'administrator user password' => 'admin密碼', \r
+'adsl settings' => 'ADSL 設定', \r
+'advanced' => '高級', \r
+'again' => '重試', \r
+'alcatelusb help' => '要使用Speedtouch USB 你必須上傳它的固件,請到speedtouch.com下載<b>Embedded Firmware</b> 解壓縮並上傳合適的你的程序: 當 Rev<4使用KQD6_3.xxx 或者 Rev=4使用ZZZL_3.xxx', \r
+'alcatelusb upload' => '上傳Speedtouch USB Firmware', \r
+'alias ip' => 'IP 別名', \r
+'aliases' => '別名', \r
+'aliases not active' => '紅色 (RED) 介面卡需要為靜態才能使別名 (Aliases) 生效', \r
+'all updates installed' => '全部更新已經安裝', \r
+'alt dialup' => '撥號', \r
+'alt home' => '主頁', \r
+'alt information' => '信息', \r
+'alt logs' => '日誌', \r
+'alt services' => '服務', \r
+'alt system' => '系統', \r
+'alt vpn' => '虛擬專用網', \r
+'april' => '四月', \r
+'archive not exist' => '設定文件不存在', \r
+'are you sure' => '你確定嗎?', \r
+'arp table entries' => 'ARP 列表:', \r
+'august' => '八月', \r
+'authentication' => '鑒定:', \r
+'automatic' => '自動', \r
+'available updates' => '可用更新:', \r
+'back' => '後退', \r
+'backup' => '備份到軟盤', \r
+'backup config floppy' => '備份設定軟盤', \r
+'backup configuration' => '備份設定:', \r
+'backup sets' => '備份設定', \r
+'backup to floppy' => '備份到軟盤', \r
+'bad characters in script field' => '腳本有錯誤的字符', \r
+'bad characters in the telephone number field' => '電話號碼中有非法字符', \r
+'bad destination range' => '目標通訊埠範圍第一個值應該小於等於第二個值', \r
+'bad ignore filter' => '有害信息忽略過濾:', \r
+'bad return code' => '返回錯誤代碼', \r
+'bad source range' => '源通訊埠範圍錯誤,第一個值應該大於等於第二個值', \r
+'beep when ppp connects or disconnects' => '當防火牆連接或斷開時發出警告聲', \r
+'behind a proxy' => '在代理之後:', \r
+'blue' => '藍色接口(無線)', \r
+'blue access' => '無線網絡', \r
+'blue interface' => '藍色接口', \r
+'broadcast' => '廣播', \r
+'broken pipe' => '壞通道', \r
+'buffers' => '磁碟緩存', \r
+'ca certificate' => 'CA證書', \r
+'ca name' => 'CA名稱', \r
+'cache management' => '緩存管理', \r
+'cache size' => '緩存容量 (MB):', \r
+'cached' => '緩存', \r
+'cancel' => '取消', \r
+'cannot enable both nat traversal and compression' => '不能夠啟動雙向NAT和壓縮', \r
+'cannot enable ntp without specifying primary' => '不指定根無法啟動NTP服務', \r
+'cannot specify secondary dns without specifying primary' => '不指定第一個DNS無法輸入第二個DNS', \r
+'cannot specify secondary ntp without specifying primary' => '不指定第一個NTP服務器無法輸入第二個NTP服務器', \r
+'cannot specify secondary wins without specifying primary' => '不能指定第二個WINS服務器,請先指定主WINS服務器', \r
+'cant change certificates' => '不能改變證書', \r
+'cant enable xtaccess' => '不能啟動外部訪問規則,因為端口轉發沒有打開', \r
+'cant start openssl' => '不能啟動OpenSSL', \r
+'caps all' => '全部', \r
+'capsclosed' => '關閉', \r
+'capsopen' => '開啟', \r
+'capswarning' => '警告', \r
+'cert' => '證書', \r
+'certificate' => '證書', \r
+'certificate authorities' => '認證授權', \r
+'certificate does not have a valid ca associated with it' => '證書不是一個有效的CA證書', \r
+'certificate file move failed' => '證書刪除失敗', \r
+'cfg restart' => '恢復備份建議重起系統', \r
+'chain' => '鏈', \r
+'change passwords' => '更改密碼', \r
+'check vpn lr' => '檢查', \r
+'city' => '城市', \r
+'clear cache' => '清除Cache', \r
+'clenabled' => '客戶端啟動', \r
+'click to disable' => '單擊關閉', \r
+'click to enable' => '單擊啟動', \r
+'clock has not been synchronized' => '時鐘沒同步', \r
+'clock last synchronized at' => '上次時間同步在', \r
+'common name' => '普通名稱', \r
+'compression' => '壓縮:', \r
+'computer to modem rate' => '電腦至調製解調器的速度:', \r
+'concentrator name' => '接入中心名稱:', \r
+'confirmation' => '確認', \r
+'connect on ipcop restart' => '用IPCop重啟連接:', \r
+'connect the modem' => '連接modem', \r
+'connect timeout' => '連接超時:', \r
+'connected' => '已連接', \r
+'connecting' => '連接中...', \r
+'connection' => '連接', \r
+'connection debugging' => '連接調試', \r
+'connection status and controlc' => '連接狀態和控制:', \r
+'connection tracking' => 'IPTables連接跟蹤', \r
+'connection type' => '連接類型', \r
+'connection type is invalid' => '連接類型無效', \r
+'connections' => '連接跟蹤', \r
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => '連接與CA關聯,刪除CA將刪除連接', \r
+'could not be opened' => '無法打開', \r
+'could not connect to' => '無法連接到', \r
+'could not connect to www ipcop org' => '無法連接到www.ipcop.org', \r
+'could not create directory' => '無法建立目錄.', \r
+'could not download latest patch list' => '無法下載最新的補丁列表', \r
+'could not download latest updates' => '無法下載最新的升級程序', \r
+'could not download the available updates list' => '無法下載可用升級列表.', \r
+'could not open available updates file' => '無法打開可用更新文檔.', \r
+'could not open installed updates file' => '無法打開已安裝的更新文檔', \r
+'could not open update information file' => '無法打開更新信息文檔,此文檔被破壞.', \r
+'could not retrieve common name from certificate' => '你不能從證書中恢復名稱', \r
+'country' => '國家', \r
+'create' => '創建', \r
+'credits' => '開發人員榜', \r
+'cron server' => 'CRON服務', \r
+'current' => '當前', \r
+'current aliases' => '當前別名:', \r
+'current dynamic leases' => '當前動態租約', \r
+'current fixed leases' => '當前固定租約', \r
+'current hosts' => '當前主機:', \r
+'current profile' => '當前配置文件:', \r
+'current rules' => '當前規則:', \r
+'custom networks' => '定制網絡', \r
+'custom services' => '定制服務', \r
+'dat without key' => '沒有密碼無法恢復一個加密文檔', \r
+'date' => '日期', \r
+'date not in logs' => '日期不在日誌中', \r
+'day' => '日', \r
+'day after' => '以後', \r
+'day before' => '以前', \r
+'days' => '日', \r
+'ddns hostname added' => '動態DNS主機名已增加', \r
+'ddns hostname removed' => '動態域名刪除', \r
+'december' => '十二月', \r
+'def lease time' => '默認租用時間', \r
+'default lease time' => '默認租期', \r
+'default networks' => '默認網絡', \r
+'default renewal time' => '默認更新時間', \r
+'default services' => '默認服務端口表', \r
+'delete' => '刪除', \r
+'demon login script' => '登錄腳本', \r
+'description' => '內容', \r
+'dest ip and port' => '目標.IP:通訊埠', \r
+'destination' => '目的', \r
+'destination ip' => '目的IP地址', \r
+'destination ip bad' => '無效的目的IP地址', \r
+'destination net' => '目標網絡', \r
+'destination port' => '目標通訊埠', \r
+'destination port numbers' => '目標通訊埠範圍必須是一個有效的值或範圍', \r
+'destination port overlaps' => '目標通訊埠範圍和已存在的通訊埠範圍重疊', \r
+'detail level' => '詳細程度', \r
+'device' => '設備', \r
+'dhcp configuration' => 'DHCP 設定', \r
+'dhcp mode' => 'DHCP 模式', \r
+'dhcp server' => 'DHCP服務', \r
+'dhcp server disabled' => 'DHCP 服務關閉', \r
+'dhcp server disabled on blue interface' => '藍色接口上DHCP服務關閉', \r
+'dhcp server enabled' => 'DHCP 啟動.重新啟動中', \r
+'dhcp server enabled on blue interface' => '藍色接口上DHCP服務開啟', \r
+'dial' => '撥號', \r
+'dial user password' => '撥號用戶密碼', \r
+'dial user password has been changed' => '撥號用戶密碼已經更改', \r
+'dialing mode' => '撥號方式:', \r
+'dialup settings' => '撥號設定', \r
+'disk usage' => '硬碟使用情況:', \r
+'display' => '顯示', \r
+'display hostname in window title' => '在windows title上顯示主機名', \r
+'dmz pinhole configuration' => 'DMZ設定', \r
+'dmz pinhole rule added' => 'DMZ規則成功增加', \r
+'dmz pinhole rule removed' => 'DMZ規則移除', \r
+'dmzpinholes for same net not necessary' => 'DMZ不能是同一個網絡,請選擇不同的源或目標網絡', \r
+'dns check failed' => 'DNS 檢查失敗', \r
+'dns proxy server' => 'DNS代理服務器', \r
+'dod' => '按需撥號', \r
+'dod for dns' => '按需撥號for DNS:', \r
+'dod waiting' => '按需撥號等待中', \r
+'domain' => '域', \r
+'domain name' => '域名', \r
+'domain name suffix' => '域名後綴:', \r
+'domain not set' => '域未設定.', \r
+'downlink speed' => '下傳速率(kbit/sec)', \r
+'download ca certificate' => '下載CA證書', \r
+'download certificate' => '下載證書', \r
+'download host certificate' => '下載主機證書', \r
+'download new ruleset' => '下載新的規則設定', \r
+'download pkcs12 file' => '下載PKCS12文件', \r
+'download root certificate' => '下載根證書', \r
+'driver' => '驅動程式', \r
+'dst port' => '目標通訊埠', \r
+'dstprt range overlaps' => '目標通訊埠範圍和一個已定義的通訊埠重疊', \r
+'dstprt within existing' => '目標通訊埠已存在', \r
+'duplicate ip' => '輸入了重複的IP地址', \r
+'duplicate mac' => '重複的MAC地址', \r
+'duplicate name' => '重複的名稱', \r
+'dynamic dns' => '動態 DNS', \r
+'dynamic dns client' => '動態DNS客戶端', \r
+'e-mail address too long' => '地址太長;不能超過40個字符', \r
+'eciadsl help' => '使用ECI ADSL 你必須上傳synch.bin 文件,請到ECIADSL網站下載並上傳<b>synch.bin</b>', \r
+'eciadsl upload' => '上傳ECI ADSL Synch.bin', \r
+'edit' => '更改', \r
+'edit a rule' => '編輯現有規則:', \r
+'edit advanced settings when done' => '完成後將編輯高級設定', \r
+'edit an existing alias' => '編輯現有別名', \r
+'edit an existing host' => '編輯一個存在的主機', \r
+'edit an existing lease' => '編輯現有的租期', \r
+'edit hosts' => '主機設定', \r
+'edit network' => '編輯網絡', \r
+'edit service' => '編輯服務', \r
+'empty' => '空白', \r
+'enable ignore filter' => '啟動忽略過濾器', \r
+'enable javascript' => '啟動Javascript', \r
+'enable wildcards' => '啟用通配符:', \r
+'enabled' => '啟用:', \r
+'enabled on' => '啟動', \r
+'enabledtitle' => '啟動', \r
+'encapsulation' => '封裝', \r
+'encrypted' => '加密', \r
+'end address' => '結束地址:', \r
+'err bk 1' => '創建文件錯誤', \r
+'err bk 2 key' => '創建key文件錯誤', \r
+'err bk 3 tar' => '追加文件錯誤', \r
+'err bk 4 gz' => '壓縮文件錯誤', \r
+'err bk 5 encrypt' => '加密文件錯誤', \r
+'err rs 1' => '恢復文件錯誤', \r
+'err rs 6 decrypt' => '解密文件錯誤', \r
+'err rs 7 untartst' => '無效的解密文件', \r
+'err rs 8 untar' => '解壓文件錯誤', \r
+'error messages' => '錯誤信息', \r
+'esp encryption' => 'ESP加密:', \r
+'esp grouptype' => 'ESP組類型:', \r
+'esp integrity' => 'ESP 完整性:', \r
+'esp keylife' => 'ESP密鑰存活時間:', \r
+'esp keylife should be between 1 and 24 hours' => 'ESP密鑰存活時間在1到24小時.', \r
+'every' => '每一個', \r
+'expected' => '預期的', \r
+'expires' => '過期', \r
+'export' => '導出', \r
+'external access' => '外部訪問', \r
+'external access configuration' => '外部訪問配置', \r
+'external access rule added' => '外部訪問規則添加成功', \r
+'external access rule removed' => '外部訪問規則移除成功;重新啟動服務', \r
+'external aliases configuration' => '外部別名配置', \r
+'february' => '二月', \r
+'filename' => '文件名', \r
+'filesystem full' => '文件系統已滿', \r
+'firewall' => '防火牆', \r
+'firewall hits' => '防火牆命中總數', \r
+'firewall log' => '防火牆日誌', \r
+'firewall log viewer' => '防火牆日誌查看', \r
+'firewall logs' => '防火牆日誌', \r
+'firmware' => '固件', \r
+'firmware upload' => '上傳固件/驅動', \r
+'fixed ip lease added' => '增加固定IP租約', \r
+'fixed ip lease modified' => '固定IP租期修改', \r
+'fixed ip lease removed' => '刪除固定IP租約', \r
+'force update' => '強制更新', \r
+'forwarding rule added' => '轉發規則添加;重新啟動服務', \r
+'forwarding rule removed' => '轉發規則被移除;重新啟動服務', \r
+'forwarding rule updated' => '轉發規則已升級;重新啟動服務', \r
+'free' => '剩餘', \r
+'fritzdsl help' => '對於Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb 型號的,你必須上傳驅動<b>fcdsl-(your_version).tgz</b>', \r
+'fritzdsl upload' => '上傳Fritz!DSL驅動', \r
+'gateway' => '網關', \r
+'gateway ip' => '網關IP', \r
+'generate a certificate' => '產生一個證書:', \r
+'generate root/host certificates' => '產生根/主機證書', \r
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => '產生根/主機證書需要較長時間,尤其是老機器,請耐心等待', \r
+'global settings' => '整體設定', \r
+'graph' => '圖表', \r
+'green' => '綠色接口(本地)', \r
+'green interface' => '綠色接口', \r
+'gui settings' => '語言設定', \r
+'gz with key' => '只有加密文檔才能在本機恢復', \r
+'hangup' => '掛斷', \r
+'hangup string' => '掛斷:', \r
+'high' => '高', \r
+'high memory usage' => '高端內存使用', \r
+'holdoff' => '延時(秒)', \r
+'host' => '主機', \r
+'host certificate' => '主機證書', \r
+'host configuration' => '主機設定', \r
+'host ip' => '主機IP', \r
+'host to net vpn' => '主機到網絡的VPN', \r
+'hostname' => '主機名', \r
+'hostname and domain already in use' => '主機名和域已使用', \r
+'hostname cant be empty' => '主機名不能為空白', \r
+'hostname not set' => '沒有設定主機名', \r
+'hosts config added' => '主機設定增加', \r
+'hosts config changed' => '主機設定改變', \r
+'hours' => '小時', \r
+'hours2' => '小時', \r
+'ibod for dual isdn only' => 'iBOD 只能使用雙路ISDN.', \r
+'icmp selected but no type' => '選擇ICMP協議,但沒有指定ICMP類型', \r
+'icmp type' => 'ICMP類型', \r
+'idle' => '閒置', \r
+'idle timeout' => '閒置超時', \r
+'idle timeout not set' => '沒有設定空閒超時', \r
+'ids log viewer' => '查看入侵日誌', \r
+'ids logs' => '入侵檢測日誌', \r
+'iface' => '接口', \r
+'ignore filter' => '忽略過濾', \r
+'ike encryption' => 'IKE加密:', \r
+'ike grouptype' => 'IKE組類型:', \r
+'ike integrity' => 'IKE完整性:', \r
+'ike lifetime' => 'IKE存活期:', \r
+'ike lifetime should be between 1 and 8 hours' => 'IKE存活時間在1到8小時', \r
+'import' => '導入', \r
+'info' => '信息', \r
+'init string' => '初始化字符串:', \r
+'insert floppy' => '插入一張格式化過的軟碟,點擊<i>備份到軟碟</i> 開始備份.<p>', \r
+'install new update' => '安裝新的更新:', \r
+'installed' => '已安裝', \r
+'installed updates' => '已安裝更新:', \r
+'instant update' => '直接更新', \r
+'interface' => '介面', \r
+'interfaces' => '介面:', \r
+'internet' => '互聯網', \r
+'intrusion detection' => '入侵檢測', \r
+'intrusion detection system' => '入侵檢測系統', \r
+'intrusion detection system log viewer' => '查看入侵檢測系統日誌', \r
+'intrusion detection system2' => '入侵檢測系統:', \r
+'invalid broadcast ip' => '無效的廣播IP', \r
+'invalid cache size' => 'cache 大小無效', \r
+'invalid characters found in pre-shared key' => '在共享密鑰發現無效的字符', \r
+'invalid date entered' => '無效的日期輸入', \r
+'invalid default lease time' => '無效的默認租期', \r
+'invalid domain name' => '無效的域名.', \r
+'invalid downlink speed' => '無效的下行鏈路速率', \r
+'invalid end address' => '無效的end地址', \r
+'invalid fixed ip address' => '無效的固定IP地址', \r
+'invalid fixed mac address' => '無效的固定MAC地址', \r
+'invalid hostname' => '無效的主機名.', \r
+'invalid input' => '無效的輸入', \r
+'invalid input for authentication method' => '輸入的鑒定方法無效', \r
+'invalid input for city' => '輸入的城市無效', \r
+'invalid input for country' => '輸入的國家無效', \r
+'invalid input for department' => '輸入的部門無效', \r
+'invalid input for e-mail address' => '輸入的email地址無效', \r
+'invalid input for esp keylife' => 'ESP的密鑰存活期無效', \r
+'invalid input for hostname' => '輸入的主機名無效', \r
+'invalid input for ike lifetime' => '輸入的IKE存活期無效', \r
+'invalid input for name' => '輸入的用戶全稱或系統主機名無效', \r
+'invalid input for organization' => '輸入的組織無效', \r
+'invalid input for remote host/ip' => '輸入的遠端主機名/ip無效', \r
+'invalid input for state or province' => '輸入的州或省無效', \r
+'invalid ip' => '無效的IP地址', \r
+'invalid keep time' => '保持時間必須是一個有效值', \r
+'invalid key' => '無效的key', \r
+'invalid logserver address' => '無效的syslog服務器地址', \r
+'invalid max lease time' => '無效的最大租期', \r
+'invalid maximum incoming size' => '無效的最大進入字節', \r
+'invalid maximum object size' => '無效的最大對像字節', \r
+'invalid maximum outgoing size' => '無效的最大流出字節', \r
+'invalid md5sum' => '無效的MD5校驗值', \r
+'invalid minimum object size' => '無效的最小對像字節', \r
+'invalid netmask' => '無效的子網掩碼', \r
+'invalid port' => '無效的端口', \r
+'invalid primary dns' => '無效的主DNS.', \r
+'invalid primary ntp' => '無效的主NTP服務器地址', \r
+'invalid secondary dns' => '無效的次DNS.', \r
+'invalid secondary ntp' => '無效的第二NTP服務器地址', \r
+'invalid start address' => '無效的起始地址', \r
+'invalid time entered' => '無效的時間輸入', \r
+'invalid time period' => '無效的時間間隔', \r
+'invalid uplink speed' => '無效的上行連路速率', \r
+'invalid upstream proxy username or password setting' => '無效的代理服務器的用戶名口令設定', \r
+'invalid vpi vpci' => '無效的VPI/VPCI設定', \r
+'invalid wins address' => '無效的WINS地址.', \r
+'invert' => '倒置', \r
+'ip address' => 'IP地址', \r
+'ip address in use' => 'IP地址已被使用', \r
+'ip alias added' => '外部IP別名增加', \r
+'ip alias changed' => '外部IP別名改變', \r
+'ip alias removed' => '外部IP別名刪除', \r
+'ip info' => 'IP信息', \r
+'ipcop has now rebooted' => '防火牆正在重新啟動.', \r
+'ipcop has now shutdown' => '防火牆正在關機.', \r
+'ipcop side' => '防火牆側:', \r
+'ipcop side is invalid' => '防火牆側無效', \r
+'ipcops hostname' => '防火牆的主機名', \r
+'ipinfo' => 'IP 信息', \r
+'isdn settings' => '附加ISDN設定:', \r
+'isdn1' => '單路ISDN', \r
+'isdn2' => '雙通道ISDN', \r
+'january' => '一月', \r
+'javascript menu error1' => '如果菜單不能夠顯示,請在系統-語言設定菜單中關閉Javascript', \r
+'javascript menu error2' => '錯誤', \r
+'july' => '七月', \r
+'june' => '六月', \r
+'kernel' => '系統核心', \r
+'kernel logging server' => '內核日誌服務', \r
+'kernel version' => '系統核心版本:', \r
+'lan' => '局域網', \r
+'languagepurpose' => '選擇所顯示的語言:', \r
+'lease expires' => '租約到期', \r
+'legend' => '圖例', \r
+'loaded modules' => '載入模組:', \r
+'local ntp server specified but not enabled' => '本地NTP服務沒有啟動', \r
+'local subnet' => '本地子網:', \r
+'local subnet is invalid' => '本地子網無效.', \r
+'local vpn hostname/ip' => '本地VPN 主機名/IP', \r
+'log' => '日誌:', \r
+'log enabled' => '日誌激活', \r
+'log server address' => 'Syslog 服務器', \r
+'log settings' => '日誌設定', \r
+'log summaries' => '日誌摘要', \r
+'log summary' => '日誌摘要', \r
+'log viewer' => '日誌查看', \r
+'log viewing options' => '日誌查看選項', \r
+'logging server' => '日誌服務', \r
+'loginlogout' => '登入/登出', \r
+'lookup failed' => '反向lookup失敗', \r
+'low' => '低', \r
+'ls_dhcpd' => 'DHCP服務器:', \r
+'ls_httpd' => 'HTTP服務器:', \r
+'ls_kernel' => '內核和防火牆:', \r
+'ls_modprobe' => '模組載入:', \r
+'ls_pam_unix' => '本地用戶登錄:', \r
+'ls_sshd' => '遠程用戶登錄:', \r
+'ls_syslogd' => '系統日誌:', \r
+'mac address' => 'MAC地址', \r
+'mac address in use' => 'MAC地址已使用', \r
+'main page' => '首頁', \r
+'manual' => '手動', \r
+'manual control and status' => '手動控制和狀態', \r
+'manually' => '手動', \r
+'march' => '三月', \r
+'marked' => '已標記', \r
+'max incoming size' => '最大流入大小(KB):', \r
+'max lease time' => '最大租期(mins):', \r
+'max outgoing size' => '最大流出量(KB):', \r
+'max renewal time' => '最長更新時間', \r
+'max retries not set' => '最大重試未設定', \r
+'max size' => '最大目標大小(KB):', \r
+'maximum retries' => '最大重試', \r
+'may' => '五月', \r
+'medium' => '中', \r
+'memory' => '內存:', \r
+'method' => '方式:', \r
+'min size' => '最小目標大小(KB):', \r
+'minutes' => '分鐘', \r
+'missing dat' => '未找到加密文檔', \r
+'missing gz' => '未找到解密文檔', \r
+'modem' => '調製解調器', \r
+'modem configuration' => 'Modem設定', \r
+'modem on com1' => '在 COM1 的Modem', \r
+'modem on com2' => '在 COM2 的Modem', \r
+'modem on com3' => '在 COM3 的Modem', \r
+'modem on com4' => '在 COM4 的Modem', \r
+'modem on com5' => '在 COM5 的Modem', \r
+'modem settings have errors' => 'Modem設定有誤', \r
+'modem speaker on' => 'Modem的喇叭開啟:', \r
+'modulation' => '調製', \r
+'month' => '月', \r
+'months' => '月', \r
+'mounted on' => '掛載', \r
+'name' => '名稱', \r
+'name is invalid' => '名稱無效', \r
+'name must only contain characters' => '名稱只包含字符', \r
+'name too long' => '用戶全稱或系統主機名稱太長', \r
+'nat-traversal' => 'Nat阻斷:', \r
+'net' => '網絡', \r
+'net to net vpn' => '網絡到網絡的VPN', \r
+'netmask' => '掩碼', \r
+'network' => '網絡', \r
+'network added' => '定制網絡已填加', \r
+'network configuration' => '網絡配置', \r
+'network removed' => '定制網絡移除', \r
+'network status information' => '網絡狀態信息', \r
+'network time' => '使用網絡時間服務器 (NTP):', \r
+'network traffic graphs' => '網絡流量圖', \r
+'network updated' => '定制網絡已升級', \r
+'networks settings' => '防火牆-網絡設定', \r
+'newer' => '較新的', \r
+'next address' => '下一個地址', \r
+'no alcatelusb firmware' => '沒有Alcatel USB firmware。請上傳', \r
+'no cfg upload' => '沒有數據被上傳', \r
+'no dhcp lease' => '沒有得到DHCP租期', \r
+'no eciadsl synch.bin file' => '沒有ECI ADSL synch.bin文件,請上傳', \r
+'no fritzdsl driver' => '沒有Fritz!DSL驅動程式。請上傳', \r
+'no information available' => '沒有可用的信息', \r
+'no modem selected' => '沒有選擇調製解調器', \r
+'no set selected' => '沒有設定被選擇', \r
+'none found' => '找不到', \r
+'nonetworkname' => '沒有網絡名字被輸入', \r
+'noservicename' => '沒有服務名字被輸入', \r
+'not a valid ca certificate' => '無效的CA證書', \r
+'not present' => '<b>不可用</b> 的驅動', \r
+'november' => '十一月', \r
+'ntp configuration' => '網絡時間服務器設定', \r
+'ntp must be enabled to have clients' => '網絡時間服務器設定必須被啟動來服務客戶', \r
+'ntp server' => '網絡時間服務器', \r
+'ntp syncro disabled' => '時間服務器同步被關閉', \r
+'ntp syncro enabled' => '時間服務器同步被啟動', \r
+'ntpd restarted' => '重起時間服務', \r
+'number' => '數字:', \r
+'october' => '十月', \r
+'older' => '較舊的', \r
+'only digits allowed in holdoff field' => '延時只能填寫數字', \r
+'only digits allowed in max retries field' => '最大重試次數欄只能是數字', \r
+'only digits allowed in the idle timeout' => '空閒超時只能是數字', \r
+'orange' => '橙色(DMZ)', \r
+'organization cant be empty' => '組織不能為空', \r
+'organization name' => '組織名', \r
+'organization too long' => '組織名不能太長;不能超過60個字符', \r
+'original' => '原有的', \r
+'other countries' => '其他國家', \r
+'other login script' => '其他登錄腳本', \r
+'package failed to install' => '包裝軟體安裝失敗', \r
+'pap or chap' => 'PAP 或 CHAP', \r
+'password' => '密碼:', \r
+'password contains illegal characters' => '密碼包含非法字符', \r
+'password not set' => '密碼未設定.', \r
+'password too short' => '密碼太短.', \r
+'passwords do not match' => '密碼不符', \r
+'passwords must be at least 6 characters in length' => '密碼最少6個字符', \r
+'percentage' => '百分率', \r
+'persistent' => '持久', \r
+'phase1 group' => 'Phase1 組', \r
+'phonebook entry' => '電話簿條目', \r
+'pkcs12 file password' => 'PKCS12文件密碼', \r
+'port' => '通訊埠', \r
+'port forwarding configuration' => '通訊埠轉發設定', \r
+'ports' => '通訊埠', \r
+'ppp setup' => 'PPP 設定', \r
+'pppoe settings' => 'PPPoE設定:', \r
+'pptp settings' => 'PPTP設定:', \r
+'pre-shared key is too short' => 'Pre-shared key太短', \r
+'present' => '驅動程式可用', \r
+'primary dns' => '主要 DNS:', \r
+'primary ntp server' => '主時間服務器', \r
+'primary wins server address' => '主WINS服務器地址', \r
+'priority' => '優先級', \r
+'profile' => '設定文件', \r
+'profile deleted' => '設定文件被刪除', \r
+'profile has errors' => '設定文件有錯', \r
+'profile made current' => '替換當前的配置文件', \r
+'profile name' => '設定文件名', \r
+'profile name not given' => '設定文件名未給出', \r
+'profile saved' => '設定文件已存檔', \r
+'profiles' => '設定文件:', \r
+'proto' => '協議', \r
+'protocol' => '協議', \r
+'proxy' => '代理服務', \r
+'proxy access graphs' => '代理訪問圖', \r
+'proxy log viewer' => '查看代理日誌', \r
+'proxy logs' => '代理日誌', \r
+'proxy port' => '代理端口', \r
+'pulse' => '脈衝', \r
+'pulse dial' => '脈衝撥號:', \r
+'reboot' => '重新啟動', \r
+'rebooting' => '重起中...', \r
+'rebooting ipcop' => '重新啟動防火牆', \r
+'reconnection' => '重新連接', \r
+'references' => '參考', \r
+'refresh' => '更新', \r
+'refresh index page while connected' => '連接後刷新主頁面', \r
+'refresh update list' => '更新升級列表', \r
+'released' => '釋放', \r
+'remark' => '備註', \r
+'remark title' => '備註:', \r
+'remote access' => '遠程訪問', \r
+'remote host/ip' => '遠端主機/IP', \r
+'remote logging' => '遠程訪問紀錄', \r
+'remote subnet' => '遠端子網:', \r
+'remote subnet is invalid' => '遠端子網無效.', \r
+'remove' => '刪除', \r
+'remove ca certificate' => '刪除CA證書', \r
+'reserved dst port' => '目標通訊埠被保留使用:', \r
+'reserved src port' => '源通訊埠被保留使用:', \r
+'reset' => '復位', \r
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => '重新設定VPN配置,將刪除所有的根證書主機證書和所有的基於連接的證書', \r
+'restart' => '重新啟動', \r
+'restore' => '恢復', \r
+'restore defaults' => '恢復默認值', \r
+'restore hardware settings' => '恢復硬件設定', \r
+'reverse sort' => '反向排序', \r
+'root certificate' => '根證書', \r
+'root path' => '根路徑', \r
+'router ip' => '路由IP地址', \r
+'routing table entries' => '路由表', \r
+'rsvd dst port overlap' => '目的通訊埠範圍和一個IPCop服務通訊埠重疊:', \r
+'rsvd src port overlap' => '源通訊埠範圍和一個IPCop服務通訊埠重疊:', \r
+'running' => '運行中', \r
+'save' => '保存', \r
+'save error' => '無法存儲配置文件', \r
+'script name' => '腳本名稱', \r
+'secondary dns' => '第二DNS:', \r
+'secondary ntp server' => '第二時間服務器', \r
+'secondary wins server address' => '第二個WINS服務器地址', \r
+'seconds' => '秒', \r
+'section' => '部分', \r
+'select' => '選擇', \r
+'select dest net' => '選擇一個目標網絡', \r
+'select source net' => '選擇一個源網絡,如果你沒有配置橙色或藍色網絡,你不能夠使用DMZ', \r
+'send cr' => 'ISP要求發送回車符', \r
+'september' => '九月', \r
+'serial' => '串口', \r
+'service' => '服務', \r
+'service added' => '定制網絡已填加', \r
+'service name' => '服務名稱:', \r
+'service removed' => '定制網絡移除', \r
+'service updated' => '定制', \r
+'servicename' => '服務名稱', \r
+'services' => '服務:', \r
+'services settings' => '防火牆-服務設定', \r
+'set time now' => '設定現在的時間', \r
+'settings' => '設定', \r
+'shaping add options' => '增加服務', \r
+'shaping list options' => '流量控制服務', \r
+'shared' => '共享', \r
+'show ca certificate' => '顯示CA證書', \r
+'show certificate' => '顯示證書', \r
+'show host certificate' => '顯示主機證書', \r
+'show root certificate' => '顯示根證書', \r
+'shutdown' => '關機', \r
+'shutdown control' => '關機控制', \r
+'shutdown2' => '關機:', \r
+'shutting down' => '關閉中', \r
+'shutting down ipcop' => '正在關閉防火牆', \r
+'size' => '尺寸', \r
+'snort hits' => '符合入侵規則的總數', \r
+'sort ascending' => '升序', \r
+'sort descending' => '降序', \r
+'source' => '源', \r
+'source ip' => '源IP', \r
+'source ip and port' => '源IP:通訊埠', \r
+'source ip bad' => '不是一個有效的IP地址或網絡地址', \r
+'source ip in use' => '使用中的源IP:', \r
+'source net' => '源網絡', \r
+'source network' => '源IP或網絡(不填表示all):', \r
+'source port' => '源通訊埠', \r
+'source port in use' => '使用中的源通訊埠:', \r
+'source port numbers' => '源通訊埠必須是有效的通訊埠或通訊埠範圍', \r
+'source port overlaps' => '源通訊埠範圍和已存在的通訊埠範圍重疊', \r
+'speaker off' => '喇叭關閉:', \r
+'speaker on' => '喇叭打開:', \r
+'src port' => '源通訊埠', \r
+'srcprt range overlaps' => '源通訊埠範圍和已定義的通訊埠重疊', \r
+'srcprt within existing' => '源通訊埠範圍在已定義的通訊埠範圍中', \r
+'ssh access' => 'SSH訪問', \r
+'ssh fingerprint' => '指紋', \r
+'ssh host keys' => 'SSH 主機密鑰', \r
+'ssh is disabled' => 'SSH 目前關閉.', \r
+'ssh is enabled' => 'SSH 目前開啟.重新啟動', \r
+'ssh key' => '密鑰', \r
+'ssh key size' => '大小(bits)', \r
+'ssh keys' => '允許公鑰認證', \r
+'ssh no auth' => '你不允許任何授權方式;你將不能登錄', \r
+'ssh portfw' => '允許TCP 轉發', \r
+'ssh1 support' => '支持SSH1', \r
+'ssnetwork status' => '網絡狀態', \r
+'sspasswords' => '密碼', \r
+'ssport forwarding' => '通訊埠轉發', \r
+'ssproxy graphs' => '代理圖', \r
+'sssystem status' => '系統狀態', \r
+'sstraffic graphs' => '流量圖', \r
+'standard login script' => '標準登錄腳本', \r
+'start address' => '起始地址:', \r
+'state or province' => '洲或省', \r
+'static ip' => '靜態IP', \r
+'status' => '狀態', \r
+'status information' => '狀態信息', \r
+'stopped' => '停止', \r
+'subject' => '主題', \r
+'subnet is invalid' => '子網掩碼無效', \r
+'successfully refreshed updates list' => '成功刷新更新列表.', \r
+'summaries kept' => '保存摘要', \r
+'swap' => '交換分區', \r
+'system graphs' => '系統狀態圖', \r
+'system log viewer' => '查看系統日誌', \r
+'system logs' => '系統日誌', \r
+'system status information' => '系統狀態信息', \r
+'telephone not set' => '電話未設定.', \r
+'the following update was successfully installed' => '以下更新已成功安裝', \r
+'the statistics were last updated at' => '本次統計最新更新與', \r
+'there are updates' => '有幾個可用的系統更新,請到"系統更新"查詢更多信息', \r
+'there are updates available' => '有幾個可用的系統更新,我們強烈建議你盡快安裝.', \r
+'there was no file upload' => '沒有文件上傳', \r
+'this feature has been sponsored by' => '贊助人', \r
+'this field may be blank' => '這個字段可以為空白', \r
+'this is not a valid archive' => '這不是一個有效的文件', \r
+'this is not an authorised update' => '這是一個未經授權的更新,或者是你的更新列表太舊.', \r
+'this update is already installed' => '這個更新已經安裝.', \r
+'time' => '時間', \r
+'time date manually reset' => '手動設定時間', \r
+'time server' => '時間服務', \r
+'timeout must be a number' => '超時時間必須是數字', \r
+'title' => '標題', \r
+'to install an update' => '要安裝一個更新,請上傳 .tgz.gpg文件:', \r
+'toggle enable disable' => '啟動或禁用', \r
+'tone' => '音頻', \r
+'tone dial' => '音頻撥號:', \r
+'traffic shaping' => '流量控制', \r
+'traffic shaping settings' => '流量控制設定', \r
+'transfer limits' => '傳輸限制', \r
+'transparent on' => '透明', \r
+'type' => '類型', \r
+'unable to alter profiles while red is active' => '紅色接口啟動時無法改變配置文件', \r
+'unable to contact' => '無法連接到', \r
+'unencrypted' => '未加密', \r
+'unknown' => '未知', \r
+'unnamed' => '未命名', \r
+'update' => '升級', \r
+'update time' => '更新時間:', \r
+'update transcript' => '更新過程紀錄', \r
+'updates' => '系統更新', \r
+'updates installed' => '更新已安裝', \r
+'updates is old1' => '你的升級文件是', \r
+'updates is old2' => '很久沒有升級了,我們建議你到<b>系統/升級</b>去進行更新', \r
+'uplink speed' => '上傳速度(kbit/sec)', \r
+'upload' => '上傳', \r
+'upload a certificate' => '上傳證書:', \r
+'upload a certificate request' => '上傳一個證書申請:', \r
+'upload ca certificate' => '上傳CA證書', \r
+'upload file' => '上傳文件', \r
+'upload p12 file' => '上傳PKCS12文件', \r
+'upload successful' => '上傳成功', \r
+'upload synch.bin' => '上傳synch.bin', \r
+'upload update file' => '上傳更新文件:', \r
+'upstream password' => '上游數據流密碼:', \r
+'upstream proxy host:port' => '上游代理(主機:端口)', \r
+'upstream username' => '上游數據流用戶名:', \r
+'uptime and users' => '正常用戶時間和用戶', \r
+'usb modem on acm0' => 'USB調製解調器在ACM0', \r
+'usb modem on acm1' => 'USB調製解調器在ACM1', \r
+'usb modem on acm2' => 'USB調製解調器在ACM2', \r
+'usb modem on acm3' => 'USB調製解調器在ACM3', \r
+'use' => '使用', \r
+'use a pre-shared key' => '使用一個Pre-Shared Key:', \r
+'use dov' => '使用DOV (Data Over Voice):', \r
+'use ibod' => '使用按需帶寬(iBOD):', \r
+'use only proposed settings' => '使用唯一推薦設定', \r
+'used' => '已使用', \r
+'username' => '使用者名稱:', \r
+'username not set' => '使用者名沒有設定', \r
+'users department' => '用戶的部門', \r
+'users email' => '用戶的email地址', \r
+'users fullname or system hostname' => '用戶的全稱或系統主機名稱', \r
+'valid root certificate already exists' => '一個有效的根證書已經存在', \r
+'virtual private networking' => '虛擬專用網絡', \r
+'vpn configuration main' => 'VPN設定-首頁', \r
+'waiting to synchronize clock' => '等待同步時鐘', \r
+'warning messages' => '警告信息', \r
+'web hits' => '符合條件的站點總數', \r
+'web proxy' => 'Web代理', \r
+'web proxy configuration' => 'Web代理設定', \r
+'web server' => 'Web服務', \r
+'website' => '網站', \r
+'week' => '星期', \r
+'weeks' => '周', \r
+'wildcards' => '通配字元', \r
+'wireless' => '無線網絡', \r
+'wireless config added' => '無線網絡設定增加', \r
+'wireless config changed' => '無線設定已更改', \r
+'wireless configuration' => '無線網絡設定', \r
+'xtaccess all error' => '無法對所有人設定外部訪問', \r
+'year' => '年', \r
+'you can only define one roadwarrior connection when using pre-shared key authentication' => '你可以使用pre-shared key定義一個連接.<br />也可以已經有一個pre-shared key 的連接,或者增加一個', \r
+'your department' => '你的部門', \r
+'your e-mail' => '你的email地址', \r
\r
+); \r
\ No newline at end of file
diff --git a/lfs/3c5x9setup b/lfs/3c5x9setup
new file mode 100644 (file)
index 0000000..6d491c2
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: 3c5x9setup,v 1.1.2.3 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.00
+
+THISAPP    = 3c5x9setup-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://g.esp.free.fr/download
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects= $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 44fb086cb0540d38cc908950408873f6
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && cc -O -Wall -o 3c5x9setup 3c5x9setup.c
+       cd $(DIR_APP) && install -c -m 0755 3c5x9setup /usr/sbin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/3cp4218 b/lfs/3cp4218
new file mode 100644 (file)
index 0000000..3a1e218
--- /dev/null
@@ -0,0 +1,117 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: 3cp4218,v 1.12.2.6 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2003-10-22
+
+THISAPP    = 3cp4218-$(VER)
+DL_FILE    = $(THISAPP)-src.tgz
+DL_FROM    = $(URL_SFNET)/cp4218
+DIR_APP    = $(DIR_SRC)/3cp4218
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 7a6a8162b9ddc14be814ee59dc3a78ea
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && for i in Makefile */Makefile; do \
+           sed -i \
+             -e 's/$$(shell uname -m)/$(MACHINE)/' \
+             -e 's/$$(shell uname -r)/$(KVER)/' \
+             -e 's%^.*DEST_KERNEL_MAIN =.*$$%DEST_KERNEL_MAIN = 2.4%' \
+             -e 's/depmod -a//' $$i; \
+           done
+else
+       cd $(DIR_APP) && for i in Makefile */Makefile; do \
+           sed -i \
+             -e 's/$$(shell uname -m)/$(MACHINE)/' \
+             -e 's/$$(shell uname -r)/$(KVER)-smp/' \
+             -e 's%^.*DEST_KERNEL_MAIN =.*$$%DEST_KERNEL_MAIN = 2.4%' \
+             -e 's/depmod -a//' $$i; \
+           done
+endif
+       if [ "$(MACHINE)" = "alpha" ]; then \
+               cd $(DIR_APP) && for i in Makefile */Makefile; do \
+               sed -i -e 's/-march=$$(DEST_MACHINE)//' $$i; \
+               done; \
+       fi
+       cd $(DIR_APP) && make CC="$(KGCC)" 3COM_MODULE2
+ifeq "$(SMP)" ""
+       rm -f /lib/modules/$(KVER)/kernel/drivers/usb/3cp4218dbg.o
+       find /lib/modules/$(KVER)/ -name '*.o' -a -type f | xargs gzip -f9
+       cd $(DIR_APP) && make 3COM_INIT 3COM_FIRMWARE
+else
+       rm -f /lib/modules/$(KVER)-smp/kernel/drivers/usb/3cp4218dbg.o
+       find /lib/modules/$(KVER)-smp/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/CVS/Entries b/lfs/CVS/Entries
new file mode 100644 (file)
index 0000000..5e87d1f
--- /dev/null
@@ -0,0 +1,171 @@
+/3c5x9setup/1.1.2.3/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/3cp4218/1.12.2.6/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/Compress-Zlib/1.1.2.3/Sat Aug  6 12:36:24 2005//TIPCOP_v1_4_0
+/Config/1.7.2.23/Sat Dec 24 08:57:28 2005//TIPCOP_v1_4_0
+/Digest/1.1.2.3/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/Digest-HMAC/1.1.2.2/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/Digest-SHA1/1.1.2.3/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/GD/1.5.2.3/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/HTML-Parser/1.1.2.2/Thu Jul  7 22:31:30 2005//TIPCOP_v1_4_0
+/HTML-Tagset/1.1.2.2/Thu Jul  7 22:31:30 2005//TIPCOP_v1_4_0
+/Net-DNS/1.5.2.3/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/Net-IPv4Addr/1.3.2.2/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/Net_SSLeay/1.1.2.1/Fri Jul  8 00:03:18 2005//TIPCOP_v1_4_0
+/URI/1.1.2.2/Thu Jul  7 22:31:30 2005//TIPCOP_v1_4_0
+/aboot/1.4.2.2/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/amedyn/1.13.2.10/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/apache/1.7.2.11/Thu Oct 20 21:06:50 2005//TIPCOP_v1_4_0
+/arping/1.1.2.5/Sun Jul 10 14:12:55 2005//TIPCOP_v1_4_0
+/as86/1.1.2.1/Tue Jan 17 12:12:07 2006//TIPCOP_v1_4_0
+/autoconf/1.3.2.3/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/automake/1.3.2.3/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/bash/1.5.2.2/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/beep/1.3.2.2/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/bind/1.3.2.5/Wed Apr 13 23:52:04 2005//TIPCOP_v1_4_0
+/binutils/1.4.2.3/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/bison/1.3.2.5/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/boot.img/1.8.2.4/Sun Oct 30 18:19:16 2005//TIPCOP_v1_4_0
+/busybox/1.11.2.5/Wed Jun 22 20:00:56 2005//TIPCOP_v1_4_0
+/bzip2/1.4.2.9/Fri Jul 15 08:13:35 2005//TIPCOP_v1_4_0
+/capi4k-utils/1.6.2.11/Tue Mar 15 17:46:33 2005//TIPCOP_v1_4_0
+/ccache/1.2.2.3/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/cdrom/1.1.2.30/Mon Jan 30 22:54:33 2006//TIPCOP_v1_4_0
+/cdrtools/1.4.2.3/Wed Apr 13 23:52:04 2005//TIPCOP_v1_4_0
+/cnx_pci/1.2.2.11/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/configroot/1.9.2.23/Sat Feb  4 11:04:36 2006//TIPCOP_v1_4_0
+/coreutils/1.5.2.8/Sat Jan 21 15:01:58 2006//TIPCOP_v1_4_0
+/cxacru/1.13.2.6/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/dejagnu/1.4.2.2/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/dhcp/1.4.2.5/Tue Aug 16 19:43:47 2005//TIPCOP_v1_4_0
+/dhcpcd/1.5.2.3/Sat Jul 16 19:02:36 2005//TIPCOP_v1_4_0
+/diffutils/1.3.2.2/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/dnsmasq/1.4.2.7/Thu Apr 28 19:34:48 2005//TIPCOP_v1_4_0
+/dosfstools/1.3.2.3/Tue Mar 15 20:48:49 2005//TIPCOP_v1_4_0
+/driver.img/1.24.2.7/Sun Jan 29 20:17:30 2006//TIPCOP_v1_4_0
+/e2fsprogs/1.7.2.4/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/eagle/1.19.2.19/Thu Jul 28 07:01:26 2005//TIPCOP_v1_4_0
+/eciadsl/1.4.2.11/Mon Nov 14 21:55:29 2005//TIPCOP_v1_4_0
+/ed/1.3.2.2/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/ethtool/1.1.2.1/Tue Jun 21 20:10:18 2005//TIPCOP_v1_4_0
+/expat/1.3.2.2/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/expect/1.3.2.5/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/ez-ipupdate/1.4.2.4/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/fcdsl/1.11.2.11/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/fcdsl2/1.1.2.6/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/fcdslsl/1.1.2.4/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/fcdslslusb/1.1.2.4/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/fcdslusb/1.1.2.4/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/fcron/1.5.2.4/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/file/1.3.2.8/Tue Oct 18 21:30:32 2005//TIPCOP_v1_4_0
+/findutils/1.3.2.3/Sat Feb 26 12:26:43 2005//TIPCOP_v1_4_0
+/flex/1.4.2.5/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/gawk/1.3.2.5/Sat Feb  5 15:38:14 2005//TIPCOP_v1_4_0
+/gcc/1.18.2.9/Sun Jan 22 21:58:23 2006//TIPCOP_v1_4_0
+/gd/1.5.2.4/Fri Mar  4 19:26:50 2005//TIPCOP_v1_4_0
+/gdbm/1.4.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/gettext/1.3.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/glibc/1.17.2.12/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/gmp/1.5.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/gnupg/1.5.2.6/Wed Jul 27 23:12:41 2005//TIPCOP_v1_4_0
+/grep/1.3.2.3/Sat Feb 26 20:13:20 2005//TIPCOP_v1_4_0
+/groff/1.3.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/grub/1.9.2.9/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/gzip/1.3.2.4/Mon Jul 18 20:40:37 2005//TIPCOP_v1_4_0
+/hdparm/1.3.2.7/Sun Jan 15 08:55:50 2006//TIPCOP_v1_4_0
+/iana-etc/1.1.2.5/Thu Feb  2 14:23:24 2006//TIPCOP_v1_4_0
+/ibod/1.5.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/inetutils/1.3.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/initrd/1.26.2.8/Sat Dec  3 21:28:44 2005//TIPCOP_v1_4_0
+/initscripts/1.6.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/installer/1.6.2.5/Wed Jan 11 01:01:38 2006//TIPCOP_v1_4_0
+/ipac-ng/1.5.2.6/Sat Jan 14 16:41:15 2006//TIPCOP_v1_4_0
+/ipaddr/1.1.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/iproute2/1.6.2.4/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/iptables/1.5.2.5/Sat Jan 14 16:35:16 2006//TIPCOP_v1_4_0
+/iptstate/1.1.2.1/Thu Jul  7 19:14:06 2005//TIPCOP_v1_4_0
+/iputils/1.1.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/isapnptools/1.3.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/isdn4k-utils/1.8.2.4/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/kbd/1.5.2.10/Mon Oct  3 22:49:44 2005//TIPCOP_v1_4_0
+/kudzu/1.9.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/less/1.3.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/libcap/1.5.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/libnet/1.1.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/libpcap/1.5.2.5/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/libpng/1.3.2.4/Sun Feb 27 15:23:03 2005//TIPCOP_v1_4_0
+/libsafe/1.3.2.4/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/libtool/1.3.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/libusb/1.4.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/libwww-perl/1.1.2.2/Thu Jul  7 22:31:30 2005//TIPCOP_v1_4_0
+/linux/1.42.2.63/Mon Jan 30 12:51:21 2006//TIPCOP_v1_4_0
+/linux-atm/1.4.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/logrotate/1.5.2.4/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/logwatch/1.8.2.10/Tue Oct 18 21:30:32 2005//TIPCOP_v1_4_0
+/m4/1.4.2.5/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/make/1.3.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/makedev/1.11.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/man/1.4.2.5/Tue Jul  5 15:11:12 2005//TIPCOP_v1_4_0
+/man-pages/1.3.2.6/Sun Dec 18 23:13:01 2005//TIPCOP_v1_4_0
+/mbr/1.1.2.1/Tue Jan 17 12:12:07 2006//TIPCOP_v1_4_0
+/mingetty/1.3.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/misc-progs/1.5.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/mktemp/1.1.2.4/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/modutils/1.5.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/mtools/1.3.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/nano/1.3.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/nash/1.2.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/nasm/1.3.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/ncurses/1.3.2.5/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/ndiswrapper/1.1.2.3/Mon Jan 30 01:50:14 2006//TIPCOP_v1_4_0
+/net-tools/1.5.2.8/Sat Aug 13 08:09:10 2005//TIPCOP_v1_4_0
+/newt/1.8.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/noip_updater/1.3.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/ntp/1.6.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/oinkmaster/1.1.2.3/Sun Sep  4 20:13:13 2005//TIPCOP_v1_4_0
+/openssh/1.7.2.5/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/openssl/1.6.2.12/Fri Nov 25 22:38:42 2005//TIPCOP_v1_4_0
+/openswan/1.6.2.17/Thu Dec  1 23:00:25 2005//TIPCOP_v1_4_0
+/patch/1.3.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/pciutils/1.5.2.4/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/pcmcia-cs/1.10.2.6/Tue Jul  5 15:11:12 2005//TIPCOP_v1_4_0
+/pcre/1.2.2.3/Sat Sep 10 17:22:31 2005//TIPCOP_v1_4_0
+/perl/1.9.2.13/Sun Feb 27 15:23:03 2005//TIPCOP_v1_4_0
+/popt/1.3.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/ppp/1.20.2.8/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/pptpclient/1.4.2.4/Wed Apr 13 23:52:04 2005//TIPCOP_v1_4_0
+/procinfo/1.3.2.3/Tue Mar 15 17:48:27 2005//TIPCOP_v1_4_0
+/procps/1.4.2.4/Sun Jul 10 16:01:33 2005//TIPCOP_v1_4_0
+/psmisc/1.3.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/pulsar/1.1.2.17/Tue Jul  5 15:11:12 2005//TIPCOP_v1_4_0
+/python/1.5.2.4/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/rp-pppoe/1.3.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/rrdtool/1.5.2.6/Wed Dec 21 09:56:21 2005//TIPCOP_v1_4_0
+/scsi.img/1.19.2.4/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/sed/1.6.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/setserial/1.3.2.2/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/setup/1.4.2.3/Wed Jan 11 01:01:38 2006//TIPCOP_v1_4_0
+/shadow/1.9.2.8/Tue Mar 15 18:00:09 2005//TIPCOP_v1_4_0
+/slang/1.7.2.3/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/snort/1.6.2.11/Sat Nov  5 19:53:45 2005//TIPCOP_v1_4_0
+/speedtouch/1.3.2.8/Sat Feb  5 15:38:15 2005//TIPCOP_v1_4_0
+/speedycgi/1.1.2.3/Wed Jun 22 22:32:20 2005//TIPCOP_v1_4_0
+/squid/1.4.2.21/Mon Oct 24 22:19:58 2005//TIPCOP_v1_4_0
+/squid-graph/1.3.2.2/Sat Feb  5 15:38:16 2005//TIPCOP_v1_4_0
+/stage2/1.14.2.5/Wed Feb  8 23:53:37 2006//TIPCOP_v1_4_0
+/sysklogd/1.3.2.7/Mon Oct 17 21:15:49 2005//TIPCOP_v1_4_0
+/syslinux/1.6.2.9/Sat Feb  5 15:38:16 2005//TIPCOP_v1_4_0
+/sysvinit/1.6.2.4/Thu Jul 28 00:32:46 2005//TIPCOP_v1_4_0
+/tar/1.3.2.5/Mon Jan 30 19:46:45 2006//TIPCOP_v1_4_0
+/tcl/1.4.2.4/Fri Jan 20 13:59:20 2006//TIPCOP_v1_4_0
+/tcpdump/1.5.2.7/Sat Oct 22 10:19:14 2005//TIPCOP_v1_4_0
+/texinfo/1.3.2.3/Sat Feb  5 15:38:16 2005//TIPCOP_v1_4_0
+/traceroute/1.4.2.2/Sat Feb  5 15:38:16 2005//TIPCOP_v1_4_0
+/uClibc/1.9.2.4/Sat Feb  5 15:38:16 2005//TIPCOP_v1_4_0
+/unicorn/1.13.2.8/Sat Feb  5 15:38:16 2005//TIPCOP_v1_4_0
+/unzip/1.5.2.8/Mon Oct  3 22:49:44 2005//TIPCOP_v1_4_0
+/util-linux/1.8.2.7/Fri Jan 20 14:31:47 2006//TIPCOP_v1_4_0
+/vim/1.3.2.3/Wed Apr 13 23:52:04 2005//TIPCOP_v1_4_0
+/vlan/1.1.2.3/Sun Jan 15 08:55:50 2006//TIPCOP_v1_4_0
+/wireless/1.3.2.5/Mon Jan 30 22:57:23 2006//TIPCOP_v1_4_0
+/zlib/1.4.2.8/Tue Jul 26 06:27:49 2005//TIPCOP_v1_4_0
+D
diff --git a/lfs/CVS/Repository b/lfs/CVS/Repository
new file mode 100644 (file)
index 0000000..fb470b8
--- /dev/null
@@ -0,0 +1 @@
+ipcop/lfs
diff --git a/lfs/CVS/Root b/lfs/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/lfs/CVS/Tag b/lfs/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/lfs/Compress-Zlib b/lfs/Compress-Zlib
new file mode 100644 (file)
index 0000000..50abaa1
--- /dev/null
@@ -0,0 +1,87 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: Compress-Zlib,v 1.1.2.3 2005/08/06 12:36:24 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.35
+
+THISAPP    = Compress-Zlib-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/Compress
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 14d5ac6d14c374c4d7abba4c15ced0e3
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && echo -e "BUILD_ZLIB = False\nINCLUDE = /usr/include\nLIB = /lib\nOLD_ZLIB = True\n" > config.in
+       cd $(DIR_APP) && perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
+
diff --git a/lfs/Config b/lfs/Config
new file mode 100644 (file)
index 0000000..ab29940
--- /dev/null
@@ -0,0 +1,130 @@
+###############################################################################
+#                                   LFSMake                                   #
+#                    by Rod Roark <rod@sunsetsystems.com>                     #
+#                                                                             #
+#                        Copyright (C) 2002 Rod Roark                         #
+#                                                                             #
+# See http://www.lfsmake.org/ for the most current standard version.          #
+#                                                                             #
+# These Makefiles are made available under the terms of the Artistic License, #
+# found at http://www.opensource.org/licenses/artistic-license.html.          #
+###############################################################################
+
+# URLs that are common sources of downloads.  If you're having trouble with
+# a site you should change its URL to that of a suitable mirror site.
+#
+URL_CPAN    = http://www.cpan.org/modules/by-module
+URL_AGNU    = ftp://alpha.gnu.org/gnu
+URL_DEBIAN  = http://http.us.debian.org/debian/pool/main
+URL_GNU     = http://ftp.gnu.org/gnu
+URL_KERNEL  = http://www.kernel.org/pub
+URL_TUE     = ftp://ftp.win.tue.nl/pub
+URL_LFS_FTP = http://ftp.at.linuxfromscratch.org/pub/lfs/lfs-packages/5.1.1
+URL_LFS     = http://www.linuxfromscratch.org/patches/downloads
+URL_SFNET   = http://switch.dl.sourceforge.net/sourceforge
+
+# Default compiler optimizations.
+#
+FLAGS_OPT   = -O2
+FLAGS_CPU   = -mcpu=$(MACHINE)
+FLAGS_ARCH  = -march=$(MACHINE)
+
+# Don't change this; it will be overridden by other makefiles where necessary.
+#
+ROOT =
+
+# For most packages tarballs are unpacked here and then deleted after
+# installation.
+#
+DIR_SRC = $(ROOT)/usr/src
+
+# Files are downloaded into DIR_TMP and then moved to DIR_DL, to avoid
+# messes with partially retrieved files.  DIR_DL is where we will
+# save all the files that are downloaded.  DIR_INFO contains the
+# file lists of installed packages.
+#
+DIR_DL      = $(LFS_BASEDIR)/cache
+DIR_CHK     = $(LFS_BASEDIR)/cache/check
+DIR_INFO    = $(LFS_BASEDIR)/log
+DIR_TMP     = /tmp
+
+KGCC = ccache /usr/bin/gcc
+
+###############################################################################
+# Common Macro Definitions
+###############################################################################
+
+# For each package we create a list of files that it installed under 
+# log/<TARGET> name. Modified files are not identified
+#
+define FIND_FILES
+       cd $(ROOT)/ && find -mount \
+       -not -path './tools*' -not -path './tmp*' -not -path './usr/src*' \
+       -not -path './dev*' -not -path './proc*' -not -path './install*'
+endef
+
+# This is common starting logic for builds.
+#
+ifeq "$(ROOT)" ""
+define PREBUILD
+       echo "====================================== Installing $(THISAPP) ..."
+       @echo "Install started; saving file list to $(DIR_SRC)/lsalr ..."
+       @if [ ! -f $(DIR_SRC)/lsalr ]; then $(FIND_FILES) > $(DIR_SRC)/lsalr; fi
+endef
+else
+define PREBUILD
+       echo "====================================== Installing $(THISAPP) ..."
+endef
+endif
+
+# Common end-of-installation logic for Stage 2 and beyond.
+#
+ifeq "$(ROOT)" ""
+define POSTBUILD
+       @echo "Install done; saving file list to $(DIR_INFO)/$(THISAPP) ..."
+       @$(FIND_FILES) > $(DIR_SRC)/lsalrnew
+       @diff $(DIR_SRC)/lsalr $(DIR_SRC)/lsalrnew | grep '^> ' | sed 's/^> //' | sort > $(TARGET)_1
+       @cp -f $(DIR_SRC)/lsalrnew $(DIR_SRC)/lsalr
+       @rm -f $(DIR_SRC)/lsalrnew
+       sed -i -e 's+.\/++' $(TARGET)_1
+       # compare roofile ( same name as lfs script) with the list of installed files
+       # special cases
+       # - on a partial rebuild without a new file inside TARGET_1, just touch TARGET
+       if [ -s "$(TARGET)_1" ]; then \
+               ROOTFILE=$(DIR_SRC)/src/ROOTFILES.$(MACHINE); \
+               for line in `cat $(TARGET)_1`; do \
+                       if grep -qE "^#$$line$$" $$ROOTFILE ; then echo "#$$line" >> $(TARGET); \
+                       elif grep -qE "^$$line$$" $$ROOTFILE ; then echo "$$line" >> $(TARGET); \
+                       else echo "+$$line" >> $(TARGET); \
+                       fi; \
+               done; \
+       else \
+               touch $(TARGET); \
+       fi
+       @rm -f $(TARGET)_1
+endef
+else
+define POSTBUILD
+       @echo "===================================== Install done for $(THISAPP)."
+       touch $(TARGET)
+endef
+endif
+
+define CHECK
+       @echo -e "$(MESSAGE)Check: $($(notdir $@))"
+       wget -T 120 -t 1 --spider -nv $($(notdir $@)) -O /dev/null
+       @touch $(DIR_CHK)/$(notdir $@)
+endef
+
+define LOAD
+       @echo -e "$(MESSAGE)Download: $($(notdir $@))"
+       wget -T 120 -t 1 -c -nv $($(notdir $@)) -O $(DIR_TMP)/$(notdir $@)
+       [ "$($(notdir $@)_MD5)" = `md5sum $(DIR_TMP)/$(notdir $@) | awk '{ print $$1 }'` ] # detect page not found answer
+       mv $(DIR_TMP)/$(notdir $@) $(DIR_DL)
+endef
+
+define MD5
+       # error mean file signature don't match the one in lfs script
+       [ "$($@_MD5)" = `md5sum $(DIR_DL)/$@ | awk '{ print $$1 }'` ]
+       echo "$@ checksum OK"
+endef
diff --git a/lfs/Digest b/lfs/Digest
new file mode 100644 (file)
index 0000000..21d996c
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: Digest,v 1.1.2.3 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.08
+
+THISAPP    = Digest-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/Digest
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ff67433be423c036b71e60dfddb5cdd5
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i "s%,'y'%,'n'%" Makefile.PL
+       cd $(DIR_APP) && yes 'n' | perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/Digest-HMAC b/lfs/Digest-HMAC
new file mode 100644 (file)
index 0000000..5e84d60
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: Digest-HMAC,v 1.1.2.2 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.01
+
+THISAPP    = Digest-HMAC-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/Digest
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 32dc54c765100c638b5d7f7ff4c5c626
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i "s%,'y'%,'n'%" Makefile.PL
+       cd $(DIR_APP) && yes 'n' | perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/Digest-SHA1 b/lfs/Digest-SHA1
new file mode 100644 (file)
index 0000000..495a9da
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: Digest-SHA1,v 1.1.2.3 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.10
+
+THISAPP    = Digest-SHA1-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/Digest
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 4497a499b7c28ddd540a8caab412c6d7
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i "s%,'y'%,'n'%" Makefile.PL
+       cd $(DIR_APP) && yes 'n' | perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/GD b/lfs/GD
new file mode 100644 (file)
index 0000000..519ae5e
--- /dev/null
+++ b/lfs/GD
@@ -0,0 +1,88 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: gd,v 1.5.2.4 2005/03/04 19:26:50 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.0.20
+
+THISAPP    = gd-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.boutell.com/gd/http
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 3e513bf438a8d797b508a4fbf52c9bd1
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && sed -i \
+           -e 's%^#include "jpeglib.h".*$$%%' \
+           -e 's%^#include "jerror.h".*$$%%' gd_jpeg.c
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/HTML-Parser b/lfs/HTML-Parser
new file mode 100644 (file)
index 0000000..42017f4
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: HTML-Parser,v 1.1.2.2 2005/07/07 22:31:30 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.45
+
+THISAPP    = HTML-Parser-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/HTML
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c2ac1379ac5848dd32e24347cd679391
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && yes 'n' | perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
+
diff --git a/lfs/HTML-Tagset b/lfs/HTML-Tagset
new file mode 100644 (file)
index 0000000..5de13d6
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: HTML-Tagset,v 1.1.2.2 2005/07/07 22:31:30 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.04
+
+THISAPP    = HTML-Tagset-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/HTML
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = b82e0f08c1ececefe98b891f30dd56a6
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && yes 'n' | perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
+
diff --git a/lfs/Net-DNS b/lfs/Net-DNS
new file mode 100644 (file)
index 0000000..33f6750
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: Net-DNS,v 1.5.2.3 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.47
+
+THISAPP    = Net-DNS-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/Net
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 749a04eb4377e889ed58d004536a9117
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i "s%,'y'%,'n'%" Makefile.PL
+       cd $(DIR_APP) && yes 'n' | perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/Net-IPv4Addr b/lfs/Net-IPv4Addr
new file mode 100644 (file)
index 0000000..ae1b6c2
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: Net-IPv4Addr,v 1.3.2.2 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.10
+
+THISAPP    = Net-IPv4Addr-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/Net
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 57aa8e28ebcd4c0c9f15792740e53d3c
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/Net_SSLeay b/lfs/Net_SSLeay
new file mode 100644 (file)
index 0000000..8dd7884
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: Net_SSLeay,v 1.1.2.1 2005/07/08 00:03:18 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.25
+
+THISAPP    = Net_SSLeay.pm-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/Net/SAMPO
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 87de8a06802fbb63c7c85e89eedbe139
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i "s%,'y'%,'n'%" Makefile.PL
+       cd $(DIR_APP) && yes 'n' | perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/URI b/lfs/URI
new file mode 100644 (file)
index 0000000..de1b0be
--- /dev/null
+++ b/lfs/URI
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: URI,v 1.1.2.2 2005/07/07 22:31:30 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.35
+
+THISAPP    = URI-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/URI
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 1a933b1114c41a25587ee59ba8376f7c
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && yes 'n' | perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
+
diff --git a/lfs/aboot b/lfs/aboot
new file mode 100644 (file)
index 0000000..1fbc77f
--- /dev/null
+++ b/lfs/aboot
@@ -0,0 +1,93 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# 02-02-2004 Alan Hourihane <alanh@fairlite.demon.co.uk>                      #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: aboot,v 1.4.2.2 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.9b
+
+THISAPP    = aboot-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/aboot
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+CFLAGS     =
+CXXFLAGS   =
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 00c35c192d320bb005ad9bead7043d2c
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make CFGDEFS="-fno-stack-protector"
+       cd $(DIR_APP) && make install
+
+       # aboot files
+       mkdir -p /boot/etc
+       for i in $(DIR_SRC)/config/aboot/*; do \
+           [ -f $$i ] && cp -f $$i /boot/etc; \
+       done
+
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/amedyn b/lfs/amedyn
new file mode 100644 (file)
index 0000000..71a29fb
--- /dev/null
@@ -0,0 +1,119 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: amedyn,v 1.13.2.10 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2004-08-04
+
+THISAPP    = amedyn-$(VER)
+DL_FILE    = $(THISAPP)-src.tgz
+DL_FROM    = $(URL_SFNET)/zyxel630-11
+DIR_APP    = $(DIR_SRC)/amedyn
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 90bebc4423f7982d22e5d47ea4b7b910
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && for i in Makefile */Makefile; do \
+           sed -i \
+             -e 's/$$(shell uname -m)/$(MACHINE)/' \
+             -e 's/$$(shell uname -r)/$(KVER)/' \
+             -e 's%^.*DEST_KERNEL_MAIN =.*$$%DEST_KERNEL_MAIN = 2.4%' \
+             -e 's/depmod -a//' $$i; \
+           done
+else
+       cd $(DIR_APP) && for i in Makefile */Makefile; do \
+           sed -i \
+             -e 's/$$(shell uname -m)/$(MACHINE)/' \
+             -e 's/$$(shell uname -r)/$(KVER)-smp/' \
+             -e 's%^.*DEST_KERNEL_MAIN =.*$$%DEST_KERNEL_MAIN = 2.4%' \
+             -e 's/depmod -a//' $$i; \
+           done
+endif
+       if [ "$(MACHINE)" = "alpha" ]; then \
+               cd $(DIR_APP) && for i in Makefile */Makefile; do \
+               sed -i -e 's/-march=$$(DEST_MACHINE)//' $$i; \
+               done; \
+       fi
+       cd $(DIR_APP) && sed -i -e 's/usr\/sbin/usr\/bin/' bridged/Makefile
+       cd $(DIR_APP) && make CC="$(KGCC)" AME_MODULE
+ifeq "$(SMP)" ""
+       rm -f /lib/modules/$(KVER)/kernel/drivers/usb/amedyndbg.o
+       find /lib/modules/$(KVER)/ -name '*.o' -a -type f | xargs gzip -f9
+       cd $(DIR_APP) && make AME_INIT AME_FIRMWARE BRIDGED
+else
+       rm -f /lib/modules/$(KVER)-smp/kernel/drivers/usb/amedyndbg.o
+       find /lib/modules/$(KVER)-smp/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/apache b/lfs/apache
new file mode 100644 (file)
index 0000000..a4a40ba
--- /dev/null
@@ -0,0 +1,143 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: apache,v 1.7.2.11 2005/10/20 21:06:50 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.3.34
+
+THISAPP    = apache_$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.apache.org/dist/httpd
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE) mod_ssl-2.8.25-1.3.34.tar.gz mm-1.4.0.tar.gz sflogo.png
+
+$(DL_FILE)                        = $(DL_FROM)/$(DL_FILE)
+mod_ssl-2.8.25-1.3.34.tar.gz      = http://www.modssl.org/source/mod_ssl-2.8.25-1.3.34.tar.gz
+mm-1.4.0.tar.gz                   = ftp://ftp.ossp.org/pkg/lib/mm/mm-1.4.0.tar.gz
+sflogo.png                        = http://sflogo.sourceforge.net/sflogo.php?group_id=40604
+
+$(DL_FILE)_MD5                    = 9978cc552b423f0015c1052d23ab619e
+mod_ssl-2.8.25-1.3.34.tar.gz_MD5  = 1ef2a6cb47573444779b2fd10502514b
+mm-1.4.0.tar.gz_MD5               = 393b0891a889a4e9f9481d18d976366c
+sflogo.png_MD5                    = 9fe4d709a2bae05a34e6c070c8a0448e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/mm-* $(DIR_SRC)/mod_* && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       rm -rf /home/httpd/cgi-bin
+
+       # MM
+       cd $(DIR_SRC) && tar xfz $(DIR_DL)/mm-1.4.0.tar.gz
+       cd $(DIR_SRC)/mm-1.4.0 && ./configure --disable-shared
+       cd $(DIR_SRC)/mm-1.4.0 && make
+
+       # Mod_ssl
+       cd $(DIR_SRC) && tar xfz $(DIR_DL)/mod_ssl-2.8.25-1.3.34.tar.gz
+       cd $(DIR_SRC)/mod_ssl-2.8.25-1.3.34 && ./configure --with-apache=$(DIR_APP)
+
+       # Apache
+       cd $(DIR_APP) && CFLAGS="$(CFLAGS)" \
+           EAPI_MM=$(DIR_SRC)/mm-1.4.0 ./configure \
+           --prefix=/home/httpd --exec-prefix=/usr \
+           --sysconfdir=/etc/httpd/conf --logfiledir=/var/log/httpd \
+           --includedir=/usr/include/apache --mandir=/usr/share/man \
+           --localstatedir=/var --runtimedir=/var/run \
+           --disable-rule=SHARED_CHAIN --disable-rule=SHARED_CORE \
+           --disable-rule=EXPAT --disable-rule=WANTHSREGEX \
+           --enable-rule=EAPI --enable-module=rewrite \
+           --disable-module=negotiation --disable-module=status \
+           --disable-module=include --disable-module=autoindex \
+           --disable-module=asis \
+           --disable-module=imap --disable-module=actions \
+           --disable-module=userdir \
+           --enable-module=ssl
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+
+       mv -f /usr/bin/httpd /usr/sbin
+       sed 's+CONFIG_ROOT+$(CONFIG_ROOT)+g' $(DIR_SRC)/config/httpd/httpd.conf > /etc/httpd/conf/httpd.conf
+       ln -sf $(CONFIG_ROOT)/main/hostname.conf /etc/httpd/conf/
+
+       # Copy all html/cgi-bin files
+       cp -aR $(DIR_SRC)/html/* /home/httpd
+       -find /home/httpd -name CVS -exec rm -rf {} \;
+       cp $(DIR_DL)/sflogo.png /home/httpd/html/images/
+
+       # Change CONFIG_ROOT in cgi-scripts
+       for i in /home/httpd/cgi-bin/{*,logs.cgi/*,vpn.cgi/*}; do \
+           if [ -f $$i ]; then \
+               sed -i "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" $$i; \
+           fi; \
+       done
+       chown -R root:root /home/httpd
+       chmod -R 755 /home/httpd/cgi-bin
+       chmod -R 644 /home/httpd/html
+       chmod 755 /home/httpd/html /home/httpd/html/{index.cgi,images,include}
+
+
+       # backup directory needs nobody:nobody permissions
+       -mkdir -p /home/httpd/html/backup
+       chown nobody:nobody /home/httpd/html/backup
+
+       @rm -rf $(DIR_APP) $(DIR_SRC)/mm-* $(DIR_SRC)/mod_*
+       @$(POSTBUILD)
diff --git a/lfs/arping b/lfs/arping
new file mode 100644 (file)
index 0000000..b8bc41f
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# 21-4-2004 Roy Walker < rwalker@miracomnetwork.com>                          #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# 
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.05
+
+THISAPP    = arping-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+#DL_FROM    = ftp://ftp.habets.pp.se/pub/synscan
+DL_FROM    = http://www.mirrors.wiretapped.net/security/network-mapping/arping
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 96e7c2ce8ae09046e264a314eeaac4dd
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && install -m 0755 arping /usr/sbin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/as86 b/lfs/as86
new file mode 100644 (file)
index 0000000..b5e9176
--- /dev/null
+++ b/lfs/as86
@@ -0,0 +1,83 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+#     2006-jan  Gilles Espinasse                                              #
+#                                                                             #
+# $Id: as86,v 1.1.2.1 2006/01/17 12:12:07 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.16.17
+
+THISAPP    = as86-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://homepage.ntlworld.com/robert.debath/dev86
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 69bca69aec7a272362bc9e050d289d12
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/autoconf b/lfs/autoconf
new file mode 100644 (file)
index 0000000..02e0cfa
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: autoconf,v 1.3.2.3 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.59
+
+THISAPP    = autoconf-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/autoconf
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d4d45eaa1769d45e59dcb131a4af17a0
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/automake b/lfs/automake
new file mode 100644 (file)
index 0000000..f634912
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: automake,v 1.3.2.3 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.8.4
+
+THISAPP    = automake-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/automake
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0875b1d44c584decfd0afa60a2381b9d
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       ln -sf automake-1.7 /usr/share/automake
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/bash b/lfs/bash
new file mode 100644 (file)
index 0000000..bda2720
--- /dev/null
+++ b/lfs/bash
@@ -0,0 +1,110 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: bash,v 1.5.2.2 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.05b
+
+THISAPP    = bash-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/bash
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --bindir=/bin --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects = $(DL_FILE) $(THISAPP)-2.patch
+
+$(DL_FILE)             = $(DL_FROM)/$(DL_FILE)
+$(THISAPP)-2.patch     = $(URL_LFS)/bash/$(THISAPP)-2.patch
+
+$(DL_FILE)_MD5         = 5238251b4926d778dfe162f6ce729733
+$(THISAPP)-2.patch_MD5 = dfc7399bb57798e18fbb99f9edce4da0
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-2.patch
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       ln -sf bash /bin/sh
+ifneq "$(ROOT)" ""
+       -mkdir -p $(ROOT)/bin
+       -mkdir -p $(ROOT)/usr/bin
+       ln -sf bash /tools/bin/sh
+       -ln -sf /tools/bin/bash $(ROOT)/bin/sh
+       echo "#!/bin/sh"        >  $(ROOT)/usr/bin/which
+       echo "type -p \$$1"     >> $(ROOT)/usr/bin/which
+       chmod 755 $(ROOT)/usr/bin/which
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/beep b/lfs/beep
new file mode 100644 (file)
index 0000000..ece089b
--- /dev/null
+++ b/lfs/beep
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: beep,v 1.3.2.2 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.2.2
+
+THISAPP    = beep-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.johnath.com/beep
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d541419fd7e5642952d7b48cbb40c712
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && install -m 0755 beep /usr/bin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/bind b/lfs/bind
new file mode 100644 (file)
index 0000000..908ce38
--- /dev/null
+++ b/lfs/bind
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: bind,v 1.3.2.5 2005/04/13 23:52:04 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 9.2.5
+
+THISAPP    = bind-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.isc.org/isc/bind9/$(VER)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 35a265fb97a068c066e22306ea32fd1f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP)/lib/isc && make
+       cd $(DIR_APP)/lib/dns && make
+       cd $(DIR_APP)/lib/lwres && make
+       cd $(DIR_APP)/bin/nsupdate && make
+       cd $(DIR_APP)/bin/dig && make
+       cd $(DIR_APP) && install -m 0755 bin/nsupdate/nsupdate /usr/bin
+       cd $(DIR_APP) && install -m 0755 bin/dig/host /usr/bin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/binutils b/lfs/binutils
new file mode 100644 (file)
index 0000000..484e435
--- /dev/null
@@ -0,0 +1,114 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#         Modified Makefile for IPCop build                                   #
+#                                                                             #
+# $Id: binutils,v 1.4.2.3 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.15.90.0.3
+
+THISAPP    = binutils-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_KERNEL)/linux/devel/binutils
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --enable-shared --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+ifeq "$(LFS_PASS)" "1"
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools1
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE = LDFLAGS="-all-static"
+  EXTRA_INSTALL = 
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools2
+  EXTRA_CONFIG = --prefix=/tools --enable-shared --with-lib-path=/tools/lib --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 1c1af0064ebd3d7bd99905874656a21e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       @mkdir $(DIR_SRC)/binutils-build
+       cd $(DIR_SRC)/binutils-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
+ifeq "$(ROOT)" ""
+       cd $(DIR_SRC)/binutils-build && make -j 3 $(EXTRA_MAKE)
+       cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install
+else
+ifeq "$(LFS_PASS)" "1"
+       cd $(DIR_SRC)/binutils-build && make configure-host
+endif
+       cd $(DIR_SRC)/binutils-build && make -j 3 $(EXTRA_MAKE)
+       cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install
+endif
+       @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build
+       @$(POSTBUILD)
diff --git a/lfs/bison b/lfs/bison
new file mode 100644 (file)
index 0000000..2b24ae5
--- /dev/null
+++ b/lfs/bison
@@ -0,0 +1,110 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: bison,v 1.3.2.5 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.875
+
+THISAPP    = bison-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/bison
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --disable-nls
+  EXTRA_LDFLAGS =
+  EXTRA_MAKE = 
+  EXTRA_INSTALL =
+else
+ifeq "$(LFS_PASS)" "1"
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools1
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_LDFLAGS = -static
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools2
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_LDFLAGS =
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects =$(DL_FILE) $(THISAPP)-attribute-1.patch
+
+$(DL_FILE)                       = $(DL_FROM)/$(DL_FILE)
+$(THISAPP)-attribute-1.patch     = $(URL_LFS)/bison/$(THISAPP)-attribute-1.patch
+
+$(DL_FILE)_MD5                   = 278515c1195194cad633bf40c892f512
+$(THISAPP)-attribute-1.patch_MD5 = 599a35b0a76fc4335e640389acdaffbe
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-attribute-1.patch
+       cd $(DIR_APP) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/boot.img b/lfs/boot.img
new file mode 100644 (file)
index 0000000..84c4f57
--- /dev/null
@@ -0,0 +1,76 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: boot.img,v 1.8.2.4 2005/10/30 18:19:16 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = boot-$(VERSION).img
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       if [ "$(MACHINE)" = "i386" ]; then \
+               dd if=/dev/zero of=/install/images/boot-$(VERSION).img bs=1024 count=1440; \
+               mkdosfs -f 1 -r 16 /install/images/boot-$(VERSION).img; \
+               syslinux -s /install/images/boot-$(VERSION).img; \
+               for i in `seq 0 7`; do \
+                   if (! losetup /dev/loop$${i} >/dev/null 2>&1 ); then \
+                       LOOPNUM=$$i; \
+                       LOOPDEV="/dev/loop$${i}"; \
+                       break; \
+                   fi; \
+               done; \
+               losetup $$LOOPDEV /install/images/boot-$(VERSION).img; \
+               mount -t msdos $$LOOPDEV /install/mnt; \
+               sed -e 's/boot IPCop/boot IPCop $(VERSION)/' $(DIR_SRC)/config/kernel/install-message \
+                       > /install/mnt/message; \
+               cp $(DIR_SRC)/config/kernel/syslinux.cfg    /install/mnt/syslinux.cfg; \
+               cp /boot/vmlinuz-installer                  /install/mnt/vmlinuz; \
+               cp /install/images/fdinitrd.gz              /install/mnt/instroot.gz; \
+               umount /install/mnt; \
+               losetup -d $$LOOPDEV; \
+       fi
+
diff --git a/lfs/busybox b/lfs/busybox
new file mode 100644 (file)
index 0000000..39a2043
--- /dev/null
@@ -0,0 +1,108 @@
+
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: busybox,v 1.11.2.5 2005/06/22 20:00:56 rkerr Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.60.5
+
+THISAPP    = busybox-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.busybox.net/downloads
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 1dfe09e0b1db1aab2a5f7d03e47640a6
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/busybox-0.60.5-config.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/busybox-0.60.5-gzip.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/busybox-0.60.5-spider.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/busybox-0.60.5-insmod_gpl_symbols.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/busybox-0.60.5-wget-unlink.patch
+       if [ "$(MACHINE)" = "alpha" ]; then \
+               cd $(DIR_APP) && sed -i -e 's/#define BB_INSMOD//' Config.h; \
+               cd $(DIR_APP) && sed -i -e 's/#define BB_RMMOD//' Config.h; \
+               cd $(DIR_APP) && sed -i -e 's/#define BB_MODPROBE//' Config.h; \
+       fi
+       cd $(DIR_APP) && make
+       -mkdir -p /install/initrd/bin
+       cd $(DIR_APP) && install -m 0755 busybox /install/initrd/bin
+       cd /install/initrd/bin && for i in [ ash cat chroot dd df echo gzip \
+           gunzip halt insmod ifconfig init ls mkswap modprobe mount reboot \
+           rmmod sed sh sleep swapon swapoff syslogd tar umount wget ping \
+           sync; do \
+               ln -sf busybox $$i; \
+           done
+       if [ "$(MACHINE)" = "alpha" ]; then \
+               cd /install/initrd/bin && rm -f rmmod modprobe insmod; \
+               cp /sbin/insmod.static /install/initrd/bin/insmod; \
+               cd /install/initrd/bin && ln -s insmod modprobe; \
+               cd /install/initrd/bin && ln -s insmod rmmod; \
+       fi
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/bzip2 b/lfs/bzip2
new file mode 100644 (file)
index 0000000..f75ad98
--- /dev/null
+++ b/lfs/bzip2
@@ -0,0 +1,109 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: bzip2,v 1.4.2.9 2005/07/15 08:13:35 alanh Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.3
+
+THISAPP    = bzip2-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.bzip.org/$(VER)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects = $(DL_FILE) bzip2-1.0.2-use_mktemp-1.patch
+
+$(DL_FILE)                        = $(DL_FROM)/$(DL_FILE)
+bzip2-1.0.2-use_mktemp-1.patch     = $(URL_LFS)/bzip2/bzip2-1.0.2-use_mktemp-1.patch
+
+$(DL_FILE)_MD5                    = 8a716bebecb6e647d2e8a29ea5d8447f
+bzip2-1.0.2-use_mktemp-1.patch_MD5 = d8f29ca8b25c48e16dc2f7a093df21ef
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/bzip2-1.0.2-use_mktemp-1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bzip2-1.0.2-chmod.patch
+ifeq "$(ROOT)" ""
+       cd $(DIR_APP) && make -f Makefile-libbz2_so
+       cd $(DIR_APP) && make clean
+       cd $(DIR_APP) && make
+       rm -f /usr/bin/{bzgrep,bzegrep,bzfgrep,bzcmp,bzless}
+       cd $(DIR_APP) && make install
+       cd $(DIR_APP) && cp bzip2-shared /bin/bzip2
+       cd $(DIR_APP) && cp -a libbz2.so* /lib
+       ln -sf ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
+       rm /usr/bin/{bunzip2,bzcat,bzip2}
+       mv /usr/bin/{bzip2recover,bzless,bzmore} /bin
+       ln -sf bzip2 /bin/bunzip2
+       ln -sf bzip2 /bin/bzcat
+else
+       rm -f /tools/bin/{bzgrep,bzegrep,bzfgrep,bzcmp,bzless}
+       cd $(DIR_APP) && make PREFIX=/tools install
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/capi4k-utils b/lfs/capi4k-utils
new file mode 100644 (file)
index 0000000..3fca1a2
--- /dev/null
@@ -0,0 +1,94 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: capi4k-utils,v 1.6.2.11 2005/03/15 17:46:33 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2004-10-06
+
+THISAPP    = capi4k-utils-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.in-berlin.de/pub/capi4linux/OLD
+DIR_APP    = $(DIR_SRC)/capi4k-utils
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 54992ff362ca44629fdf59773a6864cd
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/capi4k-utils-2004-10-06_ppp-2.4.3.patch
+       cd $(DIR_APP)/avmb1 && ./configure
+       cd $(DIR_APP)/avmb1 && make
+       cd $(DIR_APP)/avmb1 && make install
+       cd $(DIR_APP)/capiinit && ./configure
+       cd $(DIR_APP)/capiinit && make
+       cd $(DIR_APP)/capiinit && make install
+       cd $(DIR_APP)/capi20 && SED=sed ./configure
+       cd $(DIR_APP)/capi20 && SED=sed make
+       cd $(DIR_APP)/capi20 && make install
+       PPPVER=`grep --max-count=1 VER $(DIR_SRC)/lfs/ppp | awk '{ print $$3 }'` && \
+                cd $(DIR_APP)/pppdcapiplugin && PPPVERSIONS="$$PPPVER" make && PPPVERSIONS="$$PPPVER" make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/ccache b/lfs/ccache
new file mode 100644 (file)
index 0000000..a986fa1
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# 17-02-2004 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ccache,v 1.2.2.3 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.3
+
+THISAPP    = ccache-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://ccache.samba.org/ftp/ccache
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 5e4afc0b170bf282d1813aeaf3d577d2
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -p0 < $(DIR_SRC)/src/patches/$(THISAPP).patch
+       cd $(DIR_APP) && CFLAGS="-O2 -static" ./configure --prefix=$(ROOT)/usr/local
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       ln -sf ccache $(ROOT)/usr/local/bin/gcc
+       ln -sf ccache $(ROOT)/usr/local/bin/g++
+       ln -sf ccache $(ROOT)/usr/local/bin/cc
+       $(ROOT)/usr/local/bin/ccache -z
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/cdrom b/lfs/cdrom
new file mode 100644 (file)
index 0000000..d437933
--- /dev/null
+++ b/lfs/cdrom
@@ -0,0 +1,165 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: cdrom,v 1.1.2.30 2006/01/30 22:54:33 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = cdrom
+DL_FILE    = rawrite.exe
+DL_FROM    = http://www.tux.org/pub/dos/rawrite
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE) \
+       rawwritewin-0.7.zip \
+       install-en-1.4.0.pdf.zip \
+       install-fr-1.4.0.pdf.zip \
+       quickstart-en.pdf.zip \
+       quickstart-fr-1.4.0.pdf.zip
+
+$(DL_FILE)                  = $(DL_FROM)/$(DL_FILE)
+rawwritewin-0.7.zip         = http://uranus.it.swin.edu.au/~jn/linux/rawwritewin-0.7.zip
+install-en-1.4.0.pdf.zip    = $(URL_SFNET)/ipcop/install-en-1.4.0.pdf.zip
+install-fr-1.4.0.pdf.zip    = $(URL_SFNET)/ipcop/install-fr-1.4.0.pdf.zip
+quickstart-en.pdf.zip       = http://www.ipcop.org/1.4.0/en/quickstart/quickstart-en.pdf.zip
+quickstart-fr-1.4.0.pdf.zip = http://www.ipcop.org/1.4.0/fr/quickstart/quickstart-fr-1.4.0.pdf.zip
+
+$(DL_FILE)_MD5                  = 7dac6ea496014d32dbce6c50feb254ca
+rawwritewin-0.7.zip_MD5         = 0130b497c8c3bc7d136a4236b0d9fbf6
+install-en-1.4.0.pdf.zip_MD5    = 07e0b5131f1434010d8a00571f9acd81
+install-fr-1.4.0.pdf.zip_MD5    = 2deb9d3bc46779cff18b681625fc4418
+quickstart-en.pdf.zip_MD5       = ca77ef5f1efca6bc519cc42acfd69aa4
+quickstart-fr-1.4.0.pdf.zip_MD5 = 7ec474aea03acba10371eb92579b0dec
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       rm -rf /install/cdrom /tmp/*
+
+       # Compress root filesystem
+       # Reason for this tar+untar+tar is removing of entries listed two or more in src/ROOTFILES
+       mkdir -p /install/cdrom/{doc,dosutils,images}
+       tar -c -C / --files-from=$(DIR_SRC)/src/ROOTFILES.$(MACHINE) \
+           -f /$(SNAME).tar --exclude='#*' --exclude='dev/pts/*' \
+           --exclude='proc/*'
+       tar -x -C /tmp -f /$(SNAME).tar
+       rm -f /$(SNAME).tar
+       cd /tmp && tar zcf /install/cdrom/$(SNAME)-$(VERSION).tgz * && rm -rf *
+       # Other files
+       sed 's/VERSION/$(VERSION)/' $(DIR_SRC)/config/cdrom/README.txt \
+               > /install/cdrom/README.txt
+       cp $(DIR_SRC)/doc/COPYING             /install/cdrom/
+       cp /install/images/*.img              /install/cdrom/images
+       unzip $(DIR_DL)/install-en-1.4.0.pdf.zip -d /install/cdrom/doc/english
+       unzip $(DIR_DL)/quickstart-en.pdf.zip -d /install/cdrom/doc/english
+       unzip $(DIR_DL)/install-fr-1.4.0.pdf.zip -d /install/cdrom/doc/francais
+       unzip $(DIR_DL)/quickstart-fr-1.4.0.pdf.zip -d /install/cdrom/doc/francais
+       cp $(DIR_SRC)/doc/{ChangeLog,packages-list.txt} /install/cdrom/doc
+       cp $(DIR_DL)/rawrite.exe              /install/cdrom/dosutils
+       unzip -j -L $(DIR_DL)/rawwritewin*.zip -x "*.txt" -d /install/cdrom/dosutils
+
+       # make the CDROM iso, USB(superfloppy&partionned) iso
+       if [ "$(MACHINE)" == "i386" ]; then \
+               mkdir -p /install/cdrom/boot/isolinux; \
+               dd if=/dev/zero  bs=1k count=2            > /install/cdrom/boot/isolinux/boot.catalog; \
+               cp /install/images/cdinitrd.gz              /install/cdrom/boot/isolinux/instroot.gz; \
+               cp /boot/vmlinuz-installer                    /install/cdrom/boot/isolinux/vmlinuz; \
+               cp $(DIR_SRC)/config/kernel/syslinux.cfg    /install/cdrom/boot/isolinux/isolinux.cfg; \
+               cp /usr/lib/syslinux/isolinux.bin           /install/cdrom/boot/isolinux/isolinux.bin; \
+               sed -e 's/boot IPCop/boot IPCop $(VERSION)/' $(DIR_SRC)/config/kernel/install-message \
+                       > /install/message; \
+               cp /install/message /install/cdrom/boot/isolinux/message; \
+               cd /install/cdrom && mkisofs -J -r -V "$(NAME)_$(VERSION)" \
+                       -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table \
+                       -c boot/isolinux/boot.catalog \
+                       . > /install/images/$(SNAME)-install-$(VERSION).$(MACHINE).iso; \
+               echo "compute size +32 blocks for bootsector/fat/etc..." && \
+               dd bs=1024 count=$$((`du -k -s ../cdrom|awk '{print $$1}'` + 32)) if=/dev/zero of=/install/images/$(SNAME)-install-usb-$(VERSION).$(MACHINE).iso; \
+               echo "move boot files on top of disk" && \
+               rm -rf boot && \
+               mkdosfs -n IPCOPBOOT -F 16 -I /install/images/$(SNAME)-install-usb-$(VERSION).$(MACHINE).iso && \
+               mount -t vfat -o loop /install/images/$(SNAME)-install-usb-$(VERSION).$(MACHINE).iso /install/mnt && \
+               cp -R ../cdrom/* /install/mnt && \
+               cp /install/images/cdinitrd.gz              /install/mnt/instroot.gz && \
+               cp /boot/vmlinuz-installer                  /install/mnt/vmlinuz && \
+               cp $(DIR_SRC)/config/kernel/syslinux.cfg    /install/mnt/syslinux.cfg && \
+               cp /install/message /install/mnt/message && \
+               umount /install/mnt && echo "and make the isofile a bootable system ready for dd" && \
+               syslinux /install/images/$(SNAME)-install-usb-$(VERSION).$(MACHINE).iso && \
+               echo "# Build the USB-partitionned scheme ISO (cover majority of BIOS)" && \
+               ISOs=/install/images/$(SNAME)-install-usb-$(VERSION).$(MACHINE).iso && \
+               ISOp=/install/images/$(SNAME)-install-usbp-$(VERSION).$(MACHINE).iso && \
+               dd bs=1k if=/dev/zero of=$$ISOp count=$$((`du -k -s $$ISOs | awk '{print $$1}'` + 10 )) && \
+               echo "# Partitionning with 32 sectors geometry." && \
+               echo "# If less, some (my) bios do not recognize the key as a bootable disk." && \
+               echo -e "0,,6,*\n;\n;\n;" > /tmp/sdisk.txt && \
+               sfdisk -qLDH 256 -S 32 $$ISOp < /tmp/sdisk.txt && \
+               echo "#Just put a mbr and superfloppy at the right place. seek=32 is due to -D & 32 sectors" && \
+               echo "#in sfdisk. If you ever change partitionning, adjust also here." && \
+               /usr/local/sbin/install-mbr $$ISOp && \
+               dd if=$$ISOs of=$$ISOp bs=512 seek=32; \
+       elif [ "$(MACHINE)" == "alpha" ]; then \
+               mkdir -p /install/cdrom/etc; \
+               cp /boot/vmlinuz-$(KVER) /install/cdrom/vmlinuz; \
+               cp /install/images/cdinitrd.gz  /install/cdrom/instroot.gz; \
+               cp /boot/bootlx /install/cdrom; \
+               cp $(DIR_SRC)/config/kernel/aboot.conf /install/cdrom/etc/aboot.conf; \
+               cd /install/cdrom && mkisofs -J -r -V "$(NAME)_$(VERSION)" \
+                       . > /install/images/$(SNAME)-install-$(VERSION).$(MACHINE).iso; \
+               isomarkboot /install/images/$(SNAME)-install-$(VERSION).$(MACHINE).iso bootlx; \
+       fi
+
diff --git a/lfs/cdrtools b/lfs/cdrtools
new file mode 100644 (file)
index 0000000..ff5e485
--- /dev/null
@@ -0,0 +1,83 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: cdrtools,v 1.4.2.3 2005/04/13 23:52:04 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.01
+
+THISAPP    = cdrtools-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = ftp://ftp.berlios.de/pub/cdrecord
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d44a81460e97ae02931c31188fe8d3fd
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./Gmake.linux GCCOPTOPT="-fno-stack-protector" INS_BASE=/usr install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/cnx_pci b/lfs/cnx_pci
new file mode 100644 (file)
index 0000000..bda2d3d
--- /dev/null
@@ -0,0 +1,109 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = cln
+THISAPP    = CnxADSL-TgrATM$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+# DL_FROM    = http://gateway.bedroom.gen.nz/~clive/adsl/thefiles/
+DL_FROM    = http://g.esp.free.fr/download
+# This package was send to me by mail and I have nothing changed to the original .tar.gz.
+# Even it has the same name as the package available for download in his web-site, it is very different
+# I hope it will be available for download in his site a day and that a proper name will allow to clearly differentiate
+# each version.
+DIR_APP    = $(DIR_SRC)/CnxADSL-TgrATM_k2.4.3-6.1.2.007CLN
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)-20041004
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-20041004-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 062afa889d23b2ea3a11938cdf2abd8d
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xzf $(DIR_DL)/$(DL_FILE) -C /
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/CnxADSL-cln-irqreturn.patch
+       cd $(DIR_APP)/KernelModule && ln -sf Makefile24 Makefile
+ifeq "$(SMP)" ""
+       sed -i -e 's/depmod -av//' \
+              -e 's%^CC.*$$%CC=$(KGCC)%'     $(DIR_APP)/KernelModule/Makefile*
+       cd $(DIR_APP) && make KERNVER=$(KVER) -C KernelModule
+       cd $(DIR_APP) && make KERNVER=$(KVER) -C KernelModule install
+       find /lib/modules/$(KVER)/ -name '*.o' -a -type f | xargs gzip -f9
+
+       sed -i -e 's%/usr/bin.*$$%/usr/sbin%'   $(DIR_APP)/DownLoadApp/Makefile
+       sed -i -e 's%CnxTgF.hex.*$$%firmware.hex%'   $(DIR_APP)/DownLoadApp/cnxadsl.conf
+       cd $(DIR_APP) && make -C DownLoadApp 
+       cd $(DIR_APP) && make -C DownLoadApp install
+else
+       sed -i -e 's/depmod -av//' \
+              -e 's%^CC.*$$%CC=$(KGCC)%'     $(DIR_APP)/KernelModule/Makefile*
+       cd $(DIR_APP) && make KERNVER=$(KVER)-smp -C KernelModule
+       cd $(DIR_APP) && make KERNVER=$(KVER)-smp -C KernelModule install
+       find /lib/modules/$(KVER)-smp/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/configroot b/lfs/configroot
new file mode 100644 (file)
index 0000000..f6351f1
--- /dev/null
@@ -0,0 +1,133 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: configroot,v 1.9.2.23 2006/02/04 11:04:36 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = configroot
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+
+       # Create all directories
+       for i in addon-lang alcatelusb auth backup backup/sets ca certs cnx_pci crls ddns dhcp dhcpc dmzholes \
+           eagle-usb eciadsl ethernet isdn key langs logging main modem optionsfw patches portfw \
+           ppp private proxy red remote shaping snort time vpn wireless xtaccess ; do \
+               mkdir -p $(CONFIG_ROOT)/$$i; \
+       done
+
+       # Touch empty files
+       for i in auth/users backup/include.user backup/exclude.user \
+           certs/index.txt ddns/config ddns/noipsettings ddns/settings ddns/ipcache dhcp/settings \
+           dhcp/fixleases dhcp/advoptions dmzholes/config ethernet/aliases ethernet/settings \
+           isdn/settings main/hosts main/settings optionsfw/settings patches/available patches/installed \
+           portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \
+           ppp/settings-5 ppp/settings proxy/settings remote/settings shaping/settings \
+           shaping/config snort/settings vpn/config vpn/settings vpn/ipsec.conf \
+           vpn/ipsec.secrets vpn/caconfig wireless/config wireless/settings; do \
+               touch $(CONFIG_ROOT)/$$i; \
+       done
+
+       # Copy initial configfiles
+       cp $(DIR_SRC)/config/cfgroot/header.pl                  $(CONFIG_ROOT)/
+       cp $(DIR_SRC)/config/cfgroot/general-functions.pl       $(CONFIG_ROOT)/
+       cp $(DIR_SRC)/config/cfgroot/lang.pl                    $(CONFIG_ROOT)/
+       cp $(DIR_SRC)/config/cfgroot/countries.pl               $(CONFIG_ROOT)/
+       cp $(DIR_SRC)/config/cfgroot/backup-exclude             $(CONFIG_ROOT)/backup/exclude.system
+       cp $(DIR_SRC)/config/cfgroot/backup-include             $(CONFIG_ROOT)/backup/include.system
+       cp $(DIR_SRC)/config/cfgroot/backup-exclude.hardware    $(CONFIG_ROOT)/backup/exclude.hardware
+       cp $(DIR_SRC)/config/cfgroot/advoptions-list            $(CONFIG_ROOT)/dhcp/advoptions-list
+       cp $(DIR_SRC)/config/cfgroot/modem-defaults             $(CONFIG_ROOT)/modem/defaults
+       cp $(DIR_SRC)/config/cfgroot/modem-settings             $(CONFIG_ROOT)/modem/settings
+       cp $(DIR_SRC)/config/cfgroot/proxy-acl                  $(CONFIG_ROOT)/proxy/acl-1.4
+       cp $(DIR_SRC)/config/cfgroot/xtaccess-config            $(CONFIG_ROOT)/xtaccess/config
+       cp $(DIR_SRC)/config/cfgroot/time-settings              $(CONFIG_ROOT)/time/settings
+       cp $(DIR_SRC)/config/cfgroot/logging-settings           $(CONFIG_ROOT)/logging/settings
+       cp $(DIR_SRC)/config/cfgroot/ipcop.gpg                  $(CONFIG_ROOT)/key/
+       cp $(DIR_SRC)/langs/list                                $(CONFIG_ROOT)/langs/
+
+       # Oneliner configfiles
+       echo  "ENABLED=off"             > $(CONFIG_ROOT)/vpn/settings
+       echo  "VPN_DELAYED_START=0"     >>$(CONFIG_ROOT)/vpn/settings
+       echo  "01"                      > $(CONFIG_ROOT)/certs/serial
+       echo  "nameserver    1.2.3.4"   > $(CONFIG_ROOT)/ppp/fake-resolv.conf
+       echo "DISABLEPING=NO"           > $(CONFIG_ROOT)/optionsfw/settings
+
+       # Symbolic links
+       ln -sf /etc/rc.d/rc.updatered $(CONFIG_ROOT)/dhcpc/dhcpcd.exe
+
+       # Modify variables in header.pl
+       sed -i -e "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" \
+           -e "s+VERSION+$(VERSION)+g" \
+           $(CONFIG_ROOT)/header.pl
+
+       # Modify variables in general-functions.pl
+       sed -i -e "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" \
+           -e "s+VERSION+$(VERSION)+g" \
+           $(CONFIG_ROOT)/general-functions.pl
+
+       # Modify CONFIG_ROOT in lang.pl
+       sed -i -e "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" \
+           $(CONFIG_ROOT)/lang.pl
+
+       # Language files
+       for i in $(DIR_SRC)/langs/*/cgi-bin/*.pl ; do \
+           cp $$i $(CONFIG_ROOT)/langs/; \
+       done
+
+       # Configroot permissions
+       chown -R nobody:nobody $(CONFIG_ROOT)
+       chown      root:root   $(CONFIG_ROOT)
+       for i in backup/ header.pl general-functions.pl lang.pl addon-lang/ langs/ red/ ; do \
+            chown -R root:root $(CONFIG_ROOT)/$$i; \
+       done
+       chown nobody:nobody $(CONFIG_ROOT)/backup/sets
+       chown root:nobody $(CONFIG_ROOT)/dhcpc
+
+       @$(POSTBUILD)
diff --git a/lfs/coreutils b/lfs/coreutils
new file mode 100644 (file)
index 0000000..5c56b09
--- /dev/null
@@ -0,0 +1,126 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: coreutils,v 1.5.2.8 2006/01/21 15:01:58 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 5.93
+
+THISAPP    = coreutils-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_GNU)/coreutils
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls --host=$(MACHINE)
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects =$(DL_FILE) $(THISAPP)-uname-1.patch
+
+$(DL_FILE)                      = $(DL_FROM)/$(DL_FILE)
+$(THISAPP)-uname-1.patch        = $(URL_LFS)/coreutils/$(THISAPP)-uname-1.patch
+
+$(DL_FILE)_MD5                  = 955d8abfd3dd8af2ca3af51480f1f9af
+$(THISAPP)-uname-1.patch_MD5    = c05b735710fbd62239588c07084852a0
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-uname-1.patch
+ifneq "$(ROOT)" ""
+       #previous patch of uname implies rebuild of doc/uname.1 which fails; remove doc&man build from toolchain
+       cd $(DIR_APP) && sed -i "s/SUBDIRS = lib src doc man po tests/SUBDIRS = lib src po tests/g" Makefile.in
+endif
+       cd $(DIR_APP) && DEFAULT_POSIX2_VERSION=199209 ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make -j 3 $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       #use hostname from inet-tools
+ifeq "$(ROOT)" ""
+       rm /usr/bin/hostname
+       mv -f /usr/bin/{basename,cat,chgrp,chmod,chown,cp,dd,df} /bin
+       mv -f /usr/bin/{dir,dircolors,du,date,echo,false,head} /bin
+       mv -f /usr/bin/{install,ln,ls,mkdir,mkfifo,mknod,mv,pwd} /bin
+       mv -f /usr/bin/{rm,rmdir,shred,sync,sleep,stty,su,test} /bin
+       mv -f /usr/bin/{touch,true,uname,vdir} /bin
+       mv -f /usr/bin/chroot /usr/sbin
+       ln -sf test /bin/[
+       ln -sf ../../bin/install /usr/bin
+       mv -f /bin/uname /bin/uname.bak
+       echo '#!/bin/bash'                              >  /bin/uname
+       echo '/bin/uname.bak $$* | sed 's/i.86/$(MACHINE)/g'' >> /bin/uname
+       chmod 755 /bin/uname
+else
+       rm /tools/bin/hostname
+       mv -f /tools/bin/uname /tools/bin/uname.bak
+       echo '#!/bin/bash'                                      >  /tools/bin/uname
+       echo '/tools/bin/uname.bak $$* | sed 's/i.86/$(MACHINE)/g''     >> /tools/bin/uname
+       chmod 755 /tools/bin/uname
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/cxacru b/lfs/cxacru
new file mode 100644 (file)
index 0000000..1c390b1
--- /dev/null
@@ -0,0 +1,117 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: cxacru,v 1.13.2.6 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2003-10-05
+
+THISAPP    = cxacru-$(VER)
+DL_FILE    = $(THISAPP)-src.tgz
+DL_FROM    = $(URL_SFNET)/accessrunner
+DIR_APP    = $(DIR_SRC)/cxacru
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = e1b42c77ee51dd58e2f93c83625ea3ff
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && for i in Makefile */Makefile; do \
+           sed -i \
+             -e 's/$$(shell uname -m)/$(MACHINE)/' \
+             -e 's/$$(shell uname -r)/$(KVER)/' \
+             -e 's%^.*DEST_KERNEL_MAIN =.*$$%DEST_KERNEL_MAIN = 2.4%' \
+             -e 's/depmod -a//' $$i; \
+           done
+else
+       cd $(DIR_APP) && for i in Makefile */Makefile; do \
+           sed -i \
+             -e 's/$$(shell uname -m)/$(MACHINE)/' \
+             -e 's/$$(shell uname -r)/$(KVER)-smp/' \
+             -e 's%^.*DEST_KERNEL_MAIN =.*$$%DEST_KERNEL_MAIN = 2.4%' \
+             -e 's/depmod -a//' $$i; \
+           done
+endif
+       if [ "$(MACHINE)" = "alpha" ]; then \
+               cd $(DIR_APP) && for i in Makefile */Makefile; do \
+               sed -i -e 's/-march=$$(DEST_MACHINE)//' $$i; \
+               done; \
+       fi
+       cd $(DIR_APP) && make CC="$(KGCC)" CX_MODULE2
+ifeq "$(SMP)" ""
+       rm -f /lib/modules/$(KVER)/kernel/drivers/usb/cxacrudbg.o
+       find /lib/modules/$(KVER)/ -name '*.o' -a -type f | xargs gzip -f9
+       cd $(DIR_APP) && make CX_INIT CX_FIRMWARE
+else
+       rm -f /lib/modules/$(KVER)-smp/kernel/drivers/usb/cxacrudbg.o
+       find /lib/modules/$(KVER)-smp/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/dejagnu b/lfs/dejagnu
new file mode 100644 (file)
index 0000000..7cd0505
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: dejagnu,v 1.4.2.2 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.4.4
+
+THISAPP    = dejagnu-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/dejagnu
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)-tools
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 053f18fd5d00873de365413cab17a666
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/tools --disable-nls
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/dhcp b/lfs/dhcp
new file mode 100644 (file)
index 0000000..62a3925
--- /dev/null
+++ b/lfs/dhcp
@@ -0,0 +1,87 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: dhcp,v 1.4.2.5 2005/08/16 19:43:47 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.0.2
+
+THISAPP    = dhcp-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.isc.org/isc/dhcp/dhcp-3.0-history/
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 04800a111521e7442749b2ce883f962b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       touch /var/state/dhcp/dhcpd.leases
+       ln -sf $(CONFIG_ROOT)/dhcp/dhcpd.conf /etc/dhcpd.conf
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/dhcpcd b/lfs/dhcpcd
new file mode 100644 (file)
index 0000000..b77c761
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: dhcpcd,v 1.5.2.3 2005/07/16 19:02:36 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.3.22-pl4
+
+THISAPP    = dhcpcd-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.phystech.com/ftp
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = dd627a121e43835bead3ffef5b1a72fd
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/$(THISAPP)_corrupt-packet.patch
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/diffutils b/lfs/diffutils
new file mode 100644 (file)
index 0000000..952bc9a
--- /dev/null
@@ -0,0 +1,98 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: diffutils,v 1.3.2.2 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.8.1
+
+THISAPP    = diffutils-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/diffutils
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 71f9c5ae19b60608f6c7f162da86a428
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/dnsmasq b/lfs/dnsmasq
new file mode 100644 (file)
index 0000000..574cd1f
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: dnsmasq,v 1.4.2.7 2005/04/28 19:34:48 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.22
+
+THISAPP    = dnsmasq-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://thekelleys.org.uk/dnsmasq
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = b38f33cd0703fa664a37a4595d918189
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i \
+           -e 's%^BINDIR.*$$%BINDIR = /usr/sbin%' \
+           -e 's%^MANDIR.*$$%MANDIR = /usr/share/man%' Makefile
+       cd $(DIR_APP) && sed -i \
+           -e 's/linux\/netlink.h/linux\/types.h/' src/netlink.c
+       cd $(DIR_APP)/src && sed -i 's/^#define CHUSER .*$$/#define CHUSER "dnsmasq"/' config.h
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/dosfstools b/lfs/dosfstools
new file mode 100644 (file)
index 0000000..6b856b2
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: dosfstools,v 1.3.2.3 2005/03/15 20:48:49 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.11
+
+THISAPP    = dosfstools-$(VER)
+DL_FILE    = $(THISAPP).src.tar.gz
+DL_FROM    = http://fresh.t-systems-sfr.com/linux/src
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 407d405ade410f7597d364ab5dc8c9f6
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/driver.img b/lfs/driver.img
new file mode 100644 (file)
index 0000000..62b9443
--- /dev/null
@@ -0,0 +1,117 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: driver.img,v 1.24.2.7 2006/01/29 20:17:30 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = driver-$(VERSION).img
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+       -strip --strip-all   /install/misc/bin/*
+
+       # make new dependencies 
+       depmod -a -F /boot/System.map-$(KVER) $(KVER)
+       if [ "$(MACHINE)" = "i386" ]; then \
+               depmod -a -F /boot/System.map-$(KVER)-smp $(KVER)-smp; \
+       fi
+
+       # Create drivers floppy
+       cd /tmp && rm -rf drivers.tgz drivers.tar bin lib etc var
+       cd / && tar -cf /tmp/drivers.tar  \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/acpi/*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/block/*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/char/*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/ide/*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/isdn/*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/net/ppp*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/net/slip*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/net/slhc*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/net/tun*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/scsi/*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/message/*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/input/*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/usb/storage/*' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/usb/host/*' \
+           --exclude='lib/modules/$(KVER)/kernel/arch/*' \
+           --exclude='lib/modules/$(KVER)/kernel/fs/*' \
+           --exclude='lib/modules/$(KVER)/kernel/net/atm/*' \
+           --exclude='lib/modules/$(KVER)/kernel/net/ipsec/*' \
+           --exclude='lib/modules/$(KVER)/kernel/net/ipv4/*' \
+           --exclude='lib/modules/$(KVER)/kernel/net/sched/*' \
+           --exclude='lib/modules/$(KVER)/*map' \
+           --exclude='lib/modules/$(KVER)/misc/*' \
+           --exclude='lib/modules/$(KVER)/extra/*' \
+           --exclude='lib/modules/$(KVER)/pcmcia/*' \
+           --exclude='lib/modules/$(KVER)/build' \
+           --exclude='lib/modules/$(KVER)/kernel/drivers/atm/*' \
+           --exclude=lib/modules/$(KVER)/kernel/drivers/usb/{3cp4218.o.gz,acm.o.gz,amedyn.o.gz,cxacru.o.gz,speedtch.o.gz,hid.o.gz,usbcore.o.gz} \
+           --exclude='lib/modules/$(KVER)/modules.*' \
+           lib/modules/$(KVER)
+       cd /tmp && tar xf drivers.tar
+       cd /tmp && mkdir -p {bin,etc/pcmcia,var/lib/pcmcia,var/run}
+       cd /tmp && cp -aR /install/misc/bin/* bin
+       cd /tmp && cp -r /etc/pcmcia/{config*,net*} etc/pcmcia
+       # cardmgr wants to execute these to bring up the card, we'll
+       # create blank ones as we'll bring them up ourselves
+       cd /tmp/etc/pcmcia && rm -f network 
+       cd /tmp/etc/pcmcia && touch network
+       cd /tmp/etc/pcmcia && chmod +x network
+       cd /tmp && tar -cf - bin/ etc/pcmcia var lib/modules/$(KVER) | gzip -9 -c > drivers.tgz
+
+       if [ "$(MACHINE)" = "alpha" ]; then \
+               cp /tmp/drivers.tgz /install/images/drivers-$(VERSION).img; \
+       else \
+               dd if=/tmp/drivers.tgz of=/install/images/drivers-$(VERSION).img bs=1440k count=1 conv=sync; \
+       fi
+       rm -rf /tmp/drivers.tgz /tmp/drivers.tar /tmp/bin /tmp/lib
+
+       ### If this fails, the disk is TOO FULL !!!!
+       tar tzf /install/images/drivers-$(VERSION).img >/dev/null 2>&1
+
+       @$(POSTBUILD)
diff --git a/lfs/e2fsprogs b/lfs/e2fsprogs
new file mode 100644 (file)
index 0000000..28f74f2
--- /dev/null
@@ -0,0 +1,109 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: e2fsprogs,v 1.7.2.4 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER      = 1.35
+
+THISAPP    = e2fsprogs-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/e2fsprogs
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(LFS_PASS)" "install"
+  TARGET     = $(DIR_INFO)/$(THISAPP)-install
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 8d25ffd60d405ef32d341704a2323807
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/e2fsprogs-build && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ifeq "$(LFS_PASS)" "install"
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-install.patch
+       -mkdir -p /install/misc/bin
+       cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure --disable-nls
+       cd $(DIR_APP)/util && CC=/usr/bin/gcc BUILD_CC=/usr/bin/gcc make -e
+       cd $(DIR_APP) && make lib/blkid/blkid_types.h
+       cd $(DIR_APP) && make lib/ext2fs/ext2_types.h
+       cd $(DIR_APP) && make lib/uuid/uuid_types.h
+       cd $(DIR_APP)/lib/blkid && make
+       cd $(DIR_APP)/lib/et && make
+       cd $(DIR_APP)/lib/ext2fs && make
+       cd $(DIR_APP)/lib/e2p && make
+       cd $(DIR_APP)/lib/uuid && make
+       cd $(DIR_APP)/misc && make mke2fs
+       cd $(DIR_APP) && install -m 0755 misc/mke2fs /install/misc/bin
+else
+       cd $(DIR_SRC) && mkdir e2fsprogs-build
+       cd $(DIR_SRC)/e2fsprogs-build && $(DIR_APP)/configure --prefix=/usr --disable-nls \
+           --with-root-prefix="" --enable-elf-shlibs --disable-evms
+       cd $(DIR_SRC)/e2fsprogs-build && make
+       cd $(DIR_SRC)/e2fsprogs-build && make install
+       cd $(DIR_SRC)/e2fsprogs-build && make install-libs
+endif
+       @rm -rf $(DIR_APP) $(DIR_SRC)/e2fsprogs-build
+       @$(POSTBUILD)
diff --git a/lfs/eagle b/lfs/eagle
new file mode 100644 (file)
index 0000000..46aa9d6
--- /dev/null
+++ b/lfs/eagle
@@ -0,0 +1,107 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: eagle,v 1.19.2.19 2005/07/28 07:01:26 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.3.2
+THISAPP    = eagle-usb-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_SFNET)/eagle-usb
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 91727db818e5170b2d78a99ee51c2d58
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --exec-prefix=/usr --enable-cmvs 
+       if [ "$(MACHINE)" = "alpha" ]; then \
+               cd $(DIR_APP) && sed -i -e 's/-mpreferred-stack-boundary=2/-ffixed-8 -mno-fp-regs/' driver/Makefile-2.4; \
+       fi
+       cd $(DIR_APP) && sed -i -e 's/depmod -a/echo/' driver/Makefile-2.4
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && CC="$(KGCC)" make -C driver
+       cd $(DIR_APP) && CC="$(KGCC)" make -C driver install
+       find /lib/modules/$(KVER)/misc -name '*.o' -a -type f | xargs gzip -f9
+       chown -R 99:99 $(CONFIG_ROOT)/eagle-usb/
+       cd $(DIR_APP) && make -C pppoa
+       cd $(DIR_APP) && make -C pppoa install
+       rename .txt WO.txt /etc/eagle-usb/{CMVep.txt,CMVei.txt}
+       # fix CRLF for CMV decoding (this was the reason for isdn failure)
+       cd $(DIR_APP) && sed -i -e 's/\r//g' /etc/eagle-usb/CMV*.txt
+else
+       cd $(DIR_APP) && CC="$(KGCC)" CONFIG_SMP=1 make -C driver
+       mkdir -p /lib/modules/$(KVER)-smp/misc
+       cd $(DIR_APP)/driver && install -c -m 0664 eagle-usb.o /lib/modules/$(KVER)-smp/misc
+       find /lib/modules/$(KVER)-smp/misc -name '*.o' -a -type f | xargs gzip -f9
+endif
+       rm -rf $ /etc/eagle-usb/scripts
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/eciadsl b/lfs/eciadsl
new file mode 100644 (file)
index 0000000..60606b1
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: eciadsl,v 1.4.2.11 2005/11/14 21:55:29 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.11
+
+THISAPP    = eciadsl-usermode-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://eciadsl.flashtux.org/download
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c3c60c83f6df30021e11da50a699dec9
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make
+       #  no more hack GS7070 binary in /usr/bin , GS7470 in /usr/sbin, all in /usr/sbin
+       cd $(DIR_APP) && install -c -p -m 0755 eciadsl-firmware eciadsl-synch eciadsl-pppoeci /usr/sbin
+       -mkdir -p /etc/eciadsl
+       cd $(DIR_APP) && install -c -p -m 0644 firmware00.bin /etc/eciadsl
+       cd $(DIR_APP) && install -c -p -m 0644 modems.db /etc/eciadsl
+       touch /etc/eciadsl/eciadsl.conf
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/ed b/lfs/ed
new file mode 100644 (file)
index 0000000..3d22ed8
--- /dev/null
+++ b/lfs/ed
@@ -0,0 +1,88 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ed,v 1.3.2.2 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.2
+
+THISAPP    = ed-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/ed
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects = $(DL_FILE) $(THISAPP)-mkstemp-1.patch
+
+$(DL_FILE)                     = $(DL_FROM)/$(DL_FILE)
+$(THISAPP)-mkstemp-1.patch     = $(URL_LFS)/ed/$(THISAPP)-mkstemp-1.patch
+
+$(DL_FILE)_MD5                 = ddd57463774cae9b50e70cd51221281b
+$(THISAPP)-mkstemp-1.patch_MD5 = e7e2248f9baa76de3db8210298e0d79e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-mkstemp-1.patch
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       mv -f /usr/bin/{ed,red} /bin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/ethtool b/lfs/ethtool
new file mode 100644 (file)
index 0000000..99d89b3
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ethtool,v 1.1.2.1 2005/06/21 20:10:18 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3
+
+THISAPP    = ethtool-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/gkernel
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = b4e71f7fa2629250677eefcb338442c5
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/expat b/lfs/expat
new file mode 100644 (file)
index 0000000..d84d5fe
--- /dev/null
+++ b/lfs/expat
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: expat,v 1.3.2.2 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.95.7
+
+THISAPP    = expat-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/expat
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 2ff59c2a5cbdd21a285c5f343e214fa9
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/expect b/lfs/expect
new file mode 100644 (file)
index 0000000..0d24c4e
--- /dev/null
@@ -0,0 +1,88 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: expect,v 1.3.2.5 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 5.41.0
+
+THISAPP    = expect-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://expect.nist.gov/old
+DIR_APP    = $(DIR_SRC)/expect-5.41
+TARGET     = $(DIR_INFO)/$(THISAPP)-tools
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects=$(DL_FILE) $(THISAPP)-spawn-1.patch
+
+$(DL_FILE)                   = $(DL_FROM)/$(DL_FILE)
+$(THISAPP)-spawn-1.patch     = $(URL_LFS)/expect/$(THISAPP)-spawn-1.patch
+
+$(DL_FILE)_MD5               = 490664773286690d111d9cd055c50700
+$(THISAPP)-spawn-1.patch_MD5 = ef6d0d0221c571fb420afb7033b3bbba
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/tcl* && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_SRC) && tar zxf $(DIR_DL)/tcl8.4.6*.tar.gz
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-spawn-1.patch
+       cd $(DIR_APP) && ./configure --prefix=/tools --with-tcl=/tools/lib --with-x=no --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make SCRIPTS="" install
+       @rm -rf $(DIR_APP) $(DIR_SRC)/tcl*
+       @$(POSTBUILD)
diff --git a/lfs/ez-ipupdate b/lfs/ez-ipupdate
new file mode 100644 (file)
index 0000000..0eb7f1e
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ez-ipupdate,v 1.4.2.4 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.0.11b8
+
+THISAPP    = ez-ipupdate-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.whyi.org/help/software
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 000211add4c4845ffa4211841bff4fb0
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/ez-ipupdate.formstring.patch
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/fcdsl b/lfs/fcdsl
new file mode 100644 (file)
index 0000000..442077f
--- /dev/null
+++ b/lfs/fcdsl
@@ -0,0 +1,122 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: fcdsl,v 1.11.2.11 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = suse8.2-03.11.02
+
+THISAPP    = fcdsl-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.avm.de/cardware/fritzcrd.dsl/linux/suse.82
+DIR_APP    = $(DIR_SRC)/fritz
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = f53974640e856d362c351f5aca5bd749
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fcdsl-singlelock.patch
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && sed -i \
+           -e 's/$$(shell uname -m)/$(MACHINE)/' \
+           -e 's/$$(shell uname -r)/$(KVER)/' \
+           -e 's/`uname -r`/$(KVER)/' \
+           -e 's/^\(CCFLAGS.*\)$$/\1 \\/' \
+           -e '\+^CCFLAGS+a\ \
+                 -include \$$(KRNLINCL)/linux/modversions.h' \
+           -e '/^DEFINES/a\ \
+                 -DMODVERSIONS \\' src.drv/makefile
+else
+       cd $(DIR_APP) && sed -i \
+           -e 's/$$(shell uname -m)/$(MACHINE)/' \
+           -e 's/$$(shell uname -r)/$(KVER)-smp/' \
+           -e 's/`uname -r`/$(KVER)-smp/' \
+           -e 's/^\(CCFLAGS.*\)$$/\1 \\/' \
+           -e '\+^CCFLAGS+a\ \
+                 -include \$$(KRNLINCL)/linux/modversions.h' \
+           -e '/^DEFINES/a\ \
+                 -DMODVERSIONS \\' src.drv/makefile
+endif
+       cd $(DIR_APP) && CC="$(KGCC)" make
+       cd $(DIR_APP) && CC="$(KGCC)" make install
+ifeq "$(SMP)" ""
+       find /lib/modules/$(KVER)/misc/ -name '*.o' -a -type f | xargs gzip -f9
+       -mkdir /usr/lib/isdn
+       cd $(DIR_APP) && install -m 0644 fdslbase.bin /usr/lib/isdn
+       -mkdir /etc/fcdsl
+       echo "# card          file            proto   io      irq     mem     cardnr  options"  >  /etc/fcdsl/fcdsl.conf
+       echo "fcdsl           fdslbase.bin    -       -       -       -       -"                >> /etc/fcdsl/fcdsl.conf
+       -mkdir -p /install/images/fcdsl
+       cd $(DIR_APP) && cp license.txt /install/images/fcdsl
+else
+       find /lib/modules/$(KVER)-smp/misc/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/fcdsl2 b/lfs/fcdsl2
new file mode 100644 (file)
index 0000000..926ec7f
--- /dev/null
@@ -0,0 +1,123 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: fcdsl2,v 1.1.2.6 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = suse9.0-03.11.04
+
+THISAPP    = fcdsl2-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.avm.de/cardware/fritzcrd.dsl_v20/linux/suse.90/
+DIR_APP    = $(DIR_SRC)/fritz
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 5e3a4cbd542ba298a4ce2ad58d789c49
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fcdslx-irqreturn.patch
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && sed -i \
+           -e 's/$$(shell uname -m)/$(MACHINE)/' \
+           -e 's/$$(shell uname -r)/$(KVER)/' \
+           -e 's/`uname -r`/$(KVER)/' \
+           -e 's/^\(CCFLAGS.*\)$$/\1 \\/' \
+           -e '\+^CCFLAGS+a\ \
+                 -include \$$(KRNLINCL)/linux/modversions.h' \
+           -e '/^DEFINES/a\ \
+                 -DMODVERSIONS \\' src.drv/makefile
+else
+       cd $(DIR_APP) && sed -i \
+           -e 's/$$(shell uname -m)/$(MACHINE)/' \
+           -e 's/$$(shell uname -r)/$(KVER)-smp/' \
+           -e 's/`uname -r`/$(KVER)-smp/' \
+           -e 's/^\(CCFLAGS.*\)$$/\1 \\/' \
+           -e '\+^CCFLAGS+a\ \
+                 -include \$$(KRNLINCL)/linux/modversions.h' \
+           -e '/^DEFINES/a\ \
+                 -DMODVERSIONS \\' src.drv/makefile
+endif
+       cd $(DIR_APP) && CC="$(KGCC)" make
+       cd $(DIR_APP) && CC="$(KGCC)" make install
+ifeq "$(SMP)" ""
+       find /lib/modules/$(KVER)/misc/ -name '*.o' -a -type f | xargs gzip -f9
+       -mkdir /usr/lib/isdn
+       cd $(DIR_APP) && install -m 0644 fds2base.bin /usr/lib/isdn
+       -mkdir /etc/fcdsl
+       echo "# card          file            proto   io      irq     mem     cardnr  options"  >  /etc/fcdsl/fcdsl2.conf
+       echo "fcdsl2           fds2base.bin    -       -       -       -       -"               >> /etc/fcdsl/fcdsl2.conf
+       -mkdir /etc/drdsl # install drdsl.ini from a 3.11.4 version as it has more lines than previous versions
+       cd $(DIR_APP) && install -m 0644 drdsl.ini /etc/drdsl
+       cd $(DIR_APP) && install -m 0755 drdsl /etc/drdsl
+else
+       find /lib/modules/$(KVER)-smp/misc/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/fcdslsl b/lfs/fcdslsl
new file mode 100644 (file)
index 0000000..3a21794
--- /dev/null
@@ -0,0 +1,121 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: fcdslsl,v 1.1.2.4 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = suse8.2-03.11.02
+
+THISAPP    = fcdslsl-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.avm.de/cardware/fritzcrd.dsl_sl/linux/suse.82/
+DIR_APP    = $(DIR_SRC)/fritz
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 12d9e6780de20fcd7fbda29a4bc87897
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fcdslx-irqreturn.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fcdslsl-singlelock.patch
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && sed -i \
+           -e 's/$$(shell uname -m)/$(MACHINE)/' \
+           -e 's/$$(shell uname -r)/$(KVER)/' \
+           -e 's/`uname -r`/$(KVER)/' \
+           -e 's/^\(CCFLAGS.*\)$$/\1 \\/' \
+           -e '\+^CCFLAGS+a\ \
+                 -include \$$(KRNLINCL)/linux/modversions.h' \
+           -e '/^DEFINES/a\ \
+                 -DMODVERSIONS \\' src.drv/makefile
+else
+       cd $(DIR_APP) && sed -i \
+           -e 's/$$(shell uname -m)/$(MACHINE)/' \
+           -e 's/$$(shell uname -r)/$(KVER)-smp/' \
+           -e 's/`uname -r`/$(KVER)-smp/' \
+           -e 's/^\(CCFLAGS.*\)$$/\1 \\/' \
+           -e '\+^CCFLAGS+a\ \
+                 -include \$$(KRNLINCL)/linux/modversions.h' \
+           -e '/^DEFINES/a\ \
+                 -DMODVERSIONS \\' src.drv/makefile
+endif
+       cd $(DIR_APP) && CC="$(KGCC)" make
+       cd $(DIR_APP) && CC="$(KGCC)" make install
+ifeq "$(SMP)" ""
+       find /lib/modules/$(KVER)/misc/ -name '*.o' -a -type f | xargs gzip -f9
+       -mkdir /usr/lib/isdn
+       cd $(DIR_APP) && install -m 0644 fdssbase.bin /usr/lib/isdn
+       -mkdir /etc/fcdsl
+       echo "# card          file            proto   io      irq     mem     cardnr  options"  >  /etc/fcdsl/fcdslsl.conf
+       echo "fcdslsl           fdssbase.bin    -       -       -       -       -"              >> /etc/fcdsl/fcdslsl.conf
+else
+       find /lib/modules/$(KVER)-smp/misc/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/fcdslslusb b/lfs/fcdslslusb
new file mode 100644 (file)
index 0000000..743f336
--- /dev/null
@@ -0,0 +1,123 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: fcdslslusb,v 1.1.2.4 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+
+VER        = suse8.2-03.11.04
+
+THISAPP    = fcdslslusb-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.avm.de/cardware/fritzcrd.dsl_sl_usb/linux/suse.82/
+DIR_APP    = $(DIR_SRC)/fritz
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 73f123817bc13a6fd0d6b6b762029efa
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fcdslx-irqreturn.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fcdslslusb-singlelock.patch
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && sed -i \
+           -e 's/$$(shell uname -m)/$(MACHINE)/' \
+           -e 's/$$(shell uname -r)/$(KVER)/' \
+           -e 's/`uname -r`/$(KVER)/' \
+           -e 's/^\(CCFLAGS.*\)$$/\1 \\/' \
+           -e '\+^CCFLAGS+a\ \
+                 -include \$$(KRNLINCL)/linux/modversions.h' \
+           -e '/^DEFINES/a\ \
+                 -DMODVERSIONS \\' src.drv/makefile
+else
+       cd $(DIR_APP) && sed -i \
+           -e 's/$$(shell uname -m)/$(MACHINE)/' \
+           -e 's/$$(shell uname -r)/$(KVER)-smp/' \
+           -e 's/`uname -r`/$(KVER)-smp/' \
+           -e 's/^\(CCFLAGS.*\)$$/\1 \\/' \
+           -e '\+^CCFLAGS+a\ \
+                 -include \$$(KRNLINCL)/linux/modversions.h' \
+           -e '/^DEFINES/a\ \
+                 -DMODVERSIONS \\' src.drv/makefile
+endif
+       cd $(DIR_APP) && CC="$(KGCC)" make
+       cd $(DIR_APP) && CC="$(KGCC)" make install
+ifeq "$(SMP)" ""
+       find /lib/modules/$(KVER)/misc/ -name '*.o' -a -type f | xargs gzip -f9
+       -mkdir /usr/lib/isdn
+       cd $(DIR_APP) && install -m 0644 fdlubase.frm /usr/lib/isdn
+       -mkdir /etc/fcdsl
+       echo "# card          file            proto   io      irq     mem     cardnr  options"  >  /etc/fcdsl/fcdslslusb.conf
+       echo "fcdslslusb        fdlubase.frm    -       -       -       -       -"              >> /etc/fcdsl/fcdslslusb.conf
+else
+       find /lib/modules/$(KVER)-smp/misc/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/fcdslusb b/lfs/fcdslusb
new file mode 100644 (file)
index 0000000..42b7c5a
--- /dev/null
@@ -0,0 +1,121 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: fcdslusb,v 1.1.2.4 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+
+VER        = suse8.2-03.11.02
+
+THISAPP    = fcdslusb-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.avm.de/cardware/fritzcrd.dsl_usb/linux/suse.82
+DIR_APP    = $(DIR_SRC)/fritz
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 1f49549e55cf1e6a0ff91395e4c6cee2
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && sed -i \
+           -e 's/$$(shell uname -m)/$(MACHINE)/' \
+           -e 's/$$(shell uname -r)/$(KVER)/' \
+           -e 's/`uname -r`/$(KVER)/' \
+           -e 's/^\(CCFLAGS.*\)$$/\1 \\/' \
+           -e '\+^CCFLAGS+a\ \
+                 -include \$$(KRNLINCL)/linux/modversions.h' \
+           -e '/^DEFINES/a\ \
+                 -DMODVERSIONS \\' src.drv/makefile
+else
+       cd $(DIR_APP) && sed -i \
+           -e 's/$$(shell uname -m)/$(MACHINE)/' \
+           -e 's/$$(shell uname -r)/$(KVER)-smp/' \
+           -e 's/`uname -r`/$(KVER)-smp/' \
+           -e 's/^\(CCFLAGS.*\)$$/\1 \\/' \
+           -e '\+^CCFLAGS+a\ \
+                 -include \$$(KRNLINCL)/linux/modversions.h' \
+           -e '/^DEFINES/a\ \
+                 -DMODVERSIONS \\' src.drv/makefile
+endif
+       cd $(DIR_APP) && CC="$(KGCC)" make
+       cd $(DIR_APP) && CC="$(KGCC)" make install
+ifeq "$(SMP)" ""
+       find /lib/modules/$(KVER)/misc/ -name '*.o' -a -type f | xargs gzip -f9
+       -mkdir /usr/lib/isdn
+       cd $(DIR_APP) && install -m 0644 fdsubase.frm /usr/lib/isdn
+       -mkdir /etc/fcdsl
+       echo "# card          file            proto   io      irq     mem     cardnr  options"  >  /etc/fcdsl/fcdslusb.conf
+       echo "fcdslusb        fdsubase.frm    -       -       -       -       -"                >> /etc/fcdsl/fcdslusb.conf
+else
+       find /lib/modules/$(KVER)-smp/misc/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/fcron b/lfs/fcron
new file mode 100644 (file)
index 0000000..4bf0420
--- /dev/null
+++ b/lfs/fcron
@@ -0,0 +1,92 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: fcron,v 1.5.2.4 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.0.2
+
+THISAPP    = fcron-$(VER)
+DL_FILE    = $(THISAPP).src.tar.gz
+DL_FROM    = http://fcron.free.fr/archives
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 416c55d8a484eb6c9907828009fd649c
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls \
+           --without-sendmail \
+           --with-spooldir=/var/spool/cron \
+           --with-username=cron --with-groupname=cron
+       cd $(DIR_APP) && yes 'n' | make
+       cd $(DIR_APP) && yes 'n' | make install
+       echo "root" > /etc/fcron.allow
+       echo "all"  > /etc/fcron.deny
+       chmod u-s /usr/bin/fcrontab /usr/bin/fcronsighup
+       /usr/bin/fcrontab $(DIR_SRC)/config/cron/crontab
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/file b/lfs/file
new file mode 100644 (file)
index 0000000..edf35b8
--- /dev/null
+++ b/lfs/file
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: file,v 1.3.2.8 2005/10/18 21:30:32 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4.16
+
+THISAPP    = file-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.astron.com/pub/file
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 9bc5a7017ab7bd544f288fd931ec741a
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/findutils b/lfs/findutils
new file mode 100644 (file)
index 0000000..f856cc3
--- /dev/null
@@ -0,0 +1,98 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: findutils,v 1.3.2.3 2005/02/26 12:26:43 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4.1.20
+
+THISAPP    = findutils-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/findutils
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --libexecdir=/usr/bin --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = e90ce7222daadeb8616b8db461e17cbc
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/flex b/lfs/flex
new file mode 100644 (file)
index 0000000..3a9c746
--- /dev/null
+++ b/lfs/flex
@@ -0,0 +1,114 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: flex,v 1.4.2.5 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.5.4a
+
+THISAPP    = flex-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/non-gnu/flex
+DIR_APP    = $(DIR_SRC)/flex-2.5.4
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --disable-nls
+  EXTRA_LDFLAGS =
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+ifeq "$(LFS_PASS)" "1"
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools1
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_LDFLAGS = -static
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools2
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_LDFLAGS =
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = bd8753d0b22e1f4ec87a553a73021adf
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+ifeq "$(ROOT)" ""
+       ln -sf libfl.a /usr/lib/libl.a
+       echo "#!/bin/sh"                        >  /usr/bin/lex
+       echo "exec /usr/bin/flex -l \"\$$@\""   >> /usr/bin/lex
+       chmod 755 /usr/bin/lex
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/gawk b/lfs/gawk
new file mode 100644 (file)
index 0000000..de4ff82
--- /dev/null
+++ b/lfs/gawk
@@ -0,0 +1,104 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: gawk,v 1.3.2.5 2005/02/05 15:38:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.1.3
+
+THISAPP    = gawk-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/gawk
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --libexecdir=/usr/bin --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE) $(THISAPP)-libexecdir-1.patch
+
+$(DL_FILE)                        = $(DL_FROM)/$(DL_FILE)
+$(THISAPP)-libexecdir-1.patch     = $(URL_LFS)/gawk/$(THISAPP)-libexecdir-1.patch
+
+$(DL_FILE)_MD5                    = b637b454005f9e72a9a8eecfacd07ca0
+$(THISAPP)-libexecdir-1.patch_MD5 = af3f30cc056f7959cbbfd0341e7b0146
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ifeq "$(ROOT)" ""
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-libexecdir-1.patch
+endif
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_MAKE) check
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/gcc b/lfs/gcc
new file mode 100644 (file)
index 0000000..b8fee47
--- /dev/null
+++ b/lfs/gcc
@@ -0,0 +1,174 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: gcc,v 1.18.2.9 2006/01/22 21:58:23 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.3.3
+
+THISAPP    = gcc-$(VER)
+DL_FILE    = gcc-core-$(VER).tar.bz2
+DL_FROM    = $(URL_GNU)/gcc/releases/gcc-$(VER)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+CFLAGS     =
+CXXFLAGS   =
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr \
+    --enable-shared --enable-threads=posix \
+    --enable-__cxa_atexit --enable-clocale=gnu \
+    --enable-languages=c,c++ --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+ifeq "$(LFS_PASS)" "1"
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools1
+  EXTRA_CONFIG = --prefix=/tools --with-local-prefix=/tools \
+    --disable-nls --enable-shared --enable-languages=c
+  EXTRA_MAKE = BOOT_LDFLAGS="-static" bootstrap
+  EXTRA_INSTALL = 
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools2
+  EXTRA_CONFIG = --prefix=/tools --with-local-prefix=/tools \
+    --enable-clocale=gnu --enable-shared \
+    --enable-threads=posix --enable-__cxa_atexit \
+    --enable-languages=c,c++ --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects = $(DL_FILE) \
+       gcc-g++-$(VER).tar.bz2 \
+       $(THISAPP)-specs-1.patch \
+       $(THISAPP)-no_fixincludes-1.patch \
+       gcc-3.3-ssp-4.patch
+
+$(DL_FILE)                             = $(DL_FROM)/$(DL_FILE)
+gcc-g++-$(VER).tar.bz2                 = $(URL_GNU)/gcc/releases/gcc-$(VER)/gcc-g++-$(VER).tar.bz2
+$(THISAPP)-specs-1.patch               = $(URL_LFS)/gcc/$(THISAPP)-specs-1.patch
+$(THISAPP)-no_fixincludes-1.patch      = $(URL_LFS)/gcc/$(THISAPP)-no_fixincludes-1.patch
+gcc-3.3-ssp-4.patch                    = $(URL_LFS)/gcc/gcc-3.3-ssp-4.patch
+
+$(DL_FILE)_MD5                         = f878a455b14b3830aaf2da0a17f003c0
+gcc-g++-$(VER).tar.bz2_MD5             = 29830b52f2c112fc660d662427660641
+$(THISAPP)-specs-1.patch_MD5           = 74cb9822f21774ae1c9a8ef1fa133f49
+$(THISAPP)-no_fixincludes-1.patch_MD5  = 5f764c74b3e9c36252fe4f9a14598ee4
+gcc-3.3-ssp-4.patch_MD5                = d31cccd0afbaaeeb95264164360ea135
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_SRC) && tar jxf $(DIR_DL)/gcc-g++-$(VER).tar.bz2
+       # fix a macro in gcc3.3.3 hurting gcc4.x !
+       cd $(DIR_APP) && sed -i "s/\*((void \*\*)__o.*;/*((void **)__o->next_free) = ((void *)datum); __o->next_free += sizeof(void *);/" include/obstack.h
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/gcc-3.3-ssp-4.patch
+       cd $(DIR_APP) && sed -i -e 's|^\(LIBGCC2_CFLAGS.*\)$$|\1 -D_LIBC_PROVIDES_SSP_|' gcc/Makefile.in
+ifeq "$(ROOT)" ""
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-no_fixincludes-1.patch
+else
+ifeq "$(LFS_PASS)" "2"
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-no_fixincludes-1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-specs-1.patch
+endif
+endif
+       @mkdir $(DIR_SRC)/gcc-build
+       cd $(DIR_SRC)/gcc-build && /bin/bash $(DIR_APP)/configure $(EXTRA_CONFIG)
+       cd $(DIR_SRC)/gcc-build && make -j 3 $(EXTRA_MAKE)
+       cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
+ifeq "$(ROOT)" ""
+       GCC_SPECS_DIR="`/usr/bin/gcc --print-libgcc-file-name`"; \
+           GCC_SPECS="`dirname $$GCC_SPECS_DIR`/specs"; \
+           if [ "$(MACHINE)" = "i386" ]; then \
+               SSP_PROT_ALL_STRING="%(cc1_cpu) %{!fno-stack-protector: %{!fno-stack-protector-all: %{!D__KERNEL__: -fstack-protector %{!nostartfiles: %{!nodefaultlibs: %{!nostdlib: %{!nostdinc: -fstack-protector-all} } } } } } } %{profile:-p}"; \
+           elif [ "$(MACHINE)" = "alpha" ]; then \
+               SSP_PROT_ALL_STRING="%{G*} %{!fno-stack-protector: %{!fno-stack-protector-all: %{!D__KERNEL__: -fstack-protector %{!nostartfiles: %{!nodefaultlibs: %{!nostdlib: %{!nostdinc: -fstack-protector-all} } } } } } }"; \
+           fi; \
+           mv -f $${GCC_SPECS} $${GCC_SPECS}.noprot; \
+           sed "/cc1:/{n;d}" $${GCC_SPECS}.noprot > $${GCC_SPECS}.tmp; \
+           sed "s/cc1:/cc1:\n$${SSP_PROT_ALL_STRING}/" $${GCC_SPECS}.tmp > $${GCC_SPECS}.prot; \
+           rm -f $${GCC_SPECS}.tmp; \
+           cp -f $${GCC_SPECS}.prot $${GCC_SPECS}
+else
+ifeq "$(LFS_PASS)" "2"
+       GCC_SPECS_DIR="`/tools/bin/gcc --print-libgcc-file-name`"; \
+           GCC_SPECS="`dirname $$GCC_SPECS_DIR`/specs"; \
+           if [ "$(MACHINE)" = "i386" ]; then \
+               SSP_PROT_ALL_STRING="%(cc1_cpu) %{!fno-stack-protector: %{!fno-stack-protector-all: %{!D__KERNEL__: -fstack-protector %{!nostartfiles: %{!nodefaultlibs: %{!nostdlib: %{!nostdinc: -fstack-protector-all} } } } } } } %{profile:-p}"; \
+           elif [ "$(MACHINE)" = "alpha" ]; then \
+               SSP_PROT_ALL_STRING="%{G*} %{!fno-stack-protector: %{!fno-stack-protector-all: %{!D__KERNEL__: -fstack-protector %{!nostartfiles: %{!nodefaultlibs: %{!nostdlib: %{!nostdinc: -fstack-protector-all} } } } } } }"; \
+           fi; \
+           mv -f $${GCC_SPECS} $${GCC_SPECS}.noprot; \
+           sed "/cc1:/{n;d}" $${GCC_SPECS}.noprot > $${GCC_SPECS}.tmp; \
+           sed "s/cc1:/cc1:\n$${SSP_PROT_ALL_STRING}/" $${GCC_SPECS}.tmp > $${GCC_SPECS}.prot; \
+           rm -f $${GCC_SPECS}.tmp; \
+           cp -f $${GCC_SPECS}.prot $${GCC_SPECS}
+endif
+endif
+ifeq "$(ROOT)" ""
+       ln -sf ../usr/bin/cpp /lib
+       ln -sf gcc /usr/bin/cc
+else
+       ln -sf gcc /tools/bin/cc
+endif
+       @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build
+       @$(POSTBUILD)
diff --git a/lfs/gdbm b/lfs/gdbm
new file mode 100644 (file)
index 0000000..07b2b7f
--- /dev/null
+++ b/lfs/gdbm
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: gdbm,v 1.4.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.8.3
+
+THISAPP    = gdbm-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/gdbm
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 1d1b1d5c0245b1c00aff92da751e9aa1
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && sed -i 's%^prefix.*$$%prefix = /usr%' Makefile
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/gettext b/lfs/gettext
new file mode 100644 (file)
index 0000000..e28d5e0
--- /dev/null
@@ -0,0 +1,98 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: gettext,v 1.3.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.14.1
+
+THISAPP    = gettext-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/gettext
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 78f4b862510beb2e5d43223dd610e77d
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/glibc b/lfs/glibc
new file mode 100644 (file)
index 0000000..73e357c
--- /dev/null
+++ b/lfs/glibc
@@ -0,0 +1,144 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: glibc,v 1.17.2.12 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.3.3
+
+THISAPP    = glibc-$(VER)-lfs-5.1
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_LFS_FTP)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+CFLAGS     =
+CXXFLAGS   =
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr \
+    --disable-profile --enable-add-ons=linuxthreads \
+    --libexecdir=/usr/lib --with-headers=/usr/include \
+    --without-cvs --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools \
+    --disable-profile --enable-add-ons=linuxthreads \
+    --with-headers=/tools/include \
+    --with-binutils=/tools/bin --without-gd \
+    --without-cvs --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = cd11fabdf5162ad68329e7b28b308278
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-2.3.3-ssp_frandom-2.patch
+       @mkdir $(DIR_SRC)/glibc-build
+       cd $(DIR_SRC)/glibc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
+ifeq "$(ROOT)" ""
+       touch /etc/ld.so.conf
+       cd $(DIR_SRC)/glibc-build && make $(EXTRA_MAKE)
+       cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install
+else
+       -mkdir /tools/etc
+       touch /tools/etc/ld.so.conf
+       cd $(DIR_SRC)/glibc-build && make $(EXTRA_MAKE) AUTOCONF=no
+       cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) AUTOCONF=no install
+endif
+
+       # Locking in the toolchain
+ifeq "$(ROOT)" ""
+       SPECFILE=/tools/lib/gcc-lib/*/*/specs && \
+       sed -e 's@/tools/lib/ld-linux.so.2@/lib/ld-linux.so.2@g' \
+           $$SPECFILE > newspecfile && mv -f newspecfile $$SPECFILE
+else
+       SPECFILE=/tools/lib/gcc-lib/*/*/specs && \
+       sed -e 's@/lib/ld-linux.so.2@/tools/lib/ld-linux.so.2@g' \
+           $$SPECFILE > tempspecfile && mv -f tempspecfile $$SPECFILE
+       rm -f /tools/lib/gcc-lib/*/*/include/{pthread.h,bits/sigthread.h}
+endif
+
+       # Creating the locales
+ifeq "$(ROOT)" ""
+       mkdir -p /usr/lib/locale
+else
+       mkdir -p /tools/lib/locale
+endif
+       cd $(DIR_SRC)/glibc-build && localedef -i en_US -f ISO-8859-1 en_US
+       cd $(DIR_SRC)/glibc-build && localedef -i en_US -f UTF-8      en_US.utf8
+
+       # Configuring Glibc
+ifeq "$(ROOT)" ""
+       cp -f /usr/share/zoneinfo/GMT /etc/localtime 
+endif
+       # Cleanup
+       @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build
+       @$(POSTBUILD)
diff --git a/lfs/gmp b/lfs/gmp
new file mode 100644 (file)
index 0000000..c27f00a
--- /dev/null
+++ b/lfs/gmp
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: gmp,v 1.5.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4.1.2
+
+THISAPP    = gmp-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/gmp
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 01c7fbd6abbb8824a22161f6c6bbdaf0
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --build=$(BUILDTARGET) --disable-nls
+       cd $(DIR_APP) && make -j 3
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/gnupg b/lfs/gnupg
new file mode 100644 (file)
index 0000000..a9872d3
--- /dev/null
+++ b/lfs/gnupg
@@ -0,0 +1,88 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: gnupg,v 1.5.2.6 2005/07/27 23:12:41 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.4.2
+
+THISAPP    = gnupg-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://ftp.linux.it/pub/mirrors/gnupg/gnupg
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 09825744d59db5ed87713c5a3487cd9d
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       rm -rf /home/nobody/.gnupg /root/.gnupg
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --disable-mailto \
+           --disable-photo-viewers --disable-ldap
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       gpg --import $(DIR_SRC)/config/cfgroot/ipcop.gpg
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/grep b/lfs/grep
new file mode 100644 (file)
index 0000000..3e89e58
--- /dev/null
+++ b/lfs/grep
@@ -0,0 +1,100 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: grep,v 1.3.2.3 2005/02/26 20:13:20 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.5.1
+
+THISAPP    = grep-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_GNU)/grep
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --bindir=/bin \
+    --with-included-regex --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls \
+    --disable-perl-regexp --with-included-regex
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ddd99e2d5d4f4611357e31e97f080cf2
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/groff b/lfs/groff
new file mode 100644 (file)
index 0000000..e5e9ebc
--- /dev/null
+++ b/lfs/groff
@@ -0,0 +1,88 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: groff,v 1.3.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.19
+
+THISAPP    = groff-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/groff
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c12bf574120df33ec8c18d92703e099e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && PAGE=letter ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       ln -sf soelim /usr/bin/zsoelim
+       ln -sf eqn /usr/bin/geqn
+       ln -sf tbl /usr/bin/gtbl
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/grub b/lfs/grub
new file mode 100644 (file)
index 0000000..aa5dc69
--- /dev/null
+++ b/lfs/grub
@@ -0,0 +1,120 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: grub,v 1.9.2.9 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.95
+
+THISAPP    = grub-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_AGNU)/grub
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+CFLAGS     =
+CXXFLAGS   =
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 4ca8e4363d5f1980f2c63b7f5cdbe0d1
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-configfile.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.90-symlinkmenulst.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/grub-0.93-endedit.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.90-append.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.91-bootonce.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-graphics.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.91-splashimagehelp.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-graphics-bootterm.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-special-device-names.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.94-i2o.patch
+       cd $(DIR_APP)/netboot && patch -Np0 < $(DIR_SRC)/src/patches/grub-0.93-rtl8139.patch
+       cd $(DIR_APP) && autoreconf --install --force
+       cd $(DIR_APP) && CFLAGS="-Os -fno-stack-protector" \
+           STAGE2_CFLAGS="-Os -fno-stack-protector" \
+           ./configure --prefix=/usr \
+                       --enable-rtl8139 \
+                       --enable-ne --enable-ne-scan=0x300 \
+                       --disable-nls \
+                       --disable-fat \
+                       --disable-ffs \
+                       --disable-minix \
+                       --disable-reiserfs \
+                       --disable-vstafs \
+                       --disable-jfs \
+                       --disable-xfs
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+
+       # grub files
+       mkdir -p /boot/grub
+       for i in $(DIR_SRC)/config/grub/*; do \
+           [ -f $$i ] && cp -f $$i /boot/grub; \
+       done
+
+       install -m 0755 $(DIR_SRC)/src/install+setup/install/grubbatch /boot/grub
+
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/gzip b/lfs/gzip
new file mode 100644 (file)
index 0000000..5c81408
--- /dev/null
+++ b/lfs/gzip
@@ -0,0 +1,114 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: gzip,v 1.3.2.4 2005/07/18 20:40:37 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.3.5
+
+THISAPP    = gzip-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_AGNU)/gzip
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 3d6c191dfd2bf307014b421c12dc8469
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       #only gzip is include, so fix only this part
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gzip-1.3.5-asm-execstack.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gzip-1.3.3-window-size.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gzip-1.3.5-perm.patch              # CAN-2005-0988
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gzip-1.3.5-gunzip-dir.patch        # CAN-2005-1228
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+ifeq "$(ROOT)" ""
+       cd $(DIR_APP) && cp gzexe.in{,.backup}
+       cd $(DIR_APP) && sed 's%"BINDIR"%/bin%' gzexe.in.backup > gzexe.in
+endif
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+ifeq "$(ROOT)" ""
+       mv /usr/bin/gzip /bin
+       rm /usr/bin/{gunzip,zcat}
+       ln -sf gzip /bin/gunzip
+       ln -sf gzip /bin/zcat
+       ln -sf gunzip /bin/uncompress
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/hdparm b/lfs/hdparm
new file mode 100644 (file)
index 0000000..2cbf5aa
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: hdparm,v 1.3.2.7 2006/01/15 08:55:50 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 6.3
+
+THISAPP    = hdparm-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.ibiblio.org/pub/Linux/system/hardware
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0c12672f3a09c14ad0b0882f15fc9389
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/iana-etc b/lfs/iana-etc
new file mode 100644 (file)
index 0000000..cf35403
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: iana-etc,v 1.1.2.5 2006/02/02 14:23:24 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.00
+
+THISAPP    = iana-etc-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = http://www.sethwklein.net/projects/iana-etc/downloads
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 880842cd24c219241ceef7f8de442d82
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/ibod b/lfs/ibod
new file mode 100644 (file)
index 0000000..e6ca43c
--- /dev/null
+++ b/lfs/ibod
@@ -0,0 +1,62 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ibod,v 1.5.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = ibod
+DIR_APP    = $(DIR_SRC)/src/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : 
+       @$(PREBUILD)
+       cd $(DIR_APP) && make ibod
+       mkdir -p /etc/ppp
+       cd $(DIR_APP) && install -m 0644 ibod.cf /etc/ppp
+       cd $(DIR_APP) && install -m 0755 ibod /usr/sbin
+       cd $(DIR_APP) && rm -f ibod
+       @$(POSTBUILD)
diff --git a/lfs/inetutils b/lfs/inetutils
new file mode 100644 (file)
index 0000000..4f0b606
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: inetutils,v 1.3.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.4.2
+
+THISAPP    = inetutils-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/inetutils
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = df0909a586ddac2b7a0d62795eea4206
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-ping-1.patch
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --disable-syslogd \
+           --libexecdir=/usr/sbin --disable-logger \
+           --sysconfdir=/etc --localstatedir=/var \
+           --disable-whois --disable-servers
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       mv -f /usr/bin/ping /bin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/initrd b/lfs/initrd
new file mode 100644 (file)
index 0000000..66c578e
--- /dev/null
@@ -0,0 +1,148 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: initrd,v 1.26.2.8 2005/12/03 21:28:44 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = initrd
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+       rm -f /install/images/{cdinitrd,cdinitrd.gz,fdinitrd,fdinitrd.gz}
+       -strip --strip-all   /install/misc/bin/*
+       -strip --strip-all   /install/initrd/bin/*
+       -strip --strip-debug /install/initrd/lib/*
+
+       # Finish up initrd directory
+       -mkdir -p /install/initrd/{etc,lib/modules/$(KVER)/kernel/drivers,cdrom,dev,harddisk,proc,tmp,usr/share/terminfo/l,var/run} && \
+       ln -sf /bin /install/initrd/sbin
+       cd /install/initrd/dev && /dev/make_devices 
+       cp -aRf $(DIR_SRC)/config/install/* /install/initrd/etc/
+       rm -rf /install/initrd/etc/CVS/
+       cd /install/initrd/dev && ln -sf fd0 floppy
+       chmod 755 /install/initrd/etc/halt /install/initrd/etc/rc
+       cp -f /usr/share/terminfo/l/linux /install/initrd/usr/share/terminfo/l
+
+       if [ "$(MACHINE)" = "alpha" ]; then \
+               tar cvzf /tmp/libc.tgz /usr/share/locale /lib/libc.* /lib/libc-* /lib/libdl* /lib/libnsl* /lib/libresolv* /lib/libutil* /lib/ld* /lib/libcrypt*; \
+               tar xvzf /tmp/libc.tgz -C /install/initrd; \
+               strip /install/initrd/lib/*; \
+               rm -f /tmp/libc.tgz; \
+       fi
+
+       # Extra modules
+       -mkdir -p /install/initrd/lib/modules/$(KVER)/kernel/drivers/scsi
+       cp -f /lib/modules/$(KVER)/kernel/drivers/scsi/{scsi_mod.o.gz,sd_mod.o.gz,sr_mod.o.gz} \
+           /install/initrd/lib/modules/$(KVER)/kernel/drivers/scsi/
+       -mkdir -p /install/initrd/lib/modules/$(KVER)/kernel/drivers/usb/storage/
+       cp -f /lib/modules/$(KVER)/kernel/drivers/usb/storage/*.o.gz \
+           /install/initrd/lib/modules/$(KVER)/kernel/drivers/usb/storage/
+
+       -mkdir -p /install/initrd/lib/modules/$(KVER)/kernel/drivers/usb/host/
+       cp -f /lib/modules/$(KVER)/kernel/drivers/usb/host/{usb-*,ehci*} \
+             /lib/modules/$(KVER)/kernel/drivers/usb/hid.o.gz \
+             /lib/modules/$(KVER)/kernel/drivers/usb/*core.o.gz \
+           /install/initrd/lib/modules/$(KVER)/kernel/drivers/usb/
+
+       -mkdir -p /install/initrd/lib/modules/$(KVER)/kernel/drivers/input
+       cp -f /lib/modules/$(KVER)/kernel/drivers/input/{input.o.gz,keybdev.o.gz} \
+           /install/initrd/lib/modules/$(KVER)/kernel/drivers/input/
+
+       -mkdir -p /install/initrd/lib/modules/$(KVER)/kernel/drivers/pnp
+       cp -f /lib/modules/$(KVER)/kernel/drivers/pnp/* \
+           /install/initrd/lib/modules/$(KVER)/kernel/drivers/pnp/
+
+       cp -f /lib/modules/$(KVER)/modules.* /install/initrd/lib/modules/$(KVER)/
+
+       # Floppy initrd
+       -mkdir -p /install/{images,mnt}
+       RAMDISK_SIZE=`grep CONFIG_BLK_DEV_RAM_SIZE $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE) | sed -e 's/CONFIG_BLK_DEV_RAM_SIZE=//'` && \
+           dd if=/dev/zero of=/install/images/fdinitrd bs=1k count=$${RAMDISK_SIZE}
+       for i in `seq 0 7`; do \
+           if (! losetup /dev/loop$${i} >/dev/null 2>&1 ); then \
+               LOOPDEV="/dev/loop$${i}" \
+                break; \
+           fi; \
+           done && \
+           losetup $$LOOPDEV /install/images/fdinitrd && \
+           mke2fs -m 0 -N 1024 $$LOOPDEV && \
+           mount -t ext2 $$LOOPDEV /install/mnt && \
+           rm -rf /install/mnt/lost+found && \
+           cp -aR /install/initrd/* /install/mnt/ && \
+           umount /install/mnt && \
+           losetup -d $$LOOPDEV
+       gzip -9 /install/images/fdinitrd
+
+       # CDRom initrd, add vfat modules
+       -mkdir -p /install/initrd/lib/modules/$(KVER)/kernel/fs
+       cp -fR /lib/modules/$(KVER)/kernel/fs/* \
+           /install/initrd/lib/modules/$(KVER)/kernel/fs/
+
+       RAMDISK_SIZE=`grep CONFIG_BLK_DEV_RAM_SIZE $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE) | sed -e 's/CONFIG_BLK_DEV_RAM_SIZE=//'` && \
+           dd if=/dev/zero of=/install/images/cdinitrd bs=1k count=$${RAMDISK_SIZE}
+       for i in `seq 0 7`; do \
+           if (! losetup /dev/loop$${i} >/dev/null 2>&1 ); then \
+               LOOPDEV="/dev/loop$${i}" \
+                break; \
+           fi; \
+           done && \
+           losetup $$LOOPDEV /install/images/cdinitrd && \
+           mke2fs -m 0 -N 1024 $$LOOPDEV && \
+           mount -t ext2 $$LOOPDEV /install/mnt && \
+           rm -rf /install/mnt/lost+found && \
+           cp -aR /install/initrd/* /install/mnt/ && \
+           cd /install/mnt && tar xfz /install/images/drivers-$(VERSION).img && \
+           cd /install/mnt && tar xfz /install/images/scsidrv-$(VERSION).img && \
+           cp -a  /install/misc/bin/* /install/mnt/bin && \
+           touch /install/mnt/CDROMBOOT && \
+           cd / && umount /install/mnt && \
+           losetup -d $$LOOPDEV
+       gzip -9 /install/images/cdinitrd
+
+       @$(POSTBUILD)
diff --git a/lfs/initscripts b/lfs/initscripts
new file mode 100644 (file)
index 0000000..23508ab
--- /dev/null
@@ -0,0 +1,72 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: initscripts,v 1.6.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = initscripts
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+       -mkdir -p /etc/rc.d/helper
+       for i in $(DIR_SRC)/src/rc.d/* ; do \
+           if [ -f $$i ]; then \
+               sed "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" $$i > /etc/rc.d/`basename $$i`; \
+           fi; \
+       done
+       for i in $(DIR_SRC)/src/rc.d/helper/* ; do \
+           if [ -f $$i ]; then \
+               sed "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" $$i > /etc/rc.d/helper/`basename $$i`; \
+           fi; \
+       done
+       chmod -R 755 /etc/rc.d
+       chgrp nobody /etc/rc.d/rc.red
+       chmod 4750 /etc/rc.d/rc.red
+
+       @$(POSTBUILD)
diff --git a/lfs/installer b/lfs/installer
new file mode 100644 (file)
index 0000000..22db3cb
--- /dev/null
@@ -0,0 +1,70 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: installer,v 1.6.2.5 2006/01/11 01:01:38 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = installer
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && mkdir $(DIR_APP) && cp -R $(DIR_SRC)/src/install+setup/* $(DIR_APP)
+       
+       cd $(DIR_APP)/libsmooth && make CFLAGS="-Os -fomit-frame-pointer -Wall \
+           -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \
+            -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'"
+
+       cd $(DIR_APP)/install && make CFLAGS="-Os -fomit-frame-pointer -Wall \
+           -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \
+            -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"' -DKERNEL_VERSION='\"$(KVER)\"'"
+
+       cd $(DIR_APP)/install && install -m 0755 install probescsi.sh /install/initrd/bin
+       cd $(DIR_APP)/install && install -m 0755 install2  /usr/local/bin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/ipac-ng b/lfs/ipac-ng
new file mode 100644 (file)
index 0000000..6754995
--- /dev/null
@@ -0,0 +1,93 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ipac-ng,v 1.5.2.6 2006/01/14 16:41:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.31
+
+THISAPP    = ipac-ng-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/ipac-ng
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0c010550adfc140bb3990eb02f1604d0
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-iptables-1.3.1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-fetchcounter.patch
+       cd $(DIR_APP) && sed -i -e 's%/var/lib/ipac%/var/log/ip-acct%g' configure
+       cd $(DIR_APP) && chmod 755 configure
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --enable-default-storage=gdbm
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       ln -sf /bin/true /bin/mail
+       -mkdir -p /var/log/ip-acct
+       -mkdir -p /etc/ipac-ng
+       cp -f $(DIR_SRC)/config/ipac-ng/*.conf /etc/ipac-ng/
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/ipaddr b/lfs/ipaddr
new file mode 100644 (file)
index 0000000..556a42b
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ipaddr,v 1.1.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.2
+
+THISAPP    = ipaddr-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.ingate.com/pub/ipaddr
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 239a3725a3dd6a1d1e369b75144e617e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && install -m 0644 ipaddr.py /usr/lib/python*
+       /usr/bin/python -c "import ipaddr"
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/iproute2 b/lfs/iproute2
new file mode 100644 (file)
index 0000000..47a1b5f
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: iproute2,v 1.6.2.4 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.4.7-now-ss010824
+
+THISAPP    = iproute2-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.funet.fi/pub/mirrors/ftp.inr.ac.ru/ip-routing
+DIR_APP    = $(DIR_SRC)/iproute2
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects = $(DL_FILE) htb3.6-020525.tgz
+
+$(DL_FILE)             = $(DL_FROM)/$(DL_FILE)
+htb3.6-020525.tgz      = http://luxik.cdi.cz/~devik/qos/htb/v3/htb3.6-020525.tgz
+
+$(DL_FILE)_MD5         = b05a4e375d9468be3a1dd3f0e83daee8
+htb3.6-020525.tgz_MD5  = 3064fd8642ce6a7e155a29c5205b99d4
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && tar xfz $(DIR_DL)/htb3.6-020525.tgz *.diff
+       cd $(DIR_APP) && for i in htb3*tc.diff ; do patch -Np1 < $$i; done
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iproute2-includes.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iproute2-2.4.7-netlink.patch
+       cd $(DIR_APP) && sed -i -e 's/-Werror//' Makefile
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && install -m 0755 ip/ip ip/rtmon tc/tc /sbin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/iptables b/lfs/iptables
new file mode 100644 (file)
index 0000000..b51b1cd
--- /dev/null
@@ -0,0 +1,98 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: iptables,v 1.5.2.4 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.3.5
+
+THISAPP    = iptables-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = http://ftp.netfilter.org/pub/iptables
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects =      $(DL_FILE) \
+                       iptables-1.3.0-imq1.diff \
+                       netfilter-layer7-v2.1.tar.gz
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+iptables-1.3.0-imq1.diff               = http://www.linuximq.net/patchs/iptables-1.3.0-imq1.diff
+netfilter-layer7-v2.1.tar.gz   = http://mesh.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.1.tar.gz
+
+$(DL_FILE)_MD5 = 00fb916fa8040ca992a5ace56d905ea5
+iptables-1.3.0-imq1.diff_MD5           = 9adae8be9562775a176fc1b275b3cb29
+netfilter-layer7-v2.1.tar.gz_MD5       = 551626a158c2a2cbfd937d27ecc7fac1
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       # iptables-fixed.tar.gz is made in the linux kernel build process
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/iptables-fixed.tar.gz
+       @rm -rf $(DIR_DL)/netfilter-layer7-v2.1 && cd $(DIR_SRC) && tar zxf $(DIR_DL)/netfilter-layer7-v2.1.tar.gz
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.1/iptables-layer7-2.1.patch
+       # Appears that libipt_set/SET maybe a little broken, fix it for now...
+       cd $(DIR_APP)/extensions && sed -i -e 's/#include\ \"..\/ipset\/libipt_set.h\"//' libipt_set.c
+       cd $(DIR_APP)/extensions && sed -i -e 's/#include\ \"..\/ipset\/libipt_set.h\"//' libipt_SET.c
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/iptables-1.3.0-imq1.diff
+       chmod +x $(DIR_APP)/extensions/.IMQ-test*  $(DIR_APP)/extensions/.layer7-test*
+       cd $(DIR_APP) && make BINDIR=/sbin MANDIR=/usr/share/man LIBDIR=/lib
+       cd $(DIR_APP) && make BINDIR=/sbin MANDIR=/usr/share/man LIBDIR=/lib install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/iptables_orig b/lfs/iptables_orig
new file mode 100644 (file)
index 0000000..a19cbb4
--- /dev/null
@@ -0,0 +1,89 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: iptables,v 1.5.2.5 2006/01/14 16:35:16 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.3.4
+
+THISAPP    = iptables-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = http://www.netfilter.org/projects/iptables/files
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = fdff8abe890807968226b0c374335305
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       # iptables-fixed.tar.gz is made in the linux kernel build process after netfilter patches
+       # string extension is reverted to the only code usable on 2.4 kernel
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/iptables-fixed.tar.gz
+       # hack to disable IPv6 compilation as the configuration variable does not work when ip6.h is present
+       cd $(DIR_APP) && sed -i -e 's/DO_IPV6:=1/DO_IPV6:=0/' Makefile
+
+       cd $(DIR_APP) && make BINDIR=/sbin MANDIR=/usr/share/man LIBDIR=/lib
+       cd $(DIR_APP) && make BINDIR=/sbin MANDIR=/usr/share/man LIBDIR=/lib install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/iptstate b/lfs/iptstate
new file mode 100644 (file)
index 0000000..23d5028
--- /dev/null
@@ -0,0 +1,83 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+#     2005-jul  - Created ipstate lfs file from Mark's traceroute file             #
+#                                                                             #
+# $Id: iptstate,v 1.1.2.1 2005/07/07 19:14:06 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.4
+
+THISAPP    = iptstate-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = http://www.phildev.net/iptstate/
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 717b13d5b6521ac1b8683caf1dc247a0
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/iputils b/lfs/iputils
new file mode 100644 (file)
index 0000000..1c90fa3
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: iputils,v 1.1.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = ss020927
+
+THISAPP    = iputils-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.tux.org/people/alexey-kuznetsov/ip-routing
+DIR_APP    = $(DIR_SRC)/iputils
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = b5493f7a2997130a4f86c486c9993b86
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make ping
+       cd $(DIR_APP) && install -m 0755 ping /usr/bin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/isapnptools b/lfs/isapnptools
new file mode 100644 (file)
index 0000000..be5e0e3
--- /dev/null
@@ -0,0 +1,89 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: isapnptools,v 1.3.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.26
+
+THISAPP    = isapnptools-$(VER)
+DL_FILE    = $(THISAPP).tgz
+DL_FROM    = ftp://ftp.ibiblio.org/pub/Linux/system/hardware
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 26def2016548edeafe383113f0bc8ac6
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       -mkdir -p $(CONFIG_ROOT)/isapnp
+       chown -R 99:99 $(CONFIG_ROOT)/isapnp
+       touch $(CONFIG_ROOT)/isapnp/isapnp.conf
+       chown -R 99:99 $(CONFIG_ROOT)/isapnp/isapnp.conf
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/isdn4k-utils b/lfs/isdn4k-utils
new file mode 100644 (file)
index 0000000..d8cfb34
--- /dev/null
@@ -0,0 +1,109 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: isdn4k-utils,v 1.8.2.4 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = v3.2p1
+
+THISAPP    = isdn4k-utils.$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = ftp://ftp.isdn4linux.de/pub/isdn4linux/utils
+DIR_APP    = $(DIR_SRC)/isdn4k-utils
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects = $(DL_FILE) isdn4k-utils_ippp-filter.diff
+
+$(DL_FILE)                         = $(DL_FROM)/$(DL_FILE)
+isdn4k-utils_ippp-filter.diff      = http://trash.net/~kaber/ippp-filter/isdn4k-utils_ippp-filter.diff
+
+$(DL_FILE)_MD5                     = d347afa462e46eccfd1284aebae227b6
+isdn4k-utils_ippp-filter.diff_MD5  = b8ff58859b9e379d1f9842d43ce5956e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/isdn4k-utils_ippp-filter.diff
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/isdn4k-utils-v3.2p1-c89.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/isdn4k-utils-v3.2p1-config.patch
+       cd $(DIR_APP) && sed -i 's%-lt 64%-lt 16%' scripts/makedev.sh
+       cd $(DIR_APP)/capi20 && rm -f lt* aclocal.m4 
+       cd $(DIR_APP)/capi20 && aclocal
+       cd $(DIR_APP)/capi20 && libtoolize --force --automake
+       cd $(DIR_APP)/capi20 && automake --add-missing
+       cd $(DIR_APP)/capi20 && autoconf
+       cd $(DIR_APP)/capiinfo && rm -f aclocal.m4
+       cd $(DIR_APP)/capiinfo && aclocal
+       cd $(DIR_APP)/capiinfo && libtoolize --force --automake
+       cd $(DIR_APP)/capiinfo && automake --add-missing
+       cd $(DIR_APP)/capiinfo && autoconf
+       cd $(DIR_APP)/capiinit && rm -f aclocal.m4
+       cd $(DIR_APP)/capiinit && aclocal
+       cd $(DIR_APP)/capiinit && libtoolize --force --automake
+       cd $(DIR_APP)/capiinit && automake --add-missing
+       cd $(DIR_APP)/capiinit && autoconf
+       cd $(DIR_APP)/ipppd && autoconf
+       cd $(DIR_APP)/ipppd && sed -i -e 's/net\/bpf/pcap/' sys-linux.c
+       cd $(DIR_APP)/ipppd && sed -i -e 's/net\/bpf/pcap/' ipppd.h
+       cd $(DIR_APP) && make subconfig
+       cd $(DIR_APP)/ipppd && sed -i 's/^IPPP_FILTER.*$$/IPPP_FILTER := 1/' Makefile
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/kbd b/lfs/kbd
new file mode 100644 (file)
index 0000000..c30f371
--- /dev/null
+++ b/lfs/kbd
@@ -0,0 +1,106 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: kbd,v 1.5.2.10 2005/10/03 22:49:44 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.12
+
+THISAPP    = kbd-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_KERNEL)/linux/utils/kbd
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(LFS_PASS)" "install"
+  TARGET     = $(DIR_INFO)/$(THISAPP)-install
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects = $(DL_FILE) $(THISAPP)-more-programs-1.patch
+
+$(DL_FILE)                            = $(DL_FROM)/$(DL_FILE)
+$(THISAPP)-more-programs-1.patch      = $(URL_LFS)/kbd/$(THISAPP)-more_programs-1.patch
+
+$(DL_FILE)_MD5                        = 069d1175b4891343b107a8ac2b4a39f6
+$(THISAPP)-more-programs-1.patch_MD5  = dc70180a6bc0afa2b741cd38e3cc2e18
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-more-programs-1.patch
+       # copy patched Vietnamese font
+       cd $(DIR_APP) && cp -f $(DIR_SRC)/src/patches/viscii10-8x16-new.psfu data/consolefonts/viscii10-8x16.psfu
+ifeq "$(LFS_PASS)" "install"
+       cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" CC=/usr/bin/gcc ./configure --disable-nls
+       cd $(DIR_APP)/src && make CFLAGS="-Os -fomit-frame-pointer" DATA_DIR=/lib/kbd BINDIR=/bin setfont kbd_mode dumpkeys loadkeys loadunimap showconsolefont
+       cd $(DIR_APP)/src && install -m 0755 setfont loadunimap kbd_mode dumpkeys loadkeys showconsolefont unicode_start unicode_stop /install/initrd/bin
+       mkdir -p /install/initrd/lib/kbd/consolefonts
+       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat0-16.psfu /install/initrd/lib/kbd/consolefonts
+       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat1-16.psfu /install/initrd/lib/kbd/consolefonts
+       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat2-16.psfu /install/initrd/lib/kbd/consolefonts
+       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat5-16.psfu /install/initrd/lib/kbd/consolefonts
+       cd $(DIR_APP) && install -m 0644 data/consolefonts/iso07u-16.psfu /install/initrd/lib/kbd/consolefonts
+       cd $(DIR_APP) && install -m 0644 data/consolefonts/viscii10-8x16.psfu /install/initrd/lib/kbd/consolefonts
+else
+       cd $(DIR_APP) && ./configure --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/kudzu b/lfs/kudzu
new file mode 100644 (file)
index 0000000..c17cb2c
--- /dev/null
+++ b/lfs/kudzu
@@ -0,0 +1,98 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: kudzu,v 1.9.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.99.50
+
+THISAPP    = kudzu-$(VER)
+DL_FILE    = kudzu_$(VER).orig.tar.gz
+DL_FROM    = $(URL_DEBIAN)/k/kudzu
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(LFS_PASS)" "install"
+  TARGET     = $(DIR_INFO)/$(THISAPP)-install
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 1f59043bb9b17c1709b4fcd4cae97711
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-pam.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-updfstab.conf.patch
+ifeq "$(LFS_PASS)" "install"
+       cd $(DIR_APP) && make CFLAGS="-Os -fomit-frame-pointer -Wall -D_GNU_SOURCE -I. -I/install/include" libkudzu.a
+       cd $(DIR_APP) && install -m 0644 libkudzu.a /install/lib
+       -mkdir -p /install/include/kudzu
+       cd $(DIR_APP) && install -m 0644 *.h /install/include/kudzu
+else
+       cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make
+       cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make install
+       cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make install-program
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/less b/lfs/less
new file mode 100644 (file)
index 0000000..e299f04
--- /dev/null
+++ b/lfs/less
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: less,v 1.3.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 382
+
+THISAPP    = less-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.greenwoodsoftware.com/less
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 103fe4aef6297b93f0f73f38cc3b1bd7
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --bindir=/bin --sysconfdir=/etc
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/libcap b/lfs/libcap
new file mode 100644 (file)
index 0000000..d078e51
--- /dev/null
@@ -0,0 +1,87 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: libcap,v 1.5.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.10
+
+THISAPP    = libcap-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_KERNEL)/linux/libs/security/linux-privs/kernel-2.4
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 2c09eea823f67cfdde96177a959bc39b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-syscall.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-shared.patch
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       chmod +x /lib/libcap.so.*
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/libnet b/lfs/libnet
new file mode 100644 (file)
index 0000000..19c6091
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# 23-4-2004 Mark Wormgoor <mark@wormgoor.com>                                 #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# 
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.1.2.1
+
+THISAPP    = libnet-$(VER)
+DL_FILE    = libnet.tar.gz
+DL_FROM    = http://www.packetfactory.net/libnet/dist
+DIR_APP    = $(DIR_SRC)/libnet
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = be845c41170d72c7db524f3411b50256
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/libpcap b/lfs/libpcap
new file mode 100644 (file)
index 0000000..f32fe41
--- /dev/null
@@ -0,0 +1,88 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: libpcap,v 1.5.2.5 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.8.3
+
+THISAPP    = libpcap-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.tcpdump.org/release
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 56a9d4615d8354fcfe8cff8c8443c77b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libpcap-0.8.3-shared.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/libpcap-0.8.3-ppp.patch
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make 
+       cd $(DIR_APP) && make install
+       cd $(DIR_APP) && cp -f pcap-int.h /usr/include
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/libpng b/lfs/libpng
new file mode 100644 (file)
index 0000000..321f261
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: libpng,v 1.3.2.4 2005/02/27 15:23:03 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.2.8
+
+THISAPP    = libpng-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/libpng
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = cac1512878fb98f2456df6dc50bc9bc7
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/libpng-1.2.8-link_to_proper_libs-1.patch
+       cd $(DIR_APP) && sed \
+           -e 's%^prefix.*$$%prefix=/usr%' \
+           -e 's%^ZLIBLIB.*$$%ZLIBLIB=/usr/lib%' \
+           -e 's%^ZLIBINC.*$$%ZLIBINC=/usr/include%' \
+           -e 's%-O3%$(CFLAGS)%' scripts/makefile.linux > makefile
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/libsafe b/lfs/libsafe
new file mode 100644 (file)
index 0000000..e211044
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: libsafe,v 1.3.2.4 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.0-16
+
+#THISAPP    = libsafe-$(VER)
+THISAPP    = libsafe_$(VER)
+#DL_FILE    = $(THISAPP).tgz
+DL_FILE    = $(THISAPP).orig.tar.gz
+#DL_FROM    = http://www.research.avayalabs.com/project/libsafe/src
+DL_FROM    = $(URL_DEBIAN)/libs/libsafe
+#DIR_APP    = $(DIR_SRC)/$(THISAPP)
+DIR_APP    = $(DIR_SRC)/libsafe-$(VER)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 6b7b6e6df84d4afb469ccc66d04fc24d
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsafe-functioncaching.diff
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsafe-alpha.diff
+       cd $(DIR_APP) && make libsafe
+       cd $(DIR_APP) && yes | make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/libtool b/lfs/libtool
new file mode 100644 (file)
index 0000000..4f0ed90
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: libtool,v 1.3.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.5.6
+
+THISAPP    = libtool-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+#DL_FROM    = $(URL_GNU)/libtool
+DL_FROM    = $(URL_LFS_FTP)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 31d49196d0ab276453c44905e34c40aa
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/libusb b/lfs/libusb
new file mode 100644 (file)
index 0000000..24ed28a
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: libusb,v 1.4.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.1.7
+
+THISAPP    = libusb-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/libusb
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 4c7abee86d8715bccb43428a500d2170
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls \
+           --with-linux-headers=/usr/src/linux --target=$(MACHINE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/libwww-perl b/lfs/libwww-perl
new file mode 100644 (file)
index 0000000..aaf0bbb
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: libwww-perl,v 1.1.2.2 2005/07/07 22:31:30 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 5.803
+
+THISAPP    = libwww-perl-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_CPAN)/Net
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 3345d5f15a4f42350847254141725c8f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && perl Makefile.PL -n
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
+
diff --git a/lfs/linux b/lfs/linux
new file mode 100644 (file)
index 0000000..b9a3e9b
--- /dev/null
+++ b/lfs/linux
@@ -0,0 +1,291 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: linux,v 1.42.2.57 2005/07/28 07:01:27 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.4.31
+
+THISAPP    = linux-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_KERNEL)/linux/kernel/v2.4
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+CFLAGS     =
+CXXFLAGS   =
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+ifeq "$(LFS_PASS)" "ipcop"
+ifeq "$(EMB)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)-ipcop
+endif
+ifeq "$(EMB)" "1"
+  TARGET = $(DIR_INFO)/$(THISAPP)-ipcop-EMB
+endif
+ifeq "$(EMB)" "installer"
+  TARGET = $(DIR_INFO)/$(THISAPP)-ipcop-installer
+endif
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)
+endif
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects =$(DL_FILE) \
+       openswan-1.0.10rc2.tar.gz \
+       iptables-1.3.5.tar.bz2 \
+       patch-o-matic-ng-20060206.tar.bz2 \
+       kbc_option_2420.patch \
+       net4801.kernel.patch_2.4.31 \
+       netfilter-layer7-v2.1.tar.gz
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+openswan-1.0.10rc2.tar.gz              = ftp://ftp.man.szczecin.pl/disks/disk0/security/network-security/ipsec/openswan/openswan-1.0.10rc2.tar.gz
+patch-o-matic-ng-20060206.tar.bz2      = ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20060206.tar.bz2
+iptables-1.3.5.tar.bz2                 = http://www.netfilter.org/files/iptables-1.3.5.tar.bz2
+kbc_option_2420.patch                   = http://developer.osdl.org/rddunlap/patches/kbc_option_2420.patch
+net4801.kernel.patch_2.4.31             = http://www.sk-tech.net/support/net4801.kernel.patch_2.4.31
+netfilter-layer7-v2.1.tar.gz                   = http://belnet.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.1.tar.gz
+
+$(DL_FILE)_MD5                         = ea3f99fc82617886059d58d0644dab26
+openswan-1.0.10rc2.tar.gz_MD5          = 20d51ff963da78f826f4e0f0ebc4bcef
+patch-o-matic-ng-20060206.tar.bz2_MD5  = eca9893afb753e331caddfe63142b566
+iptables-1.3.5.tar.bz2_MD5             = 00fb916fa8040ca992a5ace56d905ea5
+kbc_option_2420.patch_MD5               = 6d37870344f7fcf97ace1fbf43323c60
+net4801.kernel.patch_2.4.31_MD5         = c7d64e3caedb2f2b10e1c11db7f73a04
+netfilter-layer7-v2.1.tar.gz_MD5               = 551626a158c2a2cbfd937d27ecc7fac1
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/linux && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_SRC) && ln -sf linux-$(VER) linux
+       cd $(DIR_APP) && sed -i -e 's/-Werror//' drivers/scsi/aic7xxx/Makefile
+
+       # Openswan
+       cd $(DIR_SRC) && rm -rf openswan-*
+       cd $(DIR_SRC) && tar xfz $(DIR_DL)/openswan-1.0.10rc2.tar.gz
+       cd $(DIR_SRC)/openswan-1.0.10rc2 && patch -Np1 < $(DIR_SRC)/src/patches/openswan-1.0.1-plutoctl.patch
+       cd $(DIR_SRC)/openswan-1.0.10rc2 && patch -Np1 < $(DIR_SRC)/src/patches/openswan-1.0.6-numif.patch
+       cd $(DIR_SRC)/openswan-1.0.10rc2 && sed -i 's+^KERNELSRC.*$$+KERNELSRC=$(ROOT)/usr/src/linux-$(VER)+' Makefile.inc
+       cd $(DIR_SRC)/openswan-1.0.10rc2 && sed -i -e 's/local\/sbin/local\/sbin:\/tools\/bin/' utils/patcher
+       cd $(DIR_SRC)/openswan-1.0.10rc2 && make insert
+       
+       # Patch-o-matic
+       cd $(DIR_SRC) && rm -rf iptables-*
+       cd $(DIR_SRC) && tar xfj $(DIR_DL)/iptables-1.3.5.tar.bz2 
+       cd $(DIR_SRC) && ln -sf iptables-1.3.5 iptables
+       cd $(DIR_SRC) && rm -rf patch-o-matic*
+       cd $(DIR_SRC) && tar xfj $(DIR_DL)/patch-o-matic-ng-20060206.tar.bz2
+       
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ pending
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ base
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ h323-conntrack-nat
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ cuseeme-nat
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ mms-conntrack-nat
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ pptp-conntrack-nat
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ rtsp-conntrack
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ quake3-conntrack-nat
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ sip-conntrack-nat
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ ip_queue_vwmark
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ ipp2p
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ ipsec-01-output-hooks
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ ipsec-02-input-hooks
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ ipsec-03-policy-lookup
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ ipsec-04-policy-checks
+       cd $(DIR_SRC)/patch-o-matic* && yes 'y' | ./runme --kernel-path=$(ROOT)/usr/src/linux/ --iptables-path=$(ROOT)/usr/src/iptables/ TARPIT
+
+       #imq-patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.4.28-imq2.diff
+       
+       #layer7-patch
+       cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.1.tar.gz
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.1/kernel-2.4-layer7-2.1.patch
+
+ifeq "$(EMB)" "1"
+       #Emb-patches
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/kbc_option_2420.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/net4801.kernel.patch_2.4.31
+endif
+
+ifeq "$(EMB)" ""
+       # Only do this once on the non-EMB pass
+       cd $(DIR_SRC) && tar czf $(DIR_DL)/iptables-fixed.tar.gz iptables-1.3.5
+endif
+
+       # Olitec isdn gazel patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/linux-2.4.23-olitec-isdn.patch
+
+       # Fix /proc/stat output
+       cd $(DIR_APP) && patch -Np2 < $(DIR_SRC)/src/patches/linux-2.4.26-proc-stat.patch
+
+       # Fix libata-core.c
+       # cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/linux-2.4.26-scsi.patch
+
+       # frandom patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.4.27-frandom-2.patch
+
+       # Propolice
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.4.27-ssp-1.patch
+
+       # Support ppp-2.4.3 multilink behavior (terminate when no channel is connected)
+       # need updated libpcap older than 0.8.3
+       # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp_generic-ppp-2.4.3_multilink.patch
+
+       # R8169 clone D-link GSE-528T
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.4.29_r8169clone.patch
+
+       # Cleanup kernel source
+       cd $(DIR_APP) && make mrproper
+ifeq "$(ROOT)" ""
+ifeq "$(LFS_PASS)" "ipcop"
+ifeq "$(EMB)" ""
+       cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE) $(DIR_APP)/.config
+endif
+ifeq "$(EMB)" "1"
+       cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE).EMB $(DIR_APP)/.config
+endif
+ifeq "$(EMB)" "installer"
+       cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE).installer $(DIR_APP)/.config
+       cd $(DIR_APP) && sed -i -e 's/-O2/-Os/g' Makefile
+endif
+
+       cd $(DIR_APP) && make CC="$(KGCC)" oldconfig
+       cd $(DIR_APP) && make CC="$(KGCC)" dep
+       cd $(DIR_APP) && make CC="$(KGCC)" clean
+       if [ "$(MACHINE)" = "i386" -a "$(EMB)" = "" ]; then \
+               cd $(DIR_APP) && make -j 3 CC="$(KGCC)" bzImage; \
+               cd $(DIR_APP) && cp arch/$(MACHINE)/boot/bzImage /boot/vmlinuz-$(VER); \
+               cd $(DIR_APP) && cp System.map /boot/System.map-$(VER); \
+               ln -sf vmlinuz-$(VER) /boot/vmlinuz; \
+               ln -sf System.map-$(VER) /boot/System.map; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules_install; \
+       elif [ "$(MACHINE)" = "i386" -a "$(EMB)" = "1" ]; then \
+               cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =/EXTRAVERSION\ =\ -EMB/' Makefile; \
+               cd $(DIR_APP) && make -j 3 CC="$(KGCC)" bzImage; \
+               cd $(DIR_APP) && cp arch/$(MACHINE)/boot/bzImage /boot/vmlinuz-$(VER)-EMB; \
+               cd $(DIR_APP) && cp System.map /boot/System.map-$(VER)-EMB; \
+               ln -sf vmlinuz-$(VER)-EMB /boot/vmlinuz-EMB; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules_install; \
+       elif [ "$(MACHINE)" = "i386" -a "$(EMB)" = "installer" ]; then \
+               cd $(DIR_APP) && make -j 3 CC="$(KGCC)" bzImage; \
+               cd $(DIR_APP) && cp arch/$(MACHINE)/boot/bzImage /boot/vmlinuz-installer; \
+       elif [ "$(MACHINE)" = "alpha" ]; then \
+               cd $(DIR_APP) && make -j 3 CC="$(KGCC)" vmlinux; \
+               cd $(DIR_APP) && gzip -9c vmlinux > /boot/vmlinuz-$(VER); \
+               cd $(DIR_APP) && cp System.map /boot/System.map-$(VER); \
+               ln -sf vmlinuz-$(VER) /boot/vmlinuz; \
+               ln -sf System.map-$(VER) /boot/System.map; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules_install; \
+       fi
+       # remove symlinked pcmcia directory
+ifeq "$(EMB)" ""
+       rm -rf /lib/modules/$(VER)/pcmcia
+       find /lib/modules/$(VER)/ -name '*.o' -a -type f | xargs gzip -f9
+
+       # Move these SCSI drivers into same directory for probescsi.sh
+       mv -f  /lib/modules/$(VER)/kernel/drivers/scsi/aic7xxx/*     /lib/modules/$(VER)/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)/kernel/drivers/scsi/aic7xxx
+       mv -f  /lib/modules/$(VER)/kernel/drivers/scsi/aacraid/*     /lib/modules/$(VER)/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)/kernel/drivers/scsi/aacraid
+       mv -f  /lib/modules/$(VER)/kernel/drivers/scsi/sym53c8xx_2/* /lib/modules/$(VER)/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)/kernel/drivers/scsi/sym53c8xx_2
+endif
+ifeq "$(EMB)" "1"
+       rm -rf /lib/modules/$(VER)-EMB/pcmcia
+       find /lib/modules/$(VER)-EMB/ -name '*.o' -a -type f | xargs gzip -f9
+
+       # Move these SCSI drivers into same directory for probescsi.sh
+       mv -f  /lib/modules/$(VER)-EMB/kernel/drivers/scsi/aic7xxx/*     /lib/modules/$(VER)-EMB/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)-EMB/kernel/drivers/scsi/aic7xxx
+       mv -f  /lib/modules/$(VER)-EMB/kernel/drivers/scsi/aacraid/*     /lib/modules/$(VER)-EMB/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)-EMB/kernel/drivers/scsi/aacraid
+       mv -f  /lib/modules/$(VER)-EMB/kernel/drivers/scsi/sym53c8xx_2/* /lib/modules/$(VER)-EMB/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)-EMB/kernel/drivers/scsi/sym53c8xx_2
+endif
+
+ifeq "$(EMB)" ""
+       # Only do this once on the non-EMB pass
+       cd $(DIR_APP) && make mandocs
+       -mkdir -p /usr/share/man/man9/
+       cd $(DIR_APP) && cp -af Documentation/man/* /usr/share/man/man9/
+endif
+else
+       cd $(DIR_APP) && make include/linux/version.h
+       cd $(DIR_APP) && make symlinks
+       cd $(DIR_APP) && cp -HRf include/asm /usr/include
+       cd $(DIR_APP) && cp -Rf include/asm-generic /usr/include
+       cd $(DIR_APP) && cp -Rf include/linux /usr/include
+       touch /usr/include/linux/autoconf.h
+endif
+else
+       cd $(DIR_APP) && make include/linux/version.h
+       cd $(DIR_APP) && make symlinks
+       -mkdir -p /tools/include/asm
+       cd $(DIR_APP) && cp -f include/asm/* /tools/include/asm
+       cd $(DIR_APP) && cp -Rf include/asm-generic /tools/include
+       cd $(DIR_APP) && cp -Rf include/linux /tools/include
+       cd $(DIR_APP) && touch /tools/include/linux/autoconf.h
+endif
+       @rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables*
+       @$(POSTBUILD)
diff --git a/lfs/linux-atm b/lfs/linux-atm
new file mode 100644 (file)
index 0000000..dfd0c46
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: linux-atm,v 1.4.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.4.1
+
+THISAPP    = linux-atm-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/linux-atm
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 84fef49cc39ff2605204246666f65864
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/linux_orig b/lfs/linux_orig
new file mode 100644 (file)
index 0000000..9ebcb6b
--- /dev/null
@@ -0,0 +1,310 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: linux,v 1.42.2.63 2006/01/30 12:51:21 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.4.31
+
+THISAPP    = linux-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_KERNEL)/linux/kernel/v2.4
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+CFLAGS     =
+CXXFLAGS   =
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+ifeq "$(LFS_PASS)" "ipcop"
+ifeq "$(SMP)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)-ipcop
+endif
+ifeq "$(SMP)" "1"
+  TARGET = $(DIR_INFO)/$(THISAPP)-ipcop-smp
+endif
+ifeq "$(SMP)" "installer"
+  TARGET = $(DIR_INFO)/$(THISAPP)-ipcop-installer
+endif
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)
+endif
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+endif
+
+# make a kernel/iptables diff in build/usr/src to control patch system when DIFFCONTROL = yes
+DIFFCONTROL = yes
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects =$(DL_FILE) \
+       openswan-1.0.10.tar.gz \
+       iptables-1.3.4.tar.bz2 \
+       patch-o-matic-ng-20050918.tar.bz2 \
+       patch-o-matic-ng-20051229.tar.bz2
+
+$(DL_FILE)                             = $(DL_FROM)/$(DL_FILE)
+openswan-1.0.10.tar.gz                 = http://www.openswan.org/download/openswan-1.0.10.tar.gz
+iptables-1.3.4.tar.bz2                 = http://www.netfilter.org/projects/iptables/files/iptables-1.3.4.tar.bz2
+patch-o-matic-ng-20050918.tar.bz2      = http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20050918.tar.bz2
+patch-o-matic-ng-20051229.tar.bz2      = http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20051229.tar.bz2
+
+$(DL_FILE)_MD5                         = ea3f99fc82617886059d58d0644dab26
+openswan-1.0.10.tar.gz_MD5             = 3767814e3c080d146a8c7233dc31e0a9
+iptables-1.3.4.tar.bz2_MD5             = fdff8abe890807968226b0c374335305
+patch-o-matic-ng-20050918.tar.bz2_MD5  = 5af06b5d1430a8ce6f2c6d8ead2f8365
+patch-o-matic-ng-20051229.tar.bz2_MD5  = f68169268dbfc30acfeab159be279752
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/linux && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_SRC) && ln -sf linux-$(VER) linux
+       cd $(DIR_APP) && sed -i -e 's/-Werror//' drivers/scsi/aic7xxx/Makefile
+       # fix 2.4.31 invalid assembler code. Patch is included in 2.4.32 kernel source
+       cd $(DIR_SRC) && patch -p0  < $(DIR_SRC)/src/patches/linux-2.4-seg-4.patch
+
+       # Openswan
+       cd $(DIR_SRC) && rm -rf openswan-*
+       cd $(DIR_SRC) && tar xfz $(DIR_DL)/openswan-1.0.10.tar.gz
+       cd $(DIR_SRC)/openswan-1.0.10 && patch -Np1 < $(DIR_SRC)/src/patches/openswan-1.0.1-plutoctl.patch
+       cd $(DIR_SRC)/openswan-1.0.10 && patch -Np1 < $(DIR_SRC)/src/patches/openswan-1.0.6-numif.patch
+       cd $(DIR_SRC)/openswan-1.0.10 && sed -i 's+^KERNELSRC.*$$+KERNELSRC=$(ROOT)/usr/src/linux-$(VER)+' Makefile.inc
+       cd $(DIR_SRC)/openswan-1.0.10 && sed -i -e 's/local\/sbin/local\/sbin:\/tools\/bin/' utils/patcher
+       cd $(DIR_SRC)/openswan-1.0.10 && make insert
+
+       # Iptables
+       cd $(DIR_SRC) && rm -rf iptables-* $(DIR_SRC)/iptables
+       cd $(DIR_SRC) && tar xfj $(DIR_DL)/iptables-1.3.4.tar.bz2
+       cd $(DIR_SRC) && ln -sf iptables-1.3.4 iptables
+       
+ifeq "$(DIFFCONTROL)" "yes"
+       # optional control of patching system
+       cd $(DIR_APP) && make distclean         # After patching, distclean remove .c~ .h~ but add .config.default
+       cd $(DIR_SRC) && rm -rf linux-$(VER)-origin iptables-1.3.4-origin
+       cd $(DIR_SRC) && cp -rf linux-$(VER) linux-$(VER)-origin
+       cd $(DIR_SRC) && cp -rf iptables-1.3.4 iptables-1.3.4-origin
+endif
+       # Used to revert to old 'string' implementation as it is the only one know by pom for kernel 2.4
+       cd $(DIR_SRC)/iptables-1.3.4 && patch -Np1 -R < $(DIR_SRC)/src/patches/iptables-1.3.4-old-string.patch
+
+       # Patch-o-matic
+       cd $(DIR_SRC) && rm -rf patch-o-matic*
+
+       # Install extensions no more available on later pom snapshots,
+       # 20050918 is the last with old extensions
+       cd $(DIR_SRC) && tar xfj $(DIR_DL)/patch-o-matic-ng-20050918.tar.bz2
+       cd $(DIR_SRC)/patch-o-matic-ng-20050918/patchlets && \
+               cp -f $(DIR_SRC)/src/patches/patch-o-matic-ng-20040621_nf-log_2.4.29.patch nf-log/linux-2.4.patch
+
+       cd $(DIR_SRC)/patch-o-matic-ng-20050918 && ./runme --batch \
+                                               --kernel-path=$(ROOT)/usr/src/linux/ \
+                                               --iptables-path=$(ROOT)/usr/src/iptables/ \
+                       IPV4OPTSSTRIP NETLINK NETMAP REJECT SAME TARPIT TTL connlimit cuseeme-nat dstlimit \
+                       fuzzy h323-conntrack-nat iprange mms-conntrack-nat mport nf-log nth pool \
+                       pptp-conntrack-nat psd quake3-conntrack-nat quota random raw realm rtsp-conntrack \
+                       set string time u32
+
+       # More recent pom-ng snapshot with updates for
+       # ipv4options, osf
+       cd $(DIR_SRC) && rm -rf patch-o-matic*
+       cd $(DIR_SRC) && tar xfj $(DIR_DL)/patch-o-matic-ng-20051229.tar.bz2
+
+       cd $(DIR_SRC)/patch-o-matic-ng-20051229 && ./runme --batch \
+                                               --kernel-path=$(ROOT)/usr/src/linux/ \
+                                               --iptables-path=$(ROOT)/usr/src/iptables/ \
+                                               ipv4options osf
+
+       # This patch changes /proc/net/ip_conntrack to mode 0440
+       # and messes up the connections.cgi page. So remove it for now.
+       # As of 2.4.27 it's in as standard, use the patch to reverse the change.
+       cd $(DIR_APP) && patch -Np1 -R < $(DIR_SRC)/src/patches/pom-ng_proc-net-conntrack-permissions.patch
+
+
+ifeq "$(DIFFCONTROL)" "yes"
+       # optional control of patching system
+       cd $(DIR_APP) && make distclean                         # remove .c~ .h~ due to patches
+       cd $(DIR_SRC)/iptables-1.3.4 && make distclean
+       # ignore error on difference as we patch for that
+       -cd $(DIR_SRC) && diff -Nur linux-$(VER)-origin linux-$(VER) > pom-ng.diff
+       -cd $(DIR_SRC) && diff -Nur iptables-1.3.4-origin iptables-1.3.4 >> pom-ng.diff
+       cd $(DIR_SRC) && rm -rf linux-$(VER)-origin iptables-1.3.4-origin
+endif
+
+ifeq "$(SMP)" ""
+       # Only do this once on the non-SMP pass
+       cd $(DIR_SRC) && tar czf $(DIR_DL)/iptables-fixed.tar.gz iptables-1.3.4
+endif
+
+       # Olitec isdn gazel patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/linux-2.4.23-olitec-isdn.patch
+
+       # Fix /proc/stat output
+       cd $(DIR_APP) && patch -Np2 < $(DIR_SRC)/src/patches/linux-2.4.26-proc-stat.patch
+
+       # Fix libata-core.c
+       # cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/linux-2.4.26-scsi.patch
+
+       # frandom patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.4.27-frandom-2.patch
+
+       # Propolice
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.4.27-ssp-1.patch
+
+       # Support ppp-2.4.3 multilink behavior (terminate when no channel is connected)
+       # need updated libpcap older than 0.8.3
+       # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp_generic-ppp-2.4.3_multilink.patch
+
+       # R8169 clone D-link GSE-528T
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.4.29_r8169clone.patch
+
+       # Cleanup kernel source
+       cd $(DIR_APP) && make mrproper
+ifeq "$(ROOT)" ""
+ifeq "$(LFS_PASS)" "ipcop"
+ifeq "$(SMP)" ""
+       cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE) $(DIR_APP)/.config
+endif
+ifeq "$(SMP)" "1"
+       cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE).smp $(DIR_APP)/.config
+endif
+ifeq "$(SMP)" "installer"
+       cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE).installer $(DIR_APP)/.config
+       cd $(DIR_APP) && sed -i -e 's/-O2/-Os/g' Makefile
+endif
+
+       cd $(DIR_APP) && make CC="$(KGCC)" oldconfig
+       cd $(DIR_APP) && make CC="$(KGCC)" dep
+       cd $(DIR_APP) && make CC="$(KGCC)" clean
+       if [ "$(MACHINE)" = "i386" -a "$(SMP)" = "" ]; then \
+               cd $(DIR_APP) && make -j 3 CC="$(KGCC)" bzImage; \
+               cd $(DIR_APP) && cp arch/$(MACHINE)/boot/bzImage /boot/vmlinuz-$(VER); \
+               cd $(DIR_APP) && cp System.map /boot/System.map-$(VER); \
+               ln -sf vmlinuz-$(VER) /boot/vmlinuz; \
+               ln -sf System.map-$(VER) /boot/System.map; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules_install; \
+       elif [ "$(MACHINE)" = "i386" -a "$(SMP)" = "1" ]; then \
+               cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =/EXTRAVERSION\ =\ -smp/' Makefile; \
+               cd $(DIR_APP) && make -j 3 CC="$(KGCC)" bzImage; \
+               cd $(DIR_APP) && cp arch/$(MACHINE)/boot/bzImage /boot/vmlinuz-$(VER)-smp; \
+               cd $(DIR_APP) && cp System.map /boot/System.map-$(VER)-smp; \
+               ln -sf vmlinuz-$(VER)-smp /boot/vmlinuz-smp; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules_install; \
+       elif [ "$(MACHINE)" = "i386" -a "$(SMP)" = "installer" ]; then \
+               cd $(DIR_APP) && make -j 3 CC="$(KGCC)" bzImage; \
+               cd $(DIR_APP) && cp arch/$(MACHINE)/boot/bzImage /boot/vmlinuz-installer; \
+       elif [ "$(MACHINE)" = "alpha" ]; then \
+               cd $(DIR_APP) && make -j 3 CC="$(KGCC)" vmlinux; \
+               cd $(DIR_APP) && gzip -9c vmlinux > /boot/vmlinuz-$(VER); \
+               cd $(DIR_APP) && cp System.map /boot/System.map-$(VER); \
+               ln -sf vmlinuz-$(VER) /boot/vmlinuz; \
+               ln -sf System.map-$(VER) /boot/System.map; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules; \
+               cd $(DIR_APP) && make CC="$(KGCC)" modules_install; \
+       fi
+       # remove symlinked pcmcia directory
+ifeq "$(SMP)" ""
+       rm -rf /lib/modules/$(VER)/pcmcia
+       find /lib/modules/$(VER)/ -name '*.o' -a -type f | xargs gzip -f9
+
+       # Move these SCSI drivers into same directory for probescsi.sh
+       mv -f  /lib/modules/$(VER)/kernel/drivers/scsi/aic7xxx/*     /lib/modules/$(VER)/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)/kernel/drivers/scsi/aic7xxx
+       mv -f  /lib/modules/$(VER)/kernel/drivers/scsi/aacraid/*     /lib/modules/$(VER)/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)/kernel/drivers/scsi/aacraid
+       mv -f  /lib/modules/$(VER)/kernel/drivers/scsi/sym53c8xx_2/* /lib/modules/$(VER)/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)/kernel/drivers/scsi/sym53c8xx_2
+endif
+ifeq "$(SMP)" "1"
+       rm -rf /lib/modules/$(VER)-smp/pcmcia
+       find /lib/modules/$(VER)-smp/ -name '*.o' -a -type f | xargs gzip -f9
+
+       # Move these SCSI drivers into same directory for probescsi.sh
+       mv -f  /lib/modules/$(VER)-smp/kernel/drivers/scsi/aic7xxx/*     /lib/modules/$(VER)-smp/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)-smp/kernel/drivers/scsi/aic7xxx
+       mv -f  /lib/modules/$(VER)-smp/kernel/drivers/scsi/aacraid/*     /lib/modules/$(VER)-smp/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)-smp/kernel/drivers/scsi/aacraid
+       mv -f  /lib/modules/$(VER)-smp/kernel/drivers/scsi/sym53c8xx_2/* /lib/modules/$(VER)-smp/kernel/drivers/scsi
+       rm -rf /lib/modules/$(VER)-smp/kernel/drivers/scsi/sym53c8xx_2
+endif
+
+ifeq "$(SMP)" ""
+       # Only do this once on the non-SMP pass
+       cd $(DIR_APP) && make mandocs
+       -mkdir -p /usr/share/man/man9/
+       cd $(DIR_APP) && cp -af Documentation/man/* /usr/share/man/man9/
+endif
+else
+       cd $(DIR_APP) && make include/linux/version.h
+       cd $(DIR_APP) && make symlinks
+       cd $(DIR_APP) && cp -HRf include/asm /usr/include
+       cd $(DIR_APP) && cp -Rf include/asm-generic /usr/include
+       cd $(DIR_APP) && cp -Rf include/linux /usr/include
+       touch /usr/include/linux/autoconf.h
+endif
+else
+       cd $(DIR_APP) && make include/linux/version.h
+       cd $(DIR_APP) && make symlinks
+       -mkdir -p /tools/include/asm
+       cd $(DIR_APP) && cp -f include/asm/* /tools/include/asm
+       cd $(DIR_APP) && cp -Rf include/asm-generic /tools/include
+       cd $(DIR_APP) && cp -Rf include/linux /tools/include
+       cd $(DIR_APP) && touch /tools/include/linux/autoconf.h
+endif
+       @rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables*
+       @$(POSTBUILD)
diff --git a/lfs/logrotate b/lfs/logrotate
new file mode 100644 (file)
index 0000000..0c14dc5
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: logrotate,v 1.5.2.4 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.7
+
+THISAPP    = logrotate-$(VER)
+DL_FILE    = logrotate_$(VER).orig.tar.gz
+DL_FROM    = $(URL_DEBIAN)/l/logrotate
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = bf0de3a495294300f32e71f136119c41
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       touch /var/lib/logrotate.status
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/logwatch b/lfs/logwatch
new file mode 100644 (file)
index 0000000..1c02cd0
--- /dev/null
@@ -0,0 +1,116 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: logwatch,v 1.8.2.10 2005/10/18 21:30:32 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 6.1.2
+
+THISAPP    = logwatch-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    =  ftp://ftp.kaybee.org/pub/old/linux
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = a764bf80a31ab04ca788ac1303cba297
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       -mkdir -p /etc/log.d /var/log/logwatch
+       chown logwatch:nobody /var/log/logwatch
+       cd $(DIR_APP) && cp -Rf conf scripts lib /etc/log.d
+       cd $(DIR_APP) && install -m 0755 scripts/logwatch.pl /etc/log.d/scripts/logwatch.pl
+       cd $(DIR_APP) && install -m 0644 logwatch.8 /usr/share/man/man8
+       sed -i 's/^Print = .*$$/Print = Yes/' /etc/log.d/conf/logwatch.conf
+       # comment out line with unused example
+       sed -i '/-zz-network/s/Service/#Service/' /etc/log.d/conf/logwatch.conf
+       # fix typo in output
+       sed -i '/MB transfered/s/transfered/transferred/' /etc/log.d/scripts/services/http
+
+       # Strip out some filters for services we don't run - no point wasting log keeping them
+       # cron filter don't support fcron
+       # final selection for remaining files is in rootfile
+       UNNEEDED="afpd amavis arpwatch audit automount autorpm cisco clamav clamav-milter \
+           clam-update courier cron emerge exim extreme-networks ftpd-messages ftpd-xferlog \
+           imapd identd in.qpopper ipop3d maillog mailscanner mountd named netopia netscreen \
+           oidentd pam pam_pwdb pop3 portsentry postfix pound proftpd-messages pureftp \
+           pureftpd qmail rt314 saslauthd samba sendmail sendmail-largeboxes shaperd smartd \
+           sonicwall stunnel sudo tac_acc up2date vpopmail vsftpd xferlog yum zz-fortune" && \
+         for i in $$UNNEEDED ; do \
+           rm -f /etc/log.d/{conf,scripts}/services/$$i{,.conf} /etc/log.d/conf/logfiles/$$i.conf; \
+         done
+       rm -rf /etc/log.d/scripts/logfiles
+
+       sed -i 's/df -h/df -h -x rootfs/' /etc/log.d/scripts/services/zz-disk_space
+       for i in `find /etc/log.d -type f`; do \
+           sed -i 's/perl -w/perl/' $$i; \
+       done
+       # The httpd log checker script considers any request containing the word
+       # null to be an exploit attempt, reverse this behaviour as we have a
+       # null.gif
+       sed -i -e "/ 'null',/d" /etc/log.d/scripts/services/http
+       chmod -R 755 /etc/log.d
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/lpd b/lfs/lpd
new file mode 100644 (file)
index 0000000..f78077d
--- /dev/null
+++ b/lfs/lpd
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ntp,v 1.6.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.8.28
+
+THISAPP    = LPRng-$(VER)
+DL_FILE    = $(THISAPP).tgz
+DL_FROM    = http://www.lprng.com/DISTRIB/LPRng
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 1b3a0abd291b260eab6087ac0e61ed84
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc --disable-shared --disable-kerberos --enable-ssl --enable-force_localhost 
+       cd $(DIR_APP) && make clean all
+       cd $(DIR_APP) && make install POSTINSTALL=NO
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/m4 b/lfs/m4
new file mode 100644 (file)
index 0000000..806f332
--- /dev/null
+++ b/lfs/m4
@@ -0,0 +1,108 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: m4,v 1.4.2.5 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.4
+
+THISAPP    = m4-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/m4
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --disable-nls
+  EXTRA_LDFLAGS =
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+ifeq "$(LFS_PASS)" "1"
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools1
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_LDFLAGS = -static
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools2
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_LDFLAGS =
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 9eb2dd07740b2d2f3c7adb3e8d299bda
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/make b/lfs/make
new file mode 100644 (file)
index 0000000..1a225de
--- /dev/null
+++ b/lfs/make
@@ -0,0 +1,98 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: make,v 1.3.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.80
+
+THISAPP    = make-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/make
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c68540da9302a48068d5cce1f0099477
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/makedev b/lfs/makedev
new file mode 100644 (file)
index 0000000..afb86f8
--- /dev/null
@@ -0,0 +1,124 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: makedev,v 1.11.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.2
+
+THISAPP    = make_devices-$(VER)
+DL_FILE    = $(THISAPP).bz2
+DL_FROM    = $(URL_LFS_FTP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 2863fbe7f5953efb5a0d0a840e1e9d21
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       cd /dev && bzcat $(DIR_DL)/$(DL_FILE) > make_devices
+       cd /dev && chmod 754 make_devices
+       cd /dev && patch -Np0 < $(DIR_SRC)/src/patches/make_devices.patch
+       cd /dev && ./make_devices
+       # ipsec
+       cd /dev && rm -f ipsec
+       cd /dev && mknod ipsec c 36 10
+       chmod 200 /dev/ipsec
+
+       # tap/tun
+       cd /dev/net && rm -f tun
+       cd /dev/net && mknod tun c 10 200
+
+       # PULSARDSL Devices
+       cd /dev && rm -f ttyG0
+       cd /dev && mknod ttyG0 c 43 0
+       cd /dev && rm -f cug0
+       cd /dev && mknod cug0  c 44 0
+
+       # ISDN Symlink + Permissions
+       cd /dev && ln -sf isdnctrl0 isdnctrl
+
+       # isdninfo
+       cd /dev && rm -f isdninfo
+       cd /dev && mknod isdninfo c 45 255
+       chown root:nobody /dev/isdninfo
+       chmod 640 /dev/isdninfo
+
+       # USB HID Dev
+       -mkdir /dev/usb
+       for i in `seq 0 7`; do \
+           rm -f /dev/usb/hiddev$$i; \
+           mknod /dev/usb/hiddev$$i c 180 $$(( 96 + $$i )); \
+       done
+
+       # USB ACM Modems
+       for i in `seq 0 7`; do \
+           rm -f /dev/usb/ttyACM$$i; \
+           mknod /dev/usb/ttyACM$$i c 166 $$i; \
+       done
+
+       # Add a symlink to the default floppy dev. updfstab will change it to USB if
+       # necessary, but it must be present if it appears in /etc/mtab
+       cd /dev && ln -sf fd0 floppy
+
+       @$(POSTBUILD)
diff --git a/lfs/man b/lfs/man
new file mode 100644 (file)
index 0000000..72eb93d
--- /dev/null
+++ b/lfs/man
@@ -0,0 +1,89 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: man,v 1.4.2.5 2005/07/05 15:11:12 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.5p
+
+THISAPP    = man-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_KERNEL)/linux/utils/man
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE) \
+       man-1.5m2-pager-1.patch
+
+$(DL_FILE)                  = $(DL_FROM)/$(DL_FILE)
+man-1.5m2-pager-1.patch    = http://www.linuxfromscratch.org/patches/downloads/man/man-1.5m2-pager-1.patch
+
+$(DL_FILE)_MD5                  = 037d5644f8ef9ea0ef22b271bae0297d
+man-1.5m2-pager-1.patch_MD5    = e5ffe77f8ce0115dcf4b498ed0b6e8ca
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/man-1.5m2-pager-1.patch
+       cd $(DIR_APP) && ./configure -default -confdir=/etc +lang none
+       cd $(DIR_APP) && make CFLAGS="-fno-stack-protector"
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/man-pages b/lfs/man-pages
new file mode 100644 (file)
index 0000000..2c6ec0a
--- /dev/null
@@ -0,0 +1,83 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: man-pages,v 1.3.2.6 2005/12/18 23:13:01 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.17
+
+THISAPP    = man-pages-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_KERNEL)/linux/docs/manpages
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 433ea1df15fa849e703a92eb553051a8
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/mbr b/lfs/mbr
new file mode 100644 (file)
index 0000000..cc0394d
--- /dev/null
+++ b/lfs/mbr
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+#     2006-jan  Gilles Espinasse                                              #
+#                                                                             #
+# $Id: mbr,v 1.1.2.1 2006/01/17 12:12:07 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.1.8
+
+THISAPP    = mbr-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.chiark.greenend.org.uk/~neilt/mbr
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = da195c75b26bd45ecbb113b317996f9a
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/mingetty b/lfs/mingetty
new file mode 100644 (file)
index 0000000..65acca0
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: mingetty,v 1.3.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.06
+
+THISAPP    = mingetty-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/mingetty
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = f43a493f4ab3aecdba298eab9362f800
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/misc-progs b/lfs/misc-progs
new file mode 100644 (file)
index 0000000..f0e5e00
--- /dev/null
@@ -0,0 +1,78 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: misc-progs,v 1.5.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = misc-progs
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(LFS_PASS)" "install"
+  TARGET     = $(DIR_INFO)/$(THISAPP)-install
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup && cp -R $(DIR_SRC)/src/misc-progs/ $(DIR_SRC)
+ifeq "$(LFS_PASS)" "install"
+       cd $(DIR_APP) && make CFLAGS="-Os -fomit-frame-pointer" iowrap
+       cd $(DIR_APP) && install -m 0755 iowrap /install/initrd/bin
+else
+       cp -R $(DIR_SRC)/src/install+setup/ $(DIR_SRC)
+       for i in $(DIR_SRC)/langs/*/install/lang_*.c ; do \
+           cp $$i $(DIR_SRC)/install+setup/libsmooth; \
+       done
+       cd $(DIR_SRC)/install+setup/libsmooth && chmod 755 makelangs.pl
+       cd $(DIR_SRC)/install+setup/libsmooth && make CFLAGS="$(CFLAGS) -Wall \
+           -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \
+            -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'" 
+       cd $(DIR_APP) && make CFLAGS="$(CFLAGS) -Wall -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"' -DSNAME='\"$(SNAME)\"'"
+       cd $(DIR_APP) && make install
+endif
+       @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup
+       @$(POSTBUILD)
diff --git a/lfs/mktemp b/lfs/mktemp
new file mode 100644 (file)
index 0000000..5e3bf19
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: mktemp,v 1.1.2.4 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.5
+
+THISAPP    = mktemp-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_LFS_FTP)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 3359aa075083aeae3ed6ca67ec5d944b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --with-libc
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/modutils b/lfs/modutils
new file mode 100644 (file)
index 0000000..9651b88
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: modutils,v 1.5.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.4.27
+
+THISAPP    = modutils-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_KERNEL)/linux/utils/kernel/modutils/v2.4
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 51aa91627a2803df5873beae59d2f785
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --disable-nls --enable-zlib --enable-insmod-static
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/mtools b/lfs/mtools
new file mode 100644 (file)
index 0000000..0323a1f
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: mtools,v 1.3.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.9.9
+
+THISAPP    = mtools-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://mtools.linux.lu
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 3e68b857b4e1f3a6521d1dfefbd30a36
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/nano b/lfs/nano
new file mode 100644 (file)
index 0000000..d69b0de
--- /dev/null
+++ b/lfs/nano
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: nano,v 1.3.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.2.4
+
+THISAPP    = nano-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.nano-editor.org/dist/v1.2
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 2c513310ec5e8b63abaecaf48670ac7a
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --enable-tiny
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       ln -sf /usr/bin/nano /usr/bin/pico
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/nash b/lfs/nash
new file mode 100644 (file)
index 0000000..0ff6fc0
--- /dev/null
+++ b/lfs/nash
@@ -0,0 +1,61 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# 30-12-2003 Alan Hourihane <alanh@fairlite.demon.co.uk>                      #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: nash,v 1.2.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = nash
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && mkdir $(DIR_APP) && cp -R $(DIR_SRC)/src/nash/* $(DIR_APP)
+       cd $(DIR_APP) && make 
+       cd $(DIR_APP) && install -m 0755 nash mkinitrd /sbin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/nasm b/lfs/nasm
new file mode 100644 (file)
index 0000000..463034e
--- /dev/null
+++ b/lfs/nasm
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: nasm,v 1.3.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.98.36
+
+THISAPP    = nasm-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/nasm
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = bb18ea66db23712fd055e7c609e2156e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/ncurses b/lfs/ncurses
new file mode 100644 (file)
index 0000000..e5ccea6
--- /dev/null
@@ -0,0 +1,108 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ncurses,v 1.3.2.5 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 5.4
+
+THISAPP    = ncurses-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/ncurses
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --with-shared \
+    --without-debug --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --with-shared \
+    --without-debug --without-ada --enable-overwrite \
+    --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 069c8880072060373290a4fefff43520
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+ifeq "$(ROOT)" ""
+       chmod 755 /usr/lib/*.$(VER)
+       chmod 644 /usr/lib/libncurses++.a
+       mv /usr/lib/libncurses.so.5* /lib
+       ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so
+       ln -sf libncurses.so /usr/lib/libcurses.so
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/ndiswrapper b/lfs/ndiswrapper
new file mode 100644 (file)
index 0000000..099e35d
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Alan Hourihane <alanh@fairlite.demon.co.uk>                      #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ndiswrapper,v 1.1.2.3 2006/01/30 01:50:14 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.8
+
+THISAPP    = ndiswrapper-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/ndiswrapper
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 3ddb605ae8ae839384e2b3b15475af85
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make KSRC=/usr/src/linux KVERS=$(KVER)
+       cd $(DIR_APP) && make KSRC=/usr/src/linux KVERS=$(KVER) install
+       gzip -f /lib/modules/$(KVER)/misc/ndiswrapper.o
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/net-tools b/lfs/net-tools
new file mode 100644 (file)
index 0000000..b06707d
--- /dev/null
@@ -0,0 +1,109 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: net-tools,v 1.5.2.8 2005/08/13 08:09:10 eoberlander Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.60
+
+THISAPP    = net-tools-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = http://www.tazenda.demon.co.uk/phil/net-tools
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects = $(DL_FILE) $(THISAPP)-miitool_gcc33-1.patch
+
+$(DL_FILE)                            = $(DL_FROM)/$(DL_FILE)
+$(THISAPP)-miitool_gcc33-1.patch      = $(URL_LFS)/net-tools/$(THISAPP)-miitool_gcc33-1.patch
+
+$(DL_FILE)_MD5                        = 888774accab40217dde927e21979c165
+$(THISAPP)-miitool_gcc33-1.patch_MD5  = fc629313c10ebd75abd2750aafbaa0be
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/$(THISAPP)-miitool_gcc33-1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-get_name.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/$(THISAPP)-cleanup-list-handling.patch
+       # correct bits to Bytes in output from /sbin/ifconfig
+       cd $(DIR_APP)/lib && sed -i \
+           -e 's/"Mb"/"MB"/g' \
+           -e 's/"Kb"/"KB"/g' interface.c 
+       cd $(DIR_APP) && sed -i \
+           -e 's/HAVE_AFIPX y/HAVE_AFIPX n/' \
+           -e 's/HAVE_AFATALK y/HAVE_AFATALK n/' \
+           -e 's/HAVE_AFAX25 y/HAVE_AFAX25 n/' \
+           -e 's/HAVE_AFNETROM y/HAVE_AFNETROM n/' \
+           -e 's/HAVE_AFX25 y/HAVE_AFX25 n/' \
+           -e 's/HAVE_HWSTRIP y/HAVE_HWSTRIP n/' \
+           -e 's/HAVE_HWX25 y/HAVE_HWX25 n/' \
+           -e 's/HAVE_HWNETROM y/HAVE_HWNETROM n/' \
+           -e 's/HAVE_HWARC y/HAVE_HWARC n/' \
+           -e 's/HAVE_HWTR y/HAVE_HWTR n/' \
+           -e 's/HAVE_HWAX25 y/HAVE_HWAX25 n/' \
+           -e 's/HAVE_HWFR y/HAVE_HWFR n/' \
+           -e 's/HAVE_HWIRDA y/HAVE_HWIRDA n/' \
+           -e 's/HAVE_MII n/HAVE_MII y/' config.in
+       cd $(DIR_APP) && sed -i -e 's/DNLIB = -ldnet/DNLIB =/' Makefile
+       cd $(DIR_APP) && yes '' | make config
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make update
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/newt b/lfs/newt
new file mode 100644 (file)
index 0000000..0921ac3
--- /dev/null
+++ b/lfs/newt
@@ -0,0 +1,110 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: newt,v 1.8.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.50.17
+
+THISAPP    = newt-utf8_$(VER)
+DL_FILE    = $(THISAPP).orig.tar.gz
+DL_FROM    = $(URL_DEBIAN)/n/newt-utf8
+DIR_APP    = $(DIR_SRC)/newt-0.50.17
+ifeq "$(LFS_PASS)" "install"
+  TARGET     = $(DIR_INFO)/$(THISAPP)-install
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE) $(THISAPP)-9.6.diff.gz
+
+$(DL_FILE)                 = $(DL_FROM)/$(DL_FILE)
+$(THISAPP)-9.6.diff.gz     = $(URL_DEBIAN)/n/newt-utf8/$(THISAPP)-9.6.diff.gz
+
+$(DL_FILE)_MD5             = 4079546c307475ef2508dd2e98ed505e
+$(THISAPP)-9.6.diff.gz_MD5 = 5f1522189bdb16622677ad8e52f93119
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && zcat $(DIR_DL)/$(THISAPP)-9.6.diff.gz | patch -Np1
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/newt-0.50.17-colors.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/newt-0.50.17-vaend.patch
+ifeq "$(LFS_PASS)" "install"
+       cd $(DIR_APP) && ./configure --without-gpm-support --host $(MACHINE)-uclibc
+       cd $(DIR_APP) && sed -i 's%^CFLAGS.*$$%CFLAGS = -Os -fomit-frame-pointer -Wall -D_GNU_SOURCE -DUTF8 -I/install/include/slang%' Makefile
+       cd $(DIR_APP) && make libnewt.a
+       cd $(DIR_APP) && install -m 0644 libnewt.a /install/lib
+       cd $(DIR_APP) && install -m 0644 newt.h /install/include
+else
+       cd $(DIR_APP) && RPM_OPT_FLAGS="$(CFLAGS) -DUTF8" ./configure --without-gpm-support
+       cd $(DIR_APP) && sed -i \
+           -e 's/^PYVER.*$$/PYVER = 2.3/' \
+           -e 's/^all:.*$$/all: _snackmodule.so/' Makefile
+       cd $(DIR_APP) && echo 'install-snack: _snackmodule.so'                                  >> Makefile
+       cd $(DIR_APP) && echo ' install -s -m 644 _snackmodule.so $$(instroot)/$$(pythonbindir)'>> Makefile
+       cd $(DIR_APP) && echo ' install -m 644 snack.py $$(instroot)/$$(pythonbindir)'          >> Makefile
+       cd $(DIR_APP) && RPM_OPT_FLAGS="$(CFLAGS)" make install-snack
+       cd $(DIR_APP) && RPM_OPT_FLAGS="$(CFLAGS)" make install-utf8sh
+       cd $(DIR_APP) && install -m 0644 newt.h /usr/include
+       ln -sf libnewt.so.0.50 /usr/lib/libnewt.so
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/noip_updater b/lfs/noip_updater
new file mode 100644 (file)
index 0000000..0d101fa
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: noip_updater,v 1.3.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = v1.6
+
+THISAPP    = noip_updater_$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.no-ip.com/client/linux
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 6503e2e7d8ea35c304744a318b400a09
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && gcc $(CFLAGS) -Dlinux noip.c -o noip
+       cd $(DIR_APP) && install -m 0755 noip /usr/bin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/ntp b/lfs/ntp
new file mode 100644 (file)
index 0000000..bbfb4c6
--- /dev/null
+++ b/lfs/ntp
@@ -0,0 +1,92 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ntp,v 1.6.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4.2.0
+
+THISAPP    = ntp-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0f8fabe87cf54f409b57c6283f0c0c3d
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-linuxcaps.patch
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --enable-linuxcaps
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       -mkdir /etc/ntp
+       chown -R ntp:ntp /etc/ntp
+       echo "restrict default nomodify noquery" > /etc/ntp.conf
+       echo "server  127.127.1.0"              >> /etc/ntp.conf
+       echo "fudge   127.127.1.0 stratum 10"   >> /etc/ntp.conf
+       echo "driftfile /etc/ntp/drift"         >> /etc/ntp.conf
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/oinkmaster b/lfs/oinkmaster
new file mode 100644 (file)
index 0000000..d9224a0
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: oinkmaster,v 1.1.2.3 2005/09/04 20:13:13 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.2
+
+THISAPP    = oinkmaster-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/oinkmaster
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 23dc212f3a5a93ab32253edb379cb724
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && install -m 0644 $(DIR_SRC)/config/cfgroot/oinkmaster.conf $(CONFIG_ROOT)/snort
+       cd $(DIR_APP) && chown -R nobody:nobody /var/ipfire/snort/oinkmaster.conf
+       cd $(DIR_APP) && install -m 0755 oinkmaster.pl /usr/local/bin
+       cd $(DIR_APP) && chown -R nobody:nobody /usr/local/bin/oinkmaster.pl
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/openssh b/lfs/openssh
new file mode 100644 (file)
index 0000000..c975a26
--- /dev/null
@@ -0,0 +1,102 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: openssh,v 1.7.2.5 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.9p1
+
+THISAPP    = openssh-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 8e1774d0b52aff08f817f3987442a16e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --sysconfdir=/etc/ssh --disable-nls \
+           --prefix=/usr --target=$(MACHINE) \
+           --with-privsep-path=/var/empty \
+           --with-ipv4-default \
+           --with-default-path=/bin:/usr/bin \
+           --with-superuser-path=/sbin:/usr/sbin:/bin:/usr/bin
+       cd $(DIR_APP) && make -j 3
+       cd $(DIR_APP) && make install
+       sed -i -e 's/^#\?Port .*$$/Port 222/' \
+           -e 's/^#\?Protocol .*$$/Protocol 2/' \
+           -e 's/^#\?LoginGraceTime .*$$/LoginGraceTime 30s/' \
+           -e 's/^#\?RSAAuthentication .*$$/RSAAuthentication yes/' \
+           -e 's/^#\?PubkeyAuthentication .*$$/PubkeyAuthentication yes/' \
+           -e 's/^#\?PasswordAuthentication .*$$/PasswordAuthentication yes/' \
+           -e 's/^#\?MaxStartups .*$$/MaxStartups 5/' \
+           -e 's/^#\?IgnoreUserKnownHosts .*$$/IgnoreUserKnownHosts yes/' \
+           -e 's/^#\?UsePAM .*$$//' \
+           -e 's/^#\?X11Forwarding .*$$/X11Forwarding no/' \
+           -e 's/^#\?AllowTcpForwarding .*$$/AllowTcpForwarding no/' \
+           /etc/ssh/sshd_config
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/openssl b/lfs/openssl
new file mode 100644 (file)
index 0000000..2ddea21
--- /dev/null
@@ -0,0 +1,92 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: openssl,v 1.6.2.12 2005/11/25 22:38:42 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.9.7i
+
+THISAPP    = openssl-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.openssl.org/source
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = f69d82b206ff8bff9d0e721f97380b9e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i -e 's/-O3/-O2/' -e 's/-m486/-mcpu=i386/' Configure
+       cd $(DIR_APP) && chmod 755 Configure
+       cd $(DIR_APP) && ./config --openssldir=/etc/ssl --prefix=/usr 386 \
+           no-idea no-threads no-mdc2 no-rc5 no-ec fips zlib-dynamic shared
+       cd $(DIR_APP) && sed -i 's%SHLIBDIRS= fips crypto ssl%SHLIBDIRS= crypto ssl%g' Makefile
+       cd $(DIR_APP) && make depend
+       cd $(DIR_APP) && make MANDIR=/usr/share/man
+       cd $(DIR_APP) && make MANDIR=/usr/share/man install
+       rm -rf /etc/ssl/lib
+       install -m 0644 $(DIR_SRC)/config/ssl/openssl.cnf /etc/ssl
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/openswan b/lfs/openswan
new file mode 100644 (file)
index 0000000..b6f99a1
--- /dev/null
@@ -0,0 +1,103 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: openswan,v 1.6.2.17 2005/12/01 23:00:25 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.10
+
+THISAPP    = openswan-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.openswan.org/download/
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 3767814e3c080d146a8c7233dc31e0a9
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openswan-1.0.1-plutoctl.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openswan-1.0.6-numif.patch
+       cd $(DIR_APP) && sed -i \
+           -e 's%^INC_USRLOCAL.*$$%INC_USRLOCAL=/usr%' \
+           -e 's%^USERCOMPILE.*$$%USERCOMPILE=$(CFLAGS)%' \
+           -e 's%^KLIPSCOMPILE.*$$%KLIPSCOMPILE=$(CFLAGS)%' Makefile.inc
+       #remove keywords that may be used to run scripts sf bug#1350181 (bash file=> easy to recover)
+       cd $(DIR_APP)/utils && sed -i \
+           -e 's% prepluto postpluto%%' \
+           -e 's% leftupdown%%' _confread
+       cd $(DIR_APP) && make programs
+       cd $(DIR_APP) && make install
+       mv -f /etc/rc.d/init.d/ipsec /etc/rc.d/
+       rm -f /etc/ipsec.conf /etc/ipsec.secrets
+       ln -sf $(CONFIG_ROOT)/vpn/ipsec.conf /etc/ipsec.conf
+       ln -sf $(CONFIG_ROOT)/vpn/ipsec.secrets /etc/ipsec.secrets
+
+       rm -rf /etc/ipsec.d/{cacerts,certs,crls}
+       ln -sf $(CONFIG_ROOT)/ca    /etc/ipsec.d/cacerts
+       ln -sf $(CONFIG_ROOT)/certs /etc/ipsec.d/certs
+       ln -sf $(CONFIG_ROOT)/crls  /etc/ipsec.d/crls
+       #@rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/pam b/lfs/pam
new file mode 100644 (file)
index 0000000..c4461cd
--- /dev/null
+++ b/lfs/pam
@@ -0,0 +1,87 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ntp,v 1.6.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.99.3.0
+
+THISAPP    = Linux-PAM-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.kernel.org/pub/linux/libs/pam/pre/library
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d1511e4e17746eb2e83ab284cca1204b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pam-0.99.3.0-hostname.patch
+       cd $(DIR_APP) && ./configure --prefix=/usr 
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make check
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/patch b/lfs/patch
new file mode 100644 (file)
index 0000000..6d7212f
--- /dev/null
+++ b/lfs/patch
@@ -0,0 +1,98 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: patch,v 1.3.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.5.4
+
+THISAPP    = patch-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/patch
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ee5ae84d115f051d87fcaaef3b4ae782
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && CPPFLAGS=-D_GNU_SOURCE ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/pciutils b/lfs/pciutils
new file mode 100644 (file)
index 0000000..aea6d63
--- /dev/null
@@ -0,0 +1,104 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: pciutils,v 1.5.2.4 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.1.11
+
+THISAPP    = pciutils-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_KERNEL)/software/utils/pciutils
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(LFS_PASS)" "install"
+  TARGET     = $(DIR_INFO)/$(THISAPP)-install
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 1d40f90aaae69594790bdb8ff90b4a41
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+\r
+       # fix command line overflow which did not allow for null terminator\r
+       # when using  lspci -vvv (AGPx1 and AGPx2 and AGPx4) Gentoo borrowed\r
+       cd $(DIR_APP) && sed -i -e s/'rate\[8\]'/'rate\[9\]'/g lspci.c\r
+
+ifeq "$(LFS_PASS)" "install"
+       cd $(DIR_APP)/lib && CFLAGS="-Os -fomit-frame-pointer" ./configure
+       cd $(DIR_APP)/lib && CFLAGS="-Os -fomit-frame-pointer" make
+       -mkdir -p /install/include/pci
+       cd $(DIR_APP) && install -m 0644 lib/libpci.a /install/lib
+       cd $(DIR_APP) && install -m 0644 lib/{config,header,pci}.h /install/include/pci
+else
+       cd $(DIR_APP) && make PREFIX=/usr ROOT=/usr
+       cd $(DIR_APP) && make PREFIX=/usr ROOT=/usr install
+       -mkdir -p /usr/include/pci
+       cd $(DIR_APP) && install -m 0644 lib/libpci.a /usr/lib
+       cd $(DIR_APP) && install -m 0644 lib/{config,header,pci}.h /usr/include/pci
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/pcmcia-cs b/lfs/pcmcia-cs
new file mode 100644 (file)
index 0000000..e624ca1
--- /dev/null
@@ -0,0 +1,100 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Alan Hourihane <alanh@fairlite.demon.co.uk>                      #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: pcmcia-cs,v 1.10.2.6 2005/07/05 15:11:12 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.2.8
+
+THISAPP    = pcmcia-cs-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/pcmcia-cs
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(LFS_PASS)" "install"
+  TARGET     = $(DIR_INFO)/$(THISAPP)-install
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 0d6d65be8896eff081aee996049afaa5
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ifeq "$(LFS_PASS)" "install"
+       cd $(DIR_APP) && ./Configure -n --kernel=/usr/src/linux --notrust --cardbus --pnp --apm --nox11 --srctree --ucc=gcc --kcc="$(KGCC)"
+       cd $(DIR_APP) && make -C cardmgr
+       cd $(DIR_APP) && mkdir -p /install/misc/bin
+       cd $(DIR_APP) && install -s -m 0755 cardmgr/cardmgr /install/misc/bin
+       cd $(DIR_APP) && install -s -m 0755 cardmgr/cardctl /install/misc/bin
+else
+       cd $(DIR_APP) && ./Configure -n --kernel=/usr/src/linux --notrust --cardbus --pnp --apm --nox11 --srctree --ucc=gcc --kcc="$(KGCC)"
+       cd $(DIR_APP) && make all
+       cd $(DIR_APP) && make install
+
+       # Install our own extra pcmcia configs
+       cp $(DIR_SRC)/src/pcmcia/*.conf /etc/pcmcia
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/pcre b/lfs/pcre
new file mode 100644 (file)
index 0000000..13ad311
--- /dev/null
+++ b/lfs/pcre
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: pcre,v 1.2.2.3 2005/09/10 17:22:31 rkerr Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4.5
+
+THISAPP    = pcre-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = a58971177114a3b7a5da0e5a89a43c96
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pcre-4.5-CAN-2005-2491.patch
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-static --enable-utf8
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/perl b/lfs/perl
new file mode 100644 (file)
index 0000000..127f120
--- /dev/null
+++ b/lfs/perl
@@ -0,0 +1,108 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: perl,v 1.9.2.13 2005/02/27 15:23:03 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 5.8.5
+
+THISAPP    = perl-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.cpan.org/src
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE) perl-5.8.4-libc-1.patch
+
+$(DL_FILE)                  = $(DL_FROM)/$(DL_FILE)
+perl-5.8.4-libc-1.patch     = $(URL_LFS)/perl/perl-5.8.4-libc-1.patch
+
+$(DL_FILE)_MD5              = 49baa8d7d29b4a9713c06edeb81e6b1b
+perl-5.8.4-libc-1.patch_MD5 = f033161efa8b4b174ec6667e4e739efa
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/perl-5.8.4-libc-1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/perl.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/perl-5.8.5-perlio_debug_security.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/perl-5.8.5-tempfiles.patch
+ifeq "$(ROOT)" ""
+       cd $(DIR_APP) && ./configure.gnu --prefix=/usr -Dpager="/bin/less -isR" -Dd_dosuid -Ui_db -Ui_gdbm -Ui_ndbm -Ui_dbm -Dmyhostname=localhost
+       cd $(DIR_APP) && make depend
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+else
+       cd $(DIR_APP) && ./configure.gnu --prefix=/tools -Dstatic_ext='IO Fcntl POSIX' -Dd_dosuid -Ui_db -Ui_gdbm -Ui_ndbm -Ui_dbm -Dmyhostname=localhost
+       cd $(DIR_APP) && make depend
+       cd $(DIR_APP) && make 
+       cd $(DIR_APP) && cp -f perl pod/pod2man /tools/bin
+       -mkdir -p /tools/lib/perl5/$(VER)
+       cd $(DIR_APP) && cp -Rf lib/* /tools/lib/perl5/$(VER)
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/popt b/lfs/popt
new file mode 100644 (file)
index 0000000..7ef4fe1
--- /dev/null
+++ b/lfs/popt
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: popt,v 1.3.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.7
+
+THISAPP    = popt-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 5988e7aeb0ae4dac8d83561265984cc9
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/ppp b/lfs/ppp
new file mode 100644 (file)
index 0000000..48c0ec4
--- /dev/null
+++ b/lfs/ppp
@@ -0,0 +1,106 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ppp,v 1.20.2.8 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.4.2
+
+THISAPP    = ppp-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.samba.org/pub/ppp
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 362bcf218fba8afbb9afbee7471e5dac
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && rm -f include/pcap-int.h
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-pppoatm.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-pppoatm-persist.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.1-oedod.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-pppoatm-modprobe.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-signal.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-printstats.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-close.patch
+       cd $(DIR_APP) && sed -i -e "s+/etc/ppp/connect-errors+/var/log/connect-errors+" pppd/pathnames.h
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP)/pppd && sed -i -e 's/#include <net\/bpf.h>/#include <pcap.h>/' sys-linux.c
+       cd $(DIR_APP)/pppd && sed -i -e 's/#include <net\/bpf.h>/#include <pcap.h>/' demand.c
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       touch /var/log/connect-errors
+       -mkdir -p /etc/ppp
+       for i in $(DIR_SRC)/src/ppp/* ; do \
+           if [ -f $$i ]; then \
+               sed 's%CONFIG_ROOT%$(CONFIG_ROOT)%g' $$i > /etc/ppp/`basename $$i`; \
+           fi; \
+       done
+       chmod 755 /etc/ppp/{dialer,ip-up,ip-down}
+       ln -sf $(CONFIG_ROOT)/ppp/secrets /etc/ppp/pap-secrets
+       ln -sf $(CONFIG_ROOT)/ppp/secrets /etc/ppp/chap-secrets
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/pptpclient b/lfs/pptpclient
new file mode 100644 (file)
index 0000000..8f25bd0
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: pptpclient,v 1.4.2.4 2005/04/13 23:52:04 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.6.0
+
+THISAPP    = pptp-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/pptpclient
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 9a706327fb9827541d7c86d48ceb9631
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/procinfo b/lfs/procinfo
new file mode 100644 (file)
index 0000000..689e3c3
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: procinfo,v 1.3.2.3 2005/03/15 17:48:27 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 18
+
+THISAPP    = procinfo-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.cistron.nl/pub/people/00-OLD/sandervm/
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 27658d0a69040aca05a65b9888599d50
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make LDLIBS=-lncurses
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/procps b/lfs/procps
new file mode 100644 (file)
index 0000000..a77d711
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: procps,v 1.4.2.4 2005/07/10 16:01:33 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.2.5
+
+THISAPP    = procps-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://procps.sf.net
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = cde0e3612d1d7c68f404d46f01c44fb4
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       rm -f /lib/libproc.so
+       install -m 0644 $(DIR_SRC)/config/etc/sysctl.conf /etc
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/psmisc b/lfs/psmisc
new file mode 100644 (file)
index 0000000..1aef62e
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: psmisc,v 1.3.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 21.4
+
+THISAPP    = psmisc-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/psmisc
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 8449269fdc8ae5d7d494df745e1180d3
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --exec-prefix=/
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       ln -sf killall /bin/pidof
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/pulsar b/lfs/pulsar
new file mode 100644 (file)
index 0000000..9f6cd85
--- /dev/null
@@ -0,0 +1,111 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# 17-03-2004 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: pulsar,v 1.1.2.17 2005/07/05 15:11:12 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4.0.19
+
+THISAPP    = pulsar-$(VER)
+DL_FILE    = $(THISAPP).tgz
+DL_FROM    = $(URL_SFNET)/openadsl
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 224fb4855c34e1982049bd01ba3d2732
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && mv libpulsar_fw3.a libpulsar_fw.a
+       cd $(DIR_APP) && cp makefile.2.4 makefile
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && sed -i \
+             -e 's/$$(shell uname -m)/$(MACHINE)/' \
+             -e 's/$$(shell uname -r)/$(KVER)/' \
+             -e 's%^.*DEST_KERNEL_MAIN =.*$$%DEST_KERNEL_MAIN = 2.4%' makefile
+else
+       cd $(DIR_APP) && sed -i \
+             -e 's/$$(shell uname -m)/$(MACHINE)/' \
+             -e 's/$$(shell uname -r)/$(KVER)-smp/' \
+             -e 's%^.*DEST_KERNEL_MAIN =.*$$%DEST_KERNEL_MAIN = 2.4%' makefile
+endif
+       cd $(DIR_APP) && sed -i \
+           -e 's%^.*CC.*=.*$$%CC = $(KGCC)%' \
+           -e 's%-falign-loops=2 -falign-jumps=2 -falign-functions=2%-DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h%' makefile
+       cd $(DIR_APP) && make clean
+       cd $(DIR_APP) && make pulsar_atm.o
+ifeq "$(SMP)" ""
+       cd $(DIR_APP) && install pulsar_atm.o /lib/modules/$(KVER)/misc/pulsar.o
+       find /lib/modules/$(KVER)/ -name '*.o' -a -type f | xargs gzip -f9
+else
+       cd $(DIR_APP) && install pulsar_atm.o /lib/modules/$(KVER)-smp/misc/pulsar.o
+       find /lib/modules/$(KVER)-smp/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/python b/lfs/python
new file mode 100644 (file)
index 0000000..3e702be
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: python,v 1.5.2.4 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.3.4
+
+THISAPP    = Python-$(VER)
+DL_FILE    = $(THISAPP).tgz
+DL_FROM    = http://www.python.org/ftp/python/$(VER)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = b6cf0b19226861a38689d2fabd0931b3
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && OPT="$(CFLAGS)" ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make -j 3
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rp-pppoe b/lfs/rp-pppoe
new file mode 100644 (file)
index 0000000..af7cdbc
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: rp-pppoe,v 1.3.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.5
+
+THISAPP    = rp-pppoe-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.roaringpenguin.com/penguin/pppoe
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 97972f8f8f6a3ab9b7070333a6a29c4b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP)/src && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP)/src && make
+       cd $(DIR_APP)/src && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/rrdtool b/lfs/rrdtool
new file mode 100644 (file)
index 0000000..f5a2dc0
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: rrdtool,v 1.5.2.6 2005/12/21 09:56:21 eoberlander Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.0.49
+
+THISAPP    = rrdtool-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    =  http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.0.x
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = fbe492dbf3d68abb1d86c2322e7ed44a
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sh configure --prefix=/usr/share/$(THISAPP) \
+           --exec-prefix=/usr --mandir=/usr/share/man \
+           --enable-local-libpng --enable-local-zlib --with-pic --enable-latin2
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       cd $(DIR_APP) && make site-perl-install
+       -mkdir -p /home/httpd/html/graphs/
+       -mkdir -p /var/log/rrd/
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/scsi.img b/lfs/scsi.img
new file mode 100644 (file)
index 0000000..0e54aee
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: scsi.img,v 1.19.2.4 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = scsi-$(VERSION).img
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+
+       # Create SCSI drivers
+       -mkdir -p /install/images
+       cd /tmp && rm -rf scsi.tgz scsi.tar bin etc lib var
+
+       cd / && tar -cf /tmp/scsi.tar lib/modules/$(KVER)/kernel/drivers/{scsi,pcmcia,message/fusion} lib/modules/$(KVER)/kernel/drivers/block/{DAC960.o.gz,cpqarray.o.gz,cciss.o.gz} lib/modules/$(KVER)/kernel/drivers/ide
+       cd /tmp && tar xf scsi.tar
+       cd /tmp && rm -f lib/modules/$(KVER)/kernel/drivers/message/fusion/mptlan*
+       cd /tmp && mkdir -p {bin,etc/pcmcia/scsi,var/lib/pcmcia,var/run}
+       cd /tmp && cp -aR /install/misc/bin/* bin
+       cd /tmp && cp -r /etc/pcmcia/{config*,scsi*} etc/pcmcia/scsi
+       # cardmgr wants to execute these to bring up the card, we'll
+       # create blank ones as we'll bring them up ourselves
+       cd /tmp/etc/pcmcia/scsi && rm -f scsi
+       cd /tmp/etc/pcmcia/scsi && touch scsi
+       cd /tmp/etc/pcmcia/scsi && chmod +x scsi
+       cd /tmp && tar -cf - bin/ etc/pcmcia var lib/modules/$(KVER) | gzip -9 -c > scsi.tgz
+
+       if [ "$(MACHINE)" = "alpha" ]; then \
+               cp /tmp/scsi.tgz /install/images/scsidrv-$(VERSION).img; \
+       else \
+               dd if=/tmp/scsi.tgz of=/install/images/scsidrv-$(VERSION).img bs=1440k count=1 conv=sync; \
+       fi
+       rm -f /tmp/scsi.tgz
+
+       ### If this fails, the disk is TOO FULL !!!!
+       tar tfz /install/images/scsidrv-$(VERSION).img >/dev/null 2>&1
+
+       @$(POSTBUILD)
diff --git a/lfs/sed b/lfs/sed
new file mode 100644 (file)
index 0000000..04c2c6b
--- /dev/null
+++ b/lfs/sed
@@ -0,0 +1,108 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: sed,v 1.6.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4.0.9
+
+THISAPP    = sed-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/sed
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --bindir=/bin --disable-nls
+  EXTRA_LDFLAGS =
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+ifeq "$(LFS_PASS)" "1"
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools1
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_LDFLAGS = -static
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools2
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_LDFLAGS =
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d8fb554bc6577aaedd39b94b3cb3df70
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/setserial b/lfs/setserial
new file mode 100644 (file)
index 0000000..c3d0c7d
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: setserial,v 1.3.2.2 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.17
+
+THISAPP    = setserial-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/setserial
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c4867d72c41564318e0107745eb7a0f2
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/setup b/lfs/setup
new file mode 100644 (file)
index 0000000..e7bbf1c
--- /dev/null
+++ b/lfs/setup
@@ -0,0 +1,69 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: setup,v 1.4.2.3 2006/01/11 01:01:38 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = setup
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && mkdir $(DIR_APP) && cp -R $(DIR_SRC)/src/install+setup/* $(DIR_APP)
+
+       cd $(DIR_APP)/libsmooth && make CFLAGS="$(CFLAGS) -Wall \
+           -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \
+            -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'"
+
+       cd $(DIR_APP)/setup && make CFLAGS="$(CFLAGS) -Wall \
+           -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \
+            -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'"
+
+       cd $(DIR_APP)/setup && install -m 0755 setup /usr/local/sbin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/shadow b/lfs/shadow
new file mode 100644 (file)
index 0000000..ce6569a
--- /dev/null
@@ -0,0 +1,103 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: shadow,v 1.9.2.8 2005/03/15 18:00:09 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4.0.4.1
+
+THISAPP    = shadow-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.pld.org.pl/software/shadow/old
+#DL_FROM     =         http://wiretapped.securax.org/security/host-security/shadow/old
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 4e5662f360a29f174a19163c8d8a0698
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
+       chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}
+       touch /usr/bin/passwd
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --libdir=/usr/lib --enable-shared
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       cd $(DIR_APP) && cp -f etc/{limits,login.access} /etc
+       cd $(DIR_APP) && sed -e 's%/var/spool/mail%/var/mail%' \
+           -e 's%#MD5_CRYPT_ENAB.no%MD5_CRYPT_ENAB yes%' \
+           etc/login.defs.linux > /etc/login.defs
+       ln -sf vipw /usr/sbin/vigr
+       mv -f /bin/sg /usr/bin
+       mv -f /usr/lib/lib{shadow,misc}.so.0* /lib
+       ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so
+       ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so
+       rm /bin/vigr
+       rm /bin/groups
+       /usr/sbin/pwconv
+       /usr/sbin/grpconv
+       chmod u-s /usr/bin/{chfn,chsh,chage,expiry,newgrp,passwd,gpasswd}
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/slang b/lfs/slang
new file mode 100644 (file)
index 0000000..214ae40
--- /dev/null
+++ b/lfs/slang
@@ -0,0 +1,102 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: slang,v 1.7.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.4.5
+
+THISAPP    = slang-$(VER)-mini
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = http://www.uclibc.org
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(LFS_PASS)" "install"
+  TARGET     = $(DIR_INFO)/$(THISAPP)-install
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 6c893e52347533225866242700a3cd07
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i 's/^#undef UTF8.*$$/#define UTF8 1/' slang.h
+       cd $(DIR_APP) && sed -i 's/^#undef UTF8.*$$/#define UTF8 1/' config.h
+
+ifeq "$(LFS_PASS)" "install"
+       -mkdir -p /install/lib
+       cd $(DIR_APP) && sed -i -e 's/libslang.a:/libslang.a:\ $$(OBJS)/' Makefile
+       cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer -Wall -fPIC" make -e libslang.a
+       cd $(DIR_APP) && install -m 0644 libslang.a /install/lib
+       -mkdir -p /install/include/slang
+       cd $(DIR_APP) && install -m 0644 slang.h slcurses.h /install/include/slang
+else
+       cd $(DIR_APP) && DESTDIR=/usr/lib CFLAGS="-Wall -fPIC $(CFLAGS)" make -e
+       cd $(DIR_APP) && install -m 0644 libslang.a /usr/lib
+       -mkdir -p /usr/include/slang
+       cd $(DIR_APP) && install -m 0644 slang.h slcurses.h /usr/include/slang
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/snort b/lfs/snort
new file mode 100644 (file)
index 0000000..88f0c2d
--- /dev/null
+++ b/lfs/snort
@@ -0,0 +1,95 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: snort,v 1.6.2.11 2005/11/05 19:53:45 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.3.3
+
+THISAPP    = snort-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.snort.org/dl/old
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 06bf140893e7cb120aaa9372d10a0100
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls \
+           --sysconfdir=/etc/snort \
+           --enable-linux-smp-stats
+       cd $(DIR_APP) && make -j 3
+       cd $(DIR_APP) && make install
+       mv /usr/bin/snort /usr/sbin/
+       -mkdir /etc/snort
+       cd $(DIR_APP) && install -m 0644 rules/*.rules \
+           etc/unicode.map etc/reference.config etc/classification.config /etc/snort
+       install -m 0644 $(DIR_SRC)/config/snort/snort.conf /etc/snort
+       chown -R nobody:nobody /etc/snort
+       -mkdir -p /var/log/snort
+       chown -R snort:snort /var/log/snort
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/speedtouch b/lfs/speedtouch
new file mode 100644 (file)
index 0000000..b9b2021
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: speedtouch,v 1.3.2.8 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.2
+
+THISAPP    = speedtouch-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/speedtouch
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = fe932b2f5d2dd7b5eb4c7dbb9ec6e192
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/speedtouch-1.2-isdn.patch
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/speedycgi b/lfs/speedycgi
new file mode 100644 (file)
index 0000000..c4c0baf
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: speedycgi,v 1.1.2.3 2005/06/22 22:32:20 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.22
+
+THISAPP    = CGI-SpeedyCGI-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_SFNET)/speedycgi
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 2f80df78874e3efa80f180923c4967a1
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && yes 'n' | perl Makefile.PL
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/squid b/lfs/squid
new file mode 100644 (file)
index 0000000..391123f
--- /dev/null
+++ b/lfs/squid
@@ -0,0 +1,111 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: squid,v 1.4.2.21 2005/10/24 22:19:58 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.5.STABLE12
+
+THISAPP    = squid-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = http://www.squid-cache.org/Versions/v2/2.5
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 7354255015b3772a1e024dfac173e48c
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls \
+          --datadir=/usr/lib/squid \
+          --mandir=/usr/share/man --libexecdir=/usr/lib/squid \
+          --localstatedir=/var --sysconfdir=/etc/squid \
+          --disable-poll --disable-snmp --disable-icmp \
+          --disable-http-violations --disable-ident-lookups \
+          --enable-storeio="aufs,coss,diskd,ufs" --enable-ssl \
+          --enable-underscores --enable-ntlm-fail-open \
+          --enable-removal-policies="heap,lru" \
+          --enable-delay-pools --enable-linux-netfilter \
+          --enable-basic-auth-helpers="NCSA,SMB,MSNT" \
+          --enable-ntlm-auth-helpers="SMB,winbind" \
+          --enable-useragent-log \
+          --enable-referer-log \
+          --with-pthreads
+       cd $(DIR_APP) && make -j 3
+       cd $(DIR_APP) && make install
+
+       rm -f /etc/squid/squid.conf
+       ln -sf $(CONFIG_ROOT)/proxy/squid.conf /etc/squid/squid.conf
+       rm -f /etc/squid/errors
+       ln -sf /usr/lib/squid/errors/English /etc/squid/errors
+
+       -mkdir -p /var/log/cache
+       -mkdir -p /var/log/squid
+       touch /var/log/squid/access.log
+       chown -R squid:squid /var/log/squid /var/log/cache
+
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/squid-graph b/lfs/squid-graph
new file mode 100644 (file)
index 0000000..6aca6db
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: squid-graph,v 1.3.2.2 2005/02/05 15:38:16 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.1
+
+THISAPP    = squid-graph-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://squid-graph.securlogic.com/files/stable
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = e9565daabc23599094ed2d0e9a984d5e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed \
+           -e "s/\$$color{'gr'}   .*$$/\$$color{'gr'}   = ['33','33','99']; # graph total line color/" \
+           -e "s/\$$color{'hit'}  .*$$/\$$color{'hit'}  = ['99','33','33']; # graph hit line color/" \
+           -e "s/\$$color{'miss'} .*$$/\$$color{'miss'} = ['33','99','33']; # graph miss line color/" \
+           -e "s/\$$color{'ims'}  .*$$/\$$color{'ims'}  = ['99','33','99']; # graph ims hit line color/" \
+              bin/squid-graph > /usr/bin/squid-graph
+       chmod 755 /usr/bin/squid-graph
+       -mkdir -p /home/httpd/html/sgraph
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/stage2 b/lfs/stage2
new file mode 100644 (file)
index 0000000..178cda5
--- /dev/null
@@ -0,0 +1,105 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: stage2,v 1.14.2.5 2006/02/08 23:53:37 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+THISAPP    = stage2
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) :
+       @$(PREBUILD)
+
+       # Create directories
+       -mkdir -p /{bin,boot,dev/{pts,shm,net},etc/opt,home,lib,mnt,proc} 
+       -mkdir -p /{root,sbin,tmp,usr/local,var,opt}
+       -for dirname in /usr /usr/local; do \
+           mkdir $$dirname/{bin,etc,include,lib,sbin,share,src}; \
+           ln -sf share/{man,doc,info} $$dirname; \
+           mkdir $$dirname/share/{dict,doc,info,locale,man}; \
+           mkdir $$dirname/share/{nls,misc,terminfo,zoneinfo}; \
+           mkdir $$dirname/share/man/man{1,2,3,4,5,6,7,8}; \
+       done
+       -mkdir -p /var/{lock/subsys,log,mail,run,spool}
+       -mkdir -p /var/{tmp,opt,cache,lib/misc,local,empty}
+       -mkdir /opt/{bin,doc,include,info}
+       -mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}}
+
+       # Permissions
+       chmod 0750 /root
+       chmod 1777 /tmp /var/tmp
+       chmod 0711 /var/empty
+       
+       # Symlinks
+       # for this reason, stage2 rebuild will broke the iso:perl, grubbatch
+       -ln -sf /tools/bin/{bash,cat,pwd,stty} /bin
+       -ln -sf /tools/bin/perl /usr/bin
+       -ln -sf /tools/lib/libgcc_s.so.1 /usr/lib
+       -ln -sf bash /bin/sh
+
+       # Config files
+       for i in $(DIR_SRC)/config/etc/*; do \
+           [ -f $$i ] && cp $$i /etc; \
+       done
+       ln -sf /proc/mounts /etc/mtab
+       echo "$(NAME) v$(VERSION) - $(SLOGAN)" > /etc/issue
+
+       # Scripts
+       for i in `find $(DIR_SRC)/src/scripts -maxdepth 1 -type f`; do \
+           sed "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" $$i > /usr/local/bin/`basename $$i`; \
+           chmod 755 /usr/local/bin/`basename $$i`; \
+       done
+
+       # Nobody user
+       -mkdir -p /home/nobody
+       chown -R nobody:nobody /home/nobody
+
+       # Patches directory
+       -mkdir -m 1775 -p /var/patches
+       chown -R root:nobody /var/patches
+
+       @$(POSTBUILD)
diff --git a/lfs/stund b/lfs/stund
new file mode 100644 (file)
index 0000000..c31f8c0
--- /dev/null
+++ b/lfs/stund
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ntp,v 1.6.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.96_Aug13
+
+THISAPP    = stund_$(VER)
+DL_FILE    = $(THISAPP).tgz
+DL_FROM    = http://switch.dl.sourceforge.net/sourceforge/stun/
+DIR_APP    = $(DIR_SRC)/stund
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 3273abb1a6f299f4e611b658304faefa
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make all
+       cd $(DIR_APP) && cp server /usr/bin/stund
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/sysklogd b/lfs/sysklogd
new file mode 100644 (file)
index 0000000..433e99c
--- /dev/null
@@ -0,0 +1,92 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: sysklogd,v 1.3.2.7 2005/10/17 21:15:49 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.4.1
+
+THISAPP    = sysklogd-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_LFS_FTP)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = f587720988bc1670071f31d3694ca0fb
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/sysklogd-1.3-31-rh-ksyslog-nul.diff
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/sysklogd-1.4.1-caen-owl-klogd-drop-root.diff
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/sysklogd-1.4.1-caen-owl-syslogd-bind.diff
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/sysklogd-1.4.1-caen-owl-syslogd-drop-root.diff
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/sysklogd-1.4.1-owl-syslogd-crunch_list.diff
+       cd $(DIR_APP) && CFLAGS="$(CFLAGS) -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce" make -e
+       cd $(DIR_APP) && CFLAGS="$(CFLAGS) -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce" make -e install
+       touch /var/log/{boot.log,dhcpcd.log,messages}
+       chmod 664 /var/log/{boot.log,dhcpcd.log,messages}
+       chown 0:105 /var/log/{boot.log,dhcpcd.log,messages}
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/syslinux b/lfs/syslinux
new file mode 100644 (file)
index 0000000..94035d5
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: syslinux,v 1.6.2.9 2005/02/05 15:38:16 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.11
+
+THISAPP    = syslinux-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_KERNEL)/linux/utils/boot/syslinux/Old
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = a73c4b32629c925676660c468ef3cf1a
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP)/sample && sed -i 's%^CFLAGS.*$$%CFLAGS = $(CFLAGS) -fno-stack-protector -fomit-frame-pointer -I../com32/include%' Makefile
+       cd $(DIR_APP) && sed -i 's%^CFLAGS.*$$%CFLAGS = $(CFLAGS) -fno-stack-protector -fomit-frame-pointer -D_FILE_OFFSET_BITS=64%' Makefile
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/sysvinit b/lfs/sysvinit
new file mode 100644 (file)
index 0000000..ef68325
--- /dev/null
@@ -0,0 +1,97 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: sysvinit,v 1.6.2.4 2005/07/28 00:32:46 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.86
+
+THISAPP    = sysvinit-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.cistron.nl/pub/people/miquels/sysvinit
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(LFS_PASS)" "install"
+  TARGET     = $(DIR_INFO)/$(THISAPP)-install
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 7d5d61c026122ab791ac04c8a84db967
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ifeq "$(LFS_PASS)" "install"
+       cd $(DIR_APP)/src && sed -i s'/-O2/-Os\ -fomit-frame-pointer/' Makefile
+       cd $(DIR_APP)/src && make killall5
+       cd $(DIR_APP)/src && install -m 0755 killall5 /install/initrd/bin
+else
+       cd $(DIR_APP) && cp src/init.c{,.backup}
+       cd $(DIR_APP) && sed 's/Sending processes/Sending processes started by init/g' \
+           src/init.c.backup > src/init.c
+       cd $(DIR_APP) && make -C src 
+       cd $(DIR_APP) && make -C src install
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/tar b/lfs/tar
new file mode 100644 (file)
index 0000000..04e27d1
--- /dev/null
+++ b/lfs/tar
@@ -0,0 +1,103 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: tar,v 1.3.2.5 2006/01/30 19:46:45 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.13.25
+
+THISAPP    = tar-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_AGNU)/tar
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --bindir=/bin \
+    --libexecdir=/usr/bin --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE) \
+       tar-1.13.25-dot_dot-1.patch
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+tar-1.13.25-dot_dot-1.patch        = $(URL_LFS)/tar/tar-1.13.25-dot_dot-1.patch
+
+$(DL_FILE)_MD5 = 6ef8c906e81eee441f8335652670ac4a
+tar-1.13.25-dot_dot-1.patch_MD5    = 56ab09592243847e7410c4fde8d37f62
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_DL)/tar-1.13.25-dot_dot-1.patch
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/tcl b/lfs/tcl
new file mode 100644 (file)
index 0000000..5cfb57c
--- /dev/null
+++ b/lfs/tcl
@@ -0,0 +1,89 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: tcl,v 1.4.2.4 2006/01/20 13:59:20 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 8.4.6
+
+THISAPP    = tcl$(VER)
+DL_FILE    = $(THISAPP)-src.tar.gz
+DL_FROM    = $(URL_SFNET)/tcl
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)-tools
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 9009a92dc648775fb8a9b0789b995756
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       #remove a syntax error in tcl. Appears with recent bash.
+       #tcl 8.4.13 will correct this bug, so next line can go away
+       cd $(DIR_APP) && sed -i "s/relid'/relid/g" unix/configure
+       cd $(DIR_APP)/unix && ./configure --prefix=/tools --disable-nls
+       cd $(DIR_APP)/unix && make
+       cd $(DIR_APP)/unix && make install
+       ln -sf tclsh8.4 /tools/bin/tclsh
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/tcpdump b/lfs/tcpdump
new file mode 100644 (file)
index 0000000..5e544d6
--- /dev/null
@@ -0,0 +1,90 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: tcpdump,v 1.5.2.7 2005/10/22 10:19:14 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 3.8.3
+
+THISAPP    = tcpdump-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://www.tcpdump.org/release
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 30645001f4b97019677cad88d3811904
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/tcpdump-3.8.2-rsvp-dos.patch       #CAN 2005-1280
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/tcpdump-3.8.2-bgp-dos.patch        #CAN 2005-1267
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/tcpdump-3.8.2-bgp-dos-2.patch      #CAN 2005-1279
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/tcpdump-3.8.2-isis-dos.patch       #CAN 2005-1278
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/tcpdump-3.8.2-ldp-dos.patch        #CAN 2005-1279
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && make DEFS="-D_U_=\"\" -DHAVE_CONFIG_H"
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/texinfo b/lfs/texinfo
new file mode 100644 (file)
index 0000000..c5d7540
--- /dev/null
@@ -0,0 +1,98 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: texinfo,v 1.3.2.3 2005/02/05 15:38:16 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4.7
+
+THISAPP    = texinfo-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_GNU)/texinfo
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+  TARGET = $(DIR_INFO)/$(THISAPP)
+  EXTRA_CONFIG = --prefix=/usr --disable-nls
+  EXTRA_MAKE =
+  EXTRA_INSTALL =
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+  EXTRA_CONFIG = --prefix=/tools --disable-nls
+  EXTRA_MAKE = 
+  EXTRA_INSTALL = 
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 72a57e378efb9898c9e41ca839554dae
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && make $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/traceroute b/lfs/traceroute
new file mode 100644 (file)
index 0000000..8e86166
--- /dev/null
@@ -0,0 +1,88 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: traceroute,v 1.4.2.2 2005/02/05 15:38:16 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.4a12
+
+THISAPP    = traceroute-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = ftp://ftp.ee.lbl.gov
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 964d599ef696efccdeebe7721cd4828d
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i 's|@prefix@|/usr|' Makefile.in
+       cd $(DIR_APP) && ./configure
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       cd $(DIR_APP) && make install-man
+       chmod u-s /usr/sbin/traceroute
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/uClibc b/lfs/uClibc
new file mode 100644 (file)
index 0000000..7bc9d17
--- /dev/null
@@ -0,0 +1,92 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: uClibc,v 1.9.2.4 2005/02/05 15:38:16 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.9.26
+
+THISAPP    = uClibc-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_KERNEL)/linux/libs/uclibc
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE) gcc-3.3.1.tar.gz
+
+$(DL_FILE)           = $(DL_FROM)/$(DL_FILE)
+gcc-3.3.1.tar.gz     = $(URL_GNU)/gcc/gcc-3.3.1.tar.gz
+
+$(DL_FILE)_MD5       = b63183651a1b13456c20387ea88b018f
+gcc-3.3.1.tar.gz_MD5 = 46d58197212818b5f7c403267ff24e4e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP)
+       @rm -rf /opt/$(MACHINE)-uClibc
+       @mkdir -p $(DIR_APP)
+       cd $(DIR_APP) && cp -R $(DIR_SRC)/src/uClibc/* .
+       cd $(DIR_APP) && sed -i -e 's/ARCH:=i386/ARCH:=$(MACHINE)/' Makefile
+       cd $(DIR_APP) && chmod +x sources/patch-kernel.sh
+       cd $(DIR_APP) && make
+       -mkdir -p /install/initrd/bin
+       cd $(DIR_APP)/toolchain_build_$(MACHINE)/$(THISAPP) && make PREFIX=/install/initrd install_runtime
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/unicorn b/lfs/unicorn
new file mode 100644 (file)
index 0000000..9c9ea8d
--- /dev/null
@@ -0,0 +1,108 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: unicorn,v 1.13.2.8 2005/02/05 15:38:16 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.9.0
+
+THISAPP    = bast-$(VER)
+DL_FILE    = $(THISAPP).tgz
+DL_FROM    = http://www.bewan.com/bewan/drivers
+DIR_APP    = $(DIR_SRC)/unicorn
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 8b4f880e79d9d23029cc8f85e2f6478a
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       sed -i -e 's%^CC=gcc.*$$%CC=$(KGCC)%'           $(DIR_APP)/unicorn_pci/Makefile
+       sed -i -e 's%^CC=gcc.*$$%CC=$(KGCC)%'           $(DIR_APP)/unicorn_usb/Makefile
+       sed -i -e 's%^PATCHLEVEL.*$$%PATCHLEVEL=4%'     $(DIR_APP)/unicorn_pci/Makefile
+       sed -i -e 's%^PATCHLEVEL.*$$%PATCHLEVEL=4%'     $(DIR_APP)/unicorn_usb/Makefile
+       sed -i -e 's%^COPTIONS.*$$%CXX=$(KGCC) -x c++%' $(DIR_APP)/unicorn_pci/Makefile
+ifeq "$(SMP)" ""
+       sed -i -e 's%^KVERS.*$$%KVERS=$(KVER)%'         $(DIR_APP)/unicorn_usb/Makefile
+       sed -i -e 's%^KVERS.*$$%KVERS=$(KVER)%'         $(DIR_APP)/unicorn_pci/Makefile
+else
+       sed -i -e 's%^KVERS.*$$%KVERS=$(KVER)-smp%'     $(DIR_APP)/unicorn_usb/Makefile
+       sed -i -e 's%^KVERS.*$$%KVERS=$(KVER)-smp%'     $(DIR_APP)/unicorn_pci/Makefile
+endif
+       cd $(DIR_APP) && make modules
+       cd $(DIR_APP) && make only_modules_install
+ifeq "$(SMP)" ""
+       find /lib/modules/$(KVER)/ -name '*.o' -a -type f | xargs gzip -f9
+       cd $(DIR_APP)/tools && sed -i 's%^prefix=.*$$%prefix=/usr%' Makefile
+       cd $(DIR_APP)/tools && make unicorn_status oam_ping
+       cd $(DIR_APP)/tools && make install
+else
+       find /lib/modules/$(KVER)-smp/ -name '*.o' -a -type f | xargs gzip -f9
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/unzip b/lfs/unzip
new file mode 100644 (file)
index 0000000..3236074
--- /dev/null
+++ b/lfs/unzip
@@ -0,0 +1,89 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: unzip,v 1.5.2.8 2005/10/03 22:49:44 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 552
+
+THISAPP    = unzip$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+#DL_FROM    = ftp://ftp.info-zip.org/pub/infozip/src
+DL_FROM    = http://fresh.t-systems-sfr.com/unix/src/misc
+DIR_APP    = $(DIR_SRC)/unzip-5.52
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 9d23919999d6eac9217d1f41472034a9
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       if [ "$(MACHINE)" = "i386" ]; then \
+               cd $(DIR_APP) && make -f unix/Makefile linux; \
+       else \
+               cd $(DIR_APP) && make -f unix/Makefile linux_noasm; \
+       fi
+       cd $(DIR_APP) && make -f unix/Makefile prefix=/usr install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/util-linux b/lfs/util-linux
new file mode 100644 (file)
index 0000000..924b214
--- /dev/null
@@ -0,0 +1,124 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: util-linux,v 1.8.2.7 2006/01/20 14:31:47 franck78 Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.12r
+
+THISAPP    = util-linux-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_KERNEL)/linux/utils/util-linux
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+
+# Normal build or /tools build.
+#
+ifeq "$(ROOT)" ""
+ifeq "$(LFS_PASS)" "install"
+  TARGET     = $(DIR_INFO)/$(THISAPP)-install
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)
+endif
+else
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = af9d9e03038481fbf79ea3ac33f116f9
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+ifeq "$(ROOT)" ""
+ifeq "$(LFS_PASS)" "install"
+       -mkdir -p /install/misc/bin
+       cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure
+       cd $(DIR_APP)/fdisk && sed -i 's+setlocale+// setlocale+' sfdisk.c
+       cd $(DIR_APP)/fdisk && make sfdisk
+       cd $(DIR_APP)/fdisk && install -m 0755 sfdisk /install/misc/bin
+       if [ "$(MACHINE)" = "alpha" ]; then \
+               cd $(DIR_APP)/fdisk && make fdisk; \
+               cd $(DIR_APP)/fdisk && install -m 0755 fdisk /install/misc/bin; \
+       fi
+else
+       cd $(DIR_APP) && cp hwclock/hwclock.c{,.backup}
+       cd $(DIR_APP) && sed 's%etc/adjtime%var/lib/hwclock/adjtime%' \
+           hwclock/hwclock.c.backup > hwclock/hwclock.c
+       -mkdir -p /var/lib/hwclock
+       cd $(DIR_APP) && ./configure
+       cd $(DIR_APP) && make HAVE_SLN=yes
+       cd $(DIR_APP) && make HAVE_SLN=yes install
+       chmod u-s /bin/mount /bin/umount
+       touch /var/lib/hwclock/adjtime
+endif
+else
+       cd $(DIR_APP) && cp configure configure.backup
+       cd $(DIR_APP) && sed "s@/usr/include@/tools/include@g" configure.backup > configure 
+       cd $(DIR_APP) && chmod 755 configure
+       cd $(DIR_APP) && ./configure
+       cd $(DIR_APP) && make -C lib
+       cd $(DIR_APP) && make -C mount mount umount
+       cd $(DIR_APP) && make -C text-utils more
+       cd $(DIR_APP) && cp mount/{,u}mount text-utils/more /tools/bin
+endif
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/vim b/lfs/vim
new file mode 100644 (file)
index 0000000..87e6ead
--- /dev/null
+++ b/lfs/vim
@@ -0,0 +1,94 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: vim,v 1.3.2.3 2005/04/13 23:52:04 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 6.3
+
+THISAPP    = vim-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = ftp://ftp.vim.org/pub/vim/unix
+DIR_APP    = $(DIR_SRC)/vim63
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE) \
+       vim-6.3-security_fix-1.patch
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+vim-6.3-security_fix-1.patch = $(URL_LFS)/vim/vim-6.3-security_fix-1.patch
+
+$(DL_FILE)_MD5 = 821fda8f14d674346b87e3ef9cb96389
+vim-6.3-security_fix-1.patch_MD5 = ef9a421f1d29993ce5bbd709cece4624
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_DL)/vim-6.3-security_fix-1.patch
+       cd $(DIR_APP) && echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
+       cd $(DIR_APP) && echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --with-features=tiny --disable-gpm 
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       ln -sf vim /usr/bin/vi
+       echo "set nocompatible" >  /root/.vimrc
+       echo "set bs=2"         >> /root/.vimrc
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/vlan b/lfs/vlan
new file mode 100644 (file)
index 0000000..dbe8501
--- /dev/null
+++ b/lfs/vlan
@@ -0,0 +1,84 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+#     2005-jul  Gilles Espinasse                                              #
+#                                                                             #
+# $Id: vlan,v 1.1.2.3 2006/01/15 08:55:50 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.9
+
+THISAPP    = vlan.$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+#DL_FROM    = http://www.candelatech.com/~greear/vlan
+DL_FROM    = http://fresh.t-systems-sfr.com/linux/src
+DIR_APP    = $(DIR_SRC)/vlan
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 5f0c6060b33956fb16e11a15467dd394
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && install -c -p -m 0755 vconfig /sbin
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/wireless b/lfs/wireless
new file mode 100644 (file)
index 0000000..6752dd7
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Alan Hourihane <alanh@fairlite.demon.co.uk>                      #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: wireless,v 1.3.2.5 2006/01/30 22:57:23 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 27
+
+THISAPP    = wireless_tools.$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://pcmcia-cs.sourceforge.net/ftp/contrib
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 29891b66f23565e7e381d28404abb29a
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i 's#\# KERNEL_SRC#KERNEL_SRC#' Makefile
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make PREFIX=/usr install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/xampp b/lfs/xampp
new file mode 100644 (file)
index 0000000..416e80f
--- /dev/null
+++ b/lfs/xampp
@@ -0,0 +1,83 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: ntp,v 1.6.2.3 2005/02/05 15:38:15 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.5.1
+
+THISAPP    = xampp-linux-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = http://ovh.dl.sourceforge.net/sourceforge/xampp
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = baefcf7ac3629a641c7b75c547564a3f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -C /opt
+       chown -R nobody.nobody /opt/lampp/htdocs
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/zlib b/lfs/zlib
new file mode 100644 (file)
index 0000000..b202aa1
--- /dev/null
+++ b/lfs/zlib
@@ -0,0 +1,89 @@
+###############################################################################
+# This file is part of the IPCop Firewall.                                    #
+#                                                                             #
+# IPCop 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.                                         #
+#                                                                             #
+# IPCop 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 IPCop; if not, write to the Free Software                        #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
+#                                                                             #
+# Makefiles are based on LFSMake, which is                                    #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
+#                                                                             #
+# Modifications by:                                                           #
+# ??-12-2003 Mark Wormgoor < mark@wormgoor.com>                               #
+#          - Modified Makefile for IPCop build                                #
+#                                                                             #
+# $Id: zlib,v 1.4.2.8 2005/07/26 06:27:49 gespinasse Exp $
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.2.3
+
+THISAPP    = zlib-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_SFNET)/libpng
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+CFLAGS    += -fPIC
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects = $(DL_FILE)
+
+$(DL_FILE)                           = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5                       = dee233bf288ee795ac96a98cc2e369b6
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --shared --libdir=/lib
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       cd $(DIR_APP) && make clean
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/src/CVS/Entries b/src/CVS/Entries
new file mode 100644 (file)
index 0000000..8bfcf89
--- /dev/null
@@ -0,0 +1,12 @@
+/ROOTFILES.alpha/1.12.2.136/Thu Feb  2 14:23:24 2006//TIPCOP_v1_4_0
+/ROOTFILES.i386/1.23.2.157/Thu Feb  2 14:23:24 2006//TIPCOP_v1_4_0
+D/ibod////
+D/install+setup////
+D/misc-progs////
+D/nash////
+D/patches////
+D/pcmcia////
+D/ppp////
+D/rc.d////
+D/scripts////
+D/uClibc////
diff --git a/src/CVS/Repository b/src/CVS/Repository
new file mode 100644 (file)
index 0000000..874394e
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src
diff --git a/src/CVS/Root b/src/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/CVS/Tag b/src/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/ROOTFILES.alpha b/src/ROOTFILES.alpha
new file mode 100644 (file)
index 0000000..3caa41b
--- /dev/null
@@ -0,0 +1,24080 @@
+##
+## ccache-2.3
+##
+#usr/local/bin/ccache
+#usr/local/bin/cc
+#usr/local/bin/gcc
+#usr/local/bin/g++
+#usr/local/man/man1/ccache.1
+##
+## linux-2.4.31-ipcop
+##
+boot/vmlinuz-2.4.31
+boot/System.map-2.4.31
+boot/vmlinuz
+boot/System.map
+#lib/modules/2.4.31
+lib/modules/2.4.31/kernel
+#lib/modules/2.4.31/kernel/drivers
+#lib/modules/2.4.31/kernel/drivers/acpi
+#lib/modules/2.4.31/kernel/drivers/acpi/button.o.gz
+#lib/modules/2.4.31/kernel/drivers/acpi/fan.o.gz
+#lib/modules/2.4.31/kernel/drivers/acpi/processor.o.gz
+#lib/modules/2.4.31/kernel/drivers/acpi/thermal.o.gz
+#lib/modules/2.4.31/kernel/drivers/acpi/ac.o.gz
+#lib/modules/2.4.31/kernel/drivers/acpi/battery.o.gz
+#lib/modules/2.4.31/kernel/drivers/atm
+#lib/modules/2.4.31/kernel/drivers/atm/atmtcp.o.gz
+#lib/modules/2.4.31/kernel/drivers/block
+#lib/modules/2.4.31/kernel/drivers/block/cpqarray.o.gz
+#lib/modules/2.4.31/kernel/drivers/block/loop.o.gz
+#lib/modules/2.4.31/kernel/drivers/block/sx8.o.gz
+#lib/modules/2.4.31/kernel/drivers/block/DAC960.o.gz
+#lib/modules/2.4.31/kernel/drivers/block/cciss.o.gz
+#lib/modules/2.4.31/kernel/drivers/char
+#lib/modules/2.4.31/kernel/drivers/char/pcmcia
+#lib/modules/2.4.31/kernel/drivers/char/pcmcia/serial_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/char/pcmcia/synclink_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/char/n_hdlc.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide
+#lib/modules/2.4.31/kernel/drivers/ide/pci
+#lib/modules/2.4.31/kernel/drivers/ide/pci/delkin_cb.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide/raid
+#lib/modules/2.4.31/kernel/drivers/ide/raid/hptraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide/raid/medley.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide/raid/silraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide/raid/ataraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide/raid/pdcraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/input
+#lib/modules/2.4.31/kernel/drivers/input/input.o.gz
+#lib/modules/2.4.31/kernel/drivers/input/keybdev.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1/capifs.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1/capiutil.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1/kernelcapi.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1/capi.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1/capidrv.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/elsa_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/hisax.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/hisax_isac.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/hisax_st5481.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/isdnhdlc.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/sedlbauer_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/avma1_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/hisax_fcpcipnp.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/isdn.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/isdn_bsdcomp.o.gz
+#lib/modules/2.4.31/kernel/drivers/message
+#lib/modules/2.4.31/kernel/drivers/message/fusion
+#lib/modules/2.4.31/kernel/drivers/message/fusion/mptlan.o.gz
+#lib/modules/2.4.31/kernel/drivers/message/fusion/mptbase.o.gz
+#lib/modules/2.4.31/kernel/drivers/message/fusion/mptscsih.o.gz
+#lib/modules/2.4.31/kernel/drivers/net
+#lib/modules/2.4.31/kernel/drivers/net/3c505.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c507.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c509.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c515.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c527.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c59x.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/8139cp.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/8139too.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/82596.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ac3200.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/acenic.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/aironet4500_core.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/amd8111e.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/arlan-proc.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/arlan.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/at1700.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/b44.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/bsd_comp.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/cs89x0.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/de4x5.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/depca.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/dl2k.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/dmfe.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/dummy.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/e2100.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/eexpress.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/epic100.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/eql.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/es3210.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/eth16i.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ewrk3.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/forcedeth.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/hamachi.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/hp-plus.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/hp.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/hp100.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ibmlana.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/lance.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/lp486e.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/mii.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/natsemi.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ne.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ne2.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ne2k-pci.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ne3210.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ni52.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ni65.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ns83820.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcnet32.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ppp_async.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ppp_generic.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ppp_synctty.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pppoe.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pppox.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/r8169.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/sis900.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/sk_mca.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/slhc.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/smc-mca.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/smc-ultra32.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/smc9194.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/starfire.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/sundance.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/tg3.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/tlan.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/tun.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/typhoon.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/via-rhine.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wavelan.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wd.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/yellowfin.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/bonding
+#lib/modules/2.4.31/kernel/drivers/net/bonding/bonding.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/e100
+#lib/modules/2.4.31/kernel/drivers/net/e100/e100.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/e1000
+#lib/modules/2.4.31/kernel/drivers/net/e1000/e1000.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/axnet_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/fmvj18x_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/netwave_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/nmclan_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/pcnet_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/ray_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/wavelan_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/xirc2ps_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/xircom_cb.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/xircom_tulip_cb.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/3c574_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/3c589_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/smc91c92_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/sk98lin
+#lib/modules/2.4.31/kernel/drivers/net/sk98lin/sk98lin.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/tulip
+#lib/modules/2.4.31/kernel/drivers/net/tulip/tulip.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless
+#lib/modules/2.4.31/kernel/drivers/net/wireless/hermes.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/orinoco.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/orinoco_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/orinoco_pci.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/orinoco_plx.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/orinoco_tmd.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/prism54
+#lib/modules/2.4.31/kernel/drivers/net/wireless/prism54/prism54.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/airo.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/airo_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c501.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c503.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c523.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/8390.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/aironet4500_card.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/dgrs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/eepro.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/fealnx.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/lne390.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ni5010.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ppp_deflate.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/smc-ultra.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/winbond-840.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia
+#lib/modules/2.4.31/kernel/drivers/pcmcia/i82365.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia/pcmcia_core.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia/tcic.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia/ds.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia/i82092.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia/yenta_socket.o.gz
+#lib/modules/2.4.31/kernel/drivers/pnp
+#lib/modules/2.4.31/kernel/drivers/pnp/isa-pnp.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi
+#lib/modules/2.4.31/kernel/drivers/scsi/53c700.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/AM53C974.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/BusLogic.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/NCR53C9x.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/NCR53c406a.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/a100u2w.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/advansys.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aha152x.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aha1542.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aha1740.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ahci.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ata_piix.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/atp870u.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/cpqfc.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/dmx3191d.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/dpt_i2o.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/dtc.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/eata.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/eata_pio.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/fd_mcs.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/fdomain.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/g_NCR5380.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/gdth.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ibmmca.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/initio.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ips.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/libata.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/mca_53c9x.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/megaraid2.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ncr53c8xx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/nsp32.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pas16.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pci2000.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pci2220i.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/psi240i.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/qla1280.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/qlogicfc.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/qlogicisp.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_nv.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_promise.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_sil.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_sis.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_sx4.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_uli.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_via.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_vsc.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/scsi_mod.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sd_mod.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sg.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sim710.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sr_mod.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sym53c416.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/t128.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/tmscsim.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/u14-34f.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ultrastor.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/wd7000.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aic79xx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sym53c8xx_2.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pcmcia
+#lib/modules/2.4.31/kernel/drivers/scsi/pcmcia/nsp_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pcmcia/qlogic_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pcmcia/aha152x_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pcmcia/fdomain_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/3w-xxxx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/53c7,8xx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/NCR_D700.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/eata_dma.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/in2000.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/megaraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/qlogicfas.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_svw.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/seagate.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sym53c8xx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aic7xxx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aacraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb
+#lib/modules/2.4.31/kernel/drivers/usb/acm.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/catc.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/hid.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/pegasus.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/rtl8150.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/speedtch.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/usbcore.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/usbnet.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/host
+#lib/modules/2.4.31/kernel/drivers/usb/host/uhci.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/host/usb-uhci.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/host/ehci-hcd.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/storage
+#lib/modules/2.4.31/kernel/drivers/usb/storage/usb-storage.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/CDCEther.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/kaweth.o.gz
+#lib/modules/2.4.31/kernel/fs
+#lib/modules/2.4.31/kernel/fs/fat
+#lib/modules/2.4.31/kernel/fs/fat/fat.o.gz
+#lib/modules/2.4.31/kernel/fs/vfat
+#lib/modules/2.4.31/kernel/fs/vfat/vfat.o.gz
+#lib/modules/2.4.31/kernel/net
+#lib/modules/2.4.31/kernel/net/8021q
+#lib/modules/2.4.31/kernel/net/8021q/8021q.o.gz
+#lib/modules/2.4.31/kernel/net/atm
+#lib/modules/2.4.31/kernel/net/atm/clip.o.gz
+#lib/modules/2.4.31/kernel/net/atm/pppoatm.o.gz
+#lib/modules/2.4.31/kernel/net/atm/atm.o.gz
+#lib/modules/2.4.31/kernel/net/atm/br2684.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec
+#lib/modules/2.4.31/kernel/net/ipsec/alg
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_blowfish.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_cast.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_md5.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_serpent.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_sha1.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_twofish.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_3des.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_aes.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_sha2.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/ipsec.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/arptable_filter.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_h323.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_irc.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_pptp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_proto_gre.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_quake3.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_rtsp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_tftp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_cuseeme.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_ftp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_h323.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_irc.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_mms.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_pptp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_quake3.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_rtsp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_tftp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_pool.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_queue.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_iphash.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_ipmap.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_iptree.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_macipmap.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_nethash.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_portmap.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_tables.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_DSCP.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ECN.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_LOG.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_MARK.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_MASQUERADE.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_MIRROR.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_NETLINK.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_NETMAP.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_NOTRACK.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_POOL.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_REDIRECT.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_REJECT.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_SET.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_TARPIT.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_TCPMSS.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_TOS.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_TTL.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ULOG.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ah.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_conntrack.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_dscp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_dstlimit.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ecn.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_esp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_fuzzy.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_helper.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_iprange.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ipv4options.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_length.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_limit.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_mac.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_mport.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_multiport.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_nth.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_osf.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_owner.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_pkttype.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_pool.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_psd.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_quota.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_realm.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_recent.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_set.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_state.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_string.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_tcpmss.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_tos.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ttl.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_u32.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_unclean.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/iptable_filter.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/iptable_mangle.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/iptable_nat.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/iptable_raw.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/arp_tables.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/arpt_mangle.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_mms.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_proto_gre.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_IPV4OPTSSTRIP.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_SAME.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_connlimit.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_mark.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_random.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_time.o.gz
+#lib/modules/2.4.31/kernel/net/sched
+#lib/modules/2.4.31/kernel/net/sched/cls_rsvp.o.gz
+#lib/modules/2.4.31/kernel/net/sched/cls_rsvp6.o.gz
+#lib/modules/2.4.31/kernel/net/sched/cls_tcindex.o.gz
+#lib/modules/2.4.31/kernel/net/sched/cls_u32.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_cbq.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_csz.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_dsmark.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_gred.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_htb.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_ingress.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_prio.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_red.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_sfq.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_tbf.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_teql.o.gz
+#lib/modules/2.4.31/kernel/net/sched/cls_fw.o.gz
+#lib/modules/2.4.31/kernel/net/sched/cls_route.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_hfsc.o.gz
+#lib/modules/2.4.31/kernel/lib
+#lib/modules/2.4.31/kernel/lib/zlib_deflate
+#lib/modules/2.4.31/kernel/lib/zlib_deflate/zlib_deflate.o.gz
+#lib/modules/2.4.31/kernel/lib/zlib_inflate
+#lib/modules/2.4.31/kernel/lib/zlib_inflate/zlib_inflate.o.gz
+#lib/modules/2.4.31/kernel/lib/crc32.o.gz
+#lib/modules/2.4.31/kernel/lib/firmware_class.o.gz
+#lib/modules/2.4.31/kernel/arch
+#lib/modules/2.4.31/kernel/arch/i386
+#lib/modules/2.4.31/kernel/arch/i386/kernel
+#lib/modules/2.4.31/kernel/arch/i386/kernel/apm.o.gz
+#lib/modules/2.4.31/build
+lib/modules/2.4.31/modules.dep
+lib/modules/2.4.31/modules.generic_string
+lib/modules/2.4.31/modules.pcimap
+lib/modules/2.4.31/modules.isapnpmap
+lib/modules/2.4.31/modules.usbmap
+#lib/modules/2.4.31/modules.parportmap
+#lib/modules/2.4.31/modules.ieee1394map
+#lib/modules/2.4.31/modules.pnpbiosmap
+#usr/share/man/man9
+#usr/share/man/man9/NS8390_init.9
+#usr/share/man/man9/PROC_CONSOLE.9
+#usr/share/man/man9/__change_bit.9
+#usr/share/man/man9/__fb_try_mode.9
+#usr/share/man/man9/__get_lease.9
+#usr/share/man/man9/__set_bit.9
+#usr/share/man/man9/__test_and_clear_bit.9
+#usr/share/man/man9/__test_and_set_bit.9
+#usr/share/man/man9/_devfs_alloc_entry.9
+#usr/share/man/man9/_devfs_append_entry.9
+#usr/share/man/man9/_devfs_descend.9
+#usr/share/man/man9/_devfs_find_by_dev.9
+#usr/share/man/man9/_devfs_find_entry.9
+#usr/share/man/man9/_devfs_get_root_entry.9
+#usr/share/man/man9/_devfs_get_vfs_inode.9
+#usr/share/man/man9/_devfs_search_dir.9
+#usr/share/man/man9/_devfs_unhook.9
+#usr/share/man/man9/_devfs_unregister.9
+#usr/share/man/man9/acquire_console_sem.9
+#usr/share/man/man9/alloc_ei_netdev.9
+#usr/share/man/man9/alloc_etherdev.9
+#usr/share/man/man9/alloc_fcdev.9
+#usr/share/man/man9/alloc_fddidev.9
+#usr/share/man/man9/alloc_hippi_dev.9
+#usr/share/man/man9/alloc_trdev.9
+#usr/share/man/man9/bcopy.9
+#usr/share/man/man9/blk_cleanup_queue.9
+#usr/share/man/man9/blk_init_queue.9
+#usr/share/man/man9/blk_queue_bounce_limit.9
+#usr/share/man/man9/blk_queue_headactive.9
+#usr/share/man/man9/blk_queue_make_request.9
+#usr/share/man/man9/blk_queue_throttle_sectors.9
+#usr/share/man/man9/call_usermodehelper.9
+#usr/share/man/man9/change_bit.9
+#usr/share/man/man9/check_disc_changed.9
+#usr/share/man/man9/clear_bit.9
+#usr/share/man/man9/console_getmode.9
+#usr/share/man/man9/console_powermode.9
+#usr/share/man/man9/console_setcmap.9
+#usr/share/man/man9/console_setmode.9
+#usr/share/man/man9/devfs_auto_unregister.9
+#usr/share/man/man9/devfs_d_delete.9
+#usr/share/man/man9/devfs_d_iput.9
+#usr/share/man/man9/devfs_d_release.9
+#usr/share/man/man9/devfs_generate_path.9
+#usr/share/man/man9/devfs_get.9
+#usr/share/man/man9/devfs_get_first_child.9
+#usr/share/man/man9/devfs_get_flags.9
+#usr/share/man/man9/devfs_get_handle.9
+#usr/share/man/man9/devfs_get_handle_from_inode.9
+#usr/share/man/man9/devfs_get_info.9
+#usr/share/man/man9/devfs_get_maj_min.9
+#usr/share/man/man9/devfs_get_name.9
+#usr/share/man/man9/devfs_get_next_sibling.9
+#usr/share/man/man9/devfs_get_ops.9
+#usr/share/man/man9/devfs_get_parent.9
+#usr/share/man/man9/devfs_get_unregister_slave.9
+#usr/share/man/man9/devfs_mk_dir.9
+#usr/share/man/man9/devfs_mk_symlink.9
+#usr/share/man/man9/devfs_put.9
+#usr/share/man/man9/devfs_put_ops.9
+#usr/share/man/man9/devfs_register.9
+#usr/share/man/man9/devfs_register_blkdev.9
+#usr/share/man/man9/devfs_register_chrdev.9
+#usr/share/man/man9/devfs_set_file_size.9
+#usr/share/man/man9/devfs_set_info.9
+#usr/share/man/man9/devfs_setup.9
+#usr/share/man/man9/devfs_unregister.9
+#usr/share/man/man9/devfs_unregister_blkdev.9
+#usr/share/man/man9/devfs_unregister_chrdev.9
+#usr/share/man/man9/devfsd_notify.9
+#usr/share/man/man9/devfsd_notify_de.9
+#usr/share/man/man9/devfsd_queue_empty.9
+#usr/share/man/man9/disable_irq.9
+#usr/share/man/man9/disable_irq_nosync.9
+#usr/share/man/man9/do_set_multicast_list.9
+#usr/share/man/man9/ei_close.9
+#usr/share/man/man9/ei_interrupt.9
+#usr/share/man/man9/ei_open.9
+#usr/share/man/man9/ei_receive.9
+#usr/share/man/man9/ei_rx_overrun.9
+#usr/share/man/man9/ei_start_xmit.9
+#usr/share/man/man9/ei_tx_err.9
+#usr/share/man/man9/ei_tx_intr.9
+#usr/share/man/man9/ei_tx_timeout.9
+#usr/share/man/man9/enable_irq.9
+#usr/share/man/man9/end_that_request_first.9
+#usr/share/man/man9/ethdev_init.9
+#usr/share/man/man9/fb_alloc_cmap.9
+#usr/share/man/man9/fb_copy_cmap.9
+#usr/share/man/man9/fb_default_cmap.9
+#usr/share/man/man9/fb_find_mode.9
+#usr/share/man/man9/fb_get_cmap.9
+#usr/share/man/man9/fb_invert_cmaps.9
+#usr/share/man/man9/fb_set_cmap.9
+#usr/share/man/man9/fbcon_find_font.9
+#usr/share/man/man9/fbcon_get_default_font.9
+#usr/share/man/man9/fbcon_redraw_bmove.9
+#usr/share/man/man9/fbcon_redraw_clear.9
+#usr/share/man/man9/fbgen_blank.9
+#usr/share/man/man9/fbgen_do_set_var.9
+#usr/share/man/man9/fbgen_get_cmap.9
+#usr/share/man/man9/fbgen_get_fix.9
+#usr/share/man/man9/fbgen_get_var.9
+#usr/share/man/man9/fbgen_install_cmap.9
+#usr/share/man/man9/fbgen_pan_display.9
+#usr/share/man/man9/fbgen_set_cmap.9
+#usr/share/man/man9/fbgen_set_disp.9
+#usr/share/man/man9/fbgen_set_var.9
+#usr/share/man/man9/fbgen_switch.9
+#usr/share/man/man9/fbgen_update_var.9
+#usr/share/man/man9/fbmem_init.9
+#usr/share/man/man9/fcntl_getlease.9
+#usr/share/man/man9/fcntl_setlease.9
+#usr/share/man/man9/ffs.9
+#usr/share/man/man9/ffz.9
+#usr/share/man/man9/find_first_zero_bit.9
+#usr/share/man/man9/find_next_zero_bit.9
+#usr/share/man/man9/free_dentry.9
+#usr/share/man/man9/free_irq.9
+#usr/share/man/man9/generic_make_request.9
+#usr/share/man/man9/get_locks_status.9
+#usr/share/man/man9/get_removable_partition.9
+#usr/share/man/man9/hweight32.9
+#usr/share/man/man9/init_etherdev.9
+#usr/share/man/man9/init_fcdev.9
+#usr/share/man/man9/init_fddidev.9
+#usr/share/man/man9/init_hippi_dev.9
+#usr/share/man/man9/init_trdev.9
+#usr/share/man/man9/inter_module_get.9
+#usr/share/man/man9/inter_module_get_request.9
+#usr/share/man/man9/inter_module_put.9
+#usr/share/man/man9/inter_module_register.9
+#usr/share/man/man9/inter_module_unregister.9
+#usr/share/man/man9/is_devfsd_or_child.9
+#usr/share/man/man9/lease_get_mtime.9
+#usr/share/man/man9/ll_rw_block.9
+#usr/share/man/man9/lock_may_read.9
+#usr/share/man/man9/lock_may_write.9
+#usr/share/man/man9/mac_find_mode.9
+#usr/share/man/man9/mac_map_monitor_sense.9
+#usr/share/man/man9/mac_var_to_vmode.9
+#usr/share/man/man9/mac_vmode_to_var.9
+#usr/share/man/man9/mca_find_adapter.9
+#usr/share/man/man9/mca_find_unused_adapter.9
+#usr/share/man/man9/mca_get_adapter_name.9
+#usr/share/man/man9/mca_is_adapter_used.9
+#usr/share/man/man9/mca_isadapter.9
+#usr/share/man/man9/mca_isenabled.9
+#usr/share/man/man9/mca_mark_as_unused.9
+#usr/share/man/man9/mca_mark_as_used.9
+#usr/share/man/man9/mca_read_pos.9
+#usr/share/man/man9/mca_write_pos.9
+#usr/share/man/man9/mca_read_stored_pos.9
+#usr/share/man/man9/mca_set_adapter_name.9
+#usr/share/man/man9/mca_set_adapter_procfn.9
+#usr/share/man/man9/memchr.9
+#usr/share/man/man9/memcmp.9
+#usr/share/man/man9/memcpy.9
+#usr/share/man/man9/memmove.9
+#usr/share/man/man9/memscan.9
+#usr/share/man/man9/memset.9
+#usr/share/man/man9/misc_deregister.9
+#usr/share/man/man9/misc_register.9
+#usr/share/man/man9/mod_firmware_load.9
+#usr/share/man/man9/mtrr_add.9
+#usr/share/man/man9/mtrr_add_page.9
+#usr/share/man/man9/mtrr_del.9
+#usr/share/man/man9/mtrr_del_page.9
+#usr/share/man/man9/pci_announce_device_to_drivers.9
+#usr/share/man/man9/pci_bus_read_config_byte.9
+#usr/share/man/man9/pci_bus_read_config_dword.9
+#usr/share/man/man9/pci_bus_read_config_word.9
+#usr/share/man/man9/pci_bus_write_config_byte.9
+#usr/share/man/man9/pci_bus_write_config_dword.9
+#usr/share/man/man9/pci_bus_write_config_word.9
+#usr/share/man/man9/pci_clear_mwi.9
+#usr/share/man/man9/pci_dev_driver.9
+#usr/share/man/man9/pci_disable_device.9
+#usr/share/man/man9/pci_enable_device.9
+#usr/share/man/man9/pci_enable_device_bars.9
+#usr/share/man/man9/pci_enable_wake.9
+#usr/share/man/man9/pci_find_capability.9
+#usr/share/man/man9/pci_find_class.9
+#usr/share/man/man9/pci_find_device.9
+#usr/share/man/man9/pci_find_parent_resource.9
+#usr/share/man/man9/pci_find_slot.9
+#usr/share/man/man9/pci_find_subsys.9
+#usr/share/man/man9/pci_generic_prep_mwi.9
+#usr/share/man/man9/pci_hp_change_slot_info.9
+#usr/share/man/man9/pci_hp_deregister.9
+#usr/share/man/man9/pci_hp_register.9
+#usr/share/man/man9/pci_insert_device.9
+#usr/share/man/man9/pci_match_device.9
+#usr/share/man/man9/pci_pool_alloc.9
+#usr/share/man/man9/pci_pool_create.9
+#usr/share/man/man9/pci_pool_destroy.9
+#usr/share/man/man9/pci_pool_free.9
+#usr/share/man/man9/pci_register_driver.9
+#usr/share/man/man9/pci_release_region.9
+#usr/share/man/man9/pci_release_regions.9
+#usr/share/man/man9/pci_remove_device.9
+#usr/share/man/man9/pci_request_region.9
+#usr/share/man/man9/pci_request_regions.9
+#usr/share/man/man9/pci_restore_state.9
+#usr/share/man/man9/pci_save_state.9
+#usr/share/man/man9/pci_set_master.9
+#usr/share/man/man9/pci_set_mwi.9
+#usr/share/man/man9/pci_set_power_state.9
+#usr/share/man/man9/pci_setup_device.9
+#usr/share/man/man9/pci_unregister_driver.9
+#usr/share/man/man9/pcihpfs_create_by_name.9
+#usr/share/man/man9/pm_find.9
+#usr/share/man/man9/pm_register.9
+#usr/share/man/man9/pm_send.9
+#usr/share/man/man9/pm_send_all.9
+#usr/share/man/man9/pm_unregister.9
+#usr/share/man/man9/pm_unregister_all.9
+#usr/share/man/man9/posix_block_lock.9
+#usr/share/man/man9/posix_lock_file.9
+#usr/share/man/man9/posix_unblock_lock.9
+#usr/share/man/man9/probe_irq_mask.9
+#usr/share/man/man9/probe_irq_off.9
+#usr/share/man/man9/probe_irq_on.9
+#usr/share/man/man9/proc_dointvec.9
+#usr/share/man/man9/proc_dointvec_jiffies.9
+#usr/share/man/man9/proc_dointvec_minmax.9
+#usr/share/man/man9/proc_dostring.9
+#usr/share/man/man9/proc_doulongvec_minmax.9
+#usr/share/man/man9/proc_doulongvec_ms_jiffies_minmax.9
+#usr/share/man/man9/read_zsdata.9
+#usr/share/man/man9/read_zsreg.9
+#usr/share/man/man9/register_framebuffer.9
+#usr/share/man/man9/register_serial.9
+#usr/share/man/man9/register_sound_dsp.9
+#usr/share/man/man9/register_sound_midi.9
+#usr/share/man/man9/register_sound_mixer.9
+#usr/share/man/man9/register_sound_special.9
+#usr/share/man/man9/register_sound_synth.9
+#usr/share/man/man9/register_sysctl_table.9
+#usr/share/man/man9/release_console_sem.9
+#usr/share/man/man9/reparent_to_init.9
+#usr/share/man/man9/request_irq.9
+#usr/share/man/man9/request_module.9
+#usr/share/man/man9/scan_dir_for_removable.9
+#usr/share/man/man9/schedule_timeout.9
+#usr/share/man/man9/set_all_vcs.9
+#usr/share/man/man9/set_bit.9
+#usr/share/man/man9/set_con2fb_map.9
+#usr/share/man/man9/set_cpus_allowed.9
+#usr/share/man/man9/simple_strtol.9
+#usr/share/man/man9/simple_strtoll.9
+#usr/share/man/man9/simple_strtoul.9
+#usr/share/man/man9/simple_strtoull.9
+#usr/share/man/man9/snprintf.9
+#usr/share/man/man9/spans_boundary.9
+#usr/share/man/man9/sppp_attach.9
+#usr/share/man/man9/sppp_change_mtu.9
+#usr/share/man/man9/sppp_close.9
+#usr/share/man/man9/sppp_detach.9
+#usr/share/man/man9/sppp_do_ioctl.9
+#usr/share/man/man9/sppp_input.9
+#usr/share/man/man9/sppp_open.9
+#usr/share/man/man9/sppp_rcv.9
+#usr/share/man/man9/sppp_reopen.9
+#usr/share/man/man9/sprintf.9
+#usr/share/man/man9/sscanf.9
+#usr/share/man/man9/strcat.9
+#usr/share/man/man9/strchr.9
+#usr/share/man/man9/strcmp.9
+#usr/share/man/man9/strcpy.9
+#usr/share/man/man9/strlen.9
+#usr/share/man/man9/strncat.9
+#usr/share/man/man9/strncmp.9
+#usr/share/man/man9/strncpy.9
+#usr/share/man/man9/strnicmp.9
+#usr/share/man/man9/strnlen.9
+#usr/share/man/man9/strpbrk.9
+#usr/share/man/man9/strrchr.9
+#usr/share/man/man9/strsep.9
+#usr/share/man/man9/strspn.9
+#usr/share/man/man9/strstr.9
+#usr/share/man/man9/strtok.9
+#usr/share/man/man9/submit_bh.9
+#usr/share/man/man9/sys_flock.9
+#usr/share/man/man9/test_and_change_bit.9
+#usr/share/man/man9/test_and_clear_bit.9
+#usr/share/man/man9/test_and_set_bit.9
+#usr/share/man/man9/test_bit.9
+#usr/share/man/man9/try_modload.9
+#usr/share/man/man9/tty_write_message.9
+#usr/share/man/man9/unregister_framebuffer.9
+#usr/share/man/man9/unregister_serial.9
+#usr/share/man/man9/unregister_sound_dsp.9
+#usr/share/man/man9/unregister_sound_midi.9
+#usr/share/man/man9/unregister_sound_mixer.9
+#usr/share/man/man9/unregister_sound_special.9
+#usr/share/man/man9/unregister_sound_synth.9
+#usr/share/man/man9/unregister_sysctl_table.9
+#usr/share/man/man9/usb_alloc_bus.9
+#usr/share/man/man9/usb_alloc_urb.9
+#usr/share/man/man9/usb_bulk_msg.9
+#usr/share/man/man9/usb_control_msg.9
+#usr/share/man/man9/usb_deregister.9
+#usr/share/man/man9/usb_deregister_bus.9
+#usr/share/man/man9/usb_free_bus.9
+#usr/share/man/man9/usb_free_urb.9
+#usr/share/man/man9/usb_match_id.9
+#usr/share/man/man9/usb_register.9
+#usr/share/man/man9/usb_register_bus.9
+#usr/share/man/man9/usb_scan_devices.9
+#usr/share/man/man9/video_register_device.9
+#usr/share/man/man9/video_setup.9
+#usr/share/man/man9/video_unregister_device.9
+#usr/share/man/man9/vsnprintf.9
+#usr/share/man/man9/vsprintf.9
+#usr/share/man/man9/vsscanf.9
+#usr/share/man/man9/wait_for_devfsd_finished.9
+#usr/share/man/man9/write_zsctrl.9
+#usr/share/man/man9/write_zsdata.9
+#usr/share/man/man9/write_zsreg.9
+#usr/share/man/man9/yield.9
+#usr/share/man/man9/z8530_channel_load.9
+#usr/share/man/man9/z8530_describe.9
+#usr/share/man/man9/z8530_dma_rx.9
+#usr/share/man/man9/z8530_dma_status.9
+#usr/share/man/man9/z8530_dma_tx.9
+#usr/share/man/man9/z8530_flush_fifo.9
+#usr/share/man/man9/z8530_get_stats.9
+#usr/share/man/man9/z8530_init.9
+#usr/share/man/man9/z8530_interrupt.9
+#usr/share/man/man9/z8530_null_rx.9
+#usr/share/man/man9/z8530_queue_xmit.9
+#usr/share/man/man9/z8530_read_port.9
+#usr/share/man/man9/z8530_rtsdtr.9
+#usr/share/man/man9/z8530_rx.9
+#usr/share/man/man9/z8530_rx_clear.9
+#usr/share/man/man9/z8530_rx_done.9
+#usr/share/man/man9/z8530_shutdown.9
+#usr/share/man/man9/z8530_status.9
+#usr/share/man/man9/z8530_status_clear.9
+#usr/share/man/man9/z8530_sync_close.9
+#usr/share/man/man9/z8530_sync_dma_close.9
+#usr/share/man/man9/z8530_sync_dma_open.9
+#usr/share/man/man9/z8530_sync_open.9
+#usr/share/man/man9/z8530_sync_txdma_close.9
+#usr/share/man/man9/z8530_sync_txdma_open.9
+#usr/share/man/man9/z8530_tx.9
+#usr/share/man/man9/z8530_tx_begin.9
+#usr/share/man/man9/z8530_tx_clear.9
+#usr/share/man/man9/z8530_tx_done.9
+#usr/share/man/man9/z8530_write_port.9
+##
+## aboot-0.9b
+##
+#usr/man/man5/aboot.conf.5
+#usr/man/man8/aboot.8
+#usr/man/man8/abootconf.8
+#usr/man/man8/e2writeboot.8
+#usr/man/man8/swriteboot.8
+sbin/abootconf
+sbin/e2writeboot
+sbin/isomarkboot
+sbin/swriteboot
+boot/bootlx
+boot/etc/aboot.conf
+boot/etc/scsiaboot.conf
+##
+##
+## stage2
+##
+bin/cat
+bin/pwd
+bin/stty
+#boot
+#etc
+etc/certparams
+etc/fstab
+etc/group
+etc/host.conf
+etc/inittab
+etc/inputrc
+etc/issue
+etc/ld.so.conf
+etc/logrotate.conf
+etc/mime.types
+etc/modules.conf
+etc/mtab
+etc/nsswitch.conf
+#etc/opt
+etc/passwd
+etc/profile
+etc/resolv.conf
+etc/securetty
+etc/sysctl.conf
+etc/syslog.conf
+#home
+#home/nobody
+#lib
+mnt
+#opt
+#opt/bin
+#opt/doc
+#opt/include
+#opt/info
+#opt/lib
+#opt/man
+#opt/man/man1
+#opt/man/man2
+#opt/man/man3
+#opt/man/man4
+#opt/man/man5
+#opt/man/man6
+#opt/man/man7
+#opt/man/man8
+proc
+root
+#sbin
+sbin/mkinitrd
+tmp
+#usr/doc
+#usr/etc
+#usr/include
+#usr/info
+#usr/lib
+#usr/local
+#usr/local/bin
+usr/local/bin/httpscert
+usr/local/bin/makegraphs
+usr/local/bin/readhash
+usr/local/bin/setddns.pl
+usr/local/bin/setreservedports
+usr/local/bin/settime
+usr/local/bin/timecheck
+#usr/local/bin/tunerrd.pl
+usr/local/bin/updatelists.pl
+usr/local/bin/resetusb
+#usr/local/doc
+#usr/local/etc
+#usr/local/include
+#usr/local/info
+#usr/local/lib
+#usr/local/man
+#usr/local/sbin
+#usr/local/share
+#usr/local/share/dict
+#usr/local/share/doc
+#usr/local/share/info
+#usr/local/share/locale
+#usr/local/share/man
+#usr/local/share/man/man1
+#usr/local/share/man/man2
+#usr/local/share/man/man3
+#usr/local/share/man/man4
+#usr/local/share/man/man5
+#usr/local/share/man/man6
+#usr/local/share/man/man7
+#usr/local/share/man/man8
+#usr/local/share/misc
+#usr/local/share/nls
+#usr/local/share/terminfo
+#usr/local/share/zoneinfo
+#usr/local/src
+#usr/man
+#usr/sbin
+#usr/share
+#usr/share/dict
+#usr/share/doc
+#usr/share/info
+#usr/share/locale
+#usr/share/man
+#usr/share/man/man1
+#usr/share/man/man2
+#usr/share/man/man3
+#usr/share/man/man4
+#usr/share/man/man5
+#usr/share/man/man6
+#usr/share/man/man7
+#usr/share/man/man8
+#usr/share/misc
+#usr/share/nls
+#usr/share/terminfo
+#usr/share/zoneinfo
+#var
+#var/cache
+#var/lib
+#var/lib/misc
+#var/local
+#var/lock
+var/lock/subsys
+#var/log
+#var/mail
+#var/opt
+var/patches
+var/run
+#var/spool
+var/tmp
+##
+## MAKEDEV-1.7
+##
+dev
+##
+## man-pages-2.09
+##
+#usr/share/man/man0p
+#usr/share/man/man0p/aio.h.0p
+#usr/share/man/man0p/assert.h.0p
+#usr/share/man/man0p/complex.h.0p
+#usr/share/man/man0p/cpio.h.0p
+#usr/share/man/man0p/ctype.h.0p
+#usr/share/man/man0p/dirent.h.0p
+#usr/share/man/man0p/dlfcn.h.0p
+#usr/share/man/man0p/errno.h.0p
+#usr/share/man/man0p/fcntl.h.0p
+#usr/share/man/man0p/fenv.h.0p
+#usr/share/man/man0p/float.h.0p
+#usr/share/man/man0p/fmtmsg.h.0p
+#usr/share/man/man0p/fnmatch.h.0p
+#usr/share/man/man0p/ftw.h.0p
+#usr/share/man/man0p/glob.h.0p
+#usr/share/man/man0p/grp.h.0p
+#usr/share/man/man0p/iconv.h.0p
+#usr/share/man/man0p/if.h.0p
+#usr/share/man/man0p/in.h.0p
+#usr/share/man/man0p/inet.h.0p
+#usr/share/man/man0p/inttypes.h.0p
+#usr/share/man/man0p/ipc.h.0p
+#usr/share/man/man0p/iso646.h.0p
+#usr/share/man/man0p/langinfo.h.0p
+#usr/share/man/man0p/libgen.h.0p
+#usr/share/man/man0p/limits.h.0p
+#usr/share/man/man0p/locale.h.0p
+#usr/share/man/man0p/math.h.0p
+#usr/share/man/man0p/mman.h.0p
+#usr/share/man/man0p/monetary.h.0p
+#usr/share/man/man0p/mqueue.h.0p
+#usr/share/man/man0p/msg.h.0p
+#usr/share/man/man0p/ndbm.h.0p
+#usr/share/man/man0p/netdb.h.0p
+#usr/share/man/man0p/nl_types.h.0p
+#usr/share/man/man0p/poll.h.0p
+#usr/share/man/man0p/pthread.h.0p
+#usr/share/man/man0p/pwd.h.0p
+#usr/share/man/man0p/regex.h.0p
+#usr/share/man/man0p/resource.h.0p
+#usr/share/man/man0p/sched.h.0p
+#usr/share/man/man0p/search.h.0p
+#usr/share/man/man0p/select.h.0p
+#usr/share/man/man0p/sem.h.0p
+#usr/share/man/man0p/semaphore.h.0p
+#usr/share/man/man0p/setjmp.h.0p
+#usr/share/man/man0p/shm.h.0p
+#usr/share/man/man0p/signal.h.0p
+#usr/share/man/man0p/socket.h.0p
+#usr/share/man/man0p/spawn.h.0p
+#usr/share/man/man0p/stat.h.0p
+#usr/share/man/man0p/statvfs.h.0p
+#usr/share/man/man0p/stdarg.h.0p
+#usr/share/man/man0p/stdbool.h.0p
+#usr/share/man/man0p/stddef.h.0p
+#usr/share/man/man0p/stdint.h.0p
+#usr/share/man/man0p/stdio.h.0p
+#usr/share/man/man0p/stdlib.h.0p
+#usr/share/man/man0p/string.h.0p
+#usr/share/man/man0p/strings.h.0p
+#usr/share/man/man0p/stropts.h.0p
+#usr/share/man/man0p/sys_ipc.h.0p
+#usr/share/man/man0p/sys_mman.h.0p
+#usr/share/man/man0p/sys_msg.h.0p
+#usr/share/man/man0p/sys_resource.h.0p
+#usr/share/man/man0p/sys_select.h.0p
+#usr/share/man/man0p/sys_sem.h.0p
+#usr/share/man/man0p/sys_shm.h.0p
+#usr/share/man/man0p/sys_socket.h.0p
+#usr/share/man/man0p/sys_stat.h.0p
+#usr/share/man/man0p/sys_statvfs.h.0p
+#usr/share/man/man0p/sys_time.h.0p
+#usr/share/man/man0p/sys_timeb.h.0p
+#usr/share/man/man0p/sys_times.h.0p
+#usr/share/man/man0p/sys_types.h.0p
+#usr/share/man/man0p/sys_uio.h.0p
+#usr/share/man/man0p/sys_un.h.0p
+#usr/share/man/man0p/sys_utsname.h.0p
+#usr/share/man/man0p/sys_wait.h.0p
+#usr/share/man/man0p/syslog.h.0p
+#usr/share/man/man0p/tar.h.0p
+#usr/share/man/man0p/tcp.h.0p
+#usr/share/man/man0p/termios.h.0p
+#usr/share/man/man0p/tgmath.h.0p
+#usr/share/man/man0p/time.h.0p
+#usr/share/man/man0p/timeb.h.0p
+#usr/share/man/man0p/times.h.0p
+#usr/share/man/man0p/trace.h.0p
+#usr/share/man/man0p/types.h.0p
+#usr/share/man/man0p/ucontext.h.0p
+#usr/share/man/man0p/uio.h.0p
+#usr/share/man/man0p/ulimit.h.0p
+#usr/share/man/man0p/un.h.0p
+#usr/share/man/man0p/unistd.h.0p
+#usr/share/man/man0p/utime.h.0p
+#usr/share/man/man0p/utmpx.h.0p
+#usr/share/man/man0p/utsname.h.0p
+#usr/share/man/man0p/wait.h.0p
+#usr/share/man/man0p/wchar.h.0p
+#usr/share/man/man0p/wctype.h.0p
+#usr/share/man/man0p/wordexp.h.0p
+#usr/share/man/man1/chgrp.1
+#usr/share/man/man1/chmod.1
+#usr/share/man/man1/chown.1
+#usr/share/man/man1/cp.1
+#usr/share/man/man1/dd.1
+#usr/share/man/man1/df.1
+#usr/share/man/man1/diff.1
+#usr/share/man/man1/dir.1
+#usr/share/man/man1/dircolors.1
+#usr/share/man/man1/du.1
+#usr/share/man/man1/install.1
+#usr/share/man/man1/intro.1
+#usr/share/man/man1/ldd.1
+#usr/share/man/man1/ln.1
+#usr/share/man/man1/ls.1
+#usr/share/man/man1/mkdir.1
+#usr/share/man/man1/mkfifo.1
+#usr/share/man/man1/mknod.1
+#usr/share/man/man1/mv.1
+#usr/share/man/man1/rm.1
+#usr/share/man/man1/rmdir.1
+#usr/share/man/man1/time.1
+#usr/share/man/man1/touch.1
+#usr/share/man/man1/vdir.1
+#usr/share/man/man1p
+#usr/share/man/man1p/admin.1p
+#usr/share/man/man1p/alias.1p
+#usr/share/man/man1p/ar.1p
+#usr/share/man/man1p/asa.1p
+#usr/share/man/man1p/at.1p
+#usr/share/man/man1p/awk.1p
+#usr/share/man/man1p/basename.1p
+#usr/share/man/man1p/batch.1p
+#usr/share/man/man1p/bc.1p
+#usr/share/man/man1p/bg.1p
+#usr/share/man/man1p/break.1p
+#usr/share/man/man1p/c99.1p
+#usr/share/man/man1p/cal.1p
+#usr/share/man/man1p/cat.1p
+#usr/share/man/man1p/cd.1p
+#usr/share/man/man1p/cflow.1p
+#usr/share/man/man1p/chgrp.1p
+#usr/share/man/man1p/chmod.1p
+#usr/share/man/man1p/chown.1p
+#usr/share/man/man1p/cksum.1p
+#usr/share/man/man1p/cmp.1p
+#usr/share/man/man1p/colon.1p
+#usr/share/man/man1p/comm.1p
+#usr/share/man/man1p/command.1p
+#usr/share/man/man1p/compress.1p
+#usr/share/man/man1p/continue.1p
+#usr/share/man/man1p/cp.1p
+#usr/share/man/man1p/crontab.1p
+#usr/share/man/man1p/csplit.1p
+#usr/share/man/man1p/ctags.1p
+#usr/share/man/man1p/cut.1p
+#usr/share/man/man1p/cxref.1p
+#usr/share/man/man1p/date.1p
+#usr/share/man/man1p/dd.1p
+#usr/share/man/man1p/delta.1p
+#usr/share/man/man1p/df.1p
+#usr/share/man/man1p/diff.1p
+#usr/share/man/man1p/dirname.1p
+#usr/share/man/man1p/dot.1p
+#usr/share/man/man1p/du.1p
+#usr/share/man/man1p/echo.1p
+#usr/share/man/man1p/ed.1p
+#usr/share/man/man1p/env.1p
+#usr/share/man/man1p/eval.1p
+#usr/share/man/man1p/ex.1p
+#usr/share/man/man1p/exec.1p
+#usr/share/man/man1p/exit.1p
+#usr/share/man/man1p/expand.1p
+#usr/share/man/man1p/export.1p
+#usr/share/man/man1p/expr.1p
+#usr/share/man/man1p/false.1p
+#usr/share/man/man1p/fc.1p
+#usr/share/man/man1p/fg.1p
+#usr/share/man/man1p/file.1p
+#usr/share/man/man1p/find.1p
+#usr/share/man/man1p/fold.1p
+#usr/share/man/man1p/fort77.1p
+#usr/share/man/man1p/fuser.1p
+#usr/share/man/man1p/gencat.1p
+#usr/share/man/man1p/get.1p
+#usr/share/man/man1p/getconf.1p
+#usr/share/man/man1p/getopts.1p
+#usr/share/man/man1p/grep.1p
+#usr/share/man/man1p/hash.1p
+#usr/share/man/man1p/head.1p
+#usr/share/man/man1p/iconv.1p
+#usr/share/man/man1p/id.1p
+#usr/share/man/man1p/ipcrm.1p
+#usr/share/man/man1p/ipcs.1p
+#usr/share/man/man1p/jobs.1p
+#usr/share/man/man1p/join.1p
+#usr/share/man/man1p/kill.1p
+#usr/share/man/man1p/lex.1p
+#usr/share/man/man1p/link.1p
+#usr/share/man/man1p/ln.1p
+#usr/share/man/man1p/locale.1p
+#usr/share/man/man1p/localedef.1p
+#usr/share/man/man1p/logger.1p
+#usr/share/man/man1p/logname.1p
+#usr/share/man/man1p/lp.1p
+#usr/share/man/man1p/ls.1p
+#usr/share/man/man1p/m4.1p
+#usr/share/man/man1p/mailx.1p
+#usr/share/man/man1p/make.1p
+#usr/share/man/man1p/man.1p
+#usr/share/man/man1p/mesg.1p
+#usr/share/man/man1p/mkdir.1p
+#usr/share/man/man1p/mkfifo.1p
+#usr/share/man/man1p/more.1p
+#usr/share/man/man1p/mv.1p
+#usr/share/man/man1p/newgrp.1p
+#usr/share/man/man1p/nice.1p
+#usr/share/man/man1p/nl.1p
+#usr/share/man/man1p/nm.1p
+#usr/share/man/man1p/nohup.1p
+#usr/share/man/man1p/od.1p
+#usr/share/man/man1p/paste.1p
+#usr/share/man/man1p/patch.1p
+#usr/share/man/man1p/pathchk.1p
+#usr/share/man/man1p/pax.1p
+#usr/share/man/man1p/pr.1p
+#usr/share/man/man1p/printf.1p
+#usr/share/man/man1p/prs.1p
+#usr/share/man/man1p/ps.1p
+#usr/share/man/man1p/pwd.1p
+#usr/share/man/man1p/qalter.1p
+#usr/share/man/man1p/qdel.1p
+#usr/share/man/man1p/qhold.1p
+#usr/share/man/man1p/qmove.1p
+#usr/share/man/man1p/qmsg.1p
+#usr/share/man/man1p/qrerun.1p
+#usr/share/man/man1p/qrls.1p
+#usr/share/man/man1p/qselect.1p
+#usr/share/man/man1p/qsig.1p
+#usr/share/man/man1p/qstat.1p
+#usr/share/man/man1p/qsub.1p
+#usr/share/man/man1p/read.1p
+#usr/share/man/man1p/readonly.1p
+#usr/share/man/man1p/renice.1p
+#usr/share/man/man1p/return.1p
+#usr/share/man/man1p/rm.1p
+#usr/share/man/man1p/rmdel.1p
+#usr/share/man/man1p/rmdir.1p
+#usr/share/man/man1p/sact.1p
+#usr/share/man/man1p/sccs.1p
+#usr/share/man/man1p/sed.1p
+#usr/share/man/man1p/set.1p
+#usr/share/man/man1p/sh.1p
+#usr/share/man/man1p/shift.1p
+#usr/share/man/man1p/sleep.1p
+#usr/share/man/man1p/sort.1p
+#usr/share/man/man1p/split.1p
+#usr/share/man/man1p/strings.1p
+#usr/share/man/man1p/strip.1p
+#usr/share/man/man1p/stty.1p
+#usr/share/man/man1p/tabs.1p
+#usr/share/man/man1p/tail.1p
+#usr/share/man/man1p/talk.1p
+#usr/share/man/man1p/tee.1p
+#usr/share/man/man1p/test.1p
+#usr/share/man/man1p/time.1p
+#usr/share/man/man1p/times.1p
+#usr/share/man/man1p/touch.1p
+#usr/share/man/man1p/tput.1p
+#usr/share/man/man1p/tr.1p
+#usr/share/man/man1p/trap.1p
+#usr/share/man/man1p/true.1p
+#usr/share/man/man1p/tsort.1p
+#usr/share/man/man1p/tty.1p
+#usr/share/man/man1p/type.1p
+#usr/share/man/man1p/ulimit.1p
+#usr/share/man/man1p/umask.1p
+#usr/share/man/man1p/unalias.1p
+#usr/share/man/man1p/uname.1p
+#usr/share/man/man1p/uncompress.1p
+#usr/share/man/man1p/unexpand.1p
+#usr/share/man/man1p/unget.1p
+#usr/share/man/man1p/uniq.1p
+#usr/share/man/man1p/unlink.1p
+#usr/share/man/man1p/unset.1p
+#usr/share/man/man1p/uucp.1p
+#usr/share/man/man1p/uudecode.1p
+#usr/share/man/man1p/uuencode.1p
+#usr/share/man/man1p/uustat.1p
+#usr/share/man/man1p/uux.1p
+#usr/share/man/man1p/val.1p
+#usr/share/man/man1p/vi.1p
+#usr/share/man/man1p/wait.1p
+#usr/share/man/man1p/wc.1p
+#usr/share/man/man1p/what.1p
+#usr/share/man/man1p/who.1p
+#usr/share/man/man1p/write.1p
+#usr/share/man/man1p/xargs.1p
+#usr/share/man/man1p/yacc.1p
+#usr/share/man/man1p/zcat.1p
+#usr/share/man/man2/_Exit.2
+#usr/share/man/man2/_exit.2
+#usr/share/man/man2/_llseek.2
+#usr/share/man/man2/_newselect.2
+#usr/share/man/man2/_sysctl.2
+#usr/share/man/man2/accept.2
+#usr/share/man/man2/access.2
+#usr/share/man/man2/acct.2
+#usr/share/man/man2/adjtimex.2
+#usr/share/man/man2/afs_syscall.2
+#usr/share/man/man2/alarm.2
+#usr/share/man/man2/alloc_hugepages.2
+#usr/share/man/man2/arch_prctl.2
+#usr/share/man/man2/bdflush.2
+#usr/share/man/man2/bind.2
+#usr/share/man/man2/break.2
+#usr/share/man/man2/brk.2
+#usr/share/man/man2/cacheflush.2
+#usr/share/man/man2/capget.2
+#usr/share/man/man2/capset.2
+#usr/share/man/man2/chdir.2
+#usr/share/man/man2/chmod.2
+#usr/share/man/man2/chown.2
+#usr/share/man/man2/chroot.2
+#usr/share/man/man2/clone.2
+#usr/share/man/man2/close.2
+#usr/share/man/man2/connect.2
+#usr/share/man/man2/creat.2
+#usr/share/man/man2/dup.2
+#usr/share/man/man2/dup2.2
+#usr/share/man/man2/epoll_create.2
+#usr/share/man/man2/epoll_ctl.2
+#usr/share/man/man2/epoll_wait.2
+#usr/share/man/man2/execve.2
+#usr/share/man/man2/exit.2
+#usr/share/man/man2/exit_group.2
+#usr/share/man/man2/fchdir.2
+#usr/share/man/man2/fchmod.2
+#usr/share/man/man2/fchown.2
+#usr/share/man/man2/fcntl.2
+#usr/share/man/man2/fdatasync.2
+#usr/share/man/man2/fgetxattr.2
+#usr/share/man/man2/flistxattr.2
+#usr/share/man/man2/flock.2
+#usr/share/man/man2/fork.2
+#usr/share/man/man2/free_hugepages.2
+#usr/share/man/man2/fremovexattr.2
+#usr/share/man/man2/fsetxattr.2
+#usr/share/man/man2/fstat.2
+#usr/share/man/man2/fstatfs.2
+#usr/share/man/man2/fstatvfs.2
+#usr/share/man/man2/fsync.2
+#usr/share/man/man2/ftruncate.2
+#usr/share/man/man2/futex.2
+#usr/share/man/man2/get_thread_area.2
+#usr/share/man/man2/getcontext.2
+#usr/share/man/man2/getdents.2
+#usr/share/man/man2/getdomainname.2
+#usr/share/man/man2/getdtablesize.2
+#usr/share/man/man2/getegid.2
+#usr/share/man/man2/geteuid.2
+#usr/share/man/man2/getgid.2
+#usr/share/man/man2/getgroups.2
+#usr/share/man/man2/gethostid.2
+#usr/share/man/man2/gethostname.2
+#usr/share/man/man2/getitimer.2
+#usr/share/man/man2/getpagesize.2
+#usr/share/man/man2/getpeername.2
+#usr/share/man/man2/getpgid.2
+#usr/share/man/man2/getpgrp.2
+#usr/share/man/man2/getpid.2
+#usr/share/man/man2/getpmsg.2
+#usr/share/man/man2/getppid.2
+#usr/share/man/man2/getpriority.2
+#usr/share/man/man2/getresgid.2
+#usr/share/man/man2/getresuid.2
+#usr/share/man/man2/getrlimit.2
+#usr/share/man/man2/getrusage.2
+#usr/share/man/man2/getsid.2
+#usr/share/man/man2/getsockname.2
+#usr/share/man/man2/getsockopt.2
+#usr/share/man/man2/gettid.2
+#usr/share/man/man2/gettimeofday.2
+#usr/share/man/man2/getuid.2
+#usr/share/man/man2/getxattr.2
+#usr/share/man/man2/gtty.2
+#usr/share/man/man2/idle.2
+#usr/share/man/man2/inb.2
+#usr/share/man/man2/inb_p.2
+#usr/share/man/man2/inl.2
+#usr/share/man/man2/inl_p.2
+#usr/share/man/man2/insb.2
+#usr/share/man/man2/insl.2
+#usr/share/man/man2/insw.2
+#usr/share/man/man2/intro.2
+#usr/share/man/man2/inw.2
+#usr/share/man/man2/inw_p.2
+#usr/share/man/man2/io_cancel.2
+#usr/share/man/man2/io_destroy.2
+#usr/share/man/man2/io_getevents.2
+#usr/share/man/man2/io_setup.2
+#usr/share/man/man2/io_submit.2
+#usr/share/man/man2/ioctl.2
+#usr/share/man/man2/ioctl_list.2
+#usr/share/man/man2/ioperm.2
+#usr/share/man/man2/iopl.2
+#usr/share/man/man2/ipc.2
+#usr/share/man/man2/kill.2
+#usr/share/man/man2/killpg.2
+#usr/share/man/man2/lchown.2
+#usr/share/man/man2/lgetxattr.2
+#usr/share/man/man2/link.2
+#usr/share/man/man2/listen.2
+#usr/share/man/man2/listxattr.2
+#usr/share/man/man2/llistxattr.2
+#usr/share/man/man2/llseek.2
+#usr/share/man/man2/lock.2
+#usr/share/man/man2/lookup_dcookie.2
+#usr/share/man/man2/lremovexattr.2
+#usr/share/man/man2/lseek.2
+#usr/share/man/man2/lsetxattr.2
+#usr/share/man/man2/lstat.2
+#usr/share/man/man2/madvise.2
+#usr/share/man/man2/mincore.2
+#usr/share/man/man2/mkdir.2
+#usr/share/man/man2/mknod.2
+#usr/share/man/man2/mlock.2
+#usr/share/man/man2/mlockall.2
+#usr/share/man/man2/mmap.2
+#usr/share/man/man2/mmap2.2
+#usr/share/man/man2/modify_ldt.2
+#usr/share/man/man2/mount.2
+#usr/share/man/man2/mprotect.2
+#usr/share/man/man2/mpx.2
+#usr/share/man/man2/mremap.2
+#usr/share/man/man2/msgctl.2
+#usr/share/man/man2/msgget.2
+#usr/share/man/man2/msgop.2
+#usr/share/man/man2/msgrcv.2
+#usr/share/man/man2/msgsnd.2
+#usr/share/man/man2/msync.2
+#usr/share/man/man2/munlock.2
+#usr/share/man/man2/munlockall.2
+#usr/share/man/man2/munmap.2
+#usr/share/man/man2/nanosleep.2
+#usr/share/man/man2/nfsservctl.2
+#usr/share/man/man2/nice.2
+#usr/share/man/man2/obsolete.2
+#usr/share/man/man2/oldfstat.2
+#usr/share/man/man2/oldlstat.2
+#usr/share/man/man2/oldolduname.2
+#usr/share/man/man2/oldstat.2
+#usr/share/man/man2/olduname.2
+#usr/share/man/man2/open.2
+#usr/share/man/man2/outb.2
+#usr/share/man/man2/outb_p.2
+#usr/share/man/man2/outl.2
+#usr/share/man/man2/outl_p.2
+#usr/share/man/man2/outsb.2
+#usr/share/man/man2/outsl.2
+#usr/share/man/man2/outsw.2
+#usr/share/man/man2/outw.2
+#usr/share/man/man2/outw_p.2
+#usr/share/man/man2/path_resolution.2
+#usr/share/man/man2/pause.2
+#usr/share/man/man2/pciconfig_iobase.2
+#usr/share/man/man2/pciconfig_read.2
+#usr/share/man/man2/pciconfig_write.2
+#usr/share/man/man2/personality.2
+#usr/share/man/man2/pipe.2
+#usr/share/man/man2/pivot_root.2
+#usr/share/man/man2/poll.2
+#usr/share/man/man2/posix_fadvise.2
+#usr/share/man/man2/prctl.2
+#usr/share/man/man2/pread.2
+#usr/share/man/man2/prof.2
+#usr/share/man/man2/pselect.2
+#usr/share/man/man2/ptrace.2
+#usr/share/man/man2/putpmsg.2
+#usr/share/man/man2/pwrite.2
+#usr/share/man/man2/quotactl.2
+#usr/share/man/man2/read.2
+#usr/share/man/man2/readahead.2
+#usr/share/man/man2/readdir.2
+#usr/share/man/man2/readlink.2
+#usr/share/man/man2/readv.2
+#usr/share/man/man2/reboot.2
+#usr/share/man/man2/recv.2
+#usr/share/man/man2/recvfrom.2
+#usr/share/man/man2/recvmsg.2
+#usr/share/man/man2/remap_file_pages.2
+#usr/share/man/man2/removexattr.2
+#usr/share/man/man2/rename.2
+#usr/share/man/man2/rmdir.2
+#usr/share/man/man2/sbrk.2
+#usr/share/man/man2/sched_get_priority_max.2
+#usr/share/man/man2/sched_get_priority_min.2
+#usr/share/man/man2/sched_getaffinity.2
+#usr/share/man/man2/sched_getparam.2
+#usr/share/man/man2/sched_getscheduler.2
+#usr/share/man/man2/sched_rr_get_interval.2
+#usr/share/man/man2/sched_setaffinity.2
+#usr/share/man/man2/sched_setparam.2
+#usr/share/man/man2/sched_setscheduler.2
+#usr/share/man/man2/sched_yield.2
+#usr/share/man/man2/security.2
+#usr/share/man/man2/select.2
+#usr/share/man/man2/select_tut.2
+#usr/share/man/man2/semctl.2
+#usr/share/man/man2/semget.2
+#usr/share/man/man2/semop.2
+#usr/share/man/man2/semtimedop.2
+#usr/share/man/man2/send.2
+#usr/share/man/man2/sendfile.2
+#usr/share/man/man2/sendmsg.2
+#usr/share/man/man2/sendto.2
+#usr/share/man/man2/set_thread_area.2
+#usr/share/man/man2/set_tid_address.2
+#usr/share/man/man2/setcontext.2
+#usr/share/man/man2/setdomainname.2
+#usr/share/man/man2/setegid.2
+#usr/share/man/man2/seteuid.2
+#usr/share/man/man2/setfsgid.2
+#usr/share/man/man2/setfsuid.2
+#usr/share/man/man2/setgid.2
+#usr/share/man/man2/setgroups.2
+#usr/share/man/man2/sethostid.2
+#usr/share/man/man2/sethostname.2
+#usr/share/man/man2/setitimer.2
+#usr/share/man/man2/setpgid.2
+#usr/share/man/man2/setpgrp.2
+#usr/share/man/man2/setpriority.2
+#usr/share/man/man2/setregid.2
+#usr/share/man/man2/setresgid.2
+#usr/share/man/man2/setresuid.2
+#usr/share/man/man2/setreuid.2
+#usr/share/man/man2/setrlimit.2
+#usr/share/man/man2/setsid.2
+#usr/share/man/man2/setsockopt.2
+#usr/share/man/man2/settimeofday.2
+#usr/share/man/man2/setuid.2
+#usr/share/man/man2/setup.2
+#usr/share/man/man2/setxattr.2
+#usr/share/man/man2/sgetmask.2
+#usr/share/man/man2/shmat.2
+#usr/share/man/man2/shmctl.2
+#usr/share/man/man2/shmdt.2
+#usr/share/man/man2/shmget.2
+#usr/share/man/man2/shmop.2
+#usr/share/man/man2/shutdown.2
+#usr/share/man/man2/sigaction.2
+#usr/share/man/man2/sigaltstack.2
+#usr/share/man/man2/sigblock.2
+#usr/share/man/man2/siggetmask.2
+#usr/share/man/man2/sigmask.2
+#usr/share/man/man2/signal.2
+#usr/share/man/man2/sigpause.2
+#usr/share/man/man2/sigpending.2
+#usr/share/man/man2/sigprocmask.2
+#usr/share/man/man2/sigqueue.2
+#usr/share/man/man2/sigreturn.2
+#usr/share/man/man2/sigsetmask.2
+#usr/share/man/man2/sigsuspend.2
+#usr/share/man/man2/sigtimedwait.2
+#usr/share/man/man2/sigvec.2
+#usr/share/man/man2/sigwaitinfo.2
+#usr/share/man/man2/socket.2
+#usr/share/man/man2/socketcall.2
+#usr/share/man/man2/socketpair.2
+#usr/share/man/man2/ssetmask.2
+#usr/share/man/man2/stat.2
+#usr/share/man/man2/statfs.2
+#usr/share/man/man2/statvfs.2
+#usr/share/man/man2/stime.2
+#usr/share/man/man2/stty.2
+#usr/share/man/man2/swapoff.2
+#usr/share/man/man2/swapon.2
+#usr/share/man/man2/symlink.2
+#usr/share/man/man2/sync.2
+#usr/share/man/man2/syscall.2
+#usr/share/man/man2/syscalls.2
+#usr/share/man/man2/sysctl.2
+#usr/share/man/man2/sysfs.2
+#usr/share/man/man2/sysinfo.2
+#usr/share/man/man2/syslog.2
+#usr/share/man/man2/tgkill.2
+#usr/share/man/man2/time.2
+#usr/share/man/man2/times.2
+#usr/share/man/man2/tkill.2
+#usr/share/man/man2/truncate.2
+#usr/share/man/man2/umask.2
+#usr/share/man/man2/umount.2
+#usr/share/man/man2/umount2.2
+#usr/share/man/man2/uname.2
+#usr/share/man/man2/undocumented.2
+#usr/share/man/man2/unimplemented.2
+#usr/share/man/man2/unlink.2
+#usr/share/man/man2/uselib.2
+#usr/share/man/man2/ustat.2
+#usr/share/man/man2/utime.2
+#usr/share/man/man2/utimes.2
+#usr/share/man/man2/vfork.2
+#usr/share/man/man2/vhangup.2
+#usr/share/man/man2/vm86.2
+#usr/share/man/man2/wait.2
+#usr/share/man/man2/wait3.2
+#usr/share/man/man2/wait4.2
+#usr/share/man/man2/waitid.2
+#usr/share/man/man2/waitpid.2
+#usr/share/man/man2/write.2
+#usr/share/man/man2/writev.2
+#usr/share/man/man3/CMSG_ALIGN.3
+#usr/share/man/man3/CMSG_FIRSTHDR.3
+#usr/share/man/man3/CMSG_NXTHDR.3
+#usr/share/man/man3/CMSG_SPACE.3
+#usr/share/man/man3/HUGE_VAL.3
+#usr/share/man/man3/HUGE_VALF.3
+#usr/share/man/man3/HUGE_VALL.3
+#usr/share/man/man3/INFINITY.3
+#usr/share/man/man3/MB_CUR_MAX.3
+#usr/share/man/man3/MB_LEN_MAX.3
+#usr/share/man/man3/NAN.3
+#usr/share/man/man3/__fbufsize.3
+#usr/share/man/man3/__flbf.3
+#usr/share/man/man3/__fpending.3
+#usr/share/man/man3/__fpurge.3
+#usr/share/man/man3/__freadable.3
+#usr/share/man/man3/__freading.3
+#usr/share/man/man3/__fsetlocking.3
+#usr/share/man/man3/__fwritable.3
+#usr/share/man/man3/__fwriting.3
+#usr/share/man/man3/__malloc_hook.3
+#usr/share/man/man3/__setfpucw.3
+#usr/share/man/man3/_flushlbf.3
+#usr/share/man/man3/a64l.3
+#usr/share/man/man3/abort.3
+#usr/share/man/man3/abs.3
+#usr/share/man/man3/acos.3
+#usr/share/man/man3/acosf.3
+#usr/share/man/man3/acosh.3
+#usr/share/man/man3/acoshf.3
+#usr/share/man/man3/acoshl.3
+#usr/share/man/man3/acosl.3
+#usr/share/man/man3/addmntent.3
+#usr/share/man/man3/addseverity.3
+#usr/share/man/man3/aio_cancel.3
+#usr/share/man/man3/aio_error.3
+#usr/share/man/man3/aio_fsync.3
+#usr/share/man/man3/aio_read.3
+#usr/share/man/man3/aio_return.3
+#usr/share/man/man3/aio_suspend.3
+#usr/share/man/man3/aio_write.3
+#usr/share/man/man3/alloca.3
+#usr/share/man/man3/alphasort.3
+#usr/share/man/man3/argz_add.3
+#usr/share/man/man3/argz_add_sep.3
+#usr/share/man/man3/argz_append.3
+#usr/share/man/man3/argz_count.3
+#usr/share/man/man3/argz_create.3
+#usr/share/man/man3/argz_create_sep.3
+#usr/share/man/man3/argz_delete.3
+#usr/share/man/man3/argz_extract.3
+#usr/share/man/man3/argz_insert.3
+#usr/share/man/man3/argz_next.3
+#usr/share/man/man3/argz_replace.3
+#usr/share/man/man3/argz_stringify.3
+#usr/share/man/man3/asctime.3
+#usr/share/man/man3/asctime_r.3
+#usr/share/man/man3/asin.3
+#usr/share/man/man3/asinf.3
+#usr/share/man/man3/asinh.3
+#usr/share/man/man3/asinhf.3
+#usr/share/man/man3/asinhl.3
+#usr/share/man/man3/asinl.3
+#usr/share/man/man3/asprintf.3
+#usr/share/man/man3/assert.3
+#usr/share/man/man3/assert_perror.3
+#usr/share/man/man3/atan.3
+#usr/share/man/man3/atan2.3
+#usr/share/man/man3/atan2f.3
+#usr/share/man/man3/atan2l.3
+#usr/share/man/man3/atanf.3
+#usr/share/man/man3/atanh.3
+#usr/share/man/man3/atanhf.3
+#usr/share/man/man3/atanhl.3
+#usr/share/man/man3/atanl.3
+#usr/share/man/man3/atexit.3
+#usr/share/man/man3/atof.3
+#usr/share/man/man3/atoi.3
+#usr/share/man/man3/atol.3
+#usr/share/man/man3/atoll.3
+#usr/share/man/man3/atoq.3
+#usr/share/man/man3/auth_destroy.3
+#usr/share/man/man3/authnone_create.3
+#usr/share/man/man3/authunix_create.3
+#usr/share/man/man3/authunix_create_default.3
+#usr/share/man/man3/basename.3
+#usr/share/man/man3/bcmp.3
+#usr/share/man/man3/bcopy.3
+#usr/share/man/man3/bindresvport.3
+#usr/share/man/man3/bsearch.3
+#usr/share/man/man3/bstring.3
+#usr/share/man/man3/btowc.3
+#usr/share/man/man3/btree.3
+#usr/share/man/man3/byteorder.3
+#usr/share/man/man3/bzero.3
+#usr/share/man/man3/cabs.3
+#usr/share/man/man3/cabsf.3
+#usr/share/man/man3/cabsl.3
+#usr/share/man/man3/cacos.3
+#usr/share/man/man3/cacosf.3
+#usr/share/man/man3/cacosh.3
+#usr/share/man/man3/cacoshf.3
+#usr/share/man/man3/cacoshl.3
+#usr/share/man/man3/cacosl.3
+#usr/share/man/man3/calloc.3
+#usr/share/man/man3/callrpc.3
+#usr/share/man/man3/canonicalize_file_name.3
+#usr/share/man/man3/carg.3
+#usr/share/man/man3/cargf.3
+#usr/share/man/man3/cargl.3
+#usr/share/man/man3/casin.3
+#usr/share/man/man3/casinf.3
+#usr/share/man/man3/casinh.3
+#usr/share/man/man3/casinhf.3
+#usr/share/man/man3/casinhl.3
+#usr/share/man/man3/casinl.3
+#usr/share/man/man3/catan.3
+#usr/share/man/man3/catanf.3
+#usr/share/man/man3/catanh.3
+#usr/share/man/man3/catanhf.3
+#usr/share/man/man3/catanhl.3
+#usr/share/man/man3/catanl.3
+#usr/share/man/man3/catclose.3
+#usr/share/man/man3/catgets.3
+#usr/share/man/man3/catopen.3
+#usr/share/man/man3/cbc_crypt.3
+#usr/share/man/man3/cbrt.3
+#usr/share/man/man3/cbrtf.3
+#usr/share/man/man3/cbrtl.3
+#usr/share/man/man3/ccos.3
+#usr/share/man/man3/ccosf.3
+#usr/share/man/man3/ccosh.3
+#usr/share/man/man3/ccoshf.3
+#usr/share/man/man3/ccoshl.3
+#usr/share/man/man3/ccosl.3
+#usr/share/man/man3/ceil.3
+#usr/share/man/man3/ceilf.3
+#usr/share/man/man3/ceill.3
+#usr/share/man/man3/cerf.3
+#usr/share/man/man3/cerfc.3
+#usr/share/man/man3/cerfcf.3
+#usr/share/man/man3/cerfcl.3
+#usr/share/man/man3/cerff.3
+#usr/share/man/man3/cerfl.3
+#usr/share/man/man3/cexp.3
+#usr/share/man/man3/cexp2.3
+#usr/share/man/man3/cexp2f.3
+#usr/share/man/man3/cexp2l.3
+#usr/share/man/man3/cexpf.3
+#usr/share/man/man3/cexpl.3
+#usr/share/man/man3/cfgetispeed.3
+#usr/share/man/man3/cfgetospeed.3
+#usr/share/man/man3/cfmakeraw.3
+#usr/share/man/man3/cfree.3
+#usr/share/man/man3/cfsetispeed.3
+#usr/share/man/man3/cfsetospeed.3
+#usr/share/man/man3/cimag.3
+#usr/share/man/man3/cimagf.3
+#usr/share/man/man3/cimagl.3
+#usr/share/man/man3/clearenv.3
+#usr/share/man/man3/clearerr.3
+#usr/share/man/man3/clearerr_unlocked.3
+#usr/share/man/man3/clnt_broadcast.3
+#usr/share/man/man3/clnt_call.3
+#usr/share/man/man3/clnt_control.3
+#usr/share/man/man3/clnt_create.3
+#usr/share/man/man3/clnt_destroy.3
+#usr/share/man/man3/clnt_freeres.3
+#usr/share/man/man3/clnt_geterr.3
+#usr/share/man/man3/clnt_pcreateerror.3
+#usr/share/man/man3/clnt_perrno.3
+#usr/share/man/man3/clnt_perror.3
+#usr/share/man/man3/clnt_spcreateerror.3
+#usr/share/man/man3/clnt_sperrno.3
+#usr/share/man/man3/clnt_sperror.3
+#usr/share/man/man3/clntraw_create.3
+#usr/share/man/man3/clnttcp_create.3
+#usr/share/man/man3/clntudp_bufcreate.3
+#usr/share/man/man3/clntudp_create.3
+#usr/share/man/man3/clock.3
+#usr/share/man/man3/clock_getres.3
+#usr/share/man/man3/clock_gettime.3
+#usr/share/man/man3/clock_settime.3
+#usr/share/man/man3/clog.3
+#usr/share/man/man3/clog10.3
+#usr/share/man/man3/clog10f.3
+#usr/share/man/man3/clog10l.3
+#usr/share/man/man3/clog2.3
+#usr/share/man/man3/clog2f.3
+#usr/share/man/man3/clog2l.3
+#usr/share/man/man3/clogf.3
+#usr/share/man/man3/clogl.3
+#usr/share/man/man3/closedir.3
+#usr/share/man/man3/closelog.3
+#usr/share/man/man3/cmsg.3
+#usr/share/man/man3/confstr.3
+#usr/share/man/man3/conj.3
+#usr/share/man/man3/conjf.3
+#usr/share/man/man3/conjl.3
+#usr/share/man/man3/copysign.3
+#usr/share/man/man3/copysignf.3
+#usr/share/man/man3/copysignl.3
+#usr/share/man/man3/cos.3
+#usr/share/man/man3/cosf.3
+#usr/share/man/man3/cosh.3
+#usr/share/man/man3/coshf.3
+#usr/share/man/man3/coshl.3
+#usr/share/man/man3/cosl.3
+#usr/share/man/man3/cpow.3
+#usr/share/man/man3/cpowf.3
+#usr/share/man/man3/cpowl.3
+#usr/share/man/man3/cproj.3
+#usr/share/man/man3/cprojf.3
+#usr/share/man/man3/cprojl.3
+#usr/share/man/man3/creal.3
+#usr/share/man/man3/crealf.3
+#usr/share/man/man3/creall.3
+#usr/share/man/man3/crypt.3
+#usr/share/man/man3/csin.3
+#usr/share/man/man3/csinf.3
+#usr/share/man/man3/csinh.3
+#usr/share/man/man3/csinhf.3
+#usr/share/man/man3/csinhl.3
+#usr/share/man/man3/csinl.3
+#usr/share/man/man3/csqrt.3
+#usr/share/man/man3/csqrtf.3
+#usr/share/man/man3/csqrtl.3
+#usr/share/man/man3/ctan.3
+#usr/share/man/man3/ctanf.3
+#usr/share/man/man3/ctanh.3
+#usr/share/man/man3/ctanhf.3
+#usr/share/man/man3/ctanhl.3
+#usr/share/man/man3/ctanl.3
+#usr/share/man/man3/ctermid.3
+#usr/share/man/man3/ctime.3
+#usr/share/man/man3/ctime_r.3
+#usr/share/man/man3/cuserid.3
+#usr/share/man/man3/daemon.3
+#usr/share/man/man3/db.3
+#usr/share/man/man3/dbopen.3
+#usr/share/man/man3/des_crypt.3
+#usr/share/man/man3/des_setparity.3
+#usr/share/man/man3/difftime.3
+#usr/share/man/man3/dirfd.3
+#usr/share/man/man3/dirname.3
+#usr/share/man/man3/div.3
+#usr/share/man/man3/dl_iterate_phdr.3
+#usr/share/man/man3/dladdr.3
+#usr/share/man/man3/dlclose.3
+#usr/share/man/man3/dlerror.3
+#usr/share/man/man3/dlopen.3
+#usr/share/man/man3/dlsym.3
+#usr/share/man/man3/dlvsym.3
+#usr/share/man/man3/dn_comp.3
+#usr/share/man/man3/dn_expand.3
+#usr/share/man/man3/dprintf.3
+#usr/share/man/man3/drand48.3
+#usr/share/man/man3/drand48_r.3
+#usr/share/man/man3/drem.3
+#usr/share/man/man3/dremf.3
+#usr/share/man/man3/dreml.3
+#usr/share/man/man3/dysize.3
+#usr/share/man/man3/ecb_crypt.3
+#usr/share/man/man3/ecvt.3
+#usr/share/man/man3/ecvt_r.3
+#usr/share/man/man3/encrypt.3
+#usr/share/man/man3/endaliasent.3
+#usr/share/man/man3/endfsent.3
+#usr/share/man/man3/endgrent.3
+#usr/share/man/man3/endhostent.3
+#usr/share/man/man3/endmntent.3
+#usr/share/man/man3/endnetent.3
+#usr/share/man/man3/endnetgrent.3
+#usr/share/man/man3/endprotoent.3
+#usr/share/man/man3/endpwent.3
+#usr/share/man/man3/endrpcent.3
+#usr/share/man/man3/endservent.3
+#usr/share/man/man3/endspent.3
+#usr/share/man/man3/endttyent.3
+#usr/share/man/man3/endusershell.3
+#usr/share/man/man3/endutent.3
+#usr/share/man/man3/endutxent.3
+#usr/share/man/man3/envz_add.3
+#usr/share/man/man3/envz_entry.3
+#usr/share/man/man3/envz_get.3
+#usr/share/man/man3/envz_merge.3
+#usr/share/man/man3/envz_remove.3
+#usr/share/man/man3/envz_strip.3
+#usr/share/man/man3/erand48.3
+#usr/share/man/man3/erand48_r.3
+#usr/share/man/man3/erf.3
+#usr/share/man/man3/erfc.3
+#usr/share/man/man3/erfcf.3
+#usr/share/man/man3/erfcl.3
+#usr/share/man/man3/erff.3
+#usr/share/man/man3/erfl.3
+#usr/share/man/man3/err.3
+#usr/share/man/man3/errno.3
+#usr/share/man/man3/errx.3
+#usr/share/man/man3/ether_aton.3
+#usr/share/man/man3/ether_aton_r.3
+#usr/share/man/man3/ether_hostton.3
+#usr/share/man/man3/ether_line.3
+#usr/share/man/man3/ether_ntoa.3
+#usr/share/man/man3/ether_ntoa_r.3
+#usr/share/man/man3/ether_ntohost.3
+#usr/share/man/man3/exec.3
+#usr/share/man/man3/execl.3
+#usr/share/man/man3/execle.3
+#usr/share/man/man3/execlp.3
+#usr/share/man/man3/execv.3
+#usr/share/man/man3/execvp.3
+#usr/share/man/man3/exit.3
+#usr/share/man/man3/exp.3
+#usr/share/man/man3/exp10.3
+#usr/share/man/man3/exp10f.3
+#usr/share/man/man3/exp10l.3
+#usr/share/man/man3/exp2.3
+#usr/share/man/man3/exp2f.3
+#usr/share/man/man3/exp2l.3
+#usr/share/man/man3/expf.3
+#usr/share/man/man3/expl.3
+#usr/share/man/man3/expm1.3
+#usr/share/man/man3/expm1f.3
+#usr/share/man/man3/expm1l.3
+#usr/share/man/man3/fabs.3
+#usr/share/man/man3/fabsf.3
+#usr/share/man/man3/fabsl.3
+#usr/share/man/man3/fclose.3
+#usr/share/man/man3/fcloseall.3
+#usr/share/man/man3/fcvt.3
+#usr/share/man/man3/fcvt_r.3
+#usr/share/man/man3/fdim.3
+#usr/share/man/man3/fdimf.3
+#usr/share/man/man3/fdiml.3
+#usr/share/man/man3/fdopen.3
+#usr/share/man/man3/feclearexcept.3
+#usr/share/man/man3/fedisableexcept.3
+#usr/share/man/man3/feenableexcept.3
+#usr/share/man/man3/fegetenv.3
+#usr/share/man/man3/fegetexcept.3
+#usr/share/man/man3/fegetexceptflag.3
+#usr/share/man/man3/fegetround.3
+#usr/share/man/man3/feholdexcept.3
+#usr/share/man/man3/fenv.3
+#usr/share/man/man3/feof.3
+#usr/share/man/man3/feof_unlocked.3
+#usr/share/man/man3/feraiseexcept.3
+#usr/share/man/man3/ferror.3
+#usr/share/man/man3/ferror_unlocked.3
+#usr/share/man/man3/fesetenv.3
+#usr/share/man/man3/fesetexceptflag.3
+#usr/share/man/man3/fesetround.3
+#usr/share/man/man3/fetestexcept.3
+#usr/share/man/man3/feupdateenv.3
+#usr/share/man/man3/fflush.3
+#usr/share/man/man3/fflush_unlocked.3
+#usr/share/man/man3/ffs.3
+#usr/share/man/man3/ffsl.3
+#usr/share/man/man3/ffsll.3
+#usr/share/man/man3/fgetc.3
+#usr/share/man/man3/fgetc_unlocked.3
+#usr/share/man/man3/fgetgrent.3
+#usr/share/man/man3/fgetgrent_r.3
+#usr/share/man/man3/fgetpos.3
+#usr/share/man/man3/fgetpwent.3
+#usr/share/man/man3/fgetpwent_r.3
+#usr/share/man/man3/fgets.3
+#usr/share/man/man3/fgets_unlocked.3
+#usr/share/man/man3/fgetspent.3
+#usr/share/man/man3/fgetspent_r.3
+#usr/share/man/man3/fgetwc.3
+#usr/share/man/man3/fgetwc_unlocked.3
+#usr/share/man/man3/fgetws.3
+#usr/share/man/man3/fgetws_unlocked.3
+#usr/share/man/man3/fileno.3
+#usr/share/man/man3/fileno_unlocked.3
+#usr/share/man/man3/finite.3
+#usr/share/man/man3/finitef.3
+#usr/share/man/man3/finitel.3
+#usr/share/man/man3/flockfile.3
+#usr/share/man/man3/floor.3
+#usr/share/man/man3/floorf.3
+#usr/share/man/man3/floorl.3
+#usr/share/man/man3/fma.3
+#usr/share/man/man3/fmaf.3
+#usr/share/man/man3/fmal.3
+#usr/share/man/man3/fmax.3
+#usr/share/man/man3/fmaxf.3
+#usr/share/man/man3/fmaxl.3
+#usr/share/man/man3/fmin.3
+#usr/share/man/man3/fminf.3
+#usr/share/man/man3/fminl.3
+#usr/share/man/man3/fmod.3
+#usr/share/man/man3/fmodf.3
+#usr/share/man/man3/fmodl.3
+#usr/share/man/man3/fmtmsg.3
+#usr/share/man/man3/fnmatch.3
+#usr/share/man/man3/fopen.3
+#usr/share/man/man3/forkpty.3
+#usr/share/man/man3/fpathconf.3
+#usr/share/man/man3/fpclassify.3
+#usr/share/man/man3/fprintf.3
+#usr/share/man/man3/fpurge.3
+#usr/share/man/man3/fputc.3
+#usr/share/man/man3/fputc_unlocked.3
+#usr/share/man/man3/fputs.3
+#usr/share/man/man3/fputs_unlocked.3
+#usr/share/man/man3/fputwc.3
+#usr/share/man/man3/fputwc_unlocked.3
+#usr/share/man/man3/fputws.3
+#usr/share/man/man3/fputws_unlocked.3
+#usr/share/man/man3/fread.3
+#usr/share/man/man3/fread_unlocked.3
+#usr/share/man/man3/free.3
+#usr/share/man/man3/freeaddrinfo.3
+#usr/share/man/man3/freehostent.3
+#usr/share/man/man3/freopen.3
+#usr/share/man/man3/frexp.3
+#usr/share/man/man3/frexpf.3
+#usr/share/man/man3/frexpl.3
+#usr/share/man/man3/fscanf.3
+#usr/share/man/man3/fseek.3
+#usr/share/man/man3/fseeko.3
+#usr/share/man/man3/fsetpos.3
+#usr/share/man/man3/ftell.3
+#usr/share/man/man3/ftello.3
+#usr/share/man/man3/ftime.3
+#usr/share/man/man3/ftok.3
+#usr/share/man/man3/ftrylockfile.3
+#usr/share/man/man3/fts.3
+#usr/share/man/man3/fts_children.3
+#usr/share/man/man3/fts_close.3
+#usr/share/man/man3/fts_open.3
+#usr/share/man/man3/fts_read.3
+#usr/share/man/man3/fts_set.3
+#usr/share/man/man3/ftw.3
+#usr/share/man/man3/funlockfile.3
+#usr/share/man/man3/fwide.3
+#usr/share/man/man3/fwprintf.3
+#usr/share/man/man3/fwrite.3
+#usr/share/man/man3/fwrite_unlocked.3
+#usr/share/man/man3/gai_strerror.3
+#usr/share/man/man3/gamma.3
+#usr/share/man/man3/gammaf.3
+#usr/share/man/man3/gammal.3
+#usr/share/man/man3/gcvt.3
+#usr/share/man/man3/get_current_dir_name.3
+#usr/share/man/man3/get_myaddress.3
+#usr/share/man/man3/getaddrinfo.3
+#usr/share/man/man3/getaliasbyname.3
+#usr/share/man/man3/getaliasbyname_r.3
+#usr/share/man/man3/getaliasent.3
+#usr/share/man/man3/getaliasent_r.3
+#usr/share/man/man3/getc.3
+#usr/share/man/man3/getc_unlocked.3
+#usr/share/man/man3/getchar.3
+#usr/share/man/man3/getchar_unlocked.3
+#usr/share/man/man3/getcwd.3
+#usr/share/man/man3/getdate.3
+#usr/share/man/man3/getdate_r.3
+#usr/share/man/man3/getdelim.3
+#usr/share/man/man3/getdirentries.3
+#usr/share/man/man3/getenv.3
+#usr/share/man/man3/getfsent.3
+#usr/share/man/man3/getfsfile.3
+#usr/share/man/man3/getfsspec.3
+#usr/share/man/man3/getgrent.3
+#usr/share/man/man3/getgrent_r.3
+#usr/share/man/man3/getgrgid.3
+#usr/share/man/man3/getgrgid_r.3
+#usr/share/man/man3/getgrnam.3
+#usr/share/man/man3/getgrnam_r.3
+#usr/share/man/man3/getgrouplist.3
+#usr/share/man/man3/gethostbyaddr.3
+#usr/share/man/man3/gethostbyname.3
+#usr/share/man/man3/gethostbyname2.3
+#usr/share/man/man3/gethostbyname2_r.3
+#usr/share/man/man3/gethostbyname_r.3
+#usr/share/man/man3/gethostent.3
+#usr/share/man/man3/gethostent_r.3
+#usr/share/man/man3/getipnodebyaddr.3
+#usr/share/man/man3/getipnodebyname.3
+#usr/share/man/man3/getline.3
+#usr/share/man/man3/getloadavg.3
+#usr/share/man/man3/getlogin.3
+#usr/share/man/man3/getlogin_r.3
+#usr/share/man/man3/getmntent.3
+#usr/share/man/man3/getmntent_r.3
+#usr/share/man/man3/getnameinfo.3
+#usr/share/man/man3/getnetbyaddr.3
+#usr/share/man/man3/getnetbyname.3
+#usr/share/man/man3/getnetent.3
+#usr/share/man/man3/getnetgrent.3
+#usr/share/man/man3/getnetgrent_r.3
+#usr/share/man/man3/getopt.3
+#usr/share/man/man3/getopt_long.3
+#usr/share/man/man3/getopt_long_only.3
+#usr/share/man/man3/getpass.3
+#usr/share/man/man3/getprotobyname.3
+#usr/share/man/man3/getprotobynumber.3
+#usr/share/man/man3/getprotoent.3
+#usr/share/man/man3/getpt.3
+#usr/share/man/man3/getpw.3
+#usr/share/man/man3/getpwent.3
+#usr/share/man/man3/getpwent_r.3
+#usr/share/man/man3/getpwnam.3
+#usr/share/man/man3/getpwnam_r.3
+#usr/share/man/man3/getpwuid.3
+#usr/share/man/man3/getpwuid_r.3
+#usr/share/man/man3/getrpcbyname.3
+#usr/share/man/man3/getrpcbynumber.3
+#usr/share/man/man3/getrpcent.3
+#usr/share/man/man3/getrpcport.3
+#usr/share/man/man3/gets.3
+#usr/share/man/man3/getservbyname.3
+#usr/share/man/man3/getservbyport.3
+#usr/share/man/man3/getservent.3
+#usr/share/man/man3/getspent.3
+#usr/share/man/man3/getspent_r.3
+#usr/share/man/man3/getspnam.3
+#usr/share/man/man3/getspnam_r.3
+#usr/share/man/man3/getttyent.3
+#usr/share/man/man3/getttynam.3
+#usr/share/man/man3/getumask.3
+#usr/share/man/man3/getusershell.3
+#usr/share/man/man3/getutent.3
+#usr/share/man/man3/getutent_r.3
+#usr/share/man/man3/getutid.3
+#usr/share/man/man3/getutid_r.3
+#usr/share/man/man3/getutline.3
+#usr/share/man/man3/getutline_r.3
+#usr/share/man/man3/getutxent.3
+#usr/share/man/man3/getutxid.3
+#usr/share/man/man3/getutxline.3
+#usr/share/man/man3/getw.3
+#usr/share/man/man3/getwc.3
+#usr/share/man/man3/getwc_unlocked.3
+#usr/share/man/man3/getwchar.3
+#usr/share/man/man3/getwchar_unlocked.3
+#usr/share/man/man3/getwd.3
+#usr/share/man/man3/glob.3
+#usr/share/man/man3/globfree.3
+#usr/share/man/man3/gmtime.3
+#usr/share/man/man3/gmtime_r.3
+#usr/share/man/man3/grantpt.3
+#usr/share/man/man3/gsignal.3
+#usr/share/man/man3/hash.3
+#usr/share/man/man3/hasmntopt.3
+#usr/share/man/man3/hcreate.3
+#usr/share/man/man3/hcreate_r.3
+#usr/share/man/man3/hdestroy.3
+#usr/share/man/man3/hdestroy_r.3
+#usr/share/man/man3/herror.3
+#usr/share/man/man3/hsearch.3
+#usr/share/man/man3/hsearch_r.3
+#usr/share/man/man3/hstrerror.3
+#usr/share/man/man3/htonl.3
+#usr/share/man/man3/htons.3
+#usr/share/man/man3/hypot.3
+#usr/share/man/man3/hypotf.3
+#usr/share/man/man3/hypotl.3
+#usr/share/man/man3/iconv.3
+#usr/share/man/man3/iconv_close.3
+#usr/share/man/man3/iconv_open.3
+#usr/share/man/man3/ilogb.3
+#usr/share/man/man3/ilogbf.3
+#usr/share/man/man3/ilogbl.3
+#usr/share/man/man3/imaxabs.3
+#usr/share/man/man3/imaxdiv.3
+#usr/share/man/man3/index.3
+#usr/share/man/man3/inet.3
+#usr/share/man/man3/inet_addr.3
+#usr/share/man/man3/inet_aton.3
+#usr/share/man/man3/inet_lnaof.3
+#usr/share/man/man3/inet_makeaddr.3
+#usr/share/man/man3/inet_netof.3
+#usr/share/man/man3/inet_network.3
+#usr/share/man/man3/inet_ntoa.3
+#usr/share/man/man3/inet_ntop.3
+#usr/share/man/man3/inet_pton.3
+#usr/share/man/man3/infnan.3
+#usr/share/man/man3/initgroups.3
+#usr/share/man/man3/initstate.3
+#usr/share/man/man3/innetgr.3
+#usr/share/man/man3/insque.3
+#usr/share/man/man3/intro.3
+#usr/share/man/man3/iruserok.3
+#usr/share/man/man3/isalnum.3
+#usr/share/man/man3/isalpha.3
+#usr/share/man/man3/isascii.3
+#usr/share/man/man3/isatty.3
+#usr/share/man/man3/isblank.3
+#usr/share/man/man3/iscntrl.3
+#usr/share/man/man3/isdigit.3
+#usr/share/man/man3/isfinite.3
+#usr/share/man/man3/isgraph.3
+#usr/share/man/man3/isgreater.3
+#usr/share/man/man3/isgreaterequal.3
+#usr/share/man/man3/isinf.3
+#usr/share/man/man3/isinff.3
+#usr/share/man/man3/isinfl.3
+#usr/share/man/man3/isless.3
+#usr/share/man/man3/islessequal.3
+#usr/share/man/man3/islessgreater.3
+#usr/share/man/man3/islower.3
+#usr/share/man/man3/isnan.3
+#usr/share/man/man3/isnormal.3
+#usr/share/man/man3/isprint.3
+#usr/share/man/man3/ispunct.3
+#usr/share/man/man3/isspace.3
+#usr/share/man/man3/isunordered.3
+#usr/share/man/man3/isupper.3
+#usr/share/man/man3/iswalnum.3
+#usr/share/man/man3/iswalpha.3
+#usr/share/man/man3/iswblank.3
+#usr/share/man/man3/iswcntrl.3
+#usr/share/man/man3/iswctype.3
+#usr/share/man/man3/iswdigit.3
+#usr/share/man/man3/iswgraph.3
+#usr/share/man/man3/iswlower.3
+#usr/share/man/man3/iswprint.3
+#usr/share/man/man3/iswpunct.3
+#usr/share/man/man3/iswspace.3
+#usr/share/man/man3/iswupper.3
+#usr/share/man/man3/iswxdigit.3
+#usr/share/man/man3/isxdigit.3
+#usr/share/man/man3/j0.3
+#usr/share/man/man3/j0f.3
+#usr/share/man/man3/j0l.3
+#usr/share/man/man3/j1.3
+#usr/share/man/man3/j1f.3
+#usr/share/man/man3/j1l.3
+#usr/share/man/man3/jn.3
+#usr/share/man/man3/jnf.3
+#usr/share/man/man3/jnl.3
+#usr/share/man/man3/jrand48.3
+#usr/share/man/man3/jrand48_r.3
+#usr/share/man/man3/key_decryptsession.3
+#usr/share/man/man3/key_encryptsession.3
+#usr/share/man/man3/key_gendes.3
+#usr/share/man/man3/key_secretkey_is_set.3
+#usr/share/man/man3/key_setsecret.3
+#usr/share/man/man3/killpg.3
+#usr/share/man/man3/klogctl.3
+#usr/share/man/man3/l64a.3
+#usr/share/man/man3/labs.3
+#usr/share/man/man3/lckpwdf.3
+#usr/share/man/man3/lcong48.3
+#usr/share/man/man3/lcong48_r.3
+#usr/share/man/man3/ldexp.3
+#usr/share/man/man3/ldexpf.3
+#usr/share/man/man3/ldexpl.3
+#usr/share/man/man3/ldiv.3
+#usr/share/man/man3/lfind.3
+#usr/share/man/man3/lgamma.3
+#usr/share/man/man3/lgamma_r.3
+#usr/share/man/man3/lgammaf.3
+#usr/share/man/man3/lgammaf_r.3
+#usr/share/man/man3/lgammal.3
+#usr/share/man/man3/lgammal_r.3
+#usr/share/man/man3/llabs.3
+#usr/share/man/man3/lldiv.3
+#usr/share/man/man3/llrint.3
+#usr/share/man/man3/llrintf.3
+#usr/share/man/man3/llrintl.3
+#usr/share/man/man3/llround.3
+#usr/share/man/man3/llroundf.3
+#usr/share/man/man3/llroundl.3
+#usr/share/man/man3/localeconv.3
+#usr/share/man/man3/localtime.3
+#usr/share/man/man3/localtime_r.3
+#usr/share/man/man3/lockf.3
+#usr/share/man/man3/log.3
+#usr/share/man/man3/log10.3
+#usr/share/man/man3/log10f.3
+#usr/share/man/man3/log10l.3
+#usr/share/man/man3/log1p.3
+#usr/share/man/man3/log1pf.3
+#usr/share/man/man3/log1pl.3
+#usr/share/man/man3/log2.3
+#usr/share/man/man3/log2f.3
+#usr/share/man/man3/log2l.3
+#usr/share/man/man3/logb.3
+#usr/share/man/man3/logbf.3
+#usr/share/man/man3/logbl.3
+#usr/share/man/man3/logf.3
+#usr/share/man/man3/login.3
+#usr/share/man/man3/login_tty.3
+#usr/share/man/man3/logl.3
+#usr/share/man/man3/logout.3
+#usr/share/man/man3/logwtmp.3
+#usr/share/man/man3/longjmp.3
+#usr/share/man/man3/lrand48.3
+#usr/share/man/man3/lrand48_r.3
+#usr/share/man/man3/lrint.3
+#usr/share/man/man3/lrintf.3
+#usr/share/man/man3/lrintl.3
+#usr/share/man/man3/lround.3
+#usr/share/man/man3/lroundf.3
+#usr/share/man/man3/lroundl.3
+#usr/share/man/man3/lsearch.3
+#usr/share/man/man3/lseek64.3
+#usr/share/man/man3/makecontext.3
+#usr/share/man/man3/malloc.3
+#usr/share/man/man3/malloc_hook.3
+#usr/share/man/man3/mblen.3
+#usr/share/man/man3/mbrlen.3
+#usr/share/man/man3/mbrtowc.3
+#usr/share/man/man3/mbsinit.3
+#usr/share/man/man3/mbsnrtowcs.3
+#usr/share/man/man3/mbsrtowcs.3
+#usr/share/man/man3/mbstowcs.3
+#usr/share/man/man3/mbtowc.3
+#usr/share/man/man3/memalign.3
+#usr/share/man/man3/memccpy.3
+#usr/share/man/man3/memchr.3
+#usr/share/man/man3/memcmp.3
+#usr/share/man/man3/memcpy.3
+#usr/share/man/man3/memfrob.3
+#usr/share/man/man3/memmem.3
+#usr/share/man/man3/memmove.3
+#usr/share/man/man3/mempcpy.3
+#usr/share/man/man3/memrchr.3
+#usr/share/man/man3/memset.3
+#usr/share/man/man3/mkdtemp.3
+#usr/share/man/man3/mkfifo.3
+#usr/share/man/man3/mkstemp.3
+#usr/share/man/man3/mktemp.3
+#usr/share/man/man3/mktime.3
+#usr/share/man/man3/modf.3
+#usr/share/man/man3/modff.3
+#usr/share/man/man3/modfl.3
+#usr/share/man/man3/mpool.3
+#usr/share/man/man3/mrand48.3
+#usr/share/man/man3/mrand48_r.3
+#usr/share/man/man3/mtrace.3
+#usr/share/man/man3/muntrace.3
+#usr/share/man/man3/nan.3
+#usr/share/man/man3/nanf.3
+#usr/share/man/man3/nanl.3
+#usr/share/man/man3/nearbyint.3
+#usr/share/man/man3/nearbyintf.3
+#usr/share/man/man3/nearbyintl.3
+#usr/share/man/man3/netlink.3
+#usr/share/man/man3/nextafter.3
+#usr/share/man/man3/nextafterf.3
+#usr/share/man/man3/nextafterl.3
+#usr/share/man/man3/nexttoward.3
+#usr/share/man/man3/nexttowardf.3
+#usr/share/man/man3/nexttowardl.3
+#usr/share/man/man3/nftw.3
+#usr/share/man/man3/nl_langinfo.3
+#usr/share/man/man3/nrand48.3
+#usr/share/man/man3/nrand48_r.3
+#usr/share/man/man3/ntohl.3
+#usr/share/man/man3/ntohs.3
+#usr/share/man/man3/on_exit.3
+#usr/share/man/man3/opendir.3
+#usr/share/man/man3/openlog.3
+#usr/share/man/man3/openpty.3
+#usr/share/man/man3/passwd2des.3
+#usr/share/man/man3/pathconf.3
+#usr/share/man/man3/pclose.3
+#usr/share/man/man3/perror.3
+#usr/share/man/man3/pmap_getmaps.3
+#usr/share/man/man3/pmap_getport.3
+#usr/share/man/man3/pmap_rmtcall.3
+#usr/share/man/man3/pmap_set.3
+#usr/share/man/man3/pmap_unset.3
+#usr/share/man/man3/popen.3
+#usr/share/man/man3/posix_memalign.3
+#usr/share/man/man3/posix_openpt.3
+#usr/share/man/man3/pow.3
+#usr/share/man/man3/pow10.3
+#usr/share/man/man3/pow10f.3
+#usr/share/man/man3/pow10l.3
+#usr/share/man/man3/powf.3
+#usr/share/man/man3/powl.3
+#usr/share/man/man3/printf.3
+#usr/share/man/man3/profil.3
+#usr/share/man/man3/psignal.3
+#usr/share/man/man3/ptsname.3
+#usr/share/man/man3/ptsname_r.3
+#usr/share/man/man3/putc.3
+#usr/share/man/man3/putc_unlocked.3
+#usr/share/man/man3/putchar.3
+#usr/share/man/man3/putchar_unlocked.3
+#usr/share/man/man3/putenv.3
+#usr/share/man/man3/putgrent.3
+#usr/share/man/man3/putpwent.3
+#usr/share/man/man3/puts.3
+#usr/share/man/man3/putspent.3
+#usr/share/man/man3/pututline.3
+#usr/share/man/man3/pututxline.3
+#usr/share/man/man3/putw.3
+#usr/share/man/man3/putwc.3
+#usr/share/man/man3/putwc_unlocked.3
+#usr/share/man/man3/putwchar.3
+#usr/share/man/man3/putwchar_unlocked.3
+#usr/share/man/man3/qecvt.3
+#usr/share/man/man3/qecvt_r.3
+#usr/share/man/man3/qfcvt.3
+#usr/share/man/man3/qfcvt_r.3
+#usr/share/man/man3/qgcvt.3
+#usr/share/man/man3/qsort.3
+#usr/share/man/man3/queue.3
+#usr/share/man/man3/raise.3
+#usr/share/man/man3/rand.3
+#usr/share/man/man3/rand_r.3
+#usr/share/man/man3/random.3
+#usr/share/man/man3/rcmd.3
+#usr/share/man/man3/re_comp.3
+#usr/share/man/man3/re_exec.3
+#usr/share/man/man3/readdir.3
+#usr/share/man/man3/realloc.3
+#usr/share/man/man3/realpath.3
+#usr/share/man/man3/recno.3
+#usr/share/man/man3/regcomp.3
+#usr/share/man/man3/regerror.3
+#usr/share/man/man3/regex.3
+#usr/share/man/man3/regexec.3
+#usr/share/man/man3/regfree.3
+#usr/share/man/man3/registerrpc.3
+#usr/share/man/man3/remainder.3
+#usr/share/man/man3/remainderf.3
+#usr/share/man/man3/remainderl.3
+#usr/share/man/man3/remove.3
+#usr/share/man/man3/remque.3
+#usr/share/man/man3/remquo.3
+#usr/share/man/man3/remquof.3
+#usr/share/man/man3/remquol.3
+#usr/share/man/man3/res_init.3
+#usr/share/man/man3/res_mkquery.3
+#usr/share/man/man3/res_query.3
+#usr/share/man/man3/res_querydomain.3
+#usr/share/man/man3/res_search.3
+#usr/share/man/man3/res_send.3
+#usr/share/man/man3/resolver.3
+#usr/share/man/man3/rewind.3
+#usr/share/man/man3/rewinddir.3
+#usr/share/man/man3/rindex.3
+#usr/share/man/man3/rint.3
+#usr/share/man/man3/rintf.3
+#usr/share/man/man3/rintl.3
+#usr/share/man/man3/round.3
+#usr/share/man/man3/roundf.3
+#usr/share/man/man3/roundl.3
+#usr/share/man/man3/rpc.3
+#usr/share/man/man3/rresvport.3
+#usr/share/man/man3/rtime.3
+#usr/share/man/man3/rtnetlink.3
+#usr/share/man/man3/ruserok.3
+#usr/share/man/man3/scalb.3
+#usr/share/man/man3/scalbf.3
+#usr/share/man/man3/scalbl.3
+#usr/share/man/man3/scalbln.3
+#usr/share/man/man3/scalblnf.3
+#usr/share/man/man3/scalblnl.3
+#usr/share/man/man3/scalbn.3
+#usr/share/man/man3/scalbnf.3
+#usr/share/man/man3/scalbnl.3
+#usr/share/man/man3/scandir.3
+#usr/share/man/man3/scanf.3
+#usr/share/man/man3/seed48.3
+#usr/share/man/man3/seed48_r.3
+#usr/share/man/man3/seekdir.3
+#usr/share/man/man3/setaliasent.3
+#usr/share/man/man3/setbuf.3
+#usr/share/man/man3/setbuffer.3
+#usr/share/man/man3/setenv.3
+#usr/share/man/man3/setfsent.3
+#usr/share/man/man3/setgrent.3
+#usr/share/man/man3/sethostent.3
+#usr/share/man/man3/setjmp.3
+#usr/share/man/man3/setkey.3
+#usr/share/man/man3/setlinebuf.3
+#usr/share/man/man3/setlocale.3
+#usr/share/man/man3/setlogmask.3
+#usr/share/man/man3/setmntent.3
+#usr/share/man/man3/setnetent.3
+#usr/share/man/man3/setnetgrent.3
+#usr/share/man/man3/setprotoent.3
+#usr/share/man/man3/setpwent.3
+#usr/share/man/man3/setrpcent.3
+#usr/share/man/man3/setservent.3
+#usr/share/man/man3/setspent.3
+#usr/share/man/man3/setstate.3
+#usr/share/man/man3/setttyent.3
+#usr/share/man/man3/setusershell.3
+#usr/share/man/man3/setutent.3
+#usr/share/man/man3/setutxent.3
+#usr/share/man/man3/setvbuf.3
+#usr/share/man/man3/sgetspent.3
+#usr/share/man/man3/sgetspent_r.3
+#usr/share/man/man3/shm_open.3
+#usr/share/man/man3/sigaddset.3
+#usr/share/man/man3/sigdelset.3
+#usr/share/man/man3/sigemptyset.3
+#usr/share/man/man3/sigfillset.3
+#usr/share/man/man3/siginterrupt.3
+#usr/share/man/man3/sigismember.3
+#usr/share/man/man3/siglongjmp.3
+#usr/share/man/man3/signbit.3
+#usr/share/man/man3/signgam.3
+#usr/share/man/man3/significand.3
+#usr/share/man/man3/significandf.3
+#usr/share/man/man3/significandl.3
+#usr/share/man/man3/sigsetjmp.3
+#usr/share/man/man3/sigsetops.3
+#usr/share/man/man3/sin.3
+#usr/share/man/man3/sincos.3
+#usr/share/man/man3/sincosf.3
+#usr/share/man/man3/sincosl.3
+#usr/share/man/man3/sinf.3
+#usr/share/man/man3/sinh.3
+#usr/share/man/man3/sinhf.3
+#usr/share/man/man3/sinhl.3
+#usr/share/man/man3/sinl.3
+#usr/share/man/man3/sleep.3
+#usr/share/man/man3/snprintf.3
+#usr/share/man/man3/sprintf.3
+#usr/share/man/man3/sqrt.3
+#usr/share/man/man3/sqrtf.3
+#usr/share/man/man3/sqrtl.3
+#usr/share/man/man3/srand.3
+#usr/share/man/man3/srand48.3
+#usr/share/man/man3/srand48_r.3
+#usr/share/man/man3/srandom.3
+#usr/share/man/man3/sscanf.3
+#usr/share/man/man3/ssignal.3
+#usr/share/man/man3/stdarg.3
+#usr/share/man/man3/stderr.3
+#usr/share/man/man3/stdin.3
+#usr/share/man/man3/stdio.3
+#usr/share/man/man3/stdio_ext.3
+#usr/share/man/man3/stdout.3
+#usr/share/man/man3/stpcpy.3
+#usr/share/man/man3/stpncpy.3
+#usr/share/man/man3/strcasecmp.3
+#usr/share/man/man3/strcasestr.3
+#usr/share/man/man3/strcat.3
+#usr/share/man/man3/strchr.3
+#usr/share/man/man3/strcmp.3
+#usr/share/man/man3/strcoll.3
+#usr/share/man/man3/strcpy.3
+#usr/share/man/man3/strcspn.3
+#usr/share/man/man3/strdup.3
+#usr/share/man/man3/strdupa.3
+#usr/share/man/man3/strerror.3
+#usr/share/man/man3/strerror_r.3
+#usr/share/man/man3/strfmon.3
+#usr/share/man/man3/strfry.3
+#usr/share/man/man3/strftime.3
+#usr/share/man/man3/string.3
+#usr/share/man/man3/strlen.3
+#usr/share/man/man3/strncasecmp.3
+#usr/share/man/man3/strncat.3
+#usr/share/man/man3/strncmp.3
+#usr/share/man/man3/strncpy.3
+#usr/share/man/man3/strndup.3
+#usr/share/man/man3/strndupa.3
+#usr/share/man/man3/strnlen.3
+#usr/share/man/man3/strpbrk.3
+#usr/share/man/man3/strptime.3
+#usr/share/man/man3/strrchr.3
+#usr/share/man/man3/strsep.3
+#usr/share/man/man3/strsignal.3
+#usr/share/man/man3/strspn.3
+#usr/share/man/man3/strstr.3
+#usr/share/man/man3/strtod.3
+#usr/share/man/man3/strtof.3
+#usr/share/man/man3/strtoimax.3
+#usr/share/man/man3/strtok.3
+#usr/share/man/man3/strtok_r.3
+#usr/share/man/man3/strtol.3
+#usr/share/man/man3/strtold.3
+#usr/share/man/man3/strtoll.3
+#usr/share/man/man3/strtoq.3
+#usr/share/man/man3/strtoul.3
+#usr/share/man/man3/strtoull.3
+#usr/share/man/man3/strtoumax.3
+#usr/share/man/man3/strtouq.3
+#usr/share/man/man3/strverscmp.3
+#usr/share/man/man3/strxfrm.3
+#usr/share/man/man3/svc_destroy.3
+#usr/share/man/man3/svc_freeargs.3
+#usr/share/man/man3/svc_getargs.3
+#usr/share/man/man3/svc_getcaller.3
+#usr/share/man/man3/svc_getreq.3
+#usr/share/man/man3/svc_getreqset.3
+#usr/share/man/man3/svc_register.3
+#usr/share/man/man3/svc_run.3
+#usr/share/man/man3/svc_sendreply.3
+#usr/share/man/man3/svc_unregister.3
+#usr/share/man/man3/svcerr_auth.3
+#usr/share/man/man3/svcerr_decode.3
+#usr/share/man/man3/svcerr_noproc.3
+#usr/share/man/man3/svcerr_noprog.3
+#usr/share/man/man3/svcerr_progvers.3
+#usr/share/man/man3/svcerr_systemerr.3
+#usr/share/man/man3/svcerr_weakauth.3
+#usr/share/man/man3/svcfd_create.3
+#usr/share/man/man3/svcraw_create.3
+#usr/share/man/man3/svctcp_create.3
+#usr/share/man/man3/svcudp_bufcreate.3
+#usr/share/man/man3/svcudp_create.3
+#usr/share/man/man3/swab.3
+#usr/share/man/man3/swapcontext.3
+#usr/share/man/man3/swprintf.3
+#usr/share/man/man3/sysconf.3
+#usr/share/man/man3/syslog.3
+#usr/share/man/man3/system.3
+#usr/share/man/man3/tan.3
+#usr/share/man/man3/tanf.3
+#usr/share/man/man3/tanh.3
+#usr/share/man/man3/tanhf.3
+#usr/share/man/man3/tanhl.3
+#usr/share/man/man3/tanl.3
+#usr/share/man/man3/tcdrain.3
+#usr/share/man/man3/tcflow.3
+#usr/share/man/man3/tcflush.3
+#usr/share/man/man3/tcgetattr.3
+#usr/share/man/man3/tcgetpgrp.3
+#usr/share/man/man3/tcgetsid.3
+#usr/share/man/man3/tcsendbreak.3
+#usr/share/man/man3/tcsetattr.3
+#usr/share/man/man3/tcsetpgrp.3
+#usr/share/man/man3/tdelete.3
+#usr/share/man/man3/tdestroy.3
+#usr/share/man/man3/telldir.3
+#usr/share/man/man3/tempnam.3
+#usr/share/man/man3/termios.3
+#usr/share/man/man3/tfind.3
+#usr/share/man/man3/tgamma.3
+#usr/share/man/man3/tgammaf.3
+#usr/share/man/man3/tgammal.3
+#usr/share/man/man3/timegm.3
+#usr/share/man/man3/timelocal.3
+#usr/share/man/man3/tmpfile.3
+#usr/share/man/man3/tmpnam.3
+#usr/share/man/man3/tmpnam_r.3
+#usr/share/man/man3/toascii.3
+#usr/share/man/man3/tolower.3
+#usr/share/man/man3/toupper.3
+#usr/share/man/man3/towctrans.3
+#usr/share/man/man3/towlower.3
+#usr/share/man/man3/towupper.3
+#usr/share/man/man3/trunc.3
+#usr/share/man/man3/truncf.3
+#usr/share/man/man3/truncl.3
+#usr/share/man/man3/tsearch.3
+#usr/share/man/man3/ttyname.3
+#usr/share/man/man3/ttyname_r.3
+#usr/share/man/man3/ttyslot.3
+#usr/share/man/man3/twalk.3
+#usr/share/man/man3/tzset.3
+#usr/share/man/man3/ualarm.3
+#usr/share/man/man3/ulckpwdf.3
+#usr/share/man/man3/ulimit.3
+#usr/share/man/man3/undocumented.3
+#usr/share/man/man3/ungetc.3
+#usr/share/man/man3/ungetwc.3
+#usr/share/man/man3/unlocked_stdio.3
+#usr/share/man/man3/unlockpt.3
+#usr/share/man/man3/unsetenv.3
+#usr/share/man/man3/updwtmp.3
+#usr/share/man/man3/usleep.3
+#usr/share/man/man3/utmpname.3
+#usr/share/man/man3/va_arg.3
+#usr/share/man/man3/va_copy.3
+#usr/share/man/man3/va_end.3
+#usr/share/man/man3/va_start.3
+#usr/share/man/man3/valloc.3
+#usr/share/man/man3/vasprintf.3
+#usr/share/man/man3/vdprintf.3
+#usr/share/man/man3/verr.3
+#usr/share/man/man3/verrx.3
+#usr/share/man/man3/versionsort.3
+#usr/share/man/man3/vfprintf.3
+#usr/share/man/man3/vfscanf.3
+#usr/share/man/man3/vfwprintf.3
+#usr/share/man/man3/vprintf.3
+#usr/share/man/man3/vscanf.3
+#usr/share/man/man3/vsnprintf.3
+#usr/share/man/man3/vsprintf.3
+#usr/share/man/man3/vsscanf.3
+#usr/share/man/man3/vswprintf.3
+#usr/share/man/man3/vsyslog.3
+#usr/share/man/man3/vwarn.3
+#usr/share/man/man3/vwarnx.3
+#usr/share/man/man3/vwprintf.3
+#usr/share/man/man3/warn.3
+#usr/share/man/man3/warnx.3
+#usr/share/man/man3/wcpcpy.3
+#usr/share/man/man3/wcpncpy.3
+#usr/share/man/man3/wcrtomb.3
+#usr/share/man/man3/wcscasecmp.3
+#usr/share/man/man3/wcscat.3
+#usr/share/man/man3/wcschr.3
+#usr/share/man/man3/wcscmp.3
+#usr/share/man/man3/wcscpy.3
+#usr/share/man/man3/wcscspn.3
+#usr/share/man/man3/wcsdup.3
+#usr/share/man/man3/wcslen.3
+#usr/share/man/man3/wcsncasecmp.3
+#usr/share/man/man3/wcsncat.3
+#usr/share/man/man3/wcsncmp.3
+#usr/share/man/man3/wcsncpy.3
+#usr/share/man/man3/wcsnlen.3
+#usr/share/man/man3/wcsnrtombs.3
+#usr/share/man/man3/wcspbrk.3
+#usr/share/man/man3/wcsrchr.3
+#usr/share/man/man3/wcsrtombs.3
+#usr/share/man/man3/wcsspn.3
+#usr/share/man/man3/wcsstr.3
+#usr/share/man/man3/wcstoimax.3
+#usr/share/man/man3/wcstok.3
+#usr/share/man/man3/wcstombs.3
+#usr/share/man/man3/wcstoumax.3
+#usr/share/man/man3/wcswidth.3
+#usr/share/man/man3/wctob.3
+#usr/share/man/man3/wctomb.3
+#usr/share/man/man3/wctrans.3
+#usr/share/man/man3/wctype.3
+#usr/share/man/man3/wcwidth.3
+#usr/share/man/man3/wmemchr.3
+#usr/share/man/man3/wmemcmp.3
+#usr/share/man/man3/wmemcpy.3
+#usr/share/man/man3/wmemmove.3
+#usr/share/man/man3/wmempcpy.3
+#usr/share/man/man3/wmemset.3
+#usr/share/man/man3/wordexp.3
+#usr/share/man/man3/wordfree.3
+#usr/share/man/man3/wprintf.3
+#usr/share/man/man3/xcrypt.3
+#usr/share/man/man3/xdecrypt.3
+#usr/share/man/man3/xdr.3
+#usr/share/man/man3/xdr_accepted_reply.3
+#usr/share/man/man3/xdr_array.3
+#usr/share/man/man3/xdr_authunix_parms.3
+#usr/share/man/man3/xdr_bool.3
+#usr/share/man/man3/xdr_bytes.3
+#usr/share/man/man3/xdr_callhdr.3
+#usr/share/man/man3/xdr_callmsg.3
+#usr/share/man/man3/xdr_char.3
+#usr/share/man/man3/xdr_destroy.3
+#usr/share/man/man3/xdr_double.3
+#usr/share/man/man3/xdr_enum.3
+#usr/share/man/man3/xdr_float.3
+#usr/share/man/man3/xdr_free.3
+#usr/share/man/man3/xdr_getpos.3
+#usr/share/man/man3/xdr_inline.3
+#usr/share/man/man3/xdr_int.3
+#usr/share/man/man3/xdr_long.3
+#usr/share/man/man3/xdr_opaque.3
+#usr/share/man/man3/xdr_opaque_auth.3
+#usr/share/man/man3/xdr_pmap.3
+#usr/share/man/man3/xdr_pmaplist.3
+#usr/share/man/man3/xdr_pointer.3
+#usr/share/man/man3/xdr_reference.3
+#usr/share/man/man3/xdr_rejected_reply.3
+#usr/share/man/man3/xdr_replymsg.3
+#usr/share/man/man3/xdr_setpos.3
+#usr/share/man/man3/xdr_short.3
+#usr/share/man/man3/xdr_string.3
+#usr/share/man/man3/xdr_u_char.3
+#usr/share/man/man3/xdr_u_int.3
+#usr/share/man/man3/xdr_u_long.3
+#usr/share/man/man3/xdr_u_short.3
+#usr/share/man/man3/xdr_union.3
+#usr/share/man/man3/xdr_vector.3
+#usr/share/man/man3/xdr_void.3
+#usr/share/man/man3/xdr_wrapstring.3
+#usr/share/man/man3/xdrmem_create.3
+#usr/share/man/man3/xdrrec_create.3
+#usr/share/man/man3/xdrrec_endofrecord.3
+#usr/share/man/man3/xdrrec_eof.3
+#usr/share/man/man3/xdrrec_skiprecord.3
+#usr/share/man/man3/xdrstdio_create.3
+#usr/share/man/man3/xencrypt.3
+#usr/share/man/man3/xprt_register.3
+#usr/share/man/man3/xprt_unregister.3
+#usr/share/man/man3/y0.3
+#usr/share/man/man3/y0f.3
+#usr/share/man/man3/y0l.3
+#usr/share/man/man3/y1.3
+#usr/share/man/man3/y1f.3
+#usr/share/man/man3/y1l.3
+#usr/share/man/man3/yn.3
+#usr/share/man/man3/ynf.3
+#usr/share/man/man3/ynl.3
+#usr/share/man/man3p
+#usr/share/man/man3p/FD_CLR.3p
+#usr/share/man/man3p/FD_ISSET.3p
+#usr/share/man/man3p/FD_SET.3p
+#usr/share/man/man3p/FD_ZERO.3p
+#usr/share/man/man3p/_Exit.3p
+#usr/share/man/man3p/_exit.3p
+#usr/share/man/man3p/_longjmp.3p
+#usr/share/man/man3p/_setjmp.3p
+#usr/share/man/man3p/_tolower.3p
+#usr/share/man/man3p/_toupper.3p
+#usr/share/man/man3p/a64l.3p
+#usr/share/man/man3p/abort.3p
+#usr/share/man/man3p/abs.3p
+#usr/share/man/man3p/accept.3p
+#usr/share/man/man3p/access.3p
+#usr/share/man/man3p/acos.3p
+#usr/share/man/man3p/acosf.3p
+#usr/share/man/man3p/acosh.3p
+#usr/share/man/man3p/acoshf.3p
+#usr/share/man/man3p/acoshl.3p
+#usr/share/man/man3p/acosl.3p
+#usr/share/man/man3p/aio_cancel.3p
+#usr/share/man/man3p/aio_error.3p
+#usr/share/man/man3p/aio_fsync.3p
+#usr/share/man/man3p/aio_read.3p
+#usr/share/man/man3p/aio_return.3p
+#usr/share/man/man3p/aio_suspend.3p
+#usr/share/man/man3p/aio_write.3p
+#usr/share/man/man3p/alarm.3p
+#usr/share/man/man3p/asctime.3p
+#usr/share/man/man3p/asctime_r.3p
+#usr/share/man/man3p/asin.3p
+#usr/share/man/man3p/asinf.3p
+#usr/share/man/man3p/asinh.3p
+#usr/share/man/man3p/asinhf.3p
+#usr/share/man/man3p/asinhl.3p
+#usr/share/man/man3p/asinl.3p
+#usr/share/man/man3p/assert.3p
+#usr/share/man/man3p/atan.3p
+#usr/share/man/man3p/atan2.3p
+#usr/share/man/man3p/atan2f.3p
+#usr/share/man/man3p/atan2l.3p
+#usr/share/man/man3p/atanf.3p
+#usr/share/man/man3p/atanh.3p
+#usr/share/man/man3p/atanhf.3p
+#usr/share/man/man3p/atanhl.3p
+#usr/share/man/man3p/atanl.3p
+#usr/share/man/man3p/atexit.3p
+#usr/share/man/man3p/atof.3p
+#usr/share/man/man3p/atoi.3p
+#usr/share/man/man3p/atol.3p
+#usr/share/man/man3p/atoll.3p
+#usr/share/man/man3p/basename.3p
+#usr/share/man/man3p/bcmp.3p
+#usr/share/man/man3p/bcopy.3p
+#usr/share/man/man3p/bind.3p
+#usr/share/man/man3p/bsd_signal.3p
+#usr/share/man/man3p/bsearch.3p
+#usr/share/man/man3p/btowc.3p
+#usr/share/man/man3p/bzero.3p
+#usr/share/man/man3p/cabs.3p
+#usr/share/man/man3p/cabsf.3p
+#usr/share/man/man3p/cabsl.3p
+#usr/share/man/man3p/cacos.3p
+#usr/share/man/man3p/cacosf.3p
+#usr/share/man/man3p/cacosh.3p
+#usr/share/man/man3p/cacoshf.3p
+#usr/share/man/man3p/cacoshl.3p
+#usr/share/man/man3p/cacosl.3p
+#usr/share/man/man3p/calloc.3p
+#usr/share/man/man3p/carg.3p
+#usr/share/man/man3p/cargf.3p
+#usr/share/man/man3p/cargl.3p
+#usr/share/man/man3p/casin.3p
+#usr/share/man/man3p/casinf.3p
+#usr/share/man/man3p/casinh.3p
+#usr/share/man/man3p/casinhf.3p
+#usr/share/man/man3p/casinhl.3p
+#usr/share/man/man3p/casinl.3p
+#usr/share/man/man3p/catan.3p
+#usr/share/man/man3p/catanf.3p
+#usr/share/man/man3p/catanh.3p
+#usr/share/man/man3p/catanhf.3p
+#usr/share/man/man3p/catanhl.3p
+#usr/share/man/man3p/catanl.3p
+#usr/share/man/man3p/catclose.3p
+#usr/share/man/man3p/catgets.3p
+#usr/share/man/man3p/catopen.3p
+#usr/share/man/man3p/cbrt.3p
+#usr/share/man/man3p/cbrtf.3p
+#usr/share/man/man3p/cbrtl.3p
+#usr/share/man/man3p/ccos.3p
+#usr/share/man/man3p/ccosf.3p
+#usr/share/man/man3p/ccosh.3p
+#usr/share/man/man3p/ccoshf.3p
+#usr/share/man/man3p/ccoshl.3p
+#usr/share/man/man3p/ccosl.3p
+#usr/share/man/man3p/ceil.3p
+#usr/share/man/man3p/ceilf.3p
+#usr/share/man/man3p/ceill.3p
+#usr/share/man/man3p/cexp.3p
+#usr/share/man/man3p/cexpf.3p
+#usr/share/man/man3p/cexpl.3p
+#usr/share/man/man3p/cfgetispeed.3p
+#usr/share/man/man3p/cfgetospeed.3p
+#usr/share/man/man3p/cfsetispeed.3p
+#usr/share/man/man3p/cfsetospeed.3p
+#usr/share/man/man3p/chdir.3p
+#usr/share/man/man3p/chmod.3p
+#usr/share/man/man3p/chown.3p
+#usr/share/man/man3p/cimag.3p
+#usr/share/man/man3p/cimagf.3p
+#usr/share/man/man3p/cimagl.3p
+#usr/share/man/man3p/clearerr.3p
+#usr/share/man/man3p/clock.3p
+#usr/share/man/man3p/clock_getcpuclockid.3p
+#usr/share/man/man3p/clock_getres.3p
+#usr/share/man/man3p/clock_gettime.3p
+#usr/share/man/man3p/clock_nanosleep.3p
+#usr/share/man/man3p/clock_settime.3p
+#usr/share/man/man3p/clog.3p
+#usr/share/man/man3p/clogf.3p
+#usr/share/man/man3p/clogl.3p
+#usr/share/man/man3p/close.3p
+#usr/share/man/man3p/closedir.3p
+#usr/share/man/man3p/closelog.3p
+#usr/share/man/man3p/confstr.3p
+#usr/share/man/man3p/conj.3p
+#usr/share/man/man3p/conjf.3p
+#usr/share/man/man3p/conjl.3p
+#usr/share/man/man3p/connect.3p
+#usr/share/man/man3p/copysign.3p
+#usr/share/man/man3p/copysignf.3p
+#usr/share/man/man3p/copysignl.3p
+#usr/share/man/man3p/cos.3p
+#usr/share/man/man3p/cosf.3p
+#usr/share/man/man3p/cosh.3p
+#usr/share/man/man3p/coshf.3p
+#usr/share/man/man3p/coshl.3p
+#usr/share/man/man3p/cosl.3p
+#usr/share/man/man3p/cpow.3p
+#usr/share/man/man3p/cpowf.3p
+#usr/share/man/man3p/cpowl.3p
+#usr/share/man/man3p/cproj.3p
+#usr/share/man/man3p/cprojf.3p
+#usr/share/man/man3p/cprojl.3p
+#usr/share/man/man3p/creal.3p
+#usr/share/man/man3p/crealf.3p
+#usr/share/man/man3p/creall.3p
+#usr/share/man/man3p/creat.3p
+#usr/share/man/man3p/crypt.3p
+#usr/share/man/man3p/csin.3p
+#usr/share/man/man3p/csinf.3p
+#usr/share/man/man3p/csinh.3p
+#usr/share/man/man3p/csinhf.3p
+#usr/share/man/man3p/csinhl.3p
+#usr/share/man/man3p/csinl.3p
+#usr/share/man/man3p/csqrt.3p
+#usr/share/man/man3p/csqrtf.3p
+#usr/share/man/man3p/csqrtl.3p
+#usr/share/man/man3p/ctan.3p
+#usr/share/man/man3p/ctanf.3p
+#usr/share/man/man3p/ctanh.3p
+#usr/share/man/man3p/ctanhf.3p
+#usr/share/man/man3p/ctanhl.3p
+#usr/share/man/man3p/ctanl.3p
+#usr/share/man/man3p/ctermid.3p
+#usr/share/man/man3p/ctime.3p
+#usr/share/man/man3p/ctime_r.3p
+#usr/share/man/man3p/daylight.3p
+#usr/share/man/man3p/dbm_clearerr.3p
+#usr/share/man/man3p/dbm_close.3p
+#usr/share/man/man3p/dbm_delete.3p
+#usr/share/man/man3p/dbm_error.3p
+#usr/share/man/man3p/dbm_fetch.3p
+#usr/share/man/man3p/dbm_firstkey.3p
+#usr/share/man/man3p/dbm_nextkey.3p
+#usr/share/man/man3p/dbm_open.3p
+#usr/share/man/man3p/dbm_store.3p
+#usr/share/man/man3p/difftime.3p
+#usr/share/man/man3p/dirname.3p
+#usr/share/man/man3p/div.3p
+#usr/share/man/man3p/dlclose.3p
+#usr/share/man/man3p/dlerror.3p
+#usr/share/man/man3p/dlopen.3p
+#usr/share/man/man3p/dlsym.3p
+#usr/share/man/man3p/drand48.3p
+#usr/share/man/man3p/dup.3p
+#usr/share/man/man3p/dup2.3p
+#usr/share/man/man3p/ecvt.3p
+#usr/share/man/man3p/encrypt.3p
+#usr/share/man/man3p/endgrent.3p
+#usr/share/man/man3p/endhostent.3p
+#usr/share/man/man3p/endnetent.3p
+#usr/share/man/man3p/endprotoent.3p
+#usr/share/man/man3p/endpwent.3p
+#usr/share/man/man3p/endservent.3p
+#usr/share/man/man3p/endutxent.3p
+#usr/share/man/man3p/environ.3p
+#usr/share/man/man3p/erand48.3p
+#usr/share/man/man3p/erf.3p
+#usr/share/man/man3p/erfc.3p
+#usr/share/man/man3p/erfcf.3p
+#usr/share/man/man3p/erfcl.3p
+#usr/share/man/man3p/erff.3p
+#usr/share/man/man3p/erfl.3p
+#usr/share/man/man3p/errno.3p
+#usr/share/man/man3p/exec.3p
+#usr/share/man/man3p/execl.3p
+#usr/share/man/man3p/execle.3p
+#usr/share/man/man3p/execlp.3p
+#usr/share/man/man3p/execv.3p
+#usr/share/man/man3p/execve.3p
+#usr/share/man/man3p/execvp.3p
+#usr/share/man/man3p/exit.3p
+#usr/share/man/man3p/exp.3p
+#usr/share/man/man3p/exp2.3p
+#usr/share/man/man3p/exp2f.3p
+#usr/share/man/man3p/exp2l.3p
+#usr/share/man/man3p/expf.3p
+#usr/share/man/man3p/expl.3p
+#usr/share/man/man3p/expm1.3p
+#usr/share/man/man3p/expm1f.3p
+#usr/share/man/man3p/expm1l.3p
+#usr/share/man/man3p/fabs.3p
+#usr/share/man/man3p/fabsf.3p
+#usr/share/man/man3p/fabsl.3p
+#usr/share/man/man3p/fattach.3p
+#usr/share/man/man3p/fchdir.3p
+#usr/share/man/man3p/fchmod.3p
+#usr/share/man/man3p/fchown.3p
+#usr/share/man/man3p/fclose.3p
+#usr/share/man/man3p/fcntl.3p
+#usr/share/man/man3p/fcvt.3p
+#usr/share/man/man3p/fdatasync.3p
+#usr/share/man/man3p/fdetach.3p
+#usr/share/man/man3p/fdim.3p
+#usr/share/man/man3p/fdimf.3p
+#usr/share/man/man3p/fdiml.3p
+#usr/share/man/man3p/fdopen.3p
+#usr/share/man/man3p/feclearexcept.3p
+#usr/share/man/man3p/fegetenv.3p
+#usr/share/man/man3p/fegetexceptflag.3p
+#usr/share/man/man3p/fegetround.3p
+#usr/share/man/man3p/feholdexcept.3p
+#usr/share/man/man3p/feof.3p
+#usr/share/man/man3p/feraiseexcept.3p
+#usr/share/man/man3p/ferror.3p
+#usr/share/man/man3p/fesetenv.3p
+#usr/share/man/man3p/fesetexceptflag.3p
+#usr/share/man/man3p/fesetround.3p
+#usr/share/man/man3p/fetestexcept.3p
+#usr/share/man/man3p/feupdateenv.3p
+#usr/share/man/man3p/fflush.3p
+#usr/share/man/man3p/ffs.3p
+#usr/share/man/man3p/fgetc.3p
+#usr/share/man/man3p/fgetpos.3p
+#usr/share/man/man3p/fgets.3p
+#usr/share/man/man3p/fgetwc.3p
+#usr/share/man/man3p/fgetws.3p
+#usr/share/man/man3p/fileno.3p
+#usr/share/man/man3p/flockfile.3p
+#usr/share/man/man3p/floor.3p
+#usr/share/man/man3p/floorf.3p
+#usr/share/man/man3p/floorl.3p
+#usr/share/man/man3p/fma.3p
+#usr/share/man/man3p/fmaf.3p
+#usr/share/man/man3p/fmal.3p
+#usr/share/man/man3p/fmax.3p
+#usr/share/man/man3p/fmaxf.3p
+#usr/share/man/man3p/fmaxl.3p
+#usr/share/man/man3p/fmin.3p
+#usr/share/man/man3p/fminf.3p
+#usr/share/man/man3p/fminl.3p
+#usr/share/man/man3p/fmod.3p
+#usr/share/man/man3p/fmodf.3p
+#usr/share/man/man3p/fmodl.3p
+#usr/share/man/man3p/fmtmsg.3p
+#usr/share/man/man3p/fnmatch.3p
+#usr/share/man/man3p/fopen.3p
+#usr/share/man/man3p/fork.3p
+#usr/share/man/man3p/fpathconf.3p
+#usr/share/man/man3p/fpclassify.3p
+#usr/share/man/man3p/fprintf.3p
+#usr/share/man/man3p/fputc.3p
+#usr/share/man/man3p/fputs.3p
+#usr/share/man/man3p/fputwc.3p
+#usr/share/man/man3p/fputws.3p
+#usr/share/man/man3p/fread.3p
+#usr/share/man/man3p/free.3p
+#usr/share/man/man3p/freeaddrinfo.3p
+#usr/share/man/man3p/freopen.3p
+#usr/share/man/man3p/frexp.3p
+#usr/share/man/man3p/frexpf.3p
+#usr/share/man/man3p/frexpl.3p
+#usr/share/man/man3p/fscanf.3p
+#usr/share/man/man3p/fseek.3p
+#usr/share/man/man3p/fseeko.3p
+#usr/share/man/man3p/fsetpos.3p
+#usr/share/man/man3p/fstat.3p
+#usr/share/man/man3p/fstatvfs.3p
+#usr/share/man/man3p/fsync.3p
+#usr/share/man/man3p/ftell.3p
+#usr/share/man/man3p/ftello.3p
+#usr/share/man/man3p/ftime.3p
+#usr/share/man/man3p/ftok.3p
+#usr/share/man/man3p/ftruncate.3p
+#usr/share/man/man3p/ftrylockfile.3p
+#usr/share/man/man3p/ftw.3p
+#usr/share/man/man3p/funlockfile.3p
+#usr/share/man/man3p/fwide.3p
+#usr/share/man/man3p/fwprintf.3p
+#usr/share/man/man3p/fwrite.3p
+#usr/share/man/man3p/fwscanf.3p
+#usr/share/man/man3p/gai_strerror.3p
+#usr/share/man/man3p/gcvt.3p
+#usr/share/man/man3p/getaddrinfo.3p
+#usr/share/man/man3p/getc.3p
+#usr/share/man/man3p/getc_unlocked.3p
+#usr/share/man/man3p/getchar.3p
+#usr/share/man/man3p/getchar_unlocked.3p
+#usr/share/man/man3p/getcontext.3p
+#usr/share/man/man3p/getcwd.3p
+#usr/share/man/man3p/getdate.3p
+#usr/share/man/man3p/getdate_err.3p
+#usr/share/man/man3p/getegid.3p
+#usr/share/man/man3p/getenv.3p
+#usr/share/man/man3p/geteuid.3p
+#usr/share/man/man3p/getgid.3p
+#usr/share/man/man3p/getgrent.3p
+#usr/share/man/man3p/getgrgid.3p
+#usr/share/man/man3p/getgrgid_r.3p
+#usr/share/man/man3p/getgrnam.3p
+#usr/share/man/man3p/getgrnam_r.3p
+#usr/share/man/man3p/getgroups.3p
+#usr/share/man/man3p/gethostbyaddr.3p
+#usr/share/man/man3p/gethostbyname.3p
+#usr/share/man/man3p/gethostent.3p
+#usr/share/man/man3p/gethostid.3p
+#usr/share/man/man3p/gethostname.3p
+#usr/share/man/man3p/getitimer.3p
+#usr/share/man/man3p/getlogin.3p
+#usr/share/man/man3p/getlogin_r.3p
+#usr/share/man/man3p/getmsg.3p
+#usr/share/man/man3p/getnameinfo.3p
+#usr/share/man/man3p/getnetbyaddr.3p
+#usr/share/man/man3p/getnetbyname.3p
+#usr/share/man/man3p/getnetent.3p
+#usr/share/man/man3p/getopt.3p
+#usr/share/man/man3p/getpeername.3p
+#usr/share/man/man3p/getpgid.3p
+#usr/share/man/man3p/getpgrp.3p
+#usr/share/man/man3p/getpid.3p
+#usr/share/man/man3p/getpmsg.3p
+#usr/share/man/man3p/getppid.3p
+#usr/share/man/man3p/getpriority.3p
+#usr/share/man/man3p/getprotobyname.3p
+#usr/share/man/man3p/getprotobynumber.3p
+#usr/share/man/man3p/getprotoent.3p
+#usr/share/man/man3p/getpwent.3p
+#usr/share/man/man3p/getpwnam.3p
+#usr/share/man/man3p/getpwnam_r.3p
+#usr/share/man/man3p/getpwuid.3p
+#usr/share/man/man3p/getpwuid_r.3p
+#usr/share/man/man3p/getrlimit.3p
+#usr/share/man/man3p/getrusage.3p
+#usr/share/man/man3p/gets.3p
+#usr/share/man/man3p/getservbyname.3p
+#usr/share/man/man3p/getservbyport.3p
+#usr/share/man/man3p/getservent.3p
+#usr/share/man/man3p/getsid.3p
+#usr/share/man/man3p/getsockname.3p
+#usr/share/man/man3p/getsockopt.3p
+#usr/share/man/man3p/getsubopt.3p
+#usr/share/man/man3p/gettimeofday.3p
+#usr/share/man/man3p/getuid.3p
+#usr/share/man/man3p/getutxent.3p
+#usr/share/man/man3p/getutxid.3p
+#usr/share/man/man3p/getutxline.3p
+#usr/share/man/man3p/getwc.3p
+#usr/share/man/man3p/getwchar.3p
+#usr/share/man/man3p/getwd.3p
+#usr/share/man/man3p/glob.3p
+#usr/share/man/man3p/globfree.3p
+#usr/share/man/man3p/gmtime.3p
+#usr/share/man/man3p/gmtime_r.3p
+#usr/share/man/man3p/grantpt.3p
+#usr/share/man/man3p/h_errno.3p
+#usr/share/man/man3p/hcreate.3p
+#usr/share/man/man3p/hdestroy.3p
+#usr/share/man/man3p/hsearch.3p
+#usr/share/man/man3p/htonl.3p
+#usr/share/man/man3p/htons.3p
+#usr/share/man/man3p/hypot.3p
+#usr/share/man/man3p/hypotf.3p
+#usr/share/man/man3p/hypotl.3p
+#usr/share/man/man3p/iconv.3p
+#usr/share/man/man3p/iconv_close.3p
+#usr/share/man/man3p/iconv_open.3p
+#usr/share/man/man3p/if_freenameindex.3p
+#usr/share/man/man3p/if_indextoname.3p
+#usr/share/man/man3p/if_nameindex.3p
+#usr/share/man/man3p/if_nametoindex.3p
+#usr/share/man/man3p/ilogb.3p
+#usr/share/man/man3p/ilogbf.3p
+#usr/share/man/man3p/ilogbl.3p
+#usr/share/man/man3p/imaxabs.3p
+#usr/share/man/man3p/imaxdiv.3p
+#usr/share/man/man3p/index.3p
+#usr/share/man/man3p/inet_addr.3p
+#usr/share/man/man3p/inet_ntoa.3p
+#usr/share/man/man3p/inet_ntop.3p
+#usr/share/man/man3p/inet_pton.3p
+#usr/share/man/man3p/initstate.3p
+#usr/share/man/man3p/insque.3p
+#usr/share/man/man3p/ioctl.3p
+#usr/share/man/man3p/isalnum.3p
+#usr/share/man/man3p/isalpha.3p
+#usr/share/man/man3p/isascii.3p
+#usr/share/man/man3p/isastream.3p
+#usr/share/man/man3p/isatty.3p
+#usr/share/man/man3p/isblank.3p
+#usr/share/man/man3p/iscntrl.3p
+#usr/share/man/man3p/isdigit.3p
+#usr/share/man/man3p/isfinite.3p
+#usr/share/man/man3p/isgraph.3p
+#usr/share/man/man3p/isgreater.3p
+#usr/share/man/man3p/isgreaterequal.3p
+#usr/share/man/man3p/isinf.3p
+#usr/share/man/man3p/isless.3p
+#usr/share/man/man3p/islessequal.3p
+#usr/share/man/man3p/islessgreater.3p
+#usr/share/man/man3p/islower.3p
+#usr/share/man/man3p/isnan.3p
+#usr/share/man/man3p/isnormal.3p
+#usr/share/man/man3p/isprint.3p
+#usr/share/man/man3p/ispunct.3p
+#usr/share/man/man3p/isspace.3p
+#usr/share/man/man3p/isunordered.3p
+#usr/share/man/man3p/isupper.3p
+#usr/share/man/man3p/iswalnum.3p
+#usr/share/man/man3p/iswalpha.3p
+#usr/share/man/man3p/iswblank.3p
+#usr/share/man/man3p/iswcntrl.3p
+#usr/share/man/man3p/iswctype.3p
+#usr/share/man/man3p/iswdigit.3p
+#usr/share/man/man3p/iswgraph.3p
+#usr/share/man/man3p/iswlower.3p
+#usr/share/man/man3p/iswprint.3p
+#usr/share/man/man3p/iswpunct.3p
+#usr/share/man/man3p/iswspace.3p
+#usr/share/man/man3p/iswupper.3p
+#usr/share/man/man3p/iswxdigit.3p
+#usr/share/man/man3p/isxdigit.3p
+#usr/share/man/man3p/j0.3p
+#usr/share/man/man3p/j1.3p
+#usr/share/man/man3p/jn.3p
+#usr/share/man/man3p/jrand48.3p
+#usr/share/man/man3p/kill.3p
+#usr/share/man/man3p/killpg.3p
+#usr/share/man/man3p/l64a.3p
+#usr/share/man/man3p/labs.3p
+#usr/share/man/man3p/lchown.3p
+#usr/share/man/man3p/lcong48.3p
+#usr/share/man/man3p/ldexp.3p
+#usr/share/man/man3p/ldexpf.3p
+#usr/share/man/man3p/ldexpl.3p
+#usr/share/man/man3p/ldiv.3p
+#usr/share/man/man3p/lfind.3p
+#usr/share/man/man3p/lgamma.3p
+#usr/share/man/man3p/lgammaf.3p
+#usr/share/man/man3p/lgammal.3p
+#usr/share/man/man3p/link.3p
+#usr/share/man/man3p/lio_listio.3p
+#usr/share/man/man3p/listen.3p
+#usr/share/man/man3p/llabs.3p
+#usr/share/man/man3p/lldiv.3p
+#usr/share/man/man3p/llrint.3p
+#usr/share/man/man3p/llrintf.3p
+#usr/share/man/man3p/llrintl.3p
+#usr/share/man/man3p/llround.3p
+#usr/share/man/man3p/llroundf.3p
+#usr/share/man/man3p/llroundl.3p
+#usr/share/man/man3p/localeconv.3p
+#usr/share/man/man3p/localtime.3p
+#usr/share/man/man3p/localtime_r.3p
+#usr/share/man/man3p/lockf.3p
+#usr/share/man/man3p/log.3p
+#usr/share/man/man3p/log10.3p
+#usr/share/man/man3p/log10f.3p
+#usr/share/man/man3p/log10l.3p
+#usr/share/man/man3p/log1p.3p
+#usr/share/man/man3p/log1pf.3p
+#usr/share/man/man3p/log1pl.3p
+#usr/share/man/man3p/log2.3p
+#usr/share/man/man3p/log2f.3p
+#usr/share/man/man3p/log2l.3p
+#usr/share/man/man3p/logb.3p
+#usr/share/man/man3p/logbf.3p
+#usr/share/man/man3p/logbl.3p
+#usr/share/man/man3p/logf.3p
+#usr/share/man/man3p/logl.3p
+#usr/share/man/man3p/longjmp.3p
+#usr/share/man/man3p/lrand48.3p
+#usr/share/man/man3p/lrint.3p
+#usr/share/man/man3p/lrintf.3p
+#usr/share/man/man3p/lrintl.3p
+#usr/share/man/man3p/lround.3p
+#usr/share/man/man3p/lroundf.3p
+#usr/share/man/man3p/lroundl.3p
+#usr/share/man/man3p/lsearch.3p
+#usr/share/man/man3p/lseek.3p
+#usr/share/man/man3p/lstat.3p
+#usr/share/man/man3p/makecontext.3p
+#usr/share/man/man3p/malloc.3p
+#usr/share/man/man3p/mblen.3p
+#usr/share/man/man3p/mbrlen.3p
+#usr/share/man/man3p/mbrtowc.3p
+#usr/share/man/man3p/mbsinit.3p
+#usr/share/man/man3p/mbsrtowcs.3p
+#usr/share/man/man3p/mbstowcs.3p
+#usr/share/man/man3p/mbtowc.3p
+#usr/share/man/man3p/memccpy.3p
+#usr/share/man/man3p/memchr.3p
+#usr/share/man/man3p/memcmp.3p
+#usr/share/man/man3p/memcpy.3p
+#usr/share/man/man3p/memmove.3p
+#usr/share/man/man3p/memset.3p
+#usr/share/man/man3p/mkdir.3p
+#usr/share/man/man3p/mkfifo.3p
+#usr/share/man/man3p/mknod.3p
+#usr/share/man/man3p/mkstemp.3p
+#usr/share/man/man3p/mktemp.3p
+#usr/share/man/man3p/mktime.3p
+#usr/share/man/man3p/mlock.3p
+#usr/share/man/man3p/mlockall.3p
+#usr/share/man/man3p/mmap.3p
+#usr/share/man/man3p/modf.3p
+#usr/share/man/man3p/modff.3p
+#usr/share/man/man3p/modfl.3p
+#usr/share/man/man3p/mprotect.3p
+#usr/share/man/man3p/mq_close.3p
+#usr/share/man/man3p/mq_getattr.3p
+#usr/share/man/man3p/mq_notify.3p
+#usr/share/man/man3p/mq_open.3p
+#usr/share/man/man3p/mq_receive.3p
+#usr/share/man/man3p/mq_send.3p
+#usr/share/man/man3p/mq_setattr.3p
+#usr/share/man/man3p/mq_timedreceive.3p
+#usr/share/man/man3p/mq_timedsend.3p
+#usr/share/man/man3p/mq_unlink.3p
+#usr/share/man/man3p/mrand48.3p
+#usr/share/man/man3p/msgctl.3p
+#usr/share/man/man3p/msgget.3p
+#usr/share/man/man3p/msgrcv.3p
+#usr/share/man/man3p/msgsnd.3p
+#usr/share/man/man3p/msync.3p
+#usr/share/man/man3p/munlock.3p
+#usr/share/man/man3p/munlockall.3p
+#usr/share/man/man3p/munmap.3p
+#usr/share/man/man3p/nan.3p
+#usr/share/man/man3p/nanf.3p
+#usr/share/man/man3p/nanl.3p
+#usr/share/man/man3p/nanosleep.3p
+#usr/share/man/man3p/nearbyint.3p
+#usr/share/man/man3p/nearbyintf.3p
+#usr/share/man/man3p/nearbyintl.3p
+#usr/share/man/man3p/nextafter.3p
+#usr/share/man/man3p/nextafterf.3p
+#usr/share/man/man3p/nextafterl.3p
+#usr/share/man/man3p/nexttoward.3p
+#usr/share/man/man3p/nexttowardf.3p
+#usr/share/man/man3p/nexttowardl.3p
+#usr/share/man/man3p/nftw.3p
+#usr/share/man/man3p/nice.3p
+#usr/share/man/man3p/nl_langinfo.3p
+#usr/share/man/man3p/nrand48.3p
+#usr/share/man/man3p/ntohl.3p
+#usr/share/man/man3p/ntohs.3p
+#usr/share/man/man3p/open.3p
+#usr/share/man/man3p/opendir.3p
+#usr/share/man/man3p/openlog.3p
+#usr/share/man/man3p/optarg.3p
+#usr/share/man/man3p/opterr.3p
+#usr/share/man/man3p/optind.3p
+#usr/share/man/man3p/optopt.3p
+#usr/share/man/man3p/pathconf.3p
+#usr/share/man/man3p/pause.3p
+#usr/share/man/man3p/pclose.3p
+#usr/share/man/man3p/perror.3p
+#usr/share/man/man3p/pipe.3p
+#usr/share/man/man3p/poll.3p
+#usr/share/man/man3p/popen.3p
+#usr/share/man/man3p/posix_fadvise.3p
+#usr/share/man/man3p/posix_fallocate.3p
+#usr/share/man/man3p/posix_madvise.3p
+#usr/share/man/man3p/posix_mem_offset.3p
+#usr/share/man/man3p/posix_memalign.3p
+#usr/share/man/man3p/posix_openpt.3p
+#usr/share/man/man3p/posix_spawn.3p
+#usr/share/man/man3p/posix_spawn_file_actions_addclose.3p
+#usr/share/man/man3p/posix_spawn_file_actions_adddup2.3p
+#usr/share/man/man3p/posix_spawn_file_actions_addopen.3p
+#usr/share/man/man3p/posix_spawn_file_actions_destroy.3p
+#usr/share/man/man3p/posix_spawn_file_actions_init.3p
+#usr/share/man/man3p/posix_spawnattr_destroy.3p
+#usr/share/man/man3p/posix_spawnattr_getflags.3p
+#usr/share/man/man3p/posix_spawnattr_getpgroup.3p
+#usr/share/man/man3p/posix_spawnattr_getschedparam.3p
+#usr/share/man/man3p/posix_spawnattr_getschedpolicy.3p
+#usr/share/man/man3p/posix_spawnattr_getsigdefault.3p
+#usr/share/man/man3p/posix_spawnattr_getsigmask.3p
+#usr/share/man/man3p/posix_spawnattr_init.3p
+#usr/share/man/man3p/posix_spawnattr_setflags.3p
+#usr/share/man/man3p/posix_spawnattr_setpgroup.3p
+#usr/share/man/man3p/posix_spawnattr_setschedparam.3p
+#usr/share/man/man3p/posix_spawnattr_setschedpolicy.3p
+#usr/share/man/man3p/posix_spawnattr_setsigdefault.3p
+#usr/share/man/man3p/posix_spawnattr_setsigmask.3p
+#usr/share/man/man3p/posix_spawnp.3p
+#usr/share/man/man3p/posix_trace_attr_destroy.3p
+#usr/share/man/man3p/posix_trace_attr_getclockres.3p
+#usr/share/man/man3p/posix_trace_attr_getcreatetime.3p
+#usr/share/man/man3p/posix_trace_attr_getgenversion.3p
+#usr/share/man/man3p/posix_trace_attr_getinherited.3p
+#usr/share/man/man3p/posix_trace_attr_getlogfullpolicy.3p
+#usr/share/man/man3p/posix_trace_attr_getlogsize.3p
+#usr/share/man/man3p/posix_trace_attr_getmaxdatasize.3p
+#usr/share/man/man3p/posix_trace_attr_getmaxsystemeventsize.3p
+#usr/share/man/man3p/posix_trace_attr_getmaxusereventsize.3p
+#usr/share/man/man3p/posix_trace_attr_getname.3p
+#usr/share/man/man3p/posix_trace_attr_getstreamfullpolicy.3p
+#usr/share/man/man3p/posix_trace_attr_getstreamsize.3p
+#usr/share/man/man3p/posix_trace_attr_init.3p
+#usr/share/man/man3p/posix_trace_attr_setinherited.3p
+#usr/share/man/man3p/posix_trace_attr_setlogfullpolicy.3p
+#usr/share/man/man3p/posix_trace_attr_setlogsize.3p
+#usr/share/man/man3p/posix_trace_attr_setmaxdatasize.3p
+#usr/share/man/man3p/posix_trace_attr_setname.3p
+#usr/share/man/man3p/posix_trace_attr_setstreamfullpolicy.3p
+#usr/share/man/man3p/posix_trace_attr_setstreamsize.3p
+#usr/share/man/man3p/posix_trace_clear.3p
+#usr/share/man/man3p/posix_trace_close.3p
+#usr/share/man/man3p/posix_trace_create.3p
+#usr/share/man/man3p/posix_trace_create_withlog.3p
+#usr/share/man/man3p/posix_trace_event.3p
+#usr/share/man/man3p/posix_trace_eventid_equal.3p
+#usr/share/man/man3p/posix_trace_eventid_get_name.3p
+#usr/share/man/man3p/posix_trace_eventid_open.3p
+#usr/share/man/man3p/posix_trace_eventset_add.3p
+#usr/share/man/man3p/posix_trace_eventset_del.3p
+#usr/share/man/man3p/posix_trace_eventset_empty.3p
+#usr/share/man/man3p/posix_trace_eventset_fill.3p
+#usr/share/man/man3p/posix_trace_eventset_ismember.3p
+#usr/share/man/man3p/posix_trace_eventtypelist_getnext_id.3p
+#usr/share/man/man3p/posix_trace_eventtypelist_rewind.3p
+#usr/share/man/man3p/posix_trace_flush.3p
+#usr/share/man/man3p/posix_trace_get_attr.3p
+#usr/share/man/man3p/posix_trace_get_filter.3p
+#usr/share/man/man3p/posix_trace_get_status.3p
+#usr/share/man/man3p/posix_trace_getnext_event.3p
+#usr/share/man/man3p/posix_trace_open.3p
+#usr/share/man/man3p/posix_trace_rewind.3p
+#usr/share/man/man3p/posix_trace_set_filter.3p
+#usr/share/man/man3p/posix_trace_shutdown.3p
+#usr/share/man/man3p/posix_trace_start.3p
+#usr/share/man/man3p/posix_trace_stop.3p
+#usr/share/man/man3p/posix_trace_timedgetnext_event.3p
+#usr/share/man/man3p/posix_trace_trid_eventid_open.3p
+#usr/share/man/man3p/posix_trace_trygetnext_event.3p
+#usr/share/man/man3p/posix_typed_mem_get_info.3p
+#usr/share/man/man3p/posix_typed_mem_open.3p
+#usr/share/man/man3p/pow.3p
+#usr/share/man/man3p/powf.3p
+#usr/share/man/man3p/powl.3p
+#usr/share/man/man3p/pread.3p
+#usr/share/man/man3p/printf.3p
+#usr/share/man/man3p/pselect.3p
+#usr/share/man/man3p/pthread_atfork.3p
+#usr/share/man/man3p/pthread_attr_destroy.3p
+#usr/share/man/man3p/pthread_attr_getdetachstate.3p
+#usr/share/man/man3p/pthread_attr_getguardsize.3p
+#usr/share/man/man3p/pthread_attr_getinheritsched.3p
+#usr/share/man/man3p/pthread_attr_getschedparam.3p
+#usr/share/man/man3p/pthread_attr_getschedpolicy.3p
+#usr/share/man/man3p/pthread_attr_getscope.3p
+#usr/share/man/man3p/pthread_attr_getstack.3p
+#usr/share/man/man3p/pthread_attr_getstackaddr.3p
+#usr/share/man/man3p/pthread_attr_getstacksize.3p
+#usr/share/man/man3p/pthread_attr_init.3p
+#usr/share/man/man3p/pthread_attr_setdetachstate.3p
+#usr/share/man/man3p/pthread_attr_setguardsize.3p
+#usr/share/man/man3p/pthread_attr_setinheritsched.3p
+#usr/share/man/man3p/pthread_attr_setschedparam.3p
+#usr/share/man/man3p/pthread_attr_setschedpolicy.3p
+#usr/share/man/man3p/pthread_attr_setscope.3p
+#usr/share/man/man3p/pthread_attr_setstack.3p
+#usr/share/man/man3p/pthread_attr_setstackaddr.3p
+#usr/share/man/man3p/pthread_attr_setstacksize.3p
+#usr/share/man/man3p/pthread_barrier_destroy.3p
+#usr/share/man/man3p/pthread_barrier_init.3p
+#usr/share/man/man3p/pthread_barrier_wait.3p
+#usr/share/man/man3p/pthread_barrierattr_destroy.3p
+#usr/share/man/man3p/pthread_barrierattr_getpshared.3p
+#usr/share/man/man3p/pthread_barrierattr_init.3p
+#usr/share/man/man3p/pthread_barrierattr_setpshared.3p
+#usr/share/man/man3p/pthread_cancel.3p
+#usr/share/man/man3p/pthread_cleanup_pop.3p
+#usr/share/man/man3p/pthread_cleanup_push.3p
+#usr/share/man/man3p/pthread_cond_broadcast.3p
+#usr/share/man/man3p/pthread_cond_destroy.3p
+#usr/share/man/man3p/pthread_cond_init.3p
+#usr/share/man/man3p/pthread_cond_signal.3p
+#usr/share/man/man3p/pthread_cond_timedwait.3p
+#usr/share/man/man3p/pthread_cond_wait.3p
+#usr/share/man/man3p/pthread_condattr_destroy.3p
+#usr/share/man/man3p/pthread_condattr_getclock.3p
+#usr/share/man/man3p/pthread_condattr_getpshared.3p
+#usr/share/man/man3p/pthread_condattr_init.3p
+#usr/share/man/man3p/pthread_condattr_setclock.3p
+#usr/share/man/man3p/pthread_condattr_setpshared.3p
+#usr/share/man/man3p/pthread_create.3p
+#usr/share/man/man3p/pthread_detach.3p
+#usr/share/man/man3p/pthread_equal.3p
+#usr/share/man/man3p/pthread_exit.3p
+#usr/share/man/man3p/pthread_getconcurrency.3p
+#usr/share/man/man3p/pthread_getcpuclockid.3p
+#usr/share/man/man3p/pthread_getschedparam.3p
+#usr/share/man/man3p/pthread_getspecific.3p
+#usr/share/man/man3p/pthread_join.3p
+#usr/share/man/man3p/pthread_key_create.3p
+#usr/share/man/man3p/pthread_key_delete.3p
+#usr/share/man/man3p/pthread_kill.3p
+#usr/share/man/man3p/pthread_mutex_destroy.3p
+#usr/share/man/man3p/pthread_mutex_getprioceiling.3p
+#usr/share/man/man3p/pthread_mutex_init.3p
+#usr/share/man/man3p/pthread_mutex_lock.3p
+#usr/share/man/man3p/pthread_mutex_setprioceiling.3p
+#usr/share/man/man3p/pthread_mutex_timedlock.3p
+#usr/share/man/man3p/pthread_mutex_trylock.3p
+#usr/share/man/man3p/pthread_mutex_unlock.3p
+#usr/share/man/man3p/pthread_mutexattr_destroy.3p
+#usr/share/man/man3p/pthread_mutexattr_getprioceiling.3p
+#usr/share/man/man3p/pthread_mutexattr_getprotocol.3p
+#usr/share/man/man3p/pthread_mutexattr_getpshared.3p
+#usr/share/man/man3p/pthread_mutexattr_gettype.3p
+#usr/share/man/man3p/pthread_mutexattr_init.3p
+#usr/share/man/man3p/pthread_mutexattr_setprioceiling.3p
+#usr/share/man/man3p/pthread_mutexattr_setprotocol.3p
+#usr/share/man/man3p/pthread_mutexattr_setpshared.3p
+#usr/share/man/man3p/pthread_mutexattr_settype.3p
+#usr/share/man/man3p/pthread_once.3p
+#usr/share/man/man3p/pthread_rwlock_destroy.3p
+#usr/share/man/man3p/pthread_rwlock_init.3p
+#usr/share/man/man3p/pthread_rwlock_rdlock.3p
+#usr/share/man/man3p/pthread_rwlock_timedrdlock.3p
+#usr/share/man/man3p/pthread_rwlock_timedwrlock.3p
+#usr/share/man/man3p/pthread_rwlock_tryrdlock.3p
+#usr/share/man/man3p/pthread_rwlock_trywrlock.3p
+#usr/share/man/man3p/pthread_rwlock_unlock.3p
+#usr/share/man/man3p/pthread_rwlock_wrlock.3p
+#usr/share/man/man3p/pthread_rwlockattr_destroy.3p
+#usr/share/man/man3p/pthread_rwlockattr_getpshared.3p
+#usr/share/man/man3p/pthread_rwlockattr_init.3p
+#usr/share/man/man3p/pthread_rwlockattr_setpshared.3p
+#usr/share/man/man3p/pthread_self.3p
+#usr/share/man/man3p/pthread_setcancelstate.3p
+#usr/share/man/man3p/pthread_setcanceltype.3p
+#usr/share/man/man3p/pthread_setconcurrency.3p
+#usr/share/man/man3p/pthread_setschedparam.3p
+#usr/share/man/man3p/pthread_setschedprio.3p
+#usr/share/man/man3p/pthread_setspecific.3p
+#usr/share/man/man3p/pthread_sigmask.3p
+#usr/share/man/man3p/pthread_spin_destroy.3p
+#usr/share/man/man3p/pthread_spin_init.3p
+#usr/share/man/man3p/pthread_spin_lock.3p
+#usr/share/man/man3p/pthread_spin_trylock.3p
+#usr/share/man/man3p/pthread_spin_unlock.3p
+#usr/share/man/man3p/pthread_testcancel.3p
+#usr/share/man/man3p/ptsname.3p
+#usr/share/man/man3p/putc.3p
+#usr/share/man/man3p/putc_unlocked.3p
+#usr/share/man/man3p/putchar.3p
+#usr/share/man/man3p/putchar_unlocked.3p
+#usr/share/man/man3p/putenv.3p
+#usr/share/man/man3p/putmsg.3p
+#usr/share/man/man3p/putpmsg.3p
+#usr/share/man/man3p/puts.3p
+#usr/share/man/man3p/pututxline.3p
+#usr/share/man/man3p/putwc.3p
+#usr/share/man/man3p/putwchar.3p
+#usr/share/man/man3p/pwrite.3p
+#usr/share/man/man3p/qsort.3p
+#usr/share/man/man3p/raise.3p
+#usr/share/man/man3p/rand.3p
+#usr/share/man/man3p/rand_r.3p
+#usr/share/man/man3p/random.3p
+#usr/share/man/man3p/read.3p
+#usr/share/man/man3p/readdir.3p
+#usr/share/man/man3p/readdir_r.3p
+#usr/share/man/man3p/readlink.3p
+#usr/share/man/man3p/readv.3p
+#usr/share/man/man3p/realloc.3p
+#usr/share/man/man3p/realpath.3p
+#usr/share/man/man3p/recv.3p
+#usr/share/man/man3p/recvfrom.3p
+#usr/share/man/man3p/recvmsg.3p
+#usr/share/man/man3p/regcomp.3p
+#usr/share/man/man3p/regerror.3p
+#usr/share/man/man3p/regexec.3p
+#usr/share/man/man3p/regfree.3p
+#usr/share/man/man3p/remainder.3p
+#usr/share/man/man3p/remainderf.3p
+#usr/share/man/man3p/remainderl.3p
+#usr/share/man/man3p/remove.3p
+#usr/share/man/man3p/remque.3p
+#usr/share/man/man3p/remquo.3p
+#usr/share/man/man3p/remquof.3p
+#usr/share/man/man3p/remquol.3p
+#usr/share/man/man3p/rename.3p
+#usr/share/man/man3p/rewind.3p
+#usr/share/man/man3p/rewinddir.3p
+#usr/share/man/man3p/rindex.3p
+#usr/share/man/man3p/rint.3p
+#usr/share/man/man3p/rintf.3p
+#usr/share/man/man3p/rintl.3p
+#usr/share/man/man3p/rmdir.3p
+#usr/share/man/man3p/round.3p
+#usr/share/man/man3p/roundf.3p
+#usr/share/man/man3p/roundl.3p
+#usr/share/man/man3p/scalb.3p
+#usr/share/man/man3p/scalbln.3p
+#usr/share/man/man3p/scalblnf.3p
+#usr/share/man/man3p/scalblnl.3p
+#usr/share/man/man3p/scalbn.3p
+#usr/share/man/man3p/scalbnf.3p
+#usr/share/man/man3p/scalbnl.3p
+#usr/share/man/man3p/scanf.3p
+#usr/share/man/man3p/sched_get_priority_max.3p
+#usr/share/man/man3p/sched_get_priority_min.3p
+#usr/share/man/man3p/sched_getparam.3p
+#usr/share/man/man3p/sched_getscheduler.3p
+#usr/share/man/man3p/sched_rr_get_interval.3p
+#usr/share/man/man3p/sched_setparam.3p
+#usr/share/man/man3p/sched_setscheduler.3p
+#usr/share/man/man3p/sched_yield.3p
+#usr/share/man/man3p/seed48.3p
+#usr/share/man/man3p/seekdir.3p
+#usr/share/man/man3p/select.3p
+#usr/share/man/man3p/sem_close.3p
+#usr/share/man/man3p/sem_destroy.3p
+#usr/share/man/man3p/sem_getvalue.3p
+#usr/share/man/man3p/sem_init.3p
+#usr/share/man/man3p/sem_open.3p
+#usr/share/man/man3p/sem_post.3p
+#usr/share/man/man3p/sem_timedwait.3p
+#usr/share/man/man3p/sem_trywait.3p
+#usr/share/man/man3p/sem_unlink.3p
+#usr/share/man/man3p/sem_wait.3p
+#usr/share/man/man3p/semctl.3p
+#usr/share/man/man3p/semget.3p
+#usr/share/man/man3p/semop.3p
+#usr/share/man/man3p/send.3p
+#usr/share/man/man3p/sendmsg.3p
+#usr/share/man/man3p/sendto.3p
+#usr/share/man/man3p/setbuf.3p
+#usr/share/man/man3p/setcontext.3p
+#usr/share/man/man3p/setegid.3p
+#usr/share/man/man3p/setenv.3p
+#usr/share/man/man3p/seteuid.3p
+#usr/share/man/man3p/setgid.3p
+#usr/share/man/man3p/setgrent.3p
+#usr/share/man/man3p/sethostent.3p
+#usr/share/man/man3p/setitimer.3p
+#usr/share/man/man3p/setjmp.3p
+#usr/share/man/man3p/setkey.3p
+#usr/share/man/man3p/setlocale.3p
+#usr/share/man/man3p/setlogmask.3p
+#usr/share/man/man3p/setnetent.3p
+#usr/share/man/man3p/setpgid.3p
+#usr/share/man/man3p/setpgrp.3p
+#usr/share/man/man3p/setpriority.3p
+#usr/share/man/man3p/setprotoent.3p
+#usr/share/man/man3p/setpwent.3p
+#usr/share/man/man3p/setregid.3p
+#usr/share/man/man3p/setreuid.3p
+#usr/share/man/man3p/setrlimit.3p
+#usr/share/man/man3p/setservent.3p
+#usr/share/man/man3p/setsid.3p
+#usr/share/man/man3p/setsockopt.3p
+#usr/share/man/man3p/setstate.3p
+#usr/share/man/man3p/setuid.3p
+#usr/share/man/man3p/setutxent.3p
+#usr/share/man/man3p/setvbuf.3p
+#usr/share/man/man3p/shm_open.3p
+#usr/share/man/man3p/shm_unlink.3p
+#usr/share/man/man3p/shmat.3p
+#usr/share/man/man3p/shmctl.3p
+#usr/share/man/man3p/shmdt.3p
+#usr/share/man/man3p/shmget.3p
+#usr/share/man/man3p/shutdown.3p
+#usr/share/man/man3p/sigaction.3p
+#usr/share/man/man3p/sigaddset.3p
+#usr/share/man/man3p/sigaltstack.3p
+#usr/share/man/man3p/sigdelset.3p
+#usr/share/man/man3p/sigemptyset.3p
+#usr/share/man/man3p/sigfillset.3p
+#usr/share/man/man3p/sighold.3p
+#usr/share/man/man3p/sigignore.3p
+#usr/share/man/man3p/siginterrupt.3p
+#usr/share/man/man3p/sigismember.3p
+#usr/share/man/man3p/siglongjmp.3p
+#usr/share/man/man3p/signal.3p
+#usr/share/man/man3p/signbit.3p
+#usr/share/man/man3p/signgam.3p
+#usr/share/man/man3p/sigpause.3p
+#usr/share/man/man3p/sigpending.3p
+#usr/share/man/man3p/sigprocmask.3p
+#usr/share/man/man3p/sigqueue.3p
+#usr/share/man/man3p/sigrelse.3p
+#usr/share/man/man3p/sigset.3p
+#usr/share/man/man3p/sigsetjmp.3p
+#usr/share/man/man3p/sigsuspend.3p
+#usr/share/man/man3p/sigtimedwait.3p
+#usr/share/man/man3p/sigwait.3p
+#usr/share/man/man3p/sigwaitinfo.3p
+#usr/share/man/man3p/sin.3p
+#usr/share/man/man3p/sinf.3p
+#usr/share/man/man3p/sinh.3p
+#usr/share/man/man3p/sinhf.3p
+#usr/share/man/man3p/sinhl.3p
+#usr/share/man/man3p/sinl.3p
+#usr/share/man/man3p/sleep.3p
+#usr/share/man/man3p/snprintf.3p
+#usr/share/man/man3p/sockatmark.3p
+#usr/share/man/man3p/socket.3p
+#usr/share/man/man3p/socketpair.3p
+#usr/share/man/man3p/sprintf.3p
+#usr/share/man/man3p/sqrt.3p
+#usr/share/man/man3p/sqrtf.3p
+#usr/share/man/man3p/sqrtl.3p
+#usr/share/man/man3p/srand.3p
+#usr/share/man/man3p/srand48.3p
+#usr/share/man/man3p/srandom.3p
+#usr/share/man/man3p/sscanf.3p
+#usr/share/man/man3p/stat.3p
+#usr/share/man/man3p/statvfs.3p
+#usr/share/man/man3p/stderr.3p
+#usr/share/man/man3p/stdin.3p
+#usr/share/man/man3p/stdout.3p
+#usr/share/man/man3p/strcasecmp.3p
+#usr/share/man/man3p/strcat.3p
+#usr/share/man/man3p/strchr.3p
+#usr/share/man/man3p/strcmp.3p
+#usr/share/man/man3p/strcoll.3p
+#usr/share/man/man3p/strcpy.3p
+#usr/share/man/man3p/strcspn.3p
+#usr/share/man/man3p/strdup.3p
+#usr/share/man/man3p/strerror.3p
+#usr/share/man/man3p/strerror_r.3p
+#usr/share/man/man3p/strfmon.3p
+#usr/share/man/man3p/strftime.3p
+#usr/share/man/man3p/strlen.3p
+#usr/share/man/man3p/strncasecmp.3p
+#usr/share/man/man3p/strncat.3p
+#usr/share/man/man3p/strncmp.3p
+#usr/share/man/man3p/strncpy.3p
+#usr/share/man/man3p/strpbrk.3p
+#usr/share/man/man3p/strptime.3p
+#usr/share/man/man3p/strrchr.3p
+#usr/share/man/man3p/strspn.3p
+#usr/share/man/man3p/strstr.3p
+#usr/share/man/man3p/strtod.3p
+#usr/share/man/man3p/strtof.3p
+#usr/share/man/man3p/strtoimax.3p
+#usr/share/man/man3p/strtok.3p
+#usr/share/man/man3p/strtok_r.3p
+#usr/share/man/man3p/strtol.3p
+#usr/share/man/man3p/strtold.3p
+#usr/share/man/man3p/strtoll.3p
+#usr/share/man/man3p/strtoul.3p
+#usr/share/man/man3p/strtoull.3p
+#usr/share/man/man3p/strtoumax.3p
+#usr/share/man/man3p/strxfrm.3p
+#usr/share/man/man3p/swab.3p
+#usr/share/man/man3p/swapcontext.3p
+#usr/share/man/man3p/swprintf.3p
+#usr/share/man/man3p/swscanf.3p
+#usr/share/man/man3p/symlink.3p
+#usr/share/man/man3p/sync.3p
+#usr/share/man/man3p/sysconf.3p
+#usr/share/man/man3p/syslog.3p
+#usr/share/man/man3p/system.3p
+#usr/share/man/man3p/tan.3p
+#usr/share/man/man3p/tanf.3p
+#usr/share/man/man3p/tanh.3p
+#usr/share/man/man3p/tanhf.3p
+#usr/share/man/man3p/tanhl.3p
+#usr/share/man/man3p/tanl.3p
+#usr/share/man/man3p/tcdrain.3p
+#usr/share/man/man3p/tcflow.3p
+#usr/share/man/man3p/tcflush.3p
+#usr/share/man/man3p/tcgetattr.3p
+#usr/share/man/man3p/tcgetpgrp.3p
+#usr/share/man/man3p/tcgetsid.3p
+#usr/share/man/man3p/tcsendbreak.3p
+#usr/share/man/man3p/tcsetattr.3p
+#usr/share/man/man3p/tcsetpgrp.3p
+#usr/share/man/man3p/tdelete.3p
+#usr/share/man/man3p/telldir.3p
+#usr/share/man/man3p/tempnam.3p
+#usr/share/man/man3p/tfind.3p
+#usr/share/man/man3p/tgamma.3p
+#usr/share/man/man3p/tgammaf.3p
+#usr/share/man/man3p/tgammal.3p
+#usr/share/man/man3p/time.3p
+#usr/share/man/man3p/timer_create.3p
+#usr/share/man/man3p/timer_delete.3p
+#usr/share/man/man3p/timer_getoverrun.3p
+#usr/share/man/man3p/timer_gettime.3p
+#usr/share/man/man3p/timer_settime.3p
+#usr/share/man/man3p/times.3p
+#usr/share/man/man3p/timezone.3p
+#usr/share/man/man3p/tmpfile.3p
+#usr/share/man/man3p/tmpnam.3p
+#usr/share/man/man3p/toascii.3p
+#usr/share/man/man3p/tolower.3p
+#usr/share/man/man3p/toupper.3p
+#usr/share/man/man3p/towctrans.3p
+#usr/share/man/man3p/towlower.3p
+#usr/share/man/man3p/towupper.3p
+#usr/share/man/man3p/trunc.3p
+#usr/share/man/man3p/truncate.3p
+#usr/share/man/man3p/truncf.3p
+#usr/share/man/man3p/truncl.3p
+#usr/share/man/man3p/tsearch.3p
+#usr/share/man/man3p/ttyname.3p
+#usr/share/man/man3p/ttyname_r.3p
+#usr/share/man/man3p/twalk.3p
+#usr/share/man/man3p/tzname.3p
+#usr/share/man/man3p/tzset.3p
+#usr/share/man/man3p/ualarm.3p
+#usr/share/man/man3p/ulimit.3p
+#usr/share/man/man3p/umask.3p
+#usr/share/man/man3p/uname.3p
+#usr/share/man/man3p/ungetc.3p
+#usr/share/man/man3p/ungetwc.3p
+#usr/share/man/man3p/unlink.3p
+#usr/share/man/man3p/unlockpt.3p
+#usr/share/man/man3p/unsetenv.3p
+#usr/share/man/man3p/usleep.3p
+#usr/share/man/man3p/utime.3p
+#usr/share/man/man3p/utimes.3p
+#usr/share/man/man3p/va_arg.3p
+#usr/share/man/man3p/va_copy.3p
+#usr/share/man/man3p/va_end.3p
+#usr/share/man/man3p/va_start.3p
+#usr/share/man/man3p/vfork.3p
+#usr/share/man/man3p/vfprintf.3p
+#usr/share/man/man3p/vfscanf.3p
+#usr/share/man/man3p/vfwprintf.3p
+#usr/share/man/man3p/vfwscanf.3p
+#usr/share/man/man3p/vprintf.3p
+#usr/share/man/man3p/vscanf.3p
+#usr/share/man/man3p/vsnprintf.3p
+#usr/share/man/man3p/vsprintf.3p
+#usr/share/man/man3p/vsscanf.3p
+#usr/share/man/man3p/vswprintf.3p
+#usr/share/man/man3p/vswscanf.3p
+#usr/share/man/man3p/vwprintf.3p
+#usr/share/man/man3p/vwscanf.3p
+#usr/share/man/man3p/wait.3p
+#usr/share/man/man3p/waitid.3p
+#usr/share/man/man3p/waitpid.3p
+#usr/share/man/man3p/wcrtomb.3p
+#usr/share/man/man3p/wcscat.3p
+#usr/share/man/man3p/wcschr.3p
+#usr/share/man/man3p/wcscmp.3p
+#usr/share/man/man3p/wcscoll.3p
+#usr/share/man/man3p/wcscpy.3p
+#usr/share/man/man3p/wcscspn.3p
+#usr/share/man/man3p/wcsftime.3p
+#usr/share/man/man3p/wcslen.3p
+#usr/share/man/man3p/wcsncat.3p
+#usr/share/man/man3p/wcsncmp.3p
+#usr/share/man/man3p/wcsncpy.3p
+#usr/share/man/man3p/wcspbrk.3p
+#usr/share/man/man3p/wcsrchr.3p
+#usr/share/man/man3p/wcsrtombs.3p
+#usr/share/man/man3p/wcsspn.3p
+#usr/share/man/man3p/wcsstr.3p
+#usr/share/man/man3p/wcstod.3p
+#usr/share/man/man3p/wcstof.3p
+#usr/share/man/man3p/wcstoimax.3p
+#usr/share/man/man3p/wcstok.3p
+#usr/share/man/man3p/wcstol.3p
+#usr/share/man/man3p/wcstold.3p
+#usr/share/man/man3p/wcstoll.3p
+#usr/share/man/man3p/wcstombs.3p
+#usr/share/man/man3p/wcstoul.3p
+#usr/share/man/man3p/wcstoull.3p
+#usr/share/man/man3p/wcstoumax.3p
+#usr/share/man/man3p/wcswcs.3p
+#usr/share/man/man3p/wcswidth.3p
+#usr/share/man/man3p/wcsxfrm.3p
+#usr/share/man/man3p/wctob.3p
+#usr/share/man/man3p/wctomb.3p
+#usr/share/man/man3p/wctrans.3p
+#usr/share/man/man3p/wctype.3p
+#usr/share/man/man3p/wcwidth.3p
+#usr/share/man/man3p/wmemchr.3p
+#usr/share/man/man3p/wmemcmp.3p
+#usr/share/man/man3p/wmemcpy.3p
+#usr/share/man/man3p/wmemmove.3p
+#usr/share/man/man3p/wmemset.3p
+#usr/share/man/man3p/wordexp.3p
+#usr/share/man/man3p/wordfree.3p
+#usr/share/man/man3p/wprintf.3p
+#usr/share/man/man3p/write.3p
+#usr/share/man/man3p/writev.3p
+#usr/share/man/man3p/wscanf.3p
+#usr/share/man/man3p/y0.3p
+#usr/share/man/man3p/y1.3p
+#usr/share/man/man3p/yn.3p
+#usr/share/man/man4/console.4
+#usr/share/man/man4/console_codes.4
+#usr/share/man/man4/console_ioctl.4
+#usr/share/man/man4/dsp56k.4
+#usr/share/man/man4/epoll.4
+#usr/share/man/man4/fd.4
+#usr/share/man/man4/fifo.4
+#usr/share/man/man4/full.4
+#usr/share/man/man4/futex.4
+#usr/share/man/man4/hd.4
+#usr/share/man/man4/initrd.4
+#usr/share/man/man4/intro.4
+#usr/share/man/man4/kmem.4
+#usr/share/man/man4/lp.4
+#usr/share/man/man4/mem.4
+#usr/share/man/man4/mouse.4
+#usr/share/man/man4/null.4
+#usr/share/man/man4/port.4
+#usr/share/man/man4/ptmx.4
+#usr/share/man/man4/pts.4
+#usr/share/man/man4/ram.4
+#usr/share/man/man4/random.4
+#usr/share/man/man4/sd.4
+#usr/share/man/man4/sk98lin.4
+#usr/share/man/man4/st.4
+#usr/share/man/man4/tty.4
+#usr/share/man/man4/ttyS.4
+#usr/share/man/man4/tty_ioctl.4
+#usr/share/man/man4/urandom.4
+#usr/share/man/man4/vcs.4
+#usr/share/man/man4/vcsa.4
+#usr/share/man/man4/wavelan.4
+#usr/share/man/man4/zero.4
+#usr/share/man/man5/acct.5
+#usr/share/man/man5/charmap.5
+#usr/share/man/man5/complex.5
+#usr/share/man/man5/dir_colors.5
+#usr/share/man/man5/elf.5
+#usr/share/man/man5/environ.5
+#usr/share/man/man5/fs.5
+#usr/share/man/man5/ftpusers.5
+#usr/share/man/man5/group.5
+#usr/share/man/man5/host.conf.5
+#usr/share/man/man5/hosts.5
+#usr/share/man/man5/hosts.equiv.5
+#usr/share/man/man5/intro.5
+#usr/share/man/man5/ipc.5
+#usr/share/man/man5/issue.5
+#usr/share/man/man5/locale.5
+#usr/share/man/man5/motd.5
+#usr/share/man/man5/nologin.5
+#usr/share/man/man5/nscd.conf.5
+#usr/share/man/man5/nsswitch.conf.5
+#usr/share/man/man5/passwd.5
+#usr/share/man/man5/proc.5
+#usr/share/man/man5/protocols.5
+#usr/share/man/man5/resolv.conf.5
+#usr/share/man/man5/resolver.5
+#usr/share/man/man5/rpc.5
+#usr/share/man/man5/securetty.5
+#usr/share/man/man5/services.5
+#usr/share/man/man5/shells.5
+#usr/share/man/man5/slabinfo.5
+#usr/share/man/man5/termcap.5
+#usr/share/man/man5/ttytype.5
+#usr/share/man/man5/tzfile.5
+#usr/share/man/man5/utmp.5
+#usr/share/man/man5/wtmp.5
+#usr/share/man/man6/intro.6
+#usr/share/man/man7/LDP.7
+#usr/share/man/man7/arp.7
+#usr/share/man/man7/ascii.7
+#usr/share/man/man7/boot.7
+#usr/share/man/man7/bootparam.7
+#usr/share/man/man7/capabilities.7
+#usr/share/man/man7/charsets.7
+#usr/share/man/man7/ddp.7
+#usr/share/man/man7/glob.7
+#usr/share/man/man7/hier.7
+#usr/share/man/man7/icmp.7
+#usr/share/man/man7/intro.7
+#usr/share/man/man7/ip.7
+#usr/share/man/man7/ipv6.7
+#usr/share/man/man7/iso-8859-1.7
+#usr/share/man/man7/iso-8859-15.7
+#usr/share/man/man7/iso-8859-16.7
+#usr/share/man/man7/iso-8859-2.7
+#usr/share/man/man7/iso-8859-7.7
+#usr/share/man/man7/iso-8859-9.7
+#usr/share/man/man7/iso_8859-1.7
+#usr/share/man/man7/iso_8859-15.7
+#usr/share/man/man7/iso_8859-16.7
+#usr/share/man/man7/iso_8859-2.7
+#usr/share/man/man7/iso_8859-7.7
+#usr/share/man/man7/iso_8859-9.7
+#usr/share/man/man7/iso_8859_1.7
+#usr/share/man/man7/iso_8859_15.7
+#usr/share/man/man7/iso_8859_16.7
+#usr/share/man/man7/iso_8859_2.7
+#usr/share/man/man7/iso_8859_7.7
+#usr/share/man/man7/iso_8859_9.7
+#usr/share/man/man7/koi8-r.7
+#usr/share/man/man7/latin1.7
+#usr/share/man/man7/latin10.7
+#usr/share/man/man7/latin2.7
+#usr/share/man/man7/latin5.7
+#usr/share/man/man7/latin9.7
+#usr/share/man/man7/locale.7
+#usr/share/man/man7/mailaddr.7
+#usr/share/man/man7/man.7
+#usr/share/man/man7/mdoc.7
+#usr/share/man/man7/mdoc.samples.7
+#usr/share/man/man7/netdevice.7
+#usr/share/man/man7/netlink.7
+#usr/share/man/man7/operator.7
+#usr/share/man/man7/packet.7
+#usr/share/man/man7/posixoptions.7
+#usr/share/man/man7/pthreads.7
+#usr/share/man/man7/pty.7
+#usr/share/man/man7/raw.7
+#usr/share/man/man7/regex.7
+#usr/share/man/man7/rtnetlink.7
+#usr/share/man/man7/signal.7
+#usr/share/man/man7/socket.7
+#usr/share/man/man7/suffixes.7
+#usr/share/man/man7/tcp.7
+#usr/share/man/man7/udp.7
+#usr/share/man/man7/unicode.7
+#usr/share/man/man7/units.7
+#usr/share/man/man7/unix.7
+#usr/share/man/man7/uri.7
+#usr/share/man/man7/url.7
+#usr/share/man/man7/urn.7
+#usr/share/man/man7/utf-8.7
+#usr/share/man/man7/utf8.7
+#usr/share/man/man7/x25.7
+#usr/share/man/man8/intro.8
+#usr/share/man/man8/ld-linux.8
+#usr/share/man/man8/ld-linux.so.8
+#usr/share/man/man8/ld.so.8
+#usr/share/man/man8/ldconfig.8
+#usr/share/man/man8/nscd.8
+#usr/share/man/man8/sync.8
+#usr/share/man/man8/tzselect.8
+#usr/share/man/man8/zdump.8
+#usr/share/man/man8/zic.8
+#usr/share/man/man9
+#usr/share/man/man9/ksoftirqd.9
+##
+## glibc-2.3.3
+##
+etc/ld.so.cache
+etc/localtime
+#etc/rpc
+lib/ld-2.3.3.so
+lib/ld-linux.so.2
+#lib/libBrokenLocale-2.3.3.so
+#lib/libBrokenLocale.so.1
+#lib/libSegFault.so
+#lib/libanl-2.3.3.so
+#lib/libanl.so.1
+lib/libc-2.3.3.so
+lib/libc.so.6.1
+lib/libcrypt-2.3.3.so
+lib/libcrypt.so.1.1
+lib/libdl-2.3.3.so
+lib/libdl.so.2.1
+lib/libm-2.3.3.so
+lib/libm.so.6.1
+#lib/libmemusage.so
+lib/libnsl-2.3.3.so
+lib/libnsl.so.1.1
+lib/libnss_compat-2.3.3.so
+lib/libnss_compat.so.2
+lib/libnss_dns-2.3.3.so
+lib/libnss_dns.so.2
+lib/libnss_files-2.3.3.so
+lib/libnss_files.so.2
+#lib/libnss_hesiod-2.3.3.so
+#lib/libnss_hesiod.so.2
+#lib/libnss_nis-2.3.3.so
+#lib/libnss_nis.so.2
+#lib/libnss_nisplus-2.3.3.so
+#lib/libnss_nisplus.so.2
+#lib/libpcprofile.so
+lib/libpthread-0.10.so
+lib/libpthread.so.0
+lib/libresolv-2.3.3.so
+lib/libresolv.so.2.1
+lib/librt-2.3.3.so
+lib/librt.so.1
+#lib/libthread_db-1.0.so
+#lib/libthread_db.so.1
+lib/libutil-2.3.3.so
+lib/libutil.so.1.1
+sbin/ldconfig
+#sbin/sln
+#usr/bin/catchsegv
+#usr/bin/gencat
+#usr/bin/getconf
+#usr/bin/getent
+#usr/bin/glibcbug
+#usr/bin/iconv
+#usr/bin/ldd
+#usr/bin/lddlibc4
+#usr/bin/locale
+#usr/bin/localedef
+#usr/bin/memusage
+#usr/bin/memusagestat
+#usr/bin/mtrace
+#usr/bin/pcprofiledump
+#usr/bin/pt_chown
+#usr/bin/rpcgen
+#usr/bin/sprof
+#usr/bin/tzselect
+#usr/bin/xtrace
+#usr/include/_G_config.h
+#usr/include/a.out.h
+#usr/include/aio.h
+#usr/include/aliases.h
+#usr/include/alloca.h
+#usr/include/ar.h
+#usr/include/argp.h
+#usr/include/argz.h
+#usr/include/arpa
+#usr/include/arpa/ftp.h
+#usr/include/arpa/inet.h
+#usr/include/arpa/nameser.h
+#usr/include/arpa/nameser_compat.h
+#usr/include/arpa/telnet.h
+#usr/include/arpa/tftp.h
+#usr/include/assert.h
+#usr/include/bits
+#usr/include/bits/byteswap.h
+#usr/include/bits/cmathcalls.h
+#usr/include/bits/confname.h
+#usr/include/bits/dirent.h
+#usr/include/bits/dlfcn.h
+#usr/include/bits/elfclass.h
+#usr/include/bits/endian.h
+#usr/include/bits/environments.h
+#usr/include/bits/errno.h
+#usr/include/bits/fcntl.h
+#usr/include/bits/fenv.h
+#usr/include/bits/fenvinline.h
+#usr/include/bits/huge_val.h
+#usr/include/bits/in.h
+#usr/include/bits/initspin.h
+#usr/include/bits/ioctl-types.h
+#usr/include/bits/ioctls.h
+#usr/include/bits/ipc.h
+#usr/include/bits/ipctypes.h
+#usr/include/bits/libc-lock.h
+#usr/include/bits/local_lim.h
+#usr/include/bits/locale.h
+#usr/include/bits/mathcalls.h
+#usr/include/bits/mathdef.h
+#usr/include/bits/mathinline.h
+#usr/include/bits/mman.h
+#usr/include/bits/msq.h
+#usr/include/bits/nan.h
+#usr/include/bits/netdb.h
+#usr/include/bits/poll.h
+#usr/include/bits/posix1_lim.h
+#usr/include/bits/posix2_lim.h
+#usr/include/bits/posix_opt.h
+#usr/include/bits/pthreadtypes.h
+#usr/include/bits/resource.h
+#usr/include/bits/sched.h
+#usr/include/bits/select.h
+#usr/include/bits/sem.h
+#usr/include/bits/setjmp.h
+#usr/include/bits/shm.h
+#usr/include/bits/sigaction.h
+#usr/include/bits/sigcontext.h
+#usr/include/bits/siginfo.h
+#usr/include/bits/signum.h
+#usr/include/bits/sigset.h
+#usr/include/bits/sigstack.h
+#usr/include/bits/sigthread.h
+#usr/include/bits/sockaddr.h
+#usr/include/bits/socket.h
+#usr/include/bits/stab.def
+#usr/include/bits/stat.h
+#usr/include/bits/statfs.h
+#usr/include/bits/statvfs.h
+#usr/include/bits/stdio-lock.h
+#usr/include/bits/stdio.h
+#usr/include/bits/stdio_lim.h
+#usr/include/bits/string.h
+#usr/include/bits/string2.h
+#usr/include/bits/stropts.h
+#usr/include/bits/sys_errlist.h
+#usr/include/bits/syscall.h
+#usr/include/bits/termios.h
+#usr/include/bits/time.h
+#usr/include/bits/types.h
+#usr/include/bits/typesizes.h
+#usr/include/bits/uio.h
+#usr/include/bits/ustat.h
+#usr/include/bits/utmp.h
+#usr/include/bits/utmpx.h
+#usr/include/bits/utsname.h
+#usr/include/bits/waitflags.h
+#usr/include/bits/waitstatus.h
+#usr/include/bits/wchar.h
+#usr/include/bits/wordsize.h
+#usr/include/bits/xopen_lim.h
+#usr/include/bits/xtitypes.h
+#usr/include/byteswap.h
+#usr/include/complex.h
+#usr/include/cpio.h
+#usr/include/crypt.h
+#usr/include/ctype.h
+#usr/include/dirent.h
+#usr/include/dlfcn.h
+#usr/include/elf.h
+#usr/include/endian.h
+#usr/include/envz.h
+#usr/include/err.h
+#usr/include/errno.h
+#usr/include/error.h
+#usr/include/execinfo.h
+#usr/include/fcntl.h
+#usr/include/features.h
+#usr/include/fenv.h
+#usr/include/fmtmsg.h
+#usr/include/fnmatch.h
+#usr/include/fpu_control.h
+#usr/include/fstab.h
+#usr/include/fts.h
+#usr/include/ftw.h
+#usr/include/gconv.h
+#usr/include/getopt.h
+#usr/include/glob.h
+#usr/include/gnu
+#usr/include/gnu-versions.h
+#usr/include/gnu/lib-names.h
+#usr/include/gnu/libc-version.h
+#usr/include/gnu/stubs.h
+#usr/include/grp.h
+#usr/include/iconv.h
+#usr/include/ieee754.h
+#usr/include/ifaddrs.h
+#usr/include/inttypes.h
+#usr/include/langinfo.h
+#usr/include/lastlog.h
+#usr/include/libgen.h
+#usr/include/libintl.h
+#usr/include/libio.h
+#usr/include/limits.h
+#usr/include/link.h
+#usr/include/locale.h
+#usr/include/malloc.h
+#usr/include/math.h
+#usr/include/mcheck.h
+#usr/include/memory.h
+#usr/include/mntent.h
+#usr/include/monetary.h
+#usr/include/net
+#usr/include/net/ethernet.h
+#usr/include/net/if.h
+#usr/include/net/if_arp.h
+#usr/include/net/if_packet.h
+#usr/include/net/if_ppp.h
+#usr/include/net/if_shaper.h
+#usr/include/net/if_slip.h
+#usr/include/net/ppp-comp.h
+#usr/include/net/ppp_defs.h
+#usr/include/net/route.h
+#usr/include/netash
+#usr/include/netash/ash.h
+#usr/include/netatalk
+#usr/include/netatalk/at.h
+#usr/include/netax25
+#usr/include/netax25/ax25.h
+#usr/include/netdb.h
+#usr/include/neteconet
+#usr/include/neteconet/ec.h
+#usr/include/netinet
+#usr/include/netinet/ether.h
+#usr/include/netinet/icmp6.h
+#usr/include/netinet/if_ether.h
+#usr/include/netinet/if_fddi.h
+#usr/include/netinet/if_tr.h
+#usr/include/netinet/igmp.h
+#usr/include/netinet/in.h
+#usr/include/netinet/in_systm.h
+#usr/include/netinet/ip.h
+#usr/include/netinet/ip6.h
+#usr/include/netinet/ip_icmp.h
+#usr/include/netinet/tcp.h
+#usr/include/netinet/udp.h
+#usr/include/netipx
+#usr/include/netipx/ipx.h
+#usr/include/netpacket
+#usr/include/netpacket/packet.h
+#usr/include/netrom
+#usr/include/netrom/netrom.h
+#usr/include/netrose
+#usr/include/netrose/rose.h
+#usr/include/nfs
+#usr/include/nfs/nfs.h
+#usr/include/nl_types.h
+#usr/include/nss.h
+#usr/include/obstack.h
+#usr/include/paths.h
+#usr/include/poll.h
+#usr/include/printf.h
+#usr/include/protocols
+#usr/include/protocols/routed.h
+#usr/include/protocols/rwhod.h
+#usr/include/protocols/talkd.h
+#usr/include/protocols/timed.h
+#usr/include/pthread.h
+#usr/include/pty.h
+#usr/include/pwd.h
+#usr/include/re_comp.h
+#usr/include/regex.h
+#usr/include/regexp.h
+#usr/include/resolv.h
+#usr/include/rpc
+#usr/include/rpc/auth.h
+#usr/include/rpc/auth_des.h
+#usr/include/rpc/auth_unix.h
+#usr/include/rpc/clnt.h
+#usr/include/rpc/des_crypt.h
+#usr/include/rpc/key_prot.h
+#usr/include/rpc/netdb.h
+#usr/include/rpc/pmap_clnt.h
+#usr/include/rpc/pmap_prot.h
+#usr/include/rpc/pmap_rmt.h
+#usr/include/rpc/rpc.h
+#usr/include/rpc/rpc_des.h
+#usr/include/rpc/rpc_msg.h
+#usr/include/rpc/svc.h
+#usr/include/rpc/svc_auth.h
+#usr/include/rpc/types.h
+#usr/include/rpc/xdr.h
+#usr/include/rpcsvc
+#usr/include/rpcsvc/bootparam.h
+#usr/include/rpcsvc/bootparam_prot.h
+#usr/include/rpcsvc/bootparam_prot.x
+#usr/include/rpcsvc/key_prot.h
+#usr/include/rpcsvc/key_prot.x
+#usr/include/rpcsvc/klm_prot.h
+#usr/include/rpcsvc/klm_prot.x
+#usr/include/rpcsvc/mount.h
+#usr/include/rpcsvc/mount.x
+#usr/include/rpcsvc/nfs_prot.h
+#usr/include/rpcsvc/nfs_prot.x
+#usr/include/rpcsvc/nis.h
+#usr/include/rpcsvc/nis.x
+#usr/include/rpcsvc/nis_callback.h
+#usr/include/rpcsvc/nis_callback.x
+#usr/include/rpcsvc/nis_object.x
+#usr/include/rpcsvc/nis_tags.h
+#usr/include/rpcsvc/nislib.h
+#usr/include/rpcsvc/nlm_prot.h
+#usr/include/rpcsvc/nlm_prot.x
+#usr/include/rpcsvc/rex.h
+#usr/include/rpcsvc/rex.x
+#usr/include/rpcsvc/rquota.h
+#usr/include/rpcsvc/rquota.x
+#usr/include/rpcsvc/rstat.h
+#usr/include/rpcsvc/rstat.x
+#usr/include/rpcsvc/rusers.h
+#usr/include/rpcsvc/rusers.x
+#usr/include/rpcsvc/sm_inter.h
+#usr/include/rpcsvc/sm_inter.x
+#usr/include/rpcsvc/spray.h
+#usr/include/rpcsvc/spray.x
+#usr/include/rpcsvc/yp.h
+#usr/include/rpcsvc/yp.x
+#usr/include/rpcsvc/yp_prot.h
+#usr/include/rpcsvc/ypclnt.h
+#usr/include/rpcsvc/yppasswd.h
+#usr/include/rpcsvc/yppasswd.x
+#usr/include/rpcsvc/ypupd.h
+#usr/include/sched.h
+#usr/include/scsi
+#usr/include/scsi/scsi.h
+#usr/include/scsi/scsi_ioctl.h
+#usr/include/scsi/sg.h
+#usr/include/search.h
+#usr/include/semaphore.h
+#usr/include/setjmp.h
+#usr/include/sgtty.h
+#usr/include/shadow.h
+#usr/include/signal.h
+#usr/include/spawn.h
+#usr/include/stab.h
+#usr/include/stdint.h
+#usr/include/stdio.h
+#usr/include/stdio_ext.h
+#usr/include/stdlib.h
+#usr/include/string.h
+#usr/include/strings.h
+#usr/include/stropts.h
+#usr/include/sys
+#usr/include/sys/acct.h
+#usr/include/sys/bitypes.h
+#usr/include/sys/cdefs.h
+#usr/include/sys/debugreg.h
+#usr/include/sys/dir.h
+#usr/include/sys/elf.h
+#usr/include/sys/epoll.h
+#usr/include/sys/errno.h
+#usr/include/sys/fcntl.h
+#usr/include/sys/file.h
+#usr/include/sys/fsuid.h
+#usr/include/sys/gmon.h
+#usr/include/sys/gmon_out.h
+#usr/include/sys/io.h
+#usr/include/sys/ioctl.h
+#usr/include/sys/ipc.h
+#usr/include/sys/kd.h
+#usr/include/sys/kdaemon.h
+#usr/include/sys/klog.h
+#usr/include/sys/mman.h
+#usr/include/sys/mount.h
+#usr/include/sys/msg.h
+#usr/include/sys/mtio.h
+#usr/include/sys/param.h
+#usr/include/sys/pci.h
+#usr/include/sys/perm.h
+#usr/include/sys/personality.h
+#usr/include/sys/poll.h
+#usr/include/sys/prctl.h
+#usr/include/sys/procfs.h
+#usr/include/sys/profil.h
+#usr/include/sys/ptrace.h
+#usr/include/sys/queue.h
+#usr/include/sys/quota.h
+#usr/include/sys/raw.h
+#usr/include/sys/reboot.h
+#usr/include/sys/reg.h
+#usr/include/sys/resource.h
+#usr/include/sys/select.h
+#usr/include/sys/sem.h
+#usr/include/sys/sendfile.h
+#usr/include/sys/shm.h
+#usr/include/sys/signal.h
+#usr/include/sys/socket.h
+#usr/include/sys/socketvar.h
+#usr/include/sys/soundcard.h
+#usr/include/sys/stat.h
+#usr/include/sys/statfs.h
+#usr/include/sys/statvfs.h
+#usr/include/sys/stropts.h
+#usr/include/sys/swap.h
+#usr/include/sys/syscall.h
+#usr/include/sys/sysctl.h
+#usr/include/sys/sysinfo.h
+#usr/include/sys/syslog.h
+#usr/include/sys/sysmacros.h
+#usr/include/sys/termios.h
+#usr/include/sys/time.h
+#usr/include/sys/timeb.h
+#usr/include/sys/times.h
+#usr/include/sys/timex.h
+#usr/include/sys/ttychars.h
+#usr/include/sys/ttydefaults.h
+#usr/include/sys/types.h
+#usr/include/sys/ucontext.h
+#usr/include/sys/uio.h
+#usr/include/sys/ultrasound.h
+#usr/include/sys/un.h
+#usr/include/sys/unistd.h
+#usr/include/sys/user.h
+#usr/include/sys/ustat.h
+#usr/include/sys/utsname.h
+#usr/include/sys/vfs.h
+#usr/include/sys/vlimit.h
+#usr/include/sys/vm86.h
+#usr/include/sys/vt.h
+#usr/include/sys/vtimes.h
+#usr/include/sys/wait.h
+#usr/include/sys/xattr.h
+#usr/include/syscall.h
+#usr/include/sysexits.h
+#usr/include/syslog.h
+#usr/include/tar.h
+#usr/include/termio.h
+#usr/include/termios.h
+#usr/include/tgmath.h
+#usr/include/thread_db.h
+#usr/include/time.h
+#usr/include/ttyent.h
+#usr/include/ucontext.h
+#usr/include/ulimit.h
+#usr/include/unistd.h
+#usr/include/ustat.h
+#usr/include/utime.h
+#usr/include/utmp.h
+#usr/include/utmpx.h
+#usr/include/values.h
+#usr/include/wait.h
+#usr/include/wchar.h
+#usr/include/wctype.h
+#usr/include/wordexp.h
+#usr/include/xlocale.h
+#usr/lib/Mcrt1.o
+#usr/lib/crt1.o
+#usr/lib/crti.o
+#usr/lib/crtn.o
+#usr/lib/gconv
+#usr/lib/gconv/ANSI_X3.110.so
+#usr/lib/gconv/ARMSCII-8.so
+#usr/lib/gconv/ASMO_449.so
+#usr/lib/gconv/BIG5.so
+#usr/lib/gconv/BIG5HKSCS.so
+#usr/lib/gconv/CP10007.so
+#usr/lib/gconv/CP1125.so
+#usr/lib/gconv/CP1250.so
+#usr/lib/gconv/CP1251.so
+#usr/lib/gconv/CP1252.so
+#usr/lib/gconv/CP1253.so
+#usr/lib/gconv/CP1254.so
+#usr/lib/gconv/CP1255.so
+#usr/lib/gconv/CP1256.so
+#usr/lib/gconv/CP1257.so
+#usr/lib/gconv/CP1258.so
+#usr/lib/gconv/CP737.so
+#usr/lib/gconv/CP775.so
+#usr/lib/gconv/CSN_369103.so
+#usr/lib/gconv/CWI.so
+#usr/lib/gconv/DEC-MCS.so
+#usr/lib/gconv/EBCDIC-AT-DE-A.so
+#usr/lib/gconv/EBCDIC-AT-DE.so
+#usr/lib/gconv/EBCDIC-CA-FR.so
+#usr/lib/gconv/EBCDIC-DK-NO-A.so
+#usr/lib/gconv/EBCDIC-DK-NO.so
+#usr/lib/gconv/EBCDIC-ES-A.so
+#usr/lib/gconv/EBCDIC-ES-S.so
+#usr/lib/gconv/EBCDIC-ES.so
+#usr/lib/gconv/EBCDIC-FI-SE-A.so
+#usr/lib/gconv/EBCDIC-FI-SE.so
+#usr/lib/gconv/EBCDIC-FR.so
+#usr/lib/gconv/EBCDIC-IS-FRISS.so
+#usr/lib/gconv/EBCDIC-IT.so
+#usr/lib/gconv/EBCDIC-PT.so
+#usr/lib/gconv/EBCDIC-UK.so
+#usr/lib/gconv/EBCDIC-US.so
+#usr/lib/gconv/ECMA-CYRILLIC.so
+#usr/lib/gconv/EUC-CN.so
+#usr/lib/gconv/EUC-JISX0213.so
+#usr/lib/gconv/EUC-JP.so
+#usr/lib/gconv/EUC-KR.so
+#usr/lib/gconv/EUC-TW.so
+#usr/lib/gconv/GB18030.so
+#usr/lib/gconv/GBBIG5.so
+#usr/lib/gconv/GBGBK.so
+#usr/lib/gconv/GBK.so
+#usr/lib/gconv/GEORGIAN-ACADEMY.so
+#usr/lib/gconv/GEORGIAN-PS.so
+#usr/lib/gconv/GOST_19768-74.so
+#usr/lib/gconv/GREEK-CCITT.so
+#usr/lib/gconv/GREEK7-OLD.so
+#usr/lib/gconv/GREEK7.so
+#usr/lib/gconv/HP-ROMAN8.so
+#usr/lib/gconv/IBM037.so
+#usr/lib/gconv/IBM038.so
+#usr/lib/gconv/IBM1004.so
+#usr/lib/gconv/IBM1026.so
+#usr/lib/gconv/IBM1046.so
+#usr/lib/gconv/IBM1047.so
+#usr/lib/gconv/IBM1124.so
+#usr/lib/gconv/IBM1129.so
+#usr/lib/gconv/IBM1132.so
+#usr/lib/gconv/IBM1133.so
+#usr/lib/gconv/IBM1160.so
+#usr/lib/gconv/IBM1161.so
+#usr/lib/gconv/IBM1162.so
+#usr/lib/gconv/IBM1163.so
+#usr/lib/gconv/IBM1164.so
+#usr/lib/gconv/IBM256.so
+#usr/lib/gconv/IBM273.so
+#usr/lib/gconv/IBM274.so
+#usr/lib/gconv/IBM275.so
+#usr/lib/gconv/IBM277.so
+#usr/lib/gconv/IBM278.so
+#usr/lib/gconv/IBM280.so
+#usr/lib/gconv/IBM281.so
+#usr/lib/gconv/IBM284.so
+#usr/lib/gconv/IBM285.so
+#usr/lib/gconv/IBM290.so
+#usr/lib/gconv/IBM297.so
+#usr/lib/gconv/IBM420.so
+#usr/lib/gconv/IBM423.so
+#usr/lib/gconv/IBM424.so
+#usr/lib/gconv/IBM437.so
+#usr/lib/gconv/IBM500.so
+#usr/lib/gconv/IBM850.so
+#usr/lib/gconv/IBM851.so
+#usr/lib/gconv/IBM852.so
+#usr/lib/gconv/IBM855.so
+#usr/lib/gconv/IBM856.so
+#usr/lib/gconv/IBM857.so
+#usr/lib/gconv/IBM860.so
+#usr/lib/gconv/IBM861.so
+#usr/lib/gconv/IBM862.so
+#usr/lib/gconv/IBM863.so
+#usr/lib/gconv/IBM864.so
+#usr/lib/gconv/IBM865.so
+#usr/lib/gconv/IBM866.so
+#usr/lib/gconv/IBM866NAV.so
+#usr/lib/gconv/IBM868.so
+#usr/lib/gconv/IBM869.so
+#usr/lib/gconv/IBM870.so
+#usr/lib/gconv/IBM871.so
+#usr/lib/gconv/IBM874.so
+#usr/lib/gconv/IBM875.so
+#usr/lib/gconv/IBM880.so
+#usr/lib/gconv/IBM891.so
+#usr/lib/gconv/IBM903.so
+#usr/lib/gconv/IBM904.so
+#usr/lib/gconv/IBM905.so
+#usr/lib/gconv/IBM918.so
+#usr/lib/gconv/IBM922.so
+#usr/lib/gconv/IBM930.so
+#usr/lib/gconv/IBM932.so
+#usr/lib/gconv/IBM933.so
+#usr/lib/gconv/IBM935.so
+#usr/lib/gconv/IBM937.so
+#usr/lib/gconv/IBM939.so
+#usr/lib/gconv/IBM943.so
+#usr/lib/gconv/IEC_P27-1.so
+#usr/lib/gconv/INIS-8.so
+#usr/lib/gconv/INIS-CYRILLIC.so
+#usr/lib/gconv/INIS.so
+#usr/lib/gconv/ISIRI-3342.so
+#usr/lib/gconv/ISO-2022-CN-EXT.so
+#usr/lib/gconv/ISO-2022-CN.so
+#usr/lib/gconv/ISO-2022-JP-3.so
+#usr/lib/gconv/ISO-2022-JP.so
+#usr/lib/gconv/ISO-2022-KR.so
+#usr/lib/gconv/ISO-IR-197.so
+#usr/lib/gconv/ISO-IR-209.so
+#usr/lib/gconv/ISO646.so
+#usr/lib/gconv/ISO8859-1.so
+#usr/lib/gconv/ISO8859-10.so
+#usr/lib/gconv/ISO8859-11.so
+#usr/lib/gconv/ISO8859-13.so
+#usr/lib/gconv/ISO8859-14.so
+#usr/lib/gconv/ISO8859-15.so
+#usr/lib/gconv/ISO8859-16.so
+#usr/lib/gconv/ISO8859-2.so
+#usr/lib/gconv/ISO8859-3.so
+#usr/lib/gconv/ISO8859-4.so
+#usr/lib/gconv/ISO8859-5.so
+#usr/lib/gconv/ISO8859-6.so
+#usr/lib/gconv/ISO8859-7.so
+#usr/lib/gconv/ISO8859-8.so
+#usr/lib/gconv/ISO8859-9.so
+#usr/lib/gconv/ISO_10367-BOX.so
+#usr/lib/gconv/ISO_2033.so
+#usr/lib/gconv/ISO_5427-EXT.so
+#usr/lib/gconv/ISO_5427.so
+#usr/lib/gconv/ISO_5428.so
+#usr/lib/gconv/ISO_6937-2.so
+#usr/lib/gconv/ISO_6937.so
+#usr/lib/gconv/JOHAB.so
+#usr/lib/gconv/KOI-8.so
+#usr/lib/gconv/KOI8-R.so
+#usr/lib/gconv/KOI8-T.so
+#usr/lib/gconv/KOI8-U.so
+#usr/lib/gconv/LATIN-GREEK-1.so
+#usr/lib/gconv/LATIN-GREEK.so
+#usr/lib/gconv/MAC-IS.so
+#usr/lib/gconv/MAC-SAMI.so
+#usr/lib/gconv/MAC-UK.so
+#usr/lib/gconv/MACINTOSH.so
+#usr/lib/gconv/NATS-DANO.so
+#usr/lib/gconv/NATS-SEFI.so
+#usr/lib/gconv/SAMI-WS2.so
+#usr/lib/gconv/SHIFT_JISX0213.so
+#usr/lib/gconv/SJIS.so
+#usr/lib/gconv/T.61.so
+#usr/lib/gconv/TCVN5712-1.so
+#usr/lib/gconv/TIS-620.so
+#usr/lib/gconv/TSCII.so
+#usr/lib/gconv/UHC.so
+#usr/lib/gconv/UNICODE.so
+#usr/lib/gconv/UTF-16.so
+#usr/lib/gconv/UTF-32.so
+#usr/lib/gconv/UTF-7.so
+#usr/lib/gconv/VISCII.so
+#usr/lib/gconv/gconv-modules
+#usr/lib/gconv/libCNS.so
+#usr/lib/gconv/libGB.so
+#usr/lib/gconv/libISOIR165.so
+#usr/lib/gconv/libJIS.so
+#usr/lib/gconv/libJISX0213.so
+#usr/lib/gconv/libKSC.so
+#usr/lib/gcrt1.o
+#usr/lib/libBrokenLocale.a
+#usr/lib/libBrokenLocale.so
+#usr/lib/libanl.a
+#usr/lib/libanl.so
+#usr/lib/libbsd-compat.a
+#usr/lib/libc.a
+#usr/lib/libc.so
+#usr/lib/libc_nonshared.a
+#usr/lib/libcrypt.a
+#usr/lib/libcrypt.so
+#usr/lib/libdl.a
+#usr/lib/libdl.so
+#usr/lib/libg.a
+#usr/lib/libieee.a
+#usr/lib/libm.a
+#usr/lib/libm.so
+#usr/lib/libmcheck.a
+#usr/lib/libnsl.a
+#usr/lib/libnsl.so
+#usr/lib/libnss_compat.so
+#usr/lib/libnss_dns.so
+#usr/lib/libnss_files.so
+#usr/lib/libnss_hesiod.so
+#usr/lib/libnss_nis.so
+#usr/lib/libnss_nisplus.so
+#usr/lib/libpthread.a
+#usr/lib/libpthread.so
+#usr/lib/libpthread_nonshared.a
+#usr/lib/libresolv.a
+#usr/lib/libresolv.so
+#usr/lib/librpcsvc.a
+#usr/lib/librt.a
+#usr/lib/librt.so
+#usr/lib/libthread_db.so
+#usr/lib/libutil.a
+#usr/lib/libutil.so
+#usr/lib/locale
+usr/lib/locale/locale-archive
+#usr/sbin/iconvconfig
+#usr/sbin/nscd
+#usr/sbin/nscd_nischeck
+#usr/sbin/rpcinfo
+#usr/sbin/zdump
+#usr/sbin/zic
+#usr/share/i18n
+#usr/share/i18n/charmaps
+#usr/share/i18n/charmaps/ANSI_X3.110-1983.gz
+#usr/share/i18n/charmaps/ANSI_X3.4-1968.gz
+#usr/share/i18n/charmaps/ARMSCII-8.gz
+#usr/share/i18n/charmaps/ASMO_449.gz
+#usr/share/i18n/charmaps/BIG5-HKSCS.gz
+#usr/share/i18n/charmaps/BIG5.gz
+#usr/share/i18n/charmaps/BS_4730.gz
+#usr/share/i18n/charmaps/BS_VIEWDATA.gz
+#usr/share/i18n/charmaps/CP10007.gz
+#usr/share/i18n/charmaps/CP1125.gz
+#usr/share/i18n/charmaps/CP1250.gz
+#usr/share/i18n/charmaps/CP1251.gz
+#usr/share/i18n/charmaps/CP1252.gz
+#usr/share/i18n/charmaps/CP1253.gz
+#usr/share/i18n/charmaps/CP1254.gz
+#usr/share/i18n/charmaps/CP1255.gz
+#usr/share/i18n/charmaps/CP1256.gz
+#usr/share/i18n/charmaps/CP1257.gz
+#usr/share/i18n/charmaps/CP1258.gz
+#usr/share/i18n/charmaps/CP737.gz
+#usr/share/i18n/charmaps/CP775.gz
+#usr/share/i18n/charmaps/CP949.gz
+#usr/share/i18n/charmaps/CSA_Z243.4-1985-1.gz
+#usr/share/i18n/charmaps/CSA_Z243.4-1985-2.gz
+#usr/share/i18n/charmaps/CSA_Z243.4-1985-GR.gz
+#usr/share/i18n/charmaps/CSN_369103.gz
+#usr/share/i18n/charmaps/CWI.gz
+#usr/share/i18n/charmaps/DEC-MCS.gz
+#usr/share/i18n/charmaps/DIN_66003.gz
+#usr/share/i18n/charmaps/DS_2089.gz
+#usr/share/i18n/charmaps/EBCDIC-AT-DE-A.gz
+#usr/share/i18n/charmaps/EBCDIC-AT-DE.gz
+#usr/share/i18n/charmaps/EBCDIC-CA-FR.gz
+#usr/share/i18n/charmaps/EBCDIC-DK-NO-A.gz
+#usr/share/i18n/charmaps/EBCDIC-DK-NO.gz
+#usr/share/i18n/charmaps/EBCDIC-ES-A.gz
+#usr/share/i18n/charmaps/EBCDIC-ES-S.gz
+#usr/share/i18n/charmaps/EBCDIC-ES.gz
+#usr/share/i18n/charmaps/EBCDIC-FI-SE-A.gz
+#usr/share/i18n/charmaps/EBCDIC-FI-SE.gz
+#usr/share/i18n/charmaps/EBCDIC-FR.gz
+#usr/share/i18n/charmaps/EBCDIC-IS-FRISS.gz
+#usr/share/i18n/charmaps/EBCDIC-IT.gz
+#usr/share/i18n/charmaps/EBCDIC-PT.gz
+#usr/share/i18n/charmaps/EBCDIC-UK.gz
+#usr/share/i18n/charmaps/EBCDIC-US.gz
+#usr/share/i18n/charmaps/ECMA-CYRILLIC.gz
+#usr/share/i18n/charmaps/ES.gz
+#usr/share/i18n/charmaps/ES2.gz
+#usr/share/i18n/charmaps/EUC-JISX0213.gz
+#usr/share/i18n/charmaps/EUC-JP.gz
+#usr/share/i18n/charmaps/EUC-KR.gz
+#usr/share/i18n/charmaps/EUC-TW.gz
+#usr/share/i18n/charmaps/GB18030.gz
+#usr/share/i18n/charmaps/GB2312.gz
+#usr/share/i18n/charmaps/GBK.gz
+#usr/share/i18n/charmaps/GB_1988-80.gz
+#usr/share/i18n/charmaps/GEORGIAN-ACADEMY.gz
+#usr/share/i18n/charmaps/GEORGIAN-PS.gz
+#usr/share/i18n/charmaps/GOST_19768-74.gz
+#usr/share/i18n/charmaps/GREEK-CCITT.gz
+#usr/share/i18n/charmaps/GREEK7-OLD.gz
+#usr/share/i18n/charmaps/GREEK7.gz
+#usr/share/i18n/charmaps/HP-ROMAN8.gz
+#usr/share/i18n/charmaps/IBM037.gz
+#usr/share/i18n/charmaps/IBM038.gz
+#usr/share/i18n/charmaps/IBM1004.gz
+#usr/share/i18n/charmaps/IBM1026.gz
+#usr/share/i18n/charmaps/IBM1047.gz
+#usr/share/i18n/charmaps/IBM1124.gz
+#usr/share/i18n/charmaps/IBM1129.gz
+#usr/share/i18n/charmaps/IBM1132.gz
+#usr/share/i18n/charmaps/IBM1133.gz
+#usr/share/i18n/charmaps/IBM1160.gz
+#usr/share/i18n/charmaps/IBM1161.gz
+#usr/share/i18n/charmaps/IBM1162.gz
+#usr/share/i18n/charmaps/IBM1163.gz
+#usr/share/i18n/charmaps/IBM1164.gz
+#usr/share/i18n/charmaps/IBM256.gz
+#usr/share/i18n/charmaps/IBM273.gz
+#usr/share/i18n/charmaps/IBM274.gz
+#usr/share/i18n/charmaps/IBM275.gz
+#usr/share/i18n/charmaps/IBM277.gz
+#usr/share/i18n/charmaps/IBM278.gz
+#usr/share/i18n/charmaps/IBM280.gz
+#usr/share/i18n/charmaps/IBM281.gz
+#usr/share/i18n/charmaps/IBM284.gz
+#usr/share/i18n/charmaps/IBM285.gz
+#usr/share/i18n/charmaps/IBM290.gz
+#usr/share/i18n/charmaps/IBM297.gz
+#usr/share/i18n/charmaps/IBM420.gz
+#usr/share/i18n/charmaps/IBM423.gz
+#usr/share/i18n/charmaps/IBM424.gz
+#usr/share/i18n/charmaps/IBM437.gz
+#usr/share/i18n/charmaps/IBM500.gz
+#usr/share/i18n/charmaps/IBM850.gz
+#usr/share/i18n/charmaps/IBM851.gz
+#usr/share/i18n/charmaps/IBM852.gz
+#usr/share/i18n/charmaps/IBM855.gz
+#usr/share/i18n/charmaps/IBM856.gz
+#usr/share/i18n/charmaps/IBM857.gz
+#usr/share/i18n/charmaps/IBM860.gz
+#usr/share/i18n/charmaps/IBM861.gz
+#usr/share/i18n/charmaps/IBM862.gz
+#usr/share/i18n/charmaps/IBM863.gz
+#usr/share/i18n/charmaps/IBM864.gz
+#usr/share/i18n/charmaps/IBM865.gz
+#usr/share/i18n/charmaps/IBM866.gz
+#usr/share/i18n/charmaps/IBM866NAV.gz
+#usr/share/i18n/charmaps/IBM868.gz
+#usr/share/i18n/charmaps/IBM869.gz
+#usr/share/i18n/charmaps/IBM870.gz
+#usr/share/i18n/charmaps/IBM871.gz
+#usr/share/i18n/charmaps/IBM874.gz
+#usr/share/i18n/charmaps/IBM875.gz
+#usr/share/i18n/charmaps/IBM880.gz
+#usr/share/i18n/charmaps/IBM891.gz
+#usr/share/i18n/charmaps/IBM903.gz
+#usr/share/i18n/charmaps/IBM904.gz
+#usr/share/i18n/charmaps/IBM905.gz
+#usr/share/i18n/charmaps/IBM918.gz
+#usr/share/i18n/charmaps/IBM922.gz
+#usr/share/i18n/charmaps/IEC_P27-1.gz
+#usr/share/i18n/charmaps/INIS-8.gz
+#usr/share/i18n/charmaps/INIS-CYRILLIC.gz
+#usr/share/i18n/charmaps/INIS.gz
+#usr/share/i18n/charmaps/INVARIANT.gz
+#usr/share/i18n/charmaps/ISIRI-3342.gz
+#usr/share/i18n/charmaps/ISO-8859-1.gz
+#usr/share/i18n/charmaps/ISO-8859-10.gz
+#usr/share/i18n/charmaps/ISO-8859-11.gz
+#usr/share/i18n/charmaps/ISO-8859-13.gz
+#usr/share/i18n/charmaps/ISO-8859-14.gz
+#usr/share/i18n/charmaps/ISO-8859-15.gz
+#usr/share/i18n/charmaps/ISO-8859-16.gz
+#usr/share/i18n/charmaps/ISO-8859-2.gz
+#usr/share/i18n/charmaps/ISO-8859-3.gz
+#usr/share/i18n/charmaps/ISO-8859-4.gz
+#usr/share/i18n/charmaps/ISO-8859-5.gz
+#usr/share/i18n/charmaps/ISO-8859-6.gz
+#usr/share/i18n/charmaps/ISO-8859-7.gz
+#usr/share/i18n/charmaps/ISO-8859-8.gz
+#usr/share/i18n/charmaps/ISO-8859-9.gz
+#usr/share/i18n/charmaps/ISO-IR-197.gz
+#usr/share/i18n/charmaps/ISO-IR-209.gz
+#usr/share/i18n/charmaps/ISO-IR-90.gz
+#usr/share/i18n/charmaps/ISO_10367-BOX.gz
+#usr/share/i18n/charmaps/ISO_10646.gz
+#usr/share/i18n/charmaps/ISO_2033-1983.gz
+#usr/share/i18n/charmaps/ISO_5427-EXT.gz
+#usr/share/i18n/charmaps/ISO_5427.gz
+#usr/share/i18n/charmaps/ISO_5428.gz
+#usr/share/i18n/charmaps/ISO_646.BASIC.gz
+#usr/share/i18n/charmaps/ISO_646.IRV.gz
+#usr/share/i18n/charmaps/ISO_6937-2-25.gz
+#usr/share/i18n/charmaps/ISO_6937-2-ADD.gz
+#usr/share/i18n/charmaps/ISO_6937.gz
+#usr/share/i18n/charmaps/ISO_8859-1,GL.gz
+#usr/share/i18n/charmaps/ISO_8859-SUPP.gz
+#usr/share/i18n/charmaps/IT.gz
+#usr/share/i18n/charmaps/JIS_C6220-1969-JP.gz
+#usr/share/i18n/charmaps/JIS_C6220-1969-RO.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-A.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-B-ADD.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-B.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-HAND-ADD.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-HAND.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-KANA.gz
+#usr/share/i18n/charmaps/JIS_X0201.gz
+#usr/share/i18n/charmaps/JOHAB.gz
+#usr/share/i18n/charmaps/JUS_I.B1.002.gz
+#usr/share/i18n/charmaps/JUS_I.B1.003-MAC.gz
+#usr/share/i18n/charmaps/JUS_I.B1.003-SERB.gz
+#usr/share/i18n/charmaps/KOI-8.gz
+#usr/share/i18n/charmaps/KOI8-R.gz
+#usr/share/i18n/charmaps/KOI8-T.gz
+#usr/share/i18n/charmaps/KOI8-U.gz
+#usr/share/i18n/charmaps/KSC5636.gz
+#usr/share/i18n/charmaps/LATIN-GREEK-1.gz
+#usr/share/i18n/charmaps/LATIN-GREEK.gz
+#usr/share/i18n/charmaps/MAC-CYRILLIC.gz
+#usr/share/i18n/charmaps/MAC-IS.gz
+#usr/share/i18n/charmaps/MAC-SAMI.gz
+#usr/share/i18n/charmaps/MAC-UK.gz
+#usr/share/i18n/charmaps/MACINTOSH.gz
+#usr/share/i18n/charmaps/MSZ_7795.3.gz
+#usr/share/i18n/charmaps/NATS-DANO-ADD.gz
+#usr/share/i18n/charmaps/NATS-DANO.gz
+#usr/share/i18n/charmaps/NATS-SEFI-ADD.gz
+#usr/share/i18n/charmaps/NATS-SEFI.gz
+#usr/share/i18n/charmaps/NC_NC00-10.gz
+#usr/share/i18n/charmaps/NEXTSTEP.gz
+#usr/share/i18n/charmaps/NF_Z_62-010.gz
+#usr/share/i18n/charmaps/NF_Z_62-010_1973.gz
+#usr/share/i18n/charmaps/NS_4551-1.gz
+#usr/share/i18n/charmaps/NS_4551-2.gz
+#usr/share/i18n/charmaps/PT.gz
+#usr/share/i18n/charmaps/PT2.gz
+#usr/share/i18n/charmaps/SAMI-WS2.gz
+#usr/share/i18n/charmaps/SAMI.gz
+#usr/share/i18n/charmaps/SEN_850200_B.gz
+#usr/share/i18n/charmaps/SEN_850200_C.gz
+#usr/share/i18n/charmaps/SHIFT_JIS.gz
+#usr/share/i18n/charmaps/SHIFT_JISX0213.gz
+#usr/share/i18n/charmaps/T.101-G2.gz
+#usr/share/i18n/charmaps/T.61-7BIT.gz
+#usr/share/i18n/charmaps/T.61-8BIT.gz
+#usr/share/i18n/charmaps/TCVN5712-1.gz
+#usr/share/i18n/charmaps/TIS-620.gz
+#usr/share/i18n/charmaps/TSCII.gz
+usr/share/i18n/charmaps/UTF-8.gz
+#usr/share/i18n/charmaps/VIDEOTEX-SUPPL.gz
+#usr/share/i18n/charmaps/VISCII.gz
+#usr/share/i18n/locales
+#usr/share/i18n/locales/POSIX
+#usr/share/i18n/locales/af_ZA
+#usr/share/i18n/locales/am_ET
+#usr/share/i18n/locales/ar_AE
+#usr/share/i18n/locales/ar_BH
+#usr/share/i18n/locales/ar_DZ
+#usr/share/i18n/locales/ar_EG
+#usr/share/i18n/locales/ar_IN
+#usr/share/i18n/locales/ar_IQ
+#usr/share/i18n/locales/ar_JO
+#usr/share/i18n/locales/ar_KW
+#usr/share/i18n/locales/ar_LB
+#usr/share/i18n/locales/ar_LY
+#usr/share/i18n/locales/ar_MA
+#usr/share/i18n/locales/ar_OM
+#usr/share/i18n/locales/ar_QA
+#usr/share/i18n/locales/ar_SA
+#usr/share/i18n/locales/ar_SD
+#usr/share/i18n/locales/ar_SY
+#usr/share/i18n/locales/ar_TN
+#usr/share/i18n/locales/ar_YE
+#usr/share/i18n/locales/az_AZ
+#usr/share/i18n/locales/be_BY
+#usr/share/i18n/locales/bg_BG
+#usr/share/i18n/locales/bn_BD
+#usr/share/i18n/locales/bn_IN
+#usr/share/i18n/locales/br_FR
+#usr/share/i18n/locales/br_FR@euro
+#usr/share/i18n/locales/bs_BA
+#usr/share/i18n/locales/ca_ES
+#usr/share/i18n/locales/ca_ES@euro
+#usr/share/i18n/locales/cs_CZ
+#usr/share/i18n/locales/cy_GB
+#usr/share/i18n/locales/da_DK
+#usr/share/i18n/locales/de_AT
+#usr/share/i18n/locales/de_AT@euro
+#usr/share/i18n/locales/de_BE
+#usr/share/i18n/locales/de_BE@euro
+#usr/share/i18n/locales/de_CH
+#usr/share/i18n/locales/de_DE
+#usr/share/i18n/locales/de_DE@euro
+#usr/share/i18n/locales/de_LU
+#usr/share/i18n/locales/de_LU@euro
+#usr/share/i18n/locales/el_GR
+#usr/share/i18n/locales/el_GR@euro
+#usr/share/i18n/locales/en_AU
+#usr/share/i18n/locales/en_BW
+#usr/share/i18n/locales/en_CA
+#usr/share/i18n/locales/en_DK
+#usr/share/i18n/locales/en_GB
+#usr/share/i18n/locales/en_HK
+#usr/share/i18n/locales/en_IE
+#usr/share/i18n/locales/en_IE@euro
+#usr/share/i18n/locales/en_IN
+#usr/share/i18n/locales/en_NZ
+#usr/share/i18n/locales/en_PH
+#usr/share/i18n/locales/en_SG
+#usr/share/i18n/locales/en_US
+#usr/share/i18n/locales/en_ZA
+#usr/share/i18n/locales/en_ZW
+#usr/share/i18n/locales/es_AR
+#usr/share/i18n/locales/es_BO
+#usr/share/i18n/locales/es_CL
+#usr/share/i18n/locales/es_CO
+#usr/share/i18n/locales/es_CR
+#usr/share/i18n/locales/es_DO
+#usr/share/i18n/locales/es_EC
+#usr/share/i18n/locales/es_ES
+#usr/share/i18n/locales/es_ES@euro
+#usr/share/i18n/locales/es_GT
+#usr/share/i18n/locales/es_HN
+#usr/share/i18n/locales/es_MX
+#usr/share/i18n/locales/es_NI
+#usr/share/i18n/locales/es_PA
+#usr/share/i18n/locales/es_PE
+#usr/share/i18n/locales/es_PR
+#usr/share/i18n/locales/es_PY
+#usr/share/i18n/locales/es_SV
+#usr/share/i18n/locales/es_US
+#usr/share/i18n/locales/es_UY
+#usr/share/i18n/locales/es_VE
+#usr/share/i18n/locales/et_EE
+#usr/share/i18n/locales/eu_ES
+#usr/share/i18n/locales/eu_ES@euro
+#usr/share/i18n/locales/fa_IR
+#usr/share/i18n/locales/fi_FI
+#usr/share/i18n/locales/fi_FI@euro
+#usr/share/i18n/locales/fo_FO
+#usr/share/i18n/locales/fr_BE
+#usr/share/i18n/locales/fr_BE@euro
+#usr/share/i18n/locales/fr_CA
+#usr/share/i18n/locales/fr_CH
+#usr/share/i18n/locales/fr_FR
+#usr/share/i18n/locales/fr_FR@euro
+#usr/share/i18n/locales/fr_LU
+#usr/share/i18n/locales/fr_LU@euro
+#usr/share/i18n/locales/ga_IE
+#usr/share/i18n/locales/ga_IE@euro
+#usr/share/i18n/locales/gd_GB
+#usr/share/i18n/locales/gl_ES
+#usr/share/i18n/locales/gl_ES@euro
+#usr/share/i18n/locales/gv_GB
+#usr/share/i18n/locales/he_IL
+#usr/share/i18n/locales/hi_IN
+#usr/share/i18n/locales/hr_HR
+#usr/share/i18n/locales/hu_HU
+#usr/share/i18n/locales/hy_AM
+#usr/share/i18n/locales/i18n
+#usr/share/i18n/locales/id_ID
+#usr/share/i18n/locales/is_IS
+#usr/share/i18n/locales/iso14651_t1
+#usr/share/i18n/locales/it_CH
+#usr/share/i18n/locales/it_IT
+#usr/share/i18n/locales/it_IT@euro
+#usr/share/i18n/locales/iw_IL
+#usr/share/i18n/locales/ja_JP
+#usr/share/i18n/locales/ka_GE
+#usr/share/i18n/locales/kl_GL
+#usr/share/i18n/locales/ko_KR
+#usr/share/i18n/locales/kw_GB
+#usr/share/i18n/locales/lt_LT
+#usr/share/i18n/locales/lug_UG
+#usr/share/i18n/locales/lv_LV
+#usr/share/i18n/locales/mi_NZ
+#usr/share/i18n/locales/mk_MK
+#usr/share/i18n/locales/ml_IN
+#usr/share/i18n/locales/mr_IN
+#usr/share/i18n/locales/ms_MY
+#usr/share/i18n/locales/mt_MT
+#usr/share/i18n/locales/nl_BE
+#usr/share/i18n/locales/nl_BE@euro
+#usr/share/i18n/locales/nl_NL
+#usr/share/i18n/locales/nl_NL@euro
+#usr/share/i18n/locales/nn_NO
+#usr/share/i18n/locales/no_NO
+#usr/share/i18n/locales/oc_FR
+#usr/share/i18n/locales/pl_PL
+#usr/share/i18n/locales/pt_BR
+#usr/share/i18n/locales/pt_PT
+#usr/share/i18n/locales/pt_PT@euro
+#usr/share/i18n/locales/ro_RO
+#usr/share/i18n/locales/ru_RU
+#usr/share/i18n/locales/ru_UA
+#usr/share/i18n/locales/se_NO
+#usr/share/i18n/locales/sk_SK
+#usr/share/i18n/locales/sl_SI
+#usr/share/i18n/locales/sq_AL
+#usr/share/i18n/locales/sr_YU
+#usr/share/i18n/locales/sr_YU@cyrillic
+#usr/share/i18n/locales/sv_FI
+#usr/share/i18n/locales/sv_FI@euro
+#usr/share/i18n/locales/sv_SE
+#usr/share/i18n/locales/ta_IN
+#usr/share/i18n/locales/te_IN
+#usr/share/i18n/locales/tg_TJ
+#usr/share/i18n/locales/th_TH
+#usr/share/i18n/locales/ti_ER
+#usr/share/i18n/locales/ti_ET
+#usr/share/i18n/locales/tl_PH
+#usr/share/i18n/locales/tr_TR
+#usr/share/i18n/locales/translit_circle
+#usr/share/i18n/locales/translit_cjk_compat
+#usr/share/i18n/locales/translit_cjk_variants
+#usr/share/i18n/locales/translit_combining
+#usr/share/i18n/locales/translit_compat
+#usr/share/i18n/locales/translit_et
+#usr/share/i18n/locales/translit_font
+#usr/share/i18n/locales/translit_fraction
+#usr/share/i18n/locales/translit_hangul
+#usr/share/i18n/locales/translit_narrow
+#usr/share/i18n/locales/translit_neutral
+#usr/share/i18n/locales/translit_small
+#usr/share/i18n/locales/translit_wide
+#usr/share/i18n/locales/tt_RU
+#usr/share/i18n/locales/uk_UA
+#usr/share/i18n/locales/ur_PK
+#usr/share/i18n/locales/uz_UZ
+#usr/share/i18n/locales/vi_VN
+#usr/share/i18n/locales/wa_BE
+#usr/share/i18n/locales/wa_BE@euro
+#usr/share/i18n/locales/yi_US
+#usr/share/i18n/locales/zh_CN
+#usr/share/i18n/locales/zh_HK
+#usr/share/i18n/locales/zh_SG
+#usr/share/i18n/locales/zh_TW
+#usr/share/info/dir
+#usr/share/info/libc.info
+#usr/share/info/libc.info-1
+#usr/share/info/libc.info-10
+#usr/share/info/libc.info-11
+#usr/share/info/libc.info-12
+#usr/share/info/libc.info-13
+#usr/share/info/libc.info-14
+#usr/share/info/libc.info-15
+#usr/share/info/libc.info-16
+#usr/share/info/libc.info-17
+#usr/share/info/libc.info-18
+#usr/share/info/libc.info-19
+#usr/share/info/libc.info-2
+#usr/share/info/libc.info-20
+#usr/share/info/libc.info-21
+#usr/share/info/libc.info-22
+#usr/share/info/libc.info-23
+#usr/share/info/libc.info-24
+#usr/share/info/libc.info-25
+#usr/share/info/libc.info-26
+#usr/share/info/libc.info-27
+#usr/share/info/libc.info-28
+#usr/share/info/libc.info-29
+#usr/share/info/libc.info-3
+#usr/share/info/libc.info-30
+#usr/share/info/libc.info-31
+#usr/share/info/libc.info-32
+#usr/share/info/libc.info-33
+#usr/share/info/libc.info-34
+#usr/share/info/libc.info-35
+#usr/share/info/libc.info-36
+#usr/share/info/libc.info-37
+#usr/share/info/libc.info-38
+#usr/share/info/libc.info-39
+#usr/share/info/libc.info-4
+#usr/share/info/libc.info-40
+#usr/share/info/libc.info-41
+#usr/share/info/libc.info-42
+#usr/share/info/libc.info-43
+#usr/share/info/libc.info-44
+#usr/share/info/libc.info-45
+#usr/share/info/libc.info-46
+#usr/share/info/libc.info-47
+#usr/share/info/libc.info-48
+#usr/share/info/libc.info-49
+#usr/share/info/libc.info-5
+#usr/share/info/libc.info-50
+#usr/share/info/libc.info-51
+#usr/share/info/libc.info-52
+#usr/share/info/libc.info-53
+#usr/share/info/libc.info-54
+#usr/share/info/libc.info-55
+#usr/share/info/libc.info-56
+#usr/share/info/libc.info-57
+#usr/share/info/libc.info-58
+#usr/share/info/libc.info-59
+#usr/share/info/libc.info-6
+#usr/share/info/libc.info-60
+#usr/share/info/libc.info-61
+#usr/share/info/libc.info-7
+#usr/share/info/libc.info-8
+#usr/share/info/libc.info-9
+#usr/share/locale/be
+#usr/share/locale/be/LC_MESSAGES
+#usr/share/locale/be/LC_MESSAGES/libc.mo
+#usr/share/locale/ca
+#usr/share/locale/ca/LC_MESSAGES
+#usr/share/locale/ca/LC_MESSAGES/libc.mo
+#usr/share/locale/cs
+#usr/share/locale/cs/LC_MESSAGES
+#usr/share/locale/cs/LC_MESSAGES/libc.mo
+#usr/share/locale/da
+#usr/share/locale/da/LC_MESSAGES
+#usr/share/locale/da/LC_MESSAGES/libc.mo
+#usr/share/locale/de
+#usr/share/locale/de/LC_MESSAGES
+#usr/share/locale/de/LC_MESSAGES/libc.mo
+#usr/share/locale/el
+#usr/share/locale/el/LC_MESSAGES
+#usr/share/locale/el/LC_MESSAGES/libc.mo
+#usr/share/locale/en_GB
+#usr/share/locale/en_GB/LC_MESSAGES
+#usr/share/locale/en_GB/LC_MESSAGES/libc.mo
+#usr/share/locale/es
+#usr/share/locale/es/LC_MESSAGES
+#usr/share/locale/es/LC_MESSAGES/libc.mo
+#usr/share/locale/fi
+#usr/share/locale/fi/LC_MESSAGES
+#usr/share/locale/fi/LC_MESSAGES/libc.mo
+#usr/share/locale/fr
+#usr/share/locale/fr/LC_MESSAGES
+#usr/share/locale/fr/LC_MESSAGES/libc.mo
+#usr/share/locale/gl
+#usr/share/locale/gl/LC_MESSAGES
+#usr/share/locale/gl/LC_MESSAGES/libc.mo
+#usr/share/locale/hr
+#usr/share/locale/hr/LC_MESSAGES
+#usr/share/locale/hr/LC_MESSAGES/libc.mo
+#usr/share/locale/hu
+#usr/share/locale/hu/LC_MESSAGES
+#usr/share/locale/hu/LC_MESSAGES/libc.mo
+#usr/share/locale/it
+#usr/share/locale/it/LC_MESSAGES
+#usr/share/locale/it/LC_MESSAGES/libc.mo
+#usr/share/locale/ja
+#usr/share/locale/ja/LC_MESSAGES
+#usr/share/locale/ja/LC_MESSAGES/libc.mo
+#usr/share/locale/ko
+#usr/share/locale/ko/LC_MESSAGES
+#usr/share/locale/ko/LC_MESSAGES/libc.mo
+#usr/share/locale/locale.alias
+#usr/share/locale/nl
+#usr/share/locale/nl/LC_MESSAGES
+#usr/share/locale/nl/LC_MESSAGES/libc.mo
+#usr/share/locale/no
+#usr/share/locale/no/LC_MESSAGES
+#usr/share/locale/no/LC_MESSAGES/libc.mo
+#usr/share/locale/pl
+#usr/share/locale/pl/LC_MESSAGES
+#usr/share/locale/pl/LC_MESSAGES/libc.mo
+#usr/share/locale/pt_BR
+#usr/share/locale/pt_BR/LC_MESSAGES
+#usr/share/locale/pt_BR/LC_MESSAGES/libc.mo
+#usr/share/locale/sk
+#usr/share/locale/sk/LC_MESSAGES
+#usr/share/locale/sk/LC_MESSAGES/libc.mo
+#usr/share/locale/sv
+#usr/share/locale/sv/LC_MESSAGES
+#usr/share/locale/sv/LC_MESSAGES/libc.mo
+#usr/share/locale/tr
+#usr/share/locale/tr/LC_MESSAGES
+#usr/share/locale/tr/LC_MESSAGES/libc.mo
+#usr/share/locale/zh_CN
+#usr/share/locale/zh_CN/LC_MESSAGES
+#usr/share/locale/zh_CN/LC_MESSAGES/libc.mo
+#usr/share/locale/zh_TW
+#usr/share/locale/zh_TW/LC_MESSAGES
+#usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
+#usr/share/zoneinfo/Africa
+#usr/share/zoneinfo/Africa/Abidjan
+#usr/share/zoneinfo/Africa/Accra
+#usr/share/zoneinfo/Africa/Addis_Ababa
+#usr/share/zoneinfo/Africa/Algiers
+#usr/share/zoneinfo/Africa/Asmera
+#usr/share/zoneinfo/Africa/Bamako
+#usr/share/zoneinfo/Africa/Bangui
+#usr/share/zoneinfo/Africa/Banjul
+#usr/share/zoneinfo/Africa/Bissau
+#usr/share/zoneinfo/Africa/Blantyre
+#usr/share/zoneinfo/Africa/Brazzaville
+#usr/share/zoneinfo/Africa/Bujumbura
+#usr/share/zoneinfo/Africa/Cairo
+#usr/share/zoneinfo/Africa/Casablanca
+#usr/share/zoneinfo/Africa/Ceuta
+#usr/share/zoneinfo/Africa/Conakry
+#usr/share/zoneinfo/Africa/Dakar
+#usr/share/zoneinfo/Africa/Dar_es_Salaam
+#usr/share/zoneinfo/Africa/Djibouti
+#usr/share/zoneinfo/Africa/Douala
+#usr/share/zoneinfo/Africa/El_Aaiun
+#usr/share/zoneinfo/Africa/Freetown
+#usr/share/zoneinfo/Africa/Gaborone
+#usr/share/zoneinfo/Africa/Harare
+#usr/share/zoneinfo/Africa/Johannesburg
+#usr/share/zoneinfo/Africa/Kampala
+#usr/share/zoneinfo/Africa/Khartoum
+#usr/share/zoneinfo/Africa/Kigali
+#usr/share/zoneinfo/Africa/Kinshasa
+#usr/share/zoneinfo/Africa/Lagos
+#usr/share/zoneinfo/Africa/Libreville
+#usr/share/zoneinfo/Africa/Lome
+#usr/share/zoneinfo/Africa/Luanda
+#usr/share/zoneinfo/Africa/Lubumbashi
+#usr/share/zoneinfo/Africa/Lusaka
+#usr/share/zoneinfo/Africa/Malabo
+#usr/share/zoneinfo/Africa/Maputo
+#usr/share/zoneinfo/Africa/Maseru
+#usr/share/zoneinfo/Africa/Mbabane
+#usr/share/zoneinfo/Africa/Mogadishu
+#usr/share/zoneinfo/Africa/Monrovia
+#usr/share/zoneinfo/Africa/Nairobi
+#usr/share/zoneinfo/Africa/Ndjamena
+#usr/share/zoneinfo/Africa/Niamey
+#usr/share/zoneinfo/Africa/Nouakchott
+#usr/share/zoneinfo/Africa/Ouagadougou
+#usr/share/zoneinfo/Africa/Porto-Novo
+#usr/share/zoneinfo/Africa/Sao_Tome
+#usr/share/zoneinfo/Africa/Timbuktu
+#usr/share/zoneinfo/Africa/Tripoli
+#usr/share/zoneinfo/Africa/Tunis
+#usr/share/zoneinfo/Africa/Windhoek
+#usr/share/zoneinfo/America
+#usr/share/zoneinfo/America/Adak
+#usr/share/zoneinfo/America/Anchorage
+#usr/share/zoneinfo/America/Anguilla
+#usr/share/zoneinfo/America/Antigua
+#usr/share/zoneinfo/America/Araguaina
+#usr/share/zoneinfo/America/Aruba
+#usr/share/zoneinfo/America/Asuncion
+#usr/share/zoneinfo/America/Atka
+#usr/share/zoneinfo/America/Barbados
+#usr/share/zoneinfo/America/Belem
+#usr/share/zoneinfo/America/Belize
+#usr/share/zoneinfo/America/Boa_Vista
+#usr/share/zoneinfo/America/Bogota
+#usr/share/zoneinfo/America/Boise
+#usr/share/zoneinfo/America/Buenos_Aires
+#usr/share/zoneinfo/America/Cambridge_Bay
+#usr/share/zoneinfo/America/Cancun
+#usr/share/zoneinfo/America/Caracas
+#usr/share/zoneinfo/America/Catamarca
+#usr/share/zoneinfo/America/Cayenne
+#usr/share/zoneinfo/America/Cayman
+#usr/share/zoneinfo/America/Chicago
+#usr/share/zoneinfo/America/Chihuahua
+#usr/share/zoneinfo/America/Cordoba
+#usr/share/zoneinfo/America/Costa_Rica
+#usr/share/zoneinfo/America/Cuiaba
+#usr/share/zoneinfo/America/Curacao
+#usr/share/zoneinfo/America/Danmarkshavn
+#usr/share/zoneinfo/America/Dawson
+#usr/share/zoneinfo/America/Dawson_Creek
+#usr/share/zoneinfo/America/Denver
+#usr/share/zoneinfo/America/Detroit
+#usr/share/zoneinfo/America/Dominica
+#usr/share/zoneinfo/America/Edmonton
+#usr/share/zoneinfo/America/Eirunepe
+#usr/share/zoneinfo/America/El_Salvador
+#usr/share/zoneinfo/America/Ensenada
+#usr/share/zoneinfo/America/Fort_Wayne
+#usr/share/zoneinfo/America/Fortaleza
+#usr/share/zoneinfo/America/Glace_Bay
+#usr/share/zoneinfo/America/Godthab
+#usr/share/zoneinfo/America/Goose_Bay
+#usr/share/zoneinfo/America/Grand_Turk
+#usr/share/zoneinfo/America/Grenada
+#usr/share/zoneinfo/America/Guadeloupe
+#usr/share/zoneinfo/America/Guatemala
+#usr/share/zoneinfo/America/Guayaquil
+#usr/share/zoneinfo/America/Guyana
+#usr/share/zoneinfo/America/Halifax
+#usr/share/zoneinfo/America/Havana
+#usr/share/zoneinfo/America/Hermosillo
+#usr/share/zoneinfo/America/Indiana
+#usr/share/zoneinfo/America/Indiana/Indianapolis
+#usr/share/zoneinfo/America/Indiana/Knox
+#usr/share/zoneinfo/America/Indiana/Marengo
+#usr/share/zoneinfo/America/Indiana/Vevay
+#usr/share/zoneinfo/America/Indianapolis
+#usr/share/zoneinfo/America/Inuvik
+#usr/share/zoneinfo/America/Iqaluit
+#usr/share/zoneinfo/America/Jamaica
+#usr/share/zoneinfo/America/Jujuy
+#usr/share/zoneinfo/America/Juneau
+#usr/share/zoneinfo/America/Kentucky
+#usr/share/zoneinfo/America/Kentucky/Louisville
+#usr/share/zoneinfo/America/Kentucky/Monticello
+#usr/share/zoneinfo/America/Knox_IN
+#usr/share/zoneinfo/America/La_Paz
+#usr/share/zoneinfo/America/Lima
+#usr/share/zoneinfo/America/Los_Angeles
+#usr/share/zoneinfo/America/Louisville
+#usr/share/zoneinfo/America/Maceio
+#usr/share/zoneinfo/America/Managua
+#usr/share/zoneinfo/America/Manaus
+#usr/share/zoneinfo/America/Martinique
+#usr/share/zoneinfo/America/Mazatlan
+#usr/share/zoneinfo/America/Mendoza
+#usr/share/zoneinfo/America/Menominee
+#usr/share/zoneinfo/America/Merida
+#usr/share/zoneinfo/America/Mexico_City
+#usr/share/zoneinfo/America/Miquelon
+#usr/share/zoneinfo/America/Monterrey
+#usr/share/zoneinfo/America/Montevideo
+#usr/share/zoneinfo/America/Montreal
+#usr/share/zoneinfo/America/Montserrat
+#usr/share/zoneinfo/America/Nassau
+#usr/share/zoneinfo/America/New_York
+#usr/share/zoneinfo/America/Nipigon
+#usr/share/zoneinfo/America/Nome
+#usr/share/zoneinfo/America/Noronha
+#usr/share/zoneinfo/America/North_Dakota
+#usr/share/zoneinfo/America/North_Dakota/Center
+#usr/share/zoneinfo/America/Panama
+#usr/share/zoneinfo/America/Pangnirtung
+#usr/share/zoneinfo/America/Paramaribo
+#usr/share/zoneinfo/America/Phoenix
+#usr/share/zoneinfo/America/Port-au-Prince
+#usr/share/zoneinfo/America/Port_of_Spain
+#usr/share/zoneinfo/America/Porto_Acre
+#usr/share/zoneinfo/America/Porto_Velho
+#usr/share/zoneinfo/America/Puerto_Rico
+#usr/share/zoneinfo/America/Rainy_River
+#usr/share/zoneinfo/America/Rankin_Inlet
+#usr/share/zoneinfo/America/Recife
+#usr/share/zoneinfo/America/Regina
+#usr/share/zoneinfo/America/Rio_Branco
+#usr/share/zoneinfo/America/Rosario
+#usr/share/zoneinfo/America/Santiago
+#usr/share/zoneinfo/America/Santo_Domingo
+#usr/share/zoneinfo/America/Sao_Paulo
+#usr/share/zoneinfo/America/Scoresbysund
+#usr/share/zoneinfo/America/Shiprock
+#usr/share/zoneinfo/America/St_Johns
+#usr/share/zoneinfo/America/St_Kitts
+#usr/share/zoneinfo/America/St_Lucia
+#usr/share/zoneinfo/America/St_Thomas
+#usr/share/zoneinfo/America/St_Vincent
+#usr/share/zoneinfo/America/Swift_Current
+#usr/share/zoneinfo/America/Tegucigalpa
+#usr/share/zoneinfo/America/Thule
+#usr/share/zoneinfo/America/Thunder_Bay
+#usr/share/zoneinfo/America/Tijuana
+#usr/share/zoneinfo/America/Tortola
+#usr/share/zoneinfo/America/Vancouver
+#usr/share/zoneinfo/America/Virgin
+#usr/share/zoneinfo/America/Whitehorse
+#usr/share/zoneinfo/America/Winnipeg
+#usr/share/zoneinfo/America/Yakutat
+#usr/share/zoneinfo/America/Yellowknife
+#usr/share/zoneinfo/Antarctica
+#usr/share/zoneinfo/Antarctica/Casey
+#usr/share/zoneinfo/Antarctica/Davis
+#usr/share/zoneinfo/Antarctica/DumontDUrville
+#usr/share/zoneinfo/Antarctica/Mawson
+#usr/share/zoneinfo/Antarctica/McMurdo
+#usr/share/zoneinfo/Antarctica/Palmer
+#usr/share/zoneinfo/Antarctica/South_Pole
+#usr/share/zoneinfo/Antarctica/Syowa
+#usr/share/zoneinfo/Antarctica/Vostok
+#usr/share/zoneinfo/Arctic
+#usr/share/zoneinfo/Arctic/Longyearbyen
+#usr/share/zoneinfo/Asia
+#usr/share/zoneinfo/Asia/Aden
+#usr/share/zoneinfo/Asia/Almaty
+#usr/share/zoneinfo/Asia/Amman
+#usr/share/zoneinfo/Asia/Anadyr
+#usr/share/zoneinfo/Asia/Aqtau
+#usr/share/zoneinfo/Asia/Aqtobe
+#usr/share/zoneinfo/Asia/Ashgabat
+#usr/share/zoneinfo/Asia/Ashkhabad
+#usr/share/zoneinfo/Asia/Baghdad
+#usr/share/zoneinfo/Asia/Bahrain
+#usr/share/zoneinfo/Asia/Baku
+#usr/share/zoneinfo/Asia/Bangkok
+#usr/share/zoneinfo/Asia/Beirut
+#usr/share/zoneinfo/Asia/Bishkek
+#usr/share/zoneinfo/Asia/Brunei
+#usr/share/zoneinfo/Asia/Calcutta
+#usr/share/zoneinfo/Asia/Choibalsan
+#usr/share/zoneinfo/Asia/Chongqing
+#usr/share/zoneinfo/Asia/Chungking
+#usr/share/zoneinfo/Asia/Colombo
+#usr/share/zoneinfo/Asia/Dacca
+#usr/share/zoneinfo/Asia/Damascus
+#usr/share/zoneinfo/Asia/Dhaka
+#usr/share/zoneinfo/Asia/Dili
+#usr/share/zoneinfo/Asia/Dubai
+#usr/share/zoneinfo/Asia/Dushanbe
+#usr/share/zoneinfo/Asia/Gaza
+#usr/share/zoneinfo/Asia/Harbin
+#usr/share/zoneinfo/Asia/Hong_Kong
+#usr/share/zoneinfo/Asia/Hovd
+#usr/share/zoneinfo/Asia/Irkutsk
+#usr/share/zoneinfo/Asia/Istanbul
+#usr/share/zoneinfo/Asia/Jakarta
+#usr/share/zoneinfo/Asia/Jayapura
+#usr/share/zoneinfo/Asia/Jerusalem
+#usr/share/zoneinfo/Asia/Kabul
+#usr/share/zoneinfo/Asia/Kamchatka
+#usr/share/zoneinfo/Asia/Karachi
+#usr/share/zoneinfo/Asia/Kashgar
+#usr/share/zoneinfo/Asia/Katmandu
+#usr/share/zoneinfo/Asia/Krasnoyarsk
+#usr/share/zoneinfo/Asia/Kuala_Lumpur
+#usr/share/zoneinfo/Asia/Kuching
+#usr/share/zoneinfo/Asia/Kuwait
+#usr/share/zoneinfo/Asia/Macao
+#usr/share/zoneinfo/Asia/Macau
+#usr/share/zoneinfo/Asia/Magadan
+#usr/share/zoneinfo/Asia/Makassar
+#usr/share/zoneinfo/Asia/Manila
+#usr/share/zoneinfo/Asia/Muscat
+#usr/share/zoneinfo/Asia/Nicosia
+#usr/share/zoneinfo/Asia/Novosibirsk
+#usr/share/zoneinfo/Asia/Omsk
+#usr/share/zoneinfo/Asia/Oral
+#usr/share/zoneinfo/Asia/Phnom_Penh
+#usr/share/zoneinfo/Asia/Pontianak
+#usr/share/zoneinfo/Asia/Pyongyang
+#usr/share/zoneinfo/Asia/Qatar
+#usr/share/zoneinfo/Asia/Qyzylorda
+#usr/share/zoneinfo/Asia/Rangoon
+#usr/share/zoneinfo/Asia/Riyadh
+#usr/share/zoneinfo/Asia/Riyadh87
+#usr/share/zoneinfo/Asia/Riyadh88
+#usr/share/zoneinfo/Asia/Riyadh89
+#usr/share/zoneinfo/Asia/Saigon
+#usr/share/zoneinfo/Asia/Sakhalin
+#usr/share/zoneinfo/Asia/Samarkand
+#usr/share/zoneinfo/Asia/Seoul
+#usr/share/zoneinfo/Asia/Shanghai
+#usr/share/zoneinfo/Asia/Singapore
+#usr/share/zoneinfo/Asia/Taipei
+#usr/share/zoneinfo/Asia/Tashkent
+#usr/share/zoneinfo/Asia/Tbilisi
+#usr/share/zoneinfo/Asia/Tehran
+#usr/share/zoneinfo/Asia/Tel_Aviv
+#usr/share/zoneinfo/Asia/Thimbu
+#usr/share/zoneinfo/Asia/Thimphu
+#usr/share/zoneinfo/Asia/Tokyo
+#usr/share/zoneinfo/Asia/Ujung_Pandang
+#usr/share/zoneinfo/Asia/Ulaanbaatar
+#usr/share/zoneinfo/Asia/Ulan_Bator
+#usr/share/zoneinfo/Asia/Urumqi
+#usr/share/zoneinfo/Asia/Vientiane
+#usr/share/zoneinfo/Asia/Vladivostok
+#usr/share/zoneinfo/Asia/Yakutsk
+#usr/share/zoneinfo/Asia/Yekaterinburg
+#usr/share/zoneinfo/Asia/Yerevan
+#usr/share/zoneinfo/Atlantic
+#usr/share/zoneinfo/Atlantic/Azores
+#usr/share/zoneinfo/Atlantic/Bermuda
+#usr/share/zoneinfo/Atlantic/Canary
+#usr/share/zoneinfo/Atlantic/Cape_Verde
+#usr/share/zoneinfo/Atlantic/Faeroe
+#usr/share/zoneinfo/Atlantic/Jan_Mayen
+#usr/share/zoneinfo/Atlantic/Madeira
+#usr/share/zoneinfo/Atlantic/Reykjavik
+#usr/share/zoneinfo/Atlantic/South_Georgia
+#usr/share/zoneinfo/Atlantic/St_Helena
+#usr/share/zoneinfo/Atlantic/Stanley
+#usr/share/zoneinfo/Australia
+#usr/share/zoneinfo/Australia/ACT
+#usr/share/zoneinfo/Australia/Adelaide
+#usr/share/zoneinfo/Australia/Brisbane
+#usr/share/zoneinfo/Australia/Broken_Hill
+#usr/share/zoneinfo/Australia/Canberra
+#usr/share/zoneinfo/Australia/Darwin
+#usr/share/zoneinfo/Australia/Hobart
+#usr/share/zoneinfo/Australia/LHI
+#usr/share/zoneinfo/Australia/Lindeman
+#usr/share/zoneinfo/Australia/Lord_Howe
+#usr/share/zoneinfo/Australia/Melbourne
+#usr/share/zoneinfo/Australia/NSW
+#usr/share/zoneinfo/Australia/North
+#usr/share/zoneinfo/Australia/Perth
+#usr/share/zoneinfo/Australia/Queensland
+#usr/share/zoneinfo/Australia/South
+#usr/share/zoneinfo/Australia/Sydney
+#usr/share/zoneinfo/Australia/Tasmania
+#usr/share/zoneinfo/Australia/Victoria
+#usr/share/zoneinfo/Australia/West
+#usr/share/zoneinfo/Australia/Yancowinna
+#usr/share/zoneinfo/Brazil
+#usr/share/zoneinfo/Brazil/Acre
+#usr/share/zoneinfo/Brazil/DeNoronha
+#usr/share/zoneinfo/Brazil/East
+#usr/share/zoneinfo/Brazil/West
+#usr/share/zoneinfo/CET
+#usr/share/zoneinfo/CST6CDT
+#usr/share/zoneinfo/Canada
+#usr/share/zoneinfo/Canada/Atlantic
+#usr/share/zoneinfo/Canada/Central
+#usr/share/zoneinfo/Canada/East-Saskatchewan
+#usr/share/zoneinfo/Canada/Eastern
+#usr/share/zoneinfo/Canada/Mountain
+#usr/share/zoneinfo/Canada/Newfoundland
+#usr/share/zoneinfo/Canada/Pacific
+#usr/share/zoneinfo/Canada/Saskatchewan
+#usr/share/zoneinfo/Canada/Yukon
+#usr/share/zoneinfo/Chile
+#usr/share/zoneinfo/Chile/Continental
+#usr/share/zoneinfo/Chile/EasterIsland
+#usr/share/zoneinfo/Cuba
+#usr/share/zoneinfo/EET
+#usr/share/zoneinfo/EST
+#usr/share/zoneinfo/EST5EDT
+#usr/share/zoneinfo/Egypt
+#usr/share/zoneinfo/Eire
+#usr/share/zoneinfo/Etc
+#usr/share/zoneinfo/Etc/GMT
+#usr/share/zoneinfo/Etc/GMT+0
+#usr/share/zoneinfo/Etc/GMT+1
+#usr/share/zoneinfo/Etc/GMT+10
+#usr/share/zoneinfo/Etc/GMT+11
+#usr/share/zoneinfo/Etc/GMT+12
+#usr/share/zoneinfo/Etc/GMT+2
+#usr/share/zoneinfo/Etc/GMT+3
+#usr/share/zoneinfo/Etc/GMT+4
+#usr/share/zoneinfo/Etc/GMT+5
+#usr/share/zoneinfo/Etc/GMT+6
+#usr/share/zoneinfo/Etc/GMT+7
+#usr/share/zoneinfo/Etc/GMT+8
+#usr/share/zoneinfo/Etc/GMT+9
+#usr/share/zoneinfo/Etc/GMT-0
+#usr/share/zoneinfo/Etc/GMT-1
+#usr/share/zoneinfo/Etc/GMT-10
+#usr/share/zoneinfo/Etc/GMT-11
+#usr/share/zoneinfo/Etc/GMT-12
+#usr/share/zoneinfo/Etc/GMT-13
+#usr/share/zoneinfo/Etc/GMT-14
+#usr/share/zoneinfo/Etc/GMT-2
+#usr/share/zoneinfo/Etc/GMT-3
+#usr/share/zoneinfo/Etc/GMT-4
+#usr/share/zoneinfo/Etc/GMT-5
+#usr/share/zoneinfo/Etc/GMT-6
+#usr/share/zoneinfo/Etc/GMT-7
+#usr/share/zoneinfo/Etc/GMT-8
+#usr/share/zoneinfo/Etc/GMT-9
+#usr/share/zoneinfo/Etc/GMT0
+#usr/share/zoneinfo/Etc/Greenwich
+#usr/share/zoneinfo/Etc/UCT
+#usr/share/zoneinfo/Etc/UTC
+#usr/share/zoneinfo/Etc/Universal
+#usr/share/zoneinfo/Etc/Zulu
+#usr/share/zoneinfo/Europe
+#usr/share/zoneinfo/Europe/Amsterdam
+#usr/share/zoneinfo/Europe/Andorra
+#usr/share/zoneinfo/Europe/Athens
+#usr/share/zoneinfo/Europe/Belfast
+#usr/share/zoneinfo/Europe/Belgrade
+#usr/share/zoneinfo/Europe/Berlin
+#usr/share/zoneinfo/Europe/Bratislava
+#usr/share/zoneinfo/Europe/Brussels
+#usr/share/zoneinfo/Europe/Bucharest
+#usr/share/zoneinfo/Europe/Budapest
+#usr/share/zoneinfo/Europe/Chisinau
+#usr/share/zoneinfo/Europe/Copenhagen
+#usr/share/zoneinfo/Europe/Dublin
+#usr/share/zoneinfo/Europe/Gibraltar
+#usr/share/zoneinfo/Europe/Helsinki
+#usr/share/zoneinfo/Europe/Istanbul
+#usr/share/zoneinfo/Europe/Kaliningrad
+#usr/share/zoneinfo/Europe/Kiev
+#usr/share/zoneinfo/Europe/Lisbon
+#usr/share/zoneinfo/Europe/Ljubljana
+#usr/share/zoneinfo/Europe/London
+#usr/share/zoneinfo/Europe/Luxembourg
+#usr/share/zoneinfo/Europe/Madrid
+#usr/share/zoneinfo/Europe/Malta
+#usr/share/zoneinfo/Europe/Minsk
+#usr/share/zoneinfo/Europe/Monaco
+#usr/share/zoneinfo/Europe/Moscow
+#usr/share/zoneinfo/Europe/Nicosia
+#usr/share/zoneinfo/Europe/Oslo
+#usr/share/zoneinfo/Europe/Paris
+#usr/share/zoneinfo/Europe/Prague
+#usr/share/zoneinfo/Europe/Riga
+#usr/share/zoneinfo/Europe/Rome
+#usr/share/zoneinfo/Europe/Samara
+#usr/share/zoneinfo/Europe/San_Marino
+#usr/share/zoneinfo/Europe/Sarajevo
+#usr/share/zoneinfo/Europe/Simferopol
+#usr/share/zoneinfo/Europe/Skopje
+#usr/share/zoneinfo/Europe/Sofia
+#usr/share/zoneinfo/Europe/Stockholm
+#usr/share/zoneinfo/Europe/Tallinn
+#usr/share/zoneinfo/Europe/Tirane
+#usr/share/zoneinfo/Europe/Tiraspol
+#usr/share/zoneinfo/Europe/Uzhgorod
+#usr/share/zoneinfo/Europe/Vaduz
+#usr/share/zoneinfo/Europe/Vatican
+#usr/share/zoneinfo/Europe/Vienna
+#usr/share/zoneinfo/Europe/Vilnius
+#usr/share/zoneinfo/Europe/Warsaw
+#usr/share/zoneinfo/Europe/Zagreb
+#usr/share/zoneinfo/Europe/Zaporozhye
+#usr/share/zoneinfo/Europe/Zurich
+#usr/share/zoneinfo/Factory
+#usr/share/zoneinfo/GB
+#usr/share/zoneinfo/GB-Eire
+#usr/share/zoneinfo/GMT
+#usr/share/zoneinfo/GMT+0
+#usr/share/zoneinfo/GMT-0
+#usr/share/zoneinfo/GMT0
+#usr/share/zoneinfo/Greenwich
+#usr/share/zoneinfo/HST
+#usr/share/zoneinfo/Hongkong
+#usr/share/zoneinfo/Iceland
+#usr/share/zoneinfo/Indian
+#usr/share/zoneinfo/Indian/Antananarivo
+#usr/share/zoneinfo/Indian/Chagos
+#usr/share/zoneinfo/Indian/Christmas
+#usr/share/zoneinfo/Indian/Cocos
+#usr/share/zoneinfo/Indian/Comoro
+#usr/share/zoneinfo/Indian/Kerguelen
+#usr/share/zoneinfo/Indian/Mahe
+#usr/share/zoneinfo/Indian/Maldives
+#usr/share/zoneinfo/Indian/Mauritius
+#usr/share/zoneinfo/Indian/Mayotte
+#usr/share/zoneinfo/Indian/Reunion
+#usr/share/zoneinfo/Iran
+#usr/share/zoneinfo/Israel
+#usr/share/zoneinfo/Jamaica
+#usr/share/zoneinfo/Japan
+#usr/share/zoneinfo/Kwajalein
+#usr/share/zoneinfo/Libya
+#usr/share/zoneinfo/MET
+#usr/share/zoneinfo/MST
+#usr/share/zoneinfo/MST7MDT
+#usr/share/zoneinfo/Mexico
+#usr/share/zoneinfo/Mexico/BajaNorte
+#usr/share/zoneinfo/Mexico/BajaSur
+#usr/share/zoneinfo/Mexico/General
+#usr/share/zoneinfo/Mideast
+#usr/share/zoneinfo/Mideast/Riyadh87
+#usr/share/zoneinfo/Mideast/Riyadh88
+#usr/share/zoneinfo/Mideast/Riyadh89
+#usr/share/zoneinfo/NZ
+#usr/share/zoneinfo/NZ-CHAT
+#usr/share/zoneinfo/Navajo
+#usr/share/zoneinfo/PRC
+#usr/share/zoneinfo/PST8PDT
+#usr/share/zoneinfo/Pacific
+#usr/share/zoneinfo/Pacific/Apia
+#usr/share/zoneinfo/Pacific/Auckland
+#usr/share/zoneinfo/Pacific/Chatham
+#usr/share/zoneinfo/Pacific/Easter
+#usr/share/zoneinfo/Pacific/Efate
+#usr/share/zoneinfo/Pacific/Enderbury
+#usr/share/zoneinfo/Pacific/Fakaofo
+#usr/share/zoneinfo/Pacific/Fiji
+#usr/share/zoneinfo/Pacific/Funafuti
+#usr/share/zoneinfo/Pacific/Galapagos
+#usr/share/zoneinfo/Pacific/Gambier
+#usr/share/zoneinfo/Pacific/Guadalcanal
+#usr/share/zoneinfo/Pacific/Guam
+#usr/share/zoneinfo/Pacific/Honolulu
+#usr/share/zoneinfo/Pacific/Johnston
+#usr/share/zoneinfo/Pacific/Kiritimati
+#usr/share/zoneinfo/Pacific/Kosrae
+#usr/share/zoneinfo/Pacific/Kwajalein
+#usr/share/zoneinfo/Pacific/Majuro
+#usr/share/zoneinfo/Pacific/Marquesas
+#usr/share/zoneinfo/Pacific/Midway
+#usr/share/zoneinfo/Pacific/Nauru
+#usr/share/zoneinfo/Pacific/Niue
+#usr/share/zoneinfo/Pacific/Norfolk
+#usr/share/zoneinfo/Pacific/Noumea
+#usr/share/zoneinfo/Pacific/Pago_Pago
+#usr/share/zoneinfo/Pacific/Palau
+#usr/share/zoneinfo/Pacific/Pitcairn
+#usr/share/zoneinfo/Pacific/Ponape
+#usr/share/zoneinfo/Pacific/Port_Moresby
+#usr/share/zoneinfo/Pacific/Rarotonga
+#usr/share/zoneinfo/Pacific/Saipan
+#usr/share/zoneinfo/Pacific/Samoa
+#usr/share/zoneinfo/Pacific/Tahiti
+#usr/share/zoneinfo/Pacific/Tarawa
+#usr/share/zoneinfo/Pacific/Tongatapu
+#usr/share/zoneinfo/Pacific/Truk
+#usr/share/zoneinfo/Pacific/Wake
+#usr/share/zoneinfo/Pacific/Wallis
+#usr/share/zoneinfo/Pacific/Yap
+#usr/share/zoneinfo/Poland
+#usr/share/zoneinfo/Portugal
+#usr/share/zoneinfo/ROC
+#usr/share/zoneinfo/ROK
+#usr/share/zoneinfo/Singapore
+#usr/share/zoneinfo/SystemV
+#usr/share/zoneinfo/SystemV/AST4
+#usr/share/zoneinfo/SystemV/AST4ADT
+#usr/share/zoneinfo/SystemV/CST6
+#usr/share/zoneinfo/SystemV/CST6CDT
+#usr/share/zoneinfo/SystemV/EST5
+#usr/share/zoneinfo/SystemV/EST5EDT
+#usr/share/zoneinfo/SystemV/HST10
+#usr/share/zoneinfo/SystemV/MST7
+#usr/share/zoneinfo/SystemV/MST7MDT
+#usr/share/zoneinfo/SystemV/PST8
+#usr/share/zoneinfo/SystemV/PST8PDT
+#usr/share/zoneinfo/SystemV/YST9
+#usr/share/zoneinfo/SystemV/YST9YDT
+#usr/share/zoneinfo/Turkey
+#usr/share/zoneinfo/UCT
+#usr/share/zoneinfo/US
+#usr/share/zoneinfo/US/Alaska
+#usr/share/zoneinfo/US/Aleutian
+#usr/share/zoneinfo/US/Arizona
+#usr/share/zoneinfo/US/Central
+#usr/share/zoneinfo/US/East-Indiana
+#usr/share/zoneinfo/US/Eastern
+#usr/share/zoneinfo/US/Hawaii
+#usr/share/zoneinfo/US/Indiana-Starke
+#usr/share/zoneinfo/US/Michigan
+#usr/share/zoneinfo/US/Mountain
+#usr/share/zoneinfo/US/Pacific
+#usr/share/zoneinfo/US/Samoa
+#usr/share/zoneinfo/UTC
+#usr/share/zoneinfo/Universal
+#usr/share/zoneinfo/W-SU
+#usr/share/zoneinfo/WET
+#usr/share/zoneinfo/Zulu
+#usr/share/zoneinfo/iso3166.tab
+usr/share/zoneinfo/posix
+#usr/share/zoneinfo/posix/Africa
+#usr/share/zoneinfo/posix/Africa/Abidjan
+#usr/share/zoneinfo/posix/Africa/Accra
+#usr/share/zoneinfo/posix/Africa/Addis_Ababa
+#usr/share/zoneinfo/posix/Africa/Algiers
+#usr/share/zoneinfo/posix/Africa/Asmera
+#usr/share/zoneinfo/posix/Africa/Bamako
+#usr/share/zoneinfo/posix/Africa/Bangui
+#usr/share/zoneinfo/posix/Africa/Banjul
+#usr/share/zoneinfo/posix/Africa/Bissau
+#usr/share/zoneinfo/posix/Africa/Blantyre
+#usr/share/zoneinfo/posix/Africa/Brazzaville
+#usr/share/zoneinfo/posix/Africa/Bujumbura
+#usr/share/zoneinfo/posix/Africa/Cairo
+#usr/share/zoneinfo/posix/Africa/Casablanca
+#usr/share/zoneinfo/posix/Africa/Ceuta
+#usr/share/zoneinfo/posix/Africa/Conakry
+#usr/share/zoneinfo/posix/Africa/Dakar
+#usr/share/zoneinfo/posix/Africa/Dar_es_Salaam
+#usr/share/zoneinfo/posix/Africa/Djibouti
+#usr/share/zoneinfo/posix/Africa/Douala
+#usr/share/zoneinfo/posix/Africa/El_Aaiun
+#usr/share/zoneinfo/posix/Africa/Freetown
+#usr/share/zoneinfo/posix/Africa/Gaborone
+#usr/share/zoneinfo/posix/Africa/Harare
+#usr/share/zoneinfo/posix/Africa/Johannesburg
+#usr/share/zoneinfo/posix/Africa/Kampala
+#usr/share/zoneinfo/posix/Africa/Khartoum
+#usr/share/zoneinfo/posix/Africa/Kigali
+#usr/share/zoneinfo/posix/Africa/Kinshasa
+#usr/share/zoneinfo/posix/Africa/Lagos
+#usr/share/zoneinfo/posix/Africa/Libreville
+#usr/share/zoneinfo/posix/Africa/Lome
+#usr/share/zoneinfo/posix/Africa/Luanda
+#usr/share/zoneinfo/posix/Africa/Lubumbashi
+#usr/share/zoneinfo/posix/Africa/Lusaka
+#usr/share/zoneinfo/posix/Africa/Malabo
+#usr/share/zoneinfo/posix/Africa/Maputo
+#usr/share/zoneinfo/posix/Africa/Maseru
+#usr/share/zoneinfo/posix/Africa/Mbabane
+#usr/share/zoneinfo/posix/Africa/Mogadishu
+#usr/share/zoneinfo/posix/Africa/Monrovia
+#usr/share/zoneinfo/posix/Africa/Nairobi
+#usr/share/zoneinfo/posix/Africa/Ndjamena
+#usr/share/zoneinfo/posix/Africa/Niamey
+#usr/share/zoneinfo/posix/Africa/Nouakchott
+#usr/share/zoneinfo/posix/Africa/Ouagadougou
+#usr/share/zoneinfo/posix/Africa/Porto-Novo
+#usr/share/zoneinfo/posix/Africa/Sao_Tome
+#usr/share/zoneinfo/posix/Africa/Timbuktu
+#usr/share/zoneinfo/posix/Africa/Tripoli
+#usr/share/zoneinfo/posix/Africa/Tunis
+#usr/share/zoneinfo/posix/Africa/Windhoek
+#usr/share/zoneinfo/posix/America
+#usr/share/zoneinfo/posix/America/Adak
+#usr/share/zoneinfo/posix/America/Anchorage
+#usr/share/zoneinfo/posix/America/Anguilla
+#usr/share/zoneinfo/posix/America/Antigua
+#usr/share/zoneinfo/posix/America/Araguaina
+#usr/share/zoneinfo/posix/America/Aruba
+#usr/share/zoneinfo/posix/America/Asuncion
+#usr/share/zoneinfo/posix/America/Atka
+#usr/share/zoneinfo/posix/America/Barbados
+#usr/share/zoneinfo/posix/America/Belem
+#usr/share/zoneinfo/posix/America/Belize
+#usr/share/zoneinfo/posix/America/Boa_Vista
+#usr/share/zoneinfo/posix/America/Bogota
+#usr/share/zoneinfo/posix/America/Boise
+#usr/share/zoneinfo/posix/America/Buenos_Aires
+#usr/share/zoneinfo/posix/America/Cambridge_Bay
+#usr/share/zoneinfo/posix/America/Cancun
+#usr/share/zoneinfo/posix/America/Caracas
+#usr/share/zoneinfo/posix/America/Catamarca
+#usr/share/zoneinfo/posix/America/Cayenne
+#usr/share/zoneinfo/posix/America/Cayman
+#usr/share/zoneinfo/posix/America/Chicago
+#usr/share/zoneinfo/posix/America/Chihuahua
+#usr/share/zoneinfo/posix/America/Cordoba
+#usr/share/zoneinfo/posix/America/Costa_Rica
+#usr/share/zoneinfo/posix/America/Cuiaba
+#usr/share/zoneinfo/posix/America/Curacao
+#usr/share/zoneinfo/posix/America/Danmarkshavn
+#usr/share/zoneinfo/posix/America/Dawson
+#usr/share/zoneinfo/posix/America/Dawson_Creek
+#usr/share/zoneinfo/posix/America/Denver
+#usr/share/zoneinfo/posix/America/Detroit
+#usr/share/zoneinfo/posix/America/Dominica
+#usr/share/zoneinfo/posix/America/Edmonton
+#usr/share/zoneinfo/posix/America/Eirunepe
+#usr/share/zoneinfo/posix/America/El_Salvador
+#usr/share/zoneinfo/posix/America/Ensenada
+#usr/share/zoneinfo/posix/America/Fort_Wayne
+#usr/share/zoneinfo/posix/America/Fortaleza
+#usr/share/zoneinfo/posix/America/Glace_Bay
+#usr/share/zoneinfo/posix/America/Godthab
+#usr/share/zoneinfo/posix/America/Goose_Bay
+#usr/share/zoneinfo/posix/America/Grand_Turk
+#usr/share/zoneinfo/posix/America/Grenada
+#usr/share/zoneinfo/posix/America/Guadeloupe
+#usr/share/zoneinfo/posix/America/Guatemala
+#usr/share/zoneinfo/posix/America/Guayaquil
+#usr/share/zoneinfo/posix/America/Guyana
+#usr/share/zoneinfo/posix/America/Halifax
+#usr/share/zoneinfo/posix/America/Havana
+#usr/share/zoneinfo/posix/America/Hermosillo
+#usr/share/zoneinfo/posix/America/Indiana
+#usr/share/zoneinfo/posix/America/Indiana/Indianapolis
+#usr/share/zoneinfo/posix/America/Indiana/Knox
+#usr/share/zoneinfo/posix/America/Indiana/Marengo
+#usr/share/zoneinfo/posix/America/Indiana/Vevay
+#usr/share/zoneinfo/posix/America/Indianapolis
+#usr/share/zoneinfo/posix/America/Inuvik
+#usr/share/zoneinfo/posix/America/Iqaluit
+#usr/share/zoneinfo/posix/America/Jamaica
+#usr/share/zoneinfo/posix/America/Jujuy
+#usr/share/zoneinfo/posix/America/Juneau
+#usr/share/zoneinfo/posix/America/Kentucky
+#usr/share/zoneinfo/posix/America/Kentucky/Louisville
+#usr/share/zoneinfo/posix/America/Kentucky/Monticello
+#usr/share/zoneinfo/posix/America/Knox_IN
+#usr/share/zoneinfo/posix/America/La_Paz
+#usr/share/zoneinfo/posix/America/Lima
+#usr/share/zoneinfo/posix/America/Los_Angeles
+#usr/share/zoneinfo/posix/America/Louisville
+#usr/share/zoneinfo/posix/America/Maceio
+#usr/share/zoneinfo/posix/America/Managua
+#usr/share/zoneinfo/posix/America/Manaus
+#usr/share/zoneinfo/posix/America/Martinique
+#usr/share/zoneinfo/posix/America/Mazatlan
+#usr/share/zoneinfo/posix/America/Mendoza
+#usr/share/zoneinfo/posix/America/Menominee
+#usr/share/zoneinfo/posix/America/Merida
+#usr/share/zoneinfo/posix/America/Mexico_City
+#usr/share/zoneinfo/posix/America/Miquelon
+#usr/share/zoneinfo/posix/America/Monterrey
+#usr/share/zoneinfo/posix/America/Montevideo
+#usr/share/zoneinfo/posix/America/Montreal
+#usr/share/zoneinfo/posix/America/Montserrat
+#usr/share/zoneinfo/posix/America/Nassau
+#usr/share/zoneinfo/posix/America/New_York
+#usr/share/zoneinfo/posix/America/Nipigon
+#usr/share/zoneinfo/posix/America/Nome
+#usr/share/zoneinfo/posix/America/Noronha
+#usr/share/zoneinfo/posix/America/North_Dakota
+#usr/share/zoneinfo/posix/America/North_Dakota/Center
+#usr/share/zoneinfo/posix/America/Panama
+#usr/share/zoneinfo/posix/America/Pangnirtung
+#usr/share/zoneinfo/posix/America/Paramaribo
+#usr/share/zoneinfo/posix/America/Phoenix
+#usr/share/zoneinfo/posix/America/Port-au-Prince
+#usr/share/zoneinfo/posix/America/Port_of_Spain
+#usr/share/zoneinfo/posix/America/Porto_Acre
+#usr/share/zoneinfo/posix/America/Porto_Velho
+#usr/share/zoneinfo/posix/America/Puerto_Rico
+#usr/share/zoneinfo/posix/America/Rainy_River
+#usr/share/zoneinfo/posix/America/Rankin_Inlet
+#usr/share/zoneinfo/posix/America/Recife
+#usr/share/zoneinfo/posix/America/Regina
+#usr/share/zoneinfo/posix/America/Rio_Branco
+#usr/share/zoneinfo/posix/America/Rosario
+#usr/share/zoneinfo/posix/America/Santiago
+#usr/share/zoneinfo/posix/America/Santo_Domingo
+#usr/share/zoneinfo/posix/America/Sao_Paulo
+#usr/share/zoneinfo/posix/America/Scoresbysund
+#usr/share/zoneinfo/posix/America/Shiprock
+#usr/share/zoneinfo/posix/America/St_Johns
+#usr/share/zoneinfo/posix/America/St_Kitts
+#usr/share/zoneinfo/posix/America/St_Lucia
+#usr/share/zoneinfo/posix/America/St_Thomas
+#usr/share/zoneinfo/posix/America/St_Vincent
+#usr/share/zoneinfo/posix/America/Swift_Current
+#usr/share/zoneinfo/posix/America/Tegucigalpa
+#usr/share/zoneinfo/posix/America/Thule
+#usr/share/zoneinfo/posix/America/Thunder_Bay
+#usr/share/zoneinfo/posix/America/Tijuana
+#usr/share/zoneinfo/posix/America/Tortola
+#usr/share/zoneinfo/posix/America/Vancouver
+#usr/share/zoneinfo/posix/America/Virgin
+#usr/share/zoneinfo/posix/America/Whitehorse
+#usr/share/zoneinfo/posix/America/Winnipeg
+#usr/share/zoneinfo/posix/America/Yakutat
+#usr/share/zoneinfo/posix/America/Yellowknife
+#usr/share/zoneinfo/posix/Antarctica
+#usr/share/zoneinfo/posix/Antarctica/Casey
+#usr/share/zoneinfo/posix/Antarctica/Davis
+#usr/share/zoneinfo/posix/Antarctica/DumontDUrville
+#usr/share/zoneinfo/posix/Antarctica/Mawson
+#usr/share/zoneinfo/posix/Antarctica/McMurdo
+#usr/share/zoneinfo/posix/Antarctica/Palmer
+#usr/share/zoneinfo/posix/Antarctica/South_Pole
+#usr/share/zoneinfo/posix/Antarctica/Syowa
+#usr/share/zoneinfo/posix/Antarctica/Vostok
+#usr/share/zoneinfo/posix/Arctic
+#usr/share/zoneinfo/posix/Arctic/Longyearbyen
+#usr/share/zoneinfo/posix/Asia
+#usr/share/zoneinfo/posix/Asia/Aden
+#usr/share/zoneinfo/posix/Asia/Almaty
+#usr/share/zoneinfo/posix/Asia/Amman
+#usr/share/zoneinfo/posix/Asia/Anadyr
+#usr/share/zoneinfo/posix/Asia/Aqtau
+#usr/share/zoneinfo/posix/Asia/Aqtobe
+#usr/share/zoneinfo/posix/Asia/Ashgabat
+#usr/share/zoneinfo/posix/Asia/Ashkhabad
+#usr/share/zoneinfo/posix/Asia/Baghdad
+#usr/share/zoneinfo/posix/Asia/Bahrain
+#usr/share/zoneinfo/posix/Asia/Baku
+#usr/share/zoneinfo/posix/Asia/Bangkok
+#usr/share/zoneinfo/posix/Asia/Beirut
+#usr/share/zoneinfo/posix/Asia/Bishkek
+#usr/share/zoneinfo/posix/Asia/Brunei
+#usr/share/zoneinfo/posix/Asia/Calcutta
+#usr/share/zoneinfo/posix/Asia/Choibalsan
+#usr/share/zoneinfo/posix/Asia/Chongqing
+#usr/share/zoneinfo/posix/Asia/Chungking
+#usr/share/zoneinfo/posix/Asia/Colombo
+#usr/share/zoneinfo/posix/Asia/Dacca
+#usr/share/zoneinfo/posix/Asia/Damascus
+#usr/share/zoneinfo/posix/Asia/Dhaka
+#usr/share/zoneinfo/posix/Asia/Dili
+#usr/share/zoneinfo/posix/Asia/Dubai
+#usr/share/zoneinfo/posix/Asia/Dushanbe
+#usr/share/zoneinfo/posix/Asia/Gaza
+#usr/share/zoneinfo/posix/Asia/Harbin
+#usr/share/zoneinfo/posix/Asia/Hong_Kong
+#usr/share/zoneinfo/posix/Asia/Hovd
+#usr/share/zoneinfo/posix/Asia/Irkutsk
+#usr/share/zoneinfo/posix/Asia/Istanbul
+#usr/share/zoneinfo/posix/Asia/Jakarta
+#usr/share/zoneinfo/posix/Asia/Jayapura
+#usr/share/zoneinfo/posix/Asia/Jerusalem
+#usr/share/zoneinfo/posix/Asia/Kabul
+#usr/share/zoneinfo/posix/Asia/Kamchatka
+#usr/share/zoneinfo/posix/Asia/Karachi
+#usr/share/zoneinfo/posix/Asia/Kashgar
+#usr/share/zoneinfo/posix/Asia/Katmandu
+#usr/share/zoneinfo/posix/Asia/Krasnoyarsk
+#usr/share/zoneinfo/posix/Asia/Kuala_Lumpur
+#usr/share/zoneinfo/posix/Asia/Kuching
+#usr/share/zoneinfo/posix/Asia/Kuwait
+#usr/share/zoneinfo/posix/Asia/Macao
+#usr/share/zoneinfo/posix/Asia/Macau
+#usr/share/zoneinfo/posix/Asia/Magadan
+#usr/share/zoneinfo/posix/Asia/Makassar
+#usr/share/zoneinfo/posix/Asia/Manila
+#usr/share/zoneinfo/posix/Asia/Muscat
+#usr/share/zoneinfo/posix/Asia/Nicosia
+#usr/share/zoneinfo/posix/Asia/Novosibirsk
+#usr/share/zoneinfo/posix/Asia/Omsk
+#usr/share/zoneinfo/posix/Asia/Oral
+#usr/share/zoneinfo/posix/Asia/Phnom_Penh
+#usr/share/zoneinfo/posix/Asia/Pontianak
+#usr/share/zoneinfo/posix/Asia/Pyongyang
+#usr/share/zoneinfo/posix/Asia/Qatar
+#usr/share/zoneinfo/posix/Asia/Qyzylorda
+#usr/share/zoneinfo/posix/Asia/Rangoon
+#usr/share/zoneinfo/posix/Asia/Riyadh
+#usr/share/zoneinfo/posix/Asia/Riyadh87
+#usr/share/zoneinfo/posix/Asia/Riyadh88
+#usr/share/zoneinfo/posix/Asia/Riyadh89
+#usr/share/zoneinfo/posix/Asia/Saigon
+#usr/share/zoneinfo/posix/Asia/Sakhalin
+#usr/share/zoneinfo/posix/Asia/Samarkand
+#usr/share/zoneinfo/posix/Asia/Seoul
+#usr/share/zoneinfo/posix/Asia/Shanghai
+#usr/share/zoneinfo/posix/Asia/Singapore
+#usr/share/zoneinfo/posix/Asia/Taipei
+#usr/share/zoneinfo/posix/Asia/Tashkent
+#usr/share/zoneinfo/posix/Asia/Tbilisi
+#usr/share/zoneinfo/posix/Asia/Tehran
+#usr/share/zoneinfo/posix/Asia/Tel_Aviv
+#usr/share/zoneinfo/posix/Asia/Thimbu
+#usr/share/zoneinfo/posix/Asia/Thimphu
+#usr/share/zoneinfo/posix/Asia/Tokyo
+#usr/share/zoneinfo/posix/Asia/Ujung_Pandang
+#usr/share/zoneinfo/posix/Asia/Ulaanbaatar
+#usr/share/zoneinfo/posix/Asia/Ulan_Bator
+#usr/share/zoneinfo/posix/Asia/Urumqi
+#usr/share/zoneinfo/posix/Asia/Vientiane
+#usr/share/zoneinfo/posix/Asia/Vladivostok
+#usr/share/zoneinfo/posix/Asia/Yakutsk
+#usr/share/zoneinfo/posix/Asia/Yekaterinburg
+#usr/share/zoneinfo/posix/Asia/Yerevan
+#usr/share/zoneinfo/posix/Atlantic
+#usr/share/zoneinfo/posix/Atlantic/Azores
+#usr/share/zoneinfo/posix/Atlantic/Bermuda
+#usr/share/zoneinfo/posix/Atlantic/Canary
+#usr/share/zoneinfo/posix/Atlantic/Cape_Verde
+#usr/share/zoneinfo/posix/Atlantic/Faeroe
+#usr/share/zoneinfo/posix/Atlantic/Jan_Mayen
+#usr/share/zoneinfo/posix/Atlantic/Madeira
+#usr/share/zoneinfo/posix/Atlantic/Reykjavik
+#usr/share/zoneinfo/posix/Atlantic/South_Georgia
+#usr/share/zoneinfo/posix/Atlantic/St_Helena
+#usr/share/zoneinfo/posix/Atlantic/Stanley
+#usr/share/zoneinfo/posix/Australia
+#usr/share/zoneinfo/posix/Australia/ACT
+#usr/share/zoneinfo/posix/Australia/Adelaide
+#usr/share/zoneinfo/posix/Australia/Brisbane
+#usr/share/zoneinfo/posix/Australia/Broken_Hill
+#usr/share/zoneinfo/posix/Australia/Canberra
+#usr/share/zoneinfo/posix/Australia/Darwin
+#usr/share/zoneinfo/posix/Australia/Hobart
+#usr/share/zoneinfo/posix/Australia/LHI
+#usr/share/zoneinfo/posix/Australia/Lindeman
+#usr/share/zoneinfo/posix/Australia/Lord_Howe
+#usr/share/zoneinfo/posix/Australia/Melbourne
+#usr/share/zoneinfo/posix/Australia/NSW
+#usr/share/zoneinfo/posix/Australia/North
+#usr/share/zoneinfo/posix/Australia/Perth
+#usr/share/zoneinfo/posix/Australia/Queensland
+#usr/share/zoneinfo/posix/Australia/South
+#usr/share/zoneinfo/posix/Australia/Sydney
+#usr/share/zoneinfo/posix/Australia/Tasmania
+#usr/share/zoneinfo/posix/Australia/Victoria
+#usr/share/zoneinfo/posix/Australia/West
+#usr/share/zoneinfo/posix/Australia/Yancowinna
+#usr/share/zoneinfo/posix/Brazil
+#usr/share/zoneinfo/posix/Brazil/Acre
+#usr/share/zoneinfo/posix/Brazil/DeNoronha
+#usr/share/zoneinfo/posix/Brazil/East
+#usr/share/zoneinfo/posix/Brazil/West
+#usr/share/zoneinfo/posix/CET
+#usr/share/zoneinfo/posix/CST6CDT
+#usr/share/zoneinfo/posix/Canada
+#usr/share/zoneinfo/posix/Canada/Atlantic
+#usr/share/zoneinfo/posix/Canada/Central
+#usr/share/zoneinfo/posix/Canada/East-Saskatchewan
+#usr/share/zoneinfo/posix/Canada/Eastern
+#usr/share/zoneinfo/posix/Canada/Mountain
+#usr/share/zoneinfo/posix/Canada/Newfoundland
+#usr/share/zoneinfo/posix/Canada/Pacific
+#usr/share/zoneinfo/posix/Canada/Saskatchewan
+#usr/share/zoneinfo/posix/Canada/Yukon
+#usr/share/zoneinfo/posix/Chile
+#usr/share/zoneinfo/posix/Chile/Continental
+#usr/share/zoneinfo/posix/Chile/EasterIsland
+#usr/share/zoneinfo/posix/Cuba
+#usr/share/zoneinfo/posix/EET
+#usr/share/zoneinfo/posix/EST
+#usr/share/zoneinfo/posix/EST5EDT
+#usr/share/zoneinfo/posix/Egypt
+#usr/share/zoneinfo/posix/Eire
+#usr/share/zoneinfo/posix/Etc
+#usr/share/zoneinfo/posix/Etc/GMT
+#usr/share/zoneinfo/posix/Etc/GMT+0
+#usr/share/zoneinfo/posix/Etc/GMT+1
+#usr/share/zoneinfo/posix/Etc/GMT+10
+#usr/share/zoneinfo/posix/Etc/GMT+11
+#usr/share/zoneinfo/posix/Etc/GMT+12
+#usr/share/zoneinfo/posix/Etc/GMT+2
+#usr/share/zoneinfo/posix/Etc/GMT+3
+#usr/share/zoneinfo/posix/Etc/GMT+4
+#usr/share/zoneinfo/posix/Etc/GMT+5
+#usr/share/zoneinfo/posix/Etc/GMT+6
+#usr/share/zoneinfo/posix/Etc/GMT+7
+#usr/share/zoneinfo/posix/Etc/GMT+8
+#usr/share/zoneinfo/posix/Etc/GMT+9
+#usr/share/zoneinfo/posix/Etc/GMT-0
+#usr/share/zoneinfo/posix/Etc/GMT-1
+#usr/share/zoneinfo/posix/Etc/GMT-10
+#usr/share/zoneinfo/posix/Etc/GMT-11
+#usr/share/zoneinfo/posix/Etc/GMT-12
+#usr/share/zoneinfo/posix/Etc/GMT-13
+#usr/share/zoneinfo/posix/Etc/GMT-14
+#usr/share/zoneinfo/posix/Etc/GMT-2
+#usr/share/zoneinfo/posix/Etc/GMT-3
+#usr/share/zoneinfo/posix/Etc/GMT-4
+#usr/share/zoneinfo/posix/Etc/GMT-5
+#usr/share/zoneinfo/posix/Etc/GMT-6
+#usr/share/zoneinfo/posix/Etc/GMT-7
+#usr/share/zoneinfo/posix/Etc/GMT-8
+#usr/share/zoneinfo/posix/Etc/GMT-9
+#usr/share/zoneinfo/posix/Etc/GMT0
+#usr/share/zoneinfo/posix/Etc/Greenwich
+#usr/share/zoneinfo/posix/Etc/UCT
+#usr/share/zoneinfo/posix/Etc/UTC
+#usr/share/zoneinfo/posix/Etc/Universal
+#usr/share/zoneinfo/posix/Etc/Zulu
+#usr/share/zoneinfo/posix/Europe
+#usr/share/zoneinfo/posix/Europe/Amsterdam
+#usr/share/zoneinfo/posix/Europe/Andorra
+#usr/share/zoneinfo/posix/Europe/Athens
+#usr/share/zoneinfo/posix/Europe/Belfast
+#usr/share/zoneinfo/posix/Europe/Belgrade
+#usr/share/zoneinfo/posix/Europe/Berlin
+#usr/share/zoneinfo/posix/Europe/Bratislava
+#usr/share/zoneinfo/posix/Europe/Brussels
+#usr/share/zoneinfo/posix/Europe/Bucharest
+#usr/share/zoneinfo/posix/Europe/Budapest
+#usr/share/zoneinfo/posix/Europe/Chisinau
+#usr/share/zoneinfo/posix/Europe/Copenhagen
+#usr/share/zoneinfo/posix/Europe/Dublin
+#usr/share/zoneinfo/posix/Europe/Gibraltar
+#usr/share/zoneinfo/posix/Europe/Helsinki
+#usr/share/zoneinfo/posix/Europe/Istanbul
+#usr/share/zoneinfo/posix/Europe/Kaliningrad
+#usr/share/zoneinfo/posix/Europe/Kiev
+#usr/share/zoneinfo/posix/Europe/Lisbon
+#usr/share/zoneinfo/posix/Europe/Ljubljana
+#usr/share/zoneinfo/posix/Europe/London
+#usr/share/zoneinfo/posix/Europe/Luxembourg
+#usr/share/zoneinfo/posix/Europe/Madrid
+#usr/share/zoneinfo/posix/Europe/Malta
+#usr/share/zoneinfo/posix/Europe/Minsk
+#usr/share/zoneinfo/posix/Europe/Monaco
+#usr/share/zoneinfo/posix/Europe/Moscow
+#usr/share/zoneinfo/posix/Europe/Nicosia
+#usr/share/zoneinfo/posix/Europe/Oslo
+#usr/share/zoneinfo/posix/Europe/Paris
+#usr/share/zoneinfo/posix/Europe/Prague
+#usr/share/zoneinfo/posix/Europe/Riga
+#usr/share/zoneinfo/posix/Europe/Rome
+#usr/share/zoneinfo/posix/Europe/Samara
+#usr/share/zoneinfo/posix/Europe/San_Marino
+#usr/share/zoneinfo/posix/Europe/Sarajevo
+#usr/share/zoneinfo/posix/Europe/Simferopol
+#usr/share/zoneinfo/posix/Europe/Skopje
+#usr/share/zoneinfo/posix/Europe/Sofia
+#usr/share/zoneinfo/posix/Europe/Stockholm
+#usr/share/zoneinfo/posix/Europe/Tallinn
+#usr/share/zoneinfo/posix/Europe/Tirane
+#usr/share/zoneinfo/posix/Europe/Tiraspol
+#usr/share/zoneinfo/posix/Europe/Uzhgorod
+#usr/share/zoneinfo/posix/Europe/Vaduz
+#usr/share/zoneinfo/posix/Europe/Vatican
+#usr/share/zoneinfo/posix/Europe/Vienna
+#usr/share/zoneinfo/posix/Europe/Vilnius
+#usr/share/zoneinfo/posix/Europe/Warsaw
+#usr/share/zoneinfo/posix/Europe/Zagreb
+#usr/share/zoneinfo/posix/Europe/Zaporozhye
+#usr/share/zoneinfo/posix/Europe/Zurich
+#usr/share/zoneinfo/posix/Factory
+#usr/share/zoneinfo/posix/GB
+#usr/share/zoneinfo/posix/GB-Eire
+#usr/share/zoneinfo/posix/GMT
+#usr/share/zoneinfo/posix/GMT+0
+#usr/share/zoneinfo/posix/GMT-0
+#usr/share/zoneinfo/posix/GMT0
+#usr/share/zoneinfo/posix/Greenwich
+#usr/share/zoneinfo/posix/HST
+#usr/share/zoneinfo/posix/Hongkong
+#usr/share/zoneinfo/posix/Iceland
+#usr/share/zoneinfo/posix/Indian
+#usr/share/zoneinfo/posix/Indian/Antananarivo
+#usr/share/zoneinfo/posix/Indian/Chagos
+#usr/share/zoneinfo/posix/Indian/Christmas
+#usr/share/zoneinfo/posix/Indian/Cocos
+#usr/share/zoneinfo/posix/Indian/Comoro
+#usr/share/zoneinfo/posix/Indian/Kerguelen
+#usr/share/zoneinfo/posix/Indian/Mahe
+#usr/share/zoneinfo/posix/Indian/Maldives
+#usr/share/zoneinfo/posix/Indian/Mauritius
+#usr/share/zoneinfo/posix/Indian/Mayotte
+#usr/share/zoneinfo/posix/Indian/Reunion
+#usr/share/zoneinfo/posix/Iran
+#usr/share/zoneinfo/posix/Israel
+#usr/share/zoneinfo/posix/Jamaica
+#usr/share/zoneinfo/posix/Japan
+#usr/share/zoneinfo/posix/Kwajalein
+#usr/share/zoneinfo/posix/Libya
+#usr/share/zoneinfo/posix/MET
+#usr/share/zoneinfo/posix/MST
+#usr/share/zoneinfo/posix/MST7MDT
+#usr/share/zoneinfo/posix/Mexico
+#usr/share/zoneinfo/posix/Mexico/BajaNorte
+#usr/share/zoneinfo/posix/Mexico/BajaSur
+#usr/share/zoneinfo/posix/Mexico/General
+#usr/share/zoneinfo/posix/Mideast
+#usr/share/zoneinfo/posix/Mideast/Riyadh87
+#usr/share/zoneinfo/posix/Mideast/Riyadh88
+#usr/share/zoneinfo/posix/Mideast/Riyadh89
+#usr/share/zoneinfo/posix/NZ
+#usr/share/zoneinfo/posix/NZ-CHAT
+#usr/share/zoneinfo/posix/Navajo
+#usr/share/zoneinfo/posix/PRC
+#usr/share/zoneinfo/posix/PST8PDT
+#usr/share/zoneinfo/posix/Pacific
+#usr/share/zoneinfo/posix/Pacific/Apia
+#usr/share/zoneinfo/posix/Pacific/Auckland
+#usr/share/zoneinfo/posix/Pacific/Chatham
+#usr/share/zoneinfo/posix/Pacific/Easter
+#usr/share/zoneinfo/posix/Pacific/Efate
+#usr/share/zoneinfo/posix/Pacific/Enderbury
+#usr/share/zoneinfo/posix/Pacific/Fakaofo
+#usr/share/zoneinfo/posix/Pacific/Fiji
+#usr/share/zoneinfo/posix/Pacific/Funafuti
+#usr/share/zoneinfo/posix/Pacific/Galapagos
+#usr/share/zoneinfo/posix/Pacific/Gambier
+#usr/share/zoneinfo/posix/Pacific/Guadalcanal
+#usr/share/zoneinfo/posix/Pacific/Guam
+#usr/share/zoneinfo/posix/Pacific/Honolulu
+#usr/share/zoneinfo/posix/Pacific/Johnston
+#usr/share/zoneinfo/posix/Pacific/Kiritimati
+#usr/share/zoneinfo/posix/Pacific/Kosrae
+#usr/share/zoneinfo/posix/Pacific/Kwajalein
+#usr/share/zoneinfo/posix/Pacific/Majuro
+#usr/share/zoneinfo/posix/Pacific/Marquesas
+#usr/share/zoneinfo/posix/Pacific/Midway
+#usr/share/zoneinfo/posix/Pacific/Nauru
+#usr/share/zoneinfo/posix/Pacific/Niue
+#usr/share/zoneinfo/posix/Pacific/Norfolk
+#usr/share/zoneinfo/posix/Pacific/Noumea
+#usr/share/zoneinfo/posix/Pacific/Pago_Pago
+#usr/share/zoneinfo/posix/Pacific/Palau
+#usr/share/zoneinfo/posix/Pacific/Pitcairn
+#usr/share/zoneinfo/posix/Pacific/Ponape
+#usr/share/zoneinfo/posix/Pacific/Port_Moresby
+#usr/share/zoneinfo/posix/Pacific/Rarotonga
+#usr/share/zoneinfo/posix/Pacific/Saipan
+#usr/share/zoneinfo/posix/Pacific/Samoa
+#usr/share/zoneinfo/posix/Pacific/Tahiti
+#usr/share/zoneinfo/posix/Pacific/Tarawa
+#usr/share/zoneinfo/posix/Pacific/Tongatapu
+#usr/share/zoneinfo/posix/Pacific/Truk
+#usr/share/zoneinfo/posix/Pacific/Wake
+#usr/share/zoneinfo/posix/Pacific/Wallis
+#usr/share/zoneinfo/posix/Pacific/Yap
+#usr/share/zoneinfo/posix/Poland
+#usr/share/zoneinfo/posix/Portugal
+#usr/share/zoneinfo/posix/ROC
+#usr/share/zoneinfo/posix/ROK
+#usr/share/zoneinfo/posix/Singapore
+#usr/share/zoneinfo/posix/SystemV
+#usr/share/zoneinfo/posix/SystemV/AST4
+#usr/share/zoneinfo/posix/SystemV/AST4ADT
+#usr/share/zoneinfo/posix/SystemV/CST6
+#usr/share/zoneinfo/posix/SystemV/CST6CDT
+#usr/share/zoneinfo/posix/SystemV/EST5
+#usr/share/zoneinfo/posix/SystemV/EST5EDT
+#usr/share/zoneinfo/posix/SystemV/HST10
+#usr/share/zoneinfo/posix/SystemV/MST7
+#usr/share/zoneinfo/posix/SystemV/MST7MDT
+#usr/share/zoneinfo/posix/SystemV/PST8
+#usr/share/zoneinfo/posix/SystemV/PST8PDT
+#usr/share/zoneinfo/posix/SystemV/YST9
+#usr/share/zoneinfo/posix/SystemV/YST9YDT
+#usr/share/zoneinfo/posix/Turkey
+#usr/share/zoneinfo/posix/UCT
+#usr/share/zoneinfo/posix/US
+#usr/share/zoneinfo/posix/US/Alaska
+#usr/share/zoneinfo/posix/US/Aleutian
+#usr/share/zoneinfo/posix/US/Arizona
+#usr/share/zoneinfo/posix/US/Central
+#usr/share/zoneinfo/posix/US/East-Indiana
+#usr/share/zoneinfo/posix/US/Eastern
+#usr/share/zoneinfo/posix/US/Hawaii
+#usr/share/zoneinfo/posix/US/Indiana-Starke
+#usr/share/zoneinfo/posix/US/Michigan
+#usr/share/zoneinfo/posix/US/Mountain
+#usr/share/zoneinfo/posix/US/Pacific
+#usr/share/zoneinfo/posix/US/Samoa
+#usr/share/zoneinfo/posix/UTC
+#usr/share/zoneinfo/posix/Universal
+#usr/share/zoneinfo/posix/W-SU
+#usr/share/zoneinfo/posix/WET
+#usr/share/zoneinfo/posix/Zulu
+#usr/share/zoneinfo/posixrules
+#usr/share/zoneinfo/right
+#usr/share/zoneinfo/right/Africa
+#usr/share/zoneinfo/right/Africa/Abidjan
+#usr/share/zoneinfo/right/Africa/Accra
+#usr/share/zoneinfo/right/Africa/Addis_Ababa
+#usr/share/zoneinfo/right/Africa/Algiers
+#usr/share/zoneinfo/right/Africa/Asmera
+#usr/share/zoneinfo/right/Africa/Bamako
+#usr/share/zoneinfo/right/Africa/Bangui
+#usr/share/zoneinfo/right/Africa/Banjul
+#usr/share/zoneinfo/right/Africa/Bissau
+#usr/share/zoneinfo/right/Africa/Blantyre
+#usr/share/zoneinfo/right/Africa/Brazzaville
+#usr/share/zoneinfo/right/Africa/Bujumbura
+#usr/share/zoneinfo/right/Africa/Cairo
+#usr/share/zoneinfo/right/Africa/Casablanca
+#usr/share/zoneinfo/right/Africa/Ceuta
+#usr/share/zoneinfo/right/Africa/Conakry
+#usr/share/zoneinfo/right/Africa/Dakar
+#usr/share/zoneinfo/right/Africa/Dar_es_Salaam
+#usr/share/zoneinfo/right/Africa/Djibouti
+#usr/share/zoneinfo/right/Africa/Douala
+#usr/share/zoneinfo/right/Africa/El_Aaiun
+#usr/share/zoneinfo/right/Africa/Freetown
+#usr/share/zoneinfo/right/Africa/Gaborone
+#usr/share/zoneinfo/right/Africa/Harare
+#usr/share/zoneinfo/right/Africa/Johannesburg
+#usr/share/zoneinfo/right/Africa/Kampala
+#usr/share/zoneinfo/right/Africa/Khartoum
+#usr/share/zoneinfo/right/Africa/Kigali
+#usr/share/zoneinfo/right/Africa/Kinshasa
+#usr/share/zoneinfo/right/Africa/Lagos
+#usr/share/zoneinfo/right/Africa/Libreville
+#usr/share/zoneinfo/right/Africa/Lome
+#usr/share/zoneinfo/right/Africa/Luanda
+#usr/share/zoneinfo/right/Africa/Lubumbashi
+#usr/share/zoneinfo/right/Africa/Lusaka
+#usr/share/zoneinfo/right/Africa/Malabo
+#usr/share/zoneinfo/right/Africa/Maputo
+#usr/share/zoneinfo/right/Africa/Maseru
+#usr/share/zoneinfo/right/Africa/Mbabane
+#usr/share/zoneinfo/right/Africa/Mogadishu
+#usr/share/zoneinfo/right/Africa/Monrovia
+#usr/share/zoneinfo/right/Africa/Nairobi
+#usr/share/zoneinfo/right/Africa/Ndjamena
+#usr/share/zoneinfo/right/Africa/Niamey
+#usr/share/zoneinfo/right/Africa/Nouakchott
+#usr/share/zoneinfo/right/Africa/Ouagadougou
+#usr/share/zoneinfo/right/Africa/Porto-Novo
+#usr/share/zoneinfo/right/Africa/Sao_Tome
+#usr/share/zoneinfo/right/Africa/Timbuktu
+#usr/share/zoneinfo/right/Africa/Tripoli
+#usr/share/zoneinfo/right/Africa/Tunis
+#usr/share/zoneinfo/right/Africa/Windhoek
+#usr/share/zoneinfo/right/America
+#usr/share/zoneinfo/right/America/Adak
+#usr/share/zoneinfo/right/America/Anchorage
+#usr/share/zoneinfo/right/America/Anguilla
+#usr/share/zoneinfo/right/America/Antigua
+#usr/share/zoneinfo/right/America/Araguaina
+#usr/share/zoneinfo/right/America/Aruba
+#usr/share/zoneinfo/right/America/Asuncion
+#usr/share/zoneinfo/right/America/Atka
+#usr/share/zoneinfo/right/America/Barbados
+#usr/share/zoneinfo/right/America/Belem
+#usr/share/zoneinfo/right/America/Belize
+#usr/share/zoneinfo/right/America/Boa_Vista
+#usr/share/zoneinfo/right/America/Bogota
+#usr/share/zoneinfo/right/America/Boise
+#usr/share/zoneinfo/right/America/Buenos_Aires
+#usr/share/zoneinfo/right/America/Cambridge_Bay
+#usr/share/zoneinfo/right/America/Cancun
+#usr/share/zoneinfo/right/America/Caracas
+#usr/share/zoneinfo/right/America/Catamarca
+#usr/share/zoneinfo/right/America/Cayenne
+#usr/share/zoneinfo/right/America/Cayman
+#usr/share/zoneinfo/right/America/Chicago
+#usr/share/zoneinfo/right/America/Chihuahua
+#usr/share/zoneinfo/right/America/Cordoba
+#usr/share/zoneinfo/right/America/Costa_Rica
+#usr/share/zoneinfo/right/America/Cuiaba
+#usr/share/zoneinfo/right/America/Curacao
+#usr/share/zoneinfo/right/America/Danmarkshavn
+#usr/share/zoneinfo/right/America/Dawson
+#usr/share/zoneinfo/right/America/Dawson_Creek
+#usr/share/zoneinfo/right/America/Denver
+#usr/share/zoneinfo/right/America/Detroit
+#usr/share/zoneinfo/right/America/Dominica
+#usr/share/zoneinfo/right/America/Edmonton
+#usr/share/zoneinfo/right/America/Eirunepe
+#usr/share/zoneinfo/right/America/El_Salvador
+#usr/share/zoneinfo/right/America/Ensenada
+#usr/share/zoneinfo/right/America/Fort_Wayne
+#usr/share/zoneinfo/right/America/Fortaleza
+#usr/share/zoneinfo/right/America/Glace_Bay
+#usr/share/zoneinfo/right/America/Godthab
+#usr/share/zoneinfo/right/America/Goose_Bay
+#usr/share/zoneinfo/right/America/Grand_Turk
+#usr/share/zoneinfo/right/America/Grenada
+#usr/share/zoneinfo/right/America/Guadeloupe
+#usr/share/zoneinfo/right/America/Guatemala
+#usr/share/zoneinfo/right/America/Guayaquil
+#usr/share/zoneinfo/right/America/Guyana
+#usr/share/zoneinfo/right/America/Halifax
+#usr/share/zoneinfo/right/America/Havana
+#usr/share/zoneinfo/right/America/Hermosillo
+#usr/share/zoneinfo/right/America/Indiana
+#usr/share/zoneinfo/right/America/Indiana/Indianapolis
+#usr/share/zoneinfo/right/America/Indiana/Knox
+#usr/share/zoneinfo/right/America/Indiana/Marengo
+#usr/share/zoneinfo/right/America/Indiana/Vevay
+#usr/share/zoneinfo/right/America/Indianapolis
+#usr/share/zoneinfo/right/America/Inuvik
+#usr/share/zoneinfo/right/America/Iqaluit
+#usr/share/zoneinfo/right/America/Jamaica
+#usr/share/zoneinfo/right/America/Jujuy
+#usr/share/zoneinfo/right/America/Juneau
+#usr/share/zoneinfo/right/America/Kentucky
+#usr/share/zoneinfo/right/America/Kentucky/Louisville
+#usr/share/zoneinfo/right/America/Kentucky/Monticello
+#usr/share/zoneinfo/right/America/Knox_IN
+#usr/share/zoneinfo/right/America/La_Paz
+#usr/share/zoneinfo/right/America/Lima
+#usr/share/zoneinfo/right/America/Los_Angeles
+#usr/share/zoneinfo/right/America/Louisville
+#usr/share/zoneinfo/right/America/Maceio
+#usr/share/zoneinfo/right/America/Managua
+#usr/share/zoneinfo/right/America/Manaus
+#usr/share/zoneinfo/right/America/Martinique
+#usr/share/zoneinfo/right/America/Mazatlan
+#usr/share/zoneinfo/right/America/Mendoza
+#usr/share/zoneinfo/right/America/Menominee
+#usr/share/zoneinfo/right/America/Merida
+#usr/share/zoneinfo/right/America/Mexico_City
+#usr/share/zoneinfo/right/America/Miquelon
+#usr/share/zoneinfo/right/America/Monterrey
+#usr/share/zoneinfo/right/America/Montevideo
+#usr/share/zoneinfo/right/America/Montreal
+#usr/share/zoneinfo/right/America/Montserrat
+#usr/share/zoneinfo/right/America/Nassau
+#usr/share/zoneinfo/right/America/New_York
+#usr/share/zoneinfo/right/America/Nipigon
+#usr/share/zoneinfo/right/America/Nome
+#usr/share/zoneinfo/right/America/Noronha
+#usr/share/zoneinfo/right/America/North_Dakota
+#usr/share/zoneinfo/right/America/North_Dakota/Center
+#usr/share/zoneinfo/right/America/Panama
+#usr/share/zoneinfo/right/America/Pangnirtung
+#usr/share/zoneinfo/right/America/Paramaribo
+#usr/share/zoneinfo/right/America/Phoenix
+#usr/share/zoneinfo/right/America/Port-au-Prince
+#usr/share/zoneinfo/right/America/Port_of_Spain
+#usr/share/zoneinfo/right/America/Porto_Acre
+#usr/share/zoneinfo/right/America/Porto_Velho
+#usr/share/zoneinfo/right/America/Puerto_Rico
+#usr/share/zoneinfo/right/America/Rainy_River
+#usr/share/zoneinfo/right/America/Rankin_Inlet
+#usr/share/zoneinfo/right/America/Recife
+#usr/share/zoneinfo/right/America/Regina
+#usr/share/zoneinfo/right/America/Rio_Branco
+#usr/share/zoneinfo/right/America/Rosario
+#usr/share/zoneinfo/right/America/Santiago
+#usr/share/zoneinfo/right/America/Santo_Domingo
+#usr/share/zoneinfo/right/America/Sao_Paulo
+#usr/share/zoneinfo/right/America/Scoresbysund
+#usr/share/zoneinfo/right/America/Shiprock
+#usr/share/zoneinfo/right/America/St_Johns
+#usr/share/zoneinfo/right/America/St_Kitts
+#usr/share/zoneinfo/right/America/St_Lucia
+#usr/share/zoneinfo/right/America/St_Thomas
+#usr/share/zoneinfo/right/America/St_Vincent
+#usr/share/zoneinfo/right/America/Swift_Current
+#usr/share/zoneinfo/right/America/Tegucigalpa
+#usr/share/zoneinfo/right/America/Thule
+#usr/share/zoneinfo/right/America/Thunder_Bay
+#usr/share/zoneinfo/right/America/Tijuana
+#usr/share/zoneinfo/right/America/Tortola
+#usr/share/zoneinfo/right/America/Vancouver
+#usr/share/zoneinfo/right/America/Virgin
+#usr/share/zoneinfo/right/America/Whitehorse
+#usr/share/zoneinfo/right/America/Winnipeg
+#usr/share/zoneinfo/right/America/Yakutat
+#usr/share/zoneinfo/right/America/Yellowknife
+#usr/share/zoneinfo/right/Antarctica
+#usr/share/zoneinfo/right/Antarctica/Casey
+#usr/share/zoneinfo/right/Antarctica/Davis
+#usr/share/zoneinfo/right/Antarctica/DumontDUrville
+#usr/share/zoneinfo/right/Antarctica/Mawson
+#usr/share/zoneinfo/right/Antarctica/McMurdo
+#usr/share/zoneinfo/right/Antarctica/Palmer
+#usr/share/zoneinfo/right/Antarctica/South_Pole
+#usr/share/zoneinfo/right/Antarctica/Syowa
+#usr/share/zoneinfo/right/Antarctica/Vostok
+#usr/share/zoneinfo/right/Arctic
+#usr/share/zoneinfo/right/Arctic/Longyearbyen
+#usr/share/zoneinfo/right/Asia
+#usr/share/zoneinfo/right/Asia/Aden
+#usr/share/zoneinfo/right/Asia/Almaty
+#usr/share/zoneinfo/right/Asia/Amman
+#usr/share/zoneinfo/right/Asia/Anadyr
+#usr/share/zoneinfo/right/Asia/Aqtau
+#usr/share/zoneinfo/right/Asia/Aqtobe
+#usr/share/zoneinfo/right/Asia/Ashgabat
+#usr/share/zoneinfo/right/Asia/Ashkhabad
+#usr/share/zoneinfo/right/Asia/Baghdad
+#usr/share/zoneinfo/right/Asia/Bahrain
+#usr/share/zoneinfo/right/Asia/Baku
+#usr/share/zoneinfo/right/Asia/Bangkok
+#usr/share/zoneinfo/right/Asia/Beirut
+#usr/share/zoneinfo/right/Asia/Bishkek
+#usr/share/zoneinfo/right/Asia/Brunei
+#usr/share/zoneinfo/right/Asia/Calcutta
+#usr/share/zoneinfo/right/Asia/Choibalsan
+#usr/share/zoneinfo/right/Asia/Chongqing
+#usr/share/zoneinfo/right/Asia/Chungking
+#usr/share/zoneinfo/right/Asia/Colombo
+#usr/share/zoneinfo/right/Asia/Dacca
+#usr/share/zoneinfo/right/Asia/Damascus
+#usr/share/zoneinfo/right/Asia/Dhaka
+#usr/share/zoneinfo/right/Asia/Dili
+#usr/share/zoneinfo/right/Asia/Dubai
+#usr/share/zoneinfo/right/Asia/Dushanbe
+#usr/share/zoneinfo/right/Asia/Gaza
+#usr/share/zoneinfo/right/Asia/Harbin
+#usr/share/zoneinfo/right/Asia/Hong_Kong
+#usr/share/zoneinfo/right/Asia/Hovd
+#usr/share/zoneinfo/right/Asia/Irkutsk
+#usr/share/zoneinfo/right/Asia/Istanbul
+#usr/share/zoneinfo/right/Asia/Jakarta
+#usr/share/zoneinfo/right/Asia/Jayapura
+#usr/share/zoneinfo/right/Asia/Jerusalem
+#usr/share/zoneinfo/right/Asia/Kabul
+#usr/share/zoneinfo/right/Asia/Kamchatka
+#usr/share/zoneinfo/right/Asia/Karachi
+#usr/share/zoneinfo/right/Asia/Kashgar
+#usr/share/zoneinfo/right/Asia/Katmandu
+#usr/share/zoneinfo/right/Asia/Krasnoyarsk
+#usr/share/zoneinfo/right/Asia/Kuala_Lumpur
+#usr/share/zoneinfo/right/Asia/Kuching
+#usr/share/zoneinfo/right/Asia/Kuwait
+#usr/share/zoneinfo/right/Asia/Macao
+#usr/share/zoneinfo/right/Asia/Macau
+#usr/share/zoneinfo/right/Asia/Magadan
+#usr/share/zoneinfo/right/Asia/Makassar
+#usr/share/zoneinfo/right/Asia/Manila
+#usr/share/zoneinfo/right/Asia/Muscat
+#usr/share/zoneinfo/right/Asia/Nicosia
+#usr/share/zoneinfo/right/Asia/Novosibirsk
+#usr/share/zoneinfo/right/Asia/Omsk
+#usr/share/zoneinfo/right/Asia/Oral
+#usr/share/zoneinfo/right/Asia/Phnom_Penh
+#usr/share/zoneinfo/right/Asia/Pontianak
+#usr/share/zoneinfo/right/Asia/Pyongyang
+#usr/share/zoneinfo/right/Asia/Qatar
+#usr/share/zoneinfo/right/Asia/Qyzylorda
+#usr/share/zoneinfo/right/Asia/Rangoon
+#usr/share/zoneinfo/right/Asia/Riyadh
+#usr/share/zoneinfo/right/Asia/Riyadh87
+#usr/share/zoneinfo/right/Asia/Riyadh88
+#usr/share/zoneinfo/right/Asia/Riyadh89
+#usr/share/zoneinfo/right/Asia/Saigon
+#usr/share/zoneinfo/right/Asia/Sakhalin
+#usr/share/zoneinfo/right/Asia/Samarkand
+#usr/share/zoneinfo/right/Asia/Seoul
+#usr/share/zoneinfo/right/Asia/Shanghai
+#usr/share/zoneinfo/right/Asia/Singapore
+#usr/share/zoneinfo/right/Asia/Taipei
+#usr/share/zoneinfo/right/Asia/Tashkent
+#usr/share/zoneinfo/right/Asia/Tbilisi
+#usr/share/zoneinfo/right/Asia/Tehran
+#usr/share/zoneinfo/right/Asia/Tel_Aviv
+#usr/share/zoneinfo/right/Asia/Thimbu
+#usr/share/zoneinfo/right/Asia/Thimphu
+#usr/share/zoneinfo/right/Asia/Tokyo
+#usr/share/zoneinfo/right/Asia/Ujung_Pandang
+#usr/share/zoneinfo/right/Asia/Ulaanbaatar
+#usr/share/zoneinfo/right/Asia/Ulan_Bator
+#usr/share/zoneinfo/right/Asia/Urumqi
+#usr/share/zoneinfo/right/Asia/Vientiane
+#usr/share/zoneinfo/right/Asia/Vladivostok
+#usr/share/zoneinfo/right/Asia/Yakutsk
+#usr/share/zoneinfo/right/Asia/Yekaterinburg
+#usr/share/zoneinfo/right/Asia/Yerevan
+#usr/share/zoneinfo/right/Atlantic
+#usr/share/zoneinfo/right/Atlantic/Azores
+#usr/share/zoneinfo/right/Atlantic/Bermuda
+#usr/share/zoneinfo/right/Atlantic/Canary
+#usr/share/zoneinfo/right/Atlantic/Cape_Verde
+#usr/share/zoneinfo/right/Atlantic/Faeroe
+#usr/share/zoneinfo/right/Atlantic/Jan_Mayen
+#usr/share/zoneinfo/right/Atlantic/Madeira
+#usr/share/zoneinfo/right/Atlantic/Reykjavik
+#usr/share/zoneinfo/right/Atlantic/South_Georgia
+#usr/share/zoneinfo/right/Atlantic/St_Helena
+#usr/share/zoneinfo/right/Atlantic/Stanley
+#usr/share/zoneinfo/right/Australia
+#usr/share/zoneinfo/right/Australia/ACT
+#usr/share/zoneinfo/right/Australia/Adelaide
+#usr/share/zoneinfo/right/Australia/Brisbane
+#usr/share/zoneinfo/right/Australia/Broken_Hill
+#usr/share/zoneinfo/right/Australia/Canberra
+#usr/share/zoneinfo/right/Australia/Darwin
+#usr/share/zoneinfo/right/Australia/Hobart
+#usr/share/zoneinfo/right/Australia/LHI
+#usr/share/zoneinfo/right/Australia/Lindeman
+#usr/share/zoneinfo/right/Australia/Lord_Howe
+#usr/share/zoneinfo/right/Australia/Melbourne
+#usr/share/zoneinfo/right/Australia/NSW
+#usr/share/zoneinfo/right/Australia/North
+#usr/share/zoneinfo/right/Australia/Perth
+#usr/share/zoneinfo/right/Australia/Queensland
+#usr/share/zoneinfo/right/Australia/South
+#usr/share/zoneinfo/right/Australia/Sydney
+#usr/share/zoneinfo/right/Australia/Tasmania
+#usr/share/zoneinfo/right/Australia/Victoria
+#usr/share/zoneinfo/right/Australia/West
+#usr/share/zoneinfo/right/Australia/Yancowinna
+#usr/share/zoneinfo/right/Brazil
+#usr/share/zoneinfo/right/Brazil/Acre
+#usr/share/zoneinfo/right/Brazil/DeNoronha
+#usr/share/zoneinfo/right/Brazil/East
+#usr/share/zoneinfo/right/Brazil/West
+#usr/share/zoneinfo/right/CET
+#usr/share/zoneinfo/right/CST6CDT
+#usr/share/zoneinfo/right/Canada
+#usr/share/zoneinfo/right/Canada/Atlantic
+#usr/share/zoneinfo/right/Canada/Central
+#usr/share/zoneinfo/right/Canada/East-Saskatchewan
+#usr/share/zoneinfo/right/Canada/Eastern
+#usr/share/zoneinfo/right/Canada/Mountain
+#usr/share/zoneinfo/right/Canada/Newfoundland
+#usr/share/zoneinfo/right/Canada/Pacific
+#usr/share/zoneinfo/right/Canada/Saskatchewan
+#usr/share/zoneinfo/right/Canada/Yukon
+#usr/share/zoneinfo/right/Chile
+#usr/share/zoneinfo/right/Chile/Continental
+#usr/share/zoneinfo/right/Chile/EasterIsland
+#usr/share/zoneinfo/right/Cuba
+#usr/share/zoneinfo/right/EET
+#usr/share/zoneinfo/right/EST
+#usr/share/zoneinfo/right/EST5EDT
+#usr/share/zoneinfo/right/Egypt
+#usr/share/zoneinfo/right/Eire
+#usr/share/zoneinfo/right/Etc
+#usr/share/zoneinfo/right/Etc/GMT
+#usr/share/zoneinfo/right/Etc/GMT+0
+#usr/share/zoneinfo/right/Etc/GMT+1
+#usr/share/zoneinfo/right/Etc/GMT+10
+#usr/share/zoneinfo/right/Etc/GMT+11
+#usr/share/zoneinfo/right/Etc/GMT+12
+#usr/share/zoneinfo/right/Etc/GMT+2
+#usr/share/zoneinfo/right/Etc/GMT+3
+#usr/share/zoneinfo/right/Etc/GMT+4
+#usr/share/zoneinfo/right/Etc/GMT+5
+#usr/share/zoneinfo/right/Etc/GMT+6
+#usr/share/zoneinfo/right/Etc/GMT+7
+#usr/share/zoneinfo/right/Etc/GMT+8
+#usr/share/zoneinfo/right/Etc/GMT+9
+#usr/share/zoneinfo/right/Etc/GMT-0
+#usr/share/zoneinfo/right/Etc/GMT-1
+#usr/share/zoneinfo/right/Etc/GMT-10
+#usr/share/zoneinfo/right/Etc/GMT-11
+#usr/share/zoneinfo/right/Etc/GMT-12
+#usr/share/zoneinfo/right/Etc/GMT-13
+#usr/share/zoneinfo/right/Etc/GMT-14
+#usr/share/zoneinfo/right/Etc/GMT-2
+#usr/share/zoneinfo/right/Etc/GMT-3
+#usr/share/zoneinfo/right/Etc/GMT-4
+#usr/share/zoneinfo/right/Etc/GMT-5
+#usr/share/zoneinfo/right/Etc/GMT-6
+#usr/share/zoneinfo/right/Etc/GMT-7
+#usr/share/zoneinfo/right/Etc/GMT-8
+#usr/share/zoneinfo/right/Etc/GMT-9
+#usr/share/zoneinfo/right/Etc/GMT0
+#usr/share/zoneinfo/right/Etc/Greenwich
+#usr/share/zoneinfo/right/Etc/UCT
+#usr/share/zoneinfo/right/Etc/UTC
+#usr/share/zoneinfo/right/Etc/Universal
+#usr/share/zoneinfo/right/Etc/Zulu
+#usr/share/zoneinfo/right/Europe
+#usr/share/zoneinfo/right/Europe/Amsterdam
+#usr/share/zoneinfo/right/Europe/Andorra
+#usr/share/zoneinfo/right/Europe/Athens
+#usr/share/zoneinfo/right/Europe/Belfast
+#usr/share/zoneinfo/right/Europe/Belgrade
+#usr/share/zoneinfo/right/Europe/Berlin
+#usr/share/zoneinfo/right/Europe/Bratislava
+#usr/share/zoneinfo/right/Europe/Brussels
+#usr/share/zoneinfo/right/Europe/Bucharest
+#usr/share/zoneinfo/right/Europe/Budapest
+#usr/share/zoneinfo/right/Europe/Chisinau
+#usr/share/zoneinfo/right/Europe/Copenhagen
+#usr/share/zoneinfo/right/Europe/Dublin
+#usr/share/zoneinfo/right/Europe/Gibraltar
+#usr/share/zoneinfo/right/Europe/Helsinki
+#usr/share/zoneinfo/right/Europe/Istanbul
+#usr/share/zoneinfo/right/Europe/Kaliningrad
+#usr/share/zoneinfo/right/Europe/Kiev
+#usr/share/zoneinfo/right/Europe/Lisbon
+#usr/share/zoneinfo/right/Europe/Ljubljana
+#usr/share/zoneinfo/right/Europe/London
+#usr/share/zoneinfo/right/Europe/Luxembourg
+#usr/share/zoneinfo/right/Europe/Madrid
+#usr/share/zoneinfo/right/Europe/Malta
+#usr/share/zoneinfo/right/Europe/Minsk
+#usr/share/zoneinfo/right/Europe/Monaco
+#usr/share/zoneinfo/right/Europe/Moscow
+#usr/share/zoneinfo/right/Europe/Nicosia
+#usr/share/zoneinfo/right/Europe/Oslo
+#usr/share/zoneinfo/right/Europe/Paris
+#usr/share/zoneinfo/right/Europe/Prague
+#usr/share/zoneinfo/right/Europe/Riga
+#usr/share/zoneinfo/right/Europe/Rome
+#usr/share/zoneinfo/right/Europe/Samara
+#usr/share/zoneinfo/right/Europe/San_Marino
+#usr/share/zoneinfo/right/Europe/Sarajevo
+#usr/share/zoneinfo/right/Europe/Simferopol
+#usr/share/zoneinfo/right/Europe/Skopje
+#usr/share/zoneinfo/right/Europe/Sofia
+#usr/share/zoneinfo/right/Europe/Stockholm
+#usr/share/zoneinfo/right/Europe/Tallinn
+#usr/share/zoneinfo/right/Europe/Tirane
+#usr/share/zoneinfo/right/Europe/Tiraspol
+#usr/share/zoneinfo/right/Europe/Uzhgorod
+#usr/share/zoneinfo/right/Europe/Vaduz
+#usr/share/zoneinfo/right/Europe/Vatican
+#usr/share/zoneinfo/right/Europe/Vienna
+#usr/share/zoneinfo/right/Europe/Vilnius
+#usr/share/zoneinfo/right/Europe/Warsaw
+#usr/share/zoneinfo/right/Europe/Zagreb
+#usr/share/zoneinfo/right/Europe/Zaporozhye
+#usr/share/zoneinfo/right/Europe/Zurich
+#usr/share/zoneinfo/right/Factory
+#usr/share/zoneinfo/right/GB
+#usr/share/zoneinfo/right/GB-Eire
+#usr/share/zoneinfo/right/GMT
+#usr/share/zoneinfo/right/GMT+0
+#usr/share/zoneinfo/right/GMT-0
+#usr/share/zoneinfo/right/GMT0
+#usr/share/zoneinfo/right/Greenwich
+#usr/share/zoneinfo/right/HST
+#usr/share/zoneinfo/right/Hongkong
+#usr/share/zoneinfo/right/Iceland
+#usr/share/zoneinfo/right/Indian
+#usr/share/zoneinfo/right/Indian/Antananarivo
+#usr/share/zoneinfo/right/Indian/Chagos
+#usr/share/zoneinfo/right/Indian/Christmas
+#usr/share/zoneinfo/right/Indian/Cocos
+#usr/share/zoneinfo/right/Indian/Comoro
+#usr/share/zoneinfo/right/Indian/Kerguelen
+#usr/share/zoneinfo/right/Indian/Mahe
+#usr/share/zoneinfo/right/Indian/Maldives
+#usr/share/zoneinfo/right/Indian/Mauritius
+#usr/share/zoneinfo/right/Indian/Mayotte
+#usr/share/zoneinfo/right/Indian/Reunion
+#usr/share/zoneinfo/right/Iran
+#usr/share/zoneinfo/right/Israel
+#usr/share/zoneinfo/right/Jamaica
+#usr/share/zoneinfo/right/Japan
+#usr/share/zoneinfo/right/Kwajalein
+#usr/share/zoneinfo/right/Libya
+#usr/share/zoneinfo/right/MET
+#usr/share/zoneinfo/right/MST
+#usr/share/zoneinfo/right/MST7MDT
+#usr/share/zoneinfo/right/Mexico
+#usr/share/zoneinfo/right/Mexico/BajaNorte
+#usr/share/zoneinfo/right/Mexico/BajaSur
+#usr/share/zoneinfo/right/Mexico/General
+#usr/share/zoneinfo/right/Mideast
+#usr/share/zoneinfo/right/Mideast/Riyadh87
+#usr/share/zoneinfo/right/Mideast/Riyadh88
+#usr/share/zoneinfo/right/Mideast/Riyadh89
+#usr/share/zoneinfo/right/NZ
+#usr/share/zoneinfo/right/NZ-CHAT
+#usr/share/zoneinfo/right/Navajo
+#usr/share/zoneinfo/right/PRC
+#usr/share/zoneinfo/right/PST8PDT
+#usr/share/zoneinfo/right/Pacific
+#usr/share/zoneinfo/right/Pacific/Apia
+#usr/share/zoneinfo/right/Pacific/Auckland
+#usr/share/zoneinfo/right/Pacific/Chatham
+#usr/share/zoneinfo/right/Pacific/Easter
+#usr/share/zoneinfo/right/Pacific/Efate
+#usr/share/zoneinfo/right/Pacific/Enderbury
+#usr/share/zoneinfo/right/Pacific/Fakaofo
+#usr/share/zoneinfo/right/Pacific/Fiji
+#usr/share/zoneinfo/right/Pacific/Funafuti
+#usr/share/zoneinfo/right/Pacific/Galapagos
+#usr/share/zoneinfo/right/Pacific/Gambier
+#usr/share/zoneinfo/right/Pacific/Guadalcanal
+#usr/share/zoneinfo/right/Pacific/Guam
+#usr/share/zoneinfo/right/Pacific/Honolulu
+#usr/share/zoneinfo/right/Pacific/Johnston
+#usr/share/zoneinfo/right/Pacific/Kiritimati
+#usr/share/zoneinfo/right/Pacific/Kosrae
+#usr/share/zoneinfo/right/Pacific/Kwajalein
+#usr/share/zoneinfo/right/Pacific/Majuro
+#usr/share/zoneinfo/right/Pacific/Marquesas
+#usr/share/zoneinfo/right/Pacific/Midway
+#usr/share/zoneinfo/right/Pacific/Nauru
+#usr/share/zoneinfo/right/Pacific/Niue
+#usr/share/zoneinfo/right/Pacific/Norfolk
+#usr/share/zoneinfo/right/Pacific/Noumea
+#usr/share/zoneinfo/right/Pacific/Pago_Pago
+#usr/share/zoneinfo/right/Pacific/Palau
+#usr/share/zoneinfo/right/Pacific/Pitcairn
+#usr/share/zoneinfo/right/Pacific/Ponape
+#usr/share/zoneinfo/right/Pacific/Port_Moresby
+#usr/share/zoneinfo/right/Pacific/Rarotonga
+#usr/share/zoneinfo/right/Pacific/Saipan
+#usr/share/zoneinfo/right/Pacific/Samoa
+#usr/share/zoneinfo/right/Pacific/Tahiti
+#usr/share/zoneinfo/right/Pacific/Tarawa
+#usr/share/zoneinfo/right/Pacific/Tongatapu
+#usr/share/zoneinfo/right/Pacific/Truk
+#usr/share/zoneinfo/right/Pacific/Wake
+#usr/share/zoneinfo/right/Pacific/Wallis
+#usr/share/zoneinfo/right/Pacific/Yap
+#usr/share/zoneinfo/right/Poland
+#usr/share/zoneinfo/right/Portugal
+#usr/share/zoneinfo/right/ROC
+#usr/share/zoneinfo/right/ROK
+#usr/share/zoneinfo/right/Singapore
+#usr/share/zoneinfo/right/SystemV
+#usr/share/zoneinfo/right/SystemV/AST4
+#usr/share/zoneinfo/right/SystemV/AST4ADT
+#usr/share/zoneinfo/right/SystemV/CST6
+#usr/share/zoneinfo/right/SystemV/CST6CDT
+#usr/share/zoneinfo/right/SystemV/EST5
+#usr/share/zoneinfo/right/SystemV/EST5EDT
+#usr/share/zoneinfo/right/SystemV/HST10
+#usr/share/zoneinfo/right/SystemV/MST7
+#usr/share/zoneinfo/right/SystemV/MST7MDT
+#usr/share/zoneinfo/right/SystemV/PST8
+#usr/share/zoneinfo/right/SystemV/PST8PDT
+#usr/share/zoneinfo/right/SystemV/YST9
+#usr/share/zoneinfo/right/SystemV/YST9YDT
+#usr/share/zoneinfo/right/Turkey
+#usr/share/zoneinfo/right/UCT
+#usr/share/zoneinfo/right/US
+#usr/share/zoneinfo/right/US/Alaska
+#usr/share/zoneinfo/right/US/Aleutian
+#usr/share/zoneinfo/right/US/Arizona
+#usr/share/zoneinfo/right/US/Central
+#usr/share/zoneinfo/right/US/East-Indiana
+#usr/share/zoneinfo/right/US/Eastern
+#usr/share/zoneinfo/right/US/Hawaii
+#usr/share/zoneinfo/right/US/Indiana-Starke
+#usr/share/zoneinfo/right/US/Michigan
+#usr/share/zoneinfo/right/US/Mountain
+#usr/share/zoneinfo/right/US/Pacific
+#usr/share/zoneinfo/right/US/Samoa
+#usr/share/zoneinfo/right/UTC
+#usr/share/zoneinfo/right/Universal
+#usr/share/zoneinfo/right/W-SU
+#usr/share/zoneinfo/right/WET
+#usr/share/zoneinfo/right/Zulu
+#usr/share/zoneinfo/zone.tab
+##
+## binutils-2.14
+##
+#usr/bin/addr2line
+#usr/bin/ar
+#usr/bin/as
+#usr/bin/c++filt
+#usr/bin/gprof
+#usr/bin/ld
+#usr/bin/nm
+#usr/bin/objcopy
+#usr/bin/objdump
+#usr/bin/ranlib
+#usr/bin/readelf
+#usr/bin/size
+#usr/bin/strings
+#usr/bin/strip
+#usr/i386-pc-linux-gnu
+#usr/i386-pc-linux-gnu/bin
+#usr/i386-pc-linux-gnu/bin/ar
+#usr/i386-pc-linux-gnu/bin/as
+#usr/i386-pc-linux-gnu/bin/ld
+#usr/i386-pc-linux-gnu/bin/nm
+#usr/i386-pc-linux-gnu/bin/ranlib
+#usr/i386-pc-linux-gnu/bin/strip
+#usr/i386-pc-linux-gnu/lib
+#usr/i386-pc-linux-gnu/lib/ldscripts
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.x
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xbn
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xc
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xn
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xr
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xs
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xsc
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xu
+#usr/i386-pc-linux-gnu/lib/ldscripts/i386linux.x
+#usr/i386-pc-linux-gnu/lib/ldscripts/i386linux.xbn
+#usr/i386-pc-linux-gnu/lib/ldscripts/i386linux.xn
+#usr/i386-pc-linux-gnu/lib/ldscripts/i386linux.xr
+#usr/i386-pc-linux-gnu/lib/ldscripts/i386linux.xu
+#usr/include/ansidecl.h
+#usr/include/bfd.h
+#usr/include/bfdlink.h
+#usr/include/dis-asm.h
+#usr/include/symcat.h
+#usr/lib/libbfd-2.14.so
+#usr/lib/libbfd.a
+#usr/lib/libbfd.la
+#usr/lib/libbfd.so
+#usr/lib/libiberty.a
+#usr/lib/libopcodes-2.14.so
+#usr/lib/libopcodes.a
+#usr/lib/libopcodes.la
+#usr/lib/libopcodes.so
+#usr/share/info/as.info
+#usr/share/info/bfd.info
+#usr/share/info/bfd.info-1
+#usr/share/info/bfd.info-2
+#usr/share/info/bfd.info-3
+#usr/share/info/bfd.info-4
+#usr/share/info/bfd.info-5
+#usr/share/info/bfd.info-6
+#usr/share/info/bfd.info-7
+#usr/share/info/bfd.info-8
+#usr/share/info/bfd.info-9
+#usr/share/info/binutils.info
+#usr/share/info/configure.info
+#usr/share/info/configure.info-1
+#usr/share/info/configure.info-2
+#usr/share/info/configure.info-3
+#usr/share/info/gprof.info
+#usr/share/info/gprof.info-1
+#usr/share/info/gprof.info-2
+#usr/share/info/gprof.info-3
+#usr/share/info/ld.info
+#usr/share/info/standards.info
+#usr/share/man/man1/addr2line.1
+#usr/share/man/man1/ar.1
+#usr/share/man/man1/as.1
+#usr/share/man/man1/c++filt.1
+#usr/share/man/man1/dlltool.1
+#usr/share/man/man1/gprof.1
+#usr/share/man/man1/ld.1
+#usr/share/man/man1/nlmconv.1
+#usr/share/man/man1/nm.1
+#usr/share/man/man1/objcopy.1
+#usr/share/man/man1/objdump.1
+#usr/share/man/man1/ranlib.1
+#usr/share/man/man1/readelf.1
+#usr/share/man/man1/size.1
+#usr/share/man/man1/strings.1
+#usr/share/man/man1/strip.1
+#usr/share/man/man1/windres.1
+##
+## gcc-3.3.1
+##
+#usr/bin/c++
+#usr/bin/g++
+#usr/bin/i386-pc-linux-gnu-g++
+#usr/bin/i386-pc-linux-gnu-c++
+#usr/bin/cc
+#usr/bin/gcov
+#usr/bin/gccbug
+#usr/bin/cpp
+#usr/bin/gcc
+#usr/bin/i386-pc-linux-gnu-gcc-3.3.1
+#usr/bin/i386-pc-linux-gnu-gcc
+#usr/include/c++
+#usr/include/c++/3.3.1
+#usr/include/c++/3.3.1/bits
+#usr/include/c++/3.3.1/bits/basic_ios.h
+#usr/include/c++/3.3.1/bits/basic_ios.tcc
+#usr/include/c++/3.3.1/bits/basic_string.h
+#usr/include/c++/3.3.1/bits/basic_string.tcc
+#usr/include/c++/3.3.1/bits/boost_concept_check.h
+#usr/include/c++/3.3.1/bits/char_traits.h
+#usr/include/c++/3.3.1/bits/codecvt.h
+#usr/include/c++/3.3.1/bits/concept_check.h
+#usr/include/c++/3.3.1/bits/cpp_type_traits.h
+#usr/include/c++/3.3.1/bits/deque.tcc
+#usr/include/c++/3.3.1/bits/fpos.h
+#usr/include/c++/3.3.1/bits/fstream.tcc
+#usr/include/c++/3.3.1/bits/functexcept.h
+#usr/include/c++/3.3.1/bits/gslice.h
+#usr/include/c++/3.3.1/bits/gslice_array.h
+#usr/include/c++/3.3.1/bits/indirect_array.h
+#usr/include/c++/3.3.1/bits/ios_base.h
+#usr/include/c++/3.3.1/bits/istream.tcc
+#usr/include/c++/3.3.1/bits/list.tcc
+#usr/include/c++/3.3.1/bits/locale_classes.h
+#usr/include/c++/3.3.1/bits/locale_facets.h
+#usr/include/c++/3.3.1/bits/locale_facets.tcc
+#usr/include/c++/3.3.1/bits/localefwd.h
+#usr/include/c++/3.3.1/bits/mask_array.h
+#usr/include/c++/3.3.1/bits/ostream.tcc
+#usr/include/c++/3.3.1/bits/pthread_allocimpl.h
+#usr/include/c++/3.3.1/bits/stream_iterator.h
+#usr/include/c++/3.3.1/bits/streambuf_iterator.h
+#usr/include/c++/3.3.1/bits/slice_array.h
+#usr/include/c++/3.3.1/bits/sstream.tcc
+#usr/include/c++/3.3.1/bits/stl_algo.h
+#usr/include/c++/3.3.1/bits/stl_algobase.h
+#usr/include/c++/3.3.1/bits/stl_alloc.h
+#usr/include/c++/3.3.1/bits/stl_bvector.h
+#usr/include/c++/3.3.1/bits/stl_construct.h
+#usr/include/c++/3.3.1/bits/stl_deque.h
+#usr/include/c++/3.3.1/bits/stl_function.h
+#usr/include/c++/3.3.1/bits/stl_heap.h
+#usr/include/c++/3.3.1/bits/stl_iterator.h
+#usr/include/c++/3.3.1/bits/stl_iterator_base_funcs.h
+#usr/include/c++/3.3.1/bits/stl_iterator_base_types.h
+#usr/include/c++/3.3.1/bits/stl_list.h
+#usr/include/c++/3.3.1/bits/stl_map.h
+#usr/include/c++/3.3.1/bits/stl_multimap.h
+#usr/include/c++/3.3.1/bits/stl_multiset.h
+#usr/include/c++/3.3.1/bits/stl_numeric.h
+#usr/include/c++/3.3.1/bits/stl_pair.h
+#usr/include/c++/3.3.1/bits/stl_pthread_alloc.h
+#usr/include/c++/3.3.1/bits/stl_queue.h
+#usr/include/c++/3.3.1/bits/stl_raw_storage_iter.h
+#usr/include/c++/3.3.1/bits/stl_relops.h
+#usr/include/c++/3.3.1/bits/stl_set.h
+#usr/include/c++/3.3.1/bits/stl_stack.h
+#usr/include/c++/3.3.1/bits/stl_tempbuf.h
+#usr/include/c++/3.3.1/bits/stl_threads.h
+#usr/include/c++/3.3.1/bits/stl_tree.h
+#usr/include/c++/3.3.1/bits/stl_uninitialized.h
+#usr/include/c++/3.3.1/bits/stl_vector.h
+#usr/include/c++/3.3.1/bits/streambuf.tcc
+#usr/include/c++/3.3.1/bits/stringfwd.h
+#usr/include/c++/3.3.1/bits/type_traits.h
+#usr/include/c++/3.3.1/bits/valarray_array.h
+#usr/include/c++/3.3.1/bits/valarray_array.tcc
+#usr/include/c++/3.3.1/bits/valarray_meta.h
+#usr/include/c++/3.3.1/bits/vector.tcc
+#usr/include/c++/3.3.1/bits/cmath.tcc
+#usr/include/c++/3.3.1/backward
+#usr/include/c++/3.3.1/backward/complex.h
+#usr/include/c++/3.3.1/backward/iomanip.h
+#usr/include/c++/3.3.1/backward/istream.h
+#usr/include/c++/3.3.1/backward/ostream.h
+#usr/include/c++/3.3.1/backward/stream.h
+#usr/include/c++/3.3.1/backward/streambuf.h
+#usr/include/c++/3.3.1/backward/algo.h
+#usr/include/c++/3.3.1/backward/algobase.h
+#usr/include/c++/3.3.1/backward/alloc.h
+#usr/include/c++/3.3.1/backward/bvector.h
+#usr/include/c++/3.3.1/backward/defalloc.h
+#usr/include/c++/3.3.1/backward/deque.h
+#usr/include/c++/3.3.1/backward/function.h
+#usr/include/c++/3.3.1/backward/hash_map.h
+#usr/include/c++/3.3.1/backward/hash_set.h
+#usr/include/c++/3.3.1/backward/hashtable.h
+#usr/include/c++/3.3.1/backward/heap.h
+#usr/include/c++/3.3.1/backward/iostream.h
+#usr/include/c++/3.3.1/backward/iterator.h
+#usr/include/c++/3.3.1/backward/list.h
+#usr/include/c++/3.3.1/backward/map.h
+#usr/include/c++/3.3.1/backward/multimap.h
+#usr/include/c++/3.3.1/backward/new.h
+#usr/include/c++/3.3.1/backward/multiset.h
+#usr/include/c++/3.3.1/backward/pair.h
+#usr/include/c++/3.3.1/backward/queue.h
+#usr/include/c++/3.3.1/backward/rope.h
+#usr/include/c++/3.3.1/backward/set.h
+#usr/include/c++/3.3.1/backward/slist.h
+#usr/include/c++/3.3.1/backward/stack.h
+#usr/include/c++/3.3.1/backward/tempbuf.h
+#usr/include/c++/3.3.1/backward/tree.h
+#usr/include/c++/3.3.1/backward/vector.h
+#usr/include/c++/3.3.1/backward/fstream.h
+#usr/include/c++/3.3.1/backward/strstream
+#usr/include/c++/3.3.1/backward/backward_warning.h
+#usr/include/c++/3.3.1/ext
+#usr/include/c++/3.3.1/ext/algorithm
+#usr/include/c++/3.3.1/ext/enc_filebuf.h
+#usr/include/c++/3.3.1/ext/stdio_filebuf.h
+#usr/include/c++/3.3.1/ext/functional
+#usr/include/c++/3.3.1/ext/hash_map
+#usr/include/c++/3.3.1/ext/hash_set
+#usr/include/c++/3.3.1/ext/iterator
+#usr/include/c++/3.3.1/ext/memory
+#usr/include/c++/3.3.1/ext/numeric
+#usr/include/c++/3.3.1/ext/rb_tree
+#usr/include/c++/3.3.1/ext/rope
+#usr/include/c++/3.3.1/ext/ropeimpl.h
+#usr/include/c++/3.3.1/ext/slist
+#usr/include/c++/3.3.1/ext/stl_hash_fun.h
+#usr/include/c++/3.3.1/ext/stl_hashtable.h
+#usr/include/c++/3.3.1/ext/stl_rope.h
+#usr/include/c++/3.3.1/cassert
+#usr/include/c++/3.3.1/cctype
+#usr/include/c++/3.3.1/cerrno
+#usr/include/c++/3.3.1/cfloat
+#usr/include/c++/3.3.1/ciso646
+#usr/include/c++/3.3.1/climits
+#usr/include/c++/3.3.1/clocale
+#usr/include/c++/3.3.1/cmath
+#usr/include/c++/3.3.1/csetjmp
+#usr/include/c++/3.3.1/csignal
+#usr/include/c++/3.3.1/cstdarg
+#usr/include/c++/3.3.1/cstddef
+#usr/include/c++/3.3.1/cstdio
+#usr/include/c++/3.3.1/cstdlib
+#usr/include/c++/3.3.1/cstring
+#usr/include/c++/3.3.1/ctime
+#usr/include/c++/3.3.1/cwchar
+#usr/include/c++/3.3.1/cwctype
+#usr/include/c++/3.3.1/algorithm
+#usr/include/c++/3.3.1/bitset
+#usr/include/c++/3.3.1/complex
+#usr/include/c++/3.3.1/deque
+#usr/include/c++/3.3.1/fstream
+#usr/include/c++/3.3.1/functional
+#usr/include/c++/3.3.1/iomanip
+#usr/include/c++/3.3.1/ios
+#usr/include/c++/3.3.1/iosfwd
+#usr/include/c++/3.3.1/iostream
+#usr/include/c++/3.3.1/istream
+#usr/include/c++/3.3.1/iterator
+#usr/include/c++/3.3.1/limits
+#usr/include/c++/3.3.1/list
+#usr/include/c++/3.3.1/locale
+#usr/include/c++/3.3.1/map
+#usr/include/c++/3.3.1/memory
+#usr/include/c++/3.3.1/numeric
+#usr/include/c++/3.3.1/ostream
+#usr/include/c++/3.3.1/queue
+#usr/include/c++/3.3.1/set
+#usr/include/c++/3.3.1/sstream
+#usr/include/c++/3.3.1/stack
+#usr/include/c++/3.3.1/stdexcept
+#usr/include/c++/3.3.1/streambuf
+#usr/include/c++/3.3.1/string
+#usr/include/c++/3.3.1/utility
+#usr/include/c++/3.3.1/valarray
+#usr/include/c++/3.3.1/vector
+#usr/include/c++/3.3.1/i386-pc-linux-gnu
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/ctype_base.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/ctype_inline.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/ctype_noninline.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/os_defines.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/atomicity.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/basic_file.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/c++config.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/c++io.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/c++locale.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/messages_members.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/time_members.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/codecvt_specializations.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/gthr.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/gthr-single.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/gthr-posix.h
+#usr/include/c++/3.3.1/i386-pc-linux-gnu/bits/gthr-default.h
+#usr/include/c++/3.3.1/exception
+#usr/include/c++/3.3.1/new
+#usr/include/c++/3.3.1/typeinfo
+#usr/include/c++/3.3.1/cxxabi.h
+#usr/include/c++/3.3.1/exception_defines.h
+#usr/lib/gcc-lib
+#usr/lib/gcc-lib/i386-pc-linux-gnu
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/syslimits.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/float.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/iso646.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/stdarg.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/stdbool.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/stddef.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/varargs.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/unwind.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/mmintrin.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/xmmintrin.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/include/limits.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/cc1
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/cc1plus
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/collect2
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/crtbegin.o
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/crtbeginS.o
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/crtbeginT.o
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/crtend.o
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/crtendS.o
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/specs
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/float.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/iso646.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/stdarg.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/stdbool.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/stddef.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/varargs.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/unwind.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/mmintrin.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/xmmintrin.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/limits.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/include/README
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/fixinc.sh
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/fixincl
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/gsyslimits.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/mkheaders
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/install-tools/mkheaders.conf
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/libgcc.a
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.1/libgcc_eh.a
+usr/lib/libgcc_s.so
+usr/lib/libgcc_s.so.1
+usr/lib/libstdc++.so
+usr/lib/libstdc++.so.5
+usr/lib/libstdc++.so.5.0.5
+#usr/lib/libstdc++.la
+#usr/lib/libstdc++.a
+#usr/lib/libsupc++.la
+#usr/lib/libsupc++.a
+#usr/share/info/cpp.info
+#usr/share/info/gcc.info
+#usr/share/info/cppinternals.info
+#usr/share/info/gccint.info
+#usr/share/man/man1/g++.1
+#usr/share/man/man1/gcc.1
+#usr/share/man/man1/cpp.1
+#usr/share/man/man1/gcov.1
+#usr/share/man/man7/fsf-funding.7
+#usr/share/man/man7/gfdl.7
+#usr/share/man/man7/gpl.7
+#lib/cpp
+##
+## coreutils-5.0
+##
+bin/[
+bin/basename
+bin/chgrp
+bin/chmod
+bin/chown
+bin/cp
+bin/date
+bin/dd
+bin/df
+#bin/dir
+#bin/dircolors
+bin/du
+bin/echo
+bin/false
+bin/head
+bin/install
+bin/ln
+bin/ls
+bin/mkdir
+bin/mkfifo
+bin/mknod
+bin/mv
+bin/rm
+bin/rmdir
+#bin/shred
+bin/sleep
+bin/su
+bin/sync
+bin/test
+bin/touch
+bin/true
+#bin/uname
+bin/uname.bak
+#bin/vdir
+#usr/bin/cksum
+#usr/bin/comm
+#usr/bin/csplit
+usr/bin/cut
+usr/bin/dirname
+usr/bin/env
+#usr/bin/expand
+usr/bin/expr
+#usr/bin/factor
+#usr/bin/fmt
+#usr/bin/fold
+usr/bin/groups
+usr/bin/hostid
+usr/bin/id
+#usr/bin/install
+usr/bin/join
+#usr/bin/kill
+#usr/bin/link
+#usr/bin/logname
+usr/bin/md5sum
+usr/bin/nice
+#usr/bin/nl
+usr/bin/nohup
+#usr/bin/od
+usr/bin/paste
+#usr/bin/pathchk
+#usr/bin/pinky
+#usr/bin/pr
+#usr/bin/printenv
+#usr/bin/printf
+#usr/bin/ptx
+#usr/bin/readlink
+usr/bin/seq
+#usr/bin/sha1sum
+usr/bin/sort
+usr/bin/split
+usr/bin/stat
+#usr/bin/sum
+#usr/bin/tac
+usr/bin/tail
+usr/bin/tee
+usr/bin/tr
+#usr/bin/tsort
+#usr/bin/tty
+#usr/bin/unexpand
+usr/bin/uniq
+#usr/bin/unlink
+usr/bin/uptime
+#usr/bin/users
+usr/bin/wc
+usr/bin/who
+usr/bin/whoami
+usr/bin/yes
+usr/sbin/chroot
+#usr/share/info/coreutils.info
+#usr/share/man/man1/basename.1
+#usr/share/man/man1/cat.1
+#usr/share/man/man1/chroot.1
+#usr/share/man/man1/cksum.1
+#usr/share/man/man1/comm.1
+#usr/share/man/man1/csplit.1
+#usr/share/man/man1/cut.1
+#usr/share/man/man1/date.1
+#usr/share/man/man1/dirname.1
+#usr/share/man/man1/echo.1
+#usr/share/man/man1/env.1
+#usr/share/man/man1/expand.1
+#usr/share/man/man1/expr.1
+#usr/share/man/man1/factor.1
+#usr/share/man/man1/false.1
+#usr/share/man/man1/fmt.1
+#usr/share/man/man1/fold.1
+#usr/share/man/man1/groups.1
+#usr/share/man/man1/head.1
+#usr/share/man/man1/hostid.1
+#usr/share/man/man1/id.1
+#usr/share/man/man1/join.1
+#usr/share/man/man1/link.1
+#usr/share/man/man1/logname.1
+#usr/share/man/man1/md5sum.1
+#usr/share/man/man1/nice.1
+#usr/share/man/man1/nl.1
+#usr/share/man/man1/nohup.1
+#usr/share/man/man1/od.1
+#usr/share/man/man1/paste.1
+#usr/share/man/man1/pathchk.1
+#usr/share/man/man1/pinky.1
+#usr/share/man/man1/pr.1
+#usr/share/man/man1/printenv.1
+#usr/share/man/man1/printf.1
+#usr/share/man/man1/ptx.1
+#usr/share/man/man1/pwd.1
+#usr/share/man/man1/readlink.1
+#usr/share/man/man1/seq.1
+#usr/share/man/man1/sha1sum.1
+#usr/share/man/man1/shred.1
+#usr/share/man/man1/sleep.1
+#usr/share/man/man1/sort.1
+#usr/share/man/man1/split.1
+#usr/share/man/man1/stat.1
+#usr/share/man/man1/stty.1
+#usr/share/man/man1/su.1
+#usr/share/man/man1/sum.1
+#usr/share/man/man1/sync.1
+#usr/share/man/man1/tac.1
+#usr/share/man/man1/tail.1
+#usr/share/man/man1/tee.1
+#usr/share/man/man1/test.1
+#usr/share/man/man1/tr.1
+#usr/share/man/man1/true.1
+#usr/share/man/man1/tsort.1
+#usr/share/man/man1/tty.1
+#usr/share/man/man1/uname.1
+#usr/share/man/man1/unexpand.1
+#usr/share/man/man1/uniq.1
+#usr/share/man/man1/unlink.1
+#usr/share/man/man1/uptime.1
+#usr/share/man/man1/users.1
+#usr/share/man/man1/wc.1
+#usr/share/man/man1/who.1
+#usr/share/man/man1/whoami.1
+#usr/share/man/man1/yes.1
+##
+## zlib-1.2.3
+##
+lib/libz.so.1
+lib/libz.so.1.2.3
+#usr/include/zconf.h
+#usr/include/zlib.h
+#usr/lib/libz.a
+#usr/share/man/man3/zlib.3
+##
+## mktemp-1.5
+##
+usr/bin/mktemp
+#usr/share/man/man1/mktemp.1
+##
+## Iana-Etc-2.00
+##
+etc/protocols
+etc/services
+##
+## findutils-4.1.20
+##
+#usr/bin/bigram
+#usr/bin/code
+usr/bin/find
+#usr/bin/frcode
+#usr/bin/locate
+#usr/bin/updatedb
+#usr/bin/xargs
+#usr/share/info/find.info
+#usr/share/info/find.info-1
+#usr/share/info/find.info-2
+#usr/share/man/man1/find.1
+#usr/share/man/man1/locate.1
+#usr/share/man/man1/updatedb.1
+#usr/share/man/man1/xargs.1
+#usr/share/man/man5/locatedb.5
+#usr/var
+##
+## gawk-3.1.3
+##
+usr/bin/awk
+usr/bin/gawk
+#usr/bin/gawk-3.1.3
+#usr/bin/grcat
+#usr/bin/igawk
+#usr/bin/pgawk
+#usr/bin/pgawk-3.1.3
+#usr/bin/pwcat
+#usr/share/gawk-3.1.3
+#usr/share/gawk-3.1.3/assert.awk
+#usr/share/gawk-3.1.3/bits2str.awk
+#usr/share/gawk-3.1.3/cliff_rand.awk
+#usr/share/gawk-3.1.3/ctime.awk
+#usr/share/gawk-3.1.3/ftrans.awk
+#usr/share/gawk-3.1.3/getopt.awk
+#usr/share/gawk-3.1.3/gettime.awk
+#usr/share/gawk-3.1.3/group.awk
+#usr/share/gawk-3.1.3/join.awk
+#usr/share/gawk-3.1.3/libintl.awk
+#usr/share/gawk-3.1.3/nextfile.awk
+#usr/share/gawk-3.1.3/noassign.awk
+#usr/share/gawk-3.1.3/ord.awk
+#usr/share/gawk-3.1.3/passwd.awk
+#usr/share/gawk-3.1.3/readable.awk
+#usr/share/gawk-3.1.3/rewind.awk
+#usr/share/gawk-3.1.3/round.awk
+#usr/share/gawk-3.1.3/zerofile.awk
+#usr/share/info/gawk.info
+#usr/share/info/gawkinet.info
+#usr/share/man/man1/gawk.1
+#usr/share/man/man1/igawk.1
+#usr/share/man/man1/pgawk.1
+##
+## ncurses-5.4
+##
+lib/libncurses.so.5
+lib/libncurses.so.5.4
+#usr/bin/captoinfo
+#usr/bin/clear
+#usr/bin/infocmp
+#usr/bin/infotocap
+#usr/bin/reset
+#usr/bin/tack
+#usr/bin/tic
+#usr/bin/toe
+usr/bin/tput
+#usr/bin/tset
+#usr/include/curses.h
+#usr/include/cursesapp.h
+#usr/include/cursesf.h
+#usr/include/cursesm.h
+#usr/include/cursesp.h
+#usr/include/cursesw.h
+#usr/include/cursslk.h
+#usr/include/eti.h
+#usr/include/etip.h
+#usr/include/form.h
+#usr/include/menu.h
+#usr/include/ncurses.h
+#usr/include/ncurses_dll.h
+#usr/include/panel.h
+#usr/include/term.h
+#usr/include/termcap.h
+#usr/include/unctrl.h
+#usr/lib/libcurses.a
+#usr/lib/libcurses.so
+#usr/lib/libform.a
+#usr/lib/libform.so
+#usr/lib/libform.so.5
+#usr/lib/libform.so.5.4
+#usr/lib/libmenu.a
+#usr/lib/libmenu.so
+#usr/lib/libmenu.so.5
+#usr/lib/libmenu.so.5.4
+#usr/lib/libncurses++.a
+#usr/lib/libncurses.a
+usr/lib/libncurses.so
+#usr/lib/libpanel.a
+usr/lib/libpanel.so
+usr/lib/libpanel.so.5
+usr/lib/libpanel.so.5.4
+#usr/lib/terminfo
+#usr/share/man/man1/captoinfo.1m
+#usr/share/man/man1/clear.1
+#usr/share/man/man1/infocmp.1m
+#usr/share/man/man1/infotocap.1m
+#usr/share/man/man1/reset.1
+#usr/share/man/man1/tack.1
+#usr/share/man/man1/tic.1m
+#usr/share/man/man1/toe.1m
+#usr/share/man/man1/tput.1
+#usr/share/man/man1/tset.1
+#usr/share/man/man3/COLOR_PAIR.3x
+#usr/share/man/man3/PAIR_NUMBER.3x
+#usr/share/man/man3/_nc_tracebits.3x
+#usr/share/man/man3/_traceattr.3x
+#usr/share/man/man3/_traceattr2.3x
+#usr/share/man/man3/_tracechar.3x
+#usr/share/man/man3/_tracechtype.3x
+#usr/share/man/man3/_tracechtype2.3x
+#usr/share/man/man3/_tracedump.3x
+#usr/share/man/man3/_tracef.3x
+#usr/share/man/man3/_tracemouse.3x
+#usr/share/man/man3/add_wch.3x
+#usr/share/man/man3/add_wchnstr.3x
+#usr/share/man/man3/add_wchstr.3x
+#usr/share/man/man3/addch.3x
+#usr/share/man/man3/addchnstr.3x
+#usr/share/man/man3/addchstr.3x
+#usr/share/man/man3/addnstr.3x
+#usr/share/man/man3/addnwstr.3x
+#usr/share/man/man3/addstr.3x
+#usr/share/man/man3/addwstr.3x
+#usr/share/man/man3/assume_default_colors.3x
+#usr/share/man/man3/attr_get.3x
+#usr/share/man/man3/attr_off.3x
+#usr/share/man/man3/attr_on.3x
+#usr/share/man/man3/attr_set.3x
+#usr/share/man/man3/attroff.3x
+#usr/share/man/man3/attron.3x
+#usr/share/man/man3/attrset.3x
+#usr/share/man/man3/baudrate.3x
+#usr/share/man/man3/beep.3x
+#usr/share/man/man3/bkgd.3x
+#usr/share/man/man3/bkgdset.3x
+#usr/share/man/man3/bkgrnd.3x
+#usr/share/man/man3/bkgrndset.3x
+#usr/share/man/man3/border.3x
+#usr/share/man/man3/border_set.3x
+#usr/share/man/man3/bottom_panel.3x
+#usr/share/man/man3/box.3x
+#usr/share/man/man3/box_set.3x
+#usr/share/man/man3/can_change_color.3x
+#usr/share/man/man3/cbreak.3x
+#usr/share/man/man3/chgat.3x
+#usr/share/man/man3/clear.3x
+#usr/share/man/man3/clearok.3x
+#usr/share/man/man3/clrtobot.3x
+#usr/share/man/man3/clrtoeol.3x
+#usr/share/man/man3/color_content.3x
+#usr/share/man/man3/color_set.3x
+#usr/share/man/man3/copywin.3x
+#usr/share/man/man3/current_field.3x
+#usr/share/man/man3/current_item.3x
+#usr/share/man/man3/curs_add_wch.3x
+#usr/share/man/man3/curs_add_wchstr.3x
+#usr/share/man/man3/curs_addch.3x
+#usr/share/man/man3/curs_addchstr.3x
+#usr/share/man/man3/curs_addstr.3x
+#usr/share/man/man3/curs_addwstr.3x
+#usr/share/man/man3/curs_attr.3x
+#usr/share/man/man3/curs_beep.3x
+#usr/share/man/man3/curs_bkgd.3x
+#usr/share/man/man3/curs_bkgrnd.3x
+#usr/share/man/man3/curs_border.3x
+#usr/share/man/man3/curs_border_set.3x
+#usr/share/man/man3/curs_clear.3x
+#usr/share/man/man3/curs_color.3x
+#usr/share/man/man3/curs_delch.3x
+#usr/share/man/man3/curs_deleteln.3x
+#usr/share/man/man3/curs_extend.3x
+#usr/share/man/man3/curs_get_wch.3x
+#usr/share/man/man3/curs_get_wstr.3x
+#usr/share/man/man3/curs_getcchar.3x
+#usr/share/man/man3/curs_getch.3x
+#usr/share/man/man3/curs_getstr.3x
+#usr/share/man/man3/curs_getyx.3x
+#usr/share/man/man3/curs_in_wch.3x
+#usr/share/man/man3/curs_in_wchstr.3x
+#usr/share/man/man3/curs_inch.3x
+#usr/share/man/man3/curs_inchstr.3x
+#usr/share/man/man3/curs_initscr.3x
+#usr/share/man/man3/curs_inopts.3x
+#usr/share/man/man3/curs_ins_wch.3x
+#usr/share/man/man3/curs_ins_wstr.3x
+#usr/share/man/man3/curs_insch.3x
+#usr/share/man/man3/curs_insstr.3x
+#usr/share/man/man3/curs_instr.3x
+#usr/share/man/man3/curs_inwstr.3x
+#usr/share/man/man3/curs_kernel.3x
+#usr/share/man/man3/curs_mouse.3x
+#usr/share/man/man3/curs_move.3x
+#usr/share/man/man3/curs_outopts.3x
+#usr/share/man/man3/curs_overlay.3x
+#usr/share/man/man3/curs_pad.3x
+#usr/share/man/man3/curs_print.3x
+#usr/share/man/man3/curs_printw.3x
+#usr/share/man/man3/curs_refresh.3x
+#usr/share/man/man3/curs_scanw.3x
+#usr/share/man/man3/curs_scr_dump.3x
+#usr/share/man/man3/curs_scroll.3x
+#usr/share/man/man3/curs_set.3x
+#usr/share/man/man3/curs_slk.3x
+#usr/share/man/man3/curs_termattrs.3x
+#usr/share/man/man3/curs_termcap.3x
+#usr/share/man/man3/curs_terminfo.3x
+#usr/share/man/man3/curs_touch.3x
+#usr/share/man/man3/curs_trace.3x
+#usr/share/man/man3/curs_util.3x
+#usr/share/man/man3/curs_window.3x
+#usr/share/man/man3/curses_version.3x
+#usr/share/man/man3/data_ahead.3x
+#usr/share/man/man3/data_behind.3x
+#usr/share/man/man3/def_prog_mode.3x
+#usr/share/man/man3/def_shell_mode.3x
+#usr/share/man/man3/default_colors.3x
+#usr/share/man/man3/define_key.3x
+#usr/share/man/man3/del_curterm.3x
+#usr/share/man/man3/del_panel.3x
+#usr/share/man/man3/delay_output.3x
+#usr/share/man/man3/delch.3x
+#usr/share/man/man3/deleteln.3x
+#usr/share/man/man3/delscreen.3x
+#usr/share/man/man3/delwin.3x
+#usr/share/man/man3/derwin.3x
+#usr/share/man/man3/doupdate.3x
+#usr/share/man/man3/dup_field.3x
+#usr/share/man/man3/dupwin.3x
+#usr/share/man/man3/dynamic_field_info.3x
+#usr/share/man/man3/echo.3x
+#usr/share/man/man3/echo_wchar.3x
+#usr/share/man/man3/echochar.3x
+#usr/share/man/man3/endwin.3x
+#usr/share/man/man3/erase.3x
+#usr/share/man/man3/erasechar.3x
+#usr/share/man/man3/erasewchar.3x
+#usr/share/man/man3/field_arg.3x
+#usr/share/man/man3/field_back.3x
+#usr/share/man/man3/field_buffer.3x
+#usr/share/man/man3/field_count.3x
+#usr/share/man/man3/field_fore.3x
+#usr/share/man/man3/field_index.3x
+#usr/share/man/man3/field_info.3x
+#usr/share/man/man3/field_just.3x
+#usr/share/man/man3/field_opts.3x
+#usr/share/man/man3/field_opts_off.3x
+#usr/share/man/man3/field_opts_on.3x
+#usr/share/man/man3/field_pad.3x
+#usr/share/man/man3/field_status.3x
+#usr/share/man/man3/field_type.3x
+#usr/share/man/man3/field_userptr.3x
+#usr/share/man/man3/filter.3x
+#usr/share/man/man3/flash.3x
+#usr/share/man/man3/flushinp.3x
+#usr/share/man/man3/form.3x
+#usr/share/man/man3/form_cursor.3x
+#usr/share/man/man3/form_data.3x
+#usr/share/man/man3/form_driver.3x
+#usr/share/man/man3/form_field.3x
+#usr/share/man/man3/form_field_attributes.3x
+#usr/share/man/man3/form_field_buffer.3x
+#usr/share/man/man3/form_field_info.3x
+#usr/share/man/man3/form_field_just.3x
+#usr/share/man/man3/form_field_new.3x
+#usr/share/man/man3/form_field_opts.3x
+#usr/share/man/man3/form_field_userptr.3x
+#usr/share/man/man3/form_field_validation.3x
+#usr/share/man/man3/form_fields.3x
+#usr/share/man/man3/form_fieldtype.3x
+#usr/share/man/man3/form_hook.3x
+#usr/share/man/man3/form_new.3x
+#usr/share/man/man3/form_new_page.3x
+#usr/share/man/man3/form_opts.3x
+#usr/share/man/man3/form_opts_off.3x
+#usr/share/man/man3/form_opts_on.3x
+#usr/share/man/man3/form_page.3x
+#usr/share/man/man3/form_post.3x
+#usr/share/man/man3/form_request_by_name.3x
+#usr/share/man/man3/form_request_name.3x
+#usr/share/man/man3/form_requestname.3x
+#usr/share/man/man3/form_sub.3x
+#usr/share/man/man3/form_userptr.3x
+#usr/share/man/man3/form_win.3x
+#usr/share/man/man3/free_field.3x
+#usr/share/man/man3/free_fieldtype.3x
+#usr/share/man/man3/free_form.3x
+#usr/share/man/man3/free_item.3x
+#usr/share/man/man3/free_menu.3x
+#usr/share/man/man3/get_wch.3x
+#usr/share/man/man3/get_wstr.3x
+#usr/share/man/man3/getbegx.3x
+#usr/share/man/man3/getbegy.3x
+#usr/share/man/man3/getbegyx.3x
+#usr/share/man/man3/getbkgd.3x
+#usr/share/man/man3/getbkgrnd.3x
+#usr/share/man/man3/getcchar.3x
+#usr/share/man/man3/getch.3x
+#usr/share/man/man3/getcurx.3x
+#usr/share/man/man3/getcury.3x
+#usr/share/man/man3/getmaxx.3x
+#usr/share/man/man3/getmaxy.3x
+#usr/share/man/man3/getmaxyx.3x
+#usr/share/man/man3/getmouse.3x
+#usr/share/man/man3/getn_wstr.3x
+#usr/share/man/man3/getnstr.3x
+#usr/share/man/man3/getparx.3x
+#usr/share/man/man3/getpary.3x
+#usr/share/man/man3/getparyx.3x
+#usr/share/man/man3/getstr.3x
+#usr/share/man/man3/getsyx.3x
+#usr/share/man/man3/getwin.3x
+#usr/share/man/man3/getyx.3x
+#usr/share/man/man3/halfdelay.3x
+#usr/share/man/man3/has_colors.3x
+#usr/share/man/man3/has_ic.3x
+#usr/share/man/man3/has_il.3x
+#usr/share/man/man3/has_key.3x
+#usr/share/man/man3/hide_panel.3x
+#usr/share/man/man3/hline.3x
+#usr/share/man/man3/hline_set.3x
+#usr/share/man/man3/idcok.3x
+#usr/share/man/man3/idlok.3x
+#usr/share/man/man3/immedok.3x
+#usr/share/man/man3/in_wch.3x
+#usr/share/man/man3/in_wchnstr.3x
+#usr/share/man/man3/in_wchstr.3x
+#usr/share/man/man3/inch.3x
+#usr/share/man/man3/inchnstr.3x
+#usr/share/man/man3/inchstr.3x
+#usr/share/man/man3/init_color.3x
+#usr/share/man/man3/init_pair.3x
+#usr/share/man/man3/initscr.3x
+#usr/share/man/man3/innstr.3x
+#usr/share/man/man3/innwstr.3x
+#usr/share/man/man3/ins_nwstr.3x
+#usr/share/man/man3/ins_wch.3x
+#usr/share/man/man3/ins_wstr.3x
+#usr/share/man/man3/insch.3x
+#usr/share/man/man3/insdelln.3x
+#usr/share/man/man3/insertln.3x
+#usr/share/man/man3/insnstr.3x
+#usr/share/man/man3/insstr.3x
+#usr/share/man/man3/instr.3x
+#usr/share/man/man3/intrflush.3x
+#usr/share/man/man3/inwstr.3x
+#usr/share/man/man3/is_linetouched.3x
+#usr/share/man/man3/is_term_resized.3x
+#usr/share/man/man3/is_wintouched.3x
+#usr/share/man/man3/isendwin.3x
+#usr/share/man/man3/item_count.3x
+#usr/share/man/man3/item_description.3x
+#usr/share/man/man3/item_index.3x
+#usr/share/man/man3/item_name.3x
+#usr/share/man/man3/item_opts.3x
+#usr/share/man/man3/item_opts_off.3x
+#usr/share/man/man3/item_opts_on.3x
+#usr/share/man/man3/item_userptr.3x
+#usr/share/man/man3/item_value.3x
+#usr/share/man/man3/item_visible.3x
+#usr/share/man/man3/key_name.3x
+#usr/share/man/man3/keybound.3x
+#usr/share/man/man3/keyname.3x
+#usr/share/man/man3/keyok.3x
+#usr/share/man/man3/keypad.3x
+#usr/share/man/man3/killchar.3x
+#usr/share/man/man3/killwchar.3x
+#usr/share/man/man3/leaveok.3x
+#usr/share/man/man3/link_field.3x
+#usr/share/man/man3/link_fieldtype.3x
+#usr/share/man/man3/longname.3x
+#usr/share/man/man3/mcprint.3x
+#usr/share/man/man3/menu.3x
+#usr/share/man/man3/menu_attributes.3x
+#usr/share/man/man3/menu_back.3x
+#usr/share/man/man3/menu_cursor.3x
+#usr/share/man/man3/menu_driver.3x
+#usr/share/man/man3/menu_fore.3x
+#usr/share/man/man3/menu_format.3x
+#usr/share/man/man3/menu_grey.3x
+#usr/share/man/man3/menu_hook.3x
+#usr/share/man/man3/menu_items.3x
+#usr/share/man/man3/menu_mark.3x
+#usr/share/man/man3/menu_new.3x
+#usr/share/man/man3/menu_opts.3x
+#usr/share/man/man3/menu_opts_off.3x
+#usr/share/man/man3/menu_opts_on.3x
+#usr/share/man/man3/menu_pad.3x
+#usr/share/man/man3/menu_pattern.3x
+#usr/share/man/man3/menu_post.3x
+#usr/share/man/man3/menu_request_by_name.3x
+#usr/share/man/man3/menu_request_name.3x
+#usr/share/man/man3/menu_requestname.3x
+#usr/share/man/man3/menu_spacing.3x
+#usr/share/man/man3/menu_sub.3x
+#usr/share/man/man3/menu_userptr.3x
+#usr/share/man/man3/menu_win.3x
+#usr/share/man/man3/meta.3x
+#usr/share/man/man3/mitem_current.3x
+#usr/share/man/man3/mitem_name.3x
+#usr/share/man/man3/mitem_new.3x
+#usr/share/man/man3/mitem_opts.3x
+#usr/share/man/man3/mitem_userptr.3x
+#usr/share/man/man3/mitem_value.3x
+#usr/share/man/man3/mitem_visible.3x
+#usr/share/man/man3/mouse_trafo.3x
+#usr/share/man/man3/mouseinterval.3x
+#usr/share/man/man3/mousemask.3x
+#usr/share/man/man3/move.3x
+#usr/share/man/man3/move_field.3x
+#usr/share/man/man3/move_panel.3x
+#usr/share/man/man3/mvadd_wch.3x
+#usr/share/man/man3/mvadd_wchnstr.3x
+#usr/share/man/man3/mvadd_wchstr.3x
+#usr/share/man/man3/mvaddch.3x
+#usr/share/man/man3/mvaddchnstr.3x
+#usr/share/man/man3/mvaddchstr.3x
+#usr/share/man/man3/mvaddnstr.3x
+#usr/share/man/man3/mvaddnwstr.3x
+#usr/share/man/man3/mvaddstr.3x
+#usr/share/man/man3/mvaddwstr.3x
+#usr/share/man/man3/mvchgat.3x
+#usr/share/man/man3/mvcur.3x
+#usr/share/man/man3/mvdelch.3x
+#usr/share/man/man3/mvderwin.3x
+#usr/share/man/man3/mvget_wch.3x
+#usr/share/man/man3/mvget_wstr.3x
+#usr/share/man/man3/mvgetch.3x
+#usr/share/man/man3/mvgetn_wstr.3x
+#usr/share/man/man3/mvgetnstr.3x
+#usr/share/man/man3/mvgetstr.3x
+#usr/share/man/man3/mvhline.3x
+#usr/share/man/man3/mvhline_set.3x
+#usr/share/man/man3/mvin_wch.3x
+#usr/share/man/man3/mvin_wchnstr.3x
+#usr/share/man/man3/mvin_wchstr.3x
+#usr/share/man/man3/mvinch.3x
+#usr/share/man/man3/mvinchnstr.3x
+#usr/share/man/man3/mvinchstr.3x
+#usr/share/man/man3/mvinnstr.3x
+#usr/share/man/man3/mvinnwstr.3x
+#usr/share/man/man3/mvins_nwstr.3x
+#usr/share/man/man3/mvins_wch.3x
+#usr/share/man/man3/mvins_wstr.3x
+#usr/share/man/man3/mvinsch.3x
+#usr/share/man/man3/mvinsnstr.3x
+#usr/share/man/man3/mvinsstr.3x
+#usr/share/man/man3/mvinstr.3x
+#usr/share/man/man3/mvinwstr.3x
+#usr/share/man/man3/mvprintw.3x
+#usr/share/man/man3/mvscanw.3x
+#usr/share/man/man3/mvvline.3x
+#usr/share/man/man3/mvvline_set.3x
+#usr/share/man/man3/mvwadd_wch.3x
+#usr/share/man/man3/mvwadd_wchnstr.3x
+#usr/share/man/man3/mvwadd_wchstr.3x
+#usr/share/man/man3/mvwaddch.3x
+#usr/share/man/man3/mvwaddchnstr.3x
+#usr/share/man/man3/mvwaddchstr.3x
+#usr/share/man/man3/mvwaddnstr.3x
+#usr/share/man/man3/mvwaddnwstr.3x
+#usr/share/man/man3/mvwaddstr.3x
+#usr/share/man/man3/mvwaddwstr.3x
+#usr/share/man/man3/mvwchgat.3x
+#usr/share/man/man3/mvwdelch.3x
+#usr/share/man/man3/mvwget_wch.3x
+#usr/share/man/man3/mvwget_wstr.3x
+#usr/share/man/man3/mvwgetch.3x
+#usr/share/man/man3/mvwgetn_wstr.3x
+#usr/share/man/man3/mvwgetnstr.3x
+#usr/share/man/man3/mvwgetstr.3x
+#usr/share/man/man3/mvwhline.3x
+#usr/share/man/man3/mvwhline_set.3x
+#usr/share/man/man3/mvwin.3x
+#usr/share/man/man3/mvwin_wch.3x
+#usr/share/man/man3/mvwin_wchnstr.3x
+#usr/share/man/man3/mvwin_wchstr.3x
+#usr/share/man/man3/mvwinch.3x
+#usr/share/man/man3/mvwinchnstr.3x
+#usr/share/man/man3/mvwinchstr.3x
+#usr/share/man/man3/mvwinnstr.3x
+#usr/share/man/man3/mvwinnwstr.3x
+#usr/share/man/man3/mvwins_nwstr.3x
+#usr/share/man/man3/mvwins_wch.3x
+#usr/share/man/man3/mvwins_wstr.3x
+#usr/share/man/man3/mvwinsch.3x
+#usr/share/man/man3/mvwinsnstr.3x
+#usr/share/man/man3/mvwinsstr.3x
+#usr/share/man/man3/mvwinstr.3x
+#usr/share/man/man3/mvwinwstr.3x
+#usr/share/man/man3/mvwprintw.3x
+#usr/share/man/man3/mvwscanw.3x
+#usr/share/man/man3/mvwvline.3x
+#usr/share/man/man3/mvwvline_set.3x
+#usr/share/man/man3/napms.3x
+#usr/share/man/man3/ncurses.3x
+#usr/share/man/man3/new_field.3x
+#usr/share/man/man3/new_fieldtype.3x
+#usr/share/man/man3/new_form.3x
+#usr/share/man/man3/new_item.3x
+#usr/share/man/man3/new_menu.3x
+#usr/share/man/man3/new_page.3x
+#usr/share/man/man3/new_panel.3x
+#usr/share/man/man3/newpad.3x
+#usr/share/man/man3/newterm.3x
+#usr/share/man/man3/newwin.3x
+#usr/share/man/man3/nl.3x
+#usr/share/man/man3/nocbreak.3x
+#usr/share/man/man3/nodelay.3x
+#usr/share/man/man3/noecho.3x
+#usr/share/man/man3/nonl.3x
+#usr/share/man/man3/noqiflush.3x
+#usr/share/man/man3/noraw.3x
+#usr/share/man/man3/notimeout.3x
+#usr/share/man/man3/overlay.3x
+#usr/share/man/man3/overwrite.3x
+#usr/share/man/man3/pair_content.3x
+#usr/share/man/man3/panel.3x
+#usr/share/man/man3/panel_above.3x
+#usr/share/man/man3/panel_below.3x
+#usr/share/man/man3/panel_hidden.3x
+#usr/share/man/man3/panel_userptr.3x
+#usr/share/man/man3/panel_window.3x
+#usr/share/man/man3/pechochar.3x
+#usr/share/man/man3/pnoutrefresh.3x
+#usr/share/man/man3/pos_form_cursor.3x
+#usr/share/man/man3/pos_menu_cursor.3x
+#usr/share/man/man3/post_form.3x
+#usr/share/man/man3/post_menu.3x
+#usr/share/man/man3/prefresh.3x
+#usr/share/man/man3/printw.3x
+#usr/share/man/man3/putp.3x
+#usr/share/man/man3/putwin.3x
+#usr/share/man/man3/qiflush.3x
+#usr/share/man/man3/raw.3x
+#usr/share/man/man3/redrawwin.3x
+#usr/share/man/man3/refresh.3x
+#usr/share/man/man3/replace_panel.3x
+#usr/share/man/man3/reset_prog_mode.3x
+#usr/share/man/man3/reset_shell_mode.3x
+#usr/share/man/man3/resetty.3x
+#usr/share/man/man3/resize_term.3x
+#usr/share/man/man3/resizeterm.3x
+#usr/share/man/man3/restartterm.3x
+#usr/share/man/man3/ripoffline.3x
+#usr/share/man/man3/savetty.3x
+#usr/share/man/man3/scale_form.3x
+#usr/share/man/man3/scale_menu.3x
+#usr/share/man/man3/scanw.3x
+#usr/share/man/man3/scr_dump.3x
+#usr/share/man/man3/scr_init.3x
+#usr/share/man/man3/scr_restore.3x
+#usr/share/man/man3/scr_set.3x
+#usr/share/man/man3/scrl.3x
+#usr/share/man/man3/scroll.3x
+#usr/share/man/man3/scrollok.3x
+#usr/share/man/man3/set_current_field.3x
+#usr/share/man/man3/set_current_item.3x
+#usr/share/man/man3/set_curterm.3x
+#usr/share/man/man3/set_field_back.3x
+#usr/share/man/man3/set_field_buffer.3x
+#usr/share/man/man3/set_field_fore.3x
+#usr/share/man/man3/set_field_init.3x
+#usr/share/man/man3/set_field_just.3x
+#usr/share/man/man3/set_field_opts.3x
+#usr/share/man/man3/set_field_pad.3x
+#usr/share/man/man3/set_field_status.3x
+#usr/share/man/man3/set_field_term.3x
+#usr/share/man/man3/set_field_type.3x
+#usr/share/man/man3/set_field_userptr.3x
+#usr/share/man/man3/set_fieldtype_arg.3x
+#usr/share/man/man3/set_fieldtype_choice.3x
+#usr/share/man/man3/set_form_fields.3x
+#usr/share/man/man3/set_form_init.3x
+#usr/share/man/man3/set_form_opts.3x
+#usr/share/man/man3/set_form_page.3x
+#usr/share/man/man3/set_form_sub.3x
+#usr/share/man/man3/set_form_term.3x
+#usr/share/man/man3/set_form_userptr.3x
+#usr/share/man/man3/set_form_win.3x
+#usr/share/man/man3/set_item_init.3x
+#usr/share/man/man3/set_item_opts.3x
+#usr/share/man/man3/set_item_term.3x
+#usr/share/man/man3/set_item_userptr.3x
+#usr/share/man/man3/set_item_value.3x
+#usr/share/man/man3/set_max_field.3x
+#usr/share/man/man3/set_menu_back.3x
+#usr/share/man/man3/set_menu_fore.3x
+#usr/share/man/man3/set_menu_format.3x
+#usr/share/man/man3/set_menu_grey.3x
+#usr/share/man/man3/set_menu_init.3x
+#usr/share/man/man3/set_menu_items.3x
+#usr/share/man/man3/set_menu_mark.3x
+#usr/share/man/man3/set_menu_opts.3x
+#usr/share/man/man3/set_menu_pad.3x
+#usr/share/man/man3/set_menu_pattern.3x
+#usr/share/man/man3/set_menu_spacing.3x
+#usr/share/man/man3/set_menu_sub.3x
+#usr/share/man/man3/set_menu_term.3x
+#usr/share/man/man3/set_menu_userptr.3x
+#usr/share/man/man3/set_menu_win.3x
+#usr/share/man/man3/set_new_page.3x
+#usr/share/man/man3/set_panel_userptr.3x
+#usr/share/man/man3/set_term.3x
+#usr/share/man/man3/set_top_row.3x
+#usr/share/man/man3/setcchar.3x
+#usr/share/man/man3/setscrreg.3x
+#usr/share/man/man3/setsyx.3x
+#usr/share/man/man3/setterm.3x
+#usr/share/man/man3/setupterm.3x
+#usr/share/man/man3/show_panel.3x
+#usr/share/man/man3/slk_attr.3x
+#usr/share/man/man3/slk_attr_off.3x
+#usr/share/man/man3/slk_attr_on.3x
+#usr/share/man/man3/slk_attr_set.3x
+#usr/share/man/man3/slk_attroff.3x
+#usr/share/man/man3/slk_attron.3x
+#usr/share/man/man3/slk_attrset.3x
+#usr/share/man/man3/slk_clear.3x
+#usr/share/man/man3/slk_color.3x
+#usr/share/man/man3/slk_init.3x
+#usr/share/man/man3/slk_label.3x
+#usr/share/man/man3/slk_noutrefresh.3x
+#usr/share/man/man3/slk_refresh.3x
+#usr/share/man/man3/slk_restore.3x
+#usr/share/man/man3/slk_set.3x
+#usr/share/man/man3/slk_touch.3x
+#usr/share/man/man3/standend.3x
+#usr/share/man/man3/standout.3x
+#usr/share/man/man3/start_color.3x
+#usr/share/man/man3/subpad.3x
+#usr/share/man/man3/subwin.3x
+#usr/share/man/man3/syncok.3x
+#usr/share/man/man3/term_attrs.3x
+#usr/share/man/man3/termattrs.3x
+#usr/share/man/man3/termname.3x
+#usr/share/man/man3/tgetent.3x
+#usr/share/man/man3/tgetflag.3x
+#usr/share/man/man3/tgetnum.3x
+#usr/share/man/man3/tgetstr.3x
+#usr/share/man/man3/tgoto.3x
+#usr/share/man/man3/tigetflag.3x
+#usr/share/man/man3/tigetnum.3x
+#usr/share/man/man3/tigetstr.3x
+#usr/share/man/man3/timeout.3x
+#usr/share/man/man3/top_panel.3x
+#usr/share/man/man3/top_row.3x
+#usr/share/man/man3/touchline.3x
+#usr/share/man/man3/touchwin.3x
+#usr/share/man/man3/tparm.3x
+#usr/share/man/man3/tputs.3x
+#usr/share/man/man3/trace.3x
+#usr/share/man/man3/typeahead.3x
+#usr/share/man/man3/unctrl.3x
+#usr/share/man/man3/unget_wch.3x
+#usr/share/man/man3/ungetch.3x
+#usr/share/man/man3/ungetmouse.3x
+#usr/share/man/man3/unpost_form.3x
+#usr/share/man/man3/unpost_menu.3x
+#usr/share/man/man3/untouchwin.3x
+#usr/share/man/man3/update_panels.3x
+#usr/share/man/man3/use_default_colors.3x
+#usr/share/man/man3/use_env.3x
+#usr/share/man/man3/use_extended_names.3x
+#usr/share/man/man3/vid_attr.3x
+#usr/share/man/man3/vid_puts.3x
+#usr/share/man/man3/vidattr.3x
+#usr/share/man/man3/vidputs.3x
+#usr/share/man/man3/vline.3x
+#usr/share/man/man3/vline_set.3x
+#usr/share/man/man3/vw_printw.3x
+#usr/share/man/man3/vw_scanw.3x
+#usr/share/man/man3/vwprintw.3x
+#usr/share/man/man3/vwscanw.3x
+#usr/share/man/man3/wadd_wch.3x
+#usr/share/man/man3/wadd_wchnstr.3x
+#usr/share/man/man3/wadd_wchstr.3x
+#usr/share/man/man3/waddch.3x
+#usr/share/man/man3/waddchnstr.3x
+#usr/share/man/man3/waddchstr.3x
+#usr/share/man/man3/waddnstr.3x
+#usr/share/man/man3/waddnwstr.3x
+#usr/share/man/man3/waddstr.3x
+#usr/share/man/man3/waddwstr.3x
+#usr/share/man/man3/wattr_get.3x
+#usr/share/man/man3/wattr_off.3x
+#usr/share/man/man3/wattr_on.3x
+#usr/share/man/man3/wattr_set.3x
+#usr/share/man/man3/wattroff.3x
+#usr/share/man/man3/wattron.3x
+#usr/share/man/man3/wattrset.3x
+#usr/share/man/man3/wbkgd.3x
+#usr/share/man/man3/wbkgdset.3x
+#usr/share/man/man3/wbkgrnd.3x
+#usr/share/man/man3/wbkgrndset.3x
+#usr/share/man/man3/wborder.3x
+#usr/share/man/man3/wborder_set.3x
+#usr/share/man/man3/wchgat.3x
+#usr/share/man/man3/wclear.3x
+#usr/share/man/man3/wclrtobot.3x
+#usr/share/man/man3/wclrtoeol.3x
+#usr/share/man/man3/wcolor_set.3x
+#usr/share/man/man3/wcursyncup.3x
+#usr/share/man/man3/wdelch.3x
+#usr/share/man/man3/wdeleteln.3x
+#usr/share/man/man3/wecho_wchar.3x
+#usr/share/man/man3/wechochar.3x
+#usr/share/man/man3/wenclose.3x
+#usr/share/man/man3/werase.3x
+#usr/share/man/man3/wget_wch.3x
+#usr/share/man/man3/wget_wstr.3x
+#usr/share/man/man3/wgetbkgrnd.3x
+#usr/share/man/man3/wgetch.3x
+#usr/share/man/man3/wgetn_wstr.3x
+#usr/share/man/man3/wgetnstr.3x
+#usr/share/man/man3/wgetstr.3x
+#usr/share/man/man3/whline.3x
+#usr/share/man/man3/whline_set.3x
+#usr/share/man/man3/win_wch.3x
+#usr/share/man/man3/win_wchnstr.3x
+#usr/share/man/man3/win_wchstr.3x
+#usr/share/man/man3/winch.3x
+#usr/share/man/man3/winchnstr.3x
+#usr/share/man/man3/winchstr.3x
+#usr/share/man/man3/winnstr.3x
+#usr/share/man/man3/winnwstr.3x
+#usr/share/man/man3/wins_nwstr.3x
+#usr/share/man/man3/wins_wch.3x
+#usr/share/man/man3/wins_wstr.3x
+#usr/share/man/man3/winsch.3x
+#usr/share/man/man3/winsdelln.3x
+#usr/share/man/man3/winsertln.3x
+#usr/share/man/man3/winsnstr.3x
+#usr/share/man/man3/winsstr.3x
+#usr/share/man/man3/winstr.3x
+#usr/share/man/man3/winwstr.3x
+#usr/share/man/man3/wmouse_trafo.3x
+#usr/share/man/man3/wmove.3x
+#usr/share/man/man3/wnoutrefresh.3x
+#usr/share/man/man3/wprintw.3x
+#usr/share/man/man3/wredrawln.3x
+#usr/share/man/man3/wrefresh.3x
+#usr/share/man/man3/wresize.3x
+#usr/share/man/man3/wscanw.3x
+#usr/share/man/man3/wscrl.3x
+#usr/share/man/man3/wsetscrreg.3x
+#usr/share/man/man3/wstandend.3x
+#usr/share/man/man3/wstandout.3x
+#usr/share/man/man3/wsyncdown.3x
+#usr/share/man/man3/wsyncup.3x
+#usr/share/man/man3/wtimeout.3x
+#usr/share/man/man3/wtouchln.3x
+#usr/share/man/man3/wunctrl.3x
+#usr/share/man/man3/wvline.3x
+#usr/share/man/man3/wvline_set.3x
+#usr/share/man/man5/term.5
+#usr/share/man/man5/terminfo.5
+#usr/share/man/man7/term.7
+#usr/share/tabset
+#usr/share/tabset/std
+#usr/share/tabset/stdcrt
+#usr/share/tabset/vt100
+#usr/share/tabset/vt300
+#usr/share/terminfo/1
+#usr/share/terminfo/1/1178
+#usr/share/terminfo/1/1730-lm
+#usr/share/terminfo/2
+#usr/share/terminfo/2/2621
+#usr/share/terminfo/2/2621-wl
+#usr/share/terminfo/2/2621A
+#usr/share/terminfo/2/2621a
+#usr/share/terminfo/3
+#usr/share/terminfo/3/386at
+#usr/share/terminfo/3/3b1
+#usr/share/terminfo/4
+#usr/share/terminfo/4/4025ex
+#usr/share/terminfo/4/4027ex
+#usr/share/terminfo/4/4410-w
+#usr/share/terminfo/5
+#usr/share/terminfo/5/5051
+#usr/share/terminfo/5/5410-w
+#usr/share/terminfo/5/5620
+#usr/share/terminfo/5/5630-24
+#usr/share/terminfo/5/5630DMD-24
+#usr/share/terminfo/6
+#usr/share/terminfo/6/6053
+#usr/share/terminfo/6/6053-dg
+#usr/share/terminfo/6/605x
+#usr/share/terminfo/6/605x-dg
+#usr/share/terminfo/6/630-lm
+#usr/share/terminfo/6/630MTG-24
+#usr/share/terminfo/7
+#usr/share/terminfo/7/730MTG-24
+#usr/share/terminfo/7/730MTG-41
+#usr/share/terminfo/7/730MTG-41r
+#usr/share/terminfo/7/730MTGr
+#usr/share/terminfo/7/730MTGr-24
+#usr/share/terminfo/8
+#usr/share/terminfo/8/8510
+#usr/share/terminfo/9
+#usr/share/terminfo/9/955-hb
+#usr/share/terminfo/9/955-w
+#usr/share/terminfo/A
+#usr/share/terminfo/A/Apple_Terminal
+#usr/share/terminfo/E
+#usr/share/terminfo/E/Eterm
+#usr/share/terminfo/E/Eterm-color
+#usr/share/terminfo/L
+#usr/share/terminfo/L/LFT-PC850
+#usr/share/terminfo/M
+#usr/share/terminfo/M/MtxOrb
+#usr/share/terminfo/M/MtxOrb162
+#usr/share/terminfo/M/MtxOrb204
+#usr/share/terminfo/N
+#usr/share/terminfo/N/NCR260VT300WPP
+#usr/share/terminfo/N/NCRVT100WPP
+#usr/share/terminfo/P
+#usr/share/terminfo/P/P12
+#usr/share/terminfo/P/P12-M
+#usr/share/terminfo/P/P12-M-W
+#usr/share/terminfo/P/P12-W
+#usr/share/terminfo/P/P14
+#usr/share/terminfo/P/P14-M
+#usr/share/terminfo/P/P14-M-W
+#usr/share/terminfo/P/P14-W
+#usr/share/terminfo/P/P4
+#usr/share/terminfo/P/P5
+#usr/share/terminfo/P/P7
+#usr/share/terminfo/P/P8
+#usr/share/terminfo/P/P8-W
+#usr/share/terminfo/P/P9
+#usr/share/terminfo/P/P9-8
+#usr/share/terminfo/P/P9-8-W
+#usr/share/terminfo/P/P9-W
+#usr/share/terminfo/Q
+#usr/share/terminfo/Q/Q306-8-pc
+#usr/share/terminfo/Q/Q310-vip-H
+#usr/share/terminfo/Q/Q310-vip-H-am
+#usr/share/terminfo/Q/Q310-vip-Hw
+#usr/share/terminfo/Q/Q310-vip-w
+#usr/share/terminfo/Q/Q310-vip-w-am
+#usr/share/terminfo/X
+#usr/share/terminfo/X/X-hpterm
+#usr/share/terminfo/a
+#usr/share/terminfo/a/a210
+#usr/share/terminfo/a/a80
+#usr/share/terminfo/a/a980
+#usr/share/terminfo/a/aa4080
+#usr/share/terminfo/a/aaa
+#usr/share/terminfo/a/aaa+dec
+#usr/share/terminfo/a/aaa+rv
+#usr/share/terminfo/a/aaa+unk
+#usr/share/terminfo/a/aaa-18
+#usr/share/terminfo/a/aaa-18-rv
+#usr/share/terminfo/a/aaa-20
+#usr/share/terminfo/a/aaa-22
+#usr/share/terminfo/a/aaa-24
+#usr/share/terminfo/a/aaa-24-rv
+#usr/share/terminfo/a/aaa-26
+#usr/share/terminfo/a/aaa-28
+#usr/share/terminfo/a/aaa-30
+#usr/share/terminfo/a/aaa-30-ctxt
+#usr/share/terminfo/a/aaa-30-rv
+#usr/share/terminfo/a/aaa-30-rv-ctxt
+#usr/share/terminfo/a/aaa-30-s
+#usr/share/terminfo/a/aaa-30-s-ctxt
+#usr/share/terminfo/a/aaa-30-s-rv
+#usr/share/terminfo/a/aaa-30-s-rv-ct
+#usr/share/terminfo/a/aaa-36
+#usr/share/terminfo/a/aaa-36-rv
+#usr/share/terminfo/a/aaa-40
+#usr/share/terminfo/a/aaa-40-rv
+#usr/share/terminfo/a/aaa-48
+#usr/share/terminfo/a/aaa-48-rv
+#usr/share/terminfo/a/aaa-60
+#usr/share/terminfo/a/aaa-60-dec-rv
+#usr/share/terminfo/a/aaa-60-rv
+#usr/share/terminfo/a/aaa-60-s
+#usr/share/terminfo/a/aaa-60-s-rv
+#usr/share/terminfo/a/aaa-ctxt
+#usr/share/terminfo/a/aaa-db
+#usr/share/terminfo/a/aaa-rv
+#usr/share/terminfo/a/aaa-rv-ctxt
+#usr/share/terminfo/a/aaa-rv-unk
+#usr/share/terminfo/a/aaa-s
+#usr/share/terminfo/a/aaa-s-ctxt
+#usr/share/terminfo/a/aaa-s-rv
+#usr/share/terminfo/a/aaa-s-rv-ctxt
+#usr/share/terminfo/a/aaa-unk
+#usr/share/terminfo/a/aas1901
+#usr/share/terminfo/a/abm80
+#usr/share/terminfo/a/abm85
+#usr/share/terminfo/a/abm85e
+#usr/share/terminfo/a/abm85h
+#usr/share/terminfo/a/abm85h-old
+#usr/share/terminfo/a/act4
+#usr/share/terminfo/a/act5
+#usr/share/terminfo/a/addrinfo
+#usr/share/terminfo/a/adds980
+#usr/share/terminfo/a/addsviewpoint
+#usr/share/terminfo/a/addsvp60
+#usr/share/terminfo/a/adm+sgr
+#usr/share/terminfo/a/adm1
+#usr/share/terminfo/a/adm11
+#usr/share/terminfo/a/adm1178
+#usr/share/terminfo/a/adm12
+#usr/share/terminfo/a/adm1a
+#usr/share/terminfo/a/adm2
+#usr/share/terminfo/a/adm20
+#usr/share/terminfo/a/adm21
+#usr/share/terminfo/a/adm22
+#usr/share/terminfo/a/adm3
+#usr/share/terminfo/a/adm31
+#usr/share/terminfo/a/adm31-old
+#usr/share/terminfo/a/adm36
+#usr/share/terminfo/a/adm3a
+#usr/share/terminfo/a/adm3a+
+#usr/share/terminfo/a/adm42
+#usr/share/terminfo/a/adm42-ns
+#usr/share/terminfo/a/adm5
+#usr/share/terminfo/a/aepro
+#usr/share/terminfo/a/aixterm
+#usr/share/terminfo/a/aixterm-m
+#usr/share/terminfo/a/aixterm-m-old
+#usr/share/terminfo/a/aj
+#usr/share/terminfo/a/aj510
+#usr/share/terminfo/a/aj830
+#usr/share/terminfo/a/aj832
+#usr/share/terminfo/a/alt2
+#usr/share/terminfo/a/alt3
+#usr/share/terminfo/a/alt4
+#usr/share/terminfo/a/alt5
+#usr/share/terminfo/a/alt7
+#usr/share/terminfo/a/alt7pc
+#usr/share/terminfo/a/alto-h19
+#usr/share/terminfo/a/alto-heath
+#usr/share/terminfo/a/altoh19
+#usr/share/terminfo/a/altoheath
+#usr/share/terminfo/a/altos-2
+#usr/share/terminfo/a/altos-3
+#usr/share/terminfo/a/altos-4
+#usr/share/terminfo/a/altos-5
+#usr/share/terminfo/a/altos2
+#usr/share/terminfo/a/altos3
+#usr/share/terminfo/a/altos4
+#usr/share/terminfo/a/altos5
+#usr/share/terminfo/a/altos7
+#usr/share/terminfo/a/altos7pc
+#usr/share/terminfo/a/ambas
+#usr/share/terminfo/a/ambassador
+#usr/share/terminfo/a/amiga
+#usr/share/terminfo/a/amiga-8bit
+#usr/share/terminfo/a/amiga-h
+#usr/share/terminfo/a/amiga-vnc
+#usr/share/terminfo/a/amp219
+#usr/share/terminfo/a/amp219w
+#usr/share/terminfo/a/ampex-219
+#usr/share/terminfo/a/ampex-219w
+#usr/share/terminfo/a/ampex-232
+#usr/share/terminfo/a/ampex175
+#usr/share/terminfo/a/ampex175-b
+#usr/share/terminfo/a/ampex210
+#usr/share/terminfo/a/ampex219
+#usr/share/terminfo/a/ampex219w
+#usr/share/terminfo/a/ampex232
+#usr/share/terminfo/a/ampex232w
+#usr/share/terminfo/a/ampex80
+#usr/share/terminfo/a/annarbor4080
+#usr/share/terminfo/a/ansi
+#usr/share/terminfo/a/ansi+arrows
+#usr/share/terminfo/a/ansi+csr
+#usr/share/terminfo/a/ansi+cup
+#usr/share/terminfo/a/ansi+erase
+#usr/share/terminfo/a/ansi+idc
+#usr/share/terminfo/a/ansi+idl
+#usr/share/terminfo/a/ansi+idl1
+#usr/share/terminfo/a/ansi+inittabs
+#usr/share/terminfo/a/ansi+local
+#usr/share/terminfo/a/ansi+local1
+#usr/share/terminfo/a/ansi+pp
+#usr/share/terminfo/a/ansi+rca
+#usr/share/terminfo/a/ansi+rep
+#usr/share/terminfo/a/ansi+sgr
+#usr/share/terminfo/a/ansi+sgrbold
+#usr/share/terminfo/a/ansi+sgrdim
+#usr/share/terminfo/a/ansi+sgrso
+#usr/share/terminfo/a/ansi+sgrul
+#usr/share/terminfo/a/ansi+tabs
+#usr/share/terminfo/a/ansi-color-2-emx
+#usr/share/terminfo/a/ansi-color-3-emx
+#usr/share/terminfo/a/ansi-emx
+#usr/share/terminfo/a/ansi-generic
+#usr/share/terminfo/a/ansi-m
+#usr/share/terminfo/a/ansi-mini
+#usr/share/terminfo/a/ansi-mono
+#usr/share/terminfo/a/ansi-mr
+#usr/share/terminfo/a/ansi-mtabs
+#usr/share/terminfo/a/ansi-nt
+#usr/share/terminfo/a/ansi.sys
+#usr/share/terminfo/a/ansi.sys-old
+#usr/share/terminfo/a/ansi.sysk
+#usr/share/terminfo/a/ansi43m
+#usr/share/terminfo/a/ansi77
+#usr/share/terminfo/a/ansi80x25
+#usr/share/terminfo/a/ansi80x25-mono
+#usr/share/terminfo/a/ansi80x25-raw
+#usr/share/terminfo/a/ansi80x30
+#usr/share/terminfo/a/ansi80x30-mono
+#usr/share/terminfo/a/ansi80x43
+#usr/share/terminfo/a/ansi80x43-mono
+#usr/share/terminfo/a/ansi80x50
+#usr/share/terminfo/a/ansi80x50-mono
+#usr/share/terminfo/a/ansi80x60
+#usr/share/terminfo/a/ansi80x60-mono
+#usr/share/terminfo/a/ansil
+#usr/share/terminfo/a/ansil-mono
+#usr/share/terminfo/a/ansis
+#usr/share/terminfo/a/ansis-mono
+#usr/share/terminfo/a/ansisysk
+#usr/share/terminfo/a/ansiw
+#usr/share/terminfo/a/ap-vm80
+#usr/share/terminfo/a/apl
+#usr/share/terminfo/a/apollo
+#usr/share/terminfo/a/apollo_15P
+#usr/share/terminfo/a/apollo_19L
+#usr/share/terminfo/a/apollo_color
+#usr/share/terminfo/a/apple-80
+#usr/share/terminfo/a/apple-ae
+#usr/share/terminfo/a/apple-soroc
+#usr/share/terminfo/a/apple-uterm
+#usr/share/terminfo/a/apple-uterm-vb
+#usr/share/terminfo/a/apple-videx
+#usr/share/terminfo/a/apple-videx2
+#usr/share/terminfo/a/apple-videx3
+#usr/share/terminfo/a/apple-vm80
+#usr/share/terminfo/a/apple2e
+#usr/share/terminfo/a/apple2e-p
+#usr/share/terminfo/a/apple80p
+#usr/share/terminfo/a/appleII
+#usr/share/terminfo/a/appleIIc
+#usr/share/terminfo/a/appleIIe
+#usr/share/terminfo/a/appleIIgs
+#usr/share/terminfo/a/arm100
+#usr/share/terminfo/a/arm100-am
+#usr/share/terminfo/a/arm100-w
+#usr/share/terminfo/a/arm100-wam
+#usr/share/terminfo/a/at386
+#usr/share/terminfo/a/atari
+#usr/share/terminfo/a/att2300
+#usr/share/terminfo/a/att2350
+#usr/share/terminfo/a/att4410
+#usr/share/terminfo/a/att4410-w
+#usr/share/terminfo/a/att4410v1
+#usr/share/terminfo/a/att4410v1-w
+#usr/share/terminfo/a/att4415
+#usr/share/terminfo/a/att4415+nl
+#usr/share/terminfo/a/att4415-nl
+#usr/share/terminfo/a/att4415-rv
+#usr/share/terminfo/a/att4415-rv-nl
+#usr/share/terminfo/a/att4415-w
+#usr/share/terminfo/a/att4415-w-nl
+#usr/share/terminfo/a/att4415-w-rv
+#usr/share/terminfo/a/att4415-w-rv-n
+#usr/share/terminfo/a/att4418
+#usr/share/terminfo/a/att4418-w
+#usr/share/terminfo/a/att4420
+#usr/share/terminfo/a/att4424
+#usr/share/terminfo/a/att4424-1
+#usr/share/terminfo/a/att4424m
+#usr/share/terminfo/a/att4425
+#usr/share/terminfo/a/att4425-nl
+#usr/share/terminfo/a/att4425-w
+#usr/share/terminfo/a/att4426
+#usr/share/terminfo/a/att500
+#usr/share/terminfo/a/att505
+#usr/share/terminfo/a/att505-24
+#usr/share/terminfo/a/att510a
+#usr/share/terminfo/a/att510d
+#usr/share/terminfo/a/att513
+#usr/share/terminfo/a/att5310
+#usr/share/terminfo/a/att5320
+#usr/share/terminfo/a/att5410
+#usr/share/terminfo/a/att5410-w
+#usr/share/terminfo/a/att5410v1
+#usr/share/terminfo/a/att5410v1-w
+#usr/share/terminfo/a/att5418
+#usr/share/terminfo/a/att5418-w
+#usr/share/terminfo/a/att5420
+#usr/share/terminfo/a/att5420+nl
+#usr/share/terminfo/a/att5420-nl
+#usr/share/terminfo/a/att5420-rv
+#usr/share/terminfo/a/att5420-rv-nl
+#usr/share/terminfo/a/att5420-w
+#usr/share/terminfo/a/att5420-w-nl
+#usr/share/terminfo/a/att5420-w-rv
+#usr/share/terminfo/a/att5420-w-rv-n
+#usr/share/terminfo/a/att5420_2
+#usr/share/terminfo/a/att5420_2-w
+#usr/share/terminfo/a/att5425
+#usr/share/terminfo/a/att5425-nl
+#usr/share/terminfo/a/att5425-w
+#usr/share/terminfo/a/att5430
+#usr/share/terminfo/a/att5620
+#usr/share/terminfo/a/att5620-1
+#usr/share/terminfo/a/att5620-24
+#usr/share/terminfo/a/att5620-34
+#usr/share/terminfo/a/att5620-s
+#usr/share/terminfo/a/att605
+#usr/share/terminfo/a/att605-pc
+#usr/share/terminfo/a/att605-w
+#usr/share/terminfo/a/att610
+#usr/share/terminfo/a/att610-103k
+#usr/share/terminfo/a/att610-103k-w
+#usr/share/terminfo/a/att610-w
+#usr/share/terminfo/a/att615
+#usr/share/terminfo/a/att615-103k
+#usr/share/terminfo/a/att615-103k-w
+#usr/share/terminfo/a/att615-w
+#usr/share/terminfo/a/att620
+#usr/share/terminfo/a/att620-103k
+#usr/share/terminfo/a/att620-103k-w
+#usr/share/terminfo/a/att620-w
+#usr/share/terminfo/a/att630
+#usr/share/terminfo/a/att630-24
+#usr/share/terminfo/a/att6386
+#usr/share/terminfo/a/att700
+#usr/share/terminfo/a/att730
+#usr/share/terminfo/a/att730-24
+#usr/share/terminfo/a/att730-41
+#usr/share/terminfo/a/att7300
+#usr/share/terminfo/a/att730r
+#usr/share/terminfo/a/att730r-24
+#usr/share/terminfo/a/att730r-41
+#usr/share/terminfo/a/avatar
+#usr/share/terminfo/a/avatar0
+#usr/share/terminfo/a/avatar0+
+#usr/share/terminfo/a/avatar1
+#usr/share/terminfo/a/avt
+#usr/share/terminfo/a/avt+s
+#usr/share/terminfo/a/avt-ns
+#usr/share/terminfo/a/avt-rv
+#usr/share/terminfo/a/avt-rv-ns
+#usr/share/terminfo/a/avt-rv-s
+#usr/share/terminfo/a/avt-s
+#usr/share/terminfo/a/avt-w
+#usr/share/terminfo/a/avt-w-ns
+#usr/share/terminfo/a/avt-w-rv
+#usr/share/terminfo/a/avt-w-rv-ns
+#usr/share/terminfo/a/avt-w-rv-s
+#usr/share/terminfo/a/avt-w-s
+#usr/share/terminfo/a/aws
+#usr/share/terminfo/a/awsc
+#usr/share/terminfo/b
+#usr/share/terminfo/b/b-128
+#usr/share/terminfo/b/bantam
+#usr/share/terminfo/b/basic4
+#usr/share/terminfo/b/basis
+#usr/share/terminfo/b/bct510a
+#usr/share/terminfo/b/bct510d
+#usr/share/terminfo/b/beacon
+#usr/share/terminfo/b/bee
+#usr/share/terminfo/b/beehive
+#usr/share/terminfo/b/beehive3
+#usr/share/terminfo/b/beehive4
+#usr/share/terminfo/b/beehiveIIIm
+#usr/share/terminfo/b/beterm
+#usr/share/terminfo/b/bg1.25
+#usr/share/terminfo/b/bg1.25nv
+#usr/share/terminfo/b/bg1.25rv
+#usr/share/terminfo/b/bg2.0
+#usr/share/terminfo/b/bg2.0nv
+#usr/share/terminfo/b/bg2.0rv
+#usr/share/terminfo/b/bg3.10
+#usr/share/terminfo/b/bg3.10nv
+#usr/share/terminfo/b/bg3.10rv
+#usr/share/terminfo/b/bh3m
+#usr/share/terminfo/b/bh4
+#usr/share/terminfo/b/bitgraph
+#usr/share/terminfo/b/blit
+#usr/share/terminfo/b/bobcat
+#usr/share/terminfo/b/bq300
+#usr/share/terminfo/b/bq300-8
+#usr/share/terminfo/b/bq300-8-pc
+#usr/share/terminfo/b/bq300-8-pc-rv
+#usr/share/terminfo/b/bq300-8-pc-w
+#usr/share/terminfo/b/bq300-8-pc-w-rv
+#usr/share/terminfo/b/bq300-8rv
+#usr/share/terminfo/b/bq300-8w
+#usr/share/terminfo/b/bq300-pc
+#usr/share/terminfo/b/bq300-pc-rv
+#usr/share/terminfo/b/bq300-pc-w
+#usr/share/terminfo/b/bq300-pc-w-rv
+#usr/share/terminfo/b/bq300-rv
+#usr/share/terminfo/b/bq300-w
+#usr/share/terminfo/b/bq300-w-8rv
+#usr/share/terminfo/b/bq300-w-rv
+#usr/share/terminfo/b/bsdos-pc
+#usr/share/terminfo/b/bsdos-pc-m
+#usr/share/terminfo/b/bsdos-pc-mono
+#usr/share/terminfo/b/bsdos-pc-nobold
+#usr/share/terminfo/b/bsdos-ppc
+#usr/share/terminfo/b/bsdos-sparc
+#usr/share/terminfo/c
+#usr/share/terminfo/c/c100
+#usr/share/terminfo/c/c100-1p
+#usr/share/terminfo/c/c100-4p
+#usr/share/terminfo/c/c100-rv
+#usr/share/terminfo/c/c100-rv-4p
+#usr/share/terminfo/c/c104
+#usr/share/terminfo/c/c108
+#usr/share/terminfo/c/c108-4p
+#usr/share/terminfo/c/c108-8p
+#usr/share/terminfo/c/c108-rv
+#usr/share/terminfo/c/c108-rv-4p
+#usr/share/terminfo/c/c108-rv-8p
+#usr/share/terminfo/c/c108-w
+#usr/share/terminfo/c/c108-w-8p
+#usr/share/terminfo/c/c300
+#usr/share/terminfo/c/c301
+#usr/share/terminfo/c/c321
+#usr/share/terminfo/c/ca22851
+#usr/share/terminfo/c/cad68-2
+#usr/share/terminfo/c/cad68-3
+#usr/share/terminfo/c/cbblit
+#usr/share/terminfo/c/cbunix
+#usr/share/terminfo/c/cci
+#usr/share/terminfo/c/cci1
+#usr/share/terminfo/c/cdc456
+#usr/share/terminfo/c/cdc721
+#usr/share/terminfo/c/cdc721-esc
+#usr/share/terminfo/c/cdc721ll
+#usr/share/terminfo/c/cdc752
+#usr/share/terminfo/c/cdc756
+#usr/share/terminfo/c/cg7900
+#usr/share/terminfo/c/cgc2
+#usr/share/terminfo/c/cgc3
+#usr/share/terminfo/c/chromatics
+#usr/share/terminfo/c/ci8510
+#usr/share/terminfo/c/cit-80
+#usr/share/terminfo/c/cit101
+#usr/share/terminfo/c/cit101e
+#usr/share/terminfo/c/cit101e-132
+#usr/share/terminfo/c/cit101e-n
+#usr/share/terminfo/c/cit101e-n132
+#usr/share/terminfo/c/cit101e-rv
+#usr/share/terminfo/c/cit500
+#usr/share/terminfo/c/cit80
+#usr/share/terminfo/c/citc
+#usr/share/terminfo/c/citoh
+#usr/share/terminfo/c/citoh-6lpi
+#usr/share/terminfo/c/citoh-8lpi
+#usr/share/terminfo/c/citoh-comp
+#usr/share/terminfo/c/citoh-elite
+#usr/share/terminfo/c/citoh-pica
+#usr/share/terminfo/c/citoh-prop
+#usr/share/terminfo/c/citoh-ps
+#usr/share/terminfo/c/coco3
+#usr/share/terminfo/c/coherent
+#usr/share/terminfo/c/color_xterm
+#usr/share/terminfo/c/colorscan
+#usr/share/terminfo/c/commodore
+#usr/share/terminfo/c/concept
+#usr/share/terminfo/c/concept-avt
+#usr/share/terminfo/c/concept100
+#usr/share/terminfo/c/concept100-rv
+#usr/share/terminfo/c/concept108
+#usr/share/terminfo/c/concept108-4p
+#usr/share/terminfo/c/concept108-8p
+#usr/share/terminfo/c/concept108-w-8
+#usr/share/terminfo/c/concept108-w8p
+#usr/share/terminfo/c/concept108rv4p
+#usr/share/terminfo/c/cons25
+#usr/share/terminfo/c/cons25-iso-m
+#usr/share/terminfo/c/cons25-iso8859
+#usr/share/terminfo/c/cons25-koi8-r
+#usr/share/terminfo/c/cons25-koi8r-m
+#usr/share/terminfo/c/cons25-m
+#usr/share/terminfo/c/cons25l1
+#usr/share/terminfo/c/cons25l1-m
+#usr/share/terminfo/c/cons25r
+#usr/share/terminfo/c/cons25r-m
+#usr/share/terminfo/c/cons25w
+#usr/share/terminfo/c/cons30
+#usr/share/terminfo/c/cons30-m
+#usr/share/terminfo/c/cons43
+#usr/share/terminfo/c/cons43-m
+#usr/share/terminfo/c/cons50
+#usr/share/terminfo/c/cons50-iso-m
+#usr/share/terminfo/c/cons50-iso8859
+#usr/share/terminfo/c/cons50-koi8r
+#usr/share/terminfo/c/cons50-koi8r-m
+#usr/share/terminfo/c/cons50-m
+#usr/share/terminfo/c/cons50l1
+#usr/share/terminfo/c/cons50l1-m
+#usr/share/terminfo/c/cons50r
+#usr/share/terminfo/c/cons50r-m
+#usr/share/terminfo/c/cons60
+#usr/share/terminfo/c/cons60-iso
+#usr/share/terminfo/c/cons60-iso-m
+#usr/share/terminfo/c/cons60-koi8r
+#usr/share/terminfo/c/cons60-koi8r-m
+#usr/share/terminfo/c/cons60-m
+#usr/share/terminfo/c/cons60l1
+#usr/share/terminfo/c/cons60l1-m
+#usr/share/terminfo/c/cons60r
+#usr/share/terminfo/c/cons60r-m
+#usr/share/terminfo/c/contel300
+#usr/share/terminfo/c/contel301
+#usr/share/terminfo/c/contel320
+#usr/share/terminfo/c/contel321
+#usr/share/terminfo/c/cops
+#usr/share/terminfo/c/cops-10
+#usr/share/terminfo/c/cops10
+#usr/share/terminfo/c/crt
+#usr/share/terminfo/c/crt-vt220
+#usr/share/terminfo/c/cs10
+#usr/share/terminfo/c/cs10-w
+#usr/share/terminfo/c/ct82
+#usr/share/terminfo/c/ct8500
+#usr/share/terminfo/c/ctrm
+#usr/share/terminfo/c/cx
+#usr/share/terminfo/c/cx100
+#usr/share/terminfo/c/cyb110
+#usr/share/terminfo/c/cyb83
+#usr/share/terminfo/c/cygwin
+#usr/share/terminfo/c/cygwinB19
+#usr/share/terminfo/d
+#usr/share/terminfo/d/d132
+#usr/share/terminfo/d/d2
+#usr/share/terminfo/d/d2-dg
+#usr/share/terminfo/d/d200
+#usr/share/terminfo/d/d200-dg
+#usr/share/terminfo/d/d210
+#usr/share/terminfo/d/d210-dg
+#usr/share/terminfo/d/d211
+#usr/share/terminfo/d/d211-7b
+#usr/share/terminfo/d/d211-dg
+#usr/share/terminfo/d/d214
+#usr/share/terminfo/d/d214-dg
+#usr/share/terminfo/d/d215
+#usr/share/terminfo/d/d215-7b
+#usr/share/terminfo/d/d215-dg
+#usr/share/terminfo/d/d216+
+#usr/share/terminfo/d/d216+25
+#usr/share/terminfo/d/d216+dg
+#usr/share/terminfo/d/d216-dg
+#usr/share/terminfo/d/d216-unix
+#usr/share/terminfo/d/d216-unix-25
+#usr/share/terminfo/d/d216e+
+#usr/share/terminfo/d/d216e+dg
+#usr/share/terminfo/d/d216e-dg
+#usr/share/terminfo/d/d216e-unix
+#usr/share/terminfo/d/d217-dg
+#usr/share/terminfo/d/d217-unix
+#usr/share/terminfo/d/d217-unix-25
+#usr/share/terminfo/d/d220
+#usr/share/terminfo/d/d220-7b
+#usr/share/terminfo/d/d220-dg
+#usr/share/terminfo/d/d230
+#usr/share/terminfo/d/d230-dg
+#usr/share/terminfo/d/d230c
+#usr/share/terminfo/d/d230c-dg
+#usr/share/terminfo/d/d400
+#usr/share/terminfo/d/d400-dg
+#usr/share/terminfo/d/d410
+#usr/share/terminfo/d/d410-7b
+#usr/share/terminfo/d/d410-7b-w
+#usr/share/terminfo/d/d410-dg
+#usr/share/terminfo/d/d410-w
+#usr/share/terminfo/d/d411
+#usr/share/terminfo/d/d411-7b
+#usr/share/terminfo/d/d411-7b-w
+#usr/share/terminfo/d/d411-dg
+#usr/share/terminfo/d/d411-w
+#usr/share/terminfo/d/d412+
+#usr/share/terminfo/d/d412+25
+#usr/share/terminfo/d/d412+dg
+#usr/share/terminfo/d/d412+s
+#usr/share/terminfo/d/d412+sr
+#usr/share/terminfo/d/d412+w
+#usr/share/terminfo/d/d412-dg
+#usr/share/terminfo/d/d412-unix
+#usr/share/terminfo/d/d412-unix-25
+#usr/share/terminfo/d/d412-unix-s
+#usr/share/terminfo/d/d412-unix-sr
+#usr/share/terminfo/d/d412-unix-w
+#usr/share/terminfo/d/d413-dg
+#usr/share/terminfo/d/d413-unix
+#usr/share/terminfo/d/d413-unix-25
+#usr/share/terminfo/d/d413-unix-s
+#usr/share/terminfo/d/d413-unix-sr
+#usr/share/terminfo/d/d413-unix-w
+#usr/share/terminfo/d/d414-unix
+#usr/share/terminfo/d/d414-unix-25
+#usr/share/terminfo/d/d414-unix-s
+#usr/share/terminfo/d/d414-unix-sr
+#usr/share/terminfo/d/d414-unix-w
+#usr/share/terminfo/d/d430-dg
+#usr/share/terminfo/d/d430-dg-ccc
+#usr/share/terminfo/d/d430-unix
+#usr/share/terminfo/d/d430-unix-25
+#usr/share/terminfo/d/d430-unix-25-ccc
+#usr/share/terminfo/d/d430-unix-ccc
+#usr/share/terminfo/d/d430-unix-s
+#usr/share/terminfo/d/d430-unix-s-ccc
+#usr/share/terminfo/d/d430-unix-sr
+#usr/share/terminfo/d/d430-unix-sr-ccc
+#usr/share/terminfo/d/d430-unix-w
+#usr/share/terminfo/d/d430-unix-w-ccc
+#usr/share/terminfo/d/d430c-dg
+#usr/share/terminfo/d/d430c-dg-ccc
+#usr/share/terminfo/d/d430c-unix
+#usr/share/terminfo/d/d430c-unix-25
+#usr/share/terminfo/d/d430c-unix-25-ccc
+#usr/share/terminfo/d/d430c-unix-ccc
+#usr/share/terminfo/d/d430c-unix-s
+#usr/share/terminfo/d/d430c-unix-s-ccc
+#usr/share/terminfo/d/d430c-unix-sr
+#usr/share/terminfo/d/d430c-unix-sr-ccc
+#usr/share/terminfo/d/d430c-unix-w
+#usr/share/terminfo/d/d430c-unix-w-ccc
+#usr/share/terminfo/d/d450
+#usr/share/terminfo/d/d450-dg
+#usr/share/terminfo/d/d460
+#usr/share/terminfo/d/d460-7b
+#usr/share/terminfo/d/d460-7b-w
+#usr/share/terminfo/d/d460-dg
+#usr/share/terminfo/d/d460-w
+#usr/share/terminfo/d/d461
+#usr/share/terminfo/d/d461-7b
+#usr/share/terminfo/d/d461-7b-w
+#usr/share/terminfo/d/d461-dg
+#usr/share/terminfo/d/d461-w
+#usr/share/terminfo/d/d462+
+#usr/share/terminfo/d/d462+25
+#usr/share/terminfo/d/d462+dg
+#usr/share/terminfo/d/d462+s
+#usr/share/terminfo/d/d462+sr
+#usr/share/terminfo/d/d462+w
+#usr/share/terminfo/d/d462-dg
+#usr/share/terminfo/d/d462-unix
+#usr/share/terminfo/d/d462-unix-25
+#usr/share/terminfo/d/d462-unix-s
+#usr/share/terminfo/d/d462-unix-sr
+#usr/share/terminfo/d/d462-unix-w
+#usr/share/terminfo/d/d462e-dg
+#usr/share/terminfo/d/d463-dg
+#usr/share/terminfo/d/d463-unix
+#usr/share/terminfo/d/d463-unix-25
+#usr/share/terminfo/d/d463-unix-s
+#usr/share/terminfo/d/d463-unix-sr
+#usr/share/terminfo/d/d463-unix-w
+#usr/share/terminfo/d/d464-unix
+#usr/share/terminfo/d/d464-unix-25
+#usr/share/terminfo/d/d464-unix-s
+#usr/share/terminfo/d/d464-unix-sr
+#usr/share/terminfo/d/d464-unix-w
+#usr/share/terminfo/d/d470
+#usr/share/terminfo/d/d470-7b
+#usr/share/terminfo/d/d470-dg
+#usr/share/terminfo/d/d470c
+#usr/share/terminfo/d/d470c-7b
+#usr/share/terminfo/d/d470c-dg
+#usr/share/terminfo/d/d555
+#usr/share/terminfo/d/d555-7b
+#usr/share/terminfo/d/d555-7b-w
+#usr/share/terminfo/d/d555-dg
+#usr/share/terminfo/d/d555-w
+#usr/share/terminfo/d/d577
+#usr/share/terminfo/d/d577-7b
+#usr/share/terminfo/d/d577-7b-w
+#usr/share/terminfo/d/d577-dg
+#usr/share/terminfo/d/d577-w
+#usr/share/terminfo/d/d578
+#usr/share/terminfo/d/d578-7b
+#usr/share/terminfo/d/d578-dg
+#usr/share/terminfo/d/d80
+#usr/share/terminfo/d/d800
+#usr/share/terminfo/d/darwin
+#usr/share/terminfo/d/darwin-100x37
+#usr/share/terminfo/d/darwin-100x37-m
+#usr/share/terminfo/d/darwin-112x37
+#usr/share/terminfo/d/darwin-112x37-m
+#usr/share/terminfo/d/darwin-128x40
+#usr/share/terminfo/d/darwin-128x40-m
+#usr/share/terminfo/d/darwin-128x48
+#usr/share/terminfo/d/darwin-128x48-m
+#usr/share/terminfo/d/darwin-144x48
+#usr/share/terminfo/d/darwin-144x48-m
+#usr/share/terminfo/d/darwin-160x64
+#usr/share/terminfo/d/darwin-160x64-m
+#usr/share/terminfo/d/darwin-200x64
+#usr/share/terminfo/d/darwin-200x64-m
+#usr/share/terminfo/d/darwin-200x75
+#usr/share/terminfo/d/darwin-200x75-m
+#usr/share/terminfo/d/darwin-256x96
+#usr/share/terminfo/d/darwin-256x96-m
+#usr/share/terminfo/d/darwin-80x25
+#usr/share/terminfo/d/darwin-80x25-m
+#usr/share/terminfo/d/darwin-80x30
+#usr/share/terminfo/d/darwin-80x30-m
+#usr/share/terminfo/d/darwin-90x30
+#usr/share/terminfo/d/darwin-90x30-m
+#usr/share/terminfo/d/darwin-b
+#usr/share/terminfo/d/darwin-f
+#usr/share/terminfo/d/darwin-f2
+#usr/share/terminfo/d/darwin-m
+#usr/share/terminfo/d/darwin-m-b
+#usr/share/terminfo/d/darwin-m-f
+#usr/share/terminfo/d/darwin-m-f2
+#usr/share/terminfo/d/datagraphix
+#usr/share/terminfo/d/datamedia2500
+#usr/share/terminfo/d/datapoint
+#usr/share/terminfo/d/dataspeed40
+#usr/share/terminfo/d/dd5000
+#usr/share/terminfo/d/ddr
+#usr/share/terminfo/d/ddr3180
+#usr/share/terminfo/d/dec-vt100
+#usr/share/terminfo/d/dec-vt220
+#usr/share/terminfo/d/dec-vt330
+#usr/share/terminfo/d/dec-vt340
+#usr/share/terminfo/d/dec-vt400
+#usr/share/terminfo/d/decpro
+#usr/share/terminfo/d/decwriter
+#usr/share/terminfo/d/delta
+#usr/share/terminfo/d/dg+ccc
+#usr/share/terminfo/d/dg+color
+#usr/share/terminfo/d/dg+color8
+#usr/share/terminfo/d/dg+fixed
+#usr/share/terminfo/d/dg-ansi
+#usr/share/terminfo/d/dg-generic
+#usr/share/terminfo/d/dg100
+#usr/share/terminfo/d/dg200
+#usr/share/terminfo/d/dg210
+#usr/share/terminfo/d/dg211
+#usr/share/terminfo/d/dg450
+#usr/share/terminfo/d/dg460-ansi
+#usr/share/terminfo/d/dg6053
+#usr/share/terminfo/d/dg6053-old
+#usr/share/terminfo/d/dg605x
+#usr/share/terminfo/d/dg6134
+#usr/share/terminfo/d/dgkeys+11
+#usr/share/terminfo/d/dgkeys+15
+#usr/share/terminfo/d/dgkeys+7b
+#usr/share/terminfo/d/dgkeys+8b
+#usr/share/terminfo/d/dgmode+color
+#usr/share/terminfo/d/dgmode+color8
+#usr/share/terminfo/d/dgunix+ccc
+#usr/share/terminfo/d/dgunix+fixed
+#usr/share/terminfo/d/diablo
+#usr/share/terminfo/d/diablo-lm
+#usr/share/terminfo/d/diablo1620
+#usr/share/terminfo/d/diablo1620-m8
+#usr/share/terminfo/d/diablo1640
+#usr/share/terminfo/d/diablo1640-lm
+#usr/share/terminfo/d/diablo1640-m8
+#usr/share/terminfo/d/diablo1720
+#usr/share/terminfo/d/diablo1730
+#usr/share/terminfo/d/diablo1740
+#usr/share/terminfo/d/diablo1740-lm
+#usr/share/terminfo/d/diablo450
+#usr/share/terminfo/d/diablo630
+#usr/share/terminfo/d/dialogue
+#usr/share/terminfo/d/dialogue80
+#usr/share/terminfo/d/digilog
+#usr/share/terminfo/d/dku7003
+#usr/share/terminfo/d/dku7003-dumb
+#usr/share/terminfo/d/dku7102
+#usr/share/terminfo/d/dku7102-old
+#usr/share/terminfo/d/dku7102-sna
+#usr/share/terminfo/d/dku7103-sna
+#usr/share/terminfo/d/dku7202
+#usr/share/terminfo/d/dm1520
+#usr/share/terminfo/d/dm1521
+#usr/share/terminfo/d/dm2500
+#usr/share/terminfo/d/dm3025
+#usr/share/terminfo/d/dm3045
+#usr/share/terminfo/d/dm80
+#usr/share/terminfo/d/dm80w
+#usr/share/terminfo/d/dmchat
+#usr/share/terminfo/d/dmd
+#usr/share/terminfo/d/dmd-24
+#usr/share/terminfo/d/dmd-34
+#usr/share/terminfo/d/dmd1
+#usr/share/terminfo/d/dmdt80
+#usr/share/terminfo/d/dmdt80w
+#usr/share/terminfo/d/dmterm
+#usr/share/terminfo/d/dp3360
+#usr/share/terminfo/d/dp8242
+#usr/share/terminfo/d/ds40
+#usr/share/terminfo/d/ds40-2
+#usr/share/terminfo/d/dt-100
+#usr/share/terminfo/d/dt-100w
+#usr/share/terminfo/d/dt100
+#usr/share/terminfo/d/dt100w
+#usr/share/terminfo/d/dt110
+#usr/share/terminfo/d/dt80
+#usr/share/terminfo/d/dt80-sas
+#usr/share/terminfo/d/dt80w
+#usr/share/terminfo/d/dtc300s
+#usr/share/terminfo/d/dtc382
+#usr/share/terminfo/d/dtterm
+#usr/share/terminfo/d/dumb
+#usr/share/terminfo/d/dw
+#usr/share/terminfo/d/dw1
+#usr/share/terminfo/d/dw2
+#usr/share/terminfo/d/dw3
+#usr/share/terminfo/d/dw4
+#usr/share/terminfo/d/dwk
+#usr/share/terminfo/d/dwk-vt
+#usr/share/terminfo/e
+#usr/share/terminfo/e/ecma+color
+#usr/share/terminfo/e/ecma+sgr
+#usr/share/terminfo/e/elks
+#usr/share/terminfo/e/elks-ansi
+#usr/share/terminfo/e/elks-glasstty
+#usr/share/terminfo/e/elks-vt52
+#usr/share/terminfo/e/emots
+#usr/share/terminfo/e/emu
+#usr/share/terminfo/e/env230
+#usr/share/terminfo/e/envision230
+#usr/share/terminfo/e/ep40
+#usr/share/terminfo/e/ep4000
+#usr/share/terminfo/e/ep4080
+#usr/share/terminfo/e/ep48
+#usr/share/terminfo/e/ergo4000
+#usr/share/terminfo/e/esprit
+#usr/share/terminfo/e/esprit-am
+#usr/share/terminfo/e/eterm
+#usr/share/terminfo/e/ex155
+#usr/share/terminfo/e/excel62
+#usr/share/terminfo/e/excel62-rv
+#usr/share/terminfo/e/excel62-w
+#usr/share/terminfo/e/excel64
+#usr/share/terminfo/e/excel64-rv
+#usr/share/terminfo/e/excel64-w
+#usr/share/terminfo/e/exec80
+#usr/share/terminfo/f
+#usr/share/terminfo/f/f100
+#usr/share/terminfo/f/f100-rv
+#usr/share/terminfo/f/f110
+#usr/share/terminfo/f/f110-14
+#usr/share/terminfo/f/f110-14w
+#usr/share/terminfo/f/f110-w
+#usr/share/terminfo/f/f1720
+#usr/share/terminfo/f/f1720a
+#usr/share/terminfo/f/f200
+#usr/share/terminfo/f/f200-w
+#usr/share/terminfo/f/f200vi
+#usr/share/terminfo/f/f200vi-w
+#usr/share/terminfo/f/falco
+#usr/share/terminfo/f/falco-p
+#usr/share/terminfo/f/fenix
+#usr/share/terminfo/f/fenixw
+#usr/share/terminfo/f/fixterm
+#usr/share/terminfo/f/fortune
+#usr/share/terminfo/f/fos
+#usr/share/terminfo/f/fox
+#usr/share/terminfo/f/freedom
+#usr/share/terminfo/f/freedom-rv
+#usr/share/terminfo/f/freedom100
+#usr/share/terminfo/f/freedom110
+#usr/share/terminfo/f/freedom200
+#usr/share/terminfo/g
+#usr/share/terminfo/g/gator
+#usr/share/terminfo/g/gator-52
+#usr/share/terminfo/g/gator-52t
+#usr/share/terminfo/g/gator-t
+#usr/share/terminfo/g/gigi
+#usr/share/terminfo/g/glasstty
+#usr/share/terminfo/g/gnome
+#usr/share/terminfo/g/gnome-rh62
+#usr/share/terminfo/g/gnome-rh72
+#usr/share/terminfo/g/go-225
+#usr/share/terminfo/g/go140
+#usr/share/terminfo/g/go140w
+#usr/share/terminfo/g/go225
+#usr/share/terminfo/g/graphos
+#usr/share/terminfo/g/graphos-30
+#usr/share/terminfo/g/gs5430
+#usr/share/terminfo/g/gs5430-22
+#usr/share/terminfo/g/gs5430-24
+#usr/share/terminfo/g/gs6300
+#usr/share/terminfo/g/gsi
+#usr/share/terminfo/g/gt100
+#usr/share/terminfo/g/gt100a
+#usr/share/terminfo/g/gt40
+#usr/share/terminfo/g/gt42
+#usr/share/terminfo/g/guru
+#usr/share/terminfo/g/guru+rv
+#usr/share/terminfo/g/guru+s
+#usr/share/terminfo/g/guru+unk
+#usr/share/terminfo/g/guru-24
+#usr/share/terminfo/g/guru-33
+#usr/share/terminfo/g/guru-33-rv
+#usr/share/terminfo/g/guru-33-s
+#usr/share/terminfo/g/guru-44
+#usr/share/terminfo/g/guru-44-s
+#usr/share/terminfo/g/guru-76
+#usr/share/terminfo/g/guru-76-lp
+#usr/share/terminfo/g/guru-76-s
+#usr/share/terminfo/g/guru-76-w
+#usr/share/terminfo/g/guru-76-w-s
+#usr/share/terminfo/g/guru-76-wm
+#usr/share/terminfo/g/guru-lp
+#usr/share/terminfo/g/guru-nctxt
+#usr/share/terminfo/g/guru-rv
+#usr/share/terminfo/g/guru-s
+#usr/share/terminfo/h
+#usr/share/terminfo/h/h-100
+#usr/share/terminfo/h/h-100bw
+#usr/share/terminfo/h/h100
+#usr/share/terminfo/h/h100bw
+#usr/share/terminfo/h/h19
+#usr/share/terminfo/h/h19-a
+#usr/share/terminfo/h/h19-b
+#usr/share/terminfo/h/h19-bs
+#usr/share/terminfo/h/h19-g
+#usr/share/terminfo/h/h19-smul
+#usr/share/terminfo/h/h19-u
+#usr/share/terminfo/h/h19-us
+#usr/share/terminfo/h/h19a
+#usr/share/terminfo/h/h19g
+#usr/share/terminfo/h/h19k
+#usr/share/terminfo/h/h19kermit
+#usr/share/terminfo/h/h19us
+#usr/share/terminfo/h/h29a-kc-bc
+#usr/share/terminfo/h/h29a-kc-uc
+#usr/share/terminfo/h/h29a-nkc-bc
+#usr/share/terminfo/h/h29a-nkc-uc
+#usr/share/terminfo/h/h80
+#usr/share/terminfo/h/ha8675
+#usr/share/terminfo/h/ha8686
+#usr/share/terminfo/h/hazel
+#usr/share/terminfo/h/hds200
+#usr/share/terminfo/h/he80
+#usr/share/terminfo/h/heath
+#usr/share/terminfo/h/heath-19
+#usr/share/terminfo/h/heath-ansi
+#usr/share/terminfo/h/heathkit
+#usr/share/terminfo/h/heathkit-a
+#usr/share/terminfo/h/hft
+#usr/share/terminfo/h/hft-c
+#usr/share/terminfo/h/hft-c-old
+#usr/share/terminfo/h/hft-old
+#usr/share/terminfo/h/hirez100
+#usr/share/terminfo/h/hirez100-w
+#usr/share/terminfo/h/hmod1
+#usr/share/terminfo/h/hp
+#usr/share/terminfo/h/hp+arrows
+#usr/share/terminfo/h/hp+color
+#usr/share/terminfo/h/hp+labels
+#usr/share/terminfo/h/hp+pfk+arrows
+#usr/share/terminfo/h/hp+pfk+cr
+#usr/share/terminfo/h/hp+pfk-cr
+#usr/share/terminfo/h/hp+printer
+#usr/share/terminfo/h/hp110
+#usr/share/terminfo/h/hp150
+#usr/share/terminfo/h/hp2
+#usr/share/terminfo/h/hp236
+#usr/share/terminfo/h/hp2382
+#usr/share/terminfo/h/hp2382a
+#usr/share/terminfo/h/hp2392
+#usr/share/terminfo/h/hp2397
+#usr/share/terminfo/h/hp2397a
+#usr/share/terminfo/h/hp2621
+#usr/share/terminfo/h/hp2621-48
+#usr/share/terminfo/h/hp2621-a
+#usr/share/terminfo/h/hp2621-ba
+#usr/share/terminfo/h/hp2621-fl
+#usr/share/terminfo/h/hp2621-k45
+#usr/share/terminfo/h/hp2621-nl
+#usr/share/terminfo/h/hp2621-nt
+#usr/share/terminfo/h/hp2621-wl
+#usr/share/terminfo/h/hp2621A
+#usr/share/terminfo/h/hp2621a
+#usr/share/terminfo/h/hp2621a-a
+#usr/share/terminfo/h/hp2621b
+#usr/share/terminfo/h/hp2621b-kx
+#usr/share/terminfo/h/hp2621b-kx-p
+#usr/share/terminfo/h/hp2621b-p
+#usr/share/terminfo/h/hp2621k45
+#usr/share/terminfo/h/hp2621p
+#usr/share/terminfo/h/hp2621p-a
+#usr/share/terminfo/h/hp2622
+#usr/share/terminfo/h/hp2622a
+#usr/share/terminfo/h/hp2623
+#usr/share/terminfo/h/hp2623a
+#usr/share/terminfo/h/hp2624
+#usr/share/terminfo/h/hp2624-10p
+#usr/share/terminfo/h/hp2624a
+#usr/share/terminfo/h/hp2624a-10p
+#usr/share/terminfo/h/hp2624b
+#usr/share/terminfo/h/hp2624b-10p
+#usr/share/terminfo/h/hp2624b-10p-p
+#usr/share/terminfo/h/hp2624b-4p
+#usr/share/terminfo/h/hp2624b-4p-p
+#usr/share/terminfo/h/hp2624b-p
+#usr/share/terminfo/h/hp2626
+#usr/share/terminfo/h/hp2626-12
+#usr/share/terminfo/h/hp2626-12-s
+#usr/share/terminfo/h/hp2626-12x40
+#usr/share/terminfo/h/hp2626-ns
+#usr/share/terminfo/h/hp2626-s
+#usr/share/terminfo/h/hp2626-x40
+#usr/share/terminfo/h/hp2626a
+#usr/share/terminfo/h/hp2626p
+#usr/share/terminfo/h/hp2627a
+#usr/share/terminfo/h/hp2627a-rev
+#usr/share/terminfo/h/hp2627c
+#usr/share/terminfo/h/hp262x
+#usr/share/terminfo/h/hp2640a
+#usr/share/terminfo/h/hp2640b
+#usr/share/terminfo/h/hp2641a
+#usr/share/terminfo/h/hp2644a
+#usr/share/terminfo/h/hp2645
+#usr/share/terminfo/h/hp2645a
+#usr/share/terminfo/h/hp2647a
+#usr/share/terminfo/h/hp2648
+#usr/share/terminfo/h/hp2648a
+#usr/share/terminfo/h/hp300h
+#usr/share/terminfo/h/hp45
+#usr/share/terminfo/h/hp700
+#usr/share/terminfo/h/hp700-wy
+#usr/share/terminfo/h/hp70092
+#usr/share/terminfo/h/hp70092A
+#usr/share/terminfo/h/hp70092a
+#usr/share/terminfo/h/hp9837
+#usr/share/terminfo/h/hp9845
+#usr/share/terminfo/h/hp98550
+#usr/share/terminfo/h/hp98550a
+#usr/share/terminfo/h/hp98720
+#usr/share/terminfo/h/hp98721
+#usr/share/terminfo/h/hpansi
+#usr/share/terminfo/h/hpex
+#usr/share/terminfo/h/hpex2
+#usr/share/terminfo/h/hpgeneric
+#usr/share/terminfo/h/hpsub
+#usr/share/terminfo/h/hpterm
+#usr/share/terminfo/h/htx11
+#usr/share/terminfo/h/hz1000
+#usr/share/terminfo/h/hz1420
+#usr/share/terminfo/h/hz1500
+#usr/share/terminfo/h/hz1510
+#usr/share/terminfo/h/hz1520
+#usr/share/terminfo/h/hz1520-noesc
+#usr/share/terminfo/h/hz1552
+#usr/share/terminfo/h/hz1552-rv
+#usr/share/terminfo/h/hz2000
+#usr/share/terminfo/i
+#usr/share/terminfo/i/i100
+#usr/share/terminfo/i/i3101
+#usr/share/terminfo/i/i3164
+#usr/share/terminfo/i/i400
+#usr/share/terminfo/i/ibcs2
+#usr/share/terminfo/i/ibm+16color
+#usr/share/terminfo/i/ibm+color
+#usr/share/terminfo/i/ibm-apl
+#usr/share/terminfo/i/ibm-pc
+#usr/share/terminfo/i/ibm-system1
+#usr/share/terminfo/i/ibm3101
+#usr/share/terminfo/i/ibm3151
+#usr/share/terminfo/i/ibm3161
+#usr/share/terminfo/i/ibm3161-C
+#usr/share/terminfo/i/ibm3162
+#usr/share/terminfo/i/ibm3163
+#usr/share/terminfo/i/ibm3164
+#usr/share/terminfo/i/ibm327x
+#usr/share/terminfo/i/ibm5051
+#usr/share/terminfo/i/ibm5081
+#usr/share/terminfo/i/ibm5081-c
+#usr/share/terminfo/i/ibm5151
+#usr/share/terminfo/i/ibm5154
+#usr/share/terminfo/i/ibm5154-c
+#usr/share/terminfo/i/ibm6153
+#usr/share/terminfo/i/ibm6153-40
+#usr/share/terminfo/i/ibm6153-90
+#usr/share/terminfo/i/ibm6154
+#usr/share/terminfo/i/ibm6154-c
+#usr/share/terminfo/i/ibm6155
+#usr/share/terminfo/i/ibm8503
+#usr/share/terminfo/i/ibm8507
+#usr/share/terminfo/i/ibm8512
+#usr/share/terminfo/i/ibm8513
+#usr/share/terminfo/i/ibm8514
+#usr/share/terminfo/i/ibm8514-c
+#usr/share/terminfo/i/ibm8604
+#usr/share/terminfo/i/ibmaed
+#usr/share/terminfo/i/ibmapa16
+#usr/share/terminfo/i/ibmapa8
+#usr/share/terminfo/i/ibmapa8c
+#usr/share/terminfo/i/ibmapa8c-c
+#usr/share/terminfo/i/ibmega
+#usr/share/terminfo/i/ibmega-c
+#usr/share/terminfo/i/ibmmono
+#usr/share/terminfo/i/ibmmpel-c
+#usr/share/terminfo/i/ibmpc
+#usr/share/terminfo/i/ibmpc3
+#usr/share/terminfo/i/ibmpc3r
+#usr/share/terminfo/i/ibmpc3r-mono
+#usr/share/terminfo/i/ibmpcx
+#usr/share/terminfo/i/ibmvga
+#usr/share/terminfo/i/ibmvga-c
+#usr/share/terminfo/i/ibmx
+#usr/share/terminfo/i/icl6402
+#usr/share/terminfo/i/icl6404
+#usr/share/terminfo/i/icl6404-w
+#usr/share/terminfo/i/ifmr
+#usr/share/terminfo/i/ims-ansi
+#usr/share/terminfo/i/ims950
+#usr/share/terminfo/i/ims950-b
+#usr/share/terminfo/i/ims950-rv
+#usr/share/terminfo/i/infoton
+#usr/share/terminfo/i/intertec
+#usr/share/terminfo/i/intertube
+#usr/share/terminfo/i/intertube2
+#usr/share/terminfo/i/intext
+#usr/share/terminfo/i/intext2
+#usr/share/terminfo/i/intextii
+#usr/share/terminfo/i/ips
+#usr/share/terminfo/i/ipsi
+#usr/share/terminfo/i/iq120
+#usr/share/terminfo/i/iq140
+#usr/share/terminfo/i/iris-ansi
+#usr/share/terminfo/i/iris-ansi-ap
+#usr/share/terminfo/i/iris-ansi-net
+#usr/share/terminfo/i/iris-color
+#usr/share/terminfo/i/iris40
+#usr/share/terminfo/j
+#usr/share/terminfo/j/jaixterm
+#usr/share/terminfo/j/jaixterm-m
+#usr/share/terminfo/j/jerq
+#usr/share/terminfo/k
+#usr/share/terminfo/k/k45
+#usr/share/terminfo/k/kaypro
+#usr/share/terminfo/k/kaypro2
+#usr/share/terminfo/k/kds6402
+#usr/share/terminfo/k/kds7372
+#usr/share/terminfo/k/kds7372-w
+#usr/share/terminfo/k/kermit
+#usr/share/terminfo/k/kermit-am
+#usr/share/terminfo/k/klone+acs
+#usr/share/terminfo/k/klone+color
+#usr/share/terminfo/k/klone+koi8acs
+#usr/share/terminfo/k/klone+sgr
+#usr/share/terminfo/k/klone+sgr-dumb
+#usr/share/terminfo/k/konsole
+#usr/share/terminfo/k/konsole-16color
+#usr/share/terminfo/k/konsole-base
+#usr/share/terminfo/k/konsole-linux
+#usr/share/terminfo/k/konsole-vt100
+#usr/share/terminfo/k/konsole-vt420pc
+#usr/share/terminfo/k/konsole-xf3x
+#usr/share/terminfo/k/konsole-xf4x
+#usr/share/terminfo/k/kt7
+#usr/share/terminfo/k/kt7ix
+#usr/share/terminfo/k/kterm
+#usr/share/terminfo/k/kterm-co
+#usr/share/terminfo/k/kterm-color
+#usr/share/terminfo/k/ktm
+#usr/share/terminfo/k/kvt
+#usr/share/terminfo/l
+#usr/share/terminfo/l/la120
+#usr/share/terminfo/l/layer
+#usr/share/terminfo/l/lft
+#usr/share/terminfo/l/lft-pc850
+usr/share/terminfo/l/linux
+usr/share/terminfo/l/linux-basic
+usr/share/terminfo/l/linux-c
+usr/share/terminfo/l/linux-c-nc
+usr/share/terminfo/l/linux-koi8
+usr/share/terminfo/l/linux-koi8r
+usr/share/terminfo/l/linux-lat
+usr/share/terminfo/l/linux-m
+usr/share/terminfo/l/linux-nic
+#usr/share/terminfo/l/lisa
+#usr/share/terminfo/l/lisaterm
+#usr/share/terminfo/l/lisaterm-w
+#usr/share/terminfo/l/liswb
+#usr/share/terminfo/l/ln03
+#usr/share/terminfo/l/ln03-w
+#usr/share/terminfo/l/lpr
+#usr/share/terminfo/l/luna
+#usr/share/terminfo/l/luna68k
+#usr/share/terminfo/m
+#usr/share/terminfo/m/m2-nam
+#usr/share/terminfo/m/mac
+#usr/share/terminfo/m/mac-w
+#usr/share/terminfo/m/mach
+#usr/share/terminfo/m/mach-bold
+#usr/share/terminfo/m/mach-color
+#usr/share/terminfo/m/macintosh
+#usr/share/terminfo/m/macterminal-w
+#usr/share/terminfo/m/mai
+#usr/share/terminfo/m/masscomp
+#usr/share/terminfo/m/masscomp1
+#usr/share/terminfo/m/masscomp2
+#usr/share/terminfo/m/mdl110
+#usr/share/terminfo/m/megatek
+#usr/share/terminfo/m/memhp
+#usr/share/terminfo/m/mgr
+#usr/share/terminfo/m/mgr-linux
+#usr/share/terminfo/m/mgr-sun
+#usr/share/terminfo/m/mgterm
+#usr/share/terminfo/m/microb
+#usr/share/terminfo/m/microbee
+#usr/share/terminfo/m/microterm
+#usr/share/terminfo/m/microterm5
+#usr/share/terminfo/m/mime
+#usr/share/terminfo/m/mime-3ax
+#usr/share/terminfo/m/mime-fb
+#usr/share/terminfo/m/mime-hb
+#usr/share/terminfo/m/mime1
+#usr/share/terminfo/m/mime2
+#usr/share/terminfo/m/mime2a
+#usr/share/terminfo/m/mime2a-s
+#usr/share/terminfo/m/mime2a-v
+#usr/share/terminfo/m/mime314
+#usr/share/terminfo/m/mime340
+#usr/share/terminfo/m/mime3a
+#usr/share/terminfo/m/mime3ax
+#usr/share/terminfo/m/mimei
+#usr/share/terminfo/m/mimeii
+#usr/share/terminfo/m/minitel
+#usr/share/terminfo/m/minitel-2
+#usr/share/terminfo/m/minitel-2-nam
+#usr/share/terminfo/m/minitel1
+#usr/share/terminfo/m/minitel1b
+#usr/share/terminfo/m/minitel1b-80
+#usr/share/terminfo/m/minix
+#usr/share/terminfo/m/minix-old
+#usr/share/terminfo/m/minix-old-am
+#usr/share/terminfo/m/mm314
+#usr/share/terminfo/m/mm340
+#usr/share/terminfo/m/mod
+#usr/share/terminfo/m/mod24
+#usr/share/terminfo/m/modgraph
+#usr/share/terminfo/m/modgraph2
+#usr/share/terminfo/m/modgraph48
+#usr/share/terminfo/m/mono-emx
+#usr/share/terminfo/m/ms-vt100
+#usr/share/terminfo/m/ms-vt100-color
+#usr/share/terminfo/m/msk227
+#usr/share/terminfo/m/msk22714
+#usr/share/terminfo/m/msk227am
+#usr/share/terminfo/m/mskermit227
+#usr/share/terminfo/m/mskermit22714
+#usr/share/terminfo/m/mskermit227am
+#usr/share/terminfo/m/mt-70
+#usr/share/terminfo/m/mt4520-rv
+#usr/share/terminfo/m/mt70
+#usr/share/terminfo/m/mvterm
+#usr/share/terminfo/n
+#usr/share/terminfo/n/nansi.sys
+#usr/share/terminfo/n/nansi.sysk
+#usr/share/terminfo/n/nansisys
+#usr/share/terminfo/n/nansisysk
+#usr/share/terminfo/n/ncr160vppp
+#usr/share/terminfo/n/ncr160vpwpp
+#usr/share/terminfo/n/ncr160vt100an
+#usr/share/terminfo/n/ncr160vt100pp
+#usr/share/terminfo/n/ncr160vt100wan
+#usr/share/terminfo/n/ncr160vt100wpp
+#usr/share/terminfo/n/ncr160vt200an
+#usr/share/terminfo/n/ncr160vt200pp
+#usr/share/terminfo/n/ncr160vt200wan
+#usr/share/terminfo/n/ncr160vt200wpp
+#usr/share/terminfo/n/ncr160vt300an
+#usr/share/terminfo/n/ncr160vt300pp
+#usr/share/terminfo/n/ncr160vt300wan
+#usr/share/terminfo/n/ncr160vt300wpp
+#usr/share/terminfo/n/ncr160wy50+pp
+#usr/share/terminfo/n/ncr160wy50+wpp
+#usr/share/terminfo/n/ncr160wy60pp
+#usr/share/terminfo/n/ncr160wy60wpp
+#usr/share/terminfo/n/ncr260intan
+#usr/share/terminfo/n/ncr260intpp
+#usr/share/terminfo/n/ncr260intwan
+#usr/share/terminfo/n/ncr260intwpp
+#usr/share/terminfo/n/ncr260vppp
+#usr/share/terminfo/n/ncr260vpwpp
+#usr/share/terminfo/n/ncr260vt100an
+#usr/share/terminfo/n/ncr260vt100pp
+#usr/share/terminfo/n/ncr260vt100wan
+#usr/share/terminfo/n/ncr260vt100wpp
+#usr/share/terminfo/n/ncr260vt200an
+#usr/share/terminfo/n/ncr260vt200pp
+#usr/share/terminfo/n/ncr260vt200wan
+#usr/share/terminfo/n/ncr260vt200wpp
+#usr/share/terminfo/n/ncr260vt300an
+#usr/share/terminfo/n/ncr260vt300pp
+#usr/share/terminfo/n/ncr260vt300wan
+#usr/share/terminfo/n/ncr260vt300wpp
+#usr/share/terminfo/n/ncr260wy325pp
+#usr/share/terminfo/n/ncr260wy325wpp
+#usr/share/terminfo/n/ncr260wy350pp
+#usr/share/terminfo/n/ncr260wy350wpp
+#usr/share/terminfo/n/ncr260wy50+pp
+#usr/share/terminfo/n/ncr260wy50+wpp
+#usr/share/terminfo/n/ncr260wy60pp
+#usr/share/terminfo/n/ncr260wy60wpp
+#usr/share/terminfo/n/ncr7900
+#usr/share/terminfo/n/ncr7900i
+#usr/share/terminfo/n/ncr7900iv
+#usr/share/terminfo/n/ncr7901
+#usr/share/terminfo/n/ncrvt100an
+#usr/share/terminfo/n/ncrvt100pp
+#usr/share/terminfo/n/ncrvt100wan
+#usr/share/terminfo/n/ncrvt100wpp
+#usr/share/terminfo/n/ncsa
+#usr/share/terminfo/n/ncsa-m
+#usr/share/terminfo/n/ncsa-m-ns
+#usr/share/terminfo/n/ncsa-ns
+#usr/share/terminfo/n/ncsa-vt220
+#usr/share/terminfo/n/ncsa-vt220-8
+#usr/share/terminfo/n/nec
+#usr/share/terminfo/n/nec5520
+#usr/share/terminfo/n/newhp
+#usr/share/terminfo/n/newhpkeyboard
+#usr/share/terminfo/n/news
+#usr/share/terminfo/n/news-29
+#usr/share/terminfo/n/news-29-euc
+#usr/share/terminfo/n/news-29-sjis
+#usr/share/terminfo/n/news-33
+#usr/share/terminfo/n/news-33-euc
+#usr/share/terminfo/n/news-33-sjis
+#usr/share/terminfo/n/news-42
+#usr/share/terminfo/n/news-42-euc
+#usr/share/terminfo/n/news-42-sjis
+#usr/share/terminfo/n/news-a
+#usr/share/terminfo/n/news-o
+#usr/share/terminfo/n/news-old-unk
+#usr/share/terminfo/n/news-unk
+#usr/share/terminfo/n/news28
+#usr/share/terminfo/n/news28-a
+#usr/share/terminfo/n/news29
+#usr/share/terminfo/n/news31
+#usr/share/terminfo/n/news31-a
+#usr/share/terminfo/n/news31-o
+#usr/share/terminfo/n/news33
+#usr/share/terminfo/n/news40
+#usr/share/terminfo/n/news40-a
+#usr/share/terminfo/n/news40-o
+#usr/share/terminfo/n/news42
+#usr/share/terminfo/n/newscbm
+#usr/share/terminfo/n/newscbm-a
+#usr/share/terminfo/n/newscbm-o
+#usr/share/terminfo/n/newscbm33
+#usr/share/terminfo/n/next
+#usr/share/terminfo/n/nextshell
+#usr/share/terminfo/n/northstar
+#usr/share/terminfo/n/nsterm
+#usr/share/terminfo/n/nsterm+7
+#usr/share/terminfo/n/nsterm+acs
+#usr/share/terminfo/n/nsterm+c
+#usr/share/terminfo/n/nsterm+c41
+#usr/share/terminfo/n/nsterm+mac
+#usr/share/terminfo/n/nsterm+s
+#usr/share/terminfo/n/nsterm-7
+#usr/share/terminfo/n/nsterm-7-c
+#usr/share/terminfo/n/nsterm-7-c-s
+#usr/share/terminfo/n/nsterm-7-m
+#usr/share/terminfo/n/nsterm-7-m-s
+#usr/share/terminfo/n/nsterm-7-s
+#usr/share/terminfo/n/nsterm-acs
+#usr/share/terminfo/n/nsterm-acs-c
+#usr/share/terminfo/n/nsterm-acs-c-s
+#usr/share/terminfo/n/nsterm-acs-m
+#usr/share/terminfo/n/nsterm-acs-m-s
+#usr/share/terminfo/n/nsterm-acs-s
+#usr/share/terminfo/n/nsterm-c
+#usr/share/terminfo/n/nsterm-c-7
+#usr/share/terminfo/n/nsterm-c-acs
+#usr/share/terminfo/n/nsterm-c-s
+#usr/share/terminfo/n/nsterm-c-s-7
+#usr/share/terminfo/n/nsterm-c-s-acs
+#usr/share/terminfo/n/nsterm-m
+#usr/share/terminfo/n/nsterm-m-7
+#usr/share/terminfo/n/nsterm-m-acs
+#usr/share/terminfo/n/nsterm-m-s
+#usr/share/terminfo/n/nsterm-m-s-7
+#usr/share/terminfo/n/nsterm-m-s-acs
+#usr/share/terminfo/n/nsterm-s
+#usr/share/terminfo/n/nsterm-s-7
+#usr/share/terminfo/n/nsterm-s-acs
+#usr/share/terminfo/n/nwe501
+#usr/share/terminfo/n/nwe501-a
+#usr/share/terminfo/n/nwe501-o
+#usr/share/terminfo/n/nwp-511
+#usr/share/terminfo/n/nwp-517
+#usr/share/terminfo/n/nwp-517-w
+#usr/share/terminfo/n/nwp251-a
+#usr/share/terminfo/n/nwp251-o
+#usr/share/terminfo/n/nwp511
+#usr/share/terminfo/n/nwp512
+#usr/share/terminfo/n/nwp512-a
+#usr/share/terminfo/n/nwp512-o
+#usr/share/terminfo/n/nwp513
+#usr/share/terminfo/n/nwp513-a
+#usr/share/terminfo/n/nwp513-o
+#usr/share/terminfo/n/nwp514
+#usr/share/terminfo/n/nwp514-a
+#usr/share/terminfo/n/nwp514-o
+#usr/share/terminfo/n/nwp517
+#usr/share/terminfo/n/nwp517-w
+#usr/share/terminfo/n/nwp518
+#usr/share/terminfo/n/nwp518-a
+#usr/share/terminfo/n/nwp518-o
+#usr/share/terminfo/n/nxterm
+#usr/share/terminfo/o
+#usr/share/terminfo/o/o31
+#usr/share/terminfo/o/o4112-nd
+#usr/share/terminfo/o/o85h
+#usr/share/terminfo/o/oabm85h
+#usr/share/terminfo/o/oblit
+#usr/share/terminfo/o/oc100
+#usr/share/terminfo/o/oconcept
+#usr/share/terminfo/o/ofcons
+#usr/share/terminfo/o/ojerq
+#usr/share/terminfo/o/oldibmpc3
+#usr/share/terminfo/o/oldpc3
+#usr/share/terminfo/o/oldsun
+#usr/share/terminfo/o/omron
+#usr/share/terminfo/o/opus3n1+
+#usr/share/terminfo/o/origibmpc3
+#usr/share/terminfo/o/origpc3
+#usr/share/terminfo/o/os9LII
+#usr/share/terminfo/o/osborne
+#usr/share/terminfo/o/osborne-w
+#usr/share/terminfo/o/osborne1
+#usr/share/terminfo/o/osborne1-w
+#usr/share/terminfo/o/osexec
+#usr/share/terminfo/o/otek4112
+#usr/share/terminfo/o/otek4113
+#usr/share/terminfo/o/otek4114
+#usr/share/terminfo/o/otek4115
+#usr/share/terminfo/o/owl
+#usr/share/terminfo/p
+#usr/share/terminfo/p/p12
+#usr/share/terminfo/p/p12-m
+#usr/share/terminfo/p/p12-m-w
+#usr/share/terminfo/p/p12-w
+#usr/share/terminfo/p/p14
+#usr/share/terminfo/p/p14-m
+#usr/share/terminfo/p/p14-m-w
+#usr/share/terminfo/p/p14-w
+#usr/share/terminfo/p/p19
+#usr/share/terminfo/p/p4
+#usr/share/terminfo/p/p5
+#usr/share/terminfo/p/p7
+#usr/share/terminfo/p/p8
+#usr/share/terminfo/p/p8-w
+#usr/share/terminfo/p/p8gl
+#usr/share/terminfo/p/p9
+#usr/share/terminfo/p/p9-8
+#usr/share/terminfo/p/p9-8-w
+#usr/share/terminfo/p/p9-w
+#usr/share/terminfo/p/pc-coherent
+#usr/share/terminfo/p/pc-minix
+#usr/share/terminfo/p/pc-venix
+#usr/share/terminfo/p/pc3
+#usr/share/terminfo/p/pc3-bold
+#usr/share/terminfo/p/pc3r
+#usr/share/terminfo/p/pc3r-m
+#usr/share/terminfo/p/pc6300plus
+#usr/share/terminfo/p/pc7300
+#usr/share/terminfo/p/pcansi
+#usr/share/terminfo/p/pcansi-25
+#usr/share/terminfo/p/pcansi-25-m
+#usr/share/terminfo/p/pcansi-33
+#usr/share/terminfo/p/pcansi-33-m
+#usr/share/terminfo/p/pcansi-43
+#usr/share/terminfo/p/pcansi-43-m
+#usr/share/terminfo/p/pcansi-m
+#usr/share/terminfo/p/pcansi-mono
+#usr/share/terminfo/p/pcansi25
+#usr/share/terminfo/p/pcansi25m
+#usr/share/terminfo/p/pcansi33
+#usr/share/terminfo/p/pcansi33m
+#usr/share/terminfo/p/pcansi43
+#usr/share/terminfo/p/pccons
+#usr/share/terminfo/p/pcconsole
+#usr/share/terminfo/p/pcix
+#usr/share/terminfo/p/pckermit
+#usr/share/terminfo/p/pckermit12
+#usr/share/terminfo/p/pckermit120
+#usr/share/terminfo/p/pcmw
+#usr/share/terminfo/p/pcplot
+#usr/share/terminfo/p/pcvt25
+#usr/share/terminfo/p/pcvt25-color
+#usr/share/terminfo/p/pcvt25w
+#usr/share/terminfo/p/pcvt28
+#usr/share/terminfo/p/pcvt28w
+#usr/share/terminfo/p/pcvt35
+#usr/share/terminfo/p/pcvt35w
+#usr/share/terminfo/p/pcvt40
+#usr/share/terminfo/p/pcvt40w
+#usr/share/terminfo/p/pcvt43
+#usr/share/terminfo/p/pcvt43w
+#usr/share/terminfo/p/pcvt50
+#usr/share/terminfo/p/pcvt50w
+#usr/share/terminfo/p/pcvtXX
+#usr/share/terminfo/p/pcz19
+#usr/share/terminfo/p/pe1100
+#usr/share/terminfo/p/pe1200
+#usr/share/terminfo/p/pe1251
+#usr/share/terminfo/p/pe550
+#usr/share/terminfo/p/pe6100
+#usr/share/terminfo/p/pe6300
+#usr/share/terminfo/p/pe6312
+#usr/share/terminfo/p/pe7000c
+#usr/share/terminfo/p/pe7000m
+#usr/share/terminfo/p/pilot
+#usr/share/terminfo/p/pmcons
+#usr/share/terminfo/p/pmconsole
+#usr/share/terminfo/p/printer
+#usr/share/terminfo/p/prism12
+#usr/share/terminfo/p/prism12-m
+#usr/share/terminfo/p/prism12-m-w
+#usr/share/terminfo/p/prism12-w
+#usr/share/terminfo/p/prism14
+#usr/share/terminfo/p/prism14-m
+#usr/share/terminfo/p/prism14-m-w
+#usr/share/terminfo/p/prism14-w
+#usr/share/terminfo/p/prism2
+#usr/share/terminfo/p/prism4
+#usr/share/terminfo/p/prism5
+#usr/share/terminfo/p/prism7
+#usr/share/terminfo/p/prism8
+#usr/share/terminfo/p/prism8-w
+#usr/share/terminfo/p/prism8gl
+#usr/share/terminfo/p/prism9
+#usr/share/terminfo/p/prism9-8
+#usr/share/terminfo/p/prism9-8-w
+#usr/share/terminfo/p/prism9-w
+#usr/share/terminfo/p/pro350
+#usr/share/terminfo/p/ps300
+#usr/share/terminfo/p/psterm
+#usr/share/terminfo/p/psterm-80x24
+#usr/share/terminfo/p/psterm-90x28
+#usr/share/terminfo/p/psterm-96x48
+#usr/share/terminfo/p/psterm-basic
+#usr/share/terminfo/p/psterm-fast
+#usr/share/terminfo/p/psx_ansi
+#usr/share/terminfo/p/pt100
+#usr/share/terminfo/p/pt100w
+#usr/share/terminfo/p/pt200
+#usr/share/terminfo/p/pt200w
+#usr/share/terminfo/p/pt210
+#usr/share/terminfo/p/pt250
+#usr/share/terminfo/p/pt250w
+#usr/share/terminfo/p/pt505
+#usr/share/terminfo/p/pt505-22
+#usr/share/terminfo/p/pt505-24
+#usr/share/terminfo/p/pty
+#usr/share/terminfo/p/putty
+#usr/share/terminfo/q
+#usr/share/terminfo/q/qansi
+#usr/share/terminfo/q/qansi-g
+#usr/share/terminfo/q/qansi-m
+#usr/share/terminfo/q/qansi-t
+#usr/share/terminfo/q/qansi-w
+#usr/share/terminfo/q/qdcons
+#usr/share/terminfo/q/qdss
+#usr/share/terminfo/q/qnx
+#usr/share/terminfo/q/qnx4
+#usr/share/terminfo/q/qnxm
+#usr/share/terminfo/q/qnxt
+#usr/share/terminfo/q/qnxt2
+#usr/share/terminfo/q/qnxt4
+#usr/share/terminfo/q/qnxtmono
+#usr/share/terminfo/q/qnxw
+#usr/share/terminfo/q/qume
+#usr/share/terminfo/q/qume5
+#usr/share/terminfo/q/qvt101
+#usr/share/terminfo/q/qvt101+
+#usr/share/terminfo/q/qvt101p
+#usr/share/terminfo/q/qvt102
+#usr/share/terminfo/q/qvt103
+#usr/share/terminfo/q/qvt103-w
+#usr/share/terminfo/q/qvt108
+#usr/share/terminfo/q/qvt119
+#usr/share/terminfo/q/qvt119+
+#usr/share/terminfo/q/qvt119+-25
+#usr/share/terminfo/q/qvt119+-25-w
+#usr/share/terminfo/q/qvt119+-w
+#usr/share/terminfo/q/qvt119-25-w
+#usr/share/terminfo/q/qvt119-w
+#usr/share/terminfo/q/qvt119p
+#usr/share/terminfo/q/qvt119p-25
+#usr/share/terminfo/q/qvt119p-25-w
+#usr/share/terminfo/q/qvt119p-w
+#usr/share/terminfo/q/qvt203
+#usr/share/terminfo/q/qvt203+
+#usr/share/terminfo/q/qvt203-25
+#usr/share/terminfo/q/qvt203-25-w
+#usr/share/terminfo/q/qvt203-w
+#usr/share/terminfo/q/qvt203-w-am
+#usr/share/terminfo/r
+#usr/share/terminfo/r/rbcomm
+#usr/share/terminfo/r/rbcomm-nam
+#usr/share/terminfo/r/rbcomm-w
+#usr/share/terminfo/r/rca
+#usr/share/terminfo/r/rcons
+#usr/share/terminfo/r/rcons-color
+#usr/share/terminfo/r/rebus3180
+#usr/share/terminfo/r/regent
+#usr/share/terminfo/r/regent100
+#usr/share/terminfo/r/regent20
+#usr/share/terminfo/r/regent200
+#usr/share/terminfo/r/regent25
+#usr/share/terminfo/r/regent40
+#usr/share/terminfo/r/regent40+
+#usr/share/terminfo/r/regent60
+#usr/share/terminfo/r/rt6221
+#usr/share/terminfo/r/rt6221-w
+#usr/share/terminfo/r/rtpc
+#usr/share/terminfo/r/rxvt
+#usr/share/terminfo/r/rxvt-16color
+#usr/share/terminfo/r/rxvt-basic
+#usr/share/terminfo/s
+#usr/share/terminfo/s/s4
+#usr/share/terminfo/s/sb1
+#usr/share/terminfo/s/sb2
+#usr/share/terminfo/s/sb3
+#usr/share/terminfo/s/sbi
+#usr/share/terminfo/s/sbobcat
+#usr/share/terminfo/s/sc410
+#usr/share/terminfo/s/sc415
+#usr/share/terminfo/s/scanset
+#usr/share/terminfo/s/scoansi
+#usr/share/terminfo/s/scoansi-new
+#usr/share/terminfo/s/scoansi-old
+#usr/share/terminfo/s/screen
+#usr/share/terminfo/s/screen-w
+#usr/share/terminfo/s/screen.teraterm
+#usr/share/terminfo/s/screen.xterm-r6
+#usr/share/terminfo/s/screen.xterm-xfree86
+#usr/share/terminfo/s/screen2
+#usr/share/terminfo/s/screen3
+#usr/share/terminfo/s/screwpoint
+#usr/share/terminfo/s/scrhp
+#usr/share/terminfo/s/sibo
+#usr/share/terminfo/s/simterm
+#usr/share/terminfo/s/soroc
+#usr/share/terminfo/s/soroc120
+#usr/share/terminfo/s/soroc140
+#usr/share/terminfo/s/spinwriter
+#usr/share/terminfo/s/st52
+#usr/share/terminfo/s/sun
+#usr/share/terminfo/s/sun-1
+#usr/share/terminfo/s/sun-12
+#usr/share/terminfo/s/sun-17
+#usr/share/terminfo/s/sun-24
+#usr/share/terminfo/s/sun-34
+#usr/share/terminfo/s/sun-48
+#usr/share/terminfo/s/sun-c
+#usr/share/terminfo/s/sun-cgsix
+#usr/share/terminfo/s/sun-cmd
+#usr/share/terminfo/s/sun-e
+#usr/share/terminfo/s/sun-e-s
+#usr/share/terminfo/s/sun-il
+#usr/share/terminfo/s/sun-nic
+#usr/share/terminfo/s/sun-s
+#usr/share/terminfo/s/sun-s-e
+#usr/share/terminfo/s/sun-ss5
+#usr/share/terminfo/s/sun1
+#usr/share/terminfo/s/sun2
+#usr/share/terminfo/s/sune
+#usr/share/terminfo/s/superbee
+#usr/share/terminfo/s/superbee-xsb
+#usr/share/terminfo/s/superbeeic
+#usr/share/terminfo/s/superbrain
+#usr/share/terminfo/s/sv80
+#usr/share/terminfo/s/swtp
+#usr/share/terminfo/s/synertek
+#usr/share/terminfo/s/synertek380
+#usr/share/terminfo/s/system1
+#usr/share/terminfo/t
+#usr/share/terminfo/t/t10
+#usr/share/terminfo/t/t1061
+#usr/share/terminfo/t/t1061f
+#usr/share/terminfo/t/t16
+#usr/share/terminfo/t/t3700
+#usr/share/terminfo/t/t3800
+#usr/share/terminfo/t/t653x
+#usr/share/terminfo/t/tab
+#usr/share/terminfo/t/tab132
+#usr/share/terminfo/t/tab132-15
+#usr/share/terminfo/t/tab132-rv
+#usr/share/terminfo/t/tab132-w
+#usr/share/terminfo/t/tab132-w-rv
+#usr/share/terminfo/t/tandem6510
+#usr/share/terminfo/t/tandem653
+#usr/share/terminfo/t/tek
+#usr/share/terminfo/t/tek4012
+#usr/share/terminfo/t/tek4013
+#usr/share/terminfo/t/tek4014
+#usr/share/terminfo/t/tek4014-sm
+#usr/share/terminfo/t/tek4015
+#usr/share/terminfo/t/tek4015-sm
+#usr/share/terminfo/t/tek4023
+#usr/share/terminfo/t/tek4024
+#usr/share/terminfo/t/tek4025
+#usr/share/terminfo/t/tek4025-17
+#usr/share/terminfo/t/tek4025-17-ws
+#usr/share/terminfo/t/tek4025-cr
+#usr/share/terminfo/t/tek4025-ex
+#usr/share/terminfo/t/tek4025a
+#usr/share/terminfo/t/tek4025ex
+#usr/share/terminfo/t/tek4027
+#usr/share/terminfo/t/tek4027-ex
+#usr/share/terminfo/t/tek4105
+#usr/share/terminfo/t/tek4105-30
+#usr/share/terminfo/t/tek4105a
+#usr/share/terminfo/t/tek4106brl
+#usr/share/terminfo/t/tek4107
+#usr/share/terminfo/t/tek4107brl
+#usr/share/terminfo/t/tek4109
+#usr/share/terminfo/t/tek4109brl
+#usr/share/terminfo/t/tek4112
+#usr/share/terminfo/t/tek4112-5
+#usr/share/terminfo/t/tek4112-nd
+#usr/share/terminfo/t/tek4113
+#usr/share/terminfo/t/tek4113-34
+#usr/share/terminfo/t/tek4113-nd
+#usr/share/terminfo/t/tek4114
+#usr/share/terminfo/t/tek4115
+#usr/share/terminfo/t/tek4125
+#usr/share/terminfo/t/tek4205
+#usr/share/terminfo/t/tek4207
+#usr/share/terminfo/t/tek4207-s
+#usr/share/terminfo/t/tek4404
+#usr/share/terminfo/t/teleray
+#usr/share/terminfo/t/teletec
+#usr/share/terminfo/t/teraterm
+#usr/share/terminfo/t/terminet
+#usr/share/terminfo/t/terminet1200
+#usr/share/terminfo/t/terminet300
+#usr/share/terminfo/t/tgtelnet
+#usr/share/terminfo/t/ti700
+#usr/share/terminfo/t/ti733
+#usr/share/terminfo/t/ti735
+#usr/share/terminfo/t/ti745
+#usr/share/terminfo/t/ti800
+#usr/share/terminfo/t/ti916
+#usr/share/terminfo/t/ti916-132
+#usr/share/terminfo/t/ti916-220-7
+#usr/share/terminfo/t/ti916-220-8
+#usr/share/terminfo/t/ti916-8
+#usr/share/terminfo/t/ti916-8-132
+#usr/share/terminfo/t/ti924
+#usr/share/terminfo/t/ti924-8
+#usr/share/terminfo/t/ti924-8w
+#usr/share/terminfo/t/ti924w
+#usr/share/terminfo/t/ti926
+#usr/share/terminfo/t/ti926-8
+#usr/share/terminfo/t/ti928
+#usr/share/terminfo/t/ti928-8
+#usr/share/terminfo/t/ti931
+#usr/share/terminfo/t/ti_ansi
+#usr/share/terminfo/t/tn1200
+#usr/share/terminfo/t/tn300
+#usr/share/terminfo/t/trs16
+#usr/share/terminfo/t/trs2
+#usr/share/terminfo/t/trs80II
+#usr/share/terminfo/t/trsII
+#usr/share/terminfo/t/ts-1
+#usr/share/terminfo/t/ts-1p
+#usr/share/terminfo/t/ts1
+#usr/share/terminfo/t/ts100
+#usr/share/terminfo/t/ts100-ctxt
+#usr/share/terminfo/t/ts100-sp
+#usr/share/terminfo/t/ts1p
+#usr/share/terminfo/t/tt505-22
+#usr/share/terminfo/t/tty33
+#usr/share/terminfo/t/tty35
+#usr/share/terminfo/t/tty37
+#usr/share/terminfo/t/tty40
+#usr/share/terminfo/t/tty43
+#usr/share/terminfo/t/tty4420
+#usr/share/terminfo/t/tty4424
+#usr/share/terminfo/t/tty4424-1
+#usr/share/terminfo/t/tty4424m
+#usr/share/terminfo/t/tty4426
+#usr/share/terminfo/t/tty5410
+#usr/share/terminfo/t/tty5410-w
+#usr/share/terminfo/t/tty5410v1
+#usr/share/terminfo/t/tty5410v1-w
+#usr/share/terminfo/t/tty5420
+#usr/share/terminfo/t/tty5420+nl
+#usr/share/terminfo/t/tty5420-nl
+#usr/share/terminfo/t/tty5420-rv
+#usr/share/terminfo/t/tty5420-rv-nl
+#usr/share/terminfo/t/tty5420-w
+#usr/share/terminfo/t/tty5420-w-nl
+#usr/share/terminfo/t/tty5420-w-rv
+#usr/share/terminfo/t/tty5420-w-rv-n
+#usr/share/terminfo/t/tty5425
+#usr/share/terminfo/t/tty5425-nl
+#usr/share/terminfo/t/tty5425-w
+#usr/share/terminfo/t/tty5620
+#usr/share/terminfo/t/tty5620-1
+#usr/share/terminfo/t/tty5620-24
+#usr/share/terminfo/t/tty5620-34
+#usr/share/terminfo/t/tty5620-s
+#usr/share/terminfo/t/ttydmd
+#usr/share/terminfo/t/tvi-2p
+#usr/share/terminfo/t/tvi803
+#usr/share/terminfo/t/tvi9065
+#usr/share/terminfo/t/tvi910
+#usr/share/terminfo/t/tvi910+
+#usr/share/terminfo/t/tvi912
+#usr/share/terminfo/t/tvi912-2p
+#usr/share/terminfo/t/tvi912b
+#usr/share/terminfo/t/tvi912c
+#usr/share/terminfo/t/tvi912cc
+#usr/share/terminfo/t/tvi914
+#usr/share/terminfo/t/tvi920
+#usr/share/terminfo/t/tvi920-2p
+#usr/share/terminfo/t/tvi920b
+#usr/share/terminfo/t/tvi920c
+#usr/share/terminfo/t/tvi921
+#usr/share/terminfo/t/tvi924
+#usr/share/terminfo/t/tvi925
+#usr/share/terminfo/t/tvi925-hi
+#usr/share/terminfo/t/tvi92B
+#usr/share/terminfo/t/tvi92D
+#usr/share/terminfo/t/tvi950
+#usr/share/terminfo/t/tvi950-2p
+#usr/share/terminfo/t/tvi950-4p
+#usr/share/terminfo/t/tvi950-rv
+#usr/share/terminfo/t/tvi950-rv-2p
+#usr/share/terminfo/t/tvi950-rv-4p
+#usr/share/terminfo/t/tvi955
+#usr/share/terminfo/t/tvi955-hb
+#usr/share/terminfo/t/tvi955-w
+#usr/share/terminfo/t/tvi970
+#usr/share/terminfo/t/tvi970-2p
+#usr/share/terminfo/t/tvi970-vb
+#usr/share/terminfo/t/tvipt
+#usr/share/terminfo/t/tws-generic
+#usr/share/terminfo/t/tws2102-sna
+#usr/share/terminfo/t/tws2103
+#usr/share/terminfo/t/tws2103-sna
+#usr/share/terminfo/u
+#usr/share/terminfo/u/ultima2
+#usr/share/terminfo/u/ultimaII
+#usr/share/terminfo/u/uniterm
+#usr/share/terminfo/u/uniterm49
+#usr/share/terminfo/u/unixpc
+#usr/share/terminfo/u/unknown
+#usr/share/terminfo/u/uts30
+#usr/share/terminfo/v
+#usr/share/terminfo/v/v200-nam
+#usr/share/terminfo/v/v320n
+#usr/share/terminfo/v/v3220
+#usr/share/terminfo/v/v5410
+#usr/share/terminfo/v/vanilla
+#usr/share/terminfo/v/vapple
+#usr/share/terminfo/v/vc103
+#usr/share/terminfo/v/vc203
+#usr/share/terminfo/v/vc303
+#usr/share/terminfo/v/vc303a
+#usr/share/terminfo/v/vc403a
+#usr/share/terminfo/v/vc404
+#usr/share/terminfo/v/vc404-s
+#usr/share/terminfo/v/vc414
+#usr/share/terminfo/v/vc414h
+#usr/share/terminfo/v/vc415
+#usr/share/terminfo/v/venix
+#usr/share/terminfo/v/versaterm
+#usr/share/terminfo/v/vi200
+#usr/share/terminfo/v/vi200-f
+#usr/share/terminfo/v/vi200-rv
+#usr/share/terminfo/v/vi300
+#usr/share/terminfo/v/vi300-old
+#usr/share/terminfo/v/vi50
+#usr/share/terminfo/v/vi500
+#usr/share/terminfo/v/vi50adm
+#usr/share/terminfo/v/vi55
+#usr/share/terminfo/v/vi550
+#usr/share/terminfo/v/vi603
+#usr/share/terminfo/v/viewpoint
+#usr/share/terminfo/v/viewpoint3a+
+#usr/share/terminfo/v/viewpoint60
+#usr/share/terminfo/v/viewpoint90
+#usr/share/terminfo/v/vip
+#usr/share/terminfo/v/vip-H
+#usr/share/terminfo/v/vip-Hw
+#usr/share/terminfo/v/vip-w
+#usr/share/terminfo/v/vip7800-H
+#usr/share/terminfo/v/vip7800-Hw
+#usr/share/terminfo/v/vip7800-w
+#usr/share/terminfo/v/visa50
+#usr/share/terminfo/v/visual603
+#usr/share/terminfo/v/vitty
+#usr/share/terminfo/v/vk100
+#usr/share/terminfo/v/vp3a+
+#usr/share/terminfo/v/vp60
+#usr/share/terminfo/v/vp90
+#usr/share/terminfo/v/vremote
+#usr/share/terminfo/v/vs100
+#usr/share/terminfo/v/vs100-x10
+#usr/share/terminfo/v/vsc
+#usr/share/terminfo/v/vt-61
+usr/share/terminfo/v/vt100
+usr/share/terminfo/v/vt100-am
+usr/share/terminfo/v/vt100-bm
+usr/share/terminfo/v/vt100-bm-o
+usr/share/terminfo/v/vt100-bot-s
+usr/share/terminfo/v/vt100-nam
+usr/share/terminfo/v/vt100-nam-w
+usr/share/terminfo/v/vt100-nav
+usr/share/terminfo/v/vt100-nav-w
+usr/share/terminfo/v/vt100-s
+usr/share/terminfo/v/vt100-s-bot
+usr/share/terminfo/v/vt100-s-top
+usr/share/terminfo/v/vt100-top-s
+usr/share/terminfo/v/vt100-vb
+usr/share/terminfo/v/vt100-w
+usr/share/terminfo/v/vt100-w-am
+usr/share/terminfo/v/vt100-w-nam
+usr/share/terminfo/v/vt100-w-nav
+usr/share/terminfo/v/vt100nam
+usr/share/terminfo/v/vt102
+usr/share/terminfo/v/vt102-nsgr
+usr/share/terminfo/v/vt102-w
+#usr/share/terminfo/v/vt125
+#usr/share/terminfo/v/vt131
+#usr/share/terminfo/v/vt132
+usr/share/terminfo/v/vt200
+usr/share/terminfo/v/vt200-8
+usr/share/terminfo/v/vt200-8bit
+usr/share/terminfo/v/vt200-js
+usr/share/terminfo/v/vt200-old
+usr/share/terminfo/v/vt200-w
+usr/share/terminfo/v/vt220
+usr/share/terminfo/v/vt220-8
+usr/share/terminfo/v/vt220-8bit
+usr/share/terminfo/v/vt220-js
+usr/share/terminfo/v/vt220-nam
+#usr/share/terminfo/v/vt220-old
+usr/share/terminfo/v/vt220-w
+usr/share/terminfo/v/vt220d
+#usr/share/terminfo/v/vt300
+#usr/share/terminfo/v/vt300-nam
+#usr/share/terminfo/v/vt300-w
+#usr/share/terminfo/v/vt300-w-nam
+#usr/share/terminfo/v/vt320
+#usr/share/terminfo/v/vt320-k3
+#usr/share/terminfo/v/vt320-k311
+#usr/share/terminfo/v/vt320-nam
+#usr/share/terminfo/v/vt320-w
+#usr/share/terminfo/v/vt320-w-nam
+#usr/share/terminfo/v/vt320nam
+#usr/share/terminfo/v/vt330
+#usr/share/terminfo/v/vt340
+#usr/share/terminfo/v/vt400
+#usr/share/terminfo/v/vt400-24
+#usr/share/terminfo/v/vt420
+#usr/share/terminfo/v/vt420f
+#usr/share/terminfo/v/vt420pc
+#usr/share/terminfo/v/vt420pcdos
+#usr/share/terminfo/v/vt50
+#usr/share/terminfo/v/vt50h
+#usr/share/terminfo/v/vt510
+#usr/share/terminfo/v/vt510pc
+#usr/share/terminfo/v/vt510pcdos
+#usr/share/terminfo/v/vt52
+#usr/share/terminfo/v/vt520
+#usr/share/terminfo/v/vt525
+#usr/share/terminfo/v/vt61
+#usr/share/terminfo/v/vt61.5
+#usr/share/terminfo/v/vv100
+#usr/share/terminfo/w
+#usr/share/terminfo/w/wren
+#usr/share/terminfo/w/wrenw
+#usr/share/terminfo/w/wsiris
+#usr/share/terminfo/w/wsvt25
+#usr/share/terminfo/w/wsvt25m
+#usr/share/terminfo/w/wy-75ap
+#usr/share/terminfo/w/wy-99fgt
+#usr/share/terminfo/w/wy-99fgta
+#usr/share/terminfo/w/wy100
+#usr/share/terminfo/w/wy100q
+#usr/share/terminfo/w/wy120
+#usr/share/terminfo/w/wy120-25
+#usr/share/terminfo/w/wy120-25-w
+#usr/share/terminfo/w/wy120-vb
+#usr/share/terminfo/w/wy120-w
+#usr/share/terminfo/w/wy120-w-vb
+#usr/share/terminfo/w/wy120-wvb
+#usr/share/terminfo/w/wy150
+#usr/share/terminfo/w/wy150-25
+#usr/share/terminfo/w/wy150-25-w
+#usr/share/terminfo/w/wy150-vb
+#usr/share/terminfo/w/wy150-w
+#usr/share/terminfo/w/wy150-w-vb
+#usr/share/terminfo/w/wy160
+#usr/share/terminfo/w/wy160-25
+#usr/share/terminfo/w/wy160-25-w
+#usr/share/terminfo/w/wy160-42
+#usr/share/terminfo/w/wy160-42-w
+#usr/share/terminfo/w/wy160-43
+#usr/share/terminfo/w/wy160-43-w
+#usr/share/terminfo/w/wy160-tek
+#usr/share/terminfo/w/wy160-vb
+#usr/share/terminfo/w/wy160-w
+#usr/share/terminfo/w/wy160-w-vb
+#usr/share/terminfo/w/wy160-wvb
+#usr/share/terminfo/w/wy185
+#usr/share/terminfo/w/wy185-24
+#usr/share/terminfo/w/wy185-vb
+#usr/share/terminfo/w/wy185-w
+#usr/share/terminfo/w/wy185-wvb
+#usr/share/terminfo/w/wy30
+#usr/share/terminfo/w/wy30-mc
+#usr/share/terminfo/w/wy30-vb
+#usr/share/terminfo/w/wy325
+#usr/share/terminfo/w/wy325-25
+#usr/share/terminfo/w/wy325-25w
+#usr/share/terminfo/w/wy325-42
+#usr/share/terminfo/w/wy325-42w
+#usr/share/terminfo/w/wy325-42w-vb
+#usr/share/terminfo/w/wy325-42wvb
+#usr/share/terminfo/w/wy325-43
+#usr/share/terminfo/w/wy325-43w
+#usr/share/terminfo/w/wy325-43w-vb
+#usr/share/terminfo/w/wy325-43wvb
+#usr/share/terminfo/w/wy325-80
+#usr/share/terminfo/w/wy325-vb
+#usr/share/terminfo/w/wy325-w
+#usr/share/terminfo/w/wy325-w-vb
+#usr/share/terminfo/w/wy325-wvb
+#usr/share/terminfo/w/wy325w-24
+#usr/share/terminfo/w/wy350
+#usr/share/terminfo/w/wy350-vb
+#usr/share/terminfo/w/wy350-w
+#usr/share/terminfo/w/wy350-wvb
+#usr/share/terminfo/w/wy370
+#usr/share/terminfo/w/wy370-101k
+#usr/share/terminfo/w/wy370-105k
+#usr/share/terminfo/w/wy370-EPC
+#usr/share/terminfo/w/wy370-nk
+#usr/share/terminfo/w/wy370-rv
+#usr/share/terminfo/w/wy370-tek
+#usr/share/terminfo/w/wy370-vb
+#usr/share/terminfo/w/wy370-w
+#usr/share/terminfo/w/wy370-wvb
+#usr/share/terminfo/w/wy50
+#usr/share/terminfo/w/wy50-mc
+#usr/share/terminfo/w/wy50-vb
+#usr/share/terminfo/w/wy50-w
+#usr/share/terminfo/w/wy50-wvb
+#usr/share/terminfo/w/wy520
+#usr/share/terminfo/w/wy520-24
+#usr/share/terminfo/w/wy520-36
+#usr/share/terminfo/w/wy520-36pc
+#usr/share/terminfo/w/wy520-36w
+#usr/share/terminfo/w/wy520-36wpc
+#usr/share/terminfo/w/wy520-48
+#usr/share/terminfo/w/wy520-48pc
+#usr/share/terminfo/w/wy520-48w
+#usr/share/terminfo/w/wy520-48wpc
+#usr/share/terminfo/w/wy520-epc
+#usr/share/terminfo/w/wy520-epc-24
+#usr/share/terminfo/w/wy520-epc-vb
+#usr/share/terminfo/w/wy520-epc-w
+#usr/share/terminfo/w/wy520-epc-wvb
+#usr/share/terminfo/w/wy520-vb
+#usr/share/terminfo/w/wy520-w
+#usr/share/terminfo/w/wy520-wvb
+#usr/share/terminfo/w/wy60
+#usr/share/terminfo/w/wy60-25
+#usr/share/terminfo/w/wy60-25-w
+#usr/share/terminfo/w/wy60-316X
+#usr/share/terminfo/w/wy60-42
+#usr/share/terminfo/w/wy60-42-w
+#usr/share/terminfo/w/wy60-43
+#usr/share/terminfo/w/wy60-43-w
+#usr/share/terminfo/w/wy60-AT
+#usr/share/terminfo/w/wy60-PC
+#usr/share/terminfo/w/wy60-vb
+#usr/share/terminfo/w/wy60-w
+#usr/share/terminfo/w/wy60-w-vb
+#usr/share/terminfo/w/wy60-wvb
+#usr/share/terminfo/w/wy75
+#usr/share/terminfo/w/wy75-mc
+#usr/share/terminfo/w/wy75-vb
+#usr/share/terminfo/w/wy75-w
+#usr/share/terminfo/w/wy75-wvb
+#usr/share/terminfo/w/wy75ap
+#usr/share/terminfo/w/wy85
+#usr/share/terminfo/w/wy85-8bit
+#usr/share/terminfo/w/wy85-vb
+#usr/share/terminfo/w/wy85-w
+#usr/share/terminfo/w/wy85-wvb
+#usr/share/terminfo/w/wy99-ansi
+#usr/share/terminfo/w/wy99a-ansi
+#usr/share/terminfo/w/wy99f
+#usr/share/terminfo/w/wy99fa
+#usr/share/terminfo/w/wy99fgt
+#usr/share/terminfo/w/wy99fgta
+#usr/share/terminfo/w/wy99gt
+#usr/share/terminfo/w/wy99gt-25
+#usr/share/terminfo/w/wy99gt-25-w
+#usr/share/terminfo/w/wy99gt-tek
+#usr/share/terminfo/w/wy99gt-vb
+#usr/share/terminfo/w/wy99gt-w
+#usr/share/terminfo/w/wy99gt-w-vb
+#usr/share/terminfo/w/wy99gt-wvb
+#usr/share/terminfo/w/wyse-325
+#usr/share/terminfo/w/wyse-75ap
+#usr/share/terminfo/w/wyse-vp
+#usr/share/terminfo/w/wyse120
+#usr/share/terminfo/w/wyse120-25
+#usr/share/terminfo/w/wyse120-25-w
+#usr/share/terminfo/w/wyse120-vb
+#usr/share/terminfo/w/wyse120-w
+#usr/share/terminfo/w/wyse120-wvb
+#usr/share/terminfo/w/wyse150
+#usr/share/terminfo/w/wyse150-25
+#usr/share/terminfo/w/wyse150-25-w
+#usr/share/terminfo/w/wyse150-vb
+#usr/share/terminfo/w/wyse150-w
+#usr/share/terminfo/w/wyse150-w-vb
+#usr/share/terminfo/w/wyse160
+#usr/share/terminfo/w/wyse160-25
+#usr/share/terminfo/w/wyse160-25-w
+#usr/share/terminfo/w/wyse160-42
+#usr/share/terminfo/w/wyse160-42-w
+#usr/share/terminfo/w/wyse160-43
+#usr/share/terminfo/w/wyse160-43-w
+#usr/share/terminfo/w/wyse160-vb
+#usr/share/terminfo/w/wyse160-w
+#usr/share/terminfo/w/wyse160-wvb
+#usr/share/terminfo/w/wyse185
+#usr/share/terminfo/w/wyse185-24
+#usr/share/terminfo/w/wyse185-vb
+#usr/share/terminfo/w/wyse185-w
+#usr/share/terminfo/w/wyse185-wvb
+#usr/share/terminfo/w/wyse30
+#usr/share/terminfo/w/wyse30-mc
+#usr/share/terminfo/w/wyse30-vb
+#usr/share/terminfo/w/wyse325
+#usr/share/terminfo/w/wyse325-25
+#usr/share/terminfo/w/wyse325-25w
+#usr/share/terminfo/w/wyse325-42
+#usr/share/terminfo/w/wyse325-42w
+#usr/share/terminfo/w/wyse325-43
+#usr/share/terminfo/w/wyse325-43w
+#usr/share/terminfo/w/wyse325-vb
+#usr/share/terminfo/w/wyse325-w
+#usr/share/terminfo/w/wyse325-wvb
+#usr/share/terminfo/w/wyse350
+#usr/share/terminfo/w/wyse350-vb
+#usr/share/terminfo/w/wyse350-w
+#usr/share/terminfo/w/wyse350-wvb
+#usr/share/terminfo/w/wyse370
+#usr/share/terminfo/w/wyse50
+#usr/share/terminfo/w/wyse50-mc
+#usr/share/terminfo/w/wyse50-vb
+#usr/share/terminfo/w/wyse50-w
+#usr/share/terminfo/w/wyse50-wvb
+#usr/share/terminfo/w/wyse520
+#usr/share/terminfo/w/wyse520-24
+#usr/share/terminfo/w/wyse520-36
+#usr/share/terminfo/w/wyse520-36pc
+#usr/share/terminfo/w/wyse520-36w
+#usr/share/terminfo/w/wyse520-36wpc
+#usr/share/terminfo/w/wyse520-48
+#usr/share/terminfo/w/wyse520-48pc
+#usr/share/terminfo/w/wyse520-48w
+#usr/share/terminfo/w/wyse520-48wpc
+#usr/share/terminfo/w/wyse520-epc
+#usr/share/terminfo/w/wyse520-epc-w
+#usr/share/terminfo/w/wyse520-p-wvb
+#usr/share/terminfo/w/wyse520-pc-24
+#usr/share/terminfo/w/wyse520-pc-vb
+#usr/share/terminfo/w/wyse520-vb
+#usr/share/terminfo/w/wyse520-w
+#usr/share/terminfo/w/wyse520-wvb
+#usr/share/terminfo/w/wyse60
+#usr/share/terminfo/w/wyse60-25
+#usr/share/terminfo/w/wyse60-25-w
+#usr/share/terminfo/w/wyse60-316X
+#usr/share/terminfo/w/wyse60-42
+#usr/share/terminfo/w/wyse60-42-w
+#usr/share/terminfo/w/wyse60-43
+#usr/share/terminfo/w/wyse60-43-w
+#usr/share/terminfo/w/wyse60-AT
+#usr/share/terminfo/w/wyse60-PC
+#usr/share/terminfo/w/wyse60-vb
+#usr/share/terminfo/w/wyse60-w
+#usr/share/terminfo/w/wyse60-wvb
+#usr/share/terminfo/w/wyse75
+#usr/share/terminfo/w/wyse75-mc
+#usr/share/terminfo/w/wyse75-vb
+#usr/share/terminfo/w/wyse75-w
+#usr/share/terminfo/w/wyse75-wvb
+#usr/share/terminfo/w/wyse75ap
+#usr/share/terminfo/w/wyse85
+#usr/share/terminfo/w/wyse85-8bit
+#usr/share/terminfo/w/wyse85-vb
+#usr/share/terminfo/w/wyse85-w
+#usr/share/terminfo/w/wyse85-wvb
+#usr/share/terminfo/w/wyse99gt
+#usr/share/terminfo/w/wyse99gt-25
+#usr/share/terminfo/w/wyse99gt-25-w
+#usr/share/terminfo/w/wyse99gt-vb
+#usr/share/terminfo/w/wyse99gt-w
+#usr/share/terminfo/w/wyse99gt-wvb
+#usr/share/terminfo/x
+#usr/share/terminfo/x/x10term
+#usr/share/terminfo/x/x1700
+#usr/share/terminfo/x/x1700-lm
+#usr/share/terminfo/x/x1720
+#usr/share/terminfo/x/x1750
+#usr/share/terminfo/x/x68k
+#usr/share/terminfo/x/x68k-ite
+#usr/share/terminfo/x/x820
+#usr/share/terminfo/x/xdku
+#usr/share/terminfo/x/xenix
+#usr/share/terminfo/x/xerox
+#usr/share/terminfo/x/xerox-lm
+#usr/share/terminfo/x/xerox1720
+#usr/share/terminfo/x/xerox820
+#usr/share/terminfo/x/xl83
+#usr/share/terminfo/x/xnuppc
+#usr/share/terminfo/x/xnuppc+100x37
+#usr/share/terminfo/x/xnuppc+112x37
+#usr/share/terminfo/x/xnuppc+128x40
+#usr/share/terminfo/x/xnuppc+128x48
+#usr/share/terminfo/x/xnuppc+144x48
+#usr/share/terminfo/x/xnuppc+160x64
+#usr/share/terminfo/x/xnuppc+200x64
+#usr/share/terminfo/x/xnuppc+200x75
+#usr/share/terminfo/x/xnuppc+256x96
+#usr/share/terminfo/x/xnuppc+80x25
+#usr/share/terminfo/x/xnuppc+80x30
+#usr/share/terminfo/x/xnuppc+90x30
+#usr/share/terminfo/x/xnuppc+b
+#usr/share/terminfo/x/xnuppc+basic
+#usr/share/terminfo/x/xnuppc+c
+#usr/share/terminfo/x/xnuppc+f
+#usr/share/terminfo/x/xnuppc+f2
+#usr/share/terminfo/x/xnuppc-100x37
+#usr/share/terminfo/x/xnuppc-100x37-m
+#usr/share/terminfo/x/xnuppc-112x37
+#usr/share/terminfo/x/xnuppc-112x37-m
+#usr/share/terminfo/x/xnuppc-128x40
+#usr/share/terminfo/x/xnuppc-128x40-m
+#usr/share/terminfo/x/xnuppc-128x48
+#usr/share/terminfo/x/xnuppc-128x48-m
+#usr/share/terminfo/x/xnuppc-144x48
+#usr/share/terminfo/x/xnuppc-144x48-m
+#usr/share/terminfo/x/xnuppc-160x64
+#usr/share/terminfo/x/xnuppc-160x64-m
+#usr/share/terminfo/x/xnuppc-200x64
+#usr/share/terminfo/x/xnuppc-200x64-m
+#usr/share/terminfo/x/xnuppc-200x75
+#usr/share/terminfo/x/xnuppc-200x75-m
+#usr/share/terminfo/x/xnuppc-256x96
+#usr/share/terminfo/x/xnuppc-256x96-m
+#usr/share/terminfo/x/xnuppc-80x25
+#usr/share/terminfo/x/xnuppc-80x25-m
+#usr/share/terminfo/x/xnuppc-80x30
+#usr/share/terminfo/x/xnuppc-80x30-m
+#usr/share/terminfo/x/xnuppc-90x30
+#usr/share/terminfo/x/xnuppc-90x30-m
+#usr/share/terminfo/x/xnuppc-b
+#usr/share/terminfo/x/xnuppc-f
+#usr/share/terminfo/x/xnuppc-f2
+#usr/share/terminfo/x/xnuppc-m
+#usr/share/terminfo/x/xnuppc-m-b
+#usr/share/terminfo/x/xnuppc-m-f
+#usr/share/terminfo/x/xnuppc-m-f2
+#usr/share/terminfo/x/xtalk
+usr/share/terminfo/x/xterm
+usr/share/terminfo/x/xterm+sl
+usr/share/terminfo/x/xterm+sl-twm
+usr/share/terminfo/x/xterm-16color
+usr/share/terminfo/x/xterm-24
+usr/share/terminfo/x/xterm-256color
+usr/share/terminfo/x/xterm-88color
+usr/share/terminfo/x/xterm-8bit
+usr/share/terminfo/x/xterm-basic
+usr/share/terminfo/x/xterm-bold
+usr/share/terminfo/x/xterm-color
+usr/share/terminfo/x/xterm-hp
+usr/share/terminfo/x/xterm-new
+usr/share/terminfo/x/xterm-nic
+usr/share/terminfo/x/xterm-noapp
+usr/share/terminfo/x/xterm-old
+usr/share/terminfo/x/xterm-pcolor
+usr/share/terminfo/x/xterm-r5
+usr/share/terminfo/x/xterm-r6
+usr/share/terminfo/x/xterm-sco
+usr/share/terminfo/x/xterm-sun
+usr/share/terminfo/x/xterm-vt220
+usr/share/terminfo/x/xterm-vt52
+usr/share/terminfo/x/xterm-xf86-v32
+usr/share/terminfo/x/xterm-xf86-v33
+usr/share/terminfo/x/xterm-xf86-v333
+usr/share/terminfo/x/xterm-xf86-v40
+usr/share/terminfo/x/xterm-xfree86
+usr/share/terminfo/x/xterm-xi
+usr/share/terminfo/x/xterm1
+usr/share/terminfo/x/xtermc
+usr/share/terminfo/x/xtermm
+usr/share/terminfo/x/xterms
+usr/share/terminfo/x/xterms-sun
+#usr/share/terminfo/x/xwsh
+#usr/share/terminfo/z
+#usr/share/terminfo/z/z-100
+#usr/share/terminfo/z/z-100bw
+#usr/share/terminfo/z/z100
+#usr/share/terminfo/z/z100bw
+#usr/share/terminfo/z/z110
+#usr/share/terminfo/z/z110bw
+#usr/share/terminfo/z/z19
+#usr/share/terminfo/z/z29
+#usr/share/terminfo/z/z29a
+#usr/share/terminfo/z/z29a-kc-bc
+#usr/share/terminfo/z/z29a-kc-uc
+#usr/share/terminfo/z/z29a-nkc-bc
+#usr/share/terminfo/z/z29a-nkc-uc
+#usr/share/terminfo/z/z29b
+#usr/share/terminfo/z/z30
+#usr/share/terminfo/z/z340
+#usr/share/terminfo/z/z340-nam
+#usr/share/terminfo/z/z39-a
+#usr/share/terminfo/z/z39a
+#usr/share/terminfo/z/z50
+#usr/share/terminfo/z/z8001
+#usr/share/terminfo/z/zen30
+#usr/share/terminfo/z/zen50
+#usr/share/terminfo/z/zen8001
+#usr/share/terminfo/z/zenith
+#usr/share/terminfo/z/zenith29
+#usr/share/terminfo/z/zenith39-a
+#usr/share/terminfo/z/zenith39-ansi
+#usr/share/terminfo/z/zt-1
+#usr/share/terminfo/z/ztx
+#usr/share/terminfo/z/ztx-1-a
+#usr/share/terminfo/z/ztx11
+##
+## vim-6.3
+##
+#root/.vimrc
+#usr/bin/ex
+#usr/bin/rview
+#usr/bin/rvim
+usr/bin/vi
+#usr/bin/view
+usr/bin/vim
+#usr/bin/vimtutor
+#usr/bin/xxd
+#usr/share/man/man1/evim.1
+#usr/share/man/man1/ex.1
+#usr/share/man/man1/rview.1
+#usr/share/man/man1/rvim.1
+#usr/share/man/man1/view.1
+#usr/share/man/man1/vim.1
+#usr/share/man/man1/vimdiff.1
+#usr/share/man/man1/vimtutor.1
+#usr/share/man/man1/xxd.1
+#usr/share/vim
+#usr/share/vim/vim63
+#usr/share/vim/vim63/bugreport.vim
+#usr/share/vim/vim63/colors
+#usr/share/vim/vim63/colors/README.txt
+#usr/share/vim/vim63/colors/blue.vim
+#usr/share/vim/vim63/colors/darkblue.vim
+#usr/share/vim/vim63/colors/default.vim
+#usr/share/vim/vim63/colors/delek.vim
+#usr/share/vim/vim63/colors/desert.vim
+#usr/share/vim/vim63/colors/elflord.vim
+#usr/share/vim/vim63/colors/evening.vim
+#usr/share/vim/vim63/colors/koehler.vim
+#usr/share/vim/vim63/colors/morning.vim
+#usr/share/vim/vim63/colors/murphy.vim
+#usr/share/vim/vim63/colors/pablo.vim
+#usr/share/vim/vim63/colors/peachpuff.vim
+#usr/share/vim/vim63/colors/ron.vim
+#usr/share/vim/vim63/colors/shine.vim
+#usr/share/vim/vim63/colors/torte.vim
+#usr/share/vim/vim63/colors/zellner.vim
+#usr/share/vim/vim63/compiler
+#usr/share/vim/vim63/compiler/README.txt
+#usr/share/vim/vim63/compiler/ant.vim
+#usr/share/vim/vim63/compiler/bcc.vim
+#usr/share/vim/vim63/compiler/bdf.vim
+#usr/share/vim/vim63/compiler/checkstyle.vim
+#usr/share/vim/vim63/compiler/cs.vim
+#usr/share/vim/vim63/compiler/dot.vim
+#usr/share/vim/vim63/compiler/fortran_F.vim
+#usr/share/vim/vim63/compiler/fortran_cv.vim
+#usr/share/vim/vim63/compiler/fortran_elf90.vim
+#usr/share/vim/vim63/compiler/fortran_g77.vim
+#usr/share/vim/vim63/compiler/fortran_lf95.vim
+#usr/share/vim/vim63/compiler/hp_acc.vim
+#usr/share/vim/vim63/compiler/icc.vim
+#usr/share/vim/vim63/compiler/intel.vim
+#usr/share/vim/vim63/compiler/irix5_c.vim
+#usr/share/vim/vim63/compiler/irix5_cpp.vim
+#usr/share/vim/vim63/compiler/javac.vim
+#usr/share/vim/vim63/compiler/jikes.vim
+#usr/share/vim/vim63/compiler/mips_c.vim
+#usr/share/vim/vim63/compiler/mipspro_c89.vim
+#usr/share/vim/vim63/compiler/mipspro_cpp.vim
+#usr/share/vim/vim63/compiler/modelsim_vcom.vim
+#usr/share/vim/vim63/compiler/msvc.vim
+#usr/share/vim/vim63/compiler/neato.vim
+#usr/share/vim/vim63/compiler/onsgmls.vim
+#usr/share/vim/vim63/compiler/pbx.vim
+#usr/share/vim/vim63/compiler/perl.vim
+#usr/share/vim/vim63/compiler/pyunit.vim
+#usr/share/vim/vim63/compiler/rst.vim
+#usr/share/vim/vim63/compiler/ruby.vim
+#usr/share/vim/vim63/compiler/se.vim
+#usr/share/vim/vim63/compiler/splint.vim
+#usr/share/vim/vim63/compiler/tcl.vim
+#usr/share/vim/vim63/compiler/tex.vim
+#usr/share/vim/vim63/compiler/tidy.vim
+#usr/share/vim/vim63/compiler/xmllint.vim
+#usr/share/vim/vim63/compiler/xmlwf.vim
+#usr/share/vim/vim63/delmenu.vim
+#usr/share/vim/vim63/doc
+#usr/share/vim/vim63/doc/arabic.txt
+#usr/share/vim/vim63/doc/autocmd.txt
+#usr/share/vim/vim63/doc/change.txt
+#usr/share/vim/vim63/doc/cmdline.txt
+#usr/share/vim/vim63/doc/debugger.txt
+#usr/share/vim/vim63/doc/develop.txt
+#usr/share/vim/vim63/doc/diff.txt
+#usr/share/vim/vim63/doc/digraph.txt
+#usr/share/vim/vim63/doc/editing.txt
+#usr/share/vim/vim63/doc/eval.txt
+#usr/share/vim/vim63/doc/farsi.txt
+#usr/share/vim/vim63/doc/filetype.txt
+#usr/share/vim/vim63/doc/fold.txt
+#usr/share/vim/vim63/doc/gui.txt
+#usr/share/vim/vim63/doc/gui_w16.txt
+#usr/share/vim/vim63/doc/gui_w32.txt
+#usr/share/vim/vim63/doc/gui_x11.txt
+#usr/share/vim/vim63/doc/hangulin.txt
+#usr/share/vim/vim63/doc/hebrew.txt
+#usr/share/vim/vim63/doc/help.txt
+#usr/share/vim/vim63/doc/howto.txt
+#usr/share/vim/vim63/doc/if_cscop.txt
+#usr/share/vim/vim63/doc/if_ole.txt
+#usr/share/vim/vim63/doc/if_perl.txt
+#usr/share/vim/vim63/doc/if_pyth.txt
+#usr/share/vim/vim63/doc/if_ruby.txt
+#usr/share/vim/vim63/doc/if_sniff.txt
+#usr/share/vim/vim63/doc/if_tcl.txt
+#usr/share/vim/vim63/doc/indent.txt
+#usr/share/vim/vim63/doc/index.txt
+#usr/share/vim/vim63/doc/insert.txt
+#usr/share/vim/vim63/doc/intro.txt
+#usr/share/vim/vim63/doc/map.txt
+#usr/share/vim/vim63/doc/mbyte.txt
+#usr/share/vim/vim63/doc/message.txt
+#usr/share/vim/vim63/doc/mlang.txt
+#usr/share/vim/vim63/doc/motion.txt
+#usr/share/vim/vim63/doc/netbeans.txt
+#usr/share/vim/vim63/doc/options.txt
+#usr/share/vim/vim63/doc/os_390.txt
+#usr/share/vim/vim63/doc/os_amiga.txt
+#usr/share/vim/vim63/doc/os_beos.txt
+#usr/share/vim/vim63/doc/os_dos.txt
+#usr/share/vim/vim63/doc/os_mac.txt
+#usr/share/vim/vim63/doc/os_mint.txt
+#usr/share/vim/vim63/doc/os_msdos.txt
+#usr/share/vim/vim63/doc/os_os2.txt
+#usr/share/vim/vim63/doc/os_qnx.txt
+#usr/share/vim/vim63/doc/os_risc.txt
+#usr/share/vim/vim63/doc/os_unix.txt
+#usr/share/vim/vim63/doc/os_vms.txt
+#usr/share/vim/vim63/doc/os_win32.txt
+#usr/share/vim/vim63/doc/pattern.txt
+#usr/share/vim/vim63/doc/pi_expl.txt
+#usr/share/vim/vim63/doc/pi_gzip.txt
+#usr/share/vim/vim63/doc/pi_netrw.txt
+#usr/share/vim/vim63/doc/pi_spec.txt
+#usr/share/vim/vim63/doc/quickfix.txt
+#usr/share/vim/vim63/doc/quickref.txt
+#usr/share/vim/vim63/doc/quotes.txt
+#usr/share/vim/vim63/doc/recover.txt
+#usr/share/vim/vim63/doc/remote.txt
+#usr/share/vim/vim63/doc/repeat.txt
+#usr/share/vim/vim63/doc/rileft.txt
+#usr/share/vim/vim63/doc/russian.txt
+#usr/share/vim/vim63/doc/scroll.txt
+#usr/share/vim/vim63/doc/sign.txt
+#usr/share/vim/vim63/doc/sponsor.txt
+#usr/share/vim/vim63/doc/starting.txt
+#usr/share/vim/vim63/doc/syntax.txt
+#usr/share/vim/vim63/doc/tags
+#usr/share/vim/vim63/doc/tagsrch.txt
+#usr/share/vim/vim63/doc/term.txt
+#usr/share/vim/vim63/doc/tips.txt
+#usr/share/vim/vim63/doc/todo.txt
+#usr/share/vim/vim63/doc/uganda.txt
+#usr/share/vim/vim63/doc/undo.txt
+#usr/share/vim/vim63/doc/usr_01.txt
+#usr/share/vim/vim63/doc/usr_02.txt
+#usr/share/vim/vim63/doc/usr_03.txt
+#usr/share/vim/vim63/doc/usr_04.txt
+#usr/share/vim/vim63/doc/usr_05.txt
+#usr/share/vim/vim63/doc/usr_06.txt
+#usr/share/vim/vim63/doc/usr_07.txt
+#usr/share/vim/vim63/doc/usr_08.txt
+#usr/share/vim/vim63/doc/usr_09.txt
+#usr/share/vim/vim63/doc/usr_10.txt
+#usr/share/vim/vim63/doc/usr_11.txt
+#usr/share/vim/vim63/doc/usr_12.txt
+#usr/share/vim/vim63/doc/usr_20.txt
+#usr/share/vim/vim63/doc/usr_21.txt
+#usr/share/vim/vim63/doc/usr_22.txt
+#usr/share/vim/vim63/doc/usr_23.txt
+#usr/share/vim/vim63/doc/usr_24.txt
+#usr/share/vim/vim63/doc/usr_25.txt
+#usr/share/vim/vim63/doc/usr_26.txt
+#usr/share/vim/vim63/doc/usr_27.txt
+#usr/share/vim/vim63/doc/usr_28.txt
+#usr/share/vim/vim63/doc/usr_29.txt
+#usr/share/vim/vim63/doc/usr_30.txt
+#usr/share/vim/vim63/doc/usr_31.txt
+#usr/share/vim/vim63/doc/usr_40.txt
+#usr/share/vim/vim63/doc/usr_41.txt
+#usr/share/vim/vim63/doc/usr_42.txt
+#usr/share/vim/vim63/doc/usr_43.txt
+#usr/share/vim/vim63/doc/usr_44.txt
+#usr/share/vim/vim63/doc/usr_45.txt
+#usr/share/vim/vim63/doc/usr_90.txt
+#usr/share/vim/vim63/doc/usr_toc.txt
+#usr/share/vim/vim63/doc/various.txt
+#usr/share/vim/vim63/doc/version4.txt
+#usr/share/vim/vim63/doc/version5.txt
+#usr/share/vim/vim63/doc/version6.txt
+#usr/share/vim/vim63/doc/vi_diff.txt
+#usr/share/vim/vim63/doc/vim2html.pl
+#usr/share/vim/vim63/doc/visual.txt
+#usr/share/vim/vim63/doc/windows.txt
+#usr/share/vim/vim63/doc/workshop.txt
+#usr/share/vim/vim63/evim.vim
+#usr/share/vim/vim63/filetype.vim
+#usr/share/vim/vim63/ftoff.vim
+#usr/share/vim/vim63/ftplugin
+#usr/share/vim/vim63/ftplugin.vim
+#usr/share/vim/vim63/ftplugin/README.txt
+#usr/share/vim/vim63/ftplugin/aap.vim
+#usr/share/vim/vim63/ftplugin/abaqus.vim
+#usr/share/vim/vim63/ftplugin/ada.vim
+#usr/share/vim/vim63/ftplugin/ant.vim
+#usr/share/vim/vim63/ftplugin/art.vim
+#usr/share/vim/vim63/ftplugin/aspvbs.vim
+#usr/share/vim/vim63/ftplugin/automake.vim
+#usr/share/vim/vim63/ftplugin/bib.vim
+#usr/share/vim/vim63/ftplugin/c.vim
+#usr/share/vim/vim63/ftplugin/ch.vim
+#usr/share/vim/vim63/ftplugin/changelog.vim
+#usr/share/vim/vim63/ftplugin/config.vim
+#usr/share/vim/vim63/ftplugin/cpp.vim
+#usr/share/vim/vim63/ftplugin/cs.vim
+#usr/share/vim/vim63/ftplugin/csc.vim
+#usr/share/vim/vim63/ftplugin/csh.vim
+#usr/share/vim/vim63/ftplugin/css.vim
+#usr/share/vim/vim63/ftplugin/debchangelog.vim
+#usr/share/vim/vim63/ftplugin/dosbatch.vim
+#usr/share/vim/vim63/ftplugin/dtd.vim
+#usr/share/vim/vim63/ftplugin/fortran.vim
+#usr/share/vim/vim63/ftplugin/html.vim
+#usr/share/vim/vim63/ftplugin/ishd.vim
+#usr/share/vim/vim63/ftplugin/java.vim
+#usr/share/vim/vim63/ftplugin/jsp.vim
+#usr/share/vim/vim63/ftplugin/kwt.vim
+#usr/share/vim/vim63/ftplugin/lisp.vim
+#usr/share/vim/vim63/ftplugin/lprolog.vim
+#usr/share/vim/vim63/ftplugin/lua.vim
+#usr/share/vim/vim63/ftplugin/mail.vim
+#usr/share/vim/vim63/ftplugin/make.vim
+#usr/share/vim/vim63/ftplugin/man.vim
+#usr/share/vim/vim63/ftplugin/mf.vim
+#usr/share/vim/vim63/ftplugin/mp.vim
+#usr/share/vim/vim63/ftplugin/objc.vim
+#usr/share/vim/vim63/ftplugin/ocaml.vim
+#usr/share/vim/vim63/ftplugin/occam.vim
+#usr/share/vim/vim63/ftplugin/pascal.vim
+#usr/share/vim/vim63/ftplugin/perl.vim
+#usr/share/vim/vim63/ftplugin/php.vim
+#usr/share/vim/vim63/ftplugin/postscr.vim
+#usr/share/vim/vim63/ftplugin/pyrex.vim
+#usr/share/vim/vim63/ftplugin/python.vim
+#usr/share/vim/vim63/ftplugin/rpl.vim
+#usr/share/vim/vim63/ftplugin/rst.vim
+#usr/share/vim/vim63/ftplugin/ruby.vim
+#usr/share/vim/vim63/ftplugin/scheme.vim
+#usr/share/vim/vim63/ftplugin/sgml.vim
+#usr/share/vim/vim63/ftplugin/sh.vim
+#usr/share/vim/vim63/ftplugin/spec.vim
+#usr/share/vim/vim63/ftplugin/sql.vim
+#usr/share/vim/vim63/ftplugin/svg.vim
+#usr/share/vim/vim63/ftplugin/tcsh.vim
+#usr/share/vim/vim63/ftplugin/tex.vim
+#usr/share/vim/vim63/ftplugin/vb.vim
+#usr/share/vim/vim63/ftplugin/verilog.vim
+#usr/share/vim/vim63/ftplugin/vim.vim
+#usr/share/vim/vim63/ftplugin/xhtml.vim
+#usr/share/vim/vim63/ftplugin/xml.vim
+#usr/share/vim/vim63/ftplugin/xs.vim
+#usr/share/vim/vim63/ftplugin/xsd.vim
+#usr/share/vim/vim63/ftplugin/xslt.vim
+#usr/share/vim/vim63/ftplugof.vim
+#usr/share/vim/vim63/gvimrc_example.vim
+#usr/share/vim/vim63/indent
+#usr/share/vim/vim63/indent.vim
+#usr/share/vim/vim63/indent/README.txt
+#usr/share/vim/vim63/indent/aap.vim
+#usr/share/vim/vim63/indent/ada.vim
+#usr/share/vim/vim63/indent/ant.vim
+#usr/share/vim/vim63/indent/automake.vim
+#usr/share/vim/vim63/indent/awk.vim
+#usr/share/vim/vim63/indent/c.vim
+#usr/share/vim/vim63/indent/cdl.vim
+#usr/share/vim/vim63/indent/ch.vim
+#usr/share/vim/vim63/indent/config.vim
+#usr/share/vim/vim63/indent/cpp.vim
+#usr/share/vim/vim63/indent/cs.vim
+#usr/share/vim/vim63/indent/css.vim
+#usr/share/vim/vim63/indent/docbk.vim
+#usr/share/vim/vim63/indent/dylan.vim
+#usr/share/vim/vim63/indent/eiffel.vim
+#usr/share/vim/vim63/indent/eterm.vim
+#usr/share/vim/vim63/indent/fortran.vim
+#usr/share/vim/vim63/indent/html.vim
+#usr/share/vim/vim63/indent/idlang.vim
+#usr/share/vim/vim63/indent/ishd.vim
+#usr/share/vim/vim63/indent/java.vim
+#usr/share/vim/vim63/indent/lua.vim
+#usr/share/vim/vim63/indent/make.vim
+#usr/share/vim/vim63/indent/matlab.vim
+#usr/share/vim/vim63/indent/mp.vim
+#usr/share/vim/vim63/indent/objc.vim
+#usr/share/vim/vim63/indent/ocaml.vim
+#usr/share/vim/vim63/indent/occam.vim
+#usr/share/vim/vim63/indent/perl.vim
+#usr/share/vim/vim63/indent/php.vim
+#usr/share/vim/vim63/indent/postscr.vim
+#usr/share/vim/vim63/indent/pov.vim
+#usr/share/vim/vim63/indent/prolog.vim
+#usr/share/vim/vim63/indent/pyrex.vim
+#usr/share/vim/vim63/indent/python.vim
+#usr/share/vim/vim63/indent/readline.vim
+#usr/share/vim/vim63/indent/rpl.vim
+#usr/share/vim/vim63/indent/rst.vim
+#usr/share/vim/vim63/indent/ruby.vim
+#usr/share/vim/vim63/indent/sdl.vim
+#usr/share/vim/vim63/indent/sh.vim
+#usr/share/vim/vim63/indent/tcl.vim
+#usr/share/vim/vim63/indent/tcsh.vim
+#usr/share/vim/vim63/indent/tilde.vim
+#usr/share/vim/vim63/indent/vb.vim
+#usr/share/vim/vim63/indent/verilog.vim
+#usr/share/vim/vim63/indent/vim.vim
+#usr/share/vim/vim63/indent/xf86conf.vim
+#usr/share/vim/vim63/indent/xhtml.vim
+#usr/share/vim/vim63/indent/xml.vim
+#usr/share/vim/vim63/indent/xslt.vim
+#usr/share/vim/vim63/indent/yacc.vim
+#usr/share/vim/vim63/indent/zsh.vim
+#usr/share/vim/vim63/indoff.vim
+#usr/share/vim/vim63/keymap
+#usr/share/vim/vim63/keymap/README.txt
+#usr/share/vim/vim63/keymap/accents.vim
+#usr/share/vim/vim63/keymap/arabic.vim
+#usr/share/vim/vim63/keymap/arabic_utf-8.vim
+#usr/share/vim/vim63/keymap/czech.vim
+#usr/share/vim/vim63/keymap/czech_utf-8.vim
+#usr/share/vim/vim63/keymap/esperanto.vim
+#usr/share/vim/vim63/keymap/esperanto_utf-8.vim
+#usr/share/vim/vim63/keymap/greek.vim
+#usr/share/vim/vim63/keymap/greek_cp1253.vim
+#usr/share/vim/vim63/keymap/greek_iso-8859-7.vim
+#usr/share/vim/vim63/keymap/greek_utf-8.vim
+#usr/share/vim/vim63/keymap/hebrew.vim
+#usr/share/vim/vim63/keymap/hebrew_cp1255.vim
+#usr/share/vim/vim63/keymap/hebrew_iso-8859-8.vim
+#usr/share/vim/vim63/keymap/hebrew_utf-8.vim
+#usr/share/vim/vim63/keymap/hebrewp.vim
+#usr/share/vim/vim63/keymap/hebrewp_cp1255.vim
+#usr/share/vim/vim63/keymap/hebrewp_iso-8859-8.vim
+#usr/share/vim/vim63/keymap/hebrewp_utf-8.vim
+#usr/share/vim/vim63/keymap/lithuanian-baltic.vim
+#usr/share/vim/vim63/keymap/magyar_utf-8.vim
+#usr/share/vim/vim63/keymap/persian-iranian_utf-8.vim
+#usr/share/vim/vim63/keymap/persian.vim
+#usr/share/vim/vim63/keymap/pinyin.vim
+#usr/share/vim/vim63/keymap/russian-jcuken.vim
+#usr/share/vim/vim63/keymap/russian-jcukenwin.vim
+#usr/share/vim/vim63/keymap/russian-yawerty.vim
+#usr/share/vim/vim63/keymap/serbian-latin.vim
+#usr/share/vim/vim63/keymap/serbian-latin_utf-8.vim
+#usr/share/vim/vim63/keymap/serbian.vim
+#usr/share/vim/vim63/keymap/serbian_cp1250.vim
+#usr/share/vim/vim63/keymap/serbian_cp1251.vim
+#usr/share/vim/vim63/keymap/serbian_iso-8859-2.vim
+#usr/share/vim/vim63/keymap/serbian_iso-8859-5.vim
+#usr/share/vim/vim63/keymap/serbian_utf-8.vim
+#usr/share/vim/vim63/keymap/slovak.vim
+#usr/share/vim/vim63/keymap/slovak_cp1250.vim
+#usr/share/vim/vim63/keymap/slovak_iso-8859-2.vim
+#usr/share/vim/vim63/keymap/slovak_utf-8.vim
+#usr/share/vim/vim63/lang
+#usr/share/vim/vim63/lang/README.txt
+#usr/share/vim/vim63/lang/menu_af.latin1.vim
+#usr/share/vim/vim63/lang/menu_af.utf-8.vim
+#usr/share/vim/vim63/lang/menu_af_af.latin1.vim
+#usr/share/vim/vim63/lang/menu_af_af.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ca.latin1.vim
+#usr/share/vim/vim63/lang/menu_ca.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ca_es.latin1.vim
+#usr/share/vim/vim63/lang/menu_ca_es.utf-8.vim
+#usr/share/vim/vim63/lang/menu_chinese(gb)_gb.936.vim
+#usr/share/vim/vim63/lang/menu_chinese(taiwan)_taiwan.950.vim
+#usr/share/vim/vim63/lang/menu_chinese_gb.936.vim
+#usr/share/vim/vim63/lang/menu_chinese_taiwan.950.vim
+#usr/share/vim/vim63/lang/menu_cs.cp1250.vim
+#usr/share/vim/vim63/lang/menu_cs.latin1.vim
+#usr/share/vim/vim63/lang/menu_cs_cz.cp1250.vim
+#usr/share/vim/vim63/lang/menu_cs_cz.iso_8859-2.vim
+#usr/share/vim/vim63/lang/menu_cs_cz.latin1.vim
+#usr/share/vim/vim63/lang/menu_czech_czech_republic.1250.vim
+#usr/share/vim/vim63/lang/menu_czech_czech_republic.1252.vim
+#usr/share/vim/vim63/lang/menu_czech_czech_republic.ascii.vim
+#usr/share/vim/vim63/lang/menu_de.latin1.vim
+#usr/share/vim/vim63/lang/menu_de.utf-8.vim
+#usr/share/vim/vim63/lang/menu_de_de.latin1.vim
+#usr/share/vim/vim63/lang/menu_de_de.utf-8.vim
+#usr/share/vim/vim63/lang/menu_en_gb.latin1.vim
+#usr/share/vim/vim63/lang/menu_en_gb.utf-8.vim
+#usr/share/vim/vim63/lang/menu_english_united_kingdom.1252.vim
+#usr/share/vim/vim63/lang/menu_english_united_kingdom.ascii.vim
+#usr/share/vim/vim63/lang/menu_es.latin1.vim
+#usr/share/vim/vim63/lang/menu_es.utf-8.vim
+#usr/share/vim/vim63/lang/menu_es_es.latin1.vim
+#usr/share/vim/vim63/lang/menu_es_es.utf-8.vim
+#usr/share/vim/vim63/lang/menu_fr.latin1.vim
+#usr/share/vim/vim63/lang/menu_fr.utf-8.vim
+#usr/share/vim/vim63/lang/menu_fr_fr.latin1.vim
+#usr/share/vim/vim63/lang/menu_fr_fr.utf-8.vim
+#usr/share/vim/vim63/lang/menu_french_france.1252.vim
+#usr/share/vim/vim63/lang/menu_german_germany.1252.vim
+#usr/share/vim/vim63/lang/menu_hu_hu.iso_8859-2.vim
+#usr/share/vim/vim63/lang/menu_it.latin1.vim
+#usr/share/vim/vim63/lang/menu_it.utf-8.vim
+#usr/share/vim/vim63/lang/menu_it_it.latin1.vim
+#usr/share/vim/vim63/lang/menu_it_it.utf-8.vim
+#usr/share/vim/vim63/lang/menu_italian_italy.1252.vim
+#usr/share/vim/vim63/lang/menu_ja.cp932.vim
+#usr/share/vim/vim63/lang/menu_ja.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ja_jp.cp932.vim
+#usr/share/vim/vim63/lang/menu_ja_jp.euc-jp.vim
+#usr/share/vim/vim63/lang/menu_ja_jp.eucjp.vim
+#usr/share/vim/vim63/lang/menu_ja_jp.ujis.vim
+#usr/share/vim/vim63/lang/menu_ja_jp.utf-8.vim
+#usr/share/vim/vim63/lang/menu_japanese_japan.932.vim
+#usr/share/vim/vim63/lang/menu_ko.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ko_kr.euckr.vim
+#usr/share/vim/vim63/lang/menu_ko_kr.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ko_kr.vim
+#usr/share/vim/vim63/lang/menu_nl.latin1.vim
+#usr/share/vim/vim63/lang/menu_nl.utf-8.vim
+#usr/share/vim/vim63/lang/menu_nl_nl.latin1.vim
+#usr/share/vim/vim63/lang/menu_nl_nl.utf-8.vim
+#usr/share/vim/vim63/lang/menu_no.latin1.vim
+#usr/share/vim/vim63/lang/menu_no.utf-8.vim
+#usr/share/vim/vim63/lang/menu_no_no.latin1.vim
+#usr/share/vim/vim63/lang/menu_no_no.utf-8.vim
+#usr/share/vim/vim63/lang/menu_pl.cp1250.vim
+#usr/share/vim/vim63/lang/menu_pl_pl.cp1250.vim
+#usr/share/vim/vim63/lang/menu_pl_pl.iso_8859-2.vim
+#usr/share/vim/vim63/lang/menu_polish_poland.1250.vim
+#usr/share/vim/vim63/lang/menu_pt_br.latin1.vim
+#usr/share/vim/vim63/lang/menu_pt_br.utf-8.vim
+#usr/share/vim/vim63/lang/menu_pt_br.vim
+#usr/share/vim/vim63/lang/menu_pt_pt.latin1.vim
+#usr/share/vim/vim63/lang/menu_pt_pt.utf-8.vim
+#usr/share/vim/vim63/lang/menu_pt_pt.vim
+#usr/share/vim/vim63/lang/menu_ru.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ru_ru.koi8-r.vim
+#usr/share/vim/vim63/lang/menu_ru_ru.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ru_ru.vim
+#usr/share/vim/vim63/lang/menu_sk.cp1250.vim
+#usr/share/vim/vim63/lang/menu_sk_sk.1250.vim
+#usr/share/vim/vim63/lang/menu_sk_sk.cp1250.vim
+#usr/share/vim/vim63/lang/menu_sk_sk.iso_8859-2.vim
+#usr/share/vim/vim63/lang/menu_sk_sk.vim
+#usr/share/vim/vim63/lang/menu_slovak_slovak_republic.1250.vim
+#usr/share/vim/vim63/lang/menu_spanish_spain.850.vim
+#usr/share/vim/vim63/lang/menu_sr.utf-8.vim
+#usr/share/vim/vim63/lang/menu_sr_yu.ascii.vim
+#usr/share/vim/vim63/lang/menu_sr_yu.iso_8859-2.vim
+#usr/share/vim/vim63/lang/menu_sr_yu.iso_8859-5.vim
+#usr/share/vim/vim63/lang/menu_sr_yu.utf-8.vim
+#usr/share/vim/vim63/lang/menu_sv.latin1.vim
+#usr/share/vim/vim63/lang/menu_sv.utf-8.vim
+#usr/share/vim/vim63/lang/menu_sv_se.latin1.vim
+#usr/share/vim/vim63/lang/menu_sv_se.utf-8.vim
+#usr/share/vim/vim63/lang/menu_uk_ua.koi8-u.vim
+#usr/share/vim/vim63/lang/menu_zh.big5.vim
+#usr/share/vim/vim63/lang/menu_zh.cp936.vim
+#usr/share/vim/vim63/lang/menu_zh.cp950.vim
+#usr/share/vim/vim63/lang/menu_zh.gb2312.vim
+#usr/share/vim/vim63/lang/menu_zh_cn.18030.vim
+#usr/share/vim/vim63/lang/menu_zh_cn.cp936.vim
+#usr/share/vim/vim63/lang/menu_zh_cn.gb2312.vim
+#usr/share/vim/vim63/lang/menu_zh_cn.gbk.vim
+#usr/share/vim/vim63/lang/menu_zh_cn.utf-8.vim
+#usr/share/vim/vim63/lang/menu_zh_tw.big5.vim
+#usr/share/vim/vim63/lang/menu_zh_tw.cp950.vim
+#usr/share/vim/vim63/lang/menu_zh_tw.utf-8.vim
+#usr/share/vim/vim63/macros
+#usr/share/vim/vim63/macros/README.txt
+#usr/share/vim/vim63/macros/dvorak
+#usr/share/vim/vim63/macros/hanoi
+#usr/share/vim/vim63/macros/hanoi/click.me
+#usr/share/vim/vim63/macros/hanoi/hanoi.vim
+#usr/share/vim/vim63/macros/hanoi/poster
+#usr/share/vim/vim63/macros/justify.vim
+#usr/share/vim/vim63/macros/less.sh
+#usr/share/vim/vim63/macros/less.vim
+#usr/share/vim/vim63/macros/life
+#usr/share/vim/vim63/macros/life/click.me
+#usr/share/vim/vim63/macros/life/life.vim
+#usr/share/vim/vim63/macros/matchit.txt
+#usr/share/vim/vim63/macros/matchit.vim
+#usr/share/vim/vim63/macros/maze
+#usr/share/vim/vim63/macros/maze/Makefile
+#usr/share/vim/vim63/macros/maze/README.txt
+#usr/share/vim/vim63/macros/maze/main.aap
+#usr/share/vim/vim63/macros/maze/maze.c
+#usr/share/vim/vim63/macros/maze/maze_5.78
+#usr/share/vim/vim63/macros/maze/maze_mac
+#usr/share/vim/vim63/macros/maze/mazeansi.c
+#usr/share/vim/vim63/macros/maze/mazeclean.c
+#usr/share/vim/vim63/macros/maze/poster
+#usr/share/vim/vim63/macros/shellmenu.vim
+#usr/share/vim/vim63/macros/swapmous.vim
+#usr/share/vim/vim63/macros/urm
+#usr/share/vim/vim63/macros/urm/README.txt
+#usr/share/vim/vim63/macros/urm/examples
+#usr/share/vim/vim63/macros/urm/urm
+#usr/share/vim/vim63/macros/urm/urm.vim
+#usr/share/vim/vim63/menu.vim
+#usr/share/vim/vim63/mswin.vim
+#usr/share/vim/vim63/optwin.vim
+#usr/share/vim/vim63/plugin
+#usr/share/vim/vim63/plugin/README.txt
+#usr/share/vim/vim63/plugin/explorer.vim
+#usr/share/vim/vim63/plugin/gzip.vim
+#usr/share/vim/vim63/plugin/netrw.vim
+#usr/share/vim/vim63/plugin/rrhelper.vim
+#usr/share/vim/vim63/plugin/tohtml.vim
+#usr/share/vim/vim63/print
+#usr/share/vim/vim63/print/cp1250.ps
+#usr/share/vim/vim63/print/cp1251.ps
+#usr/share/vim/vim63/print/cp1252.ps
+#usr/share/vim/vim63/print/cp1253.ps
+#usr/share/vim/vim63/print/cp1254.ps
+#usr/share/vim/vim63/print/cp1255.ps
+#usr/share/vim/vim63/print/cp1257.ps
+#usr/share/vim/vim63/print/dec-mcs.ps
+#usr/share/vim/vim63/print/ebcdic-uk.ps
+#usr/share/vim/vim63/print/hp-roman8.ps
+#usr/share/vim/vim63/print/iso-8859-10.ps
+#usr/share/vim/vim63/print/iso-8859-11.ps
+#usr/share/vim/vim63/print/iso-8859-13.ps
+#usr/share/vim/vim63/print/iso-8859-14.ps
+#usr/share/vim/vim63/print/iso-8859-15.ps
+#usr/share/vim/vim63/print/iso-8859-2.ps
+#usr/share/vim/vim63/print/iso-8859-3.ps
+#usr/share/vim/vim63/print/iso-8859-4.ps
+#usr/share/vim/vim63/print/iso-8859-5.ps
+#usr/share/vim/vim63/print/iso-8859-7.ps
+#usr/share/vim/vim63/print/iso-8859-8.ps
+#usr/share/vim/vim63/print/iso-8859-9.ps
+#usr/share/vim/vim63/print/koi8-r.ps
+#usr/share/vim/vim63/print/koi8-u.ps
+#usr/share/vim/vim63/print/latin1.ps
+#usr/share/vim/vim63/print/mac-roman.ps
+#usr/share/vim/vim63/print/prolog.ps
+#usr/share/vim/vim63/scripts.vim
+#usr/share/vim/vim63/synmenu.vim
+#usr/share/vim/vim63/syntax
+#usr/share/vim/vim63/syntax/2html.vim
+#usr/share/vim/vim63/syntax/README.txt
+#usr/share/vim/vim63/syntax/a65.vim
+#usr/share/vim/vim63/syntax/aap.vim
+#usr/share/vim/vim63/syntax/abaqus.vim
+#usr/share/vim/vim63/syntax/abc.vim
+#usr/share/vim/vim63/syntax/abel.vim
+#usr/share/vim/vim63/syntax/acedb.vim
+#usr/share/vim/vim63/syntax/ada.vim
+#usr/share/vim/vim63/syntax/aflex.vim
+#usr/share/vim/vim63/syntax/ahdl.vim
+#usr/share/vim/vim63/syntax/amiga.vim
+#usr/share/vim/vim63/syntax/aml.vim
+#usr/share/vim/vim63/syntax/ampl.vim
+#usr/share/vim/vim63/syntax/ant.vim
+#usr/share/vim/vim63/syntax/antlr.vim
+#usr/share/vim/vim63/syntax/apache.vim
+#usr/share/vim/vim63/syntax/apachestyle.vim
+#usr/share/vim/vim63/syntax/arch.vim
+#usr/share/vim/vim63/syntax/art.vim
+#usr/share/vim/vim63/syntax/asm.vim
+#usr/share/vim/vim63/syntax/asm68k.vim
+#usr/share/vim/vim63/syntax/asmh8300.vim
+#usr/share/vim/vim63/syntax/asn.vim
+#usr/share/vim/vim63/syntax/aspperl.vim
+#usr/share/vim/vim63/syntax/aspvbs.vim
+#usr/share/vim/vim63/syntax/atlas.vim
+#usr/share/vim/vim63/syntax/automake.vim
+#usr/share/vim/vim63/syntax/ave.vim
+#usr/share/vim/vim63/syntax/awk.vim
+#usr/share/vim/vim63/syntax/ayacc.vim
+#usr/share/vim/vim63/syntax/b.vim
+#usr/share/vim/vim63/syntax/baan.vim
+#usr/share/vim/vim63/syntax/basic.vim
+#usr/share/vim/vim63/syntax/bc.vim
+#usr/share/vim/vim63/syntax/bdf.vim
+#usr/share/vim/vim63/syntax/bib.vim
+#usr/share/vim/vim63/syntax/bindzone.vim
+#usr/share/vim/vim63/syntax/blank.vim
+#usr/share/vim/vim63/syntax/btm.vim
+#usr/share/vim/vim63/syntax/c.vim
+#usr/share/vim/vim63/syntax/calendar.vim
+#usr/share/vim/vim63/syntax/catalog.vim
+#usr/share/vim/vim63/syntax/cdl.vim
+#usr/share/vim/vim63/syntax/cf.vim
+#usr/share/vim/vim63/syntax/cfg.vim
+#usr/share/vim/vim63/syntax/ch.vim
+#usr/share/vim/vim63/syntax/change.vim
+#usr/share/vim/vim63/syntax/changelog.vim
+#usr/share/vim/vim63/syntax/chaskell.vim
+#usr/share/vim/vim63/syntax/cheetah.vim
+#usr/share/vim/vim63/syntax/chill.vim
+#usr/share/vim/vim63/syntax/cl.vim
+#usr/share/vim/vim63/syntax/clean.vim
+#usr/share/vim/vim63/syntax/clipper.vim
+#usr/share/vim/vim63/syntax/cobol.vim
+#usr/share/vim/vim63/syntax/colortest.vim
+#usr/share/vim/vim63/syntax/conf.vim
+#usr/share/vim/vim63/syntax/config.vim
+#usr/share/vim/vim63/syntax/cpp.vim
+#usr/share/vim/vim63/syntax/crm.vim
+#usr/share/vim/vim63/syntax/crontab.vim
+#usr/share/vim/vim63/syntax/cs.vim
+#usr/share/vim/vim63/syntax/csc.vim
+#usr/share/vim/vim63/syntax/csh.vim
+#usr/share/vim/vim63/syntax/csp.vim
+#usr/share/vim/vim63/syntax/css.vim
+#usr/share/vim/vim63/syntax/cterm.vim
+#usr/share/vim/vim63/syntax/ctrlh.vim
+#usr/share/vim/vim63/syntax/cupl.vim
+#usr/share/vim/vim63/syntax/cuplsim.vim
+#usr/share/vim/vim63/syntax/cvs.vim
+#usr/share/vim/vim63/syntax/cvsrc.vim
+#usr/share/vim/vim63/syntax/cweb.vim
+#usr/share/vim/vim63/syntax/cynlib.vim
+#usr/share/vim/vim63/syntax/cynpp.vim
+#usr/share/vim/vim63/syntax/d.vim
+#usr/share/vim/vim63/syntax/dcd.vim
+#usr/share/vim/vim63/syntax/dcl.vim
+#usr/share/vim/vim63/syntax/debchangelog.vim
+#usr/share/vim/vim63/syntax/debcontrol.vim
+#usr/share/vim/vim63/syntax/def.vim
+#usr/share/vim/vim63/syntax/desc.vim
+#usr/share/vim/vim63/syntax/desktop.vim
+#usr/share/vim/vim63/syntax/diff.vim
+#usr/share/vim/vim63/syntax/dircolors.vim
+#usr/share/vim/vim63/syntax/diva.vim
+#usr/share/vim/vim63/syntax/dns.vim
+#usr/share/vim/vim63/syntax/docbk.vim
+#usr/share/vim/vim63/syntax/docbksgml.vim
+#usr/share/vim/vim63/syntax/docbkxml.vim
+#usr/share/vim/vim63/syntax/dosbatch.vim
+#usr/share/vim/vim63/syntax/dosini.vim
+#usr/share/vim/vim63/syntax/dot.vim
+#usr/share/vim/vim63/syntax/dracula.vim
+#usr/share/vim/vim63/syntax/dsl.vim
+#usr/share/vim/vim63/syntax/dtd.vim
+#usr/share/vim/vim63/syntax/dtml.vim
+#usr/share/vim/vim63/syntax/dylan.vim
+#usr/share/vim/vim63/syntax/dylanintr.vim
+#usr/share/vim/vim63/syntax/dylanlid.vim
+#usr/share/vim/vim63/syntax/ecd.vim
+#usr/share/vim/vim63/syntax/edif.vim
+#usr/share/vim/vim63/syntax/eiffel.vim
+#usr/share/vim/vim63/syntax/elf.vim
+#usr/share/vim/vim63/syntax/elinks.vim
+#usr/share/vim/vim63/syntax/elmfilt.vim
+#usr/share/vim/vim63/syntax/erlang.vim
+#usr/share/vim/vim63/syntax/esqlc.vim
+#usr/share/vim/vim63/syntax/eterm.vim
+#usr/share/vim/vim63/syntax/exim.vim
+#usr/share/vim/vim63/syntax/expect.vim
+#usr/share/vim/vim63/syntax/exports.vim
+#usr/share/vim/vim63/syntax/fasm.vim
+#usr/share/vim/vim63/syntax/fdcc.vim
+#usr/share/vim/vim63/syntax/fetchmail.vim
+#usr/share/vim/vim63/syntax/fgl.vim
+#usr/share/vim/vim63/syntax/focexec.vim
+#usr/share/vim/vim63/syntax/form.vim
+#usr/share/vim/vim63/syntax/forth.vim
+#usr/share/vim/vim63/syntax/fortran.vim
+#usr/share/vim/vim63/syntax/foxpro.vim
+#usr/share/vim/vim63/syntax/fstab.vim
+#usr/share/vim/vim63/syntax/fvwm.vim
+#usr/share/vim/vim63/syntax/fvwm2m4.vim
+#usr/share/vim/vim63/syntax/gdb.vim
+#usr/share/vim/vim63/syntax/gdmo.vim
+#usr/share/vim/vim63/syntax/gedcom.vim
+#usr/share/vim/vim63/syntax/gkrellmrc.vim
+#usr/share/vim/vim63/syntax/gnuplot.vim
+#usr/share/vim/vim63/syntax/gp.vim
+#usr/share/vim/vim63/syntax/gpg.vim
+#usr/share/vim/vim63/syntax/grads.vim
+#usr/share/vim/vim63/syntax/groff.vim
+#usr/share/vim/vim63/syntax/grub.vim
+#usr/share/vim/vim63/syntax/gsp.vim
+#usr/share/vim/vim63/syntax/gtkrc.vim
+#usr/share/vim/vim63/syntax/haskell.vim
+#usr/share/vim/vim63/syntax/hb.vim
+#usr/share/vim/vim63/syntax/help.vim
+#usr/share/vim/vim63/syntax/hercules.vim
+#usr/share/vim/vim63/syntax/hex.vim
+#usr/share/vim/vim63/syntax/hitest.vim
+#usr/share/vim/vim63/syntax/hog.vim
+#usr/share/vim/vim63/syntax/html.vim
+#usr/share/vim/vim63/syntax/htmlcheetah.vim
+#usr/share/vim/vim63/syntax/htmlm4.vim
+#usr/share/vim/vim63/syntax/htmlos.vim
+#usr/share/vim/vim63/syntax/ia64.vim
+#usr/share/vim/vim63/syntax/icemenu.vim
+#usr/share/vim/vim63/syntax/icon.vim
+#usr/share/vim/vim63/syntax/idl.vim
+#usr/share/vim/vim63/syntax/idlang.vim
+#usr/share/vim/vim63/syntax/indent.vim
+#usr/share/vim/vim63/syntax/inform.vim
+#usr/share/vim/vim63/syntax/inittab.vim
+#usr/share/vim/vim63/syntax/ipfilter.vim
+#usr/share/vim/vim63/syntax/ishd.vim
+#usr/share/vim/vim63/syntax/iss.vim
+#usr/share/vim/vim63/syntax/ist.vim
+#usr/share/vim/vim63/syntax/jal.vim
+#usr/share/vim/vim63/syntax/jam.vim
+#usr/share/vim/vim63/syntax/jargon.vim
+#usr/share/vim/vim63/syntax/java.vim
+#usr/share/vim/vim63/syntax/javacc.vim
+#usr/share/vim/vim63/syntax/javascript.vim
+#usr/share/vim/vim63/syntax/jess.vim
+#usr/share/vim/vim63/syntax/jgraph.vim
+#usr/share/vim/vim63/syntax/jproperties.vim
+#usr/share/vim/vim63/syntax/jsp.vim
+#usr/share/vim/vim63/syntax/kix.vim
+#usr/share/vim/vim63/syntax/kscript.vim
+#usr/share/vim/vim63/syntax/kwt.vim
+#usr/share/vim/vim63/syntax/lace.vim
+#usr/share/vim/vim63/syntax/latte.vim
+#usr/share/vim/vim63/syntax/ldif.vim
+#usr/share/vim/vim63/syntax/lex.vim
+#usr/share/vim/vim63/syntax/lftp.vim
+#usr/share/vim/vim63/syntax/lhaskell.vim
+#usr/share/vim/vim63/syntax/libao.vim
+#usr/share/vim/vim63/syntax/lifelines.vim
+#usr/share/vim/vim63/syntax/lilo.vim
+#usr/share/vim/vim63/syntax/lisp.vim
+#usr/share/vim/vim63/syntax/lite.vim
+#usr/share/vim/vim63/syntax/logtalk.vim
+#usr/share/vim/vim63/syntax/lotos.vim
+#usr/share/vim/vim63/syntax/lout.vim
+#usr/share/vim/vim63/syntax/lpc.vim
+#usr/share/vim/vim63/syntax/lprolog.vim
+#usr/share/vim/vim63/syntax/lscript.vim
+#usr/share/vim/vim63/syntax/lss.vim
+#usr/share/vim/vim63/syntax/lua.vim
+#usr/share/vim/vim63/syntax/lynx.vim
+#usr/share/vim/vim63/syntax/m4.vim
+#usr/share/vim/vim63/syntax/mail.vim
+#usr/share/vim/vim63/syntax/mailcap.vim
+#usr/share/vim/vim63/syntax/make.vim
+#usr/share/vim/vim63/syntax/man.vim
+#usr/share/vim/vim63/syntax/manual.vim
+#usr/share/vim/vim63/syntax/maple.vim
+#usr/share/vim/vim63/syntax/masm.vim
+#usr/share/vim/vim63/syntax/mason.vim
+#usr/share/vim/vim63/syntax/master.vim
+#usr/share/vim/vim63/syntax/matlab.vim
+#usr/share/vim/vim63/syntax/mel.vim
+#usr/share/vim/vim63/syntax/mf.vim
+#usr/share/vim/vim63/syntax/mgp.vim
+#usr/share/vim/vim63/syntax/mib.vim
+#usr/share/vim/vim63/syntax/mma.vim
+#usr/share/vim/vim63/syntax/mmix.vim
+#usr/share/vim/vim63/syntax/modconf.vim
+#usr/share/vim/vim63/syntax/model.vim
+#usr/share/vim/vim63/syntax/modsim3.vim
+#usr/share/vim/vim63/syntax/modula2.vim
+#usr/share/vim/vim63/syntax/modula3.vim
+#usr/share/vim/vim63/syntax/monk.vim
+#usr/share/vim/vim63/syntax/moo.vim
+#usr/share/vim/vim63/syntax/mp.vim
+#usr/share/vim/vim63/syntax/mplayerconf.vim
+#usr/share/vim/vim63/syntax/msidl.vim
+#usr/share/vim/vim63/syntax/msql.vim
+#usr/share/vim/vim63/syntax/mush.vim
+#usr/share/vim/vim63/syntax/muttrc.vim
+#usr/share/vim/vim63/syntax/mysql.vim
+#usr/share/vim/vim63/syntax/named.vim
+#usr/share/vim/vim63/syntax/nasm.vim
+#usr/share/vim/vim63/syntax/nastran.vim
+#usr/share/vim/vim63/syntax/natural.vim
+#usr/share/vim/vim63/syntax/ncf.vim
+#usr/share/vim/vim63/syntax/nosyntax.vim
+#usr/share/vim/vim63/syntax/nqc.vim
+#usr/share/vim/vim63/syntax/nroff.vim
+#usr/share/vim/vim63/syntax/nsis.vim
+#usr/share/vim/vim63/syntax/objc.vim
+#usr/share/vim/vim63/syntax/objcpp.vim
+#usr/share/vim/vim63/syntax/ocaml.vim
+#usr/share/vim/vim63/syntax/occam.vim
+#usr/share/vim/vim63/syntax/omnimark.vim
+#usr/share/vim/vim63/syntax/openroad.vim
+#usr/share/vim/vim63/syntax/opl.vim
+#usr/share/vim/vim63/syntax/ora.vim
+#usr/share/vim/vim63/syntax/papp.vim
+#usr/share/vim/vim63/syntax/pascal.vim
+#usr/share/vim/vim63/syntax/pcap.vim
+#usr/share/vim/vim63/syntax/pccts.vim
+#usr/share/vim/vim63/syntax/perl.vim
+#usr/share/vim/vim63/syntax/pf.vim
+#usr/share/vim/vim63/syntax/pfmain.vim
+#usr/share/vim/vim63/syntax/php.vim
+#usr/share/vim/vim63/syntax/phtml.vim
+#usr/share/vim/vim63/syntax/pic.vim
+#usr/share/vim/vim63/syntax/pike.vim
+#usr/share/vim/vim63/syntax/pilrc.vim
+#usr/share/vim/vim63/syntax/pine.vim
+#usr/share/vim/vim63/syntax/pinfo.vim
+#usr/share/vim/vim63/syntax/plm.vim
+#usr/share/vim/vim63/syntax/plp.vim
+#usr/share/vim/vim63/syntax/plsql.vim
+#usr/share/vim/vim63/syntax/po.vim
+#usr/share/vim/vim63/syntax/pod.vim
+#usr/share/vim/vim63/syntax/postscr.vim
+#usr/share/vim/vim63/syntax/pov.vim
+#usr/share/vim/vim63/syntax/povini.vim
+#usr/share/vim/vim63/syntax/ppd.vim
+#usr/share/vim/vim63/syntax/ppwiz.vim
+#usr/share/vim/vim63/syntax/procmail.vim
+#usr/share/vim/vim63/syntax/progress.vim
+#usr/share/vim/vim63/syntax/prolog.vim
+#usr/share/vim/vim63/syntax/psf.vim
+#usr/share/vim/vim63/syntax/ptcap.vim
+#usr/share/vim/vim63/syntax/purifylog.vim
+#usr/share/vim/vim63/syntax/pyrex.vim
+#usr/share/vim/vim63/syntax/python.vim
+#usr/share/vim/vim63/syntax/qf.vim
+#usr/share/vim/vim63/syntax/quake.vim
+#usr/share/vim/vim63/syntax/r.vim
+#usr/share/vim/vim63/syntax/radiance.vim
+#usr/share/vim/vim63/syntax/ratpoison.vim
+#usr/share/vim/vim63/syntax/rc.vim
+#usr/share/vim/vim63/syntax/rcs.vim
+#usr/share/vim/vim63/syntax/rcslog.vim
+#usr/share/vim/vim63/syntax/readline.vim
+#usr/share/vim/vim63/syntax/rebol.vim
+#usr/share/vim/vim63/syntax/registry.vim
+#usr/share/vim/vim63/syntax/remind.vim
+#usr/share/vim/vim63/syntax/resolv.vim
+#usr/share/vim/vim63/syntax/rexx.vim
+#usr/share/vim/vim63/syntax/rib.vim
+#usr/share/vim/vim63/syntax/rnc.vim
+#usr/share/vim/vim63/syntax/robots.vim
+#usr/share/vim/vim63/syntax/rpcgen.vim
+#usr/share/vim/vim63/syntax/rpl.vim
+#usr/share/vim/vim63/syntax/rst.vim
+#usr/share/vim/vim63/syntax/rtf.vim
+#usr/share/vim/vim63/syntax/ruby.vim
+#usr/share/vim/vim63/syntax/samba.vim
+#usr/share/vim/vim63/syntax/sas.vim
+#usr/share/vim/vim63/syntax/sather.vim
+#usr/share/vim/vim63/syntax/scheme.vim
+#usr/share/vim/vim63/syntax/scilab.vim
+#usr/share/vim/vim63/syntax/screen.vim
+#usr/share/vim/vim63/syntax/sdl.vim
+#usr/share/vim/vim63/syntax/sed.vim
+#usr/share/vim/vim63/syntax/sendpr.vim
+#usr/share/vim/vim63/syntax/sgml.vim
+#usr/share/vim/vim63/syntax/sgmldecl.vim
+#usr/share/vim/vim63/syntax/sgmllnx.vim
+#usr/share/vim/vim63/syntax/sh.vim
+#usr/share/vim/vim63/syntax/sicad.vim
+#usr/share/vim/vim63/syntax/simula.vim
+#usr/share/vim/vim63/syntax/sinda.vim
+#usr/share/vim/vim63/syntax/sindacmp.vim
+#usr/share/vim/vim63/syntax/sindaout.vim
+#usr/share/vim/vim63/syntax/skill.vim
+#usr/share/vim/vim63/syntax/sl.vim
+#usr/share/vim/vim63/syntax/slang.vim
+#usr/share/vim/vim63/syntax/slice.vim
+#usr/share/vim/vim63/syntax/slrnrc.vim
+#usr/share/vim/vim63/syntax/slrnsc.vim
+#usr/share/vim/vim63/syntax/sm.vim
+#usr/share/vim/vim63/syntax/smarty.vim
+#usr/share/vim/vim63/syntax/smil.vim
+#usr/share/vim/vim63/syntax/smith.vim
+#usr/share/vim/vim63/syntax/sml.vim
+#usr/share/vim/vim63/syntax/snnsnet.vim
+#usr/share/vim/vim63/syntax/snnspat.vim
+#usr/share/vim/vim63/syntax/snnsres.vim
+#usr/share/vim/vim63/syntax/snobol4.vim
+#usr/share/vim/vim63/syntax/spec.vim
+#usr/share/vim/vim63/syntax/specman.vim
+#usr/share/vim/vim63/syntax/spice.vim
+#usr/share/vim/vim63/syntax/splint.vim
+#usr/share/vim/vim63/syntax/spup.vim
+#usr/share/vim/vim63/syntax/spyce.vim
+#usr/share/vim/vim63/syntax/sql.vim
+#usr/share/vim/vim63/syntax/sqlforms.vim
+#usr/share/vim/vim63/syntax/sqlj.vim
+#usr/share/vim/vim63/syntax/sqr.vim
+#usr/share/vim/vim63/syntax/squid.vim
+#usr/share/vim/vim63/syntax/sshconfig.vim
+#usr/share/vim/vim63/syntax/sshdconfig.vim
+#usr/share/vim/vim63/syntax/st.vim
+#usr/share/vim/vim63/syntax/stp.vim
+#usr/share/vim/vim63/syntax/strace.vim
+#usr/share/vim/vim63/syntax/svn.vim
+#usr/share/vim/vim63/syntax/syncolor.vim
+#usr/share/vim/vim63/syntax/synload.vim
+#usr/share/vim/vim63/syntax/syntax.vim
+#usr/share/vim/vim63/syntax/tads.vim
+#usr/share/vim/vim63/syntax/tags.vim
+#usr/share/vim/vim63/syntax/tak.vim
+#usr/share/vim/vim63/syntax/takcmp.vim
+#usr/share/vim/vim63/syntax/takout.vim
+#usr/share/vim/vim63/syntax/tasm.vim
+#usr/share/vim/vim63/syntax/tcl.vim
+#usr/share/vim/vim63/syntax/tcsh.vim
+#usr/share/vim/vim63/syntax/terminfo.vim
+#usr/share/vim/vim63/syntax/tex.vim
+#usr/share/vim/vim63/syntax/texinfo.vim
+#usr/share/vim/vim63/syntax/texmf.vim
+#usr/share/vim/vim63/syntax/tf.vim
+#usr/share/vim/vim63/syntax/tidy.vim
+#usr/share/vim/vim63/syntax/tilde.vim
+#usr/share/vim/vim63/syntax/tli.vim
+#usr/share/vim/vim63/syntax/trasys.vim
+#usr/share/vim/vim63/syntax/tsalt.vim
+#usr/share/vim/vim63/syntax/tsscl.vim
+#usr/share/vim/vim63/syntax/tssgm.vim
+#usr/share/vim/vim63/syntax/tssop.vim
+#usr/share/vim/vim63/syntax/uc.vim
+#usr/share/vim/vim63/syntax/uil.vim
+#usr/share/vim/vim63/syntax/valgrind.vim
+#usr/share/vim/vim63/syntax/vb.vim
+#usr/share/vim/vim63/syntax/verilog.vim
+#usr/share/vim/vim63/syntax/vgrindefs.vim
+#usr/share/vim/vim63/syntax/vhdl.vim
+#usr/share/vim/vim63/syntax/vim.vim
+#usr/share/vim/vim63/syntax/viminfo.vim
+#usr/share/vim/vim63/syntax/virata.vim
+#usr/share/vim/vim63/syntax/vmasm.vim
+#usr/share/vim/vim63/syntax/vrml.vim
+#usr/share/vim/vim63/syntax/vsejcl.vim
+#usr/share/vim/vim63/syntax/wdiff.vim
+#usr/share/vim/vim63/syntax/web.vim
+#usr/share/vim/vim63/syntax/webmacro.vim
+#usr/share/vim/vim63/syntax/wget.vim
+#usr/share/vim/vim63/syntax/whitespace.vim
+#usr/share/vim/vim63/syntax/winbatch.vim
+#usr/share/vim/vim63/syntax/wml.vim
+#usr/share/vim/vim63/syntax/wsh.vim
+#usr/share/vim/vim63/syntax/wvdial.vim
+#usr/share/vim/vim63/syntax/xdefaults.vim
+#usr/share/vim/vim63/syntax/xf86conf.vim
+#usr/share/vim/vim63/syntax/xhtml.vim
+#usr/share/vim/vim63/syntax/xkb.vim
+#usr/share/vim/vim63/syntax/xmath.vim
+#usr/share/vim/vim63/syntax/xml.vim
+#usr/share/vim/vim63/syntax/xmodmap.vim
+#usr/share/vim/vim63/syntax/xpm.vim
+#usr/share/vim/vim63/syntax/xpm2.vim
+#usr/share/vim/vim63/syntax/xs.vim
+#usr/share/vim/vim63/syntax/xsd.vim
+#usr/share/vim/vim63/syntax/xslt.vim
+#usr/share/vim/vim63/syntax/xxd.vim
+#usr/share/vim/vim63/syntax/yacc.vim
+#usr/share/vim/vim63/syntax/yaml.vim
+#usr/share/vim/vim63/syntax/z8a.vim
+#usr/share/vim/vim63/syntax/zsh.vim
+#usr/share/vim/vim63/tools
+#usr/share/vim/vim63/tools/README.txt
+#usr/share/vim/vim63/tools/blink.c
+#usr/share/vim/vim63/tools/ccfilter.1
+#usr/share/vim/vim63/tools/ccfilter.c
+#usr/share/vim/vim63/tools/ccfilter_README.txt
+#usr/share/vim/vim63/tools/efm_filter.pl
+#usr/share/vim/vim63/tools/efm_filter.txt
+#usr/share/vim/vim63/tools/efm_perl.pl
+#usr/share/vim/vim63/tools/mve.awk
+#usr/share/vim/vim63/tools/mve.txt
+#usr/share/vim/vim63/tools/pltags.pl
+#usr/share/vim/vim63/tools/ref
+#usr/share/vim/vim63/tools/shtags.1
+#usr/share/vim/vim63/tools/shtags.pl
+#usr/share/vim/vim63/tools/tcltags
+#usr/share/vim/vim63/tools/vim132
+#usr/share/vim/vim63/tools/vim_vs_net.cmd
+#usr/share/vim/vim63/tools/vimm
+#usr/share/vim/vim63/tools/vimspell.sh
+#usr/share/vim/vim63/tools/vimspell.txt
+#usr/share/vim/vim63/tools/xcmdsrv_client.c
+#usr/share/vim/vim63/tutor
+#usr/share/vim/vim63/tutor/README.gr.cp737.txt
+#usr/share/vim/vim63/tutor/README.gr.txt
+#usr/share/vim/vim63/tutor/README.txt
+#usr/share/vim/vim63/tutor/tutor
+#usr/share/vim/vim63/tutor/tutor.ca
+#usr/share/vim/vim63/tutor/tutor.de
+#usr/share/vim/vim63/tutor/tutor.es
+#usr/share/vim/vim63/tutor/tutor.fr
+#usr/share/vim/vim63/tutor/tutor.gr
+#usr/share/vim/vim63/tutor/tutor.gr.cp737
+#usr/share/vim/vim63/tutor/tutor.it
+#usr/share/vim/vim63/tutor/tutor.ja.euc
+#usr/share/vim/vim63/tutor/tutor.ja.sjis
+#usr/share/vim/vim63/tutor/tutor.ja.utf-8
+#usr/share/vim/vim63/tutor/tutor.ko.euc
+#usr/share/vim/vim63/tutor/tutor.ko.utf-8
+#usr/share/vim/vim63/tutor/tutor.no
+#usr/share/vim/vim63/tutor/tutor.pl
+#usr/share/vim/vim63/tutor/tutor.pl.cp1250
+#usr/share/vim/vim63/tutor/tutor.ru
+#usr/share/vim/vim63/tutor/tutor.ru.cp1251
+#usr/share/vim/vim63/tutor/tutor.sk
+#usr/share/vim/vim63/tutor/tutor.sv
+#usr/share/vim/vim63/tutor/tutor.vim
+#usr/share/vim/vim63/tutor/tutor.zh.big5
+#usr/share/vim/vim63/tutor/tutor.zh.euc
+#usr/share/vim/vim63/vimrc_example.vim
+##
+## m4-1.4
+##
+#usr/bin/m4
+#usr/share/info/m4.info
+#usr/share/info/m4.info-1
+#usr/share/info/m4.info-2
+#usr/share/info/m4.info-3
+##
+## bison-1.875
+##
+#usr/bin/bison
+#usr/bin/yacc
+#usr/lib/liby.a
+#usr/share/bison
+#usr/share/bison/README
+#usr/share/bison/c.m4
+#usr/share/bison/glr.c
+#usr/share/bison/lalr1.cc
+#usr/share/bison/m4sugar
+#usr/share/bison/m4sugar/m4sugar.m4
+#usr/share/bison/yacc.c
+#usr/share/info/bison.info
+#usr/share/info/bison.info-1
+#usr/share/info/bison.info-2
+#usr/share/info/bison.info-3
+#usr/share/info/bison.info-4
+#usr/share/info/bison.info-5
+#usr/share/info/bison.info-6
+#usr/share/info/bison.info-7
+#usr/share/man/man1/bison.1
+##
+## less-381
+##
+bin/less
+#bin/lessecho
+#bin/lesskey
+#usr/share/man/man1/less.1
+#usr/share/man/man1/lesskey.1
+##
+## groff-1.19
+##
+#usr/bin/addftinfo
+#usr/bin/afmtodit
+#usr/bin/eqn
+#usr/bin/eqn2graph
+#usr/bin/geqn
+#usr/bin/grn
+#usr/bin/grodvi
+#usr/bin/groff
+#usr/bin/groffer
+#usr/bin/grog
+#usr/bin/grolbp
+#usr/bin/grolj4
+#usr/bin/grops
+#usr/bin/grotty
+#usr/bin/gtbl
+#usr/bin/hpftodit
+#usr/bin/indxbib
+#usr/bin/lkbib
+#usr/bin/lookbib
+#usr/bin/mmroff
+#usr/bin/neqn
+#usr/bin/nroff
+#usr/bin/pfbtops
+#usr/bin/pic
+#usr/bin/pic2graph
+#usr/bin/post-grohtml
+#usr/bin/pre-grohtml
+#usr/bin/refer
+#usr/bin/soelim
+#usr/bin/tbl
+#usr/bin/tfmtodit
+#usr/bin/troff
+#usr/bin/zsoelim
+#usr/lib/groff
+#usr/lib/groff/site-tmac
+#usr/share/doc/groff
+#usr/share/doc/groff/1.19
+#usr/share/doc/groff/1.19/examples
+#usr/share/doc/groff/1.19/examples/README.mom
+#usr/share/doc/groff/1.19/examples/elvis_syntax
+#usr/share/doc/groff/1.19/examples/grnexmpl.g
+#usr/share/doc/groff/1.19/examples/grnexmpl.me
+#usr/share/doc/groff/1.19/examples/grnexmpl.ps
+#usr/share/doc/groff/1.19/examples/letter.mom
+#usr/share/doc/groff/1.19/examples/letter.ps
+#usr/share/doc/groff/1.19/examples/macros.mom
+#usr/share/doc/groff/1.19/examples/macros.ps
+#usr/share/doc/groff/1.19/examples/penguin.ps
+#usr/share/doc/groff/1.19/examples/typeset.mom
+#usr/share/doc/groff/1.19/examples/typeset.ps
+#usr/share/doc/groff/1.19/examples/typewrite.mom
+#usr/share/doc/groff/1.19/examples/typewrite.ps
+#usr/share/doc/groff/1.19/examples/webpage.ms
+#usr/share/doc/groff/1.19/examples/webpage.ps
+#usr/share/doc/groff/1.19/html
+#usr/share/doc/groff/1.19/html/momdoc
+#usr/share/doc/groff/1.19/html/momdoc/appendices.html
+#usr/share/doc/groff/1.19/html/momdoc/cover.html
+#usr/share/doc/groff/1.19/html/momdoc/definitions.html
+#usr/share/doc/groff/1.19/html/momdoc/docelement.html
+#usr/share/doc/groff/1.19/html/momdoc/docprocessing.html
+#usr/share/doc/groff/1.19/html/momdoc/goodies.html
+#usr/share/doc/groff/1.19/html/momdoc/headfootpage.html
+#usr/share/doc/groff/1.19/html/momdoc/inlines.html
+#usr/share/doc/groff/1.19/html/momdoc/intro.html
+#usr/share/doc/groff/1.19/html/momdoc/letters.html
+#usr/share/doc/groff/1.19/html/momdoc/rectoverso.html
+#usr/share/doc/groff/1.19/html/momdoc/reserved.html
+#usr/share/doc/groff/1.19/html/momdoc/toc.html
+#usr/share/doc/groff/1.19/html/momdoc/typemacdoc.html
+#usr/share/doc/groff/1.19/html/momdoc/typesetting.html
+#usr/share/doc/groff/1.19/html/momdoc/using.html
+#usr/share/doc/groff/1.19/meintro.me
+#usr/share/doc/groff/1.19/meintro.ps
+#usr/share/doc/groff/1.19/meref.me
+#usr/share/doc/groff/1.19/meref.ps
+#usr/share/doc/groff/1.19/pic.ms
+#usr/share/doc/groff/1.19/pic.ps
+#usr/share/groff
+#usr/share/groff/1.19
+#usr/share/groff/1.19/eign
+#usr/share/groff/1.19/font
+#usr/share/groff/1.19/font/devX100
+#usr/share/groff/1.19/font/devX100-12
+#usr/share/groff/1.19/font/devX100-12/CB
+#usr/share/groff/1.19/font/devX100-12/CBI
+#usr/share/groff/1.19/font/devX100-12/CI
+#usr/share/groff/1.19/font/devX100-12/CR
+#usr/share/groff/1.19/font/devX100-12/DESC
+#usr/share/groff/1.19/font/devX100-12/HB
+#usr/share/groff/1.19/font/devX100-12/HBI
+#usr/share/groff/1.19/font/devX100-12/HI
+#usr/share/groff/1.19/font/devX100-12/HR
+#usr/share/groff/1.19/font/devX100-12/NB
+#usr/share/groff/1.19/font/devX100-12/NBI
+#usr/share/groff/1.19/font/devX100-12/NI
+#usr/share/groff/1.19/font/devX100-12/NR
+#usr/share/groff/1.19/font/devX100-12/S
+#usr/share/groff/1.19/font/devX100-12/TB
+#usr/share/groff/1.19/font/devX100-12/TBI
+#usr/share/groff/1.19/font/devX100-12/TI
+#usr/share/groff/1.19/font/devX100-12/TR
+#usr/share/groff/1.19/font/devX100/CB
+#usr/share/groff/1.19/font/devX100/CBI
+#usr/share/groff/1.19/font/devX100/CI
+#usr/share/groff/1.19/font/devX100/CR
+#usr/share/groff/1.19/font/devX100/DESC
+#usr/share/groff/1.19/font/devX100/HB
+#usr/share/groff/1.19/font/devX100/HBI
+#usr/share/groff/1.19/font/devX100/HI
+#usr/share/groff/1.19/font/devX100/HR
+#usr/share/groff/1.19/font/devX100/NB
+#usr/share/groff/1.19/font/devX100/NBI
+#usr/share/groff/1.19/font/devX100/NI
+#usr/share/groff/1.19/font/devX100/NR
+#usr/share/groff/1.19/font/devX100/S
+#usr/share/groff/1.19/font/devX100/TB
+#usr/share/groff/1.19/font/devX100/TBI
+#usr/share/groff/1.19/font/devX100/TI
+#usr/share/groff/1.19/font/devX100/TR
+#usr/share/groff/1.19/font/devX75
+#usr/share/groff/1.19/font/devX75-12
+#usr/share/groff/1.19/font/devX75-12/CB
+#usr/share/groff/1.19/font/devX75-12/CBI
+#usr/share/groff/1.19/font/devX75-12/CI
+#usr/share/groff/1.19/font/devX75-12/CR
+#usr/share/groff/1.19/font/devX75-12/DESC
+#usr/share/groff/1.19/font/devX75-12/HB
+#usr/share/groff/1.19/font/devX75-12/HBI
+#usr/share/groff/1.19/font/devX75-12/HI
+#usr/share/groff/1.19/font/devX75-12/HR
+#usr/share/groff/1.19/font/devX75-12/NB
+#usr/share/groff/1.19/font/devX75-12/NBI
+#usr/share/groff/1.19/font/devX75-12/NI
+#usr/share/groff/1.19/font/devX75-12/NR
+#usr/share/groff/1.19/font/devX75-12/S
+#usr/share/groff/1.19/font/devX75-12/TB
+#usr/share/groff/1.19/font/devX75-12/TBI
+#usr/share/groff/1.19/font/devX75-12/TI
+#usr/share/groff/1.19/font/devX75-12/TR
+#usr/share/groff/1.19/font/devX75/CB
+#usr/share/groff/1.19/font/devX75/CBI
+#usr/share/groff/1.19/font/devX75/CI
+#usr/share/groff/1.19/font/devX75/CR
+#usr/share/groff/1.19/font/devX75/DESC
+#usr/share/groff/1.19/font/devX75/HB
+#usr/share/groff/1.19/font/devX75/HBI
+#usr/share/groff/1.19/font/devX75/HI
+#usr/share/groff/1.19/font/devX75/HR
+#usr/share/groff/1.19/font/devX75/NB
+#usr/share/groff/1.19/font/devX75/NBI
+#usr/share/groff/1.19/font/devX75/NI
+#usr/share/groff/1.19/font/devX75/NR
+#usr/share/groff/1.19/font/devX75/S
+#usr/share/groff/1.19/font/devX75/TB
+#usr/share/groff/1.19/font/devX75/TBI
+#usr/share/groff/1.19/font/devX75/TI
+#usr/share/groff/1.19/font/devX75/TR
+#usr/share/groff/1.19/font/devascii
+#usr/share/groff/1.19/font/devascii/B
+#usr/share/groff/1.19/font/devascii/BI
+#usr/share/groff/1.19/font/devascii/DESC
+#usr/share/groff/1.19/font/devascii/I
+#usr/share/groff/1.19/font/devascii/R
+#usr/share/groff/1.19/font/devdvi
+#usr/share/groff/1.19/font/devdvi/CW
+#usr/share/groff/1.19/font/devdvi/CWEC
+#usr/share/groff/1.19/font/devdvi/CWI
+#usr/share/groff/1.19/font/devdvi/CWIEC
+#usr/share/groff/1.19/font/devdvi/CWITC
+#usr/share/groff/1.19/font/devdvi/CWTC
+#usr/share/groff/1.19/font/devdvi/DESC
+#usr/share/groff/1.19/font/devdvi/EX
+#usr/share/groff/1.19/font/devdvi/HB
+#usr/share/groff/1.19/font/devdvi/HBEC
+#usr/share/groff/1.19/font/devdvi/HBI
+#usr/share/groff/1.19/font/devdvi/HBIEC
+#usr/share/groff/1.19/font/devdvi/HBITC
+#usr/share/groff/1.19/font/devdvi/HBTC
+#usr/share/groff/1.19/font/devdvi/HI
+#usr/share/groff/1.19/font/devdvi/HIEC
+#usr/share/groff/1.19/font/devdvi/HITC
+#usr/share/groff/1.19/font/devdvi/HR
+#usr/share/groff/1.19/font/devdvi/HREC
+#usr/share/groff/1.19/font/devdvi/HRTC
+#usr/share/groff/1.19/font/devdvi/MI
+#usr/share/groff/1.19/font/devdvi/S
+#usr/share/groff/1.19/font/devdvi/SA
+#usr/share/groff/1.19/font/devdvi/SB
+#usr/share/groff/1.19/font/devdvi/SC
+#usr/share/groff/1.19/font/devdvi/TB
+#usr/share/groff/1.19/font/devdvi/TBEC
+#usr/share/groff/1.19/font/devdvi/TBI
+#usr/share/groff/1.19/font/devdvi/TBIEC
+#usr/share/groff/1.19/font/devdvi/TBITC
+#usr/share/groff/1.19/font/devdvi/TBTC
+#usr/share/groff/1.19/font/devdvi/TI
+#usr/share/groff/1.19/font/devdvi/TIEC
+#usr/share/groff/1.19/font/devdvi/TITC
+#usr/share/groff/1.19/font/devdvi/TR
+#usr/share/groff/1.19/font/devdvi/TREC
+#usr/share/groff/1.19/font/devdvi/TRTC
+#usr/share/groff/1.19/font/devdvi/generate
+#usr/share/groff/1.19/font/devdvi/generate/CompileFonts
+#usr/share/groff/1.19/font/devdvi/generate/Makefile
+#usr/share/groff/1.19/font/devdvi/generate/ec.map
+#usr/share/groff/1.19/font/devdvi/generate/msam.map
+#usr/share/groff/1.19/font/devdvi/generate/msbm.map
+#usr/share/groff/1.19/font/devdvi/generate/tc.map
+#usr/share/groff/1.19/font/devdvi/generate/texb.map
+#usr/share/groff/1.19/font/devdvi/generate/texex.map
+#usr/share/groff/1.19/font/devdvi/generate/texi.map
+#usr/share/groff/1.19/font/devdvi/generate/texmi.map
+#usr/share/groff/1.19/font/devdvi/generate/texr.map
+#usr/share/groff/1.19/font/devdvi/generate/texsy.map
+#usr/share/groff/1.19/font/devdvi/generate/textex.map
+#usr/share/groff/1.19/font/devdvi/generate/textt.map
+#usr/share/groff/1.19/font/devhtml
+#usr/share/groff/1.19/font/devhtml/B
+#usr/share/groff/1.19/font/devhtml/BI
+#usr/share/groff/1.19/font/devhtml/CB
+#usr/share/groff/1.19/font/devhtml/CBI
+#usr/share/groff/1.19/font/devhtml/CI
+#usr/share/groff/1.19/font/devhtml/CR
+#usr/share/groff/1.19/font/devhtml/DESC
+#usr/share/groff/1.19/font/devhtml/I
+#usr/share/groff/1.19/font/devhtml/R
+#usr/share/groff/1.19/font/devhtml/S
+#usr/share/groff/1.19/font/devlatin1
+#usr/share/groff/1.19/font/devlatin1/B
+#usr/share/groff/1.19/font/devlatin1/BI
+#usr/share/groff/1.19/font/devlatin1/DESC
+#usr/share/groff/1.19/font/devlatin1/I
+#usr/share/groff/1.19/font/devlatin1/R
+#usr/share/groff/1.19/font/devlbp
+#usr/share/groff/1.19/font/devlbp/CB
+#usr/share/groff/1.19/font/devlbp/CI
+#usr/share/groff/1.19/font/devlbp/CR
+#usr/share/groff/1.19/font/devlbp/DESC
+#usr/share/groff/1.19/font/devlbp/EB
+#usr/share/groff/1.19/font/devlbp/EI
+#usr/share/groff/1.19/font/devlbp/ER
+#usr/share/groff/1.19/font/devlbp/HB
+#usr/share/groff/1.19/font/devlbp/HBI
+#usr/share/groff/1.19/font/devlbp/HI
+#usr/share/groff/1.19/font/devlbp/HNB
+#usr/share/groff/1.19/font/devlbp/HNBI
+#usr/share/groff/1.19/font/devlbp/HNI
+#usr/share/groff/1.19/font/devlbp/HNR
+#usr/share/groff/1.19/font/devlbp/HR
+#usr/share/groff/1.19/font/devlbp/TB
+#usr/share/groff/1.19/font/devlbp/TBI
+#usr/share/groff/1.19/font/devlbp/TI
+#usr/share/groff/1.19/font/devlbp/TR
+#usr/share/groff/1.19/font/devlj4
+#usr/share/groff/1.19/font/devlj4/ALBB
+#usr/share/groff/1.19/font/devlj4/ALBR
+#usr/share/groff/1.19/font/devlj4/AOB
+#usr/share/groff/1.19/font/devlj4/AOI
+#usr/share/groff/1.19/font/devlj4/AOR
+#usr/share/groff/1.19/font/devlj4/CB
+#usr/share/groff/1.19/font/devlj4/CBI
+#usr/share/groff/1.19/font/devlj4/CI
+#usr/share/groff/1.19/font/devlj4/CLARENDON
+#usr/share/groff/1.19/font/devlj4/CORONET
+#usr/share/groff/1.19/font/devlj4/CR
+#usr/share/groff/1.19/font/devlj4/DESC
+#usr/share/groff/1.19/font/devlj4/GB
+#usr/share/groff/1.19/font/devlj4/GBI
+#usr/share/groff/1.19/font/devlj4/GI
+#usr/share/groff/1.19/font/devlj4/GR
+#usr/share/groff/1.19/font/devlj4/LGB
+#usr/share/groff/1.19/font/devlj4/LGI
+#usr/share/groff/1.19/font/devlj4/LGR
+#usr/share/groff/1.19/font/devlj4/MARIGOLD
+#usr/share/groff/1.19/font/devlj4/OB
+#usr/share/groff/1.19/font/devlj4/OBI
+#usr/share/groff/1.19/font/devlj4/OI
+#usr/share/groff/1.19/font/devlj4/OR
+#usr/share/groff/1.19/font/devlj4/S
+#usr/share/groff/1.19/font/devlj4/TB
+#usr/share/groff/1.19/font/devlj4/TBI
+#usr/share/groff/1.19/font/devlj4/TI
+#usr/share/groff/1.19/font/devlj4/TR
+#usr/share/groff/1.19/font/devlj4/UB
+#usr/share/groff/1.19/font/devlj4/UBI
+#usr/share/groff/1.19/font/devlj4/UCB
+#usr/share/groff/1.19/font/devlj4/UCBI
+#usr/share/groff/1.19/font/devlj4/UCI
+#usr/share/groff/1.19/font/devlj4/UCR
+#usr/share/groff/1.19/font/devlj4/UI
+#usr/share/groff/1.19/font/devlj4/UR
+#usr/share/groff/1.19/font/devlj4/generate
+#usr/share/groff/1.19/font/devlj4/generate/Makefile
+#usr/share/groff/1.19/font/devlj4/generate/special.map
+#usr/share/groff/1.19/font/devlj4/generate/text.map
+#usr/share/groff/1.19/font/devps
+#usr/share/groff/1.19/font/devps/AB
+#usr/share/groff/1.19/font/devps/ABI
+#usr/share/groff/1.19/font/devps/AI
+#usr/share/groff/1.19/font/devps/AR
+#usr/share/groff/1.19/font/devps/BMB
+#usr/share/groff/1.19/font/devps/BMBI
+#usr/share/groff/1.19/font/devps/BMI
+#usr/share/groff/1.19/font/devps/BMR
+#usr/share/groff/1.19/font/devps/CB
+#usr/share/groff/1.19/font/devps/CBI
+#usr/share/groff/1.19/font/devps/CI
+#usr/share/groff/1.19/font/devps/CR
+#usr/share/groff/1.19/font/devps/DESC
+#usr/share/groff/1.19/font/devps/EURO
+#usr/share/groff/1.19/font/devps/HB
+#usr/share/groff/1.19/font/devps/HBI
+#usr/share/groff/1.19/font/devps/HI
+#usr/share/groff/1.19/font/devps/HNB
+#usr/share/groff/1.19/font/devps/HNBI
+#usr/share/groff/1.19/font/devps/HNI
+#usr/share/groff/1.19/font/devps/HNR
+#usr/share/groff/1.19/font/devps/HR
+#usr/share/groff/1.19/font/devps/NB
+#usr/share/groff/1.19/font/devps/NBI
+#usr/share/groff/1.19/font/devps/NI
+#usr/share/groff/1.19/font/devps/NR
+#usr/share/groff/1.19/font/devps/PB
+#usr/share/groff/1.19/font/devps/PBI
+#usr/share/groff/1.19/font/devps/PI
+#usr/share/groff/1.19/font/devps/PR
+#usr/share/groff/1.19/font/devps/S
+#usr/share/groff/1.19/font/devps/SS
+#usr/share/groff/1.19/font/devps/TB
+#usr/share/groff/1.19/font/devps/TBI
+#usr/share/groff/1.19/font/devps/TI
+#usr/share/groff/1.19/font/devps/TR
+#usr/share/groff/1.19/font/devps/ZCMI
+#usr/share/groff/1.19/font/devps/ZD
+#usr/share/groff/1.19/font/devps/ZDR
+#usr/share/groff/1.19/font/devps/download
+#usr/share/groff/1.19/font/devps/freeeuro.pfa
+#usr/share/groff/1.19/font/devps/generate
+#usr/share/groff/1.19/font/devps/generate/Makefile
+#usr/share/groff/1.19/font/devps/generate/afmname
+#usr/share/groff/1.19/font/devps/generate/dingbats.map
+#usr/share/groff/1.19/font/devps/generate/dingbats.rmap
+#usr/share/groff/1.19/font/devps/generate/lgreekmap
+#usr/share/groff/1.19/font/devps/generate/symbol.sed
+#usr/share/groff/1.19/font/devps/generate/symbolchars
+#usr/share/groff/1.19/font/devps/generate/symbolsl.afm
+#usr/share/groff/1.19/font/devps/generate/textmap
+#usr/share/groff/1.19/font/devps/prologue
+#usr/share/groff/1.19/font/devps/symbolsl.pfa
+#usr/share/groff/1.19/font/devps/text.enc
+#usr/share/groff/1.19/font/devps/zapfdr.pfa
+#usr/share/groff/1.19/font/devutf8
+#usr/share/groff/1.19/font/devutf8/B
+#usr/share/groff/1.19/font/devutf8/BI
+#usr/share/groff/1.19/font/devutf8/DESC
+#usr/share/groff/1.19/font/devutf8/I
+#usr/share/groff/1.19/font/devutf8/R
+#usr/share/groff/1.19/tmac
+#usr/share/groff/1.19/tmac/X.tmac
+#usr/share/groff/1.19/tmac/Xps.tmac
+#usr/share/groff/1.19/tmac/a4.tmac
+#usr/share/groff/1.19/tmac/an-old.tmac
+#usr/share/groff/1.19/tmac/an.tmac
+#usr/share/groff/1.19/tmac/andoc.tmac
+#usr/share/groff/1.19/tmac/composite.tmac
+#usr/share/groff/1.19/tmac/cp1047.tmac
+#usr/share/groff/1.19/tmac/doc-old.tmac
+#usr/share/groff/1.19/tmac/doc.tmac
+#usr/share/groff/1.19/tmac/dvi.tmac
+#usr/share/groff/1.19/tmac/e.tmac
+#usr/share/groff/1.19/tmac/ec.tmac
+#usr/share/groff/1.19/tmac/eqnrc
+#usr/share/groff/1.19/tmac/europs.tmac
+#usr/share/groff/1.19/tmac/html-end.tmac
+#usr/share/groff/1.19/tmac/html.tmac
+#usr/share/groff/1.19/tmac/hyphen.us
+#usr/share/groff/1.19/tmac/hyphenex.us
+#usr/share/groff/1.19/tmac/latin1.tmac
+#usr/share/groff/1.19/tmac/latin2.tmac
+#usr/share/groff/1.19/tmac/latin9.tmac
+#usr/share/groff/1.19/tmac/lbp.tmac
+#usr/share/groff/1.19/tmac/lj4.tmac
+#usr/share/groff/1.19/tmac/m.tmac
+#usr/share/groff/1.19/tmac/man.tmac
+#usr/share/groff/1.19/tmac/mandoc.tmac
+#usr/share/groff/1.19/tmac/mdoc
+#usr/share/groff/1.19/tmac/mdoc.tmac
+#usr/share/groff/1.19/tmac/mdoc/doc-common
+#usr/share/groff/1.19/tmac/mdoc/doc-ditroff
+#usr/share/groff/1.19/tmac/mdoc/doc-nroff
+#usr/share/groff/1.19/tmac/mdoc/doc-syms
+#usr/share/groff/1.19/tmac/me.tmac
+#usr/share/groff/1.19/tmac/mm
+#usr/share/groff/1.19/tmac/mm.tmac
+#usr/share/groff/1.19/tmac/mm/0.MT
+#usr/share/groff/1.19/tmac/mm/4.MT
+#usr/share/groff/1.19/tmac/mm/5.MT
+#usr/share/groff/1.19/tmac/mm/locale
+#usr/share/groff/1.19/tmac/mm/ms.cov
+#usr/share/groff/1.19/tmac/mm/se_locale
+#usr/share/groff/1.19/tmac/mm/se_ms.cov
+#usr/share/groff/1.19/tmac/mmse.tmac
+#usr/share/groff/1.19/tmac/mom.tmac
+#usr/share/groff/1.19/tmac/ms.tmac
+#usr/share/groff/1.19/tmac/mse.tmac
+#usr/share/groff/1.19/tmac/om.tmac
+#usr/share/groff/1.19/tmac/papersize.tmac
+#usr/share/groff/1.19/tmac/pic.tmac
+#usr/share/groff/1.19/tmac/ps.tmac
+#usr/share/groff/1.19/tmac/psatk.tmac
+#usr/share/groff/1.19/tmac/psold.tmac
+#usr/share/groff/1.19/tmac/pspic.tmac
+#usr/share/groff/1.19/tmac/s.tmac
+#usr/share/groff/1.19/tmac/safer.tmac
+#usr/share/groff/1.19/tmac/trace.tmac
+#usr/share/groff/1.19/tmac/troffrc
+#usr/share/groff/1.19/tmac/troffrc-end
+#usr/share/groff/1.19/tmac/tty-char.tmac
+#usr/share/groff/1.19/tmac/tty.tmac
+#usr/share/groff/1.19/tmac/www.tmac
+#usr/share/groff/site-tmac
+#usr/share/groff/site-tmac/man.local
+#usr/share/groff/site-tmac/mdoc.local
+#usr/share/info/groff
+#usr/share/info/groff-1
+#usr/share/info/groff-10
+#usr/share/info/groff-11
+#usr/share/info/groff-2
+#usr/share/info/groff-3
+#usr/share/info/groff-4
+#usr/share/info/groff-5
+#usr/share/info/groff-6
+#usr/share/info/groff-7
+#usr/share/info/groff-8
+#usr/share/info/groff-9
+#usr/share/man/man1/addftinfo.1
+#usr/share/man/man1/afmtodit.1
+#usr/share/man/man1/eqn.1
+#usr/share/man/man1/eqn2graph.1
+#usr/share/man/man1/grn.1
+#usr/share/man/man1/grodvi.1
+#usr/share/man/man1/groff.1
+#usr/share/man/man1/groffer.1
+#usr/share/man/man1/grog.1
+#usr/share/man/man1/grohtml.1
+#usr/share/man/man1/grolbp.1
+#usr/share/man/man1/grolj4.1
+#usr/share/man/man1/grops.1
+#usr/share/man/man1/grotty.1
+#usr/share/man/man1/hpftodit.1
+#usr/share/man/man1/indxbib.1
+#usr/share/man/man1/lkbib.1
+#usr/share/man/man1/lookbib.1
+#usr/share/man/man1/mmroff.1
+#usr/share/man/man1/neqn.1
+#usr/share/man/man1/nroff.1
+#usr/share/man/man1/pfbtops.1
+#usr/share/man/man1/pic.1
+#usr/share/man/man1/pic2graph.1
+#usr/share/man/man1/refer.1
+#usr/share/man/man1/soelim.1
+#usr/share/man/man1/tbl.1
+#usr/share/man/man1/tfmtodit.1
+#usr/share/man/man1/troff.1
+#usr/share/man/man5/groff_font.5
+#usr/share/man/man5/groff_out.5
+#usr/share/man/man5/groff_tmac.5
+#usr/share/man/man7/ditroff.7
+#usr/share/man/man7/groff.7
+#usr/share/man/man7/groff_char.7
+#usr/share/man/man7/groff_diff.7
+#usr/share/man/man7/groff_man.7
+#usr/share/man/man7/groff_mdoc.7
+#usr/share/man/man7/groff_me.7
+#usr/share/man/man7/groff_mm.7
+#usr/share/man/man7/groff_mmse.7
+#usr/share/man/man7/groff_mom.7
+#usr/share/man/man7/groff_ms.7
+#usr/share/man/man7/groff_trace.7
+#usr/share/man/man7/groff_www.7
+#usr/share/man/man7/roff.7
+##
+## sed-4.0.7
+##
+bin/sed
+#usr/share/info/sed.info
+#usr/share/info/sed.info-1
+#usr/share/info/sed.info-2
+#usr/share/man/man1/sed.1
+##
+## flex-2.5.4a
+##
+#usr/bin/flex
+#usr/bin/flex++
+#usr/bin/lex
+#usr/include/FlexLexer.h
+#usr/lib/libfl.a
+#usr/lib/libl.a
+#usr/share/man/man1/flex.1
+##
+## gettext-0.12.1
+##
+#usr/bin/autopoint
+#usr/bin/gettext
+#usr/bin/gettextize
+#usr/bin/msgattrib
+#usr/bin/msgcat
+#usr/bin/msgcmp
+#usr/bin/msgcomm
+#usr/bin/msgconv
+#usr/bin/msgen
+#usr/bin/msgexec
+#usr/bin/msgfilter
+#usr/bin/msgfmt
+#usr/bin/msggrep
+#usr/bin/msginit
+#usr/bin/msgmerge
+#usr/bin/msgunfmt
+#usr/bin/msguniq
+#usr/bin/ngettext
+#usr/bin/xgettext
+#usr/include/autosprintf.h
+#usr/include/gettext-po.h
+#usr/lib/gettext
+#usr/lib/gettext/gnu.gettext.DumpResource
+#usr/lib/gettext/gnu.gettext.GetURL
+#usr/lib/gettext/hostname
+#usr/lib/gettext/project-id
+#usr/lib/gettext/urlget
+#usr/lib/gettext/user-email
+#usr/lib/libasprintf.a
+#usr/lib/libasprintf.la
+#usr/lib/libasprintf.so
+#usr/lib/libasprintf.so.0
+#usr/lib/libasprintf.so.0.0.0
+#usr/lib/libgettextlib-0.12.1.so
+#usr/lib/libgettextlib.la
+#usr/lib/libgettextlib.so
+#usr/lib/libgettextpo.a
+#usr/lib/libgettextpo.la
+#usr/lib/libgettextpo.so
+#usr/lib/libgettextpo.so.0
+#usr/lib/libgettextpo.so.0.0.0
+#usr/lib/libgettextsrc-0.12.1.so
+#usr/lib/libgettextsrc.la
+#usr/lib/libgettextsrc.so
+#usr/lib/preloadable_libintl.so
+#usr/share/aclocal
+#usr/share/aclocal/codeset.m4
+#usr/share/aclocal/gettext.m4
+#usr/share/aclocal/glibc21.m4
+#usr/share/aclocal/iconv.m4
+#usr/share/aclocal/intdiv0.m4
+#usr/share/aclocal/inttypes-pri.m4
+#usr/share/aclocal/inttypes.m4
+#usr/share/aclocal/inttypes_h.m4
+#usr/share/aclocal/isc-posix.m4
+#usr/share/aclocal/lcmessage.m4
+#usr/share/aclocal/lib-ld.m4
+#usr/share/aclocal/lib-link.m4
+#usr/share/aclocal/lib-prefix.m4
+#usr/share/aclocal/nls.m4
+#usr/share/aclocal/po.m4
+#usr/share/aclocal/progtest.m4
+#usr/share/aclocal/stdint_h.m4
+#usr/share/aclocal/uintmax_t.m4
+#usr/share/aclocal/ulonglong.m4
+#usr/share/doc/gettext
+#usr/share/doc/gettext/autopoint.1.html
+#usr/share/doc/gettext/bind_textdomain_codeset.3.html
+#usr/share/doc/gettext/bindtextdomain.3.html
+#usr/share/doc/gettext/gettext.1.html
+#usr/share/doc/gettext/gettext.3.html
+#usr/share/doc/gettext/gettext_1.html
+#usr/share/doc/gettext/gettext_10.html
+#usr/share/doc/gettext/gettext_11.html
+#usr/share/doc/gettext/gettext_12.html
+#usr/share/doc/gettext/gettext_13.html
+#usr/share/doc/gettext/gettext_14.html
+#usr/share/doc/gettext/gettext_15.html
+#usr/share/doc/gettext/gettext_16.html
+#usr/share/doc/gettext/gettext_17.html
+#usr/share/doc/gettext/gettext_18.html
+#usr/share/doc/gettext/gettext_19.html
+#usr/share/doc/gettext/gettext_2.html
+#usr/share/doc/gettext/gettext_20.html
+#usr/share/doc/gettext/gettext_21.html
+#usr/share/doc/gettext/gettext_22.html
+#usr/share/doc/gettext/gettext_3.html
+#usr/share/doc/gettext/gettext_4.html
+#usr/share/doc/gettext/gettext_5.html
+#usr/share/doc/gettext/gettext_6.html
+#usr/share/doc/gettext/gettext_7.html
+#usr/share/doc/gettext/gettext_8.html
+#usr/share/doc/gettext/gettext_9.html
+#usr/share/doc/gettext/gettext_foot.html
+#usr/share/doc/gettext/gettext_toc.html
+#usr/share/doc/gettext/gettextize.1.html
+#usr/share/doc/gettext/javadoc1
+#usr/share/doc/gettext/javadoc1/AllNames.html
+#usr/share/doc/gettext/javadoc1/gnu.gettext.GettextResource.html
+#usr/share/doc/gettext/javadoc1/images
+#usr/share/doc/gettext/javadoc1/images/blue-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/blue-ball.gif
+#usr/share/doc/gettext/javadoc1/images/class-index.gif
+#usr/share/doc/gettext/javadoc1/images/constructor-index.gif
+#usr/share/doc/gettext/javadoc1/images/constructors.gif
+#usr/share/doc/gettext/javadoc1/images/cyan-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/cyan-ball.gif
+#usr/share/doc/gettext/javadoc1/images/error-index.gif
+#usr/share/doc/gettext/javadoc1/images/exception-index.gif
+#usr/share/doc/gettext/javadoc1/images/green-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/green-ball.gif
+#usr/share/doc/gettext/javadoc1/images/interface-index.gif
+#usr/share/doc/gettext/javadoc1/images/magenta-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/magenta-ball.gif
+#usr/share/doc/gettext/javadoc1/images/method-index.gif
+#usr/share/doc/gettext/javadoc1/images/methods.gif
+#usr/share/doc/gettext/javadoc1/images/package-index.gif
+#usr/share/doc/gettext/javadoc1/images/red-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/red-ball.gif
+#usr/share/doc/gettext/javadoc1/images/variable-index.gif
+#usr/share/doc/gettext/javadoc1/images/variables.gif
+#usr/share/doc/gettext/javadoc1/images/yellow-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/yellow-ball.gif
+#usr/share/doc/gettext/javadoc1/packages.html
+#usr/share/doc/gettext/javadoc1/tree.html
+#usr/share/doc/gettext/javadoc2
+#usr/share/doc/gettext/javadoc2/allclasses-frame.html
+#usr/share/doc/gettext/javadoc2/deprecated-list.html
+#usr/share/doc/gettext/javadoc2/gnu
+#usr/share/doc/gettext/javadoc2/gnu/gettext
+#usr/share/doc/gettext/javadoc2/gnu/gettext/GettextResource.html
+#usr/share/doc/gettext/javadoc2/gnu/gettext/package-frame.html
+#usr/share/doc/gettext/javadoc2/gnu/gettext/package-summary.html
+#usr/share/doc/gettext/javadoc2/gnu/gettext/package-tree.html
+#usr/share/doc/gettext/javadoc2/help-doc.html
+#usr/share/doc/gettext/javadoc2/index-all.html
+#usr/share/doc/gettext/javadoc2/index.html
+#usr/share/doc/gettext/javadoc2/overview-tree.html
+#usr/share/doc/gettext/javadoc2/package-list
+#usr/share/doc/gettext/javadoc2/packages.html
+#usr/share/doc/gettext/javadoc2/serialized-form.html
+#usr/share/doc/gettext/javadoc2/stylesheet.css
+#usr/share/doc/gettext/msgattrib.1.html
+#usr/share/doc/gettext/msgcat.1.html
+#usr/share/doc/gettext/msgcmp.1.html
+#usr/share/doc/gettext/msgcomm.1.html
+#usr/share/doc/gettext/msgconv.1.html
+#usr/share/doc/gettext/msgen.1.html
+#usr/share/doc/gettext/msgexec.1.html
+#usr/share/doc/gettext/msgfilter.1.html
+#usr/share/doc/gettext/msgfmt.1.html
+#usr/share/doc/gettext/msggrep.1.html
+#usr/share/doc/gettext/msginit.1.html
+#usr/share/doc/gettext/msgmerge.1.html
+#usr/share/doc/gettext/msgunfmt.1.html
+#usr/share/doc/gettext/msguniq.1.html
+#usr/share/doc/gettext/ngettext.1.html
+#usr/share/doc/gettext/ngettext.3.html
+#usr/share/doc/gettext/textdomain.3.html
+#usr/share/doc/gettext/xgettext.1.html
+#usr/share/doc/libasprintf
+#usr/share/doc/libasprintf/autosprintf.html
+#usr/share/gettext
+#usr/share/gettext/ABOUT-NLS
+#usr/share/gettext/archive.tar.gz
+#usr/share/gettext/config.rpath
+#usr/share/gettext/gettext.h
+#usr/share/gettext/intl
+#usr/share/gettext/intl/COPYING.LIB-2.0
+#usr/share/gettext/intl/COPYING.LIB-2.1
+#usr/share/gettext/intl/ChangeLog
+#usr/share/gettext/intl/Makefile.in
+#usr/share/gettext/intl/VERSION
+#usr/share/gettext/intl/bindtextdom.c
+#usr/share/gettext/intl/config.charset
+#usr/share/gettext/intl/dcgettext.c
+#usr/share/gettext/intl/dcigettext.c
+#usr/share/gettext/intl/dcngettext.c
+#usr/share/gettext/intl/dgettext.c
+#usr/share/gettext/intl/dngettext.c
+#usr/share/gettext/intl/eval-plural.h
+#usr/share/gettext/intl/explodename.c
+#usr/share/gettext/intl/finddomain.c
+#usr/share/gettext/intl/gettext.c
+#usr/share/gettext/intl/gettextP.h
+#usr/share/gettext/intl/gmo.h
+#usr/share/gettext/intl/hash-string.h
+#usr/share/gettext/intl/intl-compat.c
+#usr/share/gettext/intl/l10nflist.c
+#usr/share/gettext/intl/libgnuintl.h.in
+#usr/share/gettext/intl/loadinfo.h
+#usr/share/gettext/intl/loadmsgcat.c
+#usr/share/gettext/intl/localcharset.c
+#usr/share/gettext/intl/localcharset.h
+#usr/share/gettext/intl/locale.alias
+#usr/share/gettext/intl/localealias.c
+#usr/share/gettext/intl/localename.c
+#usr/share/gettext/intl/log.c
+#usr/share/gettext/intl/ngettext.c
+#usr/share/gettext/intl/os2compat.c
+#usr/share/gettext/intl/os2compat.h
+#usr/share/gettext/intl/osdep.c
+#usr/share/gettext/intl/plural-exp.c
+#usr/share/gettext/intl/plural-exp.h
+#usr/share/gettext/intl/plural.c
+#usr/share/gettext/intl/plural.y
+#usr/share/gettext/intl/ref-add.sin
+#usr/share/gettext/intl/ref-del.sin
+#usr/share/gettext/intl/relocatable.c
+#usr/share/gettext/intl/relocatable.h
+#usr/share/gettext/intl/textdomain.c
+#usr/share/gettext/mkinstalldirs
+#usr/share/gettext/msgunfmt.tcl
+#usr/share/gettext/po
+#usr/share/gettext/po/Makefile.in.in
+#usr/share/gettext/po/Makevars.template
+#usr/share/gettext/po/Rules-quot
+#usr/share/gettext/po/boldquot.sed
+#usr/share/gettext/po/en@boldquot.header
+#usr/share/gettext/po/en@quot.header
+#usr/share/gettext/po/insert-header.sin
+#usr/share/gettext/po/quot.sed
+#usr/share/gettext/po/remove-potcdate.sin
+#usr/share/gettext/projects
+#usr/share/gettext/projects/GNOME
+#usr/share/gettext/projects/GNOME/team-address
+#usr/share/gettext/projects/GNOME/teams.html
+#usr/share/gettext/projects/GNOME/teams.url
+#usr/share/gettext/projects/GNOME/trigger
+#usr/share/gettext/projects/KDE
+#usr/share/gettext/projects/KDE/team-address
+#usr/share/gettext/projects/KDE/teams.html
+#usr/share/gettext/projects/KDE/teams.url
+#usr/share/gettext/projects/KDE/trigger
+#usr/share/gettext/projects/TP
+#usr/share/gettext/projects/TP/team-address
+#usr/share/gettext/projects/TP/teams.html
+#usr/share/gettext/projects/TP/teams.url
+#usr/share/gettext/projects/TP/trigger
+#usr/share/gettext/projects/index
+#usr/share/gettext/projects/team-address
+#usr/share/info/autosprintf.info
+#usr/share/info/gettext.info
+#usr/share/info/gettext.info-1
+#usr/share/info/gettext.info-10
+#usr/share/info/gettext.info-2
+#usr/share/info/gettext.info-3
+#usr/share/info/gettext.info-4
+#usr/share/info/gettext.info-5
+#usr/share/info/gettext.info-6
+#usr/share/info/gettext.info-7
+#usr/share/info/gettext.info-8
+#usr/share/info/gettext.info-9
+#usr/share/man/man1/autopoint.1
+#usr/share/man/man1/gettext.1
+#usr/share/man/man1/gettextize.1
+#usr/share/man/man1/msgattrib.1
+#usr/share/man/man1/msgcat.1
+#usr/share/man/man1/msgcmp.1
+#usr/share/man/man1/msgcomm.1
+#usr/share/man/man1/msgconv.1
+#usr/share/man/man1/msgen.1
+#usr/share/man/man1/msgexec.1
+#usr/share/man/man1/msgfilter.1
+#usr/share/man/man1/msgfmt.1
+#usr/share/man/man1/msggrep.1
+#usr/share/man/man1/msginit.1
+#usr/share/man/man1/msgmerge.1
+#usr/share/man/man1/msgunfmt.1
+#usr/share/man/man1/msguniq.1
+#usr/share/man/man1/ngettext.1
+#usr/share/man/man1/xgettext.1
+#usr/share/man/man3/bind_textdomain_codeset.3
+#usr/share/man/man3/bindtextdomain.3
+#usr/share/man/man3/dcgettext.3
+#usr/share/man/man3/dcngettext.3
+#usr/share/man/man3/dgettext.3
+#usr/share/man/man3/dngettext.3
+#usr/share/man/man3/gettext.3
+#usr/share/man/man3/ngettext.3
+#usr/share/man/man3/textdomain.3
+##
+## net-tools-1.60
+##
+bin/dnsdomainname
+#bin/domainname
+bin/hostname
+bin/netstat
+#bin/nisdomainname
+#bin/ypdomainname
+sbin/arp
+sbin/ifconfig
+sbin/nameif
+#sbin/plipconfig
+sbin/rarp
+sbin/route
+sbin/slattach
+sbin/mii-tool
+#usr/share/man/man1/dnsdomainname.1
+#usr/share/man/man1/domainname.1
+#usr/share/man/man1/hostname.1
+#usr/share/man/man1/nisdomainname.1
+#usr/share/man/man1/ypdomainname.1
+#usr/share/man/man5/ethers.5
+#usr/share/man/man8/arp.8
+#usr/share/man/man8/ifconfig.8
+#usr/share/man/man8/mii-tool.8
+#usr/share/man/man8/nameif.8
+#usr/share/man/man8/netstat.8
+#usr/share/man/man8/plipconfig.8
+#usr/share/man/man8/rarp.8
+#usr/share/man/man8/route.8
+#usr/share/man/man8/slattach.8
+##
+## inetutils-1.4.2
+##
+bin/ping
+#usr/bin/ftp
+#usr/bin/rcp
+#usr/bin/rlogin
+#usr/bin/rsh
+#usr/bin/talk
+#usr/bin/telnet
+#usr/bin/tftp
+#usr/share/info/inetutils.info
+#usr/share/info/inetutils.info-1
+#usr/share/info/inetutils.info-2
+#usr/share/info/inetutils.info-3
+#usr/share/man/man1/ftp.1
+#usr/share/man/man1/logger.1
+#usr/share/man/man1/rcp.1
+#usr/share/man/man1/rlogin.1
+#usr/share/man/man1/rsh.1
+#usr/share/man/man1/talk.1
+#usr/share/man/man1/telnet.1
+#usr/share/man/man1/tftp.1
+#usr/share/man/man5/syslog.conf.5
+#usr/share/man/man8/ftpd.8
+#usr/share/man/man8/inetd.8
+#usr/share/man/man8/ping.8
+#usr/share/man/man8/rexecd.8
+#usr/share/man/man8/rlogind.8
+#usr/share/man/man8/rshd.8
+#usr/share/man/man8/syslogd.8
+#usr/share/man/man8/talkd.8
+#usr/share/man/man8/telnetd.8
+#usr/share/man/man8/tftpd.8
+##
+## perl-5.8.5
+##
+#usr/bin/a2p
+#usr/bin/c2ph
+#usr/bin/dprofpp
+#usr/bin/enc2xs
+#usr/bin/find2perl
+#usr/bin/h2ph
+#usr/bin/h2xs
+#usr/bin/libnetcfg
+usr/bin/perl
+usr/bin/perl5.8.5
+#usr/bin/perlbug
+#usr/bin/perlcc
+#usr/bin/perldoc
+#usr/bin/perlivp
+#usr/bin/piconv
+#usr/bin/pl2pm
+#usr/bin/pod2html
+#usr/bin/pod2latex
+#usr/bin/pod2man
+#usr/bin/pod2text
+#usr/bin/pod2usage
+#usr/bin/podchecker
+#usr/bin/podselect
+#usr/bin/psed
+#usr/bin/pstruct
+#usr/bin/s2p
+usr/bin/sperl5.8.5
+#usr/bin/splain
+usr/bin/suidperl
+#usr/bin/xsubpp
+#usr/lib/perl5
+#usr/lib/perl5/5.8.5
+usr/lib/perl5/5.8.5/AnyDBM_File.pm
+#usr/lib/perl5/5.8.5/Attribute
+#usr/lib/perl5/5.8.5/Attribute/Handlers
+usr/lib/perl5/5.8.5/Attribute/Handlers.pm
+#usr/lib/perl5/5.8.5/Attribute/Handlers/Changes
+#usr/lib/perl5/5.8.5/Attribute/Handlers/README
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/Demo.pm
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/Descriptions.pm
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/MyClass.pm
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo2.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo3.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo4.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_call.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_chain.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_cycle.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_hashdir.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_phases.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_range.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_rawdata.pl
+usr/lib/perl5/5.8.5/AutoLoader.pm
+usr/lib/perl5/5.8.5/AutoSplit.pm
+#usr/lib/perl5/5.8.5/B
+#usr/lib/perl5/5.8.5/B/assemble
+#usr/lib/perl5/5.8.5/B/cc_harness
+#usr/lib/perl5/5.8.5/B/disassemble
+#usr/lib/perl5/5.8.5/B/makeliblinks
+#usr/lib/perl5/5.8.5/Benchmark.pm
+#usr/lib/perl5/5.8.5/CGI
+usr/lib/perl5/5.8.5/CGI.pm
+usr/lib/perl5/5.8.5/CGI/Apache.pm
+usr/lib/perl5/5.8.5/CGI/Carp.pm
+usr/lib/perl5/5.8.5/CGI/Cookie.pm
+usr/lib/perl5/5.8.5/CGI/Fast.pm
+usr/lib/perl5/5.8.5/CGI/Pretty.pm
+usr/lib/perl5/5.8.5/CGI/Push.pm
+usr/lib/perl5/5.8.5/CGI/Switch.pm
+usr/lib/perl5/5.8.5/CGI/Util.pm
+#usr/lib/perl5/5.8.5/CGI/eg
+#usr/lib/perl5/5.8.5/CGI/eg/RunMeFirst
+#usr/lib/perl5/5.8.5/CGI/eg/caution.xbm
+#usr/lib/perl5/5.8.5/CGI/eg/clickable_image.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/cookie.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/crash.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/customize.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/diff_upload.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/dna_small_gif.uu
+#usr/lib/perl5/5.8.5/CGI/eg/file_upload.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/frameset.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/index.html
+#usr/lib/perl5/5.8.5/CGI/eg/internal_links.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/javascript.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/make_links.pl
+#usr/lib/perl5/5.8.5/CGI/eg/monty.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/multiple_forms.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/nph-clock.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/nph-multipart.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/popup.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/save_state.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/tryit.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/wilogo_gif.uu
+#usr/lib/perl5/5.8.5/CPAN
+#usr/lib/perl5/5.8.5/CPAN.pm
+#usr/lib/perl5/5.8.5/CPAN/FirstTime.pm
+#usr/lib/perl5/5.8.5/CPAN/Nox.pm
+#usr/lib/perl5/5.8.5/Carp
+usr/lib/perl5/5.8.5/Carp.pm
+usr/lib/perl5/5.8.5/Carp/Heavy.pm
+#usr/lib/perl5/5.8.5/Class
+#usr/lib/perl5/5.8.5/Class/ISA
+usr/lib/perl5/5.8.5/Class/ISA.pm
+#usr/lib/perl5/5.8.5/Class/ISA/test.pl
+usr/lib/perl5/5.8.5/Class/Struct.pm
+usr/lib/perl5/5.8.5/DB.pm
+#usr/lib/perl5/5.8.5/Devel
+#usr/lib/perl5/5.8.5/Devel/SelfStubber.pm
+#usr/lib/perl5/5.8.5/Digest.pm
+#usr/lib/perl5/5.8.5/DirHandle.pm
+#usr/lib/perl5/5.8.5/Dumpvalue.pm
+#usr/lib/perl5/5.8.5/Encode
+#usr/lib/perl5/5.8.5/Encode/CN
+#usr/lib/perl5/5.8.5/Encode/CN/HZ.pm
+#usr/lib/perl5/5.8.5/Encode/Changes.e2x
+#usr/lib/perl5/5.8.5/Encode/ConfigLocal_PM.e2x
+#usr/lib/perl5/5.8.5/Encode/JP
+#usr/lib/perl5/5.8.5/Encode/JP/H2Z.pm
+#usr/lib/perl5/5.8.5/Encode/JP/JIS7.pm
+#usr/lib/perl5/5.8.5/Encode/KR
+#usr/lib/perl5/5.8.5/Encode/KR/2022_KR.pm
+#usr/lib/perl5/5.8.5/Encode/MIME
+#usr/lib/perl5/5.8.5/Encode/MIME/Header.pm
+#usr/lib/perl5/5.8.5/Encode/Makefile_PL.e2x
+#usr/lib/perl5/5.8.5/Encode/PerlIO.pod
+#usr/lib/perl5/5.8.5/Encode/README.e2x
+#usr/lib/perl5/5.8.5/Encode/Supported.pod
+#usr/lib/perl5/5.8.5/Encode/_PM.e2x
+#usr/lib/perl5/5.8.5/Encode/_T.e2x
+#usr/lib/perl5/5.8.5/Encode/encode.h
+usr/lib/perl5/5.8.5/English.pm
+usr/lib/perl5/5.8.5/Env.pm
+#usr/lib/perl5/5.8.5/Exporter
+usr/lib/perl5/5.8.5/Exporter.pm
+usr/lib/perl5/5.8.5/Exporter/Heavy.pm
+#usr/lib/perl5/5.8.5/ExtUtils
+#usr/lib/perl5/5.8.5/ExtUtils/Changes
+#usr/lib/perl5/5.8.5/ExtUtils/Command
+#usr/lib/perl5/5.8.5/ExtUtils/Command.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Command/MM.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Constant.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Embed.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Install.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Installed.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Liblist
+#usr/lib/perl5/5.8.5/ExtUtils/Liblist.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Liblist/Kid.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MANIFEST.SKIP
+#usr/lib/perl5/5.8.5/ExtUtils/MM.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_Any.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_BeOS.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_Cygwin.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_DOS.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_MacOS.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_NW5.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_OS2.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_UWIN.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_Unix.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_VMS.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_Win32.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_Win95.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MY.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MakeMaker.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Manifest.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Miniperl.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Mkbootstrap.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Mksymlists.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Packlist.pm
+#usr/lib/perl5/5.8.5/ExtUtils/instmodsh
+#usr/lib/perl5/5.8.5/ExtUtils/testlib.pm
+#usr/lib/perl5/5.8.5/ExtUtils/typemap
+#usr/lib/perl5/5.8.5/ExtUtils/xsubpp
+usr/lib/perl5/5.8.5/Fatal.pm
+#usr/lib/perl5/5.8.5/File
+usr/lib/perl5/5.8.5/File/Basename.pm
+usr/lib/perl5/5.8.5/File/CheckTree.pm
+usr/lib/perl5/5.8.5/File/Compare.pm
+usr/lib/perl5/5.8.5/File/Copy.pm
+#usr/lib/perl5/5.8.5/File/DosGlob.pm
+usr/lib/perl5/5.8.5/File/Find.pm
+usr/lib/perl5/5.8.5/File/Path.pm
+#usr/lib/perl5/5.8.5/File/Spec
+usr/lib/perl5/5.8.5/File/Spec.pm
+#usr/lib/perl5/5.8.5/File/Spec/Cygwin.pm
+#usr/lib/perl5/5.8.5/File/Spec/Epoc.pm
+usr/lib/perl5/5.8.5/File/Spec/Functions.pm
+#usr/lib/perl5/5.8.5/File/Spec/Mac.pm
+#usr/lib/perl5/5.8.5/File/Spec/OS2.pm
+usr/lib/perl5/5.8.5/File/Spec/Unix.pm
+#usr/lib/perl5/5.8.5/File/Spec/VMS.pm
+#usr/lib/perl5/5.8.5/File/Spec/Win32.pm
+usr/lib/perl5/5.8.5/File/Temp.pm
+usr/lib/perl5/5.8.5/File/stat.pm
+usr/lib/perl5/5.8.5/FileCache.pm
+usr/lib/perl5/5.8.5/FileHandle.pm
+#usr/lib/perl5/5.8.5/Filter
+usr/lib/perl5/5.8.5/Filter/Simple
+usr/lib/perl5/5.8.5/Filter/Simple.pm
+#usr/lib/perl5/5.8.5/Filter/Simple/Changes
+#usr/lib/perl5/5.8.5/Filter/Simple/README
+usr/lib/perl5/5.8.5/FindBin.pm
+#usr/lib/perl5/5.8.5/Getopt
+#usr/lib/perl5/5.8.5/Getopt/Long
+usr/lib/perl5/5.8.5/Getopt/Long.pm
+#usr/lib/perl5/5.8.5/Getopt/Long/CHANGES
+#usr/lib/perl5/5.8.5/Getopt/Long/README
+usr/lib/perl5/5.8.5/Getopt/Std.pm
+#usr/lib/perl5/5.8.5/Hash
+usr/lib/perl5/5.8.5/Hash/Util.pm
+#usr/lib/perl5/5.8.5/I18N
+usr/lib/perl5/5.8.5/I18N/Collate.pm
+#usr/lib/perl5/5.8.5/I18N/LangTags
+usr/lib/perl5/5.8.5/I18N/LangTags.pm
+#usr/lib/perl5/5.8.5/I18N/LangTags/ChangeLog
+usr/lib/perl5/5.8.5/I18N/LangTags/List.pm
+#usr/lib/perl5/5.8.5/I18N/LangTags/README
+#usr/lib/perl5/5.8.5/I18N/LangTags/test.pl
+#usr/lib/perl5/5.8.5/IO
+#usr/lib/perl5/5.8.5/IO/Socket
+usr/lib/perl5/5.8.5/IO/Socket/INET.pm
+usr/lib/perl5/5.8.5/IO/Socket/UNIX.pm
+#usr/lib/perl5/5.8.5/IPC
+#usr/lib/perl5/5.8.5/IPC/Open2.pm
+#usr/lib/perl5/5.8.5/IPC/Open3.pm
+#usr/lib/perl5/5.8.5/List
+usr/lib/perl5/5.8.5/List/Util.pm
+#usr/lib/perl5/5.8.5/Locale
+#usr/lib/perl5/5.8.5/Locale/Codes
+#usr/lib/perl5/5.8.5/Locale/Codes/ChangeLog
+#usr/lib/perl5/5.8.5/Locale/Codes/README
+#usr/lib/perl5/5.8.5/Locale/Constants.pm
+#usr/lib/perl5/5.8.5/Locale/Constants.pod
+#usr/lib/perl5/5.8.5/Locale/Country.pm
+#usr/lib/perl5/5.8.5/Locale/Country.pod
+#usr/lib/perl5/5.8.5/Locale/Currency.pm
+#usr/lib/perl5/5.8.5/Locale/Currency.pod
+#usr/lib/perl5/5.8.5/Locale/Language.pm
+#usr/lib/perl5/5.8.5/Locale/Language.pod
+#usr/lib/perl5/5.8.5/Locale/Maketext
+#usr/lib/perl5/5.8.5/Locale/Maketext.pm
+#usr/lib/perl5/5.8.5/Locale/Maketext.pod
+#usr/lib/perl5/5.8.5/Locale/Maketext/ChangeLog
+#usr/lib/perl5/5.8.5/Locale/Maketext/README
+#usr/lib/perl5/5.8.5/Locale/Maketext/TPJ13.pod
+#usr/lib/perl5/5.8.5/Locale/Maketext/test.pl
+#usr/lib/perl5/5.8.5/Locale/Script.pm
+#usr/lib/perl5/5.8.5/Locale/Script.pod
+#usr/lib/perl5/5.8.5/Math
+#usr/lib/perl5/5.8.5/Math/BigFloat
+usr/lib/perl5/5.8.5/Math/BigFloat.pm
+usr/lib/perl5/5.8.5/Math/BigFloat/Trace.pm
+#usr/lib/perl5/5.8.5/Math/BigInt
+usr/lib/perl5/5.8.5/Math/BigInt.pm
+usr/lib/perl5/5.8.5/Math/BigInt/Calc.pm
+usr/lib/perl5/5.8.5/Math/BigInt/Trace.pm
+usr/lib/perl5/5.8.5/Math/BigRat.pm
+usr/lib/perl5/5.8.5/Math/Complex.pm
+usr/lib/perl5/5.8.5/Math/Trig.pm
+#usr/lib/perl5/5.8.5/Memoize
+usr/lib/perl5/5.8.5/Memoize.pm
+usr/lib/perl5/5.8.5/Memoize/AnyDBM_File.pm
+usr/lib/perl5/5.8.5/Memoize/Expire.pm
+usr/lib/perl5/5.8.5/Memoize/ExpireFile.pm
+usr/lib/perl5/5.8.5/Memoize/ExpireTest.pm
+usr/lib/perl5/5.8.5/Memoize/NDBM_File.pm
+#usr/lib/perl5/5.8.5/Memoize/README
+usr/lib/perl5/5.8.5/Memoize/SDBM_File.pm
+usr/lib/perl5/5.8.5/Memoize/Storable.pm
+#usr/lib/perl5/5.8.5/Memoize/TODO
+#usr/lib/perl5/5.8.5/NEXT
+usr/lib/perl5/5.8.5/NEXT.pm
+#usr/lib/perl5/5.8.5/NEXT/Changes
+#usr/lib/perl5/5.8.5/NEXT/README
+#usr/lib/perl5/5.8.5/Net
+#usr/lib/perl5/5.8.5/Net/ChangeLog.libnet
+usr/lib/perl5/5.8.5/Net/Cmd.pm
+#usr/lib/perl5/5.8.5/Net/Config.eg
+usr/lib/perl5/5.8.5/Net/Config.pm
+usr/lib/perl5/5.8.5/Net/Domain.pm
+#usr/lib/perl5/5.8.5/Net/FTP
+#usr/lib/perl5/5.8.5/Net/FTP.pm
+#usr/lib/perl5/5.8.5/Net/FTP/A.pm
+#usr/lib/perl5/5.8.5/Net/FTP/E.pm
+#usr/lib/perl5/5.8.5/Net/FTP/I.pm
+#usr/lib/perl5/5.8.5/Net/FTP/L.pm
+#usr/lib/perl5/5.8.5/Net/FTP/dataconn.pm
+usr/lib/perl5/5.8.5/Net/Hostname.eg
+#usr/lib/perl5/5.8.5/Net/NNTP.pm
+#usr/lib/perl5/5.8.5/Net/Netrc.pm
+#usr/lib/perl5/5.8.5/Net/POP3.pm
+#usr/lib/perl5/5.8.5/Net/Ping
+usr/lib/perl5/5.8.5/Net/Ping.pm
+#usr/lib/perl5/5.8.5/Net/Ping/Changes
+#usr/lib/perl5/5.8.5/Net/Ping/README
+#usr/lib/perl5/5.8.5/Net/README.libnet
+usr/lib/perl5/5.8.5/Net/SMTP.pm
+usr/lib/perl5/5.8.5/Net/Time.pm
+#usr/lib/perl5/5.8.5/Net/demos
+#usr/lib/perl5/5.8.5/Net/demos/ftp
+#usr/lib/perl5/5.8.5/Net/demos/inetd
+#usr/lib/perl5/5.8.5/Net/demos/nntp
+#usr/lib/perl5/5.8.5/Net/demos/nntp.mirror
+#usr/lib/perl5/5.8.5/Net/demos/pop3
+#usr/lib/perl5/5.8.5/Net/demos/smtp.self
+#usr/lib/perl5/5.8.5/Net/demos/time
+usr/lib/perl5/5.8.5/Net/hostent.pm
+#usr/lib/perl5/5.8.5/Net/libnetFAQ.pod
+usr/lib/perl5/5.8.5/Net/netent.pm
+usr/lib/perl5/5.8.5/Net/protoent.pm
+usr/lib/perl5/5.8.5/Net/servent.pm
+#usr/lib/perl5/5.8.5/PerlIO
+usr/lib/perl5/5.8.5/PerlIO.pm
+#usr/lib/perl5/5.8.5/PerlIO/via
+usr/lib/perl5/5.8.5/PerlIO/via/QuotedPrint.pm
+#usr/lib/perl5/5.8.5/Pod
+#usr/lib/perl5/5.8.5/Pod/Checker.pm
+#usr/lib/perl5/5.8.5/Pod/Find.pm
+#usr/lib/perl5/5.8.5/Pod/Functions.pm
+#usr/lib/perl5/5.8.5/Pod/Html.pm
+#usr/lib/perl5/5.8.5/Pod/InputObjects.pm
+#usr/lib/perl5/5.8.5/Pod/LaTeX.pm
+#usr/lib/perl5/5.8.5/Pod/Man.pm
+#usr/lib/perl5/5.8.5/Pod/ParseLink.pm
+#usr/lib/perl5/5.8.5/Pod/ParseUtils.pm
+#usr/lib/perl5/5.8.5/Pod/Parser.pm
+#usr/lib/perl5/5.8.5/Pod/Plainer.pm
+#usr/lib/perl5/5.8.5/Pod/Select.pm
+#usr/lib/perl5/5.8.5/Pod/Text
+#usr/lib/perl5/5.8.5/Pod/Text.pm
+#usr/lib/perl5/5.8.5/Pod/Text/Color.pm
+#usr/lib/perl5/5.8.5/Pod/Text/Overstrike.pm
+#usr/lib/perl5/5.8.5/Pod/Text/Termcap.pm
+#usr/lib/perl5/5.8.5/Pod/Usage.pm
+#usr/lib/perl5/5.8.5/Scalar
+usr/lib/perl5/5.8.5/Scalar/Util.pm
+#usr/lib/perl5/5.8.5/Search
+usr/lib/perl5/5.8.5/Search/Dict.pm
+usr/lib/perl5/5.8.5/SelectSaver.pm
+usr/lib/perl5/5.8.5/SelfLoader.pm
+usr/lib/perl5/5.8.5/Shell.pm
+#usr/lib/perl5/5.8.5/Switch
+usr/lib/perl5/5.8.5/Switch.pm
+#usr/lib/perl5/5.8.5/Switch/Changes
+#usr/lib/perl5/5.8.5/Switch/README
+usr/lib/perl5/5.8.5/Symbol.pm
+#usr/lib/perl5/5.8.5/Term
+#usr/lib/perl5/5.8.5/Term/ANSIColor
+#usr/lib/perl5/5.8.5/Term/ANSIColor.pm
+#usr/lib/perl5/5.8.5/Term/ANSIColor/ChangeLog
+#usr/lib/perl5/5.8.5/Term/ANSIColor/README
+#usr/lib/perl5/5.8.5/Term/ANSIColor/test.pl
+#usr/lib/perl5/5.8.5/Term/Cap.pm
+#usr/lib/perl5/5.8.5/Term/Complete.pm
+#usr/lib/perl5/5.8.5/Term/ReadLine.pm
+#usr/lib/perl5/5.8.5/Test
+#usr/lib/perl5/5.8.5/Test.pm
+#usr/lib/perl5/5.8.5/Test/Builder.pm
+#usr/lib/perl5/5.8.5/Test/Harness
+#usr/lib/perl5/5.8.5/Test/Harness.pm
+#usr/lib/perl5/5.8.5/Test/Harness/Assert.pm
+#usr/lib/perl5/5.8.5/Test/Harness/Changes
+#usr/lib/perl5/5.8.5/Test/Harness/Iterator.pm
+#usr/lib/perl5/5.8.5/Test/Harness/Straps.pm
+#usr/lib/perl5/5.8.5/Test/More.pm
+#usr/lib/perl5/5.8.5/Test/Simple
+#usr/lib/perl5/5.8.5/Test/Simple.pm
+#usr/lib/perl5/5.8.5/Test/Simple/Changes
+#usr/lib/perl5/5.8.5/Test/Simple/README
+#usr/lib/perl5/5.8.5/Test/Tutorial.pod
+#usr/lib/perl5/5.8.5/Text
+#usr/lib/perl5/5.8.5/Text/Abbrev.pm
+#usr/lib/perl5/5.8.5/Text/Balanced
+#usr/lib/perl5/5.8.5/Text/Balanced.pm
+#usr/lib/perl5/5.8.5/Text/Balanced/Changes
+#usr/lib/perl5/5.8.5/Text/Balanced/README
+#usr/lib/perl5/5.8.5/Text/ParseWords.pm
+#usr/lib/perl5/5.8.5/Text/Soundex.pm
+#usr/lib/perl5/5.8.5/Text/Tabs.pm
+#usr/lib/perl5/5.8.5/Text/TabsWrap
+#usr/lib/perl5/5.8.5/Text/TabsWrap/CHANGELOG
+#usr/lib/perl5/5.8.5/Text/Wrap.pm
+#usr/lib/perl5/5.8.5/Thread
+usr/lib/perl5/5.8.5/Thread.pm
+usr/lib/perl5/5.8.5/Thread/Queue.pm
+usr/lib/perl5/5.8.5/Thread/Semaphore.pm
+#usr/lib/perl5/5.8.5/Tie
+usr/lib/perl5/5.8.5/Tie/Array.pm
+usr/lib/perl5/5.8.5/Tie/File.pm
+usr/lib/perl5/5.8.5/Tie/Handle.pm
+usr/lib/perl5/5.8.5/Tie/Hash.pm
+usr/lib/perl5/5.8.5/Tie/Memoize.pm
+usr/lib/perl5/5.8.5/Tie/RefHash.pm
+usr/lib/perl5/5.8.5/Tie/Scalar.pm
+usr/lib/perl5/5.8.5/Tie/SubstrHash.pm
+#usr/lib/perl5/5.8.5/Time
+usr/lib/perl5/5.8.5/Time/Local.pm
+usr/lib/perl5/5.8.5/Time/gmtime.pm
+usr/lib/perl5/5.8.5/Time/localtime.pm
+usr/lib/perl5/5.8.5/Time/tm.pm
+usr/lib/perl5/5.8.5/UNIVERSAL.pm
+#usr/lib/perl5/5.8.5/Unicode
+#usr/lib/perl5/5.8.5/Unicode/Collate
+usr/lib/perl5/5.8.5/Unicode/Collate.pm
+#usr/lib/perl5/5.8.5/Unicode/Collate/Changes
+#usr/lib/perl5/5.8.5/Unicode/Collate/README
+#usr/lib/perl5/5.8.5/Unicode/Collate/keys.txt
+#usr/lib/perl5/5.8.5/Unicode/README
+usr/lib/perl5/5.8.5/Unicode/UCD.pm
+#usr/lib/perl5/5.8.5/User
+usr/lib/perl5/5.8.5/User/grent.pm
+usr/lib/perl5/5.8.5/User/pwent.pm
+#usr/lib/perl5/5.8.5/Win32.pod
+usr/lib/perl5/5.8.5/abbrev.pl
+usr/lib/perl5/5.8.5/assert.pl
+usr/lib/perl5/5.8.5/attributes.pm
+usr/lib/perl5/5.8.5/autouse.pm
+usr/lib/perl5/5.8.5/base.pm
+usr/lib/perl5/5.8.5/bigfloat.pl
+usr/lib/perl5/5.8.5/bigint.pl
+usr/lib/perl5/5.8.5/bigint.pm
+usr/lib/perl5/5.8.5/bignum.pm
+usr/lib/perl5/5.8.5/bigrat.pl
+usr/lib/perl5/5.8.5/bigrat.pm
+usr/lib/perl5/5.8.5/blib.pm
+usr/lib/perl5/5.8.5/bytes.pm
+usr/lib/perl5/5.8.5/bytes_heavy.pl
+usr/lib/perl5/5.8.5/cacheout.pl
+usr/lib/perl5/5.8.5/charnames.pm
+usr/lib/perl5/5.8.5/complete.pl
+usr/lib/perl5/5.8.5/constant.pm
+usr/lib/perl5/5.8.5/ctime.pl
+usr/lib/perl5/5.8.5/diagnostics.pm
+usr/lib/perl5/5.8.5/dotsh.pl
+usr/lib/perl5/5.8.5/dumpvar.pl
+usr/lib/perl5/5.8.5/exceptions.pl
+usr/lib/perl5/5.8.5/fastcwd.pl
+usr/lib/perl5/5.8.5/fields.pm
+usr/lib/perl5/5.8.5/filetest.pm
+usr/lib/perl5/5.8.5/find.pl
+usr/lib/perl5/5.8.5/finddepth.pl
+usr/lib/perl5/5.8.5/flush.pl
+usr/lib/perl5/5.8.5/getcwd.pl
+usr/lib/perl5/5.8.5/getopt.pl
+usr/lib/perl5/5.8.5/getopts.pl
+usr/lib/perl5/5.8.5/hostname.pl
+#usr/lib/perl5/5.8.5/alpha-linux
+#usr/lib/perl5/5.8.5/alpha-linux/.packlist
+#usr/lib/perl5/5.8.5/alpha-linux/B
+#usr/lib/perl5/5.8.5/alpha-linux/B.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Asmdata.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Assembler.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Bblock.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Bytecode.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/C.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/CC.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Concise.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Debug.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Deparse.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Disassembler.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Lint.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Showlex.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Stackobj.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Stash.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Terse.pm
+#usr/lib/perl5/5.8.5/alpha-linux/B/Xref.pm
+usr/lib/perl5/5.8.5/alpha-linux/ByteLoader.pm
+#usr/lib/perl5/5.8.5/alpha-linux/CORE
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/EXTERN.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/INTERN.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/XSUB.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/av.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/cc_runtime.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/config.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/cop.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/cv.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/dosish.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/embed.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/embedvar.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/fakesdio.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/fakethr.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/form.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/gv.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/handy.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/hv.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/intrpvar.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/iperlsys.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/keywords.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/libperl.a
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/mg.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/nostdio.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/op.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/opcode.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/opnames.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/patchlevel.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/perl.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/perlapi.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/perlio.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/perliol.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/perlsdio.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/perlsfio.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/perlvars.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/perly.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/pp.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/pp_proto.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/proto.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/reentr.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/regcomp.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/regexp.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/regnodes.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/scope.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/sv.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/thrdvar.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/thread.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/uconfig.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/unixish.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/utf8.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/utfebcdic.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/util.h
+#usr/lib/perl5/5.8.5/alpha-linux/CORE/warnings.h
+usr/lib/perl5/5.8.5/alpha-linux/Config.pm
+usr/lib/perl5/5.8.5/alpha-linux/Cwd.pm
+#usr/lib/perl5/5.8.5/alpha-linux/Data
+usr/lib/perl5/5.8.5/alpha-linux/Data/Dumper.pm
+#usr/lib/perl5/5.8.5/alpha-linux/Devel
+#usr/lib/perl5/5.8.5/alpha-linux/Devel/DProf.pm
+#usr/lib/perl5/5.8.5/alpha-linux/Devel/PPPort.pm
+#usr/lib/perl5/5.8.5/alpha-linux/Devel/Peek.pm
+#usr/lib/perl5/5.8.5/alpha-linux/Digest
+usr/lib/perl5/5.8.5/alpha-linux/Digest/MD5.pm
+usr/lib/perl5/5.8.5/alpha-linux/DynaLoader.pm
+#usr/lib/perl5/5.8.5/alpha-linux/Encode
+usr/lib/perl5/5.8.5/alpha-linux/Encode.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/Alias.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/Byte.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/CJKConstants.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/CN.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/Config.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/EBCDIC.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/Encoder.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/Encoding.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/Guess.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/JP.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/KR.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/Symbol.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/TW.pm
+usr/lib/perl5/5.8.5/alpha-linux/Encode/Unicode.pm
+usr/lib/perl5/5.8.5/alpha-linux/Errno.pm
+usr/lib/perl5/5.8.5/alpha-linux/Fcntl.pm
+#usr/lib/perl5/5.8.5/alpha-linux/File
+usr/lib/perl5/5.8.5/alpha-linux/File/Glob.pm
+#usr/lib/perl5/5.8.5/alpha-linux/Filter
+#usr/lib/perl5/5.8.5/alpha-linux/Filter/Util
+usr/lib/perl5/5.8.5/alpha-linux/Filter/Util/Call.pm
+#usr/lib/perl5/5.8.5/alpha-linux/I18N
+usr/lib/perl5/5.8.5/alpha-linux/I18N/Langinfo.pm
+#usr/lib/perl5/5.8.5/alpha-linux/IO
+usr/lib/perl5/5.8.5/alpha-linux/IO.pm
+usr/lib/perl5/5.8.5/alpha-linux/IO/Dir.pm
+usr/lib/perl5/5.8.5/alpha-linux/IO/File.pm
+usr/lib/perl5/5.8.5/alpha-linux/IO/Handle.pm
+usr/lib/perl5/5.8.5/alpha-linux/IO/Pipe.pm
+usr/lib/perl5/5.8.5/alpha-linux/IO/Poll.pm
+usr/lib/perl5/5.8.5/alpha-linux/IO/Seekable.pm
+usr/lib/perl5/5.8.5/alpha-linux/IO/Select.pm
+usr/lib/perl5/5.8.5/alpha-linux/IO/Socket.pm
+#usr/lib/perl5/5.8.5/alpha-linux/IPC
+#usr/lib/perl5/5.8.5/alpha-linux/IPC/Msg.pm
+#usr/lib/perl5/5.8.5/alpha-linux/IPC/Semaphore.pm
+#usr/lib/perl5/5.8.5/alpha-linux/IPC/SysV.pm
+#usr/lib/perl5/5.8.5/alpha-linux/MIME
+usr/lib/perl5/5.8.5/alpha-linux/MIME/Base64.pm
+usr/lib/perl5/5.8.5/alpha-linux/MIME/QuotedPrint.pm
+usr/lib/perl5/5.8.5/alpha-linux/O.pm
+usr/lib/perl5/5.8.5/alpha-linux/Opcode.pm
+usr/lib/perl5/5.8.5/alpha-linux/POSIX.pm
+#usr/lib/perl5/5.8.5/alpha-linux/POSIX.pod
+#usr/lib/perl5/5.8.5/alpha-linux/PerlIO
+usr/lib/perl5/5.8.5/alpha-linux/PerlIO/encoding.pm
+usr/lib/perl5/5.8.5/alpha-linux/PerlIO/scalar.pm
+usr/lib/perl5/5.8.5/alpha-linux/PerlIO/via.pm
+usr/lib/perl5/5.8.5/alpha-linux/SDBM_File.pm
+usr/lib/perl5/5.8.5/alpha-linux/Safe.pm
+usr/lib/perl5/5.8.5/alpha-linux/Socket.pm
+usr/lib/perl5/5.8.5/alpha-linux/Storable.pm
+#usr/lib/perl5/5.8.5/alpha-linux/Sys
+usr/lib/perl5/5.8.5/alpha-linux/Sys/Hostname.pm
+usr/lib/perl5/5.8.5/alpha-linux/Sys/Syslog.pm
+#usr/lib/perl5/5.8.5/alpha-linux/Time
+usr/lib/perl5/5.8.5/alpha-linux/Time/HiRes.pm
+#usr/lib/perl5/5.8.5/alpha-linux/Unicode
+usr/lib/perl5/5.8.5/alpha-linux/Unicode/Normalize.pm
+#usr/lib/perl5/5.8.5/alpha-linux/XS
+usr/lib/perl5/5.8.5/alpha-linux/XS/APItest.pm
+usr/lib/perl5/5.8.5/alpha-linux/XS/Typemap.pm
+usr/lib/perl5/5.8.5/alpha-linux/XSLoader.pm
+usr/lib/perl5/5.8.5/alpha-linux/attrs.pm
+#usr/lib/perl5/5.8.5/alpha-linux/auto
+#usr/lib/perl5/5.8.5/alpha-linux/auto/B
+#usr/lib/perl5/5.8.5/alpha-linux/auto/B/B.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/B/B.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/B/C
+#usr/lib/perl5/5.8.5/alpha-linux/auto/B/C/C.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/B/C/C.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/ByteLoader
+#usr/lib/perl5/5.8.5/alpha-linux/auto/ByteLoader/ByteLoader.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/ByteLoader/ByteLoader.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Cwd
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Cwd/Cwd.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Cwd/Cwd.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Data
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Data/Dumper
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Data/Dumper/Dumper.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Data/Dumper/Dumper.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Devel
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Devel/DProf
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Devel/DProf/DProf.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Devel/DProf/DProf.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Devel/PPPort
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Devel/PPPort/PPPort.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Devel/PPPort/PPPort.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Devel/Peek
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Devel/Peek/Peek.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Devel/Peek/Peek.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Digest
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Digest/MD5
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Digest/MD5/MD5.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Digest/MD5/MD5.so
+usr/lib/perl5/5.8.5/alpha-linux/auto/DynaLoader
+#usr/lib/perl5/5.8.5/alpha-linux/auto/DynaLoader/DynaLoader.a
+#usr/lib/perl5/5.8.5/alpha-linux/auto/DynaLoader/autosplit.ix
+#usr/lib/perl5/5.8.5/alpha-linux/auto/DynaLoader/dl_expandspec.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/DynaLoader/dl_find_symbol_anywhere.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/DynaLoader/dl_findfile.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/DynaLoader/extralibs.ld
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Byte
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Byte/Byte.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Byte/Byte.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/CN
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/CN/CN.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/CN/CN.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/EBCDIC
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/EBCDIC/EBCDIC.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/EBCDIC/EBCDIC.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Encode.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Encode.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/JP
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/JP/JP.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/JP/JP.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/KR
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/KR/KR.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/KR/KR.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Symbol
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Symbol/Symbol.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Symbol/Symbol.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/TW
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/TW/TW.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/TW/TW.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Unicode
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Unicode/Unicode.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Encode/Unicode/Unicode.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Fcntl
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Fcntl/Fcntl.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Fcntl/Fcntl.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/File
+#usr/lib/perl5/5.8.5/alpha-linux/auto/File/Glob
+#usr/lib/perl5/5.8.5/alpha-linux/auto/File/Glob/Glob.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/File/Glob/Glob.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Filter
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Filter/Util
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Filter/Util/Call
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Filter/Util/Call/Call.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Filter/Util/Call/Call.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/I18N
+#usr/lib/perl5/5.8.5/alpha-linux/auto/I18N/Langinfo
+#usr/lib/perl5/5.8.5/alpha-linux/auto/I18N/Langinfo/Langinfo.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/I18N/Langinfo/Langinfo.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/I18N/Langinfo/autosplit.ix
+#usr/lib/perl5/5.8.5/alpha-linux/auto/IO
+#usr/lib/perl5/5.8.5/alpha-linux/auto/IO/IO.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/IO/IO.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/IPC
+#usr/lib/perl5/5.8.5/alpha-linux/auto/IPC/SysV
+#usr/lib/perl5/5.8.5/alpha-linux/auto/IPC/SysV/SysV.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/IPC/SysV/SysV.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/List
+#usr/lib/perl5/5.8.5/alpha-linux/auto/List/Util
+#usr/lib/perl5/5.8.5/alpha-linux/auto/List/Util/Util.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/List/Util/Util.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/MIME
+#usr/lib/perl5/5.8.5/alpha-linux/auto/MIME/Base64
+#usr/lib/perl5/5.8.5/alpha-linux/auto/MIME/Base64/Base64.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/MIME/Base64/Base64.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Opcode
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Opcode/Opcode.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Opcode/Opcode.so
+usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/POSIX.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/POSIX.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/abs.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/alarm.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/assert.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/atan2.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/atexit.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/atof.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/atoi.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/atol.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/autosplit.ix
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/bsearch.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/calloc.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/chdir.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/chmod.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/chown.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/clearerr.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/closedir.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/cos.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/creat.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/div.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/errno.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/execl.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/execle.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/execlp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/execv.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/execve.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/execvp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/exit.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/exp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fabs.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fclose.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fcntl.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fdopen.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/feof.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/ferror.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fflush.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fgetc.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fgetpos.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fgets.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fileno.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fopen.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fork.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fprintf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fputc.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fputs.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fread.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/free.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/freopen.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fscanf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fseek.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fsetpos.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fstat.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/ftell.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/fwrite.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getc.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getchar.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getegid.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getenv.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/geteuid.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getgid.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getgrgid.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getgrnam.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getgroups.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getlogin.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getpgrp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getpid.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getppid.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getpwnam.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getpwuid.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/gets.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/getuid.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/gmtime.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/isatty.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/kill.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/labs.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/ldiv.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/link.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/load_imports.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/localtime.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/log.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/longjmp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/malloc.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/memchr.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/memcmp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/memcpy.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/memmove.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/memset.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/mkdir.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/offsetof.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/opendir.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/perror.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/pow.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/printf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/putc.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/putchar.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/puts.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/qsort.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/raise.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/rand.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/readdir.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/realloc.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/redef.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/remove.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/rename.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/rewind.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/rewinddir.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/rmdir.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/scanf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/setbuf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/setjmp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/setvbuf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/siglongjmp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/sigsetjmp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/sin.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/sleep.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/sprintf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/sqrt.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/srand.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/sscanf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/stat.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strcat.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strchr.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strcmp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strcpy.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strcspn.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strerror.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strlen.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strncat.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strncmp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strncpy.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strpbrk.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strrchr.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strspn.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strstr.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/strtok.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/system.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/time.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/tmpfile.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/tolower.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/toupper.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/umask.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/ungetc.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/unimpl.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/unlink.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/usage.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/utime.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/vfprintf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/vprintf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/vsprintf.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/wait.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/POSIX/waitpid.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/PerlIO
+#usr/lib/perl5/5.8.5/alpha-linux/auto/PerlIO/encoding
+#usr/lib/perl5/5.8.5/alpha-linux/auto/PerlIO/encoding/encoding.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/PerlIO/encoding/encoding.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/PerlIO/scalar
+#usr/lib/perl5/5.8.5/alpha-linux/auto/PerlIO/scalar/scalar.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/PerlIO/scalar/scalar.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/PerlIO/via
+#usr/lib/perl5/5.8.5/alpha-linux/auto/PerlIO/via/via.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/PerlIO/via/via.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/SDBM_File
+#usr/lib/perl5/5.8.5/alpha-linux/auto/SDBM_File/SDBM_File.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/SDBM_File/SDBM_File.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Socket
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Socket/Socket.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Socket/Socket.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/CAN_FLOCK.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/Storable.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/Storable.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/_freeze.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/_retrieve.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/_store.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/_store_fd.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/autosplit.ix
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/fd_retrieve.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/freeze.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/lock_nstore.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/lock_retrieve.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/lock_store.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/logcarp.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/logcroak.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/nfreeze.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/nstore.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/nstore_fd.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/read_magic.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/retrieve.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/show_file_magic.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/store.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/store_fd.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Storable/thaw.al
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Sys
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Sys/Hostname
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Sys/Hostname/Hostname.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Sys/Hostname/Hostname.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Sys/Hostname/autosplit.ix
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Sys/Syslog
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Sys/Syslog/Syslog.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Sys/Syslog/Syslog.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Time
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Time/HiRes
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Time/HiRes/HiRes.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Time/HiRes/HiRes.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Unicode
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Unicode/Normalize
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Unicode/Normalize/Normalize.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/Unicode/Normalize/Normalize.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Unicode/Normalize/autosplit.ix
+#usr/lib/perl5/5.8.5/alpha-linux/auto/XS
+#usr/lib/perl5/5.8.5/alpha-linux/auto/XS/APItest
+#usr/lib/perl5/5.8.5/alpha-linux/auto/XS/APItest/APItest.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/XS/APItest/APItest.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/XS/Typemap
+#usr/lib/perl5/5.8.5/alpha-linux/auto/XS/Typemap/Typemap.bs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/XS/Typemap/Typemap.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/attrs
+#usr/lib/perl5/5.8.5/alpha-linux/auto/attrs/attrs.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/attrs/attrs.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/re
+#usr/lib/perl5/5.8.5/alpha-linux/auto/re/re.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/re/re.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/sdbm
+#usr/lib/perl5/5.8.5/alpha-linux/auto/sdbm/extralibs.ld
+#usr/lib/perl5/5.8.5/alpha-linux/auto/threads
+#usr/lib/perl5/5.8.5/alpha-linux/auto/threads/shared
+#usr/lib/perl5/5.8.5/alpha-linux/auto/threads/shared/shared.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/threads/shared/shared.so
+#usr/lib/perl5/5.8.5/alpha-linux/auto/threads/threads.bs
+usr/lib/perl5/5.8.5/alpha-linux/auto/threads/threads.so
+usr/lib/perl5/5.8.5/alpha-linux/encoding.pm
+usr/lib/perl5/5.8.5/alpha-linux/lib.pm
+usr/lib/perl5/5.8.5/alpha-linux/ops.pm
+usr/lib/perl5/5.8.5/alpha-linux/re.pm
+#usr/lib/perl5/5.8.5/alpha-linux/threads
+usr/lib/perl5/5.8.5/alpha-linux/threads.pm
+usr/lib/perl5/5.8.5/alpha-linux/threads/shared.pm
+usr/lib/perl5/5.8.5/if.pm
+usr/lib/perl5/5.8.5/importenv.pl
+usr/lib/perl5/5.8.5/integer.pm
+usr/lib/perl5/5.8.5/less.pm
+usr/lib/perl5/5.8.5/locale.pm
+usr/lib/perl5/5.8.5/look.pl
+usr/lib/perl5/5.8.5/newgetopt.pl
+usr/lib/perl5/5.8.5/open.pm
+usr/lib/perl5/5.8.5/open2.pl
+usr/lib/perl5/5.8.5/open3.pl
+usr/lib/perl5/5.8.5/overload.pm
+usr/lib/perl5/5.8.5/perl5db.pl
+#usr/lib/perl5/5.8.5/pod
+#usr/lib/perl5/5.8.5/pod/perl.pod
+#usr/lib/perl5/5.8.5/pod/perl5004delta.pod
+#usr/lib/perl5/5.8.5/pod/perl5005delta.pod
+#usr/lib/perl5/5.8.5/pod/perl561delta.pod
+#usr/lib/perl5/5.8.5/pod/perl56delta.pod
+#usr/lib/perl5/5.8.5/pod/perl570delta.pod
+#usr/lib/perl5/5.8.5/pod/perl571delta.pod
+#usr/lib/perl5/5.8.5/pod/perl572delta.pod
+#usr/lib/perl5/5.8.5/pod/perlaix.pod
+#usr/lib/perl5/5.8.5/pod/perlamiga.pod
+#usr/lib/perl5/5.8.5/pod/perlapi.pod
+#usr/lib/perl5/5.8.5/pod/perlapio.pod
+#usr/lib/perl5/5.8.5/pod/perlapollo.pod
+#usr/lib/perl5/5.8.5/pod/perlbeos.pod
+#usr/lib/perl5/5.8.5/pod/perlbook.pod
+#usr/lib/perl5/5.8.5/pod/perlboot.pod
+#usr/lib/perl5/5.8.5/pod/perlbot.pod
+#usr/lib/perl5/5.8.5/pod/perlbs2000.pod
+#usr/lib/perl5/5.8.5/pod/perlcall.pod
+#usr/lib/perl5/5.8.5/pod/perlce.pod
+#usr/lib/perl5/5.8.5/pod/perlclib.pod
+#usr/lib/perl5/5.8.5/pod/perlcn.pod
+#usr/lib/perl5/5.8.5/pod/perlcompile.pod
+#usr/lib/perl5/5.8.5/pod/perlcygwin.pod
+#usr/lib/perl5/5.8.5/pod/perldata.pod
+#usr/lib/perl5/5.8.5/pod/perldbmfilter.pod
+#usr/lib/perl5/5.8.5/pod/perldebguts.pod
+#usr/lib/perl5/5.8.5/pod/perldebtut.pod
+#usr/lib/perl5/5.8.5/pod/perldebug.pod
+#usr/lib/perl5/5.8.5/pod/perldelta.pod
+#usr/lib/perl5/5.8.5/pod/perldgux.pod
+#usr/lib/perl5/5.8.5/pod/perldiag.pod
+#usr/lib/perl5/5.8.5/pod/perldos.pod
+#usr/lib/perl5/5.8.5/pod/perldsc.pod
+#usr/lib/perl5/5.8.5/pod/perlebcdic.pod
+#usr/lib/perl5/5.8.5/pod/perlembed.pod
+#usr/lib/perl5/5.8.5/pod/perlepoc.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq1.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq2.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq3.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq4.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq5.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq6.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq7.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq8.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq9.pod
+#usr/lib/perl5/5.8.5/pod/perlfilter.pod
+#usr/lib/perl5/5.8.5/pod/perlfork.pod
+#usr/lib/perl5/5.8.5/pod/perlform.pod
+#usr/lib/perl5/5.8.5/pod/perlfreebsd.pod
+#usr/lib/perl5/5.8.5/pod/perlfunc.pod
+#usr/lib/perl5/5.8.5/pod/perlguts.pod
+#usr/lib/perl5/5.8.5/pod/perlhack.pod
+#usr/lib/perl5/5.8.5/pod/perlhist.pod
+#usr/lib/perl5/5.8.5/pod/perlhpux.pod
+#usr/lib/perl5/5.8.5/pod/perlhurd.pod
+#usr/lib/perl5/5.8.5/pod/perlintern.pod
+#usr/lib/perl5/5.8.5/pod/perlintro.pod
+#usr/lib/perl5/5.8.5/pod/perliol.pod
+#usr/lib/perl5/5.8.5/pod/perlipc.pod
+#usr/lib/perl5/5.8.5/pod/perlirix.pod
+#usr/lib/perl5/5.8.5/pod/perljp.pod
+#usr/lib/perl5/5.8.5/pod/perlko.pod
+#usr/lib/perl5/5.8.5/pod/perllexwarn.pod
+#usr/lib/perl5/5.8.5/pod/perllocale.pod
+#usr/lib/perl5/5.8.5/pod/perllol.pod
+#usr/lib/perl5/5.8.5/pod/perlmachten.pod
+#usr/lib/perl5/5.8.5/pod/perlmacos.pod
+#usr/lib/perl5/5.8.5/pod/perlmint.pod
+#usr/lib/perl5/5.8.5/pod/perlmod.pod
+#usr/lib/perl5/5.8.5/pod/perlmodinstall.pod
+#usr/lib/perl5/5.8.5/pod/perlmodlib.pod
+#usr/lib/perl5/5.8.5/pod/perlmodstyle.pod
+#usr/lib/perl5/5.8.5/pod/perlmpeix.pod
+#usr/lib/perl5/5.8.5/pod/perlnetware.pod
+#usr/lib/perl5/5.8.5/pod/perlnewmod.pod
+#usr/lib/perl5/5.8.5/pod/perlnumber.pod
+#usr/lib/perl5/5.8.5/pod/perlobj.pod
+#usr/lib/perl5/5.8.5/pod/perlop.pod
+#usr/lib/perl5/5.8.5/pod/perlopentut.pod
+#usr/lib/perl5/5.8.5/pod/perlos2.pod
+#usr/lib/perl5/5.8.5/pod/perlos390.pod
+#usr/lib/perl5/5.8.5/pod/perlothrtut.pod
+#usr/lib/perl5/5.8.5/pod/perlpacktut.pod
+#usr/lib/perl5/5.8.5/pod/perlplan9.pod
+#usr/lib/perl5/5.8.5/pod/perlpod.pod
+#usr/lib/perl5/5.8.5/pod/perlpodspec.pod
+#usr/lib/perl5/5.8.5/pod/perlport.pod
+#usr/lib/perl5/5.8.5/pod/perlqnx.pod
+#usr/lib/perl5/5.8.5/pod/perlre.pod
+#usr/lib/perl5/5.8.5/pod/perlref.pod
+#usr/lib/perl5/5.8.5/pod/perlreftut.pod
+#usr/lib/perl5/5.8.5/pod/perlrequick.pod
+#usr/lib/perl5/5.8.5/pod/perlretut.pod
+#usr/lib/perl5/5.8.5/pod/perlrun.pod
+#usr/lib/perl5/5.8.5/pod/perlsec.pod
+#usr/lib/perl5/5.8.5/pod/perlsolaris.pod
+#usr/lib/perl5/5.8.5/pod/perlstyle.pod
+#usr/lib/perl5/5.8.5/pod/perlsub.pod
+#usr/lib/perl5/5.8.5/pod/perlsyn.pod
+#usr/lib/perl5/5.8.5/pod/perlthrtut.pod
+#usr/lib/perl5/5.8.5/pod/perltie.pod
+#usr/lib/perl5/5.8.5/pod/perltoc.pod
+#usr/lib/perl5/5.8.5/pod/perltodo.pod
+#usr/lib/perl5/5.8.5/pod/perltooc.pod
+#usr/lib/perl5/5.8.5/pod/perltoot.pod
+#usr/lib/perl5/5.8.5/pod/perltrap.pod
+#usr/lib/perl5/5.8.5/pod/perltru64.pod
+#usr/lib/perl5/5.8.5/pod/perltw.pod
+#usr/lib/perl5/5.8.5/pod/perlunicode.pod
+#usr/lib/perl5/5.8.5/pod/perluniintro.pod
+#usr/lib/perl5/5.8.5/pod/perlutil.pod
+#usr/lib/perl5/5.8.5/pod/perluts.pod
+#usr/lib/perl5/5.8.5/pod/perlvar.pod
+#usr/lib/perl5/5.8.5/pod/perlvmesa.pod
+#usr/lib/perl5/5.8.5/pod/perlvms.pod
+#usr/lib/perl5/5.8.5/pod/perlvos.pod
+#usr/lib/perl5/5.8.5/pod/perlwin32.pod
+#usr/lib/perl5/5.8.5/pod/perlxs.pod
+#usr/lib/perl5/5.8.5/pod/perlxstut.pod
+usr/lib/perl5/5.8.5/pwd.pl
+usr/lib/perl5/5.8.5/shellwords.pl
+usr/lib/perl5/5.8.5/sigtrap.pm
+usr/lib/perl5/5.8.5/sort.pm
+usr/lib/perl5/5.8.5/stat.pl
+usr/lib/perl5/5.8.5/strict.pm
+usr/lib/perl5/5.8.5/subs.pm
+usr/lib/perl5/5.8.5/syslog.pl
+usr/lib/perl5/5.8.5/tainted.pl
+usr/lib/perl5/5.8.5/termcap.pl
+usr/lib/perl5/5.8.5/timelocal.pl
+#usr/lib/perl5/5.8.5/unicore
+#usr/lib/perl5/5.8.5/unicore/ArabLink.pl
+#usr/lib/perl5/5.8.5/unicore/ArabLnkGrp.pl
+#usr/lib/perl5/5.8.5/unicore/ArabicShaping.txt
+#usr/lib/perl5/5.8.5/unicore/BidiMirroring.txt
+#usr/lib/perl5/5.8.5/unicore/Bidirectional.pl
+#usr/lib/perl5/5.8.5/unicore/Blocks.txt
+usr/lib/perl5/5.8.5/unicore/Canonical.pl
+#usr/lib/perl5/5.8.5/unicore/CaseFolding.txt
+usr/lib/perl5/5.8.5/unicore/CombiningClass.pl
+#usr/lib/perl5/5.8.5/unicore/CompositionExclusions.txt
+usr/lib/perl5/5.8.5/unicore/Decomposition.pl
+#usr/lib/perl5/5.8.5/unicore/EastAsianWidth.txt
+usr/lib/perl5/5.8.5/unicore/Exact.pl
+#usr/lib/perl5/5.8.5/unicore/Index.txt
+#usr/lib/perl5/5.8.5/unicore/Jamo.txt
+#usr/lib/perl5/5.8.5/unicore/JamoShort.pl
+#usr/lib/perl5/5.8.5/unicore/LineBreak.txt
+#usr/lib/perl5/5.8.5/unicore/Makefile
+usr/lib/perl5/5.8.5/unicore/Name.pl
+#usr/lib/perl5/5.8.5/unicore/NamesList.txt
+#usr/lib/perl5/5.8.5/unicore/PropList.txt
+#usr/lib/perl5/5.8.5/unicore/PropValueAliases.txt
+#usr/lib/perl5/5.8.5/unicore/Properties
+#usr/lib/perl5/5.8.5/unicore/PropertyAliases.txt
+#usr/lib/perl5/5.8.5/unicore/README.perl
+#usr/lib/perl5/5.8.5/unicore/ReadMe.txt
+#usr/lib/perl5/5.8.5/unicore/Scripts.txt
+#usr/lib/perl5/5.8.5/unicore/SpecialCasing.txt
+usr/lib/perl5/5.8.5/unicore/To
+#usr/lib/perl5/5.8.5/unicore/To/Digit.pl
+#usr/lib/perl5/5.8.5/unicore/To/Fold.pl
+#usr/lib/perl5/5.8.5/unicore/To/Lower.pl
+#usr/lib/perl5/5.8.5/unicore/To/Title.pl
+#usr/lib/perl5/5.8.5/unicore/To/Upper.pl
+#usr/lib/perl5/5.8.5/unicore/UnicodeData.txt
+usr/lib/perl5/5.8.5/unicore/lib
+#usr/lib/perl5/5.8.5/unicore/lib/ASCII.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Alnum.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Alpha.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Alphabet.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Any.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Arabic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Armenian.pl
+#usr/lib/perl5/5.8.5/unicore/lib/AsciiHex.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Assigned.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Bengali.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiAL.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiAN.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiB.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiBN.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiCS.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiCont.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiEN.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiES.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiET.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiL.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiLRE.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiLRO.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiNSM.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiON.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiPDF.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiR.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiRLE.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiRLO.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiS.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiWS.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Blank.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Bopomofo.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Buhid.pl
+#usr/lib/perl5/5.8.5/unicore/lib/C.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Canadian.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Canon.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cc.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cf.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cherokee.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cn.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cntrl.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Co.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Common.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Compat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cs.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cyrillic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCcircle.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCcompat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCfinal.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCfont.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCfracti.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCinitia.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCisolat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCmedial.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCnarrow.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCnoBrea.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCsmall.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCsquare.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCsub.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCsuper.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCvertic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCwide.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Dash.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Deprecat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Deseret.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Devanaga.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Diacriti.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Digit.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Ethiopic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Extender.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Georgian.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Gothic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Graph.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Grapheme.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Greek.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Gujarati.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Gurmukhi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Han.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Hangul.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Hanunoo.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Hebrew.pl
+#usr/lib/perl5/5.8.5/unicore/lib/HexDigit.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Hiragana.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Hyphen.pl
+#usr/lib/perl5/5.8.5/unicore/lib/IdContin.pl
+#usr/lib/perl5/5.8.5/unicore/lib/IdStart.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Ideograp.pl
+#usr/lib/perl5/5.8.5/unicore/lib/IdsBinar.pl
+#usr/lib/perl5/5.8.5/unicore/lib/IdsTrina.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InAlphab.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InArabi2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InArabi3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InArabic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InArmeni.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InArrows.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBasicL.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBengal.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBlockE.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBopom2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBopomo.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBoxDra.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBraill.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBuhid.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InByzant.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCherok.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkCo2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkCo3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkCo4.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkCom.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkRad.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkSym.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkUn2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkUn3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkUni.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCombi2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCombi3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCombin.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InContro.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCurren.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCyril2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCyrill.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InDesere.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InDevana.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InDingba.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InEnclo2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InEnclos.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InEthiop.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGenera.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGeomet.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGeorgi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGothic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGreek.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGreekA.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGreekE.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGujara.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGurmuk.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHalfwi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHangu2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHangu3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHangul.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHanuno.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHebrew.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHighPr.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHighSu.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHiraga.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InIdeogr.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InIpaExt.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKanbun.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKangxi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKannad.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKatak2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKataka.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKhmer.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLao.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLatin1.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLatin2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLatin3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLatinE.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLetter.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLowSur.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMalaya.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMathe2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMathem.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMisce2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMisce3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMisce4.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMiscel.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMongol.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMusica.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMyanma.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InNumber.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InOgham.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InOldIta.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InOptica.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InOriya.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InPrivat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InRunic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSinhal.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSmallF.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSpacin.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSpecia.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSupers.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSuppl2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSuppl3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSuppl4.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSuppl5.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSupple.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSyriac.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTagalo.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTagban.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTags.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTamil.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTelugu.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InThaana.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InThai.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTibeta.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InUnifie.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InVariat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InYiRadi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InYiSyll.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Inherite.pl
+#usr/lib/perl5/5.8.5/unicore/lib/JoinCont.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Kannada.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Katakana.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Khmer.pl
+#usr/lib/perl5/5.8.5/unicore/lib/L.pl
+#usr/lib/perl5/5.8.5/unicore/lib/L_.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lao.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Latin.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Ll.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lm.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lo.pl
+#usr/lib/perl5/5.8.5/unicore/lib/LogicalO.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lower.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lowercas.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lt.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lu.pl
+#usr/lib/perl5/5.8.5/unicore/lib/M.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Malayala.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Math.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Mc.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Me.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Mirrored.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Mn.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Mongolia.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Myanmar.pl
+#usr/lib/perl5/5.8.5/unicore/lib/N.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Nd.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Nl.pl
+#usr/lib/perl5/5.8.5/unicore/lib/No.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Nonchara.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Ogham.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OldItali.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Oriya.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherAlp.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherDef.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherGra.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherLow.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherMat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherUpp.pl
+#usr/lib/perl5/5.8.5/unicore/lib/P.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Pc.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Pd.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Pe.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Pf.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Pi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Po.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Print.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Ps.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Punct.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Quotatio.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Radical.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Runic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/S.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Sc.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Sinhala.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Sk.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Sm.pl
+#usr/lib/perl5/5.8.5/unicore/lib/So.pl
+#usr/lib/perl5/5.8.5/unicore/lib/SoftDott.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Space.pl
+#usr/lib/perl5/5.8.5/unicore/lib/SpacePer.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Syriac.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Tagalog.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Tagbanwa.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Tamil.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Telugu.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Terminal.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Thaana.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Thai.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Tibetan.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Title.pl
+#usr/lib/perl5/5.8.5/unicore/lib/UnifiedI.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Upper.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Uppercas.pl
+#usr/lib/perl5/5.8.5/unicore/lib/WhiteSpa.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Word.pl
+#usr/lib/perl5/5.8.5/unicore/lib/XDigit.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Yi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Z.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Zl.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Zp.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Zs.pl
+#usr/lib/perl5/5.8.5/unicore/lib/_CanonDC.pl
+#usr/lib/perl5/5.8.5/unicore/lib/_CaseIgn.pl
+#usr/lib/perl5/5.8.5/unicore/lib/_CombAbo.pl
+#usr/lib/perl5/5.8.5/unicore/mktables
+#usr/lib/perl5/5.8.5/unicore/version
+usr/lib/perl5/5.8.5/utf8.pm
+usr/lib/perl5/5.8.5/utf8_heavy.pl
+usr/lib/perl5/5.8.5/validate.pl
+usr/lib/perl5/5.8.5/vars.pm
+usr/lib/perl5/5.8.5/vmsish.pm
+#usr/lib/perl5/5.8.5/warnings
+usr/lib/perl5/5.8.5/warnings.pm
+usr/lib/perl5/5.8.5/warnings/register.pm
+#usr/lib/perl5/site_perl
+#usr/lib/perl5/site_perl/5.8.5
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux
+#usr/share/man/man1/a2p.1
+#usr/share/man/man1/c2ph.1
+#usr/share/man/man1/dprofpp.1
+#usr/share/man/man1/enc2xs.1
+#usr/share/man/man1/find2perl.1
+#usr/share/man/man1/h2ph.1
+#usr/share/man/man1/h2xs.1
+#usr/share/man/man1/libnetcfg.1
+#usr/share/man/man1/perl.1
+#usr/share/man/man1/perl5004delta.1
+#usr/share/man/man1/perl5005delta.1
+#usr/share/man/man1/perl561delta.1
+#usr/share/man/man1/perl56delta.1
+#usr/share/man/man1/perl570delta.1
+#usr/share/man/man1/perl571delta.1
+#usr/share/man/man1/perl572delta.1
+#usr/share/man/man1/perlaix.1
+#usr/share/man/man1/perlamiga.1
+#usr/share/man/man1/perlapi.1
+#usr/share/man/man1/perlapio.1
+#usr/share/man/man1/perlapollo.1
+#usr/share/man/man1/perlbeos.1
+#usr/share/man/man1/perlbook.1
+#usr/share/man/man1/perlboot.1
+#usr/share/man/man1/perlbot.1
+#usr/share/man/man1/perlbs2000.1
+#usr/share/man/man1/perlbug.1
+#usr/share/man/man1/perlcall.1
+#usr/share/man/man1/perlcc.1
+#usr/share/man/man1/perlce.1
+#usr/share/man/man1/perlclib.1
+#usr/share/man/man1/perlcn.1
+#usr/share/man/man1/perlcompile.1
+#usr/share/man/man1/perlcygwin.1
+#usr/share/man/man1/perldata.1
+#usr/share/man/man1/perldbmfilter.1
+#usr/share/man/man1/perldebguts.1
+#usr/share/man/man1/perldebtut.1
+#usr/share/man/man1/perldebug.1
+#usr/share/man/man1/perldelta.1
+#usr/share/man/man1/perldgux.1
+#usr/share/man/man1/perldiag.1
+#usr/share/man/man1/perldoc.1
+#usr/share/man/man1/perldos.1
+#usr/share/man/man1/perldsc.1
+#usr/share/man/man1/perlebcdic.1
+#usr/share/man/man1/perlembed.1
+#usr/share/man/man1/perlepoc.1
+#usr/share/man/man1/perlfaq.1
+#usr/share/man/man1/perlfaq1.1
+#usr/share/man/man1/perlfaq2.1
+#usr/share/man/man1/perlfaq3.1
+#usr/share/man/man1/perlfaq4.1
+#usr/share/man/man1/perlfaq5.1
+#usr/share/man/man1/perlfaq6.1
+#usr/share/man/man1/perlfaq7.1
+#usr/share/man/man1/perlfaq8.1
+#usr/share/man/man1/perlfaq9.1
+#usr/share/man/man1/perlfilter.1
+#usr/share/man/man1/perlfork.1
+#usr/share/man/man1/perlform.1
+#usr/share/man/man1/perlfreebsd.1
+#usr/share/man/man1/perlfunc.1
+#usr/share/man/man1/perlguts.1
+#usr/share/man/man1/perlhack.1
+#usr/share/man/man1/perlhist.1
+#usr/share/man/man1/perlhpux.1
+#usr/share/man/man1/perlhurd.1
+#usr/share/man/man1/perlintern.1
+#usr/share/man/man1/perlintro.1
+#usr/share/man/man1/perliol.1
+#usr/share/man/man1/perlipc.1
+#usr/share/man/man1/perlirix.1
+#usr/share/man/man1/perlivp.1
+#usr/share/man/man1/perljp.1
+#usr/share/man/man1/perlko.1
+#usr/share/man/man1/perllexwarn.1
+#usr/share/man/man1/perllocale.1
+#usr/share/man/man1/perllol.1
+#usr/share/man/man1/perlmachten.1
+#usr/share/man/man1/perlmacos.1
+#usr/share/man/man1/perlmint.1
+#usr/share/man/man1/perlmod.1
+#usr/share/man/man1/perlmodinstall.1
+#usr/share/man/man1/perlmodlib.1
+#usr/share/man/man1/perlmodstyle.1
+#usr/share/man/man1/perlmpeix.1
+#usr/share/man/man1/perlnetware.1
+#usr/share/man/man1/perlnewmod.1
+#usr/share/man/man1/perlnumber.1
+#usr/share/man/man1/perlobj.1
+#usr/share/man/man1/perlop.1
+#usr/share/man/man1/perlopentut.1
+#usr/share/man/man1/perlos2.1
+#usr/share/man/man1/perlos390.1
+#usr/share/man/man1/perlothrtut.1
+#usr/share/man/man1/perlpacktut.1
+#usr/share/man/man1/perlplan9.1
+#usr/share/man/man1/perlpod.1
+#usr/share/man/man1/perlpodspec.1
+#usr/share/man/man1/perlport.1
+#usr/share/man/man1/perlqnx.1
+#usr/share/man/man1/perlre.1
+#usr/share/man/man1/perlref.1
+#usr/share/man/man1/perlreftut.1
+#usr/share/man/man1/perlrequick.1
+#usr/share/man/man1/perlretut.1
+#usr/share/man/man1/perlrun.1
+#usr/share/man/man1/perlsec.1
+#usr/share/man/man1/perlsolaris.1
+#usr/share/man/man1/perlstyle.1
+#usr/share/man/man1/perlsub.1
+#usr/share/man/man1/perlsyn.1
+#usr/share/man/man1/perlthrtut.1
+#usr/share/man/man1/perltie.1
+#usr/share/man/man1/perltoc.1
+#usr/share/man/man1/perltodo.1
+#usr/share/man/man1/perltooc.1
+#usr/share/man/man1/perltoot.1
+#usr/share/man/man1/perltrap.1
+#usr/share/man/man1/perltru64.1
+#usr/share/man/man1/perltw.1
+#usr/share/man/man1/perlunicode.1
+#usr/share/man/man1/perluniintro.1
+#usr/share/man/man1/perlutil.1
+#usr/share/man/man1/perluts.1
+#usr/share/man/man1/perlvar.1
+#usr/share/man/man1/perlvmesa.1
+#usr/share/man/man1/perlvms.1
+#usr/share/man/man1/perlvos.1
+#usr/share/man/man1/perlwin32.1
+#usr/share/man/man1/perlxs.1
+#usr/share/man/man1/perlxstut.1
+#usr/share/man/man1/piconv.1
+#usr/share/man/man1/pl2pm.1
+#usr/share/man/man1/pod2html.1
+#usr/share/man/man1/pod2latex.1
+#usr/share/man/man1/pod2man.1
+#usr/share/man/man1/pod2text.1
+#usr/share/man/man1/pod2usage.1
+#usr/share/man/man1/podchecker.1
+#usr/share/man/man1/podselect.1
+#usr/share/man/man1/psed.1
+#usr/share/man/man1/pstruct.1
+#usr/share/man/man1/s2p.1
+#usr/share/man/man1/splain.1
+#usr/share/man/man1/xsubpp.1
+#usr/share/man/man3/AnyDBM_File.3
+#usr/share/man/man3/Attribute::Handlers.3
+#usr/share/man/man3/Attribute::Handlers::demo::Demo.3
+#usr/share/man/man3/Attribute::Handlers::demo::Descriptions.3
+#usr/share/man/man3/Attribute::Handlers::demo::MyClass.3
+#usr/share/man/man3/AutoLoader.3
+#usr/share/man/man3/AutoSplit.3
+#usr/share/man/man3/B.3
+#usr/share/man/man3/B::Asmdata.3
+#usr/share/man/man3/B::Assembler.3
+#usr/share/man/man3/B::Bblock.3
+#usr/share/man/man3/B::Bytecode.3
+#usr/share/man/man3/B::C.3
+#usr/share/man/man3/B::CC.3
+#usr/share/man/man3/B::Concise.3
+#usr/share/man/man3/B::Debug.3
+#usr/share/man/man3/B::Deparse.3
+#usr/share/man/man3/B::Disassembler.3
+#usr/share/man/man3/B::Lint.3
+#usr/share/man/man3/B::Showlex.3
+#usr/share/man/man3/B::Stackobj.3
+#usr/share/man/man3/B::Stash.3
+#usr/share/man/man3/B::Terse.3
+#usr/share/man/man3/B::Xref.3
+#usr/share/man/man3/Benchmark.3
+#usr/share/man/man3/ByteLoader.3
+#usr/share/man/man3/CGI.3
+#usr/share/man/man3/CGI::Apache.3
+#usr/share/man/man3/CGI::Carp.3
+#usr/share/man/man3/CGI::Cookie.3
+#usr/share/man/man3/CGI::Fast.3
+#usr/share/man/man3/CGI::Pretty.3
+#usr/share/man/man3/CGI::Push.3
+#usr/share/man/man3/CGI::Switch.3
+#usr/share/man/man3/CGI::Util.3
+#usr/share/man/man3/CPAN.3
+#usr/share/man/man3/CPAN::FirstTime.3
+#usr/share/man/man3/CPAN::Nox.3
+#usr/share/man/man3/Carp.3
+#usr/share/man/man3/Carp::Heavy.3
+#usr/share/man/man3/Class::ISA.3
+#usr/share/man/man3/Class::Struct.3
+#usr/share/man/man3/Config.3
+#usr/share/man/man3/Cwd.3
+#usr/share/man/man3/DB.3
+#usr/share/man/man3/Data::Dumper.3
+#usr/share/man/man3/Devel::DProf.3
+#usr/share/man/man3/Devel::PPPort.3
+#usr/share/man/man3/Devel::Peek.3
+#usr/share/man/man3/Devel::SelfStubber.3
+#usr/share/man/man3/Digest.3
+#usr/share/man/man3/Digest::MD5.3
+#usr/share/man/man3/DirHandle.3
+#usr/share/man/man3/Dumpvalue.3
+#usr/share/man/man3/DynaLoader.3
+#usr/share/man/man3/Encode.3
+#usr/share/man/man3/Encode::Alias.3
+#usr/share/man/man3/Encode::Byte.3
+#usr/share/man/man3/Encode::CJKConstants.3
+#usr/share/man/man3/Encode::CN.3
+#usr/share/man/man3/Encode::CN::HZ.3
+#usr/share/man/man3/Encode::Config.3
+#usr/share/man/man3/Encode::EBCDIC.3
+#usr/share/man/man3/Encode::Encoder.3
+#usr/share/man/man3/Encode::Encoding.3
+#usr/share/man/man3/Encode::Guess.3
+#usr/share/man/man3/Encode::JP.3
+#usr/share/man/man3/Encode::JP::H2Z.3
+#usr/share/man/man3/Encode::JP::JIS7.3
+#usr/share/man/man3/Encode::KR.3
+#usr/share/man/man3/Encode::KR::2022_KR.3
+#usr/share/man/man3/Encode::MIME::Header.3
+#usr/share/man/man3/Encode::PerlIO.3
+#usr/share/man/man3/Encode::Supported.3
+#usr/share/man/man3/Encode::Symbol.3
+#usr/share/man/man3/Encode::TW.3
+#usr/share/man/man3/Encode::Unicode.3
+#usr/share/man/man3/English.3
+#usr/share/man/man3/Env.3
+#usr/share/man/man3/Errno.3
+#usr/share/man/man3/Exporter.3
+#usr/share/man/man3/Exporter::Heavy.3
+#usr/share/man/man3/ExtUtils::Command.3
+#usr/share/man/man3/ExtUtils::Command::MM.3
+#usr/share/man/man3/ExtUtils::Constant.3
+#usr/share/man/man3/ExtUtils::Embed.3
+#usr/share/man/man3/ExtUtils::Install.3
+#usr/share/man/man3/ExtUtils::Installed.3
+#usr/share/man/man3/ExtUtils::Liblist.3
+#usr/share/man/man3/ExtUtils::Liblist::Kid.3
+#usr/share/man/man3/ExtUtils::MM.3
+#usr/share/man/man3/ExtUtils::MM_Any.3
+#usr/share/man/man3/ExtUtils::MM_BeOS.3
+#usr/share/man/man3/ExtUtils::MM_Cygwin.3
+#usr/share/man/man3/ExtUtils::MM_DOS.3
+#usr/share/man/man3/ExtUtils::MM_MacOS.3
+#usr/share/man/man3/ExtUtils::MM_NW5.3
+#usr/share/man/man3/ExtUtils::MM_OS2.3
+#usr/share/man/man3/ExtUtils::MM_UWIN.3
+#usr/share/man/man3/ExtUtils::MM_Unix.3
+#usr/share/man/man3/ExtUtils::MM_VMS.3
+#usr/share/man/man3/ExtUtils::MM_Win32.3
+#usr/share/man/man3/ExtUtils::MM_Win95.3
+#usr/share/man/man3/ExtUtils::MY.3
+#usr/share/man/man3/ExtUtils::MakeMaker.3
+#usr/share/man/man3/ExtUtils::Manifest.3
+#usr/share/man/man3/ExtUtils::Miniperl.3
+#usr/share/man/man3/ExtUtils::Mkbootstrap.3
+#usr/share/man/man3/ExtUtils::Mksymlists.3
+#usr/share/man/man3/ExtUtils::Packlist.3
+#usr/share/man/man3/ExtUtils::testlib.3
+#usr/share/man/man3/Fatal.3
+#usr/share/man/man3/Fcntl.3
+#usr/share/man/man3/File::Basename.3
+#usr/share/man/man3/File::CheckTree.3
+#usr/share/man/man3/File::Compare.3
+#usr/share/man/man3/File::Copy.3
+#usr/share/man/man3/File::DosGlob.3
+#usr/share/man/man3/File::Find.3
+#usr/share/man/man3/File::Glob.3
+#usr/share/man/man3/File::Path.3
+#usr/share/man/man3/File::Spec.3
+#usr/share/man/man3/File::Spec::Cygwin.3
+#usr/share/man/man3/File::Spec::Epoc.3
+#usr/share/man/man3/File::Spec::Functions.3
+#usr/share/man/man3/File::Spec::Mac.3
+#usr/share/man/man3/File::Spec::OS2.3
+#usr/share/man/man3/File::Spec::Unix.3
+#usr/share/man/man3/File::Spec::VMS.3
+#usr/share/man/man3/File::Spec::Win32.3
+#usr/share/man/man3/File::Temp.3
+#usr/share/man/man3/File::stat.3
+#usr/share/man/man3/FileCache.3
+#usr/share/man/man3/FileHandle.3
+#usr/share/man/man3/Filter::Simple.3
+#usr/share/man/man3/Filter::Util::Call.3
+#usr/share/man/man3/FindBin.3
+#usr/share/man/man3/Getopt::Long.3
+#usr/share/man/man3/Getopt::Std.3
+#usr/share/man/man3/Hash::Util.3
+#usr/share/man/man3/I18N::Collate.3
+#usr/share/man/man3/I18N::LangTags.3
+#usr/share/man/man3/I18N::LangTags::List.3
+#usr/share/man/man3/I18N::Langinfo.3
+#usr/share/man/man3/IO.3
+#usr/share/man/man3/IO::Dir.3
+#usr/share/man/man3/IO::File.3
+#usr/share/man/man3/IO::Handle.3
+#usr/share/man/man3/IO::Pipe.3
+#usr/share/man/man3/IO::Poll.3
+#usr/share/man/man3/IO::Seekable.3
+#usr/share/man/man3/IO::Select.3
+#usr/share/man/man3/IO::Socket.3
+#usr/share/man/man3/IO::Socket::INET.3
+#usr/share/man/man3/IO::Socket::UNIX.3
+#usr/share/man/man3/IPC::Msg.3
+#usr/share/man/man3/IPC::Open2.3
+#usr/share/man/man3/IPC::Open3.3
+#usr/share/man/man3/IPC::Semaphore.3
+#usr/share/man/man3/IPC::SysV.3
+#usr/share/man/man3/List::Util.3
+#usr/share/man/man3/Locale::Constants.3
+#usr/share/man/man3/Locale::Country.3
+#usr/share/man/man3/Locale::Currency.3
+#usr/share/man/man3/Locale::Language.3
+#usr/share/man/man3/Locale::Maketext.3
+#usr/share/man/man3/Locale::Maketext::TPJ13.3
+#usr/share/man/man3/Locale::Script.3
+#usr/share/man/man3/MIME::Base64.3
+#usr/share/man/man3/MIME::QuotedPrint.3
+#usr/share/man/man3/Math::BigFloat.3
+#usr/share/man/man3/Math::BigFloat::Trace.3
+#usr/share/man/man3/Math::BigInt.3
+#usr/share/man/man3/Math::BigInt::Calc.3
+#usr/share/man/man3/Math::BigInt::Trace.3
+#usr/share/man/man3/Math::BigRat.3
+#usr/share/man/man3/Math::Complex.3
+#usr/share/man/man3/Math::Trig.3
+#usr/share/man/man3/Memoize.3
+#usr/share/man/man3/Memoize::AnyDBM_File.3
+#usr/share/man/man3/Memoize::Expire.3
+#usr/share/man/man3/Memoize::ExpireFile.3
+#usr/share/man/man3/Memoize::ExpireTest.3
+#usr/share/man/man3/Memoize::NDBM_File.3
+#usr/share/man/man3/Memoize::SDBM_File.3
+#usr/share/man/man3/Memoize::Storable.3
+#usr/share/man/man3/NEXT.3
+#usr/share/man/man3/Net::Cmd.3
+#usr/share/man/man3/Net::Config.3
+#usr/share/man/man3/Net::Domain.3
+#usr/share/man/man3/Net::FTP.3
+#usr/share/man/man3/Net::FTP::A.3
+#usr/share/man/man3/Net::FTP::E.3
+#usr/share/man/man3/Net::FTP::I.3
+#usr/share/man/man3/Net::FTP::L.3
+#usr/share/man/man3/Net::FTP::dataconn.3
+#usr/share/man/man3/Net::NNTP.3
+#usr/share/man/man3/Net::Netrc.3
+#usr/share/man/man3/Net::POP3.3
+#usr/share/man/man3/Net::Ping.3
+#usr/share/man/man3/Net::SMTP.3
+#usr/share/man/man3/Net::Time.3
+#usr/share/man/man3/Net::hostent.3
+#usr/share/man/man3/Net::libnetFAQ.3
+#usr/share/man/man3/Net::netent.3
+#usr/share/man/man3/Net::protoent.3
+#usr/share/man/man3/Net::servent.3
+#usr/share/man/man3/O.3
+#usr/share/man/man3/Opcode.3
+#usr/share/man/man3/POSIX.3
+#usr/share/man/man3/PerlIO.3
+#usr/share/man/man3/PerlIO::encoding.3
+#usr/share/man/man3/PerlIO::scalar.3
+#usr/share/man/man3/PerlIO::via.3
+#usr/share/man/man3/PerlIO::via::QuotedPrint.3
+#usr/share/man/man3/Pod::Checker.3
+#usr/share/man/man3/Pod::Find.3
+#usr/share/man/man3/Pod::Html.3
+#usr/share/man/man3/Pod::InputObjects.3
+#usr/share/man/man3/Pod::LaTeX.3
+#usr/share/man/man3/Pod::Man.3
+#usr/share/man/man3/Pod::ParseLink.3
+#usr/share/man/man3/Pod::ParseUtils.3
+#usr/share/man/man3/Pod::Parser.3
+#usr/share/man/man3/Pod::Plainer.3
+#usr/share/man/man3/Pod::Select.3
+#usr/share/man/man3/Pod::Text.3
+#usr/share/man/man3/Pod::Text::Color.3
+#usr/share/man/man3/Pod::Text::Overstrike.3
+#usr/share/man/man3/Pod::Text::Termcap.3
+#usr/share/man/man3/Pod::Usage.3
+#usr/share/man/man3/SDBM_File.3
+#usr/share/man/man3/Safe.3
+#usr/share/man/man3/Scalar::Util.3
+#usr/share/man/man3/Search::Dict.3
+#usr/share/man/man3/SelectSaver.3
+#usr/share/man/man3/SelfLoader.3
+#usr/share/man/man3/Shell.3
+#usr/share/man/man3/Socket.3
+#usr/share/man/man3/Storable.3
+#usr/share/man/man3/Switch.3
+#usr/share/man/man3/Symbol.3
+#usr/share/man/man3/Sys::Hostname.3
+#usr/share/man/man3/Sys::Syslog.3
+#usr/share/man/man3/Term::ANSIColor.3
+#usr/share/man/man3/Term::Cap.3
+#usr/share/man/man3/Term::Complete.3
+#usr/share/man/man3/Term::ReadLine.3
+#usr/share/man/man3/Test.3
+#usr/share/man/man3/Test::Builder.3
+#usr/share/man/man3/Test::Harness.3
+#usr/share/man/man3/Test::Harness::Assert.3
+#usr/share/man/man3/Test::Harness::Iterator.3
+#usr/share/man/man3/Test::Harness::Straps.3
+#usr/share/man/man3/Test::More.3
+#usr/share/man/man3/Test::Simple.3
+#usr/share/man/man3/Test::Tutorial.3
+#usr/share/man/man3/Text::Abbrev.3
+#usr/share/man/man3/Text::Balanced.3
+#usr/share/man/man3/Text::ParseWords.3
+#usr/share/man/man3/Text::Soundex.3
+#usr/share/man/man3/Text::Tabs.3
+#usr/share/man/man3/Text::Wrap.3
+#usr/share/man/man3/Thread.3
+#usr/share/man/man3/Thread::Queue.3
+#usr/share/man/man3/Thread::Semaphore.3
+#usr/share/man/man3/Tie::Array.3
+#usr/share/man/man3/Tie::File.3
+#usr/share/man/man3/Tie::Handle.3
+#usr/share/man/man3/Tie::Hash.3
+#usr/share/man/man3/Tie::Memoize.3
+#usr/share/man/man3/Tie::RefHash.3
+#usr/share/man/man3/Tie::Scalar.3
+#usr/share/man/man3/Tie::SubstrHash.3
+#usr/share/man/man3/Time::HiRes.3
+#usr/share/man/man3/Time::Local.3
+#usr/share/man/man3/Time::gmtime.3
+#usr/share/man/man3/Time::localtime.3
+#usr/share/man/man3/Time::tm.3
+#usr/share/man/man3/UNIVERSAL.3
+#usr/share/man/man3/Unicode::Collate.3
+#usr/share/man/man3/Unicode::Normalize.3
+#usr/share/man/man3/Unicode::UCD.3
+#usr/share/man/man3/User::grent.3
+#usr/share/man/man3/User::pwent.3
+#usr/share/man/man3/Win32.3
+#usr/share/man/man3/XS::APItest.3
+#usr/share/man/man3/XS::Typemap.3
+#usr/share/man/man3/XSLoader.3
+#usr/share/man/man3/attributes.3
+#usr/share/man/man3/attrs.3
+#usr/share/man/man3/autouse.3
+#usr/share/man/man3/base.3
+#usr/share/man/man3/bigint.3
+#usr/share/man/man3/bignum.3
+#usr/share/man/man3/bigrat.3
+#usr/share/man/man3/blib.3
+#usr/share/man/man3/bytes.3
+#usr/share/man/man3/charnames.3
+#usr/share/man/man3/constant.3
+#usr/share/man/man3/diagnostics.3
+#usr/share/man/man3/encoding.3
+#usr/share/man/man3/fields.3
+#usr/share/man/man3/filetest.3
+#usr/share/man/man3/if.3
+#usr/share/man/man3/integer.3
+#usr/share/man/man3/less.3
+#usr/share/man/man3/lib.3
+#usr/share/man/man3/locale.3
+#usr/share/man/man3/open.3
+#usr/share/man/man3/ops.3
+#usr/share/man/man3/overload.3
+#usr/share/man/man3/re.3
+#usr/share/man/man3/sigtrap.3
+#usr/share/man/man3/sort.3
+#usr/share/man/man3/strict.3
+#usr/share/man/man3/subs.3
+#usr/share/man/man3/threads.3
+#usr/share/man/man3/threads::shared.3
+#usr/share/man/man3/utf8.3
+#usr/share/man/man3/vars.3
+#usr/share/man/man3/vmsish.3
+#usr/share/man/man3/warnings.3
+#usr/share/man/man3/warnings::register.3
+##
+## texinfo-4.6
+##
+#usr/bin/info
+#usr/bin/infokey
+#usr/bin/install-info
+#usr/bin/makeinfo
+#usr/bin/texi2dvi
+#usr/bin/texindex
+#usr/share/info/info-stnd.info
+#usr/share/info/info.info
+#usr/share/info/texinfo
+#usr/share/info/texinfo-1
+#usr/share/info/texinfo-2
+#usr/share/info/texinfo-3
+#usr/share/man/man1/info.1
+#usr/share/man/man1/install-info.1
+#usr/share/man/man1/makeinfo.1
+#usr/share/man/man1/texi2dvi.1
+#usr/share/man/man1/texindex.1
+#usr/share/man/man5/info.5
+#usr/share/man/man5/texinfo.5
+#usr/share/texinfo
+#usr/share/texinfo/texinfo.dtd
+#usr/share/texinfo/texinfo.xsl
+##
+## autoconf-2.57
+##
+#usr/bin/autoconf
+#usr/bin/autoheader
+#usr/bin/autom4te
+#usr/bin/autoreconf
+#usr/bin/autoscan
+#usr/bin/autoupdate
+#usr/bin/ifnames
+#usr/share/autoconf
+#usr/share/autoconf/Autom4te
+#usr/share/autoconf/Autom4te/General.pm
+#usr/share/autoconf/Autom4te/Struct.pm
+#usr/share/autoconf/Autom4te/XFile.pm
+#usr/share/autoconf/INSTALL
+#usr/share/autoconf/autoconf
+#usr/share/autoconf/autoconf/autoconf.m4
+#usr/share/autoconf/autoconf/autoconf.m4f
+#usr/share/autoconf/autoconf/autoheader.m4
+#usr/share/autoconf/autoconf/autoscan.m4
+#usr/share/autoconf/autoconf/autotest.m4
+#usr/share/autoconf/autoconf/autoupdate.m4
+#usr/share/autoconf/autoconf/c.m4
+#usr/share/autoconf/autoconf/fortran.m4
+#usr/share/autoconf/autoconf/functions.m4
+#usr/share/autoconf/autoconf/general.m4
+#usr/share/autoconf/autoconf/headers.m4
+#usr/share/autoconf/autoconf/lang.m4
+#usr/share/autoconf/autoconf/libs.m4
+#usr/share/autoconf/autoconf/oldnames.m4
+#usr/share/autoconf/autoconf/programs.m4
+#usr/share/autoconf/autoconf/specific.m4
+#usr/share/autoconf/autoconf/status.m4
+#usr/share/autoconf/autoconf/types.m4
+#usr/share/autoconf/autom4te.cfg
+#usr/share/autoconf/autoscan
+#usr/share/autoconf/autoscan/autoscan.list
+#usr/share/autoconf/autotest
+#usr/share/autoconf/autotest/autotest.m4
+#usr/share/autoconf/autotest/autotest.m4f
+#usr/share/autoconf/autotest/general.m4
+#usr/share/autoconf/m4sugar
+#usr/share/autoconf/m4sugar/m4sh.m4
+#usr/share/autoconf/m4sugar/m4sh.m4f
+#usr/share/autoconf/m4sugar/m4sugar.m4
+#usr/share/autoconf/m4sugar/m4sugar.m4f
+#usr/share/autoconf/m4sugar/version.m4
+#usr/share/info/autoconf.info
+#usr/share/man/man1/autoconf.1
+#usr/share/man/man1/autoheader.1
+#usr/share/man/man1/autom4te.1
+#usr/share/man/man1/autoreconf.1
+#usr/share/man/man1/autoscan.1
+#usr/share/man/man1/autoupdate.1
+#usr/share/man/man1/config.guess.1
+#usr/share/man/man1/config.sub.1
+#usr/share/man/man1/ifnames.1
+##
+## automake-1.7.6
+##
+#usr/bin/aclocal
+#usr/bin/aclocal-1.7
+#usr/bin/automake
+#usr/bin/automake-1.7
+#usr/share/aclocal-1.7
+#usr/share/aclocal-1.7/amversion.m4
+#usr/share/aclocal-1.7/as.m4
+#usr/share/aclocal-1.7/auxdir.m4
+#usr/share/aclocal-1.7/ccstdc.m4
+#usr/share/aclocal-1.7/cond.m4
+#usr/share/aclocal-1.7/depend.m4
+#usr/share/aclocal-1.7/depout.m4
+#usr/share/aclocal-1.7/dmalloc.m4
+#usr/share/aclocal-1.7/gcj.m4
+#usr/share/aclocal-1.7/header.m4
+#usr/share/aclocal-1.7/init.m4
+#usr/share/aclocal-1.7/install-sh.m4
+#usr/share/aclocal-1.7/lead-dot.m4
+#usr/share/aclocal-1.7/lex.m4
+#usr/share/aclocal-1.7/lispdir.m4
+#usr/share/aclocal-1.7/maintainer.m4
+#usr/share/aclocal-1.7/make.m4
+#usr/share/aclocal-1.7/minuso.m4
+#usr/share/aclocal-1.7/missing.m4
+#usr/share/aclocal-1.7/multi.m4
+#usr/share/aclocal-1.7/obsol-gt.m4
+#usr/share/aclocal-1.7/obsol-lt.m4
+#usr/share/aclocal-1.7/obsolete.m4
+#usr/share/aclocal-1.7/options.m4
+#usr/share/aclocal-1.7/protos.m4
+#usr/share/aclocal-1.7/python.m4
+#usr/share/aclocal-1.7/regex.m4
+#usr/share/aclocal-1.7/runlog.m4
+#usr/share/aclocal-1.7/sanity.m4
+#usr/share/aclocal-1.7/strip.m4
+#usr/share/automake
+#usr/share/automake-1.7
+#usr/share/automake-1.7/Automake
+#usr/share/automake-1.7/Automake/Channels.pm
+#usr/share/automake-1.7/Automake/General.pm
+#usr/share/automake-1.7/Automake/Struct.pm
+#usr/share/automake-1.7/Automake/XFile.pm
+#usr/share/automake-1.7/COPYING
+#usr/share/automake-1.7/INSTALL
+#usr/share/automake-1.7/acinstall
+#usr/share/automake-1.7/am
+#usr/share/automake-1.7/am/ansi2knr.am
+#usr/share/automake-1.7/am/check.am
+#usr/share/automake-1.7/am/clean-hdr.am
+#usr/share/automake-1.7/am/clean.am
+#usr/share/automake-1.7/am/compile.am
+#usr/share/automake-1.7/am/configure.am
+#usr/share/automake-1.7/am/data.am
+#usr/share/automake-1.7/am/dejagnu.am
+#usr/share/automake-1.7/am/depend.am
+#usr/share/automake-1.7/am/depend2.am
+#usr/share/automake-1.7/am/distdir.am
+#usr/share/automake-1.7/am/footer.am
+#usr/share/automake-1.7/am/header-vars.am
+#usr/share/automake-1.7/am/header.am
+#usr/share/automake-1.7/am/install.am
+#usr/share/automake-1.7/am/java.am
+#usr/share/automake-1.7/am/lang-compile.am
+#usr/share/automake-1.7/am/lex.am
+#usr/share/automake-1.7/am/library.am
+#usr/share/automake-1.7/am/libs.am
+#usr/share/automake-1.7/am/libtool.am
+#usr/share/automake-1.7/am/lisp.am
+#usr/share/automake-1.7/am/ltlib.am
+#usr/share/automake-1.7/am/ltlibrary.am
+#usr/share/automake-1.7/am/mans-vars.am
+#usr/share/automake-1.7/am/mans.am
+#usr/share/automake-1.7/am/multilib.am
+#usr/share/automake-1.7/am/program.am
+#usr/share/automake-1.7/am/progs.am
+#usr/share/automake-1.7/am/python.am
+#usr/share/automake-1.7/am/remake-hdr.am
+#usr/share/automake-1.7/am/scripts.am
+#usr/share/automake-1.7/am/subdirs.am
+#usr/share/automake-1.7/am/tags.am
+#usr/share/automake-1.7/am/texi-vers.am
+#usr/share/automake-1.7/am/texibuild.am
+#usr/share/automake-1.7/am/texinfos.am
+#usr/share/automake-1.7/am/yacc.am
+#usr/share/automake-1.7/ansi2knr.1
+#usr/share/automake-1.7/ansi2knr.c
+#usr/share/automake-1.7/compile
+#usr/share/automake-1.7/config.guess
+#usr/share/automake-1.7/config.sub
+#usr/share/automake-1.7/depcomp
+#usr/share/automake-1.7/elisp-comp
+#usr/share/automake-1.7/install-sh
+#usr/share/automake-1.7/mdate-sh
+#usr/share/automake-1.7/missing
+#usr/share/automake-1.7/mkinstalldirs
+#usr/share/automake-1.7/py-compile
+#usr/share/automake-1.7/texinfo.tex
+#usr/share/automake-1.7/ylwrap
+#usr/share/info/automake.info
+##
+## bash-2.05b
+##
+bin/sh
+bin/bash
+#bin/bashbug
+#usr/share/info/bash.info
+#usr/share/man/man1/bash.1
+#usr/share/man/man1/bashbug.1
+##
+## file-4.16
+##
+#usr/bin/file
+#usr/include/magic.h
+#usr/lib/libmagic.a
+#usr/lib/libmagic.la
+#usr/lib/libmagic.so
+#usr/lib/libmagic.so.1
+#usr/lib/libmagic.so.1.0.0
+#usr/share/file
+#usr/share/file/magic
+#usr/share/file/magic.mgc
+#usr/share/file/magic.mime
+#usr/share/file/magic.mime.mgc
+#usr/share/man/man1/file.1
+#usr/share/man/man3/libmagic.3
+#usr/share/man/man4/magic.4
+##
+## libtool-1.5
+##
+#usr/bin/libtool
+#usr/bin/libtoolize
+#usr/include/ltdl.h
+#usr/lib/libltdl.a
+#usr/lib/libltdl.la
+#usr/lib/libltdl.so
+#usr/lib/libltdl.so.3
+#usr/lib/libltdl.so.3.1.0
+#usr/share/aclocal/libtool.m4
+#usr/share/aclocal/ltdl.m4
+#usr/share/info/libtool.info
+#usr/share/info/libtool.info-1
+#usr/share/info/libtool.info-2
+#usr/share/info/libtool.info-3
+#usr/share/info/libtool.info-4
+#usr/share/info/libtool.info-5
+#usr/share/libtool
+#usr/share/libtool/config.guess
+#usr/share/libtool/config.sub
+#usr/share/libtool/libltdl
+#usr/share/libtool/libltdl/COPYING.LIB
+#usr/share/libtool/libltdl/Makefile.am
+#usr/share/libtool/libltdl/Makefile.in
+#usr/share/libtool/libltdl/README
+#usr/share/libtool/libltdl/acinclude.m4
+#usr/share/libtool/libltdl/aclocal.m4
+#usr/share/libtool/libltdl/config-h.in
+#usr/share/libtool/libltdl/config.guess
+#usr/share/libtool/libltdl/config.sub
+#usr/share/libtool/libltdl/configure
+#usr/share/libtool/libltdl/configure.ac
+#usr/share/libtool/libltdl/install-sh
+#usr/share/libtool/libltdl/ltdl.c
+#usr/share/libtool/libltdl/ltdl.h
+#usr/share/libtool/libltdl/ltmain.sh
+#usr/share/libtool/libltdl/missing
+#usr/share/libtool/libltdl/mkinstalldirs
+#usr/share/libtool/ltmain.sh
+##
+## bzip2-1.0.3
+##
+bin/bunzip2
+bin/bzcat
+bin/bzip2
+#bin/bzip2recover
+#bin/bzless
+#bin/bzmore
+lib/libbz2.so.1.0
+lib/libbz2.so.1.0.3
+#usr/bin/bzcmp
+#usr/bin/bzdiff
+#usr/bin/bzegrep
+#usr/bin/bzfgrep
+#usr/bin/bzgrep
+#usr/include/bzlib.h
+#usr/lib/libbz2.a
+usr/lib/libbz2.so
+#usr/share/man/man1/bzcmp.1
+#usr/share/man/man1/bzdiff.1
+#usr/share/man/man1/bzegrep.1
+#usr/share/man/man1/bzfgrep.1
+#usr/share/man/man1/bzgrep.1
+#usr/share/man/man1/bzip2.1
+#usr/share/man/man1/bzless.1
+#usr/share/man/man1/bzmore.1
+##
+## diffutils-2.8.1
+##
+usr/bin/cmp
+usr/bin/diff
+#usr/bin/diff3
+#usr/bin/sdiff
+#usr/share/info/diff.info
+#usr/share/man/man1/cmp.1
+#usr/share/man/man1/diff3.1
+#usr/share/man/man1/sdiff.1
+##
+## ed-0.2
+##
+#bin/ed
+#bin/red
+#usr/share/info/ed.info
+#usr/share/man/man1/ed.1
+#usr/share/man/man1/red.1
+##
+## kbd-1.08
+##
+bin/loadkeys
+usr/bin/chvt
+usr/bin/deallocvt
+usr/bin/dumpkeys
+usr/bin/fgconsole
+usr/bin/getkeycodes
+usr/bin/getunimap
+usr/bin/kbd_mode
+#usr/bin/kbdrate
+usr/bin/loadunimap
+#usr/bin/mapscrn
+#usr/bin/openvt
+#usr/bin/psfaddtable
+#usr/bin/psfgettable
+#usr/bin/psfstriptable
+#usr/bin/psfxtable
+#usr/bin/resizecons
+usr/bin/setfont
+usr/bin/setkeycodes
+usr/bin/setleds
+usr/bin/setlogcons
+usr/bin/setmetamode
+#usr/bin/setvesablank
+usr/bin/showconsolefont
+usr/bin/showkey
+usr/bin/unicode_start
+usr/bin/unicode_stop
+#usr/share/kbd
+#usr/share/kbd/consolefonts
+#usr/share/kbd/consolefonts/161.cp.gz
+#usr/share/kbd/consolefonts/162.cp.gz
+#usr/share/kbd/consolefonts/163.cp.gz
+#usr/share/kbd/consolefonts/164.cp.gz
+#usr/share/kbd/consolefonts/165.cp.gz
+#usr/share/kbd/consolefonts/737.cp.gz
+#usr/share/kbd/consolefonts/880.cp.gz
+#usr/share/kbd/consolefonts/928.cp.gz
+#usr/share/kbd/consolefonts/972.cp.gz
+#usr/share/kbd/consolefonts/Agafari-12.psfu.gz
+#usr/share/kbd/consolefonts/Agafari-14.psfu.gz
+#usr/share/kbd/consolefonts/Agafari-16.psfu.gz
+#usr/share/kbd/consolefonts/Cyr_a8x14.psfu.gz
+#usr/share/kbd/consolefonts/Cyr_a8x16.psfu.gz
+#usr/share/kbd/consolefonts/Cyr_a8x8.psfu.gz
+#usr/share/kbd/consolefonts/ERRORS.gz
+#usr/share/kbd/consolefonts/Goha-12.psfu.gz
+#usr/share/kbd/consolefonts/Goha-14.psfu.gz
+#usr/share/kbd/consolefonts/Goha-16.psfu.gz
+#usr/share/kbd/consolefonts/GohaClassic-12.psfu.gz
+#usr/share/kbd/consolefonts/GohaClassic-14.psfu.gz
+#usr/share/kbd/consolefonts/GohaClassic-16.psfu.gz
+#usr/share/kbd/consolefonts/LatArCyrHeb-08.psfu.gz
+#usr/share/kbd/consolefonts/LatArCyrHeb-14.psfu.gz
+#usr/share/kbd/consolefonts/LatArCyrHeb-16+.psfu.gz
+#usr/share/kbd/consolefonts/LatArCyrHeb-16.psfu.gz
+#usr/share/kbd/consolefonts/LatArCyrHeb-19.psfu.gz
+#usr/share/kbd/consolefonts/Mik_8x16.gz
+#usr/share/kbd/consolefonts/README.12x22
+#usr/share/kbd/consolefonts/README.Arabic
+#usr/share/kbd/consolefonts/README.Cyrillic
+#usr/share/kbd/consolefonts/README.Ethiopic
+#usr/share/kbd/consolefonts/README.Greek
+#usr/share/kbd/consolefonts/README.Hebrew
+#usr/share/kbd/consolefonts/README.cp1250
+#usr/share/kbd/consolefonts/README.cybercafe
+#usr/share/kbd/consolefonts/README.drdos
+#usr/share/kbd/consolefonts/README.lat0
+#usr/share/kbd/consolefonts/README.lat7
+#usr/share/kbd/consolefonts/README.lat9
+#usr/share/kbd/consolefonts/README.psfu
+#usr/share/kbd/consolefonts/alt-8x14.gz
+#usr/share/kbd/consolefonts/alt-8x16.gz
+#usr/share/kbd/consolefonts/alt-8x8.gz
+#usr/share/kbd/consolefonts/altc-8x16.gz
+#usr/share/kbd/consolefonts/aply16.psf.gz
+#usr/share/kbd/consolefonts/arm8.fnt.gz
+#usr/share/kbd/consolefonts/cp1250.psfu.gz
+#usr/share/kbd/consolefonts/cp850-8x14.psfu.gz
+#usr/share/kbd/consolefonts/cp850-8x16.psfu.gz
+#usr/share/kbd/consolefonts/cp850-8x8.psfu.gz
+#usr/share/kbd/consolefonts/cp857.08.gz
+#usr/share/kbd/consolefonts/cp857.14.gz
+#usr/share/kbd/consolefonts/cp857.16.gz
+#usr/share/kbd/consolefonts/cp865-8x14.psfu.gz
+#usr/share/kbd/consolefonts/cp865-8x16.psfu.gz
+#usr/share/kbd/consolefonts/cp865-8x8.psfu.gz
+#usr/share/kbd/consolefonts/cp866-8x14.psf.gz
+#usr/share/kbd/consolefonts/cp866-8x16.psf.gz
+#usr/share/kbd/consolefonts/cp866-8x8.psf.gz
+#usr/share/kbd/consolefonts/cybercafe.fnt.gz
+#usr/share/kbd/consolefonts/cyr-sun16.psfu.gz
+#usr/share/kbd/consolefonts/default8x16.psfu.gz
+#usr/share/kbd/consolefonts/default8x9.psfu.gz
+#usr/share/kbd/consolefonts/drdos8x14.psfu.gz
+#usr/share/kbd/consolefonts/drdos8x16.psfu.gz
+#usr/share/kbd/consolefonts/drdos8x6.psfu.gz
+#usr/share/kbd/consolefonts/drdos8x8.psfu.gz
+#usr/share/kbd/consolefonts/gr737a-8x8.psfu.gz
+#usr/share/kbd/consolefonts/gr737a-9x14.psfu.gz
+#usr/share/kbd/consolefonts/gr737a-9x16.psfu.gz
+#usr/share/kbd/consolefonts/gr737b-8x11.psfu.gz
+#usr/share/kbd/consolefonts/gr737b-9x16-medieval.psfu.gz
+#usr/share/kbd/consolefonts/gr737c-8x14.psfu.gz
+#usr/share/kbd/consolefonts/gr737c-8x16.psfu.gz
+#usr/share/kbd/consolefonts/gr737c-8x6.psfu.gz
+#usr/share/kbd/consolefonts/gr737c-8x7.psfu.gz
+#usr/share/kbd/consolefonts/gr737c-8x8.psfu.gz
+#usr/share/kbd/consolefonts/gr737d-8x16.psfu.gz
+#usr/share/kbd/consolefonts/gr928-8x16-thin.psfu.gz
+#usr/share/kbd/consolefonts/gr928-9x14.psfu.gz
+#usr/share/kbd/consolefonts/gr928-9x16.psfu.gz
+#usr/share/kbd/consolefonts/gr928a-8x14.psfu.gz
+#usr/share/kbd/consolefonts/gr928a-8x16.psfu.gz
+#usr/share/kbd/consolefonts/gr928b-8x14.psfu.gz
+#usr/share/kbd/consolefonts/gr928b-8x16.psfu.gz
+#usr/share/kbd/consolefonts/iso01-12x22.psfu.gz
+#usr/share/kbd/consolefonts/iso01.08.gz
+#usr/share/kbd/consolefonts/iso01.14.gz
+#usr/share/kbd/consolefonts/iso01.16.gz
+#usr/share/kbd/consolefonts/iso02-12x22.psfu.gz
+#usr/share/kbd/consolefonts/iso02.08.gz
+#usr/share/kbd/consolefonts/iso02.14.gz
+#usr/share/kbd/consolefonts/iso02.16.gz
+#usr/share/kbd/consolefonts/iso03.08.gz
+#usr/share/kbd/consolefonts/iso03.14.gz
+#usr/share/kbd/consolefonts/iso03.16.gz
+#usr/share/kbd/consolefonts/iso04.08.gz
+#usr/share/kbd/consolefonts/iso04.14.gz
+#usr/share/kbd/consolefonts/iso04.16.gz
+#usr/share/kbd/consolefonts/iso05.08.gz
+#usr/share/kbd/consolefonts/iso05.14.gz
+#usr/share/kbd/consolefonts/iso05.16.gz
+#usr/share/kbd/consolefonts/iso06.08.gz
+#usr/share/kbd/consolefonts/iso06.14.gz
+#usr/share/kbd/consolefonts/iso06.16.gz
+#usr/share/kbd/consolefonts/iso07.14.gz
+#usr/share/kbd/consolefonts/iso07.16.gz
+usr/share/kbd/consolefonts/iso07u-16.psfu.gz
+#usr/share/kbd/consolefonts/iso08.08.gz
+#usr/share/kbd/consolefonts/iso08.14.gz
+#usr/share/kbd/consolefonts/iso08.16.gz
+#usr/share/kbd/consolefonts/iso09.08.gz
+#usr/share/kbd/consolefonts/iso09.14.gz
+#usr/share/kbd/consolefonts/iso09.16.gz
+#usr/share/kbd/consolefonts/iso10.08.gz
+#usr/share/kbd/consolefonts/iso10.14.gz
+#usr/share/kbd/consolefonts/iso10.16.gz
+#usr/share/kbd/consolefonts/koi8-14.psf.gz
+#usr/share/kbd/consolefonts/koi8c-8x16.gz
+#usr/share/kbd/consolefonts/koi8r-8x14.gz
+#usr/share/kbd/consolefonts/koi8r-8x16.gz
+#usr/share/kbd/consolefonts/koi8r-8x8.gz
+#usr/share/kbd/consolefonts/koi8r.8x8.psfu.gz
+#usr/share/kbd/consolefonts/koi8u_8x14.psfu.gz
+#usr/share/kbd/consolefonts/koi8u_8x16.psfu.gz
+#usr/share/kbd/consolefonts/koi8u_8x8.psfu.gz
+#usr/share/kbd/consolefonts/lat0-08.psfu.gz
+#usr/share/kbd/consolefonts/lat0-10.psfu.gz
+#usr/share/kbd/consolefonts/lat0-12.psfu.gz
+#usr/share/kbd/consolefonts/lat0-14.psfu.gz
+usr/share/kbd/consolefonts/lat0-16.psfu.gz
+#usr/share/kbd/consolefonts/lat1-08.psfu.gz
+#usr/share/kbd/consolefonts/lat1-10.psfu.gz
+#usr/share/kbd/consolefonts/lat1-12.psfu.gz
+#usr/share/kbd/consolefonts/lat1-14.psfu.gz
+usr/share/kbd/consolefonts/lat1-16.psfu.gz
+#usr/share/kbd/consolefonts/lat2-08.psfu.gz
+#usr/share/kbd/consolefonts/lat2-10.psfu.gz
+#usr/share/kbd/consolefonts/lat2-12.psfu.gz
+#usr/share/kbd/consolefonts/lat2-14.psfu.gz
+usr/share/kbd/consolefonts/lat2-16.psfu.gz
+#usr/share/kbd/consolefonts/lat2a-16.psfu.gz
+#usr/share/kbd/consolefonts/lat4-08.psfu.gz
+#usr/share/kbd/consolefonts/lat4-10.psfu.gz
+#usr/share/kbd/consolefonts/lat4-12.psfu.gz
+#usr/share/kbd/consolefonts/lat4-14.psfu.gz
+#usr/share/kbd/consolefonts/lat4-16+.psfu.gz
+#usr/share/kbd/consolefonts/lat4-16.psfu.gz
+#usr/share/kbd/consolefonts/lat4-19.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-08.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-10.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-12.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-14.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-16+.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-16.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-19.psfu.gz
+#usr/share/kbd/consolefonts/lat5-12.psfu.gz
+#usr/share/kbd/consolefonts/lat5-14.psfu.gz
+usr/share/kbd/consolefonts/lat5-16.psfu.gz
+#usr/share/kbd/consolefonts/lat7-14.psfu.gz
+#usr/share/kbd/consolefonts/lat7a-14.psfu.gz
+#usr/share/kbd/consolefonts/lat7a-16.psf.gz
+#usr/share/kbd/consolefonts/lat9-08.psf.gz
+#usr/share/kbd/consolefonts/lat9-10.psf.gz
+#usr/share/kbd/consolefonts/lat9-12.psf.gz
+#usr/share/kbd/consolefonts/lat9-14.psf.gz
+#usr/share/kbd/consolefonts/lat9-16.psf.gz
+#usr/share/kbd/consolefonts/lat9u-08.psfu.gz
+#usr/share/kbd/consolefonts/lat9u-10.psfu.gz
+#usr/share/kbd/consolefonts/lat9u-12.psfu.gz
+#usr/share/kbd/consolefonts/lat9u-14.psfu.gz
+#usr/share/kbd/consolefonts/lat9u-16.psfu.gz
+#usr/share/kbd/consolefonts/lat9v-08.psfu.gz
+#usr/share/kbd/consolefonts/lat9v-10.psfu.gz
+#usr/share/kbd/consolefonts/lat9v-12.psfu.gz
+#usr/share/kbd/consolefonts/lat9v-14.psfu.gz
+#usr/share/kbd/consolefonts/lat9v-16.psfu.gz
+#usr/share/kbd/consolefonts/lat9w-08.psfu.gz
+#usr/share/kbd/consolefonts/lat9w-10.psfu.gz
+#usr/share/kbd/consolefonts/lat9w-12.psfu.gz
+#usr/share/kbd/consolefonts/lat9w-14.psfu.gz
+#usr/share/kbd/consolefonts/lat9w-16.psfu.gz
+#usr/share/kbd/consolefonts/partialfonts
+#usr/share/kbd/consolefonts/partialfonts/8859-1.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-1.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-1.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-10.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-10.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-10.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-2.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-2.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-2.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-3.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-3.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-3.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-4.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-4.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-4.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-5.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-5.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-5.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-6.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-6.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-6.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-7.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-7.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-7.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-8.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-8.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-8.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-9.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-9.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-9.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/ascii.20-7f.08.gz
+#usr/share/kbd/consolefonts/partialfonts/ascii.20-7f.14.gz
+#usr/share/kbd/consolefonts/partialfonts/ascii.20-7f.16.gz
+#usr/share/kbd/consolefonts/partialfonts/cp437.00-1f.08.gz
+#usr/share/kbd/consolefonts/partialfonts/cp437.00-1f.14.gz
+#usr/share/kbd/consolefonts/partialfonts/cp437.00-1f.16.gz
+#usr/share/kbd/consolefonts/partialfonts/none.00-17.08.gz
+#usr/share/kbd/consolefonts/partialfonts/none.00-17.14.gz
+#usr/share/kbd/consolefonts/partialfonts/none.00-17.16.gz
+#usr/share/kbd/consolefonts/ruscii_8x16.psfu.gz
+#usr/share/kbd/consolefonts/ruscii_8x8.psfu.gz
+#usr/share/kbd/consolefonts/sun12x22.psfu.gz
+#usr/share/kbd/consolefonts/t.fnt.gz
+#usr/share/kbd/consolefonts/t850b.fnt.gz
+#usr/share/kbd/consolefonts/tcvn8x16.psf.gz
+usr/share/kbd/consolefonts/viscii10-8x16.psfu.gz
+#usr/share/kbd/consoletrans
+#usr/share/kbd/consoletrans/8859-10_to_uni.trans
+#usr/share/kbd/consoletrans/8859-13_to_uni.trans
+#usr/share/kbd/consoletrans/8859-14_to_uni.trans
+#usr/share/kbd/consoletrans/8859-15_to_uni.trans
+#usr/share/kbd/consoletrans/8859-1_to_uni.trans
+#usr/share/kbd/consoletrans/8859-2_to_uni.trans
+#usr/share/kbd/consoletrans/8859-3_to_uni.trans
+#usr/share/kbd/consoletrans/8859-4_to_uni.trans
+#usr/share/kbd/consoletrans/8859-5_to_uni.trans
+#usr/share/kbd/consoletrans/8859-6_to_uni.trans
+#usr/share/kbd/consoletrans/8859-7_to_uni.trans
+#usr/share/kbd/consoletrans/8859-8_to_uni.trans
+#usr/share/kbd/consoletrans/8859-9_to_uni.trans
+#usr/share/kbd/consoletrans/baltic.trans
+#usr/share/kbd/consoletrans/cp1250_to_uni.trans
+#usr/share/kbd/consoletrans/cp1251_to_uni.trans
+#usr/share/kbd/consoletrans/cp437_to_iso01.trans
+#usr/share/kbd/consoletrans/cp437_to_uni.trans
+#usr/share/kbd/consoletrans/cp737_to_uni.trans
+#usr/share/kbd/consoletrans/cp775_to_uni.trans
+#usr/share/kbd/consoletrans/cp850_to_iso01.trans
+#usr/share/kbd/consoletrans/cp850_to_uni.trans
+#usr/share/kbd/consoletrans/cp852_to_uni.trans
+#usr/share/kbd/consoletrans/cp853_to_uni.trans
+#usr/share/kbd/consoletrans/cp855_to_uni.trans
+#usr/share/kbd/consoletrans/cp857_to_uni.trans
+#usr/share/kbd/consoletrans/cp860_to_uni.trans
+#usr/share/kbd/consoletrans/cp861_to_uni.trans
+#usr/share/kbd/consoletrans/cp862_to_uni.trans
+#usr/share/kbd/consoletrans/cp863_to_uni.trans
+#usr/share/kbd/consoletrans/cp864_to_uni.trans
+#usr/share/kbd/consoletrans/cp865_to_uni.trans
+#usr/share/kbd/consoletrans/cp866_to_uni.trans
+#usr/share/kbd/consoletrans/cp869_to_uni.trans
+#usr/share/kbd/consoletrans/cp874_to_uni.trans
+#usr/share/kbd/consoletrans/iso02_to_cp1250.trans
+#usr/share/kbd/consoletrans/koi2alt
+#usr/share/kbd/consoletrans/koi8-r_to_uni.trans
+#usr/share/kbd/consoletrans/koi8-u_to_uni.trans
+#usr/share/kbd/consoletrans/koi8u2ruscii
+#usr/share/kbd/consoletrans/latin2u.trans
+#usr/share/kbd/consoletrans/null
+#usr/share/kbd/consoletrans/space
+#usr/share/kbd/consoletrans/trivial
+#usr/share/kbd/consoletrans/utflist
+#usr/share/kbd/consoletrans/vga2iso
+#usr/share/kbd/consoletrans/viscii1.0_to_tcvn.trans
+#usr/share/kbd/consoletrans/viscii1.0_to_viscii1.1.trans
+#usr/share/kbd/consoletrans/zero
+#usr/share/kbd/keymaps
+#usr/share/kbd/keymaps/amiga
+#usr/share/kbd/keymaps/amiga/amiga-de.map.gz
+#usr/share/kbd/keymaps/amiga/amiga-us.map.gz
+#usr/share/kbd/keymaps/atari
+#usr/share/kbd/keymaps/atari/atari-de.map.gz
+#usr/share/kbd/keymaps/atari/atari-se.map.gz
+#usr/share/kbd/keymaps/atari/atari-uk-falcon.map.gz
+#usr/share/kbd/keymaps/atari/atari-us.map.gz
+usr/share/kbd/keymaps/i386
+#usr/share/kbd/keymaps/i386/azerty
+#usr/share/kbd/keymaps/i386/azerty/azerty.map.gz
+#usr/share/kbd/keymaps/i386/azerty/be-latin1.map.gz
+#usr/share/kbd/keymaps/i386/azerty/fr-latin1.map.gz
+#usr/share/kbd/keymaps/i386/azerty/fr-latin9.map.gz
+#usr/share/kbd/keymaps/i386/azerty/fr-pc.map.gz
+#usr/share/kbd/keymaps/i386/azerty/fr.map.gz
+#usr/share/kbd/keymaps/i386/azerty/wangbe.map.gz
+#usr/share/kbd/keymaps/i386/azerty/wangbe2.map.gz
+#usr/share/kbd/keymaps/i386/dvorak
+#usr/share/kbd/keymaps/i386/dvorak/ANSI-dvorak.map.gz
+#usr/share/kbd/keymaps/i386/dvorak/dvorak-l.map.gz
+#usr/share/kbd/keymaps/i386/dvorak/dvorak-r.map.gz
+#usr/share/kbd/keymaps/i386/dvorak/dvorak.map.gz
+#usr/share/kbd/keymaps/i386/fgGIod
+#usr/share/kbd/keymaps/i386/fgGIod/tr_f-latin5.map.gz
+#usr/share/kbd/keymaps/i386/fgGIod/trf.map.gz
+#usr/share/kbd/keymaps/i386/include
+#usr/share/kbd/keymaps/i386/include/applkey.map.gz
+#usr/share/kbd/keymaps/i386/include/azerty-layout.inc
+#usr/share/kbd/keymaps/i386/include/backspace.map.gz
+#usr/share/kbd/keymaps/i386/include/ctrl.map.gz
+#usr/share/kbd/keymaps/i386/include/euro.map.gz
+#usr/share/kbd/keymaps/i386/include/euro1.map.gz
+#usr/share/kbd/keymaps/i386/include/euro2.map.gz
+#usr/share/kbd/keymaps/i386/include/keypad.map.gz
+#usr/share/kbd/keymaps/i386/include/linux-keys-bare.inc
+#usr/share/kbd/keymaps/i386/include/linux-keys-extd.inc
+#usr/share/kbd/keymaps/i386/include/linux-with-alt-and-altgr.inc
+#usr/share/kbd/keymaps/i386/include/linux-with-modeshift-altgr.inc
+#usr/share/kbd/keymaps/i386/include/linux-with-two-alt-keys.inc
+#usr/share/kbd/keymaps/i386/include/qwerty-layout.inc
+#usr/share/kbd/keymaps/i386/include/qwertz-layout.inc
+#usr/share/kbd/keymaps/i386/include/unicode.map.gz
+#usr/share/kbd/keymaps/i386/include/windowkeys.map.gz
+#usr/share/kbd/keymaps/i386/qwerty
+#usr/share/kbd/keymaps/i386/qwerty/bg-cp1251.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/bg.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/br-abnt.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/br-abnt2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/br-latin1-abnt2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/br-latin1-us.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/by.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/cf.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/cz-cp1250.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/cz-lat2-prog.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/cz-lat2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/cz.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/defkeymap.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/defkeymap_V1.0.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/dk-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/dk.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/emacs.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/emacs2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/es-cp850.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/es.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/et-nodeadkeys.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/et.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/fi-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/fi-latin9.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/fi.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/gr-pc.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/gr.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/hu101.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/hypermap.m4
+#usr/share/kbd/keymaps/i386/qwerty/il-heb.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/il-phonetic.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/il.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/is-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/it-ibm.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/it.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/it2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/jp106.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/la-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/lt.baltic.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/lt.l4.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/lt.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/mk-cp1251.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/mk-utf.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/mk.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/mk0.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/nl.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/nl2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/no-latin1.doc
+#usr/share/kbd/keymaps/i386/qwerty/no-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/no.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/pc110.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/pl.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/pl2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/pt-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/pt-latin9.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ro_win.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru-cp1251.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru-ms.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru-yawerty.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru3.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru4.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru_win.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/se-fi-ir209.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/se-fi-lat6.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/se-ir209.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/se-lat6.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/sk-prog-qwerty.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/sk-qwerty.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/sr-cy.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/sv-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/tr_q-latin5.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/tralt.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/trq.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ua-utf-ws.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ua-utf.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ua-ws.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ua.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/uk.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/us-acentos.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/us.map.gz
+#usr/share/kbd/keymaps/i386/qwertz
+#usr/share/kbd/keymaps/i386/qwertz/croat.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/cz-us-qwertz.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/de-latin1-nodeadkeys.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/de-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/de.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/de_CH-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/fr_CH-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/fr_CH.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/hu.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/sg-latin1-lk450.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/sg-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/sg.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/sk-prog-qwertz.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/sk-qwertz.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/slovene.map.gz
+usr/share/kbd/keymaps/include
+#usr/share/kbd/keymaps/include/compose.8859_7
+#usr/share/kbd/keymaps/include/compose.8859_8
+#usr/share/kbd/keymaps/include/compose.latin
+#usr/share/kbd/keymaps/include/compose.latin1
+#usr/share/kbd/keymaps/include/compose.latin2
+#usr/share/kbd/keymaps/include/compose.latin3
+#usr/share/kbd/keymaps/include/compose.latin4
+#usr/share/kbd/keymaps/include/vim-compose.latin1
+#usr/share/kbd/keymaps/mac
+#usr/share/kbd/keymaps/mac/all
+#usr/share/kbd/keymaps/mac/all/mac-be.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-de-latin1-nodeadkeys.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-de-latin1.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-de_CH.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-dk-latin1.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-dvorak.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-es.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-fi-latin1.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-fr.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-fr_CH-latin1.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-it.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-pt-latin1.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-se.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-template.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-uk.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-us.map.gz
+#usr/share/kbd/keymaps/mac/include
+#usr/share/kbd/keymaps/mac/include/mac-azerty-layout.inc
+#usr/share/kbd/keymaps/mac/include/mac-euro.map.gz
+#usr/share/kbd/keymaps/mac/include/mac-linux-keys-bare.inc
+#usr/share/kbd/keymaps/mac/include/mac-qwerty-layout.inc
+#usr/share/kbd/keymaps/mac/include/mac-qwertz-layout.inc
+#usr/share/kbd/keymaps/ppc
+#usr/share/kbd/keymaps/sun
+#usr/share/kbd/keymaps/sun/sun-pl-altgraph.map.gz
+#usr/share/kbd/keymaps/sun/sun-pl.map.gz
+#usr/share/kbd/keymaps/sun/sundvorak.map.gz
+#usr/share/kbd/keymaps/sun/sunkeymap.map.gz
+#usr/share/kbd/keymaps/sun/sunt4-es.map.gz
+#usr/share/kbd/keymaps/sun/sunt4-fi-latin1.map.gz
+#usr/share/kbd/keymaps/sun/sunt4-no-latin1.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-cz-us.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-de-latin1.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-es.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-fi-latin1.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-fr-latin1.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-ru.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-uk.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-us-cz.map.gz
+#usr/share/kbd/unimaps
+#usr/share/kbd/unimaps/8859-1.a0-ff.uni
+#usr/share/kbd/unimaps/8859-10.a0-ff.uni
+#usr/share/kbd/unimaps/8859-13.a0-ff.uni
+#usr/share/kbd/unimaps/8859-14.a0-ff.uni
+#usr/share/kbd/unimaps/8859-15.a0-ff.uni
+#usr/share/kbd/unimaps/8859-2.a0-ff.uni
+#usr/share/kbd/unimaps/8859-3.a0-ff.uni
+#usr/share/kbd/unimaps/8859-4.a0-ff.uni
+#usr/share/kbd/unimaps/8859-5.a0-ff.uni
+#usr/share/kbd/unimaps/8859-6.a0-ff.uni
+#usr/share/kbd/unimaps/8859-7.a0-ff.uni
+#usr/share/kbd/unimaps/8859-8.a0-ff.uni
+#usr/share/kbd/unimaps/8859-9.a0-ff.uni
+#usr/share/kbd/unimaps/ECMA144.uni
+#usr/share/kbd/unimaps/README
+#usr/share/kbd/unimaps/armscii8.uni
+#usr/share/kbd/unimaps/ascii.20-7f.uni
+#usr/share/kbd/unimaps/cp1250.uni
+#usr/share/kbd/unimaps/cp437.00-1f.uni
+#usr/share/kbd/unimaps/cp437.uni
+#usr/share/kbd/unimaps/cp737.uni
+#usr/share/kbd/unimaps/cp737a.uni
+#usr/share/kbd/unimaps/cp737b.uni
+#usr/share/kbd/unimaps/cp737c.uni
+#usr/share/kbd/unimaps/cp850.uni
+#usr/share/kbd/unimaps/cp850a.uni
+#usr/share/kbd/unimaps/cp850b.uni
+#usr/share/kbd/unimaps/cp850z.uni
+#usr/share/kbd/unimaps/cp865.uni
+#usr/share/kbd/unimaps/cp865a.uni
+#usr/share/kbd/unimaps/cp866.uni
+#usr/share/kbd/unimaps/cp866a.uni
+#usr/share/kbd/unimaps/cybercafe.uni
+#usr/share/kbd/unimaps/cyralt.uni
+#usr/share/kbd/unimaps/def.uni
+#usr/share/kbd/unimaps/empty.uni
+#usr/share/kbd/unimaps/ethiopic.uni
+#usr/share/kbd/unimaps/iso01.uni
+#usr/share/kbd/unimaps/iso02.uni
+#usr/share/kbd/unimaps/iso03.uni
+#usr/share/kbd/unimaps/iso04.uni
+#usr/share/kbd/unimaps/iso05.uni
+#usr/share/kbd/unimaps/iso06.uni
+#usr/share/kbd/unimaps/iso07.uni
+#usr/share/kbd/unimaps/iso07u.uni
+#usr/share/kbd/unimaps/iso08.uni
+#usr/share/kbd/unimaps/iso09.uni
+#usr/share/kbd/unimaps/iso10.uni
+#usr/share/kbd/unimaps/iso15.uni
+#usr/share/kbd/unimaps/koi8r.uni
+#usr/share/kbd/unimaps/koi8u.uni
+#usr/share/kbd/unimaps/lat1.uni
+#usr/share/kbd/unimaps/lat1u.uni
+#usr/share/kbd/unimaps/lat2.uni
+#usr/share/kbd/unimaps/lat2u.uni
+#usr/share/kbd/unimaps/lat4.uni
+#usr/share/kbd/unimaps/lat4u.uni
+#usr/share/kbd/unimaps/lat7.uni
+#usr/share/kbd/unimaps/lat9u.uni
+#usr/share/kbd/unimaps/lat9v.uni
+#usr/share/kbd/unimaps/lat9w.uni
+#usr/share/kbd/unimaps/ruscii.uni
+#usr/share/kbd/unimaps/tcvn.uni
+#usr/share/kbd/unimaps/viscii.uni
+#usr/share/man/man1/chvt.1
+#usr/share/man/man1/deallocvt.1
+#usr/share/man/man1/dumpkeys.1
+#usr/share/man/man1/fgconsole.1
+#usr/share/man/man1/kbd_mode.1
+#usr/share/man/man1/loadkeys.1
+#usr/share/man/man1/openvt.1
+#usr/share/man/man1/psfaddtable.1
+#usr/share/man/man1/psfgettable.1
+#usr/share/man/man1/psfstriptable.1
+#usr/share/man/man1/psfxtable.1
+#usr/share/man/man1/setleds.1
+#usr/share/man/man1/setmetamode.1
+#usr/share/man/man1/showkey.1
+#usr/share/man/man1/unicode_start.1
+#usr/share/man/man1/unicode_stop.1
+#usr/share/man/man5/keymaps.5
+#usr/share/man/man8/getkeycodes.8
+#usr/share/man/man8/kbdrate.8
+#usr/share/man/man8/loadunimap.8
+#usr/share/man/man8/mapscrn.8
+#usr/share/man/man8/resizecons.8
+#usr/share/man/man8/setfont.8
+#usr/share/man/man8/setkeycodes.8
+#usr/share/man/man8/showconsolefont.8
+##
+## e2fsprogs-1.34
+##
+lib/libblkid.so.1
+lib/libblkid.so.1.0
+lib/libcom_err.so.2
+lib/libcom_err.so.2.1
+lib/libe2p.so.2
+lib/libe2p.so.2.3
+lib/libext2fs.so.2
+lib/libext2fs.so.2.4
+lib/libss.so.2
+lib/libss.so.2.0
+lib/libuuid.so.1
+lib/libuuid.so.1.2
+sbin/badblocks
+#sbin/blkid
+#sbin/debugfs
+#sbin/dumpe2fs
+sbin/e2fsck
+#sbin/e2image
+#sbin/e2label
+#sbin/findfs
+sbin/fsck
+sbin/fsck.ext2
+sbin/fsck.ext3
+#sbin/logsave
+sbin/mke2fs
+sbin/mkfs.ext2
+sbin/mkfs.ext3
+#sbin/resize2fs
+sbin/tune2fs
+usr/bin/chattr
+#usr/bin/compile_et
+usr/bin/lsattr
+#usr/bin/mk_cmds
+#usr/bin/uuidgen
+#usr/include/blkid
+#usr/include/blkid/blkid.h
+#usr/include/blkid/blkid_types.h
+#usr/include/e2p
+#usr/include/e2p/e2p.h
+#usr/include/et
+#usr/include/et/com_err.h
+#usr/include/ext2fs
+#usr/include/ext2fs/bitops.h
+#usr/include/ext2fs/ext2_err.h
+#usr/include/ext2fs/ext2_ext_attr.h
+#usr/include/ext2fs/ext2_fs.h
+#usr/include/ext2fs/ext2_io.h
+#usr/include/ext2fs/ext2_types.h
+#usr/include/ext2fs/ext2fs.h
+#usr/include/ss
+#usr/include/ss/ss.h
+#usr/include/ss/ss_err.h
+#usr/include/uuid
+#usr/include/uuid/uuid.h
+#usr/include/uuid/uuid_types.h
+#usr/lib/libblkid.a
+usr/lib/libblkid.so
+#usr/lib/libcom_err.a
+usr/lib/libcom_err.so
+#usr/lib/libe2p.a
+usr/lib/libe2p.so
+#usr/lib/libext2fs.a
+usr/lib/libext2fs.so
+#usr/lib/libss.a
+usr/lib/libss.so
+#usr/lib/libuuid.a
+usr/lib/libuuid.so
+usr/sbin/mklost+found
+#usr/share/et
+#usr/share/et/et_c.awk
+#usr/share/et/et_h.awk
+#usr/share/info/libext2fs.info.gz
+#usr/share/man/man1/chattr.1
+#usr/share/man/man1/compile_et.1
+#usr/share/man/man1/lsattr.1
+#usr/share/man/man1/mk_cmds.1
+#usr/share/man/man1/uuidgen.1
+#usr/share/man/man3/com_err.3
+#usr/share/man/man3/libblkid.3
+#usr/share/man/man3/libuuid.3
+#usr/share/man/man3/uuid_clear.3
+#usr/share/man/man3/uuid_compare.3
+#usr/share/man/man3/uuid_copy.3
+#usr/share/man/man3/uuid_generate.3
+#usr/share/man/man3/uuid_generate_random.3
+#usr/share/man/man3/uuid_generate_time.3
+#usr/share/man/man3/uuid_is_null.3
+#usr/share/man/man3/uuid_parse.3
+#usr/share/man/man3/uuid_time.3
+#usr/share/man/man3/uuid_unparse.3
+#usr/share/man/man8/badblocks.8
+#usr/share/man/man8/blkid.8
+#usr/share/man/man8/debugfs.8
+#usr/share/man/man8/dumpe2fs.8
+#usr/share/man/man8/e2fsck.8
+#usr/share/man/man8/e2image.8
+#usr/share/man/man8/e2label.8
+#usr/share/man/man8/findfs.8
+#usr/share/man/man8/fsck.8
+#usr/share/man/man8/fsck.ext2.8
+#usr/share/man/man8/fsck.ext3.8
+#usr/share/man/man8/logsave.8
+#usr/share/man/man8/mke2fs.8
+#usr/share/man/man8/mkfs.ext2.8
+#usr/share/man/man8/mkfs.ext3.8
+#usr/share/man/man8/mklost+found.8
+#usr/share/man/man8/resize2fs.8
+#usr/share/man/man8/tune2fs.8
+#usr/share/ss
+#usr/share/ss/ct_c.awk
+#usr/share/ss/ct_c.sed
+##
+## grep-2.5.1
+##
+bin/egrep
+#bin/fgrep
+bin/grep
+#usr/share/info/grep.info
+#usr/share/man/man1/egrep.1
+#usr/share/man/man1/fgrep.1
+#usr/share/man/man1/grep.1
+##
+## gzip-1.3.5
+##
+bin/gunzip
+bin/gzip
+bin/uncompress
+bin/zcat
+#usr/bin/gzexe
+#usr/bin/zcmp
+#usr/bin/zdiff
+#usr/bin/zegrep
+#usr/bin/zfgrep
+#usr/bin/zforce
+#usr/bin/zgrep
+#usr/bin/zless
+#usr/bin/zmore
+#usr/bin/znew
+#usr/share/info/gzip.info
+#usr/share/man/man1/gunzip.1
+#usr/share/man/man1/gzexe.1
+#usr/share/man/man1/gzip.1
+#usr/share/man/man1/zcat.1
+#usr/share/man/man1/zcmp.1
+#usr/share/man/man1/zdiff.1
+#usr/share/man/man1/zforce.1
+#usr/share/man/man1/zgrep.1
+#usr/share/man/man1/zless.1
+#usr/share/man/man1/zmore.1
+#usr/share/man/man1/znew.1
+##
+## man-1.5m2
+##
+#etc/man.conf
+#usr/bin/apropos
+#usr/bin/man
+#usr/bin/man2dvi
+#usr/bin/man2html
+#usr/bin/whatis
+#usr/sbin/makewhatis
+#usr/share/man/man1/apropos.1
+#usr/share/man/man1/man.1
+#usr/share/man/man1/man2html.1
+#usr/share/man/man1/whatis.1
+#usr/share/man/man5/man.conf.5
+#usr/share/man/man8/makewhatis.8
+##
+## make-3.80
+##
+#usr/bin/make
+#usr/share/info/make.info
+#usr/share/info/make.info-1
+#usr/share/info/make.info-10
+#usr/share/info/make.info-11
+#usr/share/info/make.info-2
+#usr/share/info/make.info-3
+#usr/share/info/make.info-4
+#usr/share/info/make.info-5
+#usr/share/info/make.info-6
+#usr/share/info/make.info-7
+#usr/share/info/make.info-8
+#usr/share/info/make.info-9
+#usr/share/man/man1/make.1
+##
+## modutils-2.4.27
+##
+sbin/depmod
+#sbin/genksyms
+sbin/insmod
+sbin/insmod.static
+#sbin/insmod_ksymoops_clean
+#sbin/kallsyms
+#sbin/kernelversion
+#sbin/ksyms
+sbin/lsmod
+sbin/modinfo
+sbin/modprobe
+sbin/rmmod
+#usr/share/man/man1/kernelversion.1
+#usr/share/man/man2/create_module.2
+#usr/share/man/man2/delete_module.2
+#usr/share/man/man2/get_kernel_syms.2
+#usr/share/man/man2/init_module.2
+#usr/share/man/man2/query_module.2
+#usr/share/man/man5/modules.conf.5
+#usr/share/man/man8/depmod.8
+#usr/share/man/man8/genksyms.8
+#usr/share/man/man8/insmod.8
+#usr/share/man/man8/kallsyms.8
+#usr/share/man/man8/ksyms.8
+#usr/share/man/man8/lsmod.8
+#usr/share/man/man8/modinfo.8
+#usr/share/man/man8/modprobe.8
+#usr/share/man/man8/rmmod.8
+##
+## patch-2.5.4
+##
+usr/bin/patch
+#usr/share/man/man1/patch.1
+##
+## procinfo-18
+##
+#usr/bin/lsdev
+#usr/bin/procinfo
+#usr/bin/socklist
+#usr/share/man/man8/lsdev.8
+#usr/share/man/man8/procinfo.8
+#usr/share/man/man8/socklist.8
+##
+## procps-3.2.5
+##
+bin/kill
+bin/ps
+lib/libproc-3.2.5.so
+sbin/sysctl
+usr/bin/free
+#usr/bin/pgrep
+#usr/bin/pkill
+#usr/bin/pmap
+#usr/bin/skill
+#usr/bin/snice
+#usr/bin/tload
+usr/bin/top
+usr/bin/vmstat
+usr/bin/w
+#usr/bin/watch
+#usr/share/man/man1/free.1
+#usr/share/man/man1/kill.1
+#usr/share/man/man1/pgrep.1
+#usr/share/man/man1/pkill.1
+#usr/share/man/man1/pmap.1
+#usr/share/man/man1/ps.1
+#usr/share/man/man1/skill.1
+#usr/share/man/man1/snice.1
+#usr/share/man/man1/tload.1
+#usr/share/man/man1/top.1
+#usr/share/man/man1/w.1
+#usr/share/man/man1/watch.1
+#usr/share/man/man5/sysctl.conf.5
+#usr/share/man/man8/sysctl.8
+#usr/share/man/man8/vmstat.8
+##
+## psmisc-21.3
+##
+bin/fuser
+bin/killall
+bin/pidof
+bin/pstree
+#usr/share/man/man1/fuser.1
+#usr/share/man/man1/killall.1
+#usr/share/man/man1/pstree.1
+##
+## shadow-4.0.4.1
+##
+bin/login
+#etc/.pwd.lock
+#etc/group-
+etc/gshadow
+etc/limits
+etc/login.access
+etc/login.defs
+#etc/passwd-
+etc/shadow
+lib/libmisc.so.0
+lib/libmisc.so.0.0.0
+lib/libshadow.so.0
+lib/libshadow.so.0.0.0
+#usr/bin/chage
+#usr/bin/chfn
+#usr/bin/chsh
+#usr/bin/expiry
+#usr/bin/faillog
+#usr/bin/gpasswd
+#usr/bin/lastlog
+#usr/bin/newgrp
+usr/bin/passwd
+#usr/bin/sg
+#usr/lib/libmisc.a
+#usr/lib/libmisc.la
+usr/lib/libmisc.so
+#usr/lib/libshadow.a
+#usr/lib/libshadow.la
+usr/lib/libshadow.so
+usr/sbin/chpasswd
+#usr/sbin/dpasswd
+usr/sbin/groupadd
+usr/sbin/groupdel
+usr/sbin/groupmod
+#usr/sbin/grpck
+usr/sbin/grpconv
+#usr/sbin/grpunconv
+#usr/sbin/logoutd
+#usr/sbin/mkpasswd
+#usr/sbin/newusers
+#usr/sbin/pwck
+usr/sbin/pwconv
+#usr/sbin/pwunconv
+usr/sbin/useradd
+usr/sbin/userdel
+usr/sbin/usermod
+#usr/sbin/vigr
+#usr/sbin/vipw
+#usr/share/man/cs
+#usr/share/man/cs/man5
+#usr/share/man/cs/man5/passwd.5
+#usr/share/man/cs/man5/shadow.5
+#usr/share/man/de
+#usr/share/man/de/man1
+#usr/share/man/de/man1/chsh.1
+#usr/share/man/de/man1/passwd.1
+#usr/share/man/fr
+#usr/share/man/fr/man1
+#usr/share/man/fr/man1/chage.1
+#usr/share/man/fr/man1/chsh.1
+#usr/share/man/fr/man1/gpasswd.1
+#usr/share/man/fr/man1/newgrp.1
+#usr/share/man/fr/man1/passwd.1
+#usr/share/man/fr/man5
+#usr/share/man/fr/man5/faillog.5
+#usr/share/man/fr/man5/passwd.5
+#usr/share/man/fr/man5/shadow.5
+#usr/share/man/fr/man8
+#usr/share/man/fr/man8/adduser.8
+#usr/share/man/fr/man8/chpasswd.8
+#usr/share/man/fr/man8/useradd.8
+#usr/share/man/fr/man8/userdel.8
+#usr/share/man/fr/man8/usermod.8
+#usr/share/man/hu
+#usr/share/man/hu/man1
+#usr/share/man/hu/man1/chsh.1
+#usr/share/man/hu/man1/gpasswd.1
+#usr/share/man/hu/man1/login.1
+#usr/share/man/hu/man1/newgrp.1
+#usr/share/man/hu/man1/passwd.1
+#usr/share/man/hu/man1/sg.1
+#usr/share/man/id
+#usr/share/man/id/man1
+#usr/share/man/id/man1/chsh.1
+#usr/share/man/id/man1/login.1
+#usr/share/man/id/man8
+#usr/share/man/id/man8/adduser.8
+#usr/share/man/id/man8/useradd.8
+#usr/share/man/it
+#usr/share/man/it/man1
+#usr/share/man/it/man1/chfn.1
+#usr/share/man/it/man1/chsh.1
+#usr/share/man/it/man1/gpasswd.1
+#usr/share/man/it/man1/groups.1
+#usr/share/man/it/man1/login.1
+#usr/share/man/it/man1/newgrp.1
+#usr/share/man/it/man1/passwd.1
+#usr/share/man/it/man5
+#usr/share/man/it/man5/passwd.5
+#usr/share/man/it/man5/shadow.5
+#usr/share/man/it/man8
+#usr/share/man/it/man8/adduser.8
+#usr/share/man/it/man8/groupadd.8
+#usr/share/man/it/man8/groupdel.8
+#usr/share/man/it/man8/groupmod.8
+#usr/share/man/it/man8/grpck.8
+#usr/share/man/it/man8/grpconv.8
+#usr/share/man/it/man8/grpunconv.8
+#usr/share/man/it/man8/lastlog.8
+#usr/share/man/it/man8/pwconv.8
+#usr/share/man/it/man8/pwunconv.8
+#usr/share/man/it/man8/useradd.8
+#usr/share/man/it/man8/userdel.8
+#usr/share/man/it/man8/usermod.8
+#usr/share/man/it/man8/vigr.8
+#usr/share/man/it/man8/vipw.8
+#usr/share/man/ja
+#usr/share/man/ja/man1
+#usr/share/man/ja/man1/chage.1
+#usr/share/man/ja/man1/chfn.1
+#usr/share/man/ja/man1/chsh.1
+#usr/share/man/ja/man1/gpasswd.1
+#usr/share/man/ja/man1/login.1
+#usr/share/man/ja/man1/newgrp.1
+#usr/share/man/ja/man1/passwd.1
+#usr/share/man/ja/man1/sg.1
+#usr/share/man/ja/man1/su.1
+#usr/share/man/ja/man5
+#usr/share/man/ja/man5/faillog.5
+#usr/share/man/ja/man5/limits.5
+#usr/share/man/ja/man5/login.access.5
+#usr/share/man/ja/man5/login.defs.5
+#usr/share/man/ja/man5/passwd.5
+#usr/share/man/ja/man5/porttime.5
+#usr/share/man/ja/man5/shadow.5
+#usr/share/man/ja/man5/suauth.5
+#usr/share/man/ja/man8
+#usr/share/man/ja/man8/adduser.8
+#usr/share/man/ja/man8/chpasswd.8
+#usr/share/man/ja/man8/faillog.8
+#usr/share/man/ja/man8/groupadd.8
+#usr/share/man/ja/man8/groupdel.8
+#usr/share/man/ja/man8/groupmod.8
+#usr/share/man/ja/man8/grpck.8
+#usr/share/man/ja/man8/grpconv.8
+#usr/share/man/ja/man8/grpunconv.8
+#usr/share/man/ja/man8/lastlog.8
+#usr/share/man/ja/man8/logoutd.8
+#usr/share/man/ja/man8/mkpasswd.8
+#usr/share/man/ja/man8/newusers.8
+#usr/share/man/ja/man8/pwck.8
+#usr/share/man/ja/man8/pwconv.8
+#usr/share/man/ja/man8/pwunconv.8
+#usr/share/man/ja/man8/useradd.8
+#usr/share/man/ja/man8/userdel.8
+#usr/share/man/ja/man8/usermod.8
+#usr/share/man/ja/man8/vigr.8
+#usr/share/man/ja/man8/vipw.8
+#usr/share/man/ko
+#usr/share/man/ko/man1
+#usr/share/man/ko/man1/chfn.1
+#usr/share/man/ko/man1/chsh.1
+#usr/share/man/ko/man1/login.1
+#usr/share/man/ko/man1/newgrp.1
+#usr/share/man/ko/man5
+#usr/share/man/ko/man5/passwd.5
+#usr/share/man/man1/chage.1
+#usr/share/man/man1/chfn.1
+#usr/share/man/man1/chsh.1
+#usr/share/man/man1/expiry.1
+#usr/share/man/man1/gpasswd.1
+#usr/share/man/man1/login.1
+#usr/share/man/man1/newgrp.1
+#usr/share/man/man1/passwd.1
+#usr/share/man/man1/sg.1
+#usr/share/man/man3/getspnam.3
+#usr/share/man/man5/faillog.5
+#usr/share/man/man5/limits.5
+#usr/share/man/man5/login.access.5
+#usr/share/man/man5/login.defs.5
+#usr/share/man/man5/porttime.5
+#usr/share/man/man5/shadow.5
+#usr/share/man/man5/suauth.5
+#usr/share/man/man8/adduser.8
+#usr/share/man/man8/chpasswd.8
+#usr/share/man/man8/faillog.8
+#usr/share/man/man8/groupadd.8
+#usr/share/man/man8/groupdel.8
+#usr/share/man/man8/groupmod.8
+#usr/share/man/man8/grpck.8
+#usr/share/man/man8/grpconv.8
+#usr/share/man/man8/grpunconv.8
+#usr/share/man/man8/lastlog.8
+#usr/share/man/man8/logoutd.8
+#usr/share/man/man8/mkpasswd.8
+#usr/share/man/man8/newusers.8
+#usr/share/man/man8/pwck.8
+#usr/share/man/man8/pwconv.8
+#usr/share/man/man8/pwunconv.8
+#usr/share/man/man8/useradd.8
+#usr/share/man/man8/userdel.8
+#usr/share/man/man8/usermod.8
+#usr/share/man/man8/vigr.8
+#usr/share/man/man8/vipw.8
+#usr/share/man/pl
+#usr/share/man/pl/man1
+#usr/share/man/pl/man1/chage.1
+#usr/share/man/pl/man1/chfn.1
+#usr/share/man/pl/man1/chsh.1
+#usr/share/man/pl/man1/expiry.1
+#usr/share/man/pl/man1/gpasswd.1
+#usr/share/man/pl/man1/login.1
+#usr/share/man/pl/man1/newgrp.1
+#usr/share/man/pl/man1/passwd.1
+#usr/share/man/pl/man1/sg.1
+#usr/share/man/pl/man1/su.1
+#usr/share/man/pl/man5
+#usr/share/man/pl/man5/d_passwd.5
+#usr/share/man/pl/man5/faillog.5
+#usr/share/man/pl/man5/limits.5
+#usr/share/man/pl/man5/login.access.5
+#usr/share/man/pl/man5/login.defs.5
+#usr/share/man/pl/man5/passwd.5
+#usr/share/man/pl/man5/porttime.5
+#usr/share/man/pl/man5/shadow.5
+#usr/share/man/pl/man5/suauth.5
+#usr/share/man/pl/man8
+#usr/share/man/pl/man8/adduser.8
+#usr/share/man/pl/man8/chpasswd.8
+#usr/share/man/pl/man8/faillog.8
+#usr/share/man/pl/man8/groupadd.8
+#usr/share/man/pl/man8/groupdel.8
+#usr/share/man/pl/man8/groupmod.8
+#usr/share/man/pl/man8/grpck.8
+#usr/share/man/pl/man8/grpconv.8
+#usr/share/man/pl/man8/grpunconv.8
+#usr/share/man/pl/man8/lastlog.8
+#usr/share/man/pl/man8/logoutd.8
+#usr/share/man/pl/man8/mkpasswd.8
+#usr/share/man/pl/man8/newusers.8
+#usr/share/man/pl/man8/pwck.8
+#usr/share/man/pl/man8/pwconv.8
+#usr/share/man/pl/man8/pwunconv.8
+#usr/share/man/pl/man8/useradd.8
+#usr/share/man/pl/man8/userdel.8
+#usr/share/man/pl/man8/usermod.8
+#usr/share/man/pl/man8/vigr.8
+#usr/share/man/pl/man8/vipw.8
+#usr/share/man/pt_BR
+#usr/share/man/pt_BR/man1
+#usr/share/man/pt_BR/man1/gpasswd.1
+#usr/share/man/pt_BR/man5
+#usr/share/man/pt_BR/man5/shadow.5
+#usr/share/man/pt_BR/man8
+#usr/share/man/pt_BR/man8/groupadd.8
+#usr/share/man/pt_BR/man8/groupdel.8
+#usr/share/man/pt_BR/man8/groupmod.8
+var/log/btmp
+var/log/lastlog
+var/log/wtmp
+var/run/utmp
+##
+## sysklogd-1.4.1
+##
+usr/sbin/klogd
+usr/sbin/syslogd
+#usr/share/man/man8/klogd.8
+#usr/share/man/man8/sysklogd.8
+#var/log
+var/log/boot.log
+var/log/dhcpcd.log
+var/log/messages
+var/empty
+##
+## sysvinit-2.86
+##
+sbin/halt
+sbin/init
+sbin/killall5
+sbin/poweroff
+sbin/reboot
+sbin/runlevel
+sbin/shutdown
+sbin/sulogin
+sbin/telinit
+#sbin/bootlogd
+usr/bin/last
+usr/bin/lastb
+usr/bin/mesg
+usr/bin/utmpdump
+usr/bin/wall
+#usr/include/initreq.h
+#usr/share/man/man1/last.1
+#usr/share/man/man1/lastb.1
+#usr/share/man/man1/mesg.1
+#usr/share/man/man1/wall.1
+#usr/share/man/man5/initscript.5
+#usr/share/man/man5/inittab.5
+#usr/share/man/man8/halt.8
+#usr/share/man/man8/init.8
+#usr/share/man/man8/killall5.8
+#usr/share/man/man8/pidof.8
+#usr/share/man/man8/poweroff.8
+#usr/share/man/man8/reboot.8
+#usr/share/man/man8/runlevel.8
+#usr/share/man/man8/shutdown.8
+#usr/share/man/man8/sulogin.8
+#usr/share/man/man8/telinit.8
+##
+## tar-1.13.25
+##
+bin/tar
+#usr/bin/rmt
+#usr/share/info/tar.info
+##
+## util-linux-2.12
+##
+#bin/arch
+bin/dmesg
+bin/more
+bin/mount
+bin/umount
+etc/fdprm
+#sbin/agetty
+sbin/blockdev
+sbin/cfdisk
+sbin/ctrlaltdel
+#sbin/elvtune
+sbin/fdisk
+#sbin/fsck.cramfs
+#sbin/fsck.minix
+sbin/hwclock
+sbin/losetup
+#sbin/mkfs
+#sbin/mkfs.bfs
+#sbin/mkfs.cramfs
+#sbin/mkfs.minix
+sbin/mkswap
+#sbin/pivot_root
+sbin/sfdisk
+sbin/swapoff
+sbin/swapon
+#usr/bin/cal
+#usr/bin/chkdupexe
+#usr/bin/col
+#usr/bin/colcrt
+#usr/bin/colrm
+#usr/bin/column
+#usr/bin/cytune
+#usr/bin/ddate
+usr/bin/fdformat
+usr/bin/getopt
+#usr/bin/hexdump
+#usr/bin/ipcrm
+#usr/bin/ipcs
+#usr/bin/isosize
+#usr/bin/line
+usr/bin/logger
+#usr/bin/look
+#usr/bin/mcookie
+#usr/bin/namei
+usr/bin/pg
+#usr/bin/raw
+usr/bin/rename
+usr/bin/renice
+#usr/bin/rev
+#usr/bin/script
+#usr/bin/setfdprm
+#usr/bin/setsid
+#usr/bin/setterm
+#usr/bin/tailf
+#usr/bin/ul
+#usr/bin/whereis
+#usr/bin/write
+#usr/sbin/ramsize
+#usr/sbin/readprofile
+#usr/sbin/rootflags
+#usr/sbin/tunelp
+#usr/sbin/vidmode
+#usr/share/info/ipc.info
+#usr/share/locale/ca/LC_MESSAGES/util-linux.mo
+#usr/share/locale/cs/LC_MESSAGES/util-linux.mo
+#usr/share/locale/da/LC_MESSAGES/util-linux.mo
+#usr/share/locale/de/LC_MESSAGES/util-linux.mo
+#usr/share/locale/es/LC_MESSAGES/util-linux.mo
+#usr/share/locale/et
+#usr/share/locale/et/LC_MESSAGES
+#usr/share/locale/et/LC_MESSAGES/util-linux.mo
+#usr/share/locale/fi/LC_MESSAGES/util-linux.mo
+#usr/share/locale/fr/LC_MESSAGES/util-linux.mo
+#usr/share/locale/it/LC_MESSAGES/util-linux.mo
+#usr/share/locale/ja/LC_MESSAGES/util-linux.mo
+#usr/share/locale/nl/LC_MESSAGES/util-linux.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/util-linux.mo
+#usr/share/locale/sl
+#usr/share/locale/sl/LC_MESSAGES
+#usr/share/locale/sl/LC_MESSAGES/util-linux.mo
+#usr/share/locale/sv/LC_MESSAGES/util-linux.mo
+#usr/share/locale/tr/LC_MESSAGES/util-linux.mo
+#usr/share/man/man1/arch.1
+#usr/share/man/man1/cal.1
+#usr/share/man/man1/chkdupexe.1
+#usr/share/man/man1/col.1
+#usr/share/man/man1/colcrt.1
+#usr/share/man/man1/colrm.1
+#usr/share/man/man1/column.1
+#usr/share/man/man1/ddate.1
+#usr/share/man/man1/getopt.1
+#usr/share/man/man1/hexdump.1
+#usr/share/man/man1/line.1
+#usr/share/man/man1/look.1
+#usr/share/man/man1/mcookie.1
+#usr/share/man/man1/more.1
+#usr/share/man/man1/namei.1
+#usr/share/man/man1/pg.1
+#usr/share/man/man1/readprofile.1
+#usr/share/man/man1/rename.1
+#usr/share/man/man1/rev.1
+#usr/share/man/man1/script.1
+#usr/share/man/man1/setterm.1
+#usr/share/man/man1/tailf.1
+#usr/share/man/man1/ul.1
+#usr/share/man/man1/whereis.1
+#usr/share/man/man1/write.1
+#usr/share/man/man5/fstab.5
+#usr/share/man/man5/nfs.5
+#usr/share/man/man8/agetty.8
+#usr/share/man/man8/blockdev.8
+#usr/share/man/man8/cfdisk.8
+#usr/share/man/man8/ctrlaltdel.8
+#usr/share/man/man8/cytune.8
+#usr/share/man/man8/dmesg.8
+#usr/share/man/man8/elvtune.8
+#usr/share/man/man8/fdformat.8
+#usr/share/man/man8/fdisk.8
+#usr/share/man/man8/fsck.minix.8
+#usr/share/man/man8/hwclock.8
+#usr/share/man/man8/ipcrm.8
+#usr/share/man/man8/ipcs.8
+#usr/share/man/man8/isosize.8
+#usr/share/man/man8/losetup.8
+#usr/share/man/man8/mkfs.8
+#usr/share/man/man8/mkfs.bfs.8
+#usr/share/man/man8/mkfs.minix.8
+#usr/share/man/man8/mkswap.8
+#usr/share/man/man8/mount.8
+#usr/share/man/man8/pivot_root.8
+#usr/share/man/man8/ramsize.8
+#usr/share/man/man8/raw.8
+#usr/share/man/man8/rdev.8
+#usr/share/man/man8/renice.8
+#usr/share/man/man8/rootflags.8
+#usr/share/man/man8/setfdprm.8
+#usr/share/man/man8/setsid.8
+#usr/share/man/man8/sfdisk.8
+#usr/share/man/man8/sln.8
+#usr/share/man/man8/swapoff.8
+#usr/share/man/man8/swapon.8
+#usr/share/man/man8/tunelp.8
+#usr/share/man/man8/umount.8
+#usr/share/man/man8/vidmode.8
+#usr/share/misc/getopt
+#usr/share/misc/getopt/getopt-parse.bash
+#usr/share/misc/getopt/getopt-parse.tcsh
+#usr/share/misc/getopt/getopt-test.bash
+#usr/share/misc/getopt/getopt-test.tcsh
+#var/lib/hwclock
+var/lib/hwclock/adjtime
+##
+## gcc-2.95.3
+##
+#opt/gcc-2.95.3
+#opt/gcc-2.95.3/bin
+#opt/gcc-2.95.3/bin/c++
+#opt/gcc-2.95.3/bin/c++filt
+#opt/gcc-2.95.3/bin/cpp
+#opt/gcc-2.95.3/bin/g++
+#opt/gcc-2.95.3/bin/gcc
+#opt/gcc-2.95.3/bin/gcov
+#opt/gcc-2.95.3/bin/i386-pc-linux-gnu-gcc
+#opt/gcc-2.95.3/bin/protoize
+#opt/gcc-2.95.3/bin/unprotoize
+#opt/gcc-2.95.3/i386-pc-linux-gnu
+#opt/gcc-2.95.3/i386-pc-linux-gnu/include
+#opt/gcc-2.95.3/include
+#opt/gcc-2.95.3/include/g++-3
+#opt/gcc-2.95.3/include/g++-3/std
+#opt/gcc-2.95.3/include/g++-3/std/bastring.h
+#opt/gcc-2.95.3/include/g++-3/std/complext.h
+#opt/gcc-2.95.3/include/g++-3/std/dcomplex.h
+#opt/gcc-2.95.3/include/g++-3/std/fcomplex.h
+#opt/gcc-2.95.3/include/g++-3/std/gslice.h
+#opt/gcc-2.95.3/include/g++-3/std/gslice_array.h
+#opt/gcc-2.95.3/include/g++-3/std/indirect_array.h
+#opt/gcc-2.95.3/include/g++-3/std/ldcomplex.h
+#opt/gcc-2.95.3/include/g++-3/std/mask_array.h
+#opt/gcc-2.95.3/include/g++-3/std/slice.h
+#opt/gcc-2.95.3/include/g++-3/std/slice_array.h
+#opt/gcc-2.95.3/include/g++-3/std/std_valarray.h
+#opt/gcc-2.95.3/include/g++-3/std/straits.h
+#opt/gcc-2.95.3/include/g++-3/std/valarray_array.h
+#opt/gcc-2.95.3/include/g++-3/std/valarray_meta.h
+#opt/gcc-2.95.3/include/g++-3/std/bastring.cc
+#opt/gcc-2.95.3/include/g++-3/std/complext.cc
+#opt/gcc-2.95.3/include/g++-3/std/valarray_array.tcc
+#opt/gcc-2.95.3/include/g++-3/PlotFile.h
+#opt/gcc-2.95.3/include/g++-3/SFile.h
+#opt/gcc-2.95.3/include/g++-3/builtinbuf.h
+#opt/gcc-2.95.3/include/g++-3/editbuf.h
+#opt/gcc-2.95.3/include/g++-3/fstream.h
+#opt/gcc-2.95.3/include/g++-3/indstream.h
+#opt/gcc-2.95.3/include/g++-3/iomanip.h
+#opt/gcc-2.95.3/include/g++-3/iostream.h
+#opt/gcc-2.95.3/include/g++-3/istream.h
+#opt/gcc-2.95.3/include/g++-3/ostream.h
+#opt/gcc-2.95.3/include/g++-3/parsestream.h
+#opt/gcc-2.95.3/include/g++-3/pfstream.h
+#opt/gcc-2.95.3/include/g++-3/procbuf.h
+#opt/gcc-2.95.3/include/g++-3/stdiostream.h
+#opt/gcc-2.95.3/include/g++-3/stream.h
+#opt/gcc-2.95.3/include/g++-3/streambuf.h
+#opt/gcc-2.95.3/include/g++-3/strfile.h
+#opt/gcc-2.95.3/include/g++-3/strstream.h
+#opt/gcc-2.95.3/include/g++-3/cassert
+#opt/gcc-2.95.3/include/g++-3/cctype
+#opt/gcc-2.95.3/include/g++-3/cerrno
+#opt/gcc-2.95.3/include/g++-3/cfloat
+#opt/gcc-2.95.3/include/g++-3/ciso646
+#opt/gcc-2.95.3/include/g++-3/climits
+#opt/gcc-2.95.3/include/g++-3/clocale
+#opt/gcc-2.95.3/include/g++-3/cmath
+#opt/gcc-2.95.3/include/g++-3/complex
+#opt/gcc-2.95.3/include/g++-3/csetjmp
+#opt/gcc-2.95.3/include/g++-3/csignal
+#opt/gcc-2.95.3/include/g++-3/cstdarg
+#opt/gcc-2.95.3/include/g++-3/cstddef
+#opt/gcc-2.95.3/include/g++-3/cstdio
+#opt/gcc-2.95.3/include/g++-3/cstdlib
+#opt/gcc-2.95.3/include/g++-3/cstring
+#opt/gcc-2.95.3/include/g++-3/ctime
+#opt/gcc-2.95.3/include/g++-3/cwchar
+#opt/gcc-2.95.3/include/g++-3/cwctype
+#opt/gcc-2.95.3/include/g++-3/string
+#opt/gcc-2.95.3/include/g++-3/stdexcept
+#opt/gcc-2.95.3/include/g++-3/algorithm
+#opt/gcc-2.95.3/include/g++-3/deque
+#opt/gcc-2.95.3/include/g++-3/functional
+#opt/gcc-2.95.3/include/g++-3/hash_map
+#opt/gcc-2.95.3/include/g++-3/hash_set
+#opt/gcc-2.95.3/include/g++-3/iterator
+#opt/gcc-2.95.3/include/g++-3/list
+#opt/gcc-2.95.3/include/g++-3/map
+#opt/gcc-2.95.3/include/g++-3/memory
+#opt/gcc-2.95.3/include/g++-3/numeric
+#opt/gcc-2.95.3/include/g++-3/pthread_alloc
+#opt/gcc-2.95.3/include/g++-3/queue
+#opt/gcc-2.95.3/include/g++-3/rope
+#opt/gcc-2.95.3/include/g++-3/set
+#opt/gcc-2.95.3/include/g++-3/slist
+#opt/gcc-2.95.3/include/g++-3/stack
+#opt/gcc-2.95.3/include/g++-3/utility
+#opt/gcc-2.95.3/include/g++-3/vector
+#opt/gcc-2.95.3/include/g++-3/fstream
+#opt/gcc-2.95.3/include/g++-3/iomanip
+#opt/gcc-2.95.3/include/g++-3/iostream
+#opt/gcc-2.95.3/include/g++-3/strstream
+#opt/gcc-2.95.3/include/g++-3/iosfwd
+#opt/gcc-2.95.3/include/g++-3/bitset
+#opt/gcc-2.95.3/include/g++-3/valarray
+#opt/gcc-2.95.3/include/g++-3/sstream
+#opt/gcc-2.95.3/include/g++-3/complex.h
+#opt/gcc-2.95.3/include/g++-3/stl.h
+#opt/gcc-2.95.3/include/g++-3/algo.h
+#opt/gcc-2.95.3/include/g++-3/algobase.h
+#opt/gcc-2.95.3/include/g++-3/alloc.h
+#opt/gcc-2.95.3/include/g++-3/bvector.h
+#opt/gcc-2.95.3/include/g++-3/defalloc.h
+#opt/gcc-2.95.3/include/g++-3/deque.h
+#opt/gcc-2.95.3/include/g++-3/function.h
+#opt/gcc-2.95.3/include/g++-3/hash_map.h
+#opt/gcc-2.95.3/include/g++-3/hash_set.h
+#opt/gcc-2.95.3/include/g++-3/hashtable.h
+#opt/gcc-2.95.3/include/g++-3/heap.h
+#opt/gcc-2.95.3/include/g++-3/iterator.h
+#opt/gcc-2.95.3/include/g++-3/list.h
+#opt/gcc-2.95.3/include/g++-3/map.h
+#opt/gcc-2.95.3/include/g++-3/multimap.h
+#opt/gcc-2.95.3/include/g++-3/multiset.h
+#opt/gcc-2.95.3/include/g++-3/pair.h
+#opt/gcc-2.95.3/include/g++-3/pthread_alloc.h
+#opt/gcc-2.95.3/include/g++-3/rope.h
+#opt/gcc-2.95.3/include/g++-3/ropeimpl.h
+#opt/gcc-2.95.3/include/g++-3/set.h
+#opt/gcc-2.95.3/include/g++-3/slist.h
+#opt/gcc-2.95.3/include/g++-3/stack.h
+#opt/gcc-2.95.3/include/g++-3/stl_algo.h
+#opt/gcc-2.95.3/include/g++-3/stl_algobase.h
+#opt/gcc-2.95.3/include/g++-3/stl_alloc.h
+#opt/gcc-2.95.3/include/g++-3/stl_bvector.h
+#opt/gcc-2.95.3/include/g++-3/stl_config.h
+#opt/gcc-2.95.3/include/g++-3/stl_construct.h
+#opt/gcc-2.95.3/include/g++-3/stl_deque.h
+#opt/gcc-2.95.3/include/g++-3/stl_function.h
+#opt/gcc-2.95.3/include/g++-3/stl_hash_fun.h
+#opt/gcc-2.95.3/include/g++-3/stl_hash_map.h
+#opt/gcc-2.95.3/include/g++-3/stl_hash_set.h
+#opt/gcc-2.95.3/include/g++-3/stl_hashtable.h
+#opt/gcc-2.95.3/include/g++-3/stl_heap.h
+#opt/gcc-2.95.3/include/g++-3/stl_iterator.h
+#opt/gcc-2.95.3/include/g++-3/stl_list.h
+#opt/gcc-2.95.3/include/g++-3/stl_map.h
+#opt/gcc-2.95.3/include/g++-3/stl_multimap.h
+#opt/gcc-2.95.3/include/g++-3/stl_multiset.h
+#opt/gcc-2.95.3/include/g++-3/stl_numeric.h
+#opt/gcc-2.95.3/include/g++-3/stl_pair.h
+#opt/gcc-2.95.3/include/g++-3/stl_queue.h
+#opt/gcc-2.95.3/include/g++-3/stl_raw_storage_iter.h
+#opt/gcc-2.95.3/include/g++-3/stl_relops.h
+#opt/gcc-2.95.3/include/g++-3/stl_rope.h
+#opt/gcc-2.95.3/include/g++-3/stl_set.h
+#opt/gcc-2.95.3/include/g++-3/stl_slist.h
+#opt/gcc-2.95.3/include/g++-3/stl_stack.h
+#opt/gcc-2.95.3/include/g++-3/stl_tempbuf.h
+#opt/gcc-2.95.3/include/g++-3/stl_tree.h
+#opt/gcc-2.95.3/include/g++-3/stl_uninitialized.h
+#opt/gcc-2.95.3/include/g++-3/stl_vector.h
+#opt/gcc-2.95.3/include/g++-3/tempbuf.h
+#opt/gcc-2.95.3/include/g++-3/tree.h
+#opt/gcc-2.95.3/include/g++-3/type_traits.h
+#opt/gcc-2.95.3/include/g++-3/vector.h
+#opt/gcc-2.95.3/info
+#opt/gcc-2.95.3/info/cpp.info
+#opt/gcc-2.95.3/info/cpp.info-1
+#opt/gcc-2.95.3/info/cpp.info-2
+#opt/gcc-2.95.3/info/cpp.info-3
+#opt/gcc-2.95.3/info/gcc.info
+#opt/gcc-2.95.3/info/gcc.info-1
+#opt/gcc-2.95.3/info/gcc.info-10
+#opt/gcc-2.95.3/info/gcc.info-11
+#opt/gcc-2.95.3/info/gcc.info-12
+#opt/gcc-2.95.3/info/gcc.info-13
+#opt/gcc-2.95.3/info/gcc.info-14
+#opt/gcc-2.95.3/info/gcc.info-15
+#opt/gcc-2.95.3/info/gcc.info-16
+#opt/gcc-2.95.3/info/gcc.info-17
+#opt/gcc-2.95.3/info/gcc.info-18
+#opt/gcc-2.95.3/info/gcc.info-19
+#opt/gcc-2.95.3/info/gcc.info-2
+#opt/gcc-2.95.3/info/gcc.info-20
+#opt/gcc-2.95.3/info/gcc.info-21
+#opt/gcc-2.95.3/info/gcc.info-22
+#opt/gcc-2.95.3/info/gcc.info-23
+#opt/gcc-2.95.3/info/gcc.info-24
+#opt/gcc-2.95.3/info/gcc.info-25
+#opt/gcc-2.95.3/info/gcc.info-26
+#opt/gcc-2.95.3/info/gcc.info-27
+#opt/gcc-2.95.3/info/gcc.info-28
+#opt/gcc-2.95.3/info/gcc.info-29
+#opt/gcc-2.95.3/info/gcc.info-3
+#opt/gcc-2.95.3/info/gcc.info-30
+#opt/gcc-2.95.3/info/gcc.info-4
+#opt/gcc-2.95.3/info/gcc.info-5
+#opt/gcc-2.95.3/info/gcc.info-6
+#opt/gcc-2.95.3/info/gcc.info-7
+#opt/gcc-2.95.3/info/gcc.info-8
+#opt/gcc-2.95.3/info/gcc.info-9
+#opt/gcc-2.95.3/lib
+#opt/gcc-2.95.3/lib/gcc-lib
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/SYSCALLS.c.X
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/cc1
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/cc1plus
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/collect2
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/cpp0
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/crtbegin.o
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/crtbeginS.o
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/crtend.o
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/crtendS.o
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/exception
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/float.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/iso646.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/limits.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/new
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/new.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/proto.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/stdarg.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/stdbool.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/stddef.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/syslimits.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/typeinfo
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-alpha.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-arc.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-c4x.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-clipper.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-h8300.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-i860.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-i960.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-m32r.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-m88k.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-mips.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-mn10200.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-mn10300.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-pa.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-ppc.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-pyr.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-sh.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-sparc.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-spur.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-v850.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/varargs.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/libgcc.a
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/libstdc++.a
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/libstdc++.so
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/specs
+#opt/gcc-2.95.3/lib/libiberty.a
+#opt/gcc-2.95.3/lib/libstdc++-3-libc6.3-2-2.10.0.a
+#opt/gcc-2.95.3/lib/libstdc++-libc6.3-2.a.3
+#opt/gcc-2.95.3/lib/libstdc++-3-libc6.3-2-2.10.0.so
+#opt/gcc-2.95.3/lib/libstdc++-libc6.3-2.so.3
+#opt/gcc-2.95.3/man
+#opt/gcc-2.95.3/man/man1
+#opt/gcc-2.95.3/man/man1/cccp.1
+#opt/gcc-2.95.3/man/man1/g++.1
+#opt/gcc-2.95.3/man/man1/gcc.1
+##
+## pcmcia-cs-3.2.8
+##
+#etc/pcmcia
+#etc/pcmcia/cis
+etc/pcmcia/cis/3CCFEM556.dat
+etc/pcmcia/cis/3CXEM556.dat
+etc/pcmcia/cis/COMpad2.dat
+etc/pcmcia/cis/COMpad4.dat
+etc/pcmcia/cis/DP83903.dat
+etc/pcmcia/cis/E-CARD.dat
+etc/pcmcia/cis/LA-PCM.dat
+etc/pcmcia/cis/MT5634ZLX.dat
+etc/pcmcia/cis/NE2K.dat
+etc/pcmcia/cis/PCMLM28.dat
+etc/pcmcia/cis/PE-200.dat
+etc/pcmcia/cis/PE520.dat
+etc/pcmcia/cis/RS-COM-2P.dat
+etc/pcmcia/cis/tamarack.dat
+etc/pcmcia/config
+etc/pcmcia/config.opts
+etc/pcmcia/ftl
+etc/pcmcia/ftl.opts
+etc/pcmcia/ide
+etc/pcmcia/ide.opts
+etc/pcmcia/ieee1394
+etc/pcmcia/ieee1394.opts
+etc/pcmcia/isdnextra.conf
+etc/pcmcia/memory
+etc/pcmcia/memory.opts
+etc/pcmcia/netextra.conf
+etc/pcmcia/network
+etc/pcmcia/network.opts
+etc/pcmcia/parport
+etc/pcmcia/parport.opts
+etc/pcmcia/scsi
+etc/pcmcia/scsi.opts
+etc/pcmcia/serial
+etc/pcmcia/serial.opts
+etc/pcmcia/shared
+etc/pcmcia/wireless
+etc/pcmcia/wireless.opts
+#etc/rc.d
+etc/rc.d/rc.pcmcia
+sbin/cardctl
+sbin/cardmgr
+sbin/dump_cis
+sbin/ftl_check
+sbin/ftl_format
+sbin/ide_info
+sbin/ifport
+sbin/ifuser
+sbin/lspnp
+sbin/pack_cis
+sbin/pcinitrd
+sbin/scsi_info
+sbin/setpnp
+#usr/share/man/man4/aha152x_cs.4
+#usr/share/man/man4/airo.4
+#usr/share/man/man4/airo_cs.4
+#usr/share/man/man4/axnet_cs.4
+#usr/share/man/man4/dummy_cb.4
+#usr/share/man/man4/dummy_cs.4
+#usr/share/man/man4/fmvj18x_cs.4
+#usr/share/man/man4/ftl_cs.4
+#usr/share/man/man4/i82365.4
+#usr/share/man/man4/ibmtr_cs.4
+#usr/share/man/man4/iflash2+_mtd.4
+#usr/share/man/man4/iflash2_mtd.4
+#usr/share/man/man4/memory_cb.4
+#usr/share/man/man4/memory_cs.4
+#usr/share/man/man4/netwave_cs.4
+#usr/share/man/man4/pcmcia_core.4
+#usr/share/man/man4/pcnet_cs.4
+#usr/share/man/man4/ray_cs.4
+#usr/share/man/man4/serial_cs.4
+#usr/share/man/man4/smc91c92_cs.4
+#usr/share/man/man4/tc574_cs.4
+#usr/share/man/man4/tc575_cb.4
+#usr/share/man/man4/tc589_cs.4
+#usr/share/man/man4/tcic.4
+#usr/share/man/man4/wavelan_cs.4
+#usr/share/man/man4/wvlan_cs.4
+#usr/share/man/man4/xirc2ps_cs.4
+#usr/share/man/man5/pcmcia.5
+#usr/share/man/man5/stab.5
+#usr/share/man/man8/cardctl.8
+#usr/share/man/man8/cardmgr.8
+#usr/share/man/man8/dump_cis.8
+#usr/share/man/man8/ftl_check.8
+#usr/share/man/man8/ftl_format.8
+#usr/share/man/man8/ide_info.8
+#usr/share/man/man8/ifport.8
+#usr/share/man/man8/ifuser.8
+#usr/share/man/man8/lspnp.8
+#usr/share/man/man8/pack_cis.8
+#usr/share/man/man8/pcic_probe.8
+#usr/share/man/man8/pcinitrd.8
+#usr/share/man/man8/scsi_info.8
+#usr/share/man/man8/setpnp.8
+usr/share/pnp.ids
+var/lib/pcmcia
+##
+## Python-2.3.4
+##
+#usr/bin/idle
+#usr/bin/pydoc
+usr/bin/python
+#usr/bin/python2.3
+#usr/include/python2.3
+#usr/include/python2.3/Python.h
+#usr/include/python2.3/abstract.h
+#usr/include/python2.3/bitset.h
+#usr/include/python2.3/boolobject.h
+#usr/include/python2.3/bufferobject.h
+#usr/include/python2.3/cStringIO.h
+#usr/include/python2.3/cellobject.h
+#usr/include/python2.3/ceval.h
+#usr/include/python2.3/classobject.h
+#usr/include/python2.3/cobject.h
+#usr/include/python2.3/codecs.h
+#usr/include/python2.3/compile.h
+#usr/include/python2.3/complexobject.h
+#usr/include/python2.3/datetime.h
+#usr/include/python2.3/descrobject.h
+#usr/include/python2.3/dictobject.h
+#usr/include/python2.3/enumobject.h
+#usr/include/python2.3/errcode.h
+#usr/include/python2.3/eval.h
+#usr/include/python2.3/fileobject.h
+#usr/include/python2.3/floatobject.h
+#usr/include/python2.3/frameobject.h
+#usr/include/python2.3/funcobject.h
+#usr/include/python2.3/graminit.h
+#usr/include/python2.3/grammar.h
+#usr/include/python2.3/import.h
+#usr/include/python2.3/intobject.h
+#usr/include/python2.3/intrcheck.h
+#usr/include/python2.3/iterobject.h
+#usr/include/python2.3/listobject.h
+#usr/include/python2.3/longintrepr.h
+#usr/include/python2.3/longobject.h
+#usr/include/python2.3/marshal.h
+#usr/include/python2.3/metagrammar.h
+#usr/include/python2.3/methodobject.h
+#usr/include/python2.3/modsupport.h
+#usr/include/python2.3/moduleobject.h
+#usr/include/python2.3/node.h
+#usr/include/python2.3/object.h
+#usr/include/python2.3/objimpl.h
+#usr/include/python2.3/opcode.h
+#usr/include/python2.3/osdefs.h
+#usr/include/python2.3/parsetok.h
+#usr/include/python2.3/patchlevel.h
+#usr/include/python2.3/pgen.h
+#usr/include/python2.3/pgenheaders.h
+#usr/include/python2.3/py_curses.h
+#usr/include/python2.3/pyconfig.h
+#usr/include/python2.3/pydebug.h
+#usr/include/python2.3/pyerrors.h
+#usr/include/python2.3/pyfpe.h
+#usr/include/python2.3/pygetopt.h
+#usr/include/python2.3/pymactoolbox.h
+#usr/include/python2.3/pymem.h
+#usr/include/python2.3/pyport.h
+#usr/include/python2.3/pystate.h
+#usr/include/python2.3/pythonrun.h
+#usr/include/python2.3/pythread.h
+#usr/include/python2.3/rangeobject.h
+#usr/include/python2.3/sliceobject.h
+#usr/include/python2.3/stringobject.h
+#usr/include/python2.3/structmember.h
+#usr/include/python2.3/structseq.h
+#usr/include/python2.3/symtable.h
+#usr/include/python2.3/sysmodule.h
+#usr/include/python2.3/token.h
+#usr/include/python2.3/traceback.h
+#usr/include/python2.3/tupleobject.h
+#usr/include/python2.3/ucnhash.h
+#usr/include/python2.3/unicodeobject.h
+#usr/include/python2.3/weakrefobject.h
+#usr/lib/python2.3
+#usr/lib/python2.3/BaseHTTPServer.py
+usr/lib/python2.3/BaseHTTPServer.pyc
+#usr/lib/python2.3/BaseHTTPServer.pyo
+#usr/lib/python2.3/Bastion.py
+#usr/lib/python2.3/Bastion.pyc
+#usr/lib/python2.3/Bastion.pyo
+#usr/lib/python2.3/CGIHTTPServer.py
+usr/lib/python2.3/CGIHTTPServer.pyc
+#usr/lib/python2.3/CGIHTTPServer.pyo
+#usr/lib/python2.3/ConfigParser.py
+usr/lib/python2.3/ConfigParser.pyc
+#usr/lib/python2.3/ConfigParser.pyo
+#usr/lib/python2.3/Cookie.py
+usr/lib/python2.3/Cookie.pyc
+#usr/lib/python2.3/Cookie.pyo
+#usr/lib/python2.3/DocXMLRPCServer.py
+usr/lib/python2.3/DocXMLRPCServer.pyc
+#usr/lib/python2.3/DocXMLRPCServer.pyo
+#usr/lib/python2.3/FCNTL.py
+usr/lib/python2.3/FCNTL.pyc
+#usr/lib/python2.3/FCNTL.pyo
+#usr/lib/python2.3/HTMLParser.py
+usr/lib/python2.3/HTMLParser.pyc
+#usr/lib/python2.3/HTMLParser.pyo
+#usr/lib/python2.3/LICENSE.txt
+#usr/lib/python2.3/MimeWriter.py
+usr/lib/python2.3/MimeWriter.pyc
+#usr/lib/python2.3/MimeWriter.pyo
+#usr/lib/python2.3/Queue.py
+usr/lib/python2.3/Queue.pyc
+#usr/lib/python2.3/Queue.pyo
+#usr/lib/python2.3/SimpleHTTPServer.py
+usr/lib/python2.3/SimpleHTTPServer.pyc
+#usr/lib/python2.3/SimpleHTTPServer.pyo
+#usr/lib/python2.3/SimpleXMLRPCServer.py
+usr/lib/python2.3/SimpleXMLRPCServer.pyc
+#usr/lib/python2.3/SimpleXMLRPCServer.pyo
+#usr/lib/python2.3/SocketServer.py
+usr/lib/python2.3/SocketServer.pyc
+#usr/lib/python2.3/SocketServer.pyo
+#usr/lib/python2.3/StringIO.py
+usr/lib/python2.3/StringIO.pyc
+#usr/lib/python2.3/StringIO.pyo
+#usr/lib/python2.3/TERMIOS.py
+usr/lib/python2.3/TERMIOS.pyc
+#usr/lib/python2.3/TERMIOS.pyo
+#usr/lib/python2.3/UserDict.py
+usr/lib/python2.3/UserDict.pyc
+#usr/lib/python2.3/UserDict.pyo
+#usr/lib/python2.3/UserList.py
+usr/lib/python2.3/UserList.pyc
+#usr/lib/python2.3/UserList.pyo
+#usr/lib/python2.3/UserString.py
+usr/lib/python2.3/UserString.pyc
+#usr/lib/python2.3/UserString.pyo
+#usr/lib/python2.3/__future__.py
+usr/lib/python2.3/__future__.pyc
+#usr/lib/python2.3/__future__.pyo
+#usr/lib/python2.3/__phello__.foo.py
+#usr/lib/python2.3/__phello__.foo.pyc
+#usr/lib/python2.3/__phello__.foo.pyo
+#usr/lib/python2.3/_strptime.py
+usr/lib/python2.3/_strptime.pyc
+#usr/lib/python2.3/_strptime.pyo
+#usr/lib/python2.3/aifc.py
+#usr/lib/python2.3/aifc.pyc
+#usr/lib/python2.3/aifc.pyo
+#usr/lib/python2.3/anydbm.py
+usr/lib/python2.3/anydbm.pyc
+#usr/lib/python2.3/anydbm.pyo
+#usr/lib/python2.3/asynchat.py
+#usr/lib/python2.3/asynchat.pyc
+#usr/lib/python2.3/asynchat.pyo
+#usr/lib/python2.3/asyncore.py
+usr/lib/python2.3/asyncore.pyc
+#usr/lib/python2.3/asyncore.pyo
+#usr/lib/python2.3/atexit.py
+usr/lib/python2.3/atexit.pyc
+#usr/lib/python2.3/atexit.pyo
+#usr/lib/python2.3/audiodev.py
+#usr/lib/python2.3/audiodev.pyc
+#usr/lib/python2.3/audiodev.pyo
+#usr/lib/python2.3/base64.py
+usr/lib/python2.3/base64.pyc
+#usr/lib/python2.3/base64.pyo
+#usr/lib/python2.3/bdb.py
+#usr/lib/python2.3/bdb.pyc
+#usr/lib/python2.3/bdb.pyo
+#usr/lib/python2.3/binhex.py
+usr/lib/python2.3/binhex.pyc
+#usr/lib/python2.3/binhex.pyo
+#usr/lib/python2.3/bisect.py
+#usr/lib/python2.3/bisect.pyc
+#usr/lib/python2.3/bisect.pyo
+#usr/lib/python2.3/bsddb
+#usr/lib/python2.3/bsddb/__init__.py
+usr/lib/python2.3/bsddb/__init__.pyc
+#usr/lib/python2.3/bsddb/__init__.pyo
+#usr/lib/python2.3/bsddb/db.py
+usr/lib/python2.3/bsddb/db.pyc
+#usr/lib/python2.3/bsddb/db.pyo
+#usr/lib/python2.3/bsddb/dbobj.py
+usr/lib/python2.3/bsddb/dbobj.pyc
+#usr/lib/python2.3/bsddb/dbobj.pyo
+#usr/lib/python2.3/bsddb/dbrecio.py
+usr/lib/python2.3/bsddb/dbrecio.pyc
+#usr/lib/python2.3/bsddb/dbrecio.pyo
+#usr/lib/python2.3/bsddb/dbshelve.py
+usr/lib/python2.3/bsddb/dbshelve.pyc
+#usr/lib/python2.3/bsddb/dbshelve.pyo
+#usr/lib/python2.3/bsddb/dbtables.py
+usr/lib/python2.3/bsddb/dbtables.pyc
+#usr/lib/python2.3/bsddb/dbtables.pyo
+#usr/lib/python2.3/bsddb/dbutils.py
+usr/lib/python2.3/bsddb/dbutils.pyc
+#usr/lib/python2.3/bsddb/dbutils.pyo
+#usr/lib/python2.3/bsddb/test
+#usr/lib/python2.3/bsddb/test/__init__.py
+#usr/lib/python2.3/bsddb/test/__init__.pyc
+#usr/lib/python2.3/bsddb/test/__init__.pyo
+#usr/lib/python2.3/bsddb/test/test_all.py
+#usr/lib/python2.3/bsddb/test/test_all.pyc
+#usr/lib/python2.3/bsddb/test/test_all.pyo
+#usr/lib/python2.3/bsddb/test/test_associate.py
+#usr/lib/python2.3/bsddb/test/test_associate.pyc
+#usr/lib/python2.3/bsddb/test/test_associate.pyo
+#usr/lib/python2.3/bsddb/test/test_basics.py
+#usr/lib/python2.3/bsddb/test/test_basics.pyc
+#usr/lib/python2.3/bsddb/test/test_basics.pyo
+#usr/lib/python2.3/bsddb/test/test_compat.py
+#usr/lib/python2.3/bsddb/test/test_compat.pyc
+#usr/lib/python2.3/bsddb/test/test_compat.pyo
+#usr/lib/python2.3/bsddb/test/test_dbobj.py
+#usr/lib/python2.3/bsddb/test/test_dbobj.pyc
+#usr/lib/python2.3/bsddb/test/test_dbobj.pyo
+#usr/lib/python2.3/bsddb/test/test_dbshelve.py
+#usr/lib/python2.3/bsddb/test/test_dbshelve.pyc
+#usr/lib/python2.3/bsddb/test/test_dbshelve.pyo
+#usr/lib/python2.3/bsddb/test/test_dbtables.py
+#usr/lib/python2.3/bsddb/test/test_dbtables.pyc
+#usr/lib/python2.3/bsddb/test/test_dbtables.pyo
+#usr/lib/python2.3/bsddb/test/test_env_close.py
+#usr/lib/python2.3/bsddb/test/test_env_close.pyc
+#usr/lib/python2.3/bsddb/test/test_env_close.pyo
+#usr/lib/python2.3/bsddb/test/test_get_none.py
+#usr/lib/python2.3/bsddb/test/test_get_none.pyc
+#usr/lib/python2.3/bsddb/test/test_get_none.pyo
+#usr/lib/python2.3/bsddb/test/test_join.py
+#usr/lib/python2.3/bsddb/test/test_join.pyc
+#usr/lib/python2.3/bsddb/test/test_join.pyo
+#usr/lib/python2.3/bsddb/test/test_lock.py
+#usr/lib/python2.3/bsddb/test/test_lock.pyc
+#usr/lib/python2.3/bsddb/test/test_lock.pyo
+#usr/lib/python2.3/bsddb/test/test_misc.py
+#usr/lib/python2.3/bsddb/test/test_misc.pyc
+#usr/lib/python2.3/bsddb/test/test_misc.pyo
+#usr/lib/python2.3/bsddb/test/test_queue.py
+#usr/lib/python2.3/bsddb/test/test_queue.pyc
+#usr/lib/python2.3/bsddb/test/test_queue.pyo
+#usr/lib/python2.3/bsddb/test/test_recno.py
+#usr/lib/python2.3/bsddb/test/test_recno.pyc
+#usr/lib/python2.3/bsddb/test/test_recno.pyo
+#usr/lib/python2.3/bsddb/test/test_thread.py
+#usr/lib/python2.3/bsddb/test/test_thread.pyc
+#usr/lib/python2.3/bsddb/test/test_thread.pyo
+#usr/lib/python2.3/calendar.py
+usr/lib/python2.3/calendar.pyc
+#usr/lib/python2.3/calendar.pyo
+#usr/lib/python2.3/cgi.py
+usr/lib/python2.3/cgi.pyc
+#usr/lib/python2.3/cgi.pyo
+#usr/lib/python2.3/cgitb.py
+usr/lib/python2.3/cgitb.pyc
+#usr/lib/python2.3/cgitb.pyo
+#usr/lib/python2.3/chunk.py
+usr/lib/python2.3/chunk.pyc
+#usr/lib/python2.3/chunk.pyo
+#usr/lib/python2.3/cmd.py
+usr/lib/python2.3/cmd.pyc
+#usr/lib/python2.3/cmd.pyo
+#usr/lib/python2.3/code.py
+usr/lib/python2.3/code.pyc
+#usr/lib/python2.3/code.pyo
+#usr/lib/python2.3/codecs.py
+usr/lib/python2.3/codecs.pyc
+#usr/lib/python2.3/codecs.pyo
+#usr/lib/python2.3/codeop.py
+usr/lib/python2.3/codeop.pyc
+#usr/lib/python2.3/codeop.pyo
+#usr/lib/python2.3/colorsys.py
+usr/lib/python2.3/colorsys.pyc
+#usr/lib/python2.3/colorsys.pyo
+#usr/lib/python2.3/commands.py
+usr/lib/python2.3/commands.pyc
+#usr/lib/python2.3/commands.pyo
+#usr/lib/python2.3/compileall.py
+usr/lib/python2.3/compileall.pyc
+#usr/lib/python2.3/compileall.pyo
+#usr/lib/python2.3/compiler
+#usr/lib/python2.3/compiler/__init__.py
+usr/lib/python2.3/compiler/__init__.pyc
+#usr/lib/python2.3/compiler/__init__.pyo
+#usr/lib/python2.3/compiler/ast.py
+usr/lib/python2.3/compiler/ast.pyc
+#usr/lib/python2.3/compiler/ast.pyo
+#usr/lib/python2.3/compiler/consts.py
+usr/lib/python2.3/compiler/consts.pyc
+#usr/lib/python2.3/compiler/consts.pyo
+#usr/lib/python2.3/compiler/future.py
+usr/lib/python2.3/compiler/future.pyc
+#usr/lib/python2.3/compiler/future.pyo
+#usr/lib/python2.3/compiler/misc.py
+usr/lib/python2.3/compiler/misc.pyc
+#usr/lib/python2.3/compiler/misc.pyo
+#usr/lib/python2.3/compiler/pyassem.py
+usr/lib/python2.3/compiler/pyassem.pyc
+#usr/lib/python2.3/compiler/pyassem.pyo
+#usr/lib/python2.3/compiler/pycodegen.py
+usr/lib/python2.3/compiler/pycodegen.pyc
+#usr/lib/python2.3/compiler/pycodegen.pyo
+#usr/lib/python2.3/compiler/symbols.py
+usr/lib/python2.3/compiler/symbols.pyc
+#usr/lib/python2.3/compiler/symbols.pyo
+#usr/lib/python2.3/compiler/syntax.py
+usr/lib/python2.3/compiler/syntax.pyc
+#usr/lib/python2.3/compiler/syntax.pyo
+#usr/lib/python2.3/compiler/transformer.py
+usr/lib/python2.3/compiler/transformer.pyc
+#usr/lib/python2.3/compiler/transformer.pyo
+#usr/lib/python2.3/compiler/visitor.py
+usr/lib/python2.3/compiler/visitor.pyc
+#usr/lib/python2.3/compiler/visitor.pyo
+#usr/lib/python2.3/config
+#usr/lib/python2.3/config/Makefile
+#usr/lib/python2.3/config/Setup
+#usr/lib/python2.3/config/Setup.config
+#usr/lib/python2.3/config/Setup.local
+#usr/lib/python2.3/config/config.c
+#usr/lib/python2.3/config/config.c.in
+#usr/lib/python2.3/config/install-sh
+#usr/lib/python2.3/config/libpython2.3.a
+#usr/lib/python2.3/config/makesetup
+#usr/lib/python2.3/config/python.o
+#usr/lib/python2.3/copy.py
+usr/lib/python2.3/copy.pyc
+#usr/lib/python2.3/copy.pyo
+#usr/lib/python2.3/copy_reg.py
+usr/lib/python2.3/copy_reg.pyc
+#usr/lib/python2.3/copy_reg.pyo
+#usr/lib/python2.3/csv.py
+usr/lib/python2.3/csv.pyc
+#usr/lib/python2.3/csv.pyo
+#usr/lib/python2.3/curses
+#usr/lib/python2.3/curses/__init__.py
+usr/lib/python2.3/curses/__init__.pyc
+#usr/lib/python2.3/curses/__init__.pyo
+#usr/lib/python2.3/curses/ascii.py
+usr/lib/python2.3/curses/ascii.pyc
+#usr/lib/python2.3/curses/ascii.pyo
+#usr/lib/python2.3/curses/has_key.py
+usr/lib/python2.3/curses/has_key.pyc
+#usr/lib/python2.3/curses/has_key.pyo
+#usr/lib/python2.3/curses/panel.py
+usr/lib/python2.3/curses/panel.pyc
+#usr/lib/python2.3/curses/panel.pyo
+#usr/lib/python2.3/curses/textpad.py
+usr/lib/python2.3/curses/textpad.pyc
+#usr/lib/python2.3/curses/textpad.pyo
+#usr/lib/python2.3/curses/wrapper.py
+usr/lib/python2.3/curses/wrapper.pyc
+#usr/lib/python2.3/curses/wrapper.pyo
+#usr/lib/python2.3/dbhash.py
+usr/lib/python2.3/dbhash.pyc
+#usr/lib/python2.3/dbhash.pyo
+#usr/lib/python2.3/difflib.py
+usr/lib/python2.3/difflib.pyc
+#usr/lib/python2.3/difflib.pyo
+#usr/lib/python2.3/dircache.py
+usr/lib/python2.3/dircache.pyc
+#usr/lib/python2.3/dircache.pyo
+#usr/lib/python2.3/dis.py
+usr/lib/python2.3/dis.pyc
+#usr/lib/python2.3/dis.pyo
+#usr/lib/python2.3/distutils
+#usr/lib/python2.3/distutils/README
+#usr/lib/python2.3/distutils/__init__.py
+#usr/lib/python2.3/distutils/__init__.pyc
+#usr/lib/python2.3/distutils/__init__.pyo
+#usr/lib/python2.3/distutils/archive_util.py
+#usr/lib/python2.3/distutils/archive_util.pyc
+#usr/lib/python2.3/distutils/archive_util.pyo
+#usr/lib/python2.3/distutils/bcppcompiler.py
+#usr/lib/python2.3/distutils/bcppcompiler.pyc
+#usr/lib/python2.3/distutils/bcppcompiler.pyo
+#usr/lib/python2.3/distutils/ccompiler.py
+#usr/lib/python2.3/distutils/ccompiler.pyc
+#usr/lib/python2.3/distutils/ccompiler.pyo
+#usr/lib/python2.3/distutils/cmd.py
+#usr/lib/python2.3/distutils/cmd.pyc
+#usr/lib/python2.3/distutils/cmd.pyo
+#usr/lib/python2.3/distutils/command
+#usr/lib/python2.3/distutils/command/__init__.py
+#usr/lib/python2.3/distutils/command/__init__.pyc
+#usr/lib/python2.3/distutils/command/__init__.pyo
+#usr/lib/python2.3/distutils/command/bdist.py
+#usr/lib/python2.3/distutils/command/bdist.pyc
+#usr/lib/python2.3/distutils/command/bdist.pyo
+#usr/lib/python2.3/distutils/command/bdist_dumb.py
+#usr/lib/python2.3/distutils/command/bdist_dumb.pyc
+#usr/lib/python2.3/distutils/command/bdist_dumb.pyo
+#usr/lib/python2.3/distutils/command/bdist_rpm.py
+#usr/lib/python2.3/distutils/command/bdist_rpm.pyc
+#usr/lib/python2.3/distutils/command/bdist_rpm.pyo
+#usr/lib/python2.3/distutils/command/bdist_wininst.py
+#usr/lib/python2.3/distutils/command/bdist_wininst.pyc
+#usr/lib/python2.3/distutils/command/bdist_wininst.pyo
+#usr/lib/python2.3/distutils/command/build.py
+#usr/lib/python2.3/distutils/command/build.pyc
+#usr/lib/python2.3/distutils/command/build.pyo
+#usr/lib/python2.3/distutils/command/build_clib.py
+#usr/lib/python2.3/distutils/command/build_clib.pyc
+#usr/lib/python2.3/distutils/command/build_clib.pyo
+#usr/lib/python2.3/distutils/command/build_ext.py
+#usr/lib/python2.3/distutils/command/build_ext.pyc
+#usr/lib/python2.3/distutils/command/build_ext.pyo
+#usr/lib/python2.3/distutils/command/build_py.py
+#usr/lib/python2.3/distutils/command/build_py.pyc
+#usr/lib/python2.3/distutils/command/build_py.pyo
+#usr/lib/python2.3/distutils/command/build_scripts.py
+#usr/lib/python2.3/distutils/command/build_scripts.pyc
+#usr/lib/python2.3/distutils/command/build_scripts.pyo
+#usr/lib/python2.3/distutils/command/clean.py
+#usr/lib/python2.3/distutils/command/clean.pyc
+#usr/lib/python2.3/distutils/command/clean.pyo
+#usr/lib/python2.3/distutils/command/command_template
+#usr/lib/python2.3/distutils/command/config.py
+#usr/lib/python2.3/distutils/command/config.pyc
+#usr/lib/python2.3/distutils/command/config.pyo
+#usr/lib/python2.3/distutils/command/install.py
+#usr/lib/python2.3/distutils/command/install.pyc
+#usr/lib/python2.3/distutils/command/install.pyo
+#usr/lib/python2.3/distutils/command/install_data.py
+#usr/lib/python2.3/distutils/command/install_data.pyc
+#usr/lib/python2.3/distutils/command/install_data.pyo
+#usr/lib/python2.3/distutils/command/install_headers.py
+#usr/lib/python2.3/distutils/command/install_headers.pyc
+#usr/lib/python2.3/distutils/command/install_headers.pyo
+#usr/lib/python2.3/distutils/command/install_lib.py
+#usr/lib/python2.3/distutils/command/install_lib.pyc
+#usr/lib/python2.3/distutils/command/install_lib.pyo
+#usr/lib/python2.3/distutils/command/install_scripts.py
+#usr/lib/python2.3/distutils/command/install_scripts.pyc
+#usr/lib/python2.3/distutils/command/install_scripts.pyo
+#usr/lib/python2.3/distutils/command/register.py
+#usr/lib/python2.3/distutils/command/register.pyc
+#usr/lib/python2.3/distutils/command/register.pyo
+#usr/lib/python2.3/distutils/command/sdist.py
+#usr/lib/python2.3/distutils/command/sdist.pyc
+#usr/lib/python2.3/distutils/command/sdist.pyo
+#usr/lib/python2.3/distutils/command/wininst.exe
+#usr/lib/python2.3/distutils/core.py
+#usr/lib/python2.3/distutils/core.pyc
+#usr/lib/python2.3/distutils/core.pyo
+#usr/lib/python2.3/distutils/cygwinccompiler.py
+#usr/lib/python2.3/distutils/cygwinccompiler.pyc
+#usr/lib/python2.3/distutils/cygwinccompiler.pyo
+#usr/lib/python2.3/distutils/debug.py
+#usr/lib/python2.3/distutils/debug.pyc
+#usr/lib/python2.3/distutils/debug.pyo
+#usr/lib/python2.3/distutils/dep_util.py
+#usr/lib/python2.3/distutils/dep_util.pyc
+#usr/lib/python2.3/distutils/dep_util.pyo
+#usr/lib/python2.3/distutils/dir_util.py
+#usr/lib/python2.3/distutils/dir_util.pyc
+#usr/lib/python2.3/distutils/dir_util.pyo
+#usr/lib/python2.3/distutils/dist.py
+#usr/lib/python2.3/distutils/dist.pyc
+#usr/lib/python2.3/distutils/dist.pyo
+#usr/lib/python2.3/distutils/emxccompiler.py
+#usr/lib/python2.3/distutils/emxccompiler.pyc
+#usr/lib/python2.3/distutils/emxccompiler.pyo
+#usr/lib/python2.3/distutils/errors.py
+#usr/lib/python2.3/distutils/errors.pyc
+#usr/lib/python2.3/distutils/errors.pyo
+#usr/lib/python2.3/distutils/extension.py
+#usr/lib/python2.3/distutils/extension.pyc
+#usr/lib/python2.3/distutils/extension.pyo
+#usr/lib/python2.3/distutils/fancy_getopt.py
+#usr/lib/python2.3/distutils/fancy_getopt.pyc
+#usr/lib/python2.3/distutils/fancy_getopt.pyo
+#usr/lib/python2.3/distutils/file_util.py
+#usr/lib/python2.3/distutils/file_util.pyc
+#usr/lib/python2.3/distutils/file_util.pyo
+#usr/lib/python2.3/distutils/filelist.py
+#usr/lib/python2.3/distutils/filelist.pyc
+#usr/lib/python2.3/distutils/filelist.pyo
+#usr/lib/python2.3/distutils/log.py
+#usr/lib/python2.3/distutils/log.pyc
+#usr/lib/python2.3/distutils/log.pyo
+#usr/lib/python2.3/distutils/msvccompiler.py
+#usr/lib/python2.3/distutils/msvccompiler.pyc
+#usr/lib/python2.3/distutils/msvccompiler.pyo
+#usr/lib/python2.3/distutils/mwerkscompiler.py
+#usr/lib/python2.3/distutils/mwerkscompiler.pyc
+#usr/lib/python2.3/distutils/mwerkscompiler.pyo
+#usr/lib/python2.3/distutils/spawn.py
+#usr/lib/python2.3/distutils/spawn.pyc
+#usr/lib/python2.3/distutils/spawn.pyo
+#usr/lib/python2.3/distutils/sysconfig.py
+#usr/lib/python2.3/distutils/sysconfig.pyc
+#usr/lib/python2.3/distutils/sysconfig.pyo
+#usr/lib/python2.3/distutils/text_file.py
+#usr/lib/python2.3/distutils/text_file.pyc
+#usr/lib/python2.3/distutils/text_file.pyo
+#usr/lib/python2.3/distutils/unixccompiler.py
+#usr/lib/python2.3/distutils/unixccompiler.pyc
+#usr/lib/python2.3/distutils/unixccompiler.pyo
+#usr/lib/python2.3/distutils/util.py
+#usr/lib/python2.3/distutils/util.pyc
+#usr/lib/python2.3/distutils/util.pyo
+#usr/lib/python2.3/distutils/version.py
+#usr/lib/python2.3/distutils/version.pyc
+#usr/lib/python2.3/distutils/version.pyo
+#usr/lib/python2.3/doctest.py
+usr/lib/python2.3/doctest.pyc
+#usr/lib/python2.3/doctest.pyo
+#usr/lib/python2.3/dumbdbm.py
+usr/lib/python2.3/dumbdbm.pyc
+#usr/lib/python2.3/dumbdbm.pyo
+#usr/lib/python2.3/dummy_thread.py
+usr/lib/python2.3/dummy_thread.pyc
+#usr/lib/python2.3/dummy_thread.pyo
+#usr/lib/python2.3/dummy_threading.py
+usr/lib/python2.3/dummy_threading.pyc
+#usr/lib/python2.3/dummy_threading.pyo
+#usr/lib/python2.3/email
+#usr/lib/python2.3/email/Charset.py
+usr/lib/python2.3/email/Charset.pyc
+#usr/lib/python2.3/email/Charset.pyo
+#usr/lib/python2.3/email/Encoders.py
+usr/lib/python2.3/email/Encoders.pyc
+#usr/lib/python2.3/email/Encoders.pyo
+#usr/lib/python2.3/email/Errors.py
+usr/lib/python2.3/email/Errors.pyc
+#usr/lib/python2.3/email/Errors.pyo
+#usr/lib/python2.3/email/Generator.py
+usr/lib/python2.3/email/Generator.pyc
+#usr/lib/python2.3/email/Generator.pyo
+#usr/lib/python2.3/email/Header.py
+usr/lib/python2.3/email/Header.pyc
+#usr/lib/python2.3/email/Header.pyo
+#usr/lib/python2.3/email/Iterators.py
+usr/lib/python2.3/email/Iterators.pyc
+#usr/lib/python2.3/email/Iterators.pyo
+#usr/lib/python2.3/email/MIMEAudio.py
+usr/lib/python2.3/email/MIMEAudio.pyc
+#usr/lib/python2.3/email/MIMEAudio.pyo
+#usr/lib/python2.3/email/MIMEBase.py
+usr/lib/python2.3/email/MIMEBase.pyc
+#usr/lib/python2.3/email/MIMEBase.pyo
+#usr/lib/python2.3/email/MIMEImage.py
+usr/lib/python2.3/email/MIMEImage.pyc
+#usr/lib/python2.3/email/MIMEImage.pyo
+#usr/lib/python2.3/email/MIMEMessage.py
+usr/lib/python2.3/email/MIMEMessage.pyc
+#usr/lib/python2.3/email/MIMEMessage.pyo
+#usr/lib/python2.3/email/MIMEMultipart.py
+usr/lib/python2.3/email/MIMEMultipart.pyc
+#usr/lib/python2.3/email/MIMEMultipart.pyo
+#usr/lib/python2.3/email/MIMENonMultipart.py
+usr/lib/python2.3/email/MIMENonMultipart.pyc
+#usr/lib/python2.3/email/MIMENonMultipart.pyo
+#usr/lib/python2.3/email/MIMEText.py
+usr/lib/python2.3/email/MIMEText.pyc
+#usr/lib/python2.3/email/MIMEText.pyo
+#usr/lib/python2.3/email/Message.py
+usr/lib/python2.3/email/Message.pyc
+#usr/lib/python2.3/email/Message.pyo
+#usr/lib/python2.3/email/Parser.py
+usr/lib/python2.3/email/Parser.pyc
+#usr/lib/python2.3/email/Parser.pyo
+#usr/lib/python2.3/email/Utils.py
+usr/lib/python2.3/email/Utils.pyc
+#usr/lib/python2.3/email/Utils.pyo
+#usr/lib/python2.3/email/__init__.py
+usr/lib/python2.3/email/__init__.pyc
+#usr/lib/python2.3/email/__init__.pyo
+#usr/lib/python2.3/email/_compat21.py
+usr/lib/python2.3/email/_compat21.pyc
+#usr/lib/python2.3/email/_compat21.pyo
+#usr/lib/python2.3/email/_compat22.py
+usr/lib/python2.3/email/_compat22.pyc
+#usr/lib/python2.3/email/_compat22.pyo
+#usr/lib/python2.3/email/_parseaddr.py
+usr/lib/python2.3/email/_parseaddr.pyc
+#usr/lib/python2.3/email/_parseaddr.pyo
+#usr/lib/python2.3/email/base64MIME.py
+usr/lib/python2.3/email/base64MIME.pyc
+#usr/lib/python2.3/email/base64MIME.pyo
+#usr/lib/python2.3/email/quopriMIME.py
+usr/lib/python2.3/email/quopriMIME.pyc
+#usr/lib/python2.3/email/quopriMIME.pyo
+#usr/lib/python2.3/email/test
+#usr/lib/python2.3/email/test/__init__.py
+#usr/lib/python2.3/email/test/__init__.pyc
+#usr/lib/python2.3/email/test/__init__.pyo
+#usr/lib/python2.3/email/test/data
+#usr/lib/python2.3/email/test/data/PyBanner048.gif
+#usr/lib/python2.3/email/test/data/audiotest.au
+#usr/lib/python2.3/email/test/data/msg_01.txt
+#usr/lib/python2.3/email/test/data/msg_02.txt
+#usr/lib/python2.3/email/test/data/msg_03.txt
+#usr/lib/python2.3/email/test/data/msg_04.txt
+#usr/lib/python2.3/email/test/data/msg_05.txt
+#usr/lib/python2.3/email/test/data/msg_06.txt
+#usr/lib/python2.3/email/test/data/msg_07.txt
+#usr/lib/python2.3/email/test/data/msg_08.txt
+#usr/lib/python2.3/email/test/data/msg_09.txt
+#usr/lib/python2.3/email/test/data/msg_10.txt
+#usr/lib/python2.3/email/test/data/msg_11.txt
+#usr/lib/python2.3/email/test/data/msg_12.txt
+#usr/lib/python2.3/email/test/data/msg_13.txt
+#usr/lib/python2.3/email/test/data/msg_14.txt
+#usr/lib/python2.3/email/test/data/msg_15.txt
+#usr/lib/python2.3/email/test/data/msg_16.txt
+#usr/lib/python2.3/email/test/data/msg_17.txt
+#usr/lib/python2.3/email/test/data/msg_18.txt
+#usr/lib/python2.3/email/test/data/msg_19.txt
+#usr/lib/python2.3/email/test/data/msg_20.txt
+#usr/lib/python2.3/email/test/data/msg_21.txt
+#usr/lib/python2.3/email/test/data/msg_22.txt
+#usr/lib/python2.3/email/test/data/msg_23.txt
+#usr/lib/python2.3/email/test/data/msg_24.txt
+#usr/lib/python2.3/email/test/data/msg_25.txt
+#usr/lib/python2.3/email/test/data/msg_26.txt
+#usr/lib/python2.3/email/test/data/msg_27.txt
+#usr/lib/python2.3/email/test/data/msg_28.txt
+#usr/lib/python2.3/email/test/data/msg_29.txt
+#usr/lib/python2.3/email/test/data/msg_30.txt
+#usr/lib/python2.3/email/test/data/msg_31.txt
+#usr/lib/python2.3/email/test/data/msg_32.txt
+#usr/lib/python2.3/email/test/data/msg_33.txt
+#usr/lib/python2.3/email/test/data/msg_34.txt
+#usr/lib/python2.3/email/test/data/msg_35.txt
+#usr/lib/python2.3/email/test/test_email.py
+#usr/lib/python2.3/email/test/test_email.pyc
+#usr/lib/python2.3/email/test/test_email.pyo
+#usr/lib/python2.3/email/test/test_email_codecs.py
+#usr/lib/python2.3/email/test/test_email_codecs.pyc
+#usr/lib/python2.3/email/test/test_email_codecs.pyo
+#usr/lib/python2.3/email/test/test_email_torture.py
+#usr/lib/python2.3/email/test/test_email_torture.pyc
+#usr/lib/python2.3/email/test/test_email_torture.pyo
+#usr/lib/python2.3/encodings
+#usr/lib/python2.3/encodings/__init__.py
+usr/lib/python2.3/encodings/__init__.pyc
+#usr/lib/python2.3/encodings/__init__.pyo
+#usr/lib/python2.3/encodings/aliases.py
+usr/lib/python2.3/encodings/aliases.pyc
+#usr/lib/python2.3/encodings/aliases.pyo
+#usr/lib/python2.3/encodings/ascii.py
+usr/lib/python2.3/encodings/ascii.pyc
+#usr/lib/python2.3/encodings/ascii.pyo
+#usr/lib/python2.3/encodings/base64_codec.py
+usr/lib/python2.3/encodings/base64_codec.pyc
+#usr/lib/python2.3/encodings/base64_codec.pyo
+#usr/lib/python2.3/encodings/charmap.py
+usr/lib/python2.3/encodings/charmap.pyc
+#usr/lib/python2.3/encodings/charmap.pyo
+#usr/lib/python2.3/encodings/cp037.py
+#usr/lib/python2.3/encodings/cp037.pyc
+#usr/lib/python2.3/encodings/cp037.pyo
+#usr/lib/python2.3/encodings/cp1006.py
+#usr/lib/python2.3/encodings/cp1006.pyc
+#usr/lib/python2.3/encodings/cp1006.pyo
+#usr/lib/python2.3/encodings/cp1026.py
+#usr/lib/python2.3/encodings/cp1026.pyc
+#usr/lib/python2.3/encodings/cp1026.pyo
+#usr/lib/python2.3/encodings/cp1140.py
+#usr/lib/python2.3/encodings/cp1140.pyc
+#usr/lib/python2.3/encodings/cp1140.pyo
+#usr/lib/python2.3/encodings/cp1250.py
+#usr/lib/python2.3/encodings/cp1250.pyc
+#usr/lib/python2.3/encodings/cp1250.pyo
+#usr/lib/python2.3/encodings/cp1251.py
+#usr/lib/python2.3/encodings/cp1251.pyc
+#usr/lib/python2.3/encodings/cp1251.pyo
+#usr/lib/python2.3/encodings/cp1252.py
+#usr/lib/python2.3/encodings/cp1252.pyc
+#usr/lib/python2.3/encodings/cp1252.pyo
+#usr/lib/python2.3/encodings/cp1253.py
+#usr/lib/python2.3/encodings/cp1253.pyc
+#usr/lib/python2.3/encodings/cp1253.pyo
+#usr/lib/python2.3/encodings/cp1254.py
+#usr/lib/python2.3/encodings/cp1254.pyc
+#usr/lib/python2.3/encodings/cp1254.pyo
+#usr/lib/python2.3/encodings/cp1255.py
+#usr/lib/python2.3/encodings/cp1255.pyc
+#usr/lib/python2.3/encodings/cp1255.pyo
+#usr/lib/python2.3/encodings/cp1256.py
+#usr/lib/python2.3/encodings/cp1256.pyc
+#usr/lib/python2.3/encodings/cp1256.pyo
+#usr/lib/python2.3/encodings/cp1257.py
+#usr/lib/python2.3/encodings/cp1257.pyc
+#usr/lib/python2.3/encodings/cp1257.pyo
+#usr/lib/python2.3/encodings/cp1258.py
+#usr/lib/python2.3/encodings/cp1258.pyc
+#usr/lib/python2.3/encodings/cp1258.pyo
+#usr/lib/python2.3/encodings/cp424.py
+#usr/lib/python2.3/encodings/cp424.pyc
+#usr/lib/python2.3/encodings/cp424.pyo
+#usr/lib/python2.3/encodings/cp437.py
+#usr/lib/python2.3/encodings/cp437.pyc
+#usr/lib/python2.3/encodings/cp437.pyo
+#usr/lib/python2.3/encodings/cp500.py
+#usr/lib/python2.3/encodings/cp500.pyc
+#usr/lib/python2.3/encodings/cp500.pyo
+#usr/lib/python2.3/encodings/cp737.py
+#usr/lib/python2.3/encodings/cp737.pyc
+#usr/lib/python2.3/encodings/cp737.pyo
+#usr/lib/python2.3/encodings/cp775.py
+#usr/lib/python2.3/encodings/cp775.pyc
+#usr/lib/python2.3/encodings/cp775.pyo
+#usr/lib/python2.3/encodings/cp850.py
+#usr/lib/python2.3/encodings/cp850.pyc
+#usr/lib/python2.3/encodings/cp850.pyo
+#usr/lib/python2.3/encodings/cp852.py
+#usr/lib/python2.3/encodings/cp852.pyc
+#usr/lib/python2.3/encodings/cp852.pyo
+#usr/lib/python2.3/encodings/cp855.py
+#usr/lib/python2.3/encodings/cp855.pyc
+#usr/lib/python2.3/encodings/cp855.pyo
+#usr/lib/python2.3/encodings/cp856.py
+#usr/lib/python2.3/encodings/cp856.pyc
+#usr/lib/python2.3/encodings/cp856.pyo
+#usr/lib/python2.3/encodings/cp857.py
+#usr/lib/python2.3/encodings/cp857.pyc
+#usr/lib/python2.3/encodings/cp857.pyo
+#usr/lib/python2.3/encodings/cp860.py
+#usr/lib/python2.3/encodings/cp860.pyc
+#usr/lib/python2.3/encodings/cp860.pyo
+#usr/lib/python2.3/encodings/cp861.py
+#usr/lib/python2.3/encodings/cp861.pyc
+#usr/lib/python2.3/encodings/cp861.pyo
+#usr/lib/python2.3/encodings/cp862.py
+#usr/lib/python2.3/encodings/cp862.pyc
+#usr/lib/python2.3/encodings/cp862.pyo
+#usr/lib/python2.3/encodings/cp863.py
+#usr/lib/python2.3/encodings/cp863.pyc
+#usr/lib/python2.3/encodings/cp863.pyo
+#usr/lib/python2.3/encodings/cp864.py
+#usr/lib/python2.3/encodings/cp864.pyc
+#usr/lib/python2.3/encodings/cp864.pyo
+#usr/lib/python2.3/encodings/cp865.py
+#usr/lib/python2.3/encodings/cp865.pyc
+#usr/lib/python2.3/encodings/cp865.pyo
+#usr/lib/python2.3/encodings/cp866.py
+#usr/lib/python2.3/encodings/cp866.pyc
+#usr/lib/python2.3/encodings/cp866.pyo
+#usr/lib/python2.3/encodings/cp869.py
+#usr/lib/python2.3/encodings/cp869.pyc
+#usr/lib/python2.3/encodings/cp869.pyo
+#usr/lib/python2.3/encodings/cp874.py
+#usr/lib/python2.3/encodings/cp874.pyc
+#usr/lib/python2.3/encodings/cp874.pyo
+#usr/lib/python2.3/encodings/cp875.py
+#usr/lib/python2.3/encodings/cp875.pyc
+#usr/lib/python2.3/encodings/cp875.pyo
+#usr/lib/python2.3/encodings/hex_codec.py
+usr/lib/python2.3/encodings/hex_codec.pyc
+#usr/lib/python2.3/encodings/hex_codec.pyo
+#usr/lib/python2.3/encodings/idna.py
+#usr/lib/python2.3/encodings/idna.pyc
+#usr/lib/python2.3/encodings/idna.pyo
+#usr/lib/python2.3/encodings/iso8859_1.py
+usr/lib/python2.3/encodings/iso8859_1.pyc
+#usr/lib/python2.3/encodings/iso8859_1.pyo
+#usr/lib/python2.3/encodings/iso8859_10.py
+usr/lib/python2.3/encodings/iso8859_10.pyc
+#usr/lib/python2.3/encodings/iso8859_10.pyo
+#usr/lib/python2.3/encodings/iso8859_13.py
+usr/lib/python2.3/encodings/iso8859_13.pyc
+#usr/lib/python2.3/encodings/iso8859_13.pyo
+#usr/lib/python2.3/encodings/iso8859_14.py
+usr/lib/python2.3/encodings/iso8859_14.pyc
+#usr/lib/python2.3/encodings/iso8859_14.pyo
+#usr/lib/python2.3/encodings/iso8859_15.py
+usr/lib/python2.3/encodings/iso8859_15.pyc
+#usr/lib/python2.3/encodings/iso8859_15.pyo
+#usr/lib/python2.3/encodings/iso8859_2.py
+usr/lib/python2.3/encodings/iso8859_2.pyc
+#usr/lib/python2.3/encodings/iso8859_2.pyo
+#usr/lib/python2.3/encodings/iso8859_3.py
+usr/lib/python2.3/encodings/iso8859_3.pyc
+#usr/lib/python2.3/encodings/iso8859_3.pyo
+#usr/lib/python2.3/encodings/iso8859_4.py
+usr/lib/python2.3/encodings/iso8859_4.pyc
+#usr/lib/python2.3/encodings/iso8859_4.pyo
+#usr/lib/python2.3/encodings/iso8859_5.py
+usr/lib/python2.3/encodings/iso8859_5.pyc
+#usr/lib/python2.3/encodings/iso8859_5.pyo
+#usr/lib/python2.3/encodings/iso8859_6.py
+usr/lib/python2.3/encodings/iso8859_6.pyc
+#usr/lib/python2.3/encodings/iso8859_6.pyo
+#usr/lib/python2.3/encodings/iso8859_7.py
+usr/lib/python2.3/encodings/iso8859_7.pyc
+#usr/lib/python2.3/encodings/iso8859_7.pyo
+#usr/lib/python2.3/encodings/iso8859_8.py
+usr/lib/python2.3/encodings/iso8859_8.pyc
+#usr/lib/python2.3/encodings/iso8859_8.pyo
+#usr/lib/python2.3/encodings/iso8859_9.py
+usr/lib/python2.3/encodings/iso8859_9.pyc
+#usr/lib/python2.3/encodings/iso8859_9.pyo
+#usr/lib/python2.3/encodings/koi8_r.py
+usr/lib/python2.3/encodings/koi8_r.pyc
+#usr/lib/python2.3/encodings/koi8_r.pyo
+#usr/lib/python2.3/encodings/koi8_u.py
+usr/lib/python2.3/encodings/koi8_u.pyc
+#usr/lib/python2.3/encodings/koi8_u.pyo
+#usr/lib/python2.3/encodings/latin_1.py
+#usr/lib/python2.3/encodings/latin_1.pyc
+#usr/lib/python2.3/encodings/latin_1.pyo
+#usr/lib/python2.3/encodings/mac_cyrillic.py
+#usr/lib/python2.3/encodings/mac_cyrillic.pyc
+#usr/lib/python2.3/encodings/mac_cyrillic.pyo
+#usr/lib/python2.3/encodings/mac_greek.py
+#usr/lib/python2.3/encodings/mac_greek.pyc
+#usr/lib/python2.3/encodings/mac_greek.pyo
+#usr/lib/python2.3/encodings/mac_iceland.py
+#usr/lib/python2.3/encodings/mac_iceland.pyc
+#usr/lib/python2.3/encodings/mac_iceland.pyo
+#usr/lib/python2.3/encodings/mac_latin2.py
+#usr/lib/python2.3/encodings/mac_latin2.pyc
+#usr/lib/python2.3/encodings/mac_latin2.pyo
+#usr/lib/python2.3/encodings/mac_roman.py
+#usr/lib/python2.3/encodings/mac_roman.pyc
+#usr/lib/python2.3/encodings/mac_roman.pyo
+#usr/lib/python2.3/encodings/mac_turkish.py
+#usr/lib/python2.3/encodings/mac_turkish.pyc
+#usr/lib/python2.3/encodings/mac_turkish.pyo
+#usr/lib/python2.3/encodings/mbcs.py
+#usr/lib/python2.3/encodings/mbcs.pyc
+#usr/lib/python2.3/encodings/mbcs.pyo
+#usr/lib/python2.3/encodings/palmos.py
+#usr/lib/python2.3/encodings/palmos.pyc
+#usr/lib/python2.3/encodings/palmos.pyo
+#usr/lib/python2.3/encodings/punycode.py
+#usr/lib/python2.3/encodings/punycode.pyc
+#usr/lib/python2.3/encodings/punycode.pyo
+#usr/lib/python2.3/encodings/quopri_codec.py
+#usr/lib/python2.3/encodings/quopri_codec.pyc
+#usr/lib/python2.3/encodings/quopri_codec.pyo
+#usr/lib/python2.3/encodings/raw_unicode_escape.py
+usr/lib/python2.3/encodings/raw_unicode_escape.pyc
+#usr/lib/python2.3/encodings/raw_unicode_escape.pyo
+#usr/lib/python2.3/encodings/rot_13.py
+#usr/lib/python2.3/encodings/rot_13.pyc
+#usr/lib/python2.3/encodings/rot_13.pyo
+#usr/lib/python2.3/encodings/string_escape.py
+usr/lib/python2.3/encodings/string_escape.pyc
+#usr/lib/python2.3/encodings/string_escape.pyo
+#usr/lib/python2.3/encodings/undefined.py
+usr/lib/python2.3/encodings/undefined.pyc
+#usr/lib/python2.3/encodings/undefined.pyo
+#usr/lib/python2.3/encodings/unicode_escape.py
+usr/lib/python2.3/encodings/unicode_escape.pyc
+#usr/lib/python2.3/encodings/unicode_escape.pyo
+#usr/lib/python2.3/encodings/unicode_internal.py
+usr/lib/python2.3/encodings/unicode_internal.pyc
+#usr/lib/python2.3/encodings/unicode_internal.pyo
+#usr/lib/python2.3/encodings/utf_16.py
+usr/lib/python2.3/encodings/utf_16.pyc
+#usr/lib/python2.3/encodings/utf_16.pyo
+#usr/lib/python2.3/encodings/utf_16_be.py
+usr/lib/python2.3/encodings/utf_16_be.pyc
+#usr/lib/python2.3/encodings/utf_16_be.pyo
+#usr/lib/python2.3/encodings/utf_16_le.py
+usr/lib/python2.3/encodings/utf_16_le.pyc
+#usr/lib/python2.3/encodings/utf_16_le.pyo
+#usr/lib/python2.3/encodings/utf_7.py
+usr/lib/python2.3/encodings/utf_7.pyc
+#usr/lib/python2.3/encodings/utf_7.pyo
+#usr/lib/python2.3/encodings/utf_8.py
+usr/lib/python2.3/encodings/utf_8.pyc
+#usr/lib/python2.3/encodings/utf_8.pyo
+#usr/lib/python2.3/encodings/uu_codec.py
+usr/lib/python2.3/encodings/uu_codec.pyc
+#usr/lib/python2.3/encodings/uu_codec.pyo
+#usr/lib/python2.3/encodings/zlib_codec.py
+usr/lib/python2.3/encodings/zlib_codec.pyc
+#usr/lib/python2.3/encodings/zlib_codec.pyo
+#usr/lib/python2.3/filecmp.py
+usr/lib/python2.3/filecmp.pyc
+#usr/lib/python2.3/filecmp.pyo
+#usr/lib/python2.3/fileinput.py
+usr/lib/python2.3/fileinput.pyc
+#usr/lib/python2.3/fileinput.pyo
+#usr/lib/python2.3/fnmatch.py
+usr/lib/python2.3/fnmatch.pyc
+#usr/lib/python2.3/fnmatch.pyo
+#usr/lib/python2.3/formatter.py
+usr/lib/python2.3/formatter.pyc
+#usr/lib/python2.3/formatter.pyo
+#usr/lib/python2.3/fpformat.py
+usr/lib/python2.3/fpformat.pyc
+#usr/lib/python2.3/fpformat.pyo
+#usr/lib/python2.3/ftplib.py
+#usr/lib/python2.3/ftplib.pyc
+#usr/lib/python2.3/ftplib.pyo
+#usr/lib/python2.3/getopt.py
+usr/lib/python2.3/getopt.pyc
+#usr/lib/python2.3/getopt.pyo
+#usr/lib/python2.3/getpass.py
+usr/lib/python2.3/getpass.pyc
+#usr/lib/python2.3/getpass.pyo
+#usr/lib/python2.3/gettext.py
+usr/lib/python2.3/gettext.pyc
+#usr/lib/python2.3/gettext.pyo
+#usr/lib/python2.3/glob.py
+usr/lib/python2.3/glob.pyc
+#usr/lib/python2.3/glob.pyo
+#usr/lib/python2.3/gopherlib.py
+#usr/lib/python2.3/gopherlib.pyc
+#usr/lib/python2.3/gopherlib.pyo
+#usr/lib/python2.3/gzip.py
+usr/lib/python2.3/gzip.pyc
+#usr/lib/python2.3/gzip.pyo
+#usr/lib/python2.3/heapq.py
+usr/lib/python2.3/heapq.pyc
+#usr/lib/python2.3/heapq.pyo
+#usr/lib/python2.3/hmac.py
+usr/lib/python2.3/hmac.pyc
+#usr/lib/python2.3/hmac.pyo
+#usr/lib/python2.3/hotshot
+#usr/lib/python2.3/hotshot/__init__.py
+#usr/lib/python2.3/hotshot/__init__.pyc
+#usr/lib/python2.3/hotshot/__init__.pyo
+#usr/lib/python2.3/hotshot/log.py
+#usr/lib/python2.3/hotshot/log.pyc
+#usr/lib/python2.3/hotshot/log.pyo
+#usr/lib/python2.3/hotshot/stats.py
+#usr/lib/python2.3/hotshot/stats.pyc
+#usr/lib/python2.3/hotshot/stats.pyo
+#usr/lib/python2.3/hotshot/stones.py
+#usr/lib/python2.3/hotshot/stones.pyc
+#usr/lib/python2.3/hotshot/stones.pyo
+#usr/lib/python2.3/htmlentitydefs.py
+#usr/lib/python2.3/htmlentitydefs.pyc
+#usr/lib/python2.3/htmlentitydefs.pyo
+#usr/lib/python2.3/htmllib.py
+#usr/lib/python2.3/htmllib.pyc
+#usr/lib/python2.3/htmllib.pyo
+#usr/lib/python2.3/httplib.py
+#usr/lib/python2.3/httplib.pyc
+#usr/lib/python2.3/httplib.pyo
+#usr/lib/python2.3/idlelib
+#usr/lib/python2.3/idlelib/AutoExpand.py
+#usr/lib/python2.3/idlelib/AutoExpand.pyc
+#usr/lib/python2.3/idlelib/AutoExpand.pyo
+#usr/lib/python2.3/idlelib/Bindings.py
+#usr/lib/python2.3/idlelib/Bindings.pyc
+#usr/lib/python2.3/idlelib/Bindings.pyo
+#usr/lib/python2.3/idlelib/CREDITS.txt
+#usr/lib/python2.3/idlelib/CallTipWindow.py
+#usr/lib/python2.3/idlelib/CallTipWindow.pyc
+#usr/lib/python2.3/idlelib/CallTipWindow.pyo
+#usr/lib/python2.3/idlelib/CallTips.py
+#usr/lib/python2.3/idlelib/CallTips.pyc
+#usr/lib/python2.3/idlelib/CallTips.pyo
+#usr/lib/python2.3/idlelib/ChangeLog
+#usr/lib/python2.3/idlelib/ClassBrowser.py
+#usr/lib/python2.3/idlelib/ClassBrowser.pyc
+#usr/lib/python2.3/idlelib/ClassBrowser.pyo
+#usr/lib/python2.3/idlelib/ColorDelegator.py
+#usr/lib/python2.3/idlelib/ColorDelegator.pyc
+#usr/lib/python2.3/idlelib/ColorDelegator.pyo
+#usr/lib/python2.3/idlelib/Debugger.py
+#usr/lib/python2.3/idlelib/Debugger.pyc
+#usr/lib/python2.3/idlelib/Debugger.pyo
+#usr/lib/python2.3/idlelib/Delegator.py
+#usr/lib/python2.3/idlelib/Delegator.pyc
+#usr/lib/python2.3/idlelib/Delegator.pyo
+#usr/lib/python2.3/idlelib/EditorWindow.py
+#usr/lib/python2.3/idlelib/EditorWindow.pyc
+#usr/lib/python2.3/idlelib/EditorWindow.pyo
+#usr/lib/python2.3/idlelib/FileList.py
+#usr/lib/python2.3/idlelib/FileList.pyc
+#usr/lib/python2.3/idlelib/FileList.pyo
+#usr/lib/python2.3/idlelib/FormatParagraph.py
+#usr/lib/python2.3/idlelib/FormatParagraph.pyc
+#usr/lib/python2.3/idlelib/FormatParagraph.pyo
+#usr/lib/python2.3/idlelib/GrepDialog.py
+#usr/lib/python2.3/idlelib/GrepDialog.pyc
+#usr/lib/python2.3/idlelib/GrepDialog.pyo
+#usr/lib/python2.3/idlelib/HISTORY.txt
+#usr/lib/python2.3/idlelib/IOBinding.py
+#usr/lib/python2.3/idlelib/IOBinding.pyc
+#usr/lib/python2.3/idlelib/IOBinding.pyo
+#usr/lib/python2.3/idlelib/Icons
+#usr/lib/python2.3/idlelib/Icons/folder.gif
+#usr/lib/python2.3/idlelib/Icons/idle.icns
+#usr/lib/python2.3/idlelib/Icons/minusnode.gif
+#usr/lib/python2.3/idlelib/Icons/openfolder.gif
+#usr/lib/python2.3/idlelib/Icons/plusnode.gif
+#usr/lib/python2.3/idlelib/Icons/python.gif
+#usr/lib/python2.3/idlelib/Icons/tk.gif
+#usr/lib/python2.3/idlelib/IdleHistory.py
+#usr/lib/python2.3/idlelib/IdleHistory.pyc
+#usr/lib/python2.3/idlelib/IdleHistory.pyo
+#usr/lib/python2.3/idlelib/MultiStatusBar.py
+#usr/lib/python2.3/idlelib/MultiStatusBar.pyc
+#usr/lib/python2.3/idlelib/MultiStatusBar.pyo
+#usr/lib/python2.3/idlelib/NEWS.txt
+#usr/lib/python2.3/idlelib/ObjectBrowser.py
+#usr/lib/python2.3/idlelib/ObjectBrowser.pyc
+#usr/lib/python2.3/idlelib/ObjectBrowser.pyo
+#usr/lib/python2.3/idlelib/OutputWindow.py
+#usr/lib/python2.3/idlelib/OutputWindow.pyc
+#usr/lib/python2.3/idlelib/OutputWindow.pyo
+#usr/lib/python2.3/idlelib/ParenMatch.py
+#usr/lib/python2.3/idlelib/ParenMatch.pyc
+#usr/lib/python2.3/idlelib/ParenMatch.pyo
+#usr/lib/python2.3/idlelib/PathBrowser.py
+#usr/lib/python2.3/idlelib/PathBrowser.pyc
+#usr/lib/python2.3/idlelib/PathBrowser.pyo
+#usr/lib/python2.3/idlelib/Percolator.py
+#usr/lib/python2.3/idlelib/Percolator.pyc
+#usr/lib/python2.3/idlelib/Percolator.pyo
+#usr/lib/python2.3/idlelib/PyParse.py
+#usr/lib/python2.3/idlelib/PyParse.pyc
+#usr/lib/python2.3/idlelib/PyParse.pyo
+#usr/lib/python2.3/idlelib/PyShell.py
+#usr/lib/python2.3/idlelib/PyShell.pyc
+#usr/lib/python2.3/idlelib/PyShell.pyo
+#usr/lib/python2.3/idlelib/README.txt
+#usr/lib/python2.3/idlelib/RemoteDebugger.py
+#usr/lib/python2.3/idlelib/RemoteDebugger.pyc
+#usr/lib/python2.3/idlelib/RemoteDebugger.pyo
+#usr/lib/python2.3/idlelib/RemoteObjectBrowser.py
+#usr/lib/python2.3/idlelib/RemoteObjectBrowser.pyc
+#usr/lib/python2.3/idlelib/RemoteObjectBrowser.pyo
+#usr/lib/python2.3/idlelib/ReplaceDialog.py
+#usr/lib/python2.3/idlelib/ReplaceDialog.pyc
+#usr/lib/python2.3/idlelib/ReplaceDialog.pyo
+#usr/lib/python2.3/idlelib/ScriptBinding.py
+#usr/lib/python2.3/idlelib/ScriptBinding.pyc
+#usr/lib/python2.3/idlelib/ScriptBinding.pyo
+#usr/lib/python2.3/idlelib/ScrolledList.py
+#usr/lib/python2.3/idlelib/ScrolledList.pyc
+#usr/lib/python2.3/idlelib/ScrolledList.pyo
+#usr/lib/python2.3/idlelib/SearchDialog.py
+#usr/lib/python2.3/idlelib/SearchDialog.pyc
+#usr/lib/python2.3/idlelib/SearchDialog.pyo
+#usr/lib/python2.3/idlelib/SearchDialogBase.py
+#usr/lib/python2.3/idlelib/SearchDialogBase.pyc
+#usr/lib/python2.3/idlelib/SearchDialogBase.pyo
+#usr/lib/python2.3/idlelib/SearchEngine.py
+#usr/lib/python2.3/idlelib/SearchEngine.pyc
+#usr/lib/python2.3/idlelib/SearchEngine.pyo
+#usr/lib/python2.3/idlelib/StackViewer.py
+#usr/lib/python2.3/idlelib/StackViewer.pyc
+#usr/lib/python2.3/idlelib/StackViewer.pyo
+#usr/lib/python2.3/idlelib/TODO.txt
+#usr/lib/python2.3/idlelib/ToolTip.py
+#usr/lib/python2.3/idlelib/ToolTip.pyc
+#usr/lib/python2.3/idlelib/ToolTip.pyo
+#usr/lib/python2.3/idlelib/TreeWidget.py
+#usr/lib/python2.3/idlelib/TreeWidget.pyc
+#usr/lib/python2.3/idlelib/TreeWidget.pyo
+#usr/lib/python2.3/idlelib/UndoDelegator.py
+#usr/lib/python2.3/idlelib/UndoDelegator.pyc
+#usr/lib/python2.3/idlelib/UndoDelegator.pyo
+#usr/lib/python2.3/idlelib/WidgetRedirector.py
+#usr/lib/python2.3/idlelib/WidgetRedirector.pyc
+#usr/lib/python2.3/idlelib/WidgetRedirector.pyo
+#usr/lib/python2.3/idlelib/WindowList.py
+#usr/lib/python2.3/idlelib/WindowList.pyc
+#usr/lib/python2.3/idlelib/WindowList.pyo
+#usr/lib/python2.3/idlelib/ZoomHeight.py
+#usr/lib/python2.3/idlelib/ZoomHeight.pyc
+#usr/lib/python2.3/idlelib/ZoomHeight.pyo
+#usr/lib/python2.3/idlelib/__init__.py
+#usr/lib/python2.3/idlelib/__init__.pyc
+#usr/lib/python2.3/idlelib/__init__.pyo
+#usr/lib/python2.3/idlelib/aboutDialog.py
+#usr/lib/python2.3/idlelib/aboutDialog.pyc
+#usr/lib/python2.3/idlelib/aboutDialog.pyo
+#usr/lib/python2.3/idlelib/buildapp.py
+#usr/lib/python2.3/idlelib/buildapp.pyc
+#usr/lib/python2.3/idlelib/buildapp.pyo
+#usr/lib/python2.3/idlelib/config-extensions.def
+#usr/lib/python2.3/idlelib/config-highlight.def
+#usr/lib/python2.3/idlelib/config-keys.def
+#usr/lib/python2.3/idlelib/config-main.def
+#usr/lib/python2.3/idlelib/configDialog.py
+#usr/lib/python2.3/idlelib/configDialog.pyc
+#usr/lib/python2.3/idlelib/configDialog.pyo
+#usr/lib/python2.3/idlelib/configHandler.py
+#usr/lib/python2.3/idlelib/configHandler.pyc
+#usr/lib/python2.3/idlelib/configHandler.pyo
+#usr/lib/python2.3/idlelib/configHelpSourceEdit.py
+#usr/lib/python2.3/idlelib/configHelpSourceEdit.pyc
+#usr/lib/python2.3/idlelib/configHelpSourceEdit.pyo
+#usr/lib/python2.3/idlelib/configSectionNameDialog.py
+#usr/lib/python2.3/idlelib/configSectionNameDialog.pyc
+#usr/lib/python2.3/idlelib/configSectionNameDialog.pyo
+#usr/lib/python2.3/idlelib/dynOptionMenuWidget.py
+#usr/lib/python2.3/idlelib/dynOptionMenuWidget.pyc
+#usr/lib/python2.3/idlelib/dynOptionMenuWidget.pyo
+#usr/lib/python2.3/idlelib/extend.txt
+#usr/lib/python2.3/idlelib/help.txt
+#usr/lib/python2.3/idlelib/idle
+#usr/lib/python2.3/idlelib/idle.bat
+#usr/lib/python2.3/idlelib/idle.py
+#usr/lib/python2.3/idlelib/idle.pyc
+#usr/lib/python2.3/idlelib/idle.pyo
+#usr/lib/python2.3/idlelib/idle.pyw
+#usr/lib/python2.3/idlelib/idlever.py
+#usr/lib/python2.3/idlelib/idlever.pyc
+#usr/lib/python2.3/idlelib/idlever.pyo
+#usr/lib/python2.3/idlelib/keybindingDialog.py
+#usr/lib/python2.3/idlelib/keybindingDialog.pyc
+#usr/lib/python2.3/idlelib/keybindingDialog.pyo
+#usr/lib/python2.3/idlelib/rpc.py
+#usr/lib/python2.3/idlelib/rpc.pyc
+#usr/lib/python2.3/idlelib/rpc.pyo
+#usr/lib/python2.3/idlelib/run.py
+#usr/lib/python2.3/idlelib/run.pyc
+#usr/lib/python2.3/idlelib/run.pyo
+#usr/lib/python2.3/idlelib/tabpage.py
+#usr/lib/python2.3/idlelib/tabpage.pyc
+#usr/lib/python2.3/idlelib/tabpage.pyo
+#usr/lib/python2.3/idlelib/testcode.py
+#usr/lib/python2.3/idlelib/testcode.pyc
+#usr/lib/python2.3/idlelib/testcode.pyo
+#usr/lib/python2.3/idlelib/textView.py
+#usr/lib/python2.3/idlelib/textView.pyc
+#usr/lib/python2.3/idlelib/textView.pyo
+#usr/lib/python2.3/ihooks.py
+usr/lib/python2.3/ihooks.pyc
+#usr/lib/python2.3/ihooks.pyo
+#usr/lib/python2.3/imaplib.py
+#usr/lib/python2.3/imaplib.pyc
+#usr/lib/python2.3/imaplib.pyo
+#usr/lib/python2.3/imghdr.py
+usr/lib/python2.3/imghdr.pyc
+#usr/lib/python2.3/imghdr.pyo
+#usr/lib/python2.3/imputil.py
+usr/lib/python2.3/imputil.pyc
+#usr/lib/python2.3/imputil.pyo
+#usr/lib/python2.3/inspect.py
+usr/lib/python2.3/inspect.pyc
+#usr/lib/python2.3/inspect.pyo
+#usr/lib/python2.3/keyword.py
+usr/lib/python2.3/keyword.pyc
+#usr/lib/python2.3/keyword.pyo
+#usr/lib/python2.3/lib-dynload
+usr/lib/python2.3/lib-dynload/_csv.so
+usr/lib/python2.3/lib-dynload/_curses.so
+usr/lib/python2.3/lib-dynload/_curses_panel.so
+#usr/lib/python2.3/lib-dynload/_hotshot.so
+usr/lib/python2.3/lib-dynload/_locale.so
+usr/lib/python2.3/lib-dynload/_random.so
+usr/lib/python2.3/lib-dynload/_socket.so
+usr/lib/python2.3/lib-dynload/_ssl.so
+#usr/lib/python2.3/lib-dynload/_testcapi.so
+usr/lib/python2.3/lib-dynload/_weakref.so
+usr/lib/python2.3/lib-dynload/array.so
+#usr/lib/python2.3/lib-dynload/audioop.so
+usr/lib/python2.3/lib-dynload/binascii.so
+usr/lib/python2.3/lib-dynload/bz2.so
+usr/lib/python2.3/lib-dynload/cPickle.so
+usr/lib/python2.3/lib-dynload/cStringIO.so
+usr/lib/python2.3/lib-dynload/cmath.so
+usr/lib/python2.3/lib-dynload/crypt.so
+usr/lib/python2.3/lib-dynload/datetime.so
+usr/lib/python2.3/lib-dynload/fcntl.so
+usr/lib/python2.3/lib-dynload/gdbm.so
+usr/lib/python2.3/lib-dynload/grp.so
+usr/lib/python2.3/lib-dynload/itertools.so
+#usr/lib/python2.3/lib-dynload/linuxaudiodev.so
+usr/lib/python2.3/lib-dynload/math.so
+usr/lib/python2.3/lib-dynload/md5.so
+usr/lib/python2.3/lib-dynload/mmap.so
+usr/lib/python2.3/lib-dynload/mpz.so
+#usr/lib/python2.3/lib-dynload/nis.so
+usr/lib/python2.3/lib-dynload/operator.so
+#usr/lib/python2.3/lib-dynload/ossaudiodev.so
+usr/lib/python2.3/lib-dynload/parser.so
+usr/lib/python2.3/lib-dynload/pcre.so
+usr/lib/python2.3/lib-dynload/pwd.so
+usr/lib/python2.3/lib-dynload/pyexpat.so
+usr/lib/python2.3/lib-dynload/regex.so
+usr/lib/python2.3/lib-dynload/resource.so
+usr/lib/python2.3/lib-dynload/rotor.so
+usr/lib/python2.3/lib-dynload/select.so
+usr/lib/python2.3/lib-dynload/sha.so
+usr/lib/python2.3/lib-dynload/strop.so
+usr/lib/python2.3/lib-dynload/struct.so
+usr/lib/python2.3/lib-dynload/syslog.so
+usr/lib/python2.3/lib-dynload/termios.so
+usr/lib/python2.3/lib-dynload/time.so
+usr/lib/python2.3/lib-dynload/timing.so
+usr/lib/python2.3/lib-dynload/unicodedata.so
+usr/lib/python2.3/lib-dynload/xreadlines.so
+usr/lib/python2.3/lib-dynload/zlib.so
+#usr/lib/python2.3/lib-old
+#usr/lib/python2.3/lib-old/Para.py
+#usr/lib/python2.3/lib-old/Para.pyc
+#usr/lib/python2.3/lib-old/Para.pyo
+#usr/lib/python2.3/lib-old/addpack.py
+#usr/lib/python2.3/lib-old/addpack.pyc
+#usr/lib/python2.3/lib-old/addpack.pyo
+#usr/lib/python2.3/lib-old/cmp.py
+#usr/lib/python2.3/lib-old/cmp.pyc
+#usr/lib/python2.3/lib-old/cmp.pyo
+#usr/lib/python2.3/lib-old/cmpcache.py
+#usr/lib/python2.3/lib-old/cmpcache.pyc
+#usr/lib/python2.3/lib-old/cmpcache.pyo
+#usr/lib/python2.3/lib-old/codehack.py
+#usr/lib/python2.3/lib-old/codehack.pyc
+#usr/lib/python2.3/lib-old/codehack.pyo
+#usr/lib/python2.3/lib-old/dircmp.py
+#usr/lib/python2.3/lib-old/dircmp.pyc
+#usr/lib/python2.3/lib-old/dircmp.pyo
+#usr/lib/python2.3/lib-old/dump.py
+#usr/lib/python2.3/lib-old/dump.pyc
+#usr/lib/python2.3/lib-old/dump.pyo
+#usr/lib/python2.3/lib-old/find.py
+#usr/lib/python2.3/lib-old/find.pyc
+#usr/lib/python2.3/lib-old/find.pyo
+#usr/lib/python2.3/lib-old/fmt.py
+#usr/lib/python2.3/lib-old/fmt.pyc
+#usr/lib/python2.3/lib-old/fmt.pyo
+#usr/lib/python2.3/lib-old/grep.py
+#usr/lib/python2.3/lib-old/grep.pyc
+#usr/lib/python2.3/lib-old/grep.pyo
+#usr/lib/python2.3/lib-old/lockfile.py
+#usr/lib/python2.3/lib-old/lockfile.pyc
+#usr/lib/python2.3/lib-old/lockfile.pyo
+#usr/lib/python2.3/lib-old/newdir.py
+#usr/lib/python2.3/lib-old/newdir.pyc
+#usr/lib/python2.3/lib-old/newdir.pyo
+#usr/lib/python2.3/lib-old/ni.py
+#usr/lib/python2.3/lib-old/ni.pyc
+#usr/lib/python2.3/lib-old/ni.pyo
+#usr/lib/python2.3/lib-old/packmail.py
+#usr/lib/python2.3/lib-old/packmail.pyc
+#usr/lib/python2.3/lib-old/packmail.pyo
+#usr/lib/python2.3/lib-old/poly.py
+#usr/lib/python2.3/lib-old/poly.pyc
+#usr/lib/python2.3/lib-old/poly.pyo
+#usr/lib/python2.3/lib-old/rand.py
+#usr/lib/python2.3/lib-old/rand.pyc
+#usr/lib/python2.3/lib-old/rand.pyo
+#usr/lib/python2.3/lib-old/tb.py
+#usr/lib/python2.3/lib-old/tb.pyc
+#usr/lib/python2.3/lib-old/tb.pyo
+#usr/lib/python2.3/lib-old/util.py
+#usr/lib/python2.3/lib-old/util.pyc
+#usr/lib/python2.3/lib-old/util.pyo
+#usr/lib/python2.3/lib-old/whatsound.py
+#usr/lib/python2.3/lib-old/whatsound.pyc
+#usr/lib/python2.3/lib-old/whatsound.pyo
+#usr/lib/python2.3/lib-old/zmod.py
+#usr/lib/python2.3/lib-old/zmod.pyc
+#usr/lib/python2.3/lib-old/zmod.pyo
+#usr/lib/python2.3/lib-tk
+#usr/lib/python2.3/lib-tk/Canvas.py
+#usr/lib/python2.3/lib-tk/Canvas.pyc
+#usr/lib/python2.3/lib-tk/Canvas.pyo
+#usr/lib/python2.3/lib-tk/Dialog.py
+#usr/lib/python2.3/lib-tk/Dialog.pyc
+#usr/lib/python2.3/lib-tk/Dialog.pyo
+#usr/lib/python2.3/lib-tk/FileDialog.py
+#usr/lib/python2.3/lib-tk/FileDialog.pyc
+#usr/lib/python2.3/lib-tk/FileDialog.pyo
+#usr/lib/python2.3/lib-tk/FixTk.py
+#usr/lib/python2.3/lib-tk/FixTk.pyc
+#usr/lib/python2.3/lib-tk/FixTk.pyo
+#usr/lib/python2.3/lib-tk/ScrolledText.py
+#usr/lib/python2.3/lib-tk/ScrolledText.pyc
+#usr/lib/python2.3/lib-tk/ScrolledText.pyo
+#usr/lib/python2.3/lib-tk/SimpleDialog.py
+#usr/lib/python2.3/lib-tk/SimpleDialog.pyc
+#usr/lib/python2.3/lib-tk/SimpleDialog.pyo
+#usr/lib/python2.3/lib-tk/Tix.py
+#usr/lib/python2.3/lib-tk/Tix.pyc
+#usr/lib/python2.3/lib-tk/Tix.pyo
+#usr/lib/python2.3/lib-tk/Tkconstants.py
+#usr/lib/python2.3/lib-tk/Tkconstants.pyc
+#usr/lib/python2.3/lib-tk/Tkconstants.pyo
+#usr/lib/python2.3/lib-tk/Tkdnd.py
+#usr/lib/python2.3/lib-tk/Tkdnd.pyc
+#usr/lib/python2.3/lib-tk/Tkdnd.pyo
+#usr/lib/python2.3/lib-tk/Tkinter.py
+#usr/lib/python2.3/lib-tk/Tkinter.pyc
+#usr/lib/python2.3/lib-tk/Tkinter.pyo
+#usr/lib/python2.3/lib-tk/tkColorChooser.py
+#usr/lib/python2.3/lib-tk/tkColorChooser.pyc
+#usr/lib/python2.3/lib-tk/tkColorChooser.pyo
+#usr/lib/python2.3/lib-tk/tkCommonDialog.py
+#usr/lib/python2.3/lib-tk/tkCommonDialog.pyc
+#usr/lib/python2.3/lib-tk/tkCommonDialog.pyo
+#usr/lib/python2.3/lib-tk/tkFileDialog.py
+#usr/lib/python2.3/lib-tk/tkFileDialog.pyc
+#usr/lib/python2.3/lib-tk/tkFileDialog.pyo
+#usr/lib/python2.3/lib-tk/tkFont.py
+#usr/lib/python2.3/lib-tk/tkFont.pyc
+#usr/lib/python2.3/lib-tk/tkFont.pyo
+#usr/lib/python2.3/lib-tk/tkMessageBox.py
+#usr/lib/python2.3/lib-tk/tkMessageBox.pyc
+#usr/lib/python2.3/lib-tk/tkMessageBox.pyo
+#usr/lib/python2.3/lib-tk/tkSimpleDialog.py
+#usr/lib/python2.3/lib-tk/tkSimpleDialog.pyc
+#usr/lib/python2.3/lib-tk/tkSimpleDialog.pyo
+#usr/lib/python2.3/lib-tk/turtle.py
+#usr/lib/python2.3/lib-tk/turtle.pyc
+#usr/lib/python2.3/lib-tk/turtle.pyo
+#usr/lib/python2.3/linecache.py
+usr/lib/python2.3/linecache.pyc
+#usr/lib/python2.3/linecache.pyo
+#usr/lib/python2.3/locale.py
+usr/lib/python2.3/locale.pyc
+#usr/lib/python2.3/locale.pyo
+#usr/lib/python2.3/logging
+#usr/lib/python2.3/logging/__init__.py
+usr/lib/python2.3/logging/__init__.pyc
+#usr/lib/python2.3/logging/__init__.pyo
+#usr/lib/python2.3/logging/config.py
+usr/lib/python2.3/logging/config.pyc
+#usr/lib/python2.3/logging/config.pyo
+#usr/lib/python2.3/logging/handlers.py
+usr/lib/python2.3/logging/handlers.pyc
+#usr/lib/python2.3/logging/handlers.pyo
+#usr/lib/python2.3/macpath.py
+#usr/lib/python2.3/macpath.pyc
+#usr/lib/python2.3/macpath.pyo
+#usr/lib/python2.3/macurl2path.py
+#usr/lib/python2.3/macurl2path.pyc
+#usr/lib/python2.3/macurl2path.pyo
+#usr/lib/python2.3/mailbox.py
+#usr/lib/python2.3/mailbox.pyc
+#usr/lib/python2.3/mailbox.pyo
+#usr/lib/python2.3/mailcap.py
+#usr/lib/python2.3/mailcap.pyc
+#usr/lib/python2.3/mailcap.pyo
+#usr/lib/python2.3/markupbase.py
+#usr/lib/python2.3/markupbase.pyc
+#usr/lib/python2.3/markupbase.pyo
+#usr/lib/python2.3/mhlib.py
+#usr/lib/python2.3/mhlib.pyc
+#usr/lib/python2.3/mhlib.pyo
+#usr/lib/python2.3/mimetools.py
+usr/lib/python2.3/mimetools.pyc
+#usr/lib/python2.3/mimetools.pyo
+#usr/lib/python2.3/mimetypes.py
+usr/lib/python2.3/mimetypes.pyc
+#usr/lib/python2.3/mimetypes.pyo
+#usr/lib/python2.3/mimify.py
+usr/lib/python2.3/mimify.pyc
+#usr/lib/python2.3/mimify.pyo
+#usr/lib/python2.3/modulefinder.py
+usr/lib/python2.3/modulefinder.pyc
+#usr/lib/python2.3/modulefinder.pyo
+#usr/lib/python2.3/multifile.py
+usr/lib/python2.3/multifile.pyc
+#usr/lib/python2.3/multifile.pyo
+#usr/lib/python2.3/mutex.py
+usr/lib/python2.3/mutex.pyc
+#usr/lib/python2.3/mutex.pyo
+#usr/lib/python2.3/netrc.py
+usr/lib/python2.3/netrc.pyc
+#usr/lib/python2.3/netrc.pyo
+#usr/lib/python2.3/new.py
+usr/lib/python2.3/new.pyc
+#usr/lib/python2.3/new.pyo
+#usr/lib/python2.3/nntplib.py
+#usr/lib/python2.3/nntplib.pyc
+#usr/lib/python2.3/nntplib.pyo
+#usr/lib/python2.3/ntpath.py
+usr/lib/python2.3/ntpath.pyc
+#usr/lib/python2.3/ntpath.pyo
+#usr/lib/python2.3/nturl2path.py
+usr/lib/python2.3/nturl2path.pyc
+#usr/lib/python2.3/nturl2path.pyo
+#usr/lib/python2.3/opcode.py
+usr/lib/python2.3/opcode.pyc
+#usr/lib/python2.3/opcode.pyo
+#usr/lib/python2.3/optparse.py
+usr/lib/python2.3/optparse.pyc
+#usr/lib/python2.3/optparse.pyo
+#usr/lib/python2.3/os.py
+usr/lib/python2.3/os.pyc
+#usr/lib/python2.3/os.pyo
+#usr/lib/python2.3/os2emxpath.py
+usr/lib/python2.3/os2emxpath.pyc
+#usr/lib/python2.3/os2emxpath.pyo
+#usr/lib/python2.3/pdb.doc
+#usr/lib/python2.3/pdb.py
+usr/lib/python2.3/pdb.pyc
+#usr/lib/python2.3/pdb.pyo
+#usr/lib/python2.3/pickle.py
+usr/lib/python2.3/pickle.pyc
+#usr/lib/python2.3/pickle.pyo
+#usr/lib/python2.3/pickletools.py
+usr/lib/python2.3/pickletools.pyc
+#usr/lib/python2.3/pickletools.pyo
+#usr/lib/python2.3/pipes.py
+usr/lib/python2.3/pipes.pyc
+#usr/lib/python2.3/pipes.pyo
+#usr/lib/python2.3/pkgutil.py
+usr/lib/python2.3/pkgutil.pyc
+#usr/lib/python2.3/pkgutil.pyo
+#usr/lib/python2.3/plat-linux2
+#usr/lib/python2.3/plat-linux2/CDROM.py
+usr/lib/python2.3/plat-linux2/CDROM.pyc
+#usr/lib/python2.3/plat-linux2/CDROM.pyo
+#usr/lib/python2.3/plat-linux2/DLFCN.py
+usr/lib/python2.3/plat-linux2/DLFCN.pyc
+#usr/lib/python2.3/plat-linux2/DLFCN.pyo
+#usr/lib/python2.3/plat-linux2/IN.py
+usr/lib/python2.3/plat-linux2/IN.pyc
+#usr/lib/python2.3/plat-linux2/IN.pyo
+#usr/lib/python2.3/plat-linux2/TYPES.py
+usr/lib/python2.3/plat-linux2/TYPES.pyc
+#usr/lib/python2.3/plat-linux2/TYPES.pyo
+#usr/lib/python2.3/plat-linux2/regen
+#usr/lib/python2.3/platform.py
+usr/lib/python2.3/platform.pyc
+#usr/lib/python2.3/platform.pyo
+#usr/lib/python2.3/popen2.py
+usr/lib/python2.3/popen2.pyc
+#usr/lib/python2.3/popen2.pyo
+#usr/lib/python2.3/poplib.py
+#usr/lib/python2.3/poplib.pyc
+#usr/lib/python2.3/poplib.pyo
+#usr/lib/python2.3/posixfile.py
+usr/lib/python2.3/posixfile.pyc
+#usr/lib/python2.3/posixfile.pyo
+#usr/lib/python2.3/posixpath.py
+usr/lib/python2.3/posixpath.pyc
+#usr/lib/python2.3/posixpath.pyo
+#usr/lib/python2.3/pprint.py
+usr/lib/python2.3/pprint.pyc
+#usr/lib/python2.3/pprint.pyo
+#usr/lib/python2.3/pre.py
+usr/lib/python2.3/pre.pyc
+#usr/lib/python2.3/pre.pyo
+#usr/lib/python2.3/profile.doc
+#usr/lib/python2.3/profile.py
+#usr/lib/python2.3/profile.pyc
+#usr/lib/python2.3/profile.pyo
+#usr/lib/python2.3/pstats.py
+usr/lib/python2.3/pstats.pyc
+#usr/lib/python2.3/pstats.pyo
+#usr/lib/python2.3/pty.py
+usr/lib/python2.3/pty.pyc
+#usr/lib/python2.3/pty.pyo
+#usr/lib/python2.3/py_compile.py
+usr/lib/python2.3/py_compile.pyc
+#usr/lib/python2.3/py_compile.pyo
+#usr/lib/python2.3/pyclbr.py
+usr/lib/python2.3/pyclbr.pyc
+#usr/lib/python2.3/pyclbr.pyo
+#usr/lib/python2.3/pydoc.py
+usr/lib/python2.3/pydoc.pyc
+#usr/lib/python2.3/pydoc.pyo
+#usr/lib/python2.3/quopri.py
+#usr/lib/python2.3/quopri.pyc
+#usr/lib/python2.3/quopri.pyo
+#usr/lib/python2.3/random.py
+usr/lib/python2.3/random.pyc
+#usr/lib/python2.3/random.pyo
+#usr/lib/python2.3/re.py
+usr/lib/python2.3/re.pyc
+#usr/lib/python2.3/re.pyo
+#usr/lib/python2.3/reconvert.py
+usr/lib/python2.3/reconvert.pyc
+#usr/lib/python2.3/reconvert.pyo
+#usr/lib/python2.3/regex_syntax.py
+usr/lib/python2.3/regex_syntax.pyc
+#usr/lib/python2.3/regex_syntax.pyo
+#usr/lib/python2.3/regsub.py
+usr/lib/python2.3/regsub.pyc
+#usr/lib/python2.3/regsub.pyo
+#usr/lib/python2.3/repr.py
+usr/lib/python2.3/repr.pyc
+#usr/lib/python2.3/repr.pyo
+#usr/lib/python2.3/rexec.py
+usr/lib/python2.3/rexec.pyc
+#usr/lib/python2.3/rexec.pyo
+#usr/lib/python2.3/rfc822.py
+usr/lib/python2.3/rfc822.pyc
+#usr/lib/python2.3/rfc822.pyo
+#usr/lib/python2.3/rlcompleter.py
+usr/lib/python2.3/rlcompleter.pyc
+#usr/lib/python2.3/rlcompleter.pyo
+#usr/lib/python2.3/robotparser.py
+#usr/lib/python2.3/robotparser.pyc
+#usr/lib/python2.3/robotparser.pyo
+#usr/lib/python2.3/sched.py
+usr/lib/python2.3/sched.pyc
+#usr/lib/python2.3/sched.pyo
+#usr/lib/python2.3/sets.py
+usr/lib/python2.3/sets.pyc
+#usr/lib/python2.3/sets.pyo
+#usr/lib/python2.3/sgmllib.py
+usr/lib/python2.3/sgmllib.pyc
+#usr/lib/python2.3/sgmllib.pyo
+#usr/lib/python2.3/shelve.py
+usr/lib/python2.3/shelve.pyc
+#usr/lib/python2.3/shelve.pyo
+#usr/lib/python2.3/shlex.py
+usr/lib/python2.3/shlex.pyc
+#usr/lib/python2.3/shlex.pyo
+#usr/lib/python2.3/shutil.py
+usr/lib/python2.3/shutil.pyc
+#usr/lib/python2.3/shutil.pyo
+#usr/lib/python2.3/site-packages
+#usr/lib/python2.3/site-packages/README
+#usr/lib/python2.3/site.py
+usr/lib/python2.3/site.pyc
+#usr/lib/python2.3/site.pyo
+#usr/lib/python2.3/smtpd.py
+#usr/lib/python2.3/smtpd.pyc
+#usr/lib/python2.3/smtpd.pyo
+#usr/lib/python2.3/smtplib.py
+#usr/lib/python2.3/smtplib.pyc
+#usr/lib/python2.3/smtplib.pyo
+#usr/lib/python2.3/sndhdr.py
+#usr/lib/python2.3/sndhdr.pyc
+#usr/lib/python2.3/sndhdr.pyo
+#usr/lib/python2.3/socket.py
+usr/lib/python2.3/socket.pyc
+#usr/lib/python2.3/socket.pyo
+#usr/lib/python2.3/sre.py
+usr/lib/python2.3/sre.pyc
+#usr/lib/python2.3/sre.pyo
+#usr/lib/python2.3/sre_compile.py
+usr/lib/python2.3/sre_compile.pyc
+#usr/lib/python2.3/sre_compile.pyo
+#usr/lib/python2.3/sre_constants.py
+usr/lib/python2.3/sre_constants.pyc
+#usr/lib/python2.3/sre_constants.pyo
+#usr/lib/python2.3/sre_parse.py
+usr/lib/python2.3/sre_parse.pyc
+#usr/lib/python2.3/sre_parse.pyo
+#usr/lib/python2.3/stat.py
+usr/lib/python2.3/stat.pyc
+#usr/lib/python2.3/stat.pyo
+#usr/lib/python2.3/statcache.py
+usr/lib/python2.3/statcache.pyc
+#usr/lib/python2.3/statcache.pyo
+#usr/lib/python2.3/statvfs.py
+usr/lib/python2.3/statvfs.pyc
+#usr/lib/python2.3/statvfs.pyo
+#usr/lib/python2.3/string.py
+usr/lib/python2.3/string.pyc
+#usr/lib/python2.3/string.pyo
+#usr/lib/python2.3/stringold.py
+usr/lib/python2.3/stringold.pyc
+#usr/lib/python2.3/stringold.pyo
+#usr/lib/python2.3/stringprep.py
+usr/lib/python2.3/stringprep.pyc
+#usr/lib/python2.3/stringprep.pyo
+#usr/lib/python2.3/sunau.py
+#usr/lib/python2.3/sunau.pyc
+#usr/lib/python2.3/sunau.pyo
+#usr/lib/python2.3/sunaudio.py
+#usr/lib/python2.3/sunaudio.pyc
+#usr/lib/python2.3/sunaudio.pyo
+#usr/lib/python2.3/symbol.py
+usr/lib/python2.3/symbol.pyc
+#usr/lib/python2.3/symbol.pyo
+#usr/lib/python2.3/symtable.py
+usr/lib/python2.3/symtable.pyc
+#usr/lib/python2.3/symtable.pyo
+#usr/lib/python2.3/tabnanny.py
+usr/lib/python2.3/tabnanny.pyc
+#usr/lib/python2.3/tabnanny.pyo
+#usr/lib/python2.3/tarfile.py
+usr/lib/python2.3/tarfile.pyc
+#usr/lib/python2.3/tarfile.pyo
+#usr/lib/python2.3/telnetlib.py
+#usr/lib/python2.3/telnetlib.pyc
+#usr/lib/python2.3/telnetlib.pyo
+#usr/lib/python2.3/tempfile.py
+usr/lib/python2.3/tempfile.pyc
+#usr/lib/python2.3/tempfile.pyo
+#usr/lib/python2.3/test
+#usr/lib/python2.3/test/185test.db
+#usr/lib/python2.3/test/README
+#usr/lib/python2.3/test/__init__.py
+#usr/lib/python2.3/test/__init__.pyc
+#usr/lib/python2.3/test/__init__.pyo
+#usr/lib/python2.3/test/audiotest.au
+#usr/lib/python2.3/test/autotest.py
+#usr/lib/python2.3/test/autotest.pyc
+#usr/lib/python2.3/test/autotest.pyo
+#usr/lib/python2.3/test/badsyntax_future3.py
+#usr/lib/python2.3/test/badsyntax_future4.py
+#usr/lib/python2.3/test/badsyntax_future5.py
+#usr/lib/python2.3/test/badsyntax_future6.py
+#usr/lib/python2.3/test/badsyntax_future7.py
+#usr/lib/python2.3/test/badsyntax_nocaret.py
+#usr/lib/python2.3/test/double_const.py
+#usr/lib/python2.3/test/double_const.pyc
+#usr/lib/python2.3/test/double_const.pyo
+#usr/lib/python2.3/test/greyrgb.uue
+#usr/lib/python2.3/test/output
+#usr/lib/python2.3/test/output/test_MimeWriter
+#usr/lib/python2.3/test/output/test_asynchat
+#usr/lib/python2.3/test/output/test_augassign
+#usr/lib/python2.3/test/output/test_binascii
+#usr/lib/python2.3/test/output/test_cgi
+#usr/lib/python2.3/test/output/test_class
+#usr/lib/python2.3/test/output/test_coercion
+#usr/lib/python2.3/test/output/test_compare
+#usr/lib/python2.3/test/output/test_cookie
+#usr/lib/python2.3/test/output/test_exceptions
+#usr/lib/python2.3/test/output/test_extcall
+#usr/lib/python2.3/test/output/test_frozen
+#usr/lib/python2.3/test/output/test_future
+#usr/lib/python2.3/test/output/test_global
+#usr/lib/python2.3/test/output/test_grammar
+#usr/lib/python2.3/test/output/test_httplib
+#usr/lib/python2.3/test/output/test_linuxaudiodev
+#usr/lib/python2.3/test/output/test_logging
+#usr/lib/python2.3/test/output/test_longexp
+#usr/lib/python2.3/test/output/test_math
+#usr/lib/python2.3/test/output/test_md5
+#usr/lib/python2.3/test/output/test_mmap
+#usr/lib/python2.3/test/output/test_new
+#usr/lib/python2.3/test/output/test_nis
+#usr/lib/python2.3/test/output/test_opcodes
+#usr/lib/python2.3/test/output/test_openpty
+#usr/lib/python2.3/test/output/test_operations
+#usr/lib/python2.3/test/output/test_ossaudiodev
+#usr/lib/python2.3/test/output/test_pep277
+#usr/lib/python2.3/test/output/test_pkg
+#usr/lib/python2.3/test/output/test_poll
+#usr/lib/python2.3/test/output/test_popen
+#usr/lib/python2.3/test/output/test_popen2
+#usr/lib/python2.3/test/output/test_profile
+#usr/lib/python2.3/test/output/test_pty
+#usr/lib/python2.3/test/output/test_pyexpat
+#usr/lib/python2.3/test/output/test_regex
+#usr/lib/python2.3/test/output/test_resource
+#usr/lib/python2.3/test/output/test_rgbimg
+#usr/lib/python2.3/test/output/test_rotor
+#usr/lib/python2.3/test/output/test_scope
+#usr/lib/python2.3/test/output/test_signal
+#usr/lib/python2.3/test/output/test_thread
+#usr/lib/python2.3/test/output/test_threadedtempfile
+#usr/lib/python2.3/test/output/test_tokenize
+#usr/lib/python2.3/test/output/test_types
+#usr/lib/python2.3/test/output/test_unicode_file
+#usr/lib/python2.3/test/output/test_winreg
+#usr/lib/python2.3/test/output/test_xreadline
+#usr/lib/python2.3/test/output/xmltests
+#usr/lib/python2.3/test/pickletester.py
+#usr/lib/python2.3/test/pickletester.pyc
+#usr/lib/python2.3/test/pickletester.pyo
+#usr/lib/python2.3/test/pydocfodder.py
+#usr/lib/python2.3/test/pydocfodder.pyc
+#usr/lib/python2.3/test/pydocfodder.pyo
+#usr/lib/python2.3/test/pystone.py
+#usr/lib/python2.3/test/pystone.pyc
+#usr/lib/python2.3/test/pystone.pyo
+#usr/lib/python2.3/test/re_tests.py
+#usr/lib/python2.3/test/re_tests.pyc
+#usr/lib/python2.3/test/re_tests.pyo
+#usr/lib/python2.3/test/regex_tests.py
+#usr/lib/python2.3/test/regex_tests.pyc
+#usr/lib/python2.3/test/regex_tests.pyo
+#usr/lib/python2.3/test/regrtest.py
+#usr/lib/python2.3/test/regrtest.pyc
+#usr/lib/python2.3/test/regrtest.pyo
+#usr/lib/python2.3/test/reperf.py
+#usr/lib/python2.3/test/reperf.pyc
+#usr/lib/python2.3/test/reperf.pyo
+#usr/lib/python2.3/test/sortperf.py
+#usr/lib/python2.3/test/sortperf.pyc
+#usr/lib/python2.3/test/sortperf.pyo
+#usr/lib/python2.3/test/string_tests.py
+#usr/lib/python2.3/test/string_tests.pyc
+#usr/lib/python2.3/test/string_tests.pyo
+#usr/lib/python2.3/test/test.xml
+#usr/lib/python2.3/test/test.xml.out
+#usr/lib/python2.3/test/test_MimeWriter.py
+#usr/lib/python2.3/test/test_MimeWriter.pyc
+#usr/lib/python2.3/test/test_MimeWriter.pyo
+#usr/lib/python2.3/test/test_StringIO.py
+#usr/lib/python2.3/test/test_StringIO.pyc
+#usr/lib/python2.3/test/test_StringIO.pyo
+#usr/lib/python2.3/test/test___all__.py
+#usr/lib/python2.3/test/test___all__.pyc
+#usr/lib/python2.3/test/test___all__.pyo
+#usr/lib/python2.3/test/test___future__.py
+#usr/lib/python2.3/test/test___future__.pyc
+#usr/lib/python2.3/test/test___future__.pyo
+#usr/lib/python2.3/test/test_aepack.py
+#usr/lib/python2.3/test/test_aepack.pyc
+#usr/lib/python2.3/test/test_aepack.pyo
+#usr/lib/python2.3/test/test_al.py
+#usr/lib/python2.3/test/test_al.pyc
+#usr/lib/python2.3/test/test_al.pyo
+#usr/lib/python2.3/test/test_anydbm.py
+#usr/lib/python2.3/test/test_anydbm.pyc
+#usr/lib/python2.3/test/test_anydbm.pyo
+#usr/lib/python2.3/test/test_array.py
+#usr/lib/python2.3/test/test_array.pyc
+#usr/lib/python2.3/test/test_array.pyo
+#usr/lib/python2.3/test/test_asynchat.py
+#usr/lib/python2.3/test/test_asynchat.pyc
+#usr/lib/python2.3/test/test_asynchat.pyo
+#usr/lib/python2.3/test/test_atexit.py
+#usr/lib/python2.3/test/test_atexit.pyc
+#usr/lib/python2.3/test/test_atexit.pyo
+#usr/lib/python2.3/test/test_audioop.py
+#usr/lib/python2.3/test/test_audioop.pyc
+#usr/lib/python2.3/test/test_audioop.pyo
+#usr/lib/python2.3/test/test_augassign.py
+#usr/lib/python2.3/test/test_augassign.pyc
+#usr/lib/python2.3/test/test_augassign.pyo
+#usr/lib/python2.3/test/test_base64.py
+#usr/lib/python2.3/test/test_base64.pyc
+#usr/lib/python2.3/test/test_base64.pyo
+#usr/lib/python2.3/test/test_bastion.py
+#usr/lib/python2.3/test/test_bastion.pyc
+#usr/lib/python2.3/test/test_bastion.pyo
+#usr/lib/python2.3/test/test_binascii.py
+#usr/lib/python2.3/test/test_binascii.pyc
+#usr/lib/python2.3/test/test_binascii.pyo
+#usr/lib/python2.3/test/test_binhex.py
+#usr/lib/python2.3/test/test_binhex.pyc
+#usr/lib/python2.3/test/test_binhex.pyo
+#usr/lib/python2.3/test/test_binop.py
+#usr/lib/python2.3/test/test_binop.pyc
+#usr/lib/python2.3/test/test_binop.pyo
+#usr/lib/python2.3/test/test_bisect.py
+#usr/lib/python2.3/test/test_bisect.pyc
+#usr/lib/python2.3/test/test_bisect.pyo
+#usr/lib/python2.3/test/test_bool.py
+#usr/lib/python2.3/test/test_bool.pyc
+#usr/lib/python2.3/test/test_bool.pyo
+#usr/lib/python2.3/test/test_bsddb.py
+#usr/lib/python2.3/test/test_bsddb.pyc
+#usr/lib/python2.3/test/test_bsddb.pyo
+#usr/lib/python2.3/test/test_bsddb185.py
+#usr/lib/python2.3/test/test_bsddb185.pyc
+#usr/lib/python2.3/test/test_bsddb185.pyo
+#usr/lib/python2.3/test/test_bsddb3.py
+#usr/lib/python2.3/test/test_bsddb3.pyc
+#usr/lib/python2.3/test/test_bsddb3.pyo
+#usr/lib/python2.3/test/test_bufio.py
+#usr/lib/python2.3/test/test_bufio.pyc
+#usr/lib/python2.3/test/test_bufio.pyo
+#usr/lib/python2.3/test/test_builtin.py
+#usr/lib/python2.3/test/test_builtin.pyc
+#usr/lib/python2.3/test/test_builtin.pyo
+#usr/lib/python2.3/test/test_bz2.py
+#usr/lib/python2.3/test/test_bz2.pyc
+#usr/lib/python2.3/test/test_bz2.pyo
+#usr/lib/python2.3/test/test_calendar.py
+#usr/lib/python2.3/test/test_calendar.pyc
+#usr/lib/python2.3/test/test_calendar.pyo
+#usr/lib/python2.3/test/test_call.py
+#usr/lib/python2.3/test/test_call.pyc
+#usr/lib/python2.3/test/test_call.pyo
+#usr/lib/python2.3/test/test_capi.py
+#usr/lib/python2.3/test/test_capi.pyc
+#usr/lib/python2.3/test/test_capi.pyo
+#usr/lib/python2.3/test/test_cd.py
+#usr/lib/python2.3/test/test_cd.pyc
+#usr/lib/python2.3/test/test_cd.pyo
+#usr/lib/python2.3/test/test_cfgparser.py
+#usr/lib/python2.3/test/test_cfgparser.pyc
+#usr/lib/python2.3/test/test_cfgparser.pyo
+#usr/lib/python2.3/test/test_cgi.py
+#usr/lib/python2.3/test/test_cgi.pyc
+#usr/lib/python2.3/test/test_cgi.pyo
+#usr/lib/python2.3/test/test_charmapcodec.py
+#usr/lib/python2.3/test/test_charmapcodec.pyc
+#usr/lib/python2.3/test/test_charmapcodec.pyo
+#usr/lib/python2.3/test/test_cl.py
+#usr/lib/python2.3/test/test_cl.pyc
+#usr/lib/python2.3/test/test_cl.pyo
+#usr/lib/python2.3/test/test_class.py
+#usr/lib/python2.3/test/test_class.pyc
+#usr/lib/python2.3/test/test_class.pyo
+#usr/lib/python2.3/test/test_cmath.py
+#usr/lib/python2.3/test/test_cmath.pyc
+#usr/lib/python2.3/test/test_cmath.pyo
+#usr/lib/python2.3/test/test_codeccallbacks.py
+#usr/lib/python2.3/test/test_codeccallbacks.pyc
+#usr/lib/python2.3/test/test_codeccallbacks.pyo
+#usr/lib/python2.3/test/test_codecs.py
+#usr/lib/python2.3/test/test_codecs.pyc
+#usr/lib/python2.3/test/test_codecs.pyo
+#usr/lib/python2.3/test/test_codeop.py
+#usr/lib/python2.3/test/test_codeop.pyc
+#usr/lib/python2.3/test/test_codeop.pyo
+#usr/lib/python2.3/test/test_coercion.py
+#usr/lib/python2.3/test/test_coercion.pyc
+#usr/lib/python2.3/test/test_coercion.pyo
+#usr/lib/python2.3/test/test_commands.py
+#usr/lib/python2.3/test/test_commands.pyc
+#usr/lib/python2.3/test/test_commands.pyo
+#usr/lib/python2.3/test/test_compare.py
+#usr/lib/python2.3/test/test_compare.pyc
+#usr/lib/python2.3/test/test_compare.pyo
+#usr/lib/python2.3/test/test_compile.py
+#usr/lib/python2.3/test/test_compile.pyc
+#usr/lib/python2.3/test/test_compile.pyo
+#usr/lib/python2.3/test/test_complex.py
+#usr/lib/python2.3/test/test_complex.pyc
+#usr/lib/python2.3/test/test_complex.pyo
+#usr/lib/python2.3/test/test_contains.py
+#usr/lib/python2.3/test/test_contains.pyc
+#usr/lib/python2.3/test/test_contains.pyo
+#usr/lib/python2.3/test/test_cookie.py
+#usr/lib/python2.3/test/test_cookie.pyc
+#usr/lib/python2.3/test/test_cookie.pyo
+#usr/lib/python2.3/test/test_copy.py
+#usr/lib/python2.3/test/test_copy.pyc
+#usr/lib/python2.3/test/test_copy.pyo
+#usr/lib/python2.3/test/test_copy_reg.py
+#usr/lib/python2.3/test/test_copy_reg.pyc
+#usr/lib/python2.3/test/test_copy_reg.pyo
+#usr/lib/python2.3/test/test_cpickle.py
+#usr/lib/python2.3/test/test_cpickle.pyc
+#usr/lib/python2.3/test/test_cpickle.pyo
+#usr/lib/python2.3/test/test_crypt.py
+#usr/lib/python2.3/test/test_crypt.pyc
+#usr/lib/python2.3/test/test_crypt.pyo
+#usr/lib/python2.3/test/test_csv.py
+#usr/lib/python2.3/test/test_csv.pyc
+#usr/lib/python2.3/test/test_csv.pyo
+#usr/lib/python2.3/test/test_curses.py
+#usr/lib/python2.3/test/test_curses.pyc
+#usr/lib/python2.3/test/test_curses.pyo
+#usr/lib/python2.3/test/test_datetime.py
+#usr/lib/python2.3/test/test_datetime.pyc
+#usr/lib/python2.3/test/test_datetime.pyo
+#usr/lib/python2.3/test/test_dbm.py
+#usr/lib/python2.3/test/test_dbm.pyc
+#usr/lib/python2.3/test/test_dbm.pyo
+#usr/lib/python2.3/test/test_descr.py
+#usr/lib/python2.3/test/test_descr.pyc
+#usr/lib/python2.3/test/test_descr.pyo
+#usr/lib/python2.3/test/test_descrtut.py
+#usr/lib/python2.3/test/test_descrtut.pyc
+#usr/lib/python2.3/test/test_descrtut.pyo
+#usr/lib/python2.3/test/test_difflib.py
+#usr/lib/python2.3/test/test_difflib.pyc
+#usr/lib/python2.3/test/test_difflib.pyo
+#usr/lib/python2.3/test/test_dircache.py
+#usr/lib/python2.3/test/test_dircache.pyc
+#usr/lib/python2.3/test/test_dircache.pyo
+#usr/lib/python2.3/test/test_dis.py
+#usr/lib/python2.3/test/test_dis.pyc
+#usr/lib/python2.3/test/test_dis.pyo
+#usr/lib/python2.3/test/test_dl.py
+#usr/lib/python2.3/test/test_dl.pyc
+#usr/lib/python2.3/test/test_dl.pyo
+#usr/lib/python2.3/test/test_doctest.py
+#usr/lib/python2.3/test/test_doctest.pyc
+#usr/lib/python2.3/test/test_doctest.pyo
+#usr/lib/python2.3/test/test_doctest2.py
+#usr/lib/python2.3/test/test_doctest2.pyc
+#usr/lib/python2.3/test/test_doctest2.pyo
+#usr/lib/python2.3/test/test_dumbdbm.py
+#usr/lib/python2.3/test/test_dumbdbm.pyc
+#usr/lib/python2.3/test/test_dumbdbm.pyo
+#usr/lib/python2.3/test/test_dummy_thread.py
+#usr/lib/python2.3/test/test_dummy_thread.pyc
+#usr/lib/python2.3/test/test_dummy_thread.pyo
+#usr/lib/python2.3/test/test_dummy_threading.py
+#usr/lib/python2.3/test/test_dummy_threading.pyc
+#usr/lib/python2.3/test/test_dummy_threading.pyo
+#usr/lib/python2.3/test/test_email.py
+#usr/lib/python2.3/test/test_email.pyc
+#usr/lib/python2.3/test/test_email.pyo
+#usr/lib/python2.3/test/test_email_codecs.py
+#usr/lib/python2.3/test/test_email_codecs.pyc
+#usr/lib/python2.3/test/test_email_codecs.pyo
+#usr/lib/python2.3/test/test_enumerate.py
+#usr/lib/python2.3/test/test_enumerate.pyc
+#usr/lib/python2.3/test/test_enumerate.pyo
+#usr/lib/python2.3/test/test_eof.py
+#usr/lib/python2.3/test/test_eof.pyc
+#usr/lib/python2.3/test/test_eof.pyo
+#usr/lib/python2.3/test/test_errno.py
+#usr/lib/python2.3/test/test_errno.pyc
+#usr/lib/python2.3/test/test_errno.pyo
+#usr/lib/python2.3/test/test_exceptions.py
+#usr/lib/python2.3/test/test_exceptions.pyc
+#usr/lib/python2.3/test/test_exceptions.pyo
+#usr/lib/python2.3/test/test_extcall.py
+#usr/lib/python2.3/test/test_extcall.pyc
+#usr/lib/python2.3/test/test_extcall.pyo
+#usr/lib/python2.3/test/test_fcntl.py
+#usr/lib/python2.3/test/test_fcntl.pyc
+#usr/lib/python2.3/test/test_fcntl.pyo
+#usr/lib/python2.3/test/test_file.py
+#usr/lib/python2.3/test/test_file.pyc
+#usr/lib/python2.3/test/test_file.pyo
+#usr/lib/python2.3/test/test_filecmp.py
+#usr/lib/python2.3/test/test_filecmp.pyc
+#usr/lib/python2.3/test/test_filecmp.pyo
+#usr/lib/python2.3/test/test_fileinput.py
+#usr/lib/python2.3/test/test_fileinput.pyc
+#usr/lib/python2.3/test/test_fileinput.pyo
+#usr/lib/python2.3/test/test_fnmatch.py
+#usr/lib/python2.3/test/test_fnmatch.pyc
+#usr/lib/python2.3/test/test_fnmatch.pyo
+#usr/lib/python2.3/test/test_fork1.py
+#usr/lib/python2.3/test/test_fork1.pyc
+#usr/lib/python2.3/test/test_fork1.pyo
+#usr/lib/python2.3/test/test_format.py
+#usr/lib/python2.3/test/test_format.pyc
+#usr/lib/python2.3/test/test_format.pyo
+#usr/lib/python2.3/test/test_fpformat.py
+#usr/lib/python2.3/test/test_fpformat.pyc
+#usr/lib/python2.3/test/test_fpformat.pyo
+#usr/lib/python2.3/test/test_frozen.py
+#usr/lib/python2.3/test/test_frozen.pyc
+#usr/lib/python2.3/test/test_frozen.pyo
+#usr/lib/python2.3/test/test_funcattrs.py
+#usr/lib/python2.3/test/test_funcattrs.pyc
+#usr/lib/python2.3/test/test_funcattrs.pyo
+#usr/lib/python2.3/test/test_future.py
+#usr/lib/python2.3/test/test_future.pyc
+#usr/lib/python2.3/test/test_future.pyo
+#usr/lib/python2.3/test/test_future1.py
+#usr/lib/python2.3/test/test_future1.pyc
+#usr/lib/python2.3/test/test_future1.pyo
+#usr/lib/python2.3/test/test_future2.py
+#usr/lib/python2.3/test/test_future2.pyc
+#usr/lib/python2.3/test/test_future2.pyo
+#usr/lib/python2.3/test/test_future3.py
+#usr/lib/python2.3/test/test_future3.pyc
+#usr/lib/python2.3/test/test_future3.pyo
+#usr/lib/python2.3/test/test_gc.py
+#usr/lib/python2.3/test/test_gc.pyc
+#usr/lib/python2.3/test/test_gc.pyo
+#usr/lib/python2.3/test/test_gdbm.py
+#usr/lib/python2.3/test/test_gdbm.pyc
+#usr/lib/python2.3/test/test_gdbm.pyo
+#usr/lib/python2.3/test/test_generators.py
+#usr/lib/python2.3/test/test_generators.pyc
+#usr/lib/python2.3/test/test_generators.pyo
+#usr/lib/python2.3/test/test_getargs.py
+#usr/lib/python2.3/test/test_getargs.pyc
+#usr/lib/python2.3/test/test_getargs.pyo
+#usr/lib/python2.3/test/test_getargs2.py
+#usr/lib/python2.3/test/test_getargs2.pyc
+#usr/lib/python2.3/test/test_getargs2.pyo
+#usr/lib/python2.3/test/test_getopt.py
+#usr/lib/python2.3/test/test_getopt.pyc
+#usr/lib/python2.3/test/test_getopt.pyo
+#usr/lib/python2.3/test/test_gettext.py
+#usr/lib/python2.3/test/test_gettext.pyc
+#usr/lib/python2.3/test/test_gettext.pyo
+#usr/lib/python2.3/test/test_gl.py
+#usr/lib/python2.3/test/test_gl.pyc
+#usr/lib/python2.3/test/test_gl.pyo
+#usr/lib/python2.3/test/test_glob.py
+#usr/lib/python2.3/test/test_glob.pyc
+#usr/lib/python2.3/test/test_glob.pyo
+#usr/lib/python2.3/test/test_global.py
+#usr/lib/python2.3/test/test_global.pyc
+#usr/lib/python2.3/test/test_global.pyo
+#usr/lib/python2.3/test/test_grammar.py
+#usr/lib/python2.3/test/test_grammar.pyc
+#usr/lib/python2.3/test/test_grammar.pyo
+#usr/lib/python2.3/test/test_grp.py
+#usr/lib/python2.3/test/test_grp.pyc
+#usr/lib/python2.3/test/test_grp.pyo
+#usr/lib/python2.3/test/test_gzip.py
+#usr/lib/python2.3/test/test_gzip.pyc
+#usr/lib/python2.3/test/test_gzip.pyo
+#usr/lib/python2.3/test/test_hash.py
+#usr/lib/python2.3/test/test_hash.pyc
+#usr/lib/python2.3/test/test_hash.pyo
+#usr/lib/python2.3/test/test_heapq.py
+#usr/lib/python2.3/test/test_heapq.pyc
+#usr/lib/python2.3/test/test_heapq.pyo
+#usr/lib/python2.3/test/test_hexoct.py
+#usr/lib/python2.3/test/test_hexoct.pyc
+#usr/lib/python2.3/test/test_hexoct.pyo
+#usr/lib/python2.3/test/test_hmac.py
+#usr/lib/python2.3/test/test_hmac.pyc
+#usr/lib/python2.3/test/test_hmac.pyo
+#usr/lib/python2.3/test/test_hotshot.py
+#usr/lib/python2.3/test/test_hotshot.pyc
+#usr/lib/python2.3/test/test_hotshot.pyo
+#usr/lib/python2.3/test/test_htmllib.py
+#usr/lib/python2.3/test/test_htmllib.pyc
+#usr/lib/python2.3/test/test_htmllib.pyo
+#usr/lib/python2.3/test/test_htmlparser.py
+#usr/lib/python2.3/test/test_htmlparser.pyc
+#usr/lib/python2.3/test/test_htmlparser.pyo
+#usr/lib/python2.3/test/test_httplib.py
+#usr/lib/python2.3/test/test_httplib.pyc
+#usr/lib/python2.3/test/test_httplib.pyo
+#usr/lib/python2.3/test/test_imageop.py
+#usr/lib/python2.3/test/test_imageop.pyc
+#usr/lib/python2.3/test/test_imageop.pyo
+#usr/lib/python2.3/test/test_imaplib.py
+#usr/lib/python2.3/test/test_imaplib.pyc
+#usr/lib/python2.3/test/test_imaplib.pyo
+#usr/lib/python2.3/test/test_imgfile.py
+#usr/lib/python2.3/test/test_imgfile.pyc
+#usr/lib/python2.3/test/test_imgfile.pyo
+#usr/lib/python2.3/test/test_imp.py
+#usr/lib/python2.3/test/test_imp.pyc
+#usr/lib/python2.3/test/test_imp.pyo
+#usr/lib/python2.3/test/test_import.py
+#usr/lib/python2.3/test/test_import.pyc
+#usr/lib/python2.3/test/test_import.pyo
+#usr/lib/python2.3/test/test_importhooks.py
+#usr/lib/python2.3/test/test_importhooks.pyc
+#usr/lib/python2.3/test/test_importhooks.pyo
+#usr/lib/python2.3/test/test_inspect.py
+#usr/lib/python2.3/test/test_inspect.pyc
+#usr/lib/python2.3/test/test_inspect.pyo
+#usr/lib/python2.3/test/test_ioctl.py
+#usr/lib/python2.3/test/test_ioctl.pyc
+#usr/lib/python2.3/test/test_ioctl.pyo
+#usr/lib/python2.3/test/test_isinstance.py
+#usr/lib/python2.3/test/test_isinstance.pyc
+#usr/lib/python2.3/test/test_isinstance.pyo
+#usr/lib/python2.3/test/test_iter.py
+#usr/lib/python2.3/test/test_iter.pyc
+#usr/lib/python2.3/test/test_iter.pyo
+#usr/lib/python2.3/test/test_itertools.py
+#usr/lib/python2.3/test/test_itertools.pyc
+#usr/lib/python2.3/test/test_itertools.pyo
+#usr/lib/python2.3/test/test_largefile.py
+#usr/lib/python2.3/test/test_largefile.pyc
+#usr/lib/python2.3/test/test_largefile.pyo
+#usr/lib/python2.3/test/test_linuxaudiodev.py
+#usr/lib/python2.3/test/test_linuxaudiodev.pyc
+#usr/lib/python2.3/test/test_linuxaudiodev.pyo
+#usr/lib/python2.3/test/test_locale.py
+#usr/lib/python2.3/test/test_locale.pyc
+#usr/lib/python2.3/test/test_locale.pyo
+#usr/lib/python2.3/test/test_logging.py
+#usr/lib/python2.3/test/test_logging.pyc
+#usr/lib/python2.3/test/test_logging.pyo
+#usr/lib/python2.3/test/test_long.py
+#usr/lib/python2.3/test/test_long.pyc
+#usr/lib/python2.3/test/test_long.pyo
+#usr/lib/python2.3/test/test_long_future.py
+#usr/lib/python2.3/test/test_long_future.pyc
+#usr/lib/python2.3/test/test_long_future.pyo
+#usr/lib/python2.3/test/test_longexp.py
+#usr/lib/python2.3/test/test_longexp.pyc
+#usr/lib/python2.3/test/test_longexp.pyo
+#usr/lib/python2.3/test/test_macfs.py
+#usr/lib/python2.3/test/test_macfs.pyc
+#usr/lib/python2.3/test/test_macfs.pyo
+#usr/lib/python2.3/test/test_macostools.py
+#usr/lib/python2.3/test/test_macostools.pyc
+#usr/lib/python2.3/test/test_macostools.pyo
+#usr/lib/python2.3/test/test_macpath.py
+#usr/lib/python2.3/test/test_macpath.pyc
+#usr/lib/python2.3/test/test_macpath.pyo
+#usr/lib/python2.3/test/test_mailbox.py
+#usr/lib/python2.3/test/test_mailbox.pyc
+#usr/lib/python2.3/test/test_mailbox.pyo
+#usr/lib/python2.3/test/test_marshal.py
+#usr/lib/python2.3/test/test_marshal.pyc
+#usr/lib/python2.3/test/test_marshal.pyo
+#usr/lib/python2.3/test/test_math.py
+#usr/lib/python2.3/test/test_math.pyc
+#usr/lib/python2.3/test/test_math.pyo
+#usr/lib/python2.3/test/test_md5.py
+#usr/lib/python2.3/test/test_md5.pyc
+#usr/lib/python2.3/test/test_md5.pyo
+#usr/lib/python2.3/test/test_mhlib.py
+#usr/lib/python2.3/test/test_mhlib.pyc
+#usr/lib/python2.3/test/test_mhlib.pyo
+#usr/lib/python2.3/test/test_mimetools.py
+#usr/lib/python2.3/test/test_mimetools.pyc
+#usr/lib/python2.3/test/test_mimetools.pyo
+#usr/lib/python2.3/test/test_mimetypes.py
+#usr/lib/python2.3/test/test_mimetypes.pyc
+#usr/lib/python2.3/test/test_mimetypes.pyo
+#usr/lib/python2.3/test/test_minidom.py
+#usr/lib/python2.3/test/test_minidom.pyc
+#usr/lib/python2.3/test/test_minidom.pyo
+#usr/lib/python2.3/test/test_mmap.py
+#usr/lib/python2.3/test/test_mmap.pyc
+#usr/lib/python2.3/test/test_mmap.pyo
+#usr/lib/python2.3/test/test_module.py
+#usr/lib/python2.3/test/test_module.pyc
+#usr/lib/python2.3/test/test_module.pyo
+#usr/lib/python2.3/test/test_mpz.py
+#usr/lib/python2.3/test/test_mpz.pyc
+#usr/lib/python2.3/test/test_mpz.pyo
+#usr/lib/python2.3/test/test_multifile.py
+#usr/lib/python2.3/test/test_multifile.pyc
+#usr/lib/python2.3/test/test_multifile.pyo
+#usr/lib/python2.3/test/test_mutants.py
+#usr/lib/python2.3/test/test_mutants.pyc
+#usr/lib/python2.3/test/test_mutants.pyo
+#usr/lib/python2.3/test/test_netrc.py
+#usr/lib/python2.3/test/test_netrc.pyc
+#usr/lib/python2.3/test/test_netrc.pyo
+#usr/lib/python2.3/test/test_new.py
+#usr/lib/python2.3/test/test_new.pyc
+#usr/lib/python2.3/test/test_new.pyo
+#usr/lib/python2.3/test/test_nis.py
+#usr/lib/python2.3/test/test_nis.pyc
+#usr/lib/python2.3/test/test_nis.pyo
+#usr/lib/python2.3/test/test_normalization.py
+#usr/lib/python2.3/test/test_normalization.pyc
+#usr/lib/python2.3/test/test_normalization.pyo
+#usr/lib/python2.3/test/test_ntpath.py
+#usr/lib/python2.3/test/test_ntpath.pyc
+#usr/lib/python2.3/test/test_ntpath.pyo
+#usr/lib/python2.3/test/test_opcodes.py
+#usr/lib/python2.3/test/test_opcodes.pyc
+#usr/lib/python2.3/test/test_opcodes.pyo
+#usr/lib/python2.3/test/test_openpty.py
+#usr/lib/python2.3/test/test_openpty.pyc
+#usr/lib/python2.3/test/test_openpty.pyo
+#usr/lib/python2.3/test/test_operations.py
+#usr/lib/python2.3/test/test_operations.pyc
+#usr/lib/python2.3/test/test_operations.pyo
+#usr/lib/python2.3/test/test_operator.py
+#usr/lib/python2.3/test/test_operator.pyc
+#usr/lib/python2.3/test/test_operator.pyo
+#usr/lib/python2.3/test/test_optparse.py
+#usr/lib/python2.3/test/test_optparse.pyc
+#usr/lib/python2.3/test/test_optparse.pyo
+#usr/lib/python2.3/test/test_os.py
+#usr/lib/python2.3/test/test_os.pyc
+#usr/lib/python2.3/test/test_os.pyo
+#usr/lib/python2.3/test/test_ossaudiodev.py
+#usr/lib/python2.3/test/test_ossaudiodev.pyc
+#usr/lib/python2.3/test/test_ossaudiodev.pyo
+#usr/lib/python2.3/test/test_parser.py
+#usr/lib/python2.3/test/test_parser.pyc
+#usr/lib/python2.3/test/test_parser.pyo
+#usr/lib/python2.3/test/test_pep247.py
+#usr/lib/python2.3/test/test_pep247.pyc
+#usr/lib/python2.3/test/test_pep247.pyo
+#usr/lib/python2.3/test/test_pep263.py
+#usr/lib/python2.3/test/test_pep263.pyc
+#usr/lib/python2.3/test/test_pep263.pyo
+#usr/lib/python2.3/test/test_pep277.py
+#usr/lib/python2.3/test/test_pep277.pyc
+#usr/lib/python2.3/test/test_pep277.pyo
+#usr/lib/python2.3/test/test_pickle.py
+#usr/lib/python2.3/test/test_pickle.pyc
+#usr/lib/python2.3/test/test_pickle.pyo
+#usr/lib/python2.3/test/test_pickletools.py
+#usr/lib/python2.3/test/test_pickletools.pyc
+#usr/lib/python2.3/test/test_pickletools.pyo
+#usr/lib/python2.3/test/test_pkg.py
+#usr/lib/python2.3/test/test_pkg.pyc
+#usr/lib/python2.3/test/test_pkg.pyo
+#usr/lib/python2.3/test/test_pkgimport.py
+#usr/lib/python2.3/test/test_pkgimport.pyc
+#usr/lib/python2.3/test/test_pkgimport.pyo
+#usr/lib/python2.3/test/test_plistlib.py
+#usr/lib/python2.3/test/test_plistlib.pyc
+#usr/lib/python2.3/test/test_plistlib.pyo
+#usr/lib/python2.3/test/test_poll.py
+#usr/lib/python2.3/test/test_poll.pyc
+#usr/lib/python2.3/test/test_poll.pyo
+#usr/lib/python2.3/test/test_popen.py
+#usr/lib/python2.3/test/test_popen.pyc
+#usr/lib/python2.3/test/test_popen.pyo
+#usr/lib/python2.3/test/test_popen2.py
+#usr/lib/python2.3/test/test_popen2.pyc
+#usr/lib/python2.3/test/test_popen2.pyo
+#usr/lib/python2.3/test/test_posix.py
+#usr/lib/python2.3/test/test_posix.pyc
+#usr/lib/python2.3/test/test_posix.pyo
+#usr/lib/python2.3/test/test_posixpath.py
+#usr/lib/python2.3/test/test_posixpath.pyc
+#usr/lib/python2.3/test/test_posixpath.pyo
+#usr/lib/python2.3/test/test_pow.py
+#usr/lib/python2.3/test/test_pow.pyc
+#usr/lib/python2.3/test/test_pow.pyo
+#usr/lib/python2.3/test/test_pprint.py
+#usr/lib/python2.3/test/test_pprint.pyc
+#usr/lib/python2.3/test/test_pprint.pyo
+#usr/lib/python2.3/test/test_profile.py
+#usr/lib/python2.3/test/test_profile.pyc
+#usr/lib/python2.3/test/test_profile.pyo
+#usr/lib/python2.3/test/test_profilehooks.py
+#usr/lib/python2.3/test/test_profilehooks.pyc
+#usr/lib/python2.3/test/test_profilehooks.pyo
+#usr/lib/python2.3/test/test_pty.py
+#usr/lib/python2.3/test/test_pty.pyc
+#usr/lib/python2.3/test/test_pty.pyo
+#usr/lib/python2.3/test/test_pwd.py
+#usr/lib/python2.3/test/test_pwd.pyc
+#usr/lib/python2.3/test/test_pwd.pyo
+#usr/lib/python2.3/test/test_pyclbr.py
+#usr/lib/python2.3/test/test_pyclbr.pyc
+#usr/lib/python2.3/test/test_pyclbr.pyo
+#usr/lib/python2.3/test/test_pyexpat.py
+#usr/lib/python2.3/test/test_pyexpat.pyc
+#usr/lib/python2.3/test/test_pyexpat.pyo
+#usr/lib/python2.3/test/test_queue.py
+#usr/lib/python2.3/test/test_queue.pyc
+#usr/lib/python2.3/test/test_queue.pyo
+#usr/lib/python2.3/test/test_quopri.py
+#usr/lib/python2.3/test/test_quopri.pyc
+#usr/lib/python2.3/test/test_quopri.pyo
+#usr/lib/python2.3/test/test_random.py
+#usr/lib/python2.3/test/test_random.pyc
+#usr/lib/python2.3/test/test_random.pyo
+#usr/lib/python2.3/test/test_re.py
+#usr/lib/python2.3/test/test_re.pyc
+#usr/lib/python2.3/test/test_re.pyo
+#usr/lib/python2.3/test/test_regex.py
+#usr/lib/python2.3/test/test_regex.pyc
+#usr/lib/python2.3/test/test_regex.pyo
+#usr/lib/python2.3/test/test_repr.py
+#usr/lib/python2.3/test/test_repr.pyc
+#usr/lib/python2.3/test/test_repr.pyo
+#usr/lib/python2.3/test/test_resource.py
+#usr/lib/python2.3/test/test_resource.pyc
+#usr/lib/python2.3/test/test_resource.pyo
+#usr/lib/python2.3/test/test_rfc822.py
+#usr/lib/python2.3/test/test_rfc822.pyc
+#usr/lib/python2.3/test/test_rfc822.pyo
+#usr/lib/python2.3/test/test_rgbimg.py
+#usr/lib/python2.3/test/test_rgbimg.pyc
+#usr/lib/python2.3/test/test_rgbimg.pyo
+#usr/lib/python2.3/test/test_richcmp.py
+#usr/lib/python2.3/test/test_richcmp.pyc
+#usr/lib/python2.3/test/test_richcmp.pyo
+#usr/lib/python2.3/test/test_robotparser.py
+#usr/lib/python2.3/test/test_robotparser.pyc
+#usr/lib/python2.3/test/test_robotparser.pyo
+#usr/lib/python2.3/test/test_rotor.py
+#usr/lib/python2.3/test/test_rotor.pyc
+#usr/lib/python2.3/test/test_rotor.pyo
+#usr/lib/python2.3/test/test_sax.py
+#usr/lib/python2.3/test/test_sax.pyc
+#usr/lib/python2.3/test/test_sax.pyo
+#usr/lib/python2.3/test/test_scope.py
+#usr/lib/python2.3/test/test_scope.pyc
+#usr/lib/python2.3/test/test_scope.pyo
+#usr/lib/python2.3/test/test_scriptpackages.py
+#usr/lib/python2.3/test/test_scriptpackages.pyc
+#usr/lib/python2.3/test/test_scriptpackages.pyo
+#usr/lib/python2.3/test/test_select.py
+#usr/lib/python2.3/test/test_select.pyc
+#usr/lib/python2.3/test/test_select.pyo
+#usr/lib/python2.3/test/test_sets.py
+#usr/lib/python2.3/test/test_sets.pyc
+#usr/lib/python2.3/test/test_sets.pyo
+#usr/lib/python2.3/test/test_sgmllib.py
+#usr/lib/python2.3/test/test_sgmllib.pyc
+#usr/lib/python2.3/test/test_sgmllib.pyo
+#usr/lib/python2.3/test/test_sha.py
+#usr/lib/python2.3/test/test_sha.pyc
+#usr/lib/python2.3/test/test_sha.pyo
+#usr/lib/python2.3/test/test_shelve.py
+#usr/lib/python2.3/test/test_shelve.pyc
+#usr/lib/python2.3/test/test_shelve.pyo
+#usr/lib/python2.3/test/test_shlex.py
+#usr/lib/python2.3/test/test_shlex.pyc
+#usr/lib/python2.3/test/test_shlex.pyo
+#usr/lib/python2.3/test/test_shutil.py
+#usr/lib/python2.3/test/test_shutil.pyc
+#usr/lib/python2.3/test/test_shutil.pyo
+#usr/lib/python2.3/test/test_signal.py
+#usr/lib/python2.3/test/test_signal.pyc
+#usr/lib/python2.3/test/test_signal.pyo
+#usr/lib/python2.3/test/test_slice.py
+#usr/lib/python2.3/test/test_slice.pyc
+#usr/lib/python2.3/test/test_slice.pyo
+#usr/lib/python2.3/test/test_socket.py
+#usr/lib/python2.3/test/test_socket.pyc
+#usr/lib/python2.3/test/test_socket.pyo
+#usr/lib/python2.3/test/test_socket_ssl.py
+#usr/lib/python2.3/test/test_socket_ssl.pyc
+#usr/lib/python2.3/test/test_socket_ssl.pyo
+#usr/lib/python2.3/test/test_socketserver.py
+#usr/lib/python2.3/test/test_socketserver.pyc
+#usr/lib/python2.3/test/test_socketserver.pyo
+#usr/lib/python2.3/test/test_softspace.py
+#usr/lib/python2.3/test/test_softspace.pyc
+#usr/lib/python2.3/test/test_softspace.pyo
+#usr/lib/python2.3/test/test_sort.py
+#usr/lib/python2.3/test/test_sort.pyc
+#usr/lib/python2.3/test/test_sort.pyo
+#usr/lib/python2.3/test/test_str.py
+#usr/lib/python2.3/test/test_str.pyc
+#usr/lib/python2.3/test/test_str.pyo
+#usr/lib/python2.3/test/test_strftime.py
+#usr/lib/python2.3/test/test_strftime.pyc
+#usr/lib/python2.3/test/test_strftime.pyo
+#usr/lib/python2.3/test/test_string.py
+#usr/lib/python2.3/test/test_string.pyc
+#usr/lib/python2.3/test/test_string.pyo
+#usr/lib/python2.3/test/test_stringprep.py
+#usr/lib/python2.3/test/test_stringprep.pyc
+#usr/lib/python2.3/test/test_stringprep.pyo
+#usr/lib/python2.3/test/test_strop.py
+#usr/lib/python2.3/test/test_strop.pyc
+#usr/lib/python2.3/test/test_strop.pyo
+#usr/lib/python2.3/test/test_strptime.py
+#usr/lib/python2.3/test/test_strptime.pyc
+#usr/lib/python2.3/test/test_strptime.pyo
+#usr/lib/python2.3/test/test_struct.py
+#usr/lib/python2.3/test/test_struct.pyc
+#usr/lib/python2.3/test/test_struct.pyo
+#usr/lib/python2.3/test/test_structseq.py
+#usr/lib/python2.3/test/test_structseq.pyc
+#usr/lib/python2.3/test/test_structseq.pyo
+#usr/lib/python2.3/test/test_sunaudiodev.py
+#usr/lib/python2.3/test/test_sunaudiodev.pyc
+#usr/lib/python2.3/test/test_sunaudiodev.pyo
+#usr/lib/python2.3/test/test_sundry.py
+#usr/lib/python2.3/test/test_sundry.pyc
+#usr/lib/python2.3/test/test_sundry.pyo
+#usr/lib/python2.3/test/test_support.py
+#usr/lib/python2.3/test/test_support.pyc
+#usr/lib/python2.3/test/test_support.pyo
+#usr/lib/python2.3/test/test_symtable.py
+#usr/lib/python2.3/test/test_symtable.pyc
+#usr/lib/python2.3/test/test_symtable.pyo
+#usr/lib/python2.3/test/test_syntax.py
+#usr/lib/python2.3/test/test_syntax.pyc
+#usr/lib/python2.3/test/test_syntax.pyo
+#usr/lib/python2.3/test/test_sys.py
+#usr/lib/python2.3/test/test_sys.pyc
+#usr/lib/python2.3/test/test_sys.pyo
+#usr/lib/python2.3/test/test_tarfile.py
+#usr/lib/python2.3/test/test_tarfile.pyc
+#usr/lib/python2.3/test/test_tarfile.pyo
+#usr/lib/python2.3/test/test_tempfile.py
+#usr/lib/python2.3/test/test_tempfile.pyc
+#usr/lib/python2.3/test/test_tempfile.pyo
+#usr/lib/python2.3/test/test_textwrap.py
+#usr/lib/python2.3/test/test_textwrap.pyc
+#usr/lib/python2.3/test/test_textwrap.pyo
+#usr/lib/python2.3/test/test_thread.py
+#usr/lib/python2.3/test/test_thread.pyc
+#usr/lib/python2.3/test/test_thread.pyo
+#usr/lib/python2.3/test/test_threaded_import.py
+#usr/lib/python2.3/test/test_threaded_import.pyc
+#usr/lib/python2.3/test/test_threaded_import.pyo
+#usr/lib/python2.3/test/test_threadedtempfile.py
+#usr/lib/python2.3/test/test_threadedtempfile.pyc
+#usr/lib/python2.3/test/test_threadedtempfile.pyo
+#usr/lib/python2.3/test/test_threading.py
+#usr/lib/python2.3/test/test_threading.pyc
+#usr/lib/python2.3/test/test_threading.pyo
+#usr/lib/python2.3/test/test_time.py
+#usr/lib/python2.3/test/test_time.pyc
+#usr/lib/python2.3/test/test_time.pyo
+#usr/lib/python2.3/test/test_timeout.py
+#usr/lib/python2.3/test/test_timeout.pyc
+#usr/lib/python2.3/test/test_timeout.pyo
+#usr/lib/python2.3/test/test_timing.py
+#usr/lib/python2.3/test/test_timing.pyc
+#usr/lib/python2.3/test/test_timing.pyo
+#usr/lib/python2.3/test/test_tokenize.py
+#usr/lib/python2.3/test/test_tokenize.pyc
+#usr/lib/python2.3/test/test_tokenize.pyo
+#usr/lib/python2.3/test/test_trace.py
+#usr/lib/python2.3/test/test_trace.pyc
+#usr/lib/python2.3/test/test_trace.pyo
+#usr/lib/python2.3/test/test_traceback.py
+#usr/lib/python2.3/test/test_traceback.pyc
+#usr/lib/python2.3/test/test_traceback.pyo
+#usr/lib/python2.3/test/test_types.py
+#usr/lib/python2.3/test/test_types.pyc
+#usr/lib/python2.3/test/test_types.pyo
+#usr/lib/python2.3/test/test_ucn.py
+#usr/lib/python2.3/test/test_ucn.pyc
+#usr/lib/python2.3/test/test_ucn.pyo
+#usr/lib/python2.3/test/test_unary.py
+#usr/lib/python2.3/test/test_unary.pyc
+#usr/lib/python2.3/test/test_unary.pyo
+#usr/lib/python2.3/test/test_unicode.py
+#usr/lib/python2.3/test/test_unicode.pyc
+#usr/lib/python2.3/test/test_unicode.pyo
+#usr/lib/python2.3/test/test_unicode_file.py
+#usr/lib/python2.3/test/test_unicode_file.pyc
+#usr/lib/python2.3/test/test_unicode_file.pyo
+#usr/lib/python2.3/test/test_unicodedata.py
+#usr/lib/python2.3/test/test_unicodedata.pyc
+#usr/lib/python2.3/test/test_unicodedata.pyo
+#usr/lib/python2.3/test/test_univnewlines.py
+#usr/lib/python2.3/test/test_univnewlines.pyc
+#usr/lib/python2.3/test/test_univnewlines.pyo
+#usr/lib/python2.3/test/test_unpack.py
+#usr/lib/python2.3/test/test_unpack.pyc
+#usr/lib/python2.3/test/test_unpack.pyo
+#usr/lib/python2.3/test/test_urllib.py
+#usr/lib/python2.3/test/test_urllib.pyc
+#usr/lib/python2.3/test/test_urllib.pyo
+#usr/lib/python2.3/test/test_urllib2.py
+#usr/lib/python2.3/test/test_urllib2.pyc
+#usr/lib/python2.3/test/test_urllib2.pyo
+#usr/lib/python2.3/test/test_urllibnet.py
+#usr/lib/python2.3/test/test_urllibnet.pyc
+#usr/lib/python2.3/test/test_urllibnet.pyo
+#usr/lib/python2.3/test/test_urlparse.py
+#usr/lib/python2.3/test/test_urlparse.pyc
+#usr/lib/python2.3/test/test_urlparse.pyo
+#usr/lib/python2.3/test/test_userdict.py
+#usr/lib/python2.3/test/test_userdict.pyc
+#usr/lib/python2.3/test/test_userdict.pyo
+#usr/lib/python2.3/test/test_userlist.py
+#usr/lib/python2.3/test/test_userlist.pyc
+#usr/lib/python2.3/test/test_userlist.pyo
+#usr/lib/python2.3/test/test_userstring.py
+#usr/lib/python2.3/test/test_userstring.pyc
+#usr/lib/python2.3/test/test_userstring.pyo
+#usr/lib/python2.3/test/test_uu.py
+#usr/lib/python2.3/test/test_uu.pyc
+#usr/lib/python2.3/test/test_uu.pyo
+#usr/lib/python2.3/test/test_warnings.py
+#usr/lib/python2.3/test/test_warnings.pyc
+#usr/lib/python2.3/test/test_warnings.pyo
+#usr/lib/python2.3/test/test_wave.py
+#usr/lib/python2.3/test/test_wave.pyc
+#usr/lib/python2.3/test/test_wave.pyo
+#usr/lib/python2.3/test/test_weakref.py
+#usr/lib/python2.3/test/test_weakref.pyc
+#usr/lib/python2.3/test/test_weakref.pyo
+#usr/lib/python2.3/test/test_whichdb.py
+#usr/lib/python2.3/test/test_whichdb.pyc
+#usr/lib/python2.3/test/test_whichdb.pyo
+#usr/lib/python2.3/test/test_winreg.py
+#usr/lib/python2.3/test/test_winreg.pyc
+#usr/lib/python2.3/test/test_winreg.pyo
+#usr/lib/python2.3/test/test_winsound.py
+#usr/lib/python2.3/test/test_winsound.pyc
+#usr/lib/python2.3/test/test_winsound.pyo
+#usr/lib/python2.3/test/test_xmllib.py
+#usr/lib/python2.3/test/test_xmllib.pyc
+#usr/lib/python2.3/test/test_xmllib.pyo
+#usr/lib/python2.3/test/test_xmlrpc.py
+#usr/lib/python2.3/test/test_xmlrpc.pyc
+#usr/lib/python2.3/test/test_xmlrpc.pyo
+#usr/lib/python2.3/test/test_xpickle.py
+#usr/lib/python2.3/test/test_xpickle.pyc
+#usr/lib/python2.3/test/test_xpickle.pyo
+#usr/lib/python2.3/test/test_xreadline.py
+#usr/lib/python2.3/test/test_xreadline.pyc
+#usr/lib/python2.3/test/test_xreadline.pyo
+#usr/lib/python2.3/test/test_zipfile.py
+#usr/lib/python2.3/test/test_zipfile.pyc
+#usr/lib/python2.3/test/test_zipfile.pyo
+#usr/lib/python2.3/test/test_zipimport.py
+#usr/lib/python2.3/test/test_zipimport.pyc
+#usr/lib/python2.3/test/test_zipimport.pyo
+#usr/lib/python2.3/test/test_zlib.py
+#usr/lib/python2.3/test/test_zlib.pyc
+#usr/lib/python2.3/test/test_zlib.pyo
+#usr/lib/python2.3/test/testall.py
+#usr/lib/python2.3/test/testall.pyc
+#usr/lib/python2.3/test/testall.pyo
+#usr/lib/python2.3/test/testcodec.py
+#usr/lib/python2.3/test/testcodec.pyc
+#usr/lib/python2.3/test/testcodec.pyo
+#usr/lib/python2.3/test/testimg.uue
+#usr/lib/python2.3/test/testimgr.uue
+#usr/lib/python2.3/test/testrgb.uue
+#usr/lib/python2.3/test/testtar.tar
+#usr/lib/python2.3/test/tf_inherit_check.py
+#usr/lib/python2.3/test/tf_inherit_check.pyc
+#usr/lib/python2.3/test/tf_inherit_check.pyo
+#usr/lib/python2.3/test/tokenize_tests.txt
+#usr/lib/python2.3/test/xmltests.py
+#usr/lib/python2.3/test/xmltests.pyc
+#usr/lib/python2.3/test/xmltests.pyo
+#usr/lib/python2.3/textwrap.py
+usr/lib/python2.3/textwrap.pyc
+#usr/lib/python2.3/textwrap.pyo
+#usr/lib/python2.3/this.py
+usr/lib/python2.3/this.pyc
+#usr/lib/python2.3/this.pyo
+#usr/lib/python2.3/threading.py
+usr/lib/python2.3/threading.pyc
+#usr/lib/python2.3/threading.pyo
+#usr/lib/python2.3/timeit.py
+usr/lib/python2.3/timeit.pyc
+#usr/lib/python2.3/timeit.pyo
+#usr/lib/python2.3/toaiff.py
+#usr/lib/python2.3/toaiff.pyc
+#usr/lib/python2.3/toaiff.pyo
+#usr/lib/python2.3/token.py
+usr/lib/python2.3/token.pyc
+#usr/lib/python2.3/token.pyo
+#usr/lib/python2.3/tokenize.py
+usr/lib/python2.3/tokenize.pyc
+#usr/lib/python2.3/tokenize.pyo
+#usr/lib/python2.3/trace.py
+usr/lib/python2.3/trace.pyc
+#usr/lib/python2.3/trace.pyo
+#usr/lib/python2.3/traceback.py
+usr/lib/python2.3/traceback.pyc
+#usr/lib/python2.3/traceback.pyo
+#usr/lib/python2.3/tty.py
+usr/lib/python2.3/tty.pyc
+#usr/lib/python2.3/tty.pyo
+#usr/lib/python2.3/types.py
+usr/lib/python2.3/types.pyc
+#usr/lib/python2.3/types.pyo
+#usr/lib/python2.3/tzparse.py
+usr/lib/python2.3/tzparse.pyc
+#usr/lib/python2.3/tzparse.pyo
+#usr/lib/python2.3/unittest.py
+usr/lib/python2.3/unittest.pyc
+#usr/lib/python2.3/unittest.pyo
+#usr/lib/python2.3/urllib.py
+usr/lib/python2.3/urllib.pyc
+#usr/lib/python2.3/urllib.pyo
+#usr/lib/python2.3/urllib2.py
+usr/lib/python2.3/urllib2.pyc
+#usr/lib/python2.3/urllib2.pyo
+#usr/lib/python2.3/urlparse.py
+usr/lib/python2.3/urlparse.pyc
+#usr/lib/python2.3/urlparse.pyo
+#usr/lib/python2.3/user.py
+usr/lib/python2.3/user.pyc
+#usr/lib/python2.3/user.pyo
+#usr/lib/python2.3/uu.py
+usr/lib/python2.3/uu.pyc
+#usr/lib/python2.3/uu.pyo
+#usr/lib/python2.3/warnings.py
+usr/lib/python2.3/warnings.pyc
+#usr/lib/python2.3/warnings.pyo
+#usr/lib/python2.3/wave.py
+#usr/lib/python2.3/wave.pyc
+#usr/lib/python2.3/wave.pyo
+#usr/lib/python2.3/weakref.py
+usr/lib/python2.3/weakref.pyc
+#usr/lib/python2.3/weakref.pyo
+#usr/lib/python2.3/webbrowser.py
+#usr/lib/python2.3/webbrowser.pyc
+#usr/lib/python2.3/webbrowser.pyo
+#usr/lib/python2.3/whichdb.py
+usr/lib/python2.3/whichdb.pyc
+#usr/lib/python2.3/whichdb.pyo
+#usr/lib/python2.3/whrandom.py
+usr/lib/python2.3/whrandom.pyc
+#usr/lib/python2.3/whrandom.pyo
+#usr/lib/python2.3/xdrlib.py
+usr/lib/python2.3/xdrlib.pyc
+#usr/lib/python2.3/xdrlib.pyo
+#usr/lib/python2.3/xml
+#usr/lib/python2.3/xml/__init__.py
+usr/lib/python2.3/xml/__init__.pyc
+#usr/lib/python2.3/xml/__init__.pyo
+#usr/lib/python2.3/xml/dom
+#usr/lib/python2.3/xml/dom/NodeFilter.py
+usr/lib/python2.3/xml/dom/NodeFilter.pyc
+#usr/lib/python2.3/xml/dom/NodeFilter.pyo
+#usr/lib/python2.3/xml/dom/__init__.py
+usr/lib/python2.3/xml/dom/__init__.pyc
+#usr/lib/python2.3/xml/dom/__init__.pyo
+#usr/lib/python2.3/xml/dom/domreg.py
+usr/lib/python2.3/xml/dom/domreg.pyc
+#usr/lib/python2.3/xml/dom/domreg.pyo
+#usr/lib/python2.3/xml/dom/expatbuilder.py
+usr/lib/python2.3/xml/dom/expatbuilder.pyc
+#usr/lib/python2.3/xml/dom/expatbuilder.pyo
+#usr/lib/python2.3/xml/dom/minicompat.py
+usr/lib/python2.3/xml/dom/minicompat.pyc
+#usr/lib/python2.3/xml/dom/minicompat.pyo
+#usr/lib/python2.3/xml/dom/minidom.py
+usr/lib/python2.3/xml/dom/minidom.pyc
+#usr/lib/python2.3/xml/dom/minidom.pyo
+#usr/lib/python2.3/xml/dom/pulldom.py
+usr/lib/python2.3/xml/dom/pulldom.pyc
+#usr/lib/python2.3/xml/dom/pulldom.pyo
+#usr/lib/python2.3/xml/dom/xmlbuilder.py
+usr/lib/python2.3/xml/dom/xmlbuilder.pyc
+#usr/lib/python2.3/xml/dom/xmlbuilder.pyo
+#usr/lib/python2.3/xml/parsers
+#usr/lib/python2.3/xml/parsers/__init__.py
+usr/lib/python2.3/xml/parsers/__init__.pyc
+#usr/lib/python2.3/xml/parsers/__init__.pyo
+#usr/lib/python2.3/xml/parsers/expat.py
+usr/lib/python2.3/xml/parsers/expat.pyc
+#usr/lib/python2.3/xml/parsers/expat.pyo
+#usr/lib/python2.3/xml/sax
+#usr/lib/python2.3/xml/sax/__init__.py
+usr/lib/python2.3/xml/sax/__init__.pyc
+#usr/lib/python2.3/xml/sax/__init__.pyo
+#usr/lib/python2.3/xml/sax/_exceptions.py
+usr/lib/python2.3/xml/sax/_exceptions.pyc
+#usr/lib/python2.3/xml/sax/_exceptions.pyo
+#usr/lib/python2.3/xml/sax/expatreader.py
+usr/lib/python2.3/xml/sax/expatreader.pyc
+#usr/lib/python2.3/xml/sax/expatreader.pyo
+#usr/lib/python2.3/xml/sax/handler.py
+usr/lib/python2.3/xml/sax/handler.pyc
+#usr/lib/python2.3/xml/sax/handler.pyo
+#usr/lib/python2.3/xml/sax/saxutils.py
+usr/lib/python2.3/xml/sax/saxutils.pyc
+#usr/lib/python2.3/xml/sax/saxutils.pyo
+#usr/lib/python2.3/xml/sax/xmlreader.py
+usr/lib/python2.3/xml/sax/xmlreader.pyc
+#usr/lib/python2.3/xml/sax/xmlreader.pyo
+#usr/lib/python2.3/xmllib.py
+usr/lib/python2.3/xmllib.pyc
+#usr/lib/python2.3/xmllib.pyo
+#usr/lib/python2.3/xmlrpclib.py
+usr/lib/python2.3/xmlrpclib.pyc
+#usr/lib/python2.3/xmlrpclib.pyo
+#usr/lib/python2.3/zipfile.py
+usr/lib/python2.3/zipfile.pyc
+#usr/lib/python2.3/zipfile.pyo
+#usr/share/man/man1/python.1
+##
+## expat-1.95.7
+##
+#usr/bin/xmlwf
+#usr/include/expat.h
+#usr/lib/libexpat.a
+#usr/lib/libexpat.la
+usr/lib/libexpat.so
+usr/lib/libexpat.so.0
+usr/lib/libexpat.so.0.5.0
+#usr/share/man/man1/xmlwf.1
+##
+## gdbm-1.8.3
+##
+#usr/include/gdbm.h
+#usr/lib/libgdbm.a
+#usr/lib/libgdbm.la
+usr/lib/libgdbm.so
+usr/lib/libgdbm.so.3
+usr/lib/libgdbm.so.3.0.0
+#usr/share/info/gdbm.info
+#usr/share/man/man3/gdbm.3
+##
+## gmp-4.1.2
+##
+#usr/include/gmp.h
+#usr/lib/libgmp.a
+#usr/lib/libgmp.la
+usr/lib/libgmp.so
+usr/lib/libgmp.so.3
+usr/lib/libgmp.so.3.3.2
+#usr/share/info/gmp.info
+#usr/share/info/gmp.info-1
+#usr/share/info/gmp.info-2
+#usr/share/info/gmp.info-3
+#usr/share/info/gmp.info-4
+#usr/share/info/gmp.info-5
+#usr/share/info/gmp.info-6
+#usr/share/info/gmp.info-7
+#usr/share/info/gmp.info-8
+#usr/share/info/gmp.info-9
+##
+## libnet-1.1.2.1
+##
+#usr/include/libnet
+#usr/include/libnet/libnet-asn1.h
+#usr/include/libnet/libnet-functions.h
+#usr/include/libnet/libnet-headers.h
+#usr/include/libnet/libnet-macros.h
+#usr/include/libnet/libnet-structures.h
+#usr/include/libnet/libnet-types.h
+#usr/include/libnet.h
+#usr/lib/libnet.a
+##
+## libpcap-0.8.3
+##
+#usr/include/net/bpf.h
+#usr/include/pcap-namedb.h
+#usr/include/pcap.h
+#usr/lib/libpcap.a
+usr/lib/libpcap.so.0.8.3
+usr/lib/libpcap.so
+usr/lib/libpcap.so.0
+usr/lib/libpcap.so.0.8
+#usr/share/man/man3/pcap.3
+##
+## libpng-1.2.8
+##
+#usr/bin/libpng-config
+#usr/bin/libpng12-config
+#usr/include/libpng
+#usr/include/libpng12
+#usr/include/libpng12/png.h
+#usr/include/libpng12/pngconf.h
+#usr/include/png.h
+#usr/include/pngconf.h
+#usr/lib/libpng.a
+usr/lib/libpng.so
+usr/lib/libpng.so.3
+usr/lib/libpng.so.3.1.2.8
+#usr/lib/libpng12.a
+#usr/lib/libpng12.so
+#usr/lib/libpng12.so.0
+#usr/lib/libpng12.so.0.1.2.8
+#usr/lib/pkgconfig
+#usr/lib/pkgconfig/libpng.pc
+#usr/lib/pkgconfig/libpng12.pc
+#usr/share/man/man3/libpng.3
+#usr/share/man/man3/libpngpf.3
+#usr/share/man/man5/png.5
+##
+## gd-2.0.20
+##
+#usr/bin/annotate
+#usr/bin/bdftogd
+#usr/bin/gd2copypal
+#usr/bin/gd2topng
+#usr/bin/gdlib-config
+#usr/bin/gdparttopng
+#usr/bin/gdtojpeg
+#usr/bin/gdtopng
+#usr/bin/pngtogd
+#usr/bin/pngtogd2
+#usr/bin/webpng
+#usr/include/gd.h
+#usr/include/gdfx.h
+#usr/include/gd_io.h
+#usr/include/gdcache.h
+#usr/include/gdfontg.h
+#usr/include/gdfontl.h
+#usr/include/gdfontmb.h
+#usr/include/gdfonts.h
+#usr/include/gdfontt.h
+#usr/lib/libgd.a
+#usr/lib/libgd.la
+usr/lib/libgd.so
+usr/lib/libgd.so.2
+usr/lib/libgd.so.2.0.0
+##
+## popt-1.7
+##
+#usr/include/popt.h
+#usr/lib/libpopt.a
+#usr/lib/libpopt.la
+usr/lib/libpopt.so
+usr/lib/libpopt.so.0
+usr/lib/libpopt.so.0.0.0
+#usr/share/man/man3/popt.3
+##
+## slang-1.4.5-mini
+##
+#usr/include/slang
+#usr/include/slang/slang.h
+#usr/include/slang/slcurses.h
+#usr/lib/libslang.a
+##
+## newt-utf8_0.50.17
+##
+#usr/include/newt.h
+usr/lib/libnewt-utf8.so.0.50.17
+usr/lib/libnewt.so
+usr/lib/libnewt.so.0.50
+usr/lib/python2.3/site-packages/_snackmodule.so
+#usr/lib/python2.3/site-packages/snack.py
+usr/lib/python2.3/site-packages/snack.pyc
+##
+## libcap-1.10
+##
+#usr/include/sys/capability.h
+#usr/share/man/man3/cap_init.3
+#usr/share/man/man3/cap_free.3
+#usr/share/man/man3/cap_dup.3
+#usr/share/man/man3/cap_clear.3
+#usr/share/man/man3/cap_get_flag.3
+#usr/share/man/man3/cap_set_flag.3
+#usr/share/man/man3/cap_get_proc.3
+#usr/share/man/man3/cap_set_proc.3
+#usr/share/man/man3/cap_copy_ext.3
+#usr/share/man/man3/cap_size.3
+#usr/share/man/man3/cap_copy_int.3
+#usr/share/man/man3/cap_from_text.3
+#usr/share/man/man3/cap_to_text.3
+#usr/share/man/man3/_cap_names.3
+#usr/share/man/man3/capsetp.3
+#usr/share/man/man3/capgetp.3
+lib/libcap.so.1.10
+lib/libcap.so.1
+lib/libcap.so
+sbin/getpcaps
+sbin/setpcaps
+sbin/execcap
+sbin/sucap
+##
+## libusb-0.1.7
+##
+#usr/bin/libusb-config
+#usr/include/usb.h
+usr/lib/libusb-0.1.so.4
+usr/lib/libusb-0.1.so.4.3.0
+#usr/lib/libusb.a
+#usr/lib/libusb.la
+usr/lib/libusb.so
+##
+## linux-atm-2.4.1
+##
+#etc/atmsigd.conf
+#etc/hosts.atm
+usr/bin/aread
+usr/bin/atmdiag
+#usr/bin/atmdump
+#usr/bin/awrite
+#usr/bin/saaldump
+#usr/bin/sonetdiag
+#usr/bin/ttcp_atm
+#usr/include/atm.h
+#usr/include/atmarp.h
+#usr/include/atmarpd.h
+#usr/include/atmd.h
+#usr/include/atmsap.h
+#usr/lib/libatm.a
+#usr/lib/libatm.la
+usr/lib/libatm.so
+usr/lib/libatm.so.1
+usr/lib/libatm.so.1.0.0
+#usr/sbin/atmaddr
+usr/sbin/atmarp
+usr/sbin/atmarpd
+usr/sbin/atmloop
+usr/sbin/atmsigd
+usr/sbin/atmtcp
+#usr/sbin/bus
+#usr/sbin/enitune
+#usr/sbin/esi
+#usr/sbin/ilmid
+#usr/sbin/lecs
+#usr/sbin/les
+#usr/sbin/mpcd
+#usr/sbin/zeppelin
+#usr/sbin/zntune
+#usr/share/man/man4/atmsigd.conf.4
+#usr/share/man/man7/qos.7
+#usr/share/man/man7/sap.7
+#usr/share/man/man8/atmaddr.8
+#usr/share/man/man8/atmarp.8
+#usr/share/man/man8/atmarpd.8
+#usr/share/man/man8/atmdiag.8
+#usr/share/man/man8/atmdump.8
+#usr/share/man/man8/atmloop.8
+#usr/share/man/man8/atmsigd.8
+#usr/share/man/man8/atmtcp.8
+#usr/share/man/man8/bus.8
+#usr/share/man/man8/esi.8
+#usr/share/man/man8/lecs.8
+#usr/share/man/man8/les.8
+#usr/share/man/man8/mpcd.8
+#usr/share/man/man8/zeppelin.8
+##
+## openssl-0.9.7i
+##
+#etc/ssl
+#etc/ssl/certs
+#etc/ssl/misc
+#etc/ssl/misc/CA.pl
+#etc/ssl/misc/CA.sh
+#etc/ssl/misc/c_hash
+#etc/ssl/misc/c_info
+#etc/ssl/misc/c_issuer
+#etc/ssl/misc/c_name
+etc/ssl/openssl.cnf
+#etc/ssl/private
+#usr/bin/c_rehash
+usr/bin/openssl
+#usr/bin/openssl_fips_fingerprint
+#usr/include/openssl
+#usr/include/openssl/aes.h
+#usr/include/openssl/asn1.h
+#usr/include/openssl/asn1_mac.h
+#usr/include/openssl/asn1t.h
+#usr/include/openssl/bio.h
+#usr/include/openssl/blowfish.h
+#usr/include/openssl/bn.h
+#usr/include/openssl/buffer.h
+#usr/include/openssl/cast.h
+#usr/include/openssl/comp.h
+#usr/include/openssl/conf.h
+#usr/include/openssl/conf_api.h
+#usr/include/openssl/crypto.h
+#usr/include/openssl/des.h
+#usr/include/openssl/des_old.h
+#usr/include/openssl/dh.h
+#usr/include/openssl/dsa.h
+#usr/include/openssl/dso.h
+#usr/include/openssl/e_os2.h
+#usr/include/openssl/ebcdic.h
+#usr/include/openssl/engine.h
+#usr/include/openssl/err.h
+#usr/include/openssl/evp.h
+#usr/include/openssl/fips.h
+#usr/include/openssl/fips_rand.h
+#usr/include/openssl/fips_sha.h
+#usr/include/openssl/hmac.h
+#usr/include/openssl/krb5_asn.h
+#usr/include/openssl/kssl.h
+#usr/include/openssl/lhash.h
+#usr/include/openssl/md2.h
+#usr/include/openssl/md4.h
+#usr/include/openssl/md5.h
+#usr/include/openssl/obj_mac.h
+#usr/include/openssl/objects.h
+#usr/include/openssl/ocsp.h
+#usr/include/openssl/opensslconf.h
+#usr/include/openssl/opensslv.h
+#usr/include/openssl/ossl_typ.h
+#usr/include/openssl/pem.h
+#usr/include/openssl/pem2.h
+#usr/include/openssl/pkcs12.h
+#usr/include/openssl/pkcs7.h
+#usr/include/openssl/rand.h
+#usr/include/openssl/rc2.h
+#usr/include/openssl/rc4.h
+#usr/include/openssl/ripemd.h
+#usr/include/openssl/rsa.h
+#usr/include/openssl/safestack.h
+#usr/include/openssl/sha.h
+#usr/include/openssl/ssl.h
+#usr/include/openssl/ssl2.h
+#usr/include/openssl/ssl23.h
+#usr/include/openssl/ssl3.h
+#usr/include/openssl/stack.h
+#usr/include/openssl/symhacks.h
+#usr/include/openssl/tls1.h
+#usr/include/openssl/tmdiff.h
+#usr/include/openssl/txt_db.h
+#usr/include/openssl/ui.h
+#usr/include/openssl/ui_compat.h
+#usr/include/openssl/x509.h
+#usr/include/openssl/x509_vfy.h
+#usr/include/openssl/x509v3.h
+#usr/lib/libcrypto.a
+#usr/lib/libcrypto.a.sha1
+usr/lib/libcrypto.so
+usr/lib/libcrypto.so.0
+usr/lib/libcrypto.so.0.9.7
+#usr/lib/libcrypto.so.0.9.7.sha1
+#usr/lib/libssl.a
+usr/lib/libssl.so
+usr/lib/libssl.so.0
+usr/lib/libssl.so.0.9.7
+#usr/lib/pkgconfig
+#usr/lib/pkgconfig/openssl.pc
+#usr/share/man/man1/CA.pl.1
+#usr/share/man/man1/asn1parse.1
+#usr/share/man/man1/ca.1
+#usr/share/man/man1/ciphers.1
+#usr/share/man/man1/crl.1
+#usr/share/man/man1/crl2pkcs7.1
+#usr/share/man/man1/dgst.1
+#usr/share/man/man1/dhparam.1
+#usr/share/man/man1/dsa.1
+#usr/share/man/man1/dsaparam.1
+#usr/share/man/man1/enc.1
+#usr/share/man/man1/errstr.1
+#usr/share/man/man1/gendsa.1
+#usr/share/man/man1/genrsa.1
+#usr/share/man/man1/md2.1
+#usr/share/man/man1/md4.1
+#usr/share/man/man1/md5.1
+#usr/share/man/man1/mdc2.1
+#usr/share/man/man1/nseq.1
+#usr/share/man/man1/ocsp.1
+#usr/share/man/man1/openssl.1
+#usr/share/man/man1/pkcs12.1
+#usr/share/man/man1/pkcs7.1
+#usr/share/man/man1/pkcs8.1
+#usr/share/man/man1/rand.1
+#usr/share/man/man1/req.1
+#usr/share/man/man1/ripemd160.1
+#usr/share/man/man1/rsa.1
+#usr/share/man/man1/rsautl.1
+#usr/share/man/man1/s_client.1
+#usr/share/man/man1/s_server.1
+#usr/share/man/man1/s_time.1
+#usr/share/man/man1/sess_id.1
+#usr/share/man/man1/sha.1
+#usr/share/man/man1/sha1.1
+#usr/share/man/man1/smime.1
+#usr/share/man/man1/speed.1
+#usr/share/man/man1/spkac.1
+#usr/share/man/man1/verify.1
+#usr/share/man/man1/version.1
+#usr/share/man/man1/x509.1
+#usr/share/man/man3/ASN1_OBJECT_free.3
+#usr/share/man/man3/ASN1_OBJECT_new.3
+#usr/share/man/man3/ASN1_STRING_cmp.3
+#usr/share/man/man3/ASN1_STRING_data.3
+#usr/share/man/man3/ASN1_STRING_dup.3
+#usr/share/man/man3/ASN1_STRING_free.3
+#usr/share/man/man3/ASN1_STRING_length.3
+#usr/share/man/man3/ASN1_STRING_length_set.3
+#usr/share/man/man3/ASN1_STRING_new.3
+#usr/share/man/man3/ASN1_STRING_print_ex.3
+#usr/share/man/man3/ASN1_STRING_print_ex_fp.3
+#usr/share/man/man3/ASN1_STRING_set.3
+#usr/share/man/man3/ASN1_STRING_type.3
+#usr/share/man/man3/ASN1_STRING_type_new.3
+#usr/share/man/man3/BF_cbc_encrypt.3
+#usr/share/man/man3/BF_cfb64_encrypt.3
+#usr/share/man/man3/BF_decrypt.3
+#usr/share/man/man3/BF_ecb_encrypt.3
+#usr/share/man/man3/BF_encrypt.3
+#usr/share/man/man3/BF_ofb64_encrypt.3
+#usr/share/man/man3/BF_options.3
+#usr/share/man/man3/BF_set_key.3
+#usr/share/man/man3/BIO_append_filename.3
+#usr/share/man/man3/BIO_callback_ctrl.3
+#usr/share/man/man3/BIO_ctrl.3
+#usr/share/man/man3/BIO_ctrl_get_read_request.3
+#usr/share/man/man3/BIO_ctrl_get_write_guarantee.3
+#usr/share/man/man3/BIO_ctrl_pending.3
+#usr/share/man/man3/BIO_ctrl_reset_read_request.3
+#usr/share/man/man3/BIO_ctrl_wpending.3
+#usr/share/man/man3/BIO_debug_callback.3
+#usr/share/man/man3/BIO_destroy_bio_pair.3
+#usr/share/man/man3/BIO_do_accept.3
+#usr/share/man/man3/BIO_do_connect.3
+#usr/share/man/man3/BIO_eof.3
+#usr/share/man/man3/BIO_f_base64.3
+#usr/share/man/man3/BIO_f_buffer.3
+#usr/share/man/man3/BIO_f_cipher.3
+#usr/share/man/man3/BIO_f_md.3
+#usr/share/man/man3/BIO_f_null.3
+#usr/share/man/man3/BIO_f_ssl.3
+#usr/share/man/man3/BIO_find_type.3
+#usr/share/man/man3/BIO_flush.3
+#usr/share/man/man3/BIO_free.3
+#usr/share/man/man3/BIO_free_all.3
+#usr/share/man/man3/BIO_get_accept_port.3
+#usr/share/man/man3/BIO_get_bind_mode.3
+#usr/share/man/man3/BIO_get_callback.3
+#usr/share/man/man3/BIO_get_callback_arg.3
+#usr/share/man/man3/BIO_get_cipher_ctx.3
+#usr/share/man/man3/BIO_get_cipher_status.3
+#usr/share/man/man3/BIO_get_close.3
+#usr/share/man/man3/BIO_get_conn_hostname.3
+#usr/share/man/man3/BIO_get_conn_int_port.3
+#usr/share/man/man3/BIO_get_conn_ip.3
+#usr/share/man/man3/BIO_get_conn_port.3
+#usr/share/man/man3/BIO_get_fd.3
+#usr/share/man/man3/BIO_get_fp.3
+#usr/share/man/man3/BIO_get_info_callback.3
+#usr/share/man/man3/BIO_get_md.3
+#usr/share/man/man3/BIO_get_md_ctx.3
+#usr/share/man/man3/BIO_get_mem_data.3
+#usr/share/man/man3/BIO_get_mem_ptr.3
+#usr/share/man/man3/BIO_get_num_renegotiates.3
+#usr/share/man/man3/BIO_get_read_request.3
+#usr/share/man/man3/BIO_get_retry_BIO.3
+#usr/share/man/man3/BIO_get_retry_reason.3
+#usr/share/man/man3/BIO_get_ssl.3
+#usr/share/man/man3/BIO_get_write_buf_size.3
+#usr/share/man/man3/BIO_get_write_guarantee.3
+#usr/share/man/man3/BIO_gets.3
+#usr/share/man/man3/BIO_int_ctrl.3
+#usr/share/man/man3/BIO_make_bio_pair.3
+#usr/share/man/man3/BIO_new.3
+#usr/share/man/man3/BIO_new_bio_pair.3
+#usr/share/man/man3/BIO_new_buffer_ssl_connect.3
+#usr/share/man/man3/BIO_new_fd.3
+#usr/share/man/man3/BIO_new_file.3
+#usr/share/man/man3/BIO_new_fp.3
+#usr/share/man/man3/BIO_new_mem_buf.3
+#usr/share/man/man3/BIO_new_socket.3
+#usr/share/man/man3/BIO_new_ssl.3
+#usr/share/man/man3/BIO_new_ssl_connect.3
+#usr/share/man/man3/BIO_next.3
+#usr/share/man/man3/BIO_pending.3
+#usr/share/man/man3/BIO_pop.3
+#usr/share/man/man3/BIO_ptr_ctrl.3
+#usr/share/man/man3/BIO_push.3
+#usr/share/man/man3/BIO_puts.3
+#usr/share/man/man3/BIO_read.3
+#usr/share/man/man3/BIO_read_filename.3
+#usr/share/man/man3/BIO_reset.3
+#usr/share/man/man3/BIO_retry_type.3
+#usr/share/man/man3/BIO_rw_filename.3
+#usr/share/man/man3/BIO_s_accept.3
+#usr/share/man/man3/BIO_s_bio.3
+#usr/share/man/man3/BIO_s_connect.3
+#usr/share/man/man3/BIO_s_fd.3
+#usr/share/man/man3/BIO_s_file.3
+#usr/share/man/man3/BIO_s_mem.3
+#usr/share/man/man3/BIO_s_null.3
+#usr/share/man/man3/BIO_s_socket.3
+#usr/share/man/man3/BIO_seek.3
+#usr/share/man/man3/BIO_set.3
+#usr/share/man/man3/BIO_set_accept_bios.3
+#usr/share/man/man3/BIO_set_accept_port.3
+#usr/share/man/man3/BIO_set_bind_mode.3
+#usr/share/man/man3/BIO_set_callback.3
+#usr/share/man/man3/BIO_set_callback_arg.3
+#usr/share/man/man3/BIO_set_cipher.3
+#usr/share/man/man3/BIO_set_close.3
+#usr/share/man/man3/BIO_set_conn_hostname.3
+#usr/share/man/man3/BIO_set_conn_int_port.3
+#usr/share/man/man3/BIO_set_conn_ip.3
+#usr/share/man/man3/BIO_set_conn_port.3
+#usr/share/man/man3/BIO_set_fd.3
+#usr/share/man/man3/BIO_set_fp.3
+#usr/share/man/man3/BIO_set_info_callback.3
+#usr/share/man/man3/BIO_set_md.3
+#usr/share/man/man3/BIO_set_mem_buf.3
+#usr/share/man/man3/BIO_set_mem_eof_return.3
+#usr/share/man/man3/BIO_set_nbio.3
+#usr/share/man/man3/BIO_set_nbio_accept.3
+#usr/share/man/man3/BIO_set_ssl.3
+#usr/share/man/man3/BIO_set_ssl_mode.3
+#usr/share/man/man3/BIO_set_ssl_renegotiate_bytes.3
+#usr/share/man/man3/BIO_set_ssl_renegotiate_timeout.3
+#usr/share/man/man3/BIO_set_write_buf_size.3
+#usr/share/man/man3/BIO_should_io_special.3
+#usr/share/man/man3/BIO_should_read.3
+#usr/share/man/man3/BIO_should_retry.3
+#usr/share/man/man3/BIO_should_write.3
+#usr/share/man/man3/BIO_shutdown_wr.3
+#usr/share/man/man3/BIO_ssl_copy_session_id.3
+#usr/share/man/man3/BIO_ssl_shutdown.3
+#usr/share/man/man3/BIO_tell.3
+#usr/share/man/man3/BIO_vfree.3
+#usr/share/man/man3/BIO_wpending.3
+#usr/share/man/man3/BIO_write.3
+#usr/share/man/man3/BIO_write_filename.3
+#usr/share/man/man3/BN_CTX_end.3
+#usr/share/man/man3/BN_CTX_free.3
+#usr/share/man/man3/BN_CTX_get.3
+#usr/share/man/man3/BN_CTX_init.3
+#usr/share/man/man3/BN_CTX_new.3
+#usr/share/man/man3/BN_CTX_start.3
+#usr/share/man/man3/BN_MONT_CTX_copy.3
+#usr/share/man/man3/BN_MONT_CTX_free.3
+#usr/share/man/man3/BN_MONT_CTX_init.3
+#usr/share/man/man3/BN_MONT_CTX_new.3
+#usr/share/man/man3/BN_MONT_CTX_set.3
+#usr/share/man/man3/BN_RECP_CTX_free.3
+#usr/share/man/man3/BN_RECP_CTX_init.3
+#usr/share/man/man3/BN_RECP_CTX_new.3
+#usr/share/man/man3/BN_RECP_CTX_set.3
+#usr/share/man/man3/BN_add.3
+#usr/share/man/man3/BN_add_word.3
+#usr/share/man/man3/BN_bin2bn.3
+#usr/share/man/man3/BN_bn2bin.3
+#usr/share/man/man3/BN_bn2dec.3
+#usr/share/man/man3/BN_bn2hex.3
+#usr/share/man/man3/BN_bn2mpi.3
+#usr/share/man/man3/BN_clear.3
+#usr/share/man/man3/BN_clear_bit.3
+#usr/share/man/man3/BN_clear_free.3
+#usr/share/man/man3/BN_cmp.3
+#usr/share/man/man3/BN_copy.3
+#usr/share/man/man3/BN_dec2bn.3
+#usr/share/man/man3/BN_div.3
+#usr/share/man/man3/BN_div_recp.3
+#usr/share/man/man3/BN_div_word.3
+#usr/share/man/man3/BN_dup.3
+#usr/share/man/man3/BN_exp.3
+#usr/share/man/man3/BN_free.3
+#usr/share/man/man3/BN_from_montgomery.3
+#usr/share/man/man3/BN_gcd.3
+#usr/share/man/man3/BN_generate_prime.3
+#usr/share/man/man3/BN_get_word.3
+#usr/share/man/man3/BN_hex2bn.3
+#usr/share/man/man3/BN_init.3
+#usr/share/man/man3/BN_is_bit_set.3
+#usr/share/man/man3/BN_is_odd.3
+#usr/share/man/man3/BN_is_one.3
+#usr/share/man/man3/BN_is_prime.3
+#usr/share/man/man3/BN_is_prime_fasttest.3
+#usr/share/man/man3/BN_is_word.3
+#usr/share/man/man3/BN_is_zero.3
+#usr/share/man/man3/BN_lshift.3
+#usr/share/man/man3/BN_lshift1.3
+#usr/share/man/man3/BN_mask_bits.3
+#usr/share/man/man3/BN_mod.3
+#usr/share/man/man3/BN_mod_add.3
+#usr/share/man/man3/BN_mod_exp.3
+#usr/share/man/man3/BN_mod_inverse.3
+#usr/share/man/man3/BN_mod_mul.3
+#usr/share/man/man3/BN_mod_mul_montgomery.3
+#usr/share/man/man3/BN_mod_mul_reciprocal.3
+#usr/share/man/man3/BN_mod_sqr.3
+#usr/share/man/man3/BN_mod_sub.3
+#usr/share/man/man3/BN_mod_word.3
+#usr/share/man/man3/BN_mpi2bn.3
+#usr/share/man/man3/BN_mul.3
+#usr/share/man/man3/BN_mul_word.3
+#usr/share/man/man3/BN_new.3
+#usr/share/man/man3/BN_nnmod.3
+#usr/share/man/man3/BN_num_bits.3
+#usr/share/man/man3/BN_num_bits_word.3
+#usr/share/man/man3/BN_num_bytes.3
+#usr/share/man/man3/BN_one.3
+#usr/share/man/man3/BN_print.3
+#usr/share/man/man3/BN_print_fp.3
+#usr/share/man/man3/BN_pseudo_rand.3
+#usr/share/man/man3/BN_rand.3
+#usr/share/man/man3/BN_rshift.3
+#usr/share/man/man3/BN_rshift1.3
+#usr/share/man/man3/BN_set_bit.3
+#usr/share/man/man3/BN_set_word.3
+#usr/share/man/man3/BN_sqr.3
+#usr/share/man/man3/BN_sub.3
+#usr/share/man/man3/BN_sub_word.3
+#usr/share/man/man3/BN_swap.3
+#usr/share/man/man3/BN_to_montgomery.3
+#usr/share/man/man3/BN_ucmp.3
+#usr/share/man/man3/BN_value_one.3
+#usr/share/man/man3/BN_zero.3
+#usr/share/man/man3/BUF_MEM_free.3
+#usr/share/man/man3/BUF_MEM_grow.3
+#usr/share/man/man3/BUF_MEM_new.3
+#usr/share/man/man3/BUF_strdup.3
+#usr/share/man/man3/CONF_modules_free.3
+#usr/share/man/man3/CONF_modules_load.3
+#usr/share/man/man3/CONF_modules_load_file.3
+#usr/share/man/man3/CONF_modules_unload.3
+#usr/share/man/man3/CRYPTO_destroy_dynlockid.3
+#usr/share/man/man3/CRYPTO_get_ex_data.3
+#usr/share/man/man3/CRYPTO_get_new_dynlockid.3
+#usr/share/man/man3/CRYPTO_lock.3
+#usr/share/man/man3/CRYPTO_num_locks.3
+#usr/share/man/man3/CRYPTO_set_dynlock_create_callback.3
+#usr/share/man/man3/CRYPTO_set_dynlock_destroy_callback.3
+#usr/share/man/man3/CRYPTO_set_dynlock_lock_callback.3
+#usr/share/man/man3/CRYPTO_set_ex_data.3
+#usr/share/man/man3/CRYPTO_set_id_callback.3
+#usr/share/man/man3/CRYPTO_set_locking_callback.3
+#usr/share/man/man3/DES_cbc_cksum.3
+#usr/share/man/man3/DES_cfb64_encrypt.3
+#usr/share/man/man3/DES_cfb_encrypt.3
+#usr/share/man/man3/DES_crypt.3
+#usr/share/man/man3/DES_ecb2_encrypt.3
+#usr/share/man/man3/DES_ecb3_encrypt.3
+#usr/share/man/man3/DES_ecb_encrypt.3
+#usr/share/man/man3/DES_ede2_cbc_encrypt.3
+#usr/share/man/man3/DES_ede2_cfb64_encrypt.3
+#usr/share/man/man3/DES_ede2_ofb64_encrypt.3
+#usr/share/man/man3/DES_ede3_cbc_encrypt.3
+#usr/share/man/man3/DES_ede3_cbcm_encrypt.3
+#usr/share/man/man3/DES_ede3_cfb64_encrypt.3
+#usr/share/man/man3/DES_ede3_ofb64_encrypt.3
+#usr/share/man/man3/DES_enc_read.3
+#usr/share/man/man3/DES_enc_write.3
+#usr/share/man/man3/DES_fcrypt.3
+#usr/share/man/man3/DES_is_weak_key.3
+#usr/share/man/man3/DES_key_sched.3
+#usr/share/man/man3/DES_ncbc_encrypt.3
+#usr/share/man/man3/DES_ofb64_encrypt.3
+#usr/share/man/man3/DES_ofb_encrypt.3
+#usr/share/man/man3/DES_pcbc_encrypt.3
+#usr/share/man/man3/DES_quad_cksum.3
+#usr/share/man/man3/DES_random_key.3
+#usr/share/man/man3/DES_set_key.3
+#usr/share/man/man3/DES_set_key_checked.3
+#usr/share/man/man3/DES_set_key_unchecked.3
+#usr/share/man/man3/DES_set_odd_parity.3
+#usr/share/man/man3/DES_string_to_2keys.3
+#usr/share/man/man3/DES_string_to_key.3
+#usr/share/man/man3/DES_xcbc_encrypt.3
+#usr/share/man/man3/DH_OpenSSL.3
+#usr/share/man/man3/DH_check.3
+#usr/share/man/man3/DH_compute_key.3
+#usr/share/man/man3/DH_free.3
+#usr/share/man/man3/DH_generate_key.3
+#usr/share/man/man3/DH_generate_parameters.3
+#usr/share/man/man3/DH_get_default_method.3
+#usr/share/man/man3/DH_get_ex_data.3
+#usr/share/man/man3/DH_get_ex_new_index.3
+#usr/share/man/man3/DH_new.3
+#usr/share/man/man3/DH_new_method.3
+#usr/share/man/man3/DH_set_default_method.3
+#usr/share/man/man3/DH_set_ex_data.3
+#usr/share/man/man3/DH_set_method.3
+#usr/share/man/man3/DH_size.3
+#usr/share/man/man3/DHparams_print.3
+#usr/share/man/man3/DHparams_print_fp.3
+#usr/share/man/man3/DSA_OpenSSL.3
+#usr/share/man/man3/DSA_SIG_free.3
+#usr/share/man/man3/DSA_SIG_new.3
+#usr/share/man/man3/DSA_do_sign.3
+#usr/share/man/man3/DSA_do_verify.3
+#usr/share/man/man3/DSA_dup_DH.3
+#usr/share/man/man3/DSA_free.3
+#usr/share/man/man3/DSA_generate_key.3
+#usr/share/man/man3/DSA_generate_parameters.3
+#usr/share/man/man3/DSA_get_default_method.3
+#usr/share/man/man3/DSA_get_ex_data.3
+#usr/share/man/man3/DSA_get_ex_new_index.3
+#usr/share/man/man3/DSA_new.3
+#usr/share/man/man3/DSA_new_method.3
+#usr/share/man/man3/DSA_print.3
+#usr/share/man/man3/DSA_print_fp.3
+#usr/share/man/man3/DSA_set_default_method.3
+#usr/share/man/man3/DSA_set_ex_data.3
+#usr/share/man/man3/DSA_set_method.3
+#usr/share/man/man3/DSA_sign.3
+#usr/share/man/man3/DSA_sign_setup.3
+#usr/share/man/man3/DSA_size.3
+#usr/share/man/man3/DSA_verify.3
+#usr/share/man/man3/DSAparams_print.3
+#usr/share/man/man3/DSAparams_print_fp.3
+#usr/share/man/man3/ERR_GET_FUNC.3
+#usr/share/man/man3/ERR_GET_LIB.3
+#usr/share/man/man3/ERR_GET_REASON.3
+#usr/share/man/man3/ERR_PACK.3
+#usr/share/man/man3/ERR_add_error_data.3
+#usr/share/man/man3/ERR_clear_error.3
+#usr/share/man/man3/ERR_error_string.3
+#usr/share/man/man3/ERR_error_string_n.3
+#usr/share/man/man3/ERR_free_strings.3
+#usr/share/man/man3/ERR_func_error_string.3
+#usr/share/man/man3/ERR_get_error.3
+#usr/share/man/man3/ERR_get_error_line.3
+#usr/share/man/man3/ERR_get_error_line_data.3
+#usr/share/man/man3/ERR_get_next_error_library.3
+#usr/share/man/man3/ERR_lib_error_string.3
+#usr/share/man/man3/ERR_load_UI_strings.3
+#usr/share/man/man3/ERR_load_crypto_strings.3
+#usr/share/man/man3/ERR_load_strings.3
+#usr/share/man/man3/ERR_peek_error.3
+#usr/share/man/man3/ERR_peek_error_line.3
+#usr/share/man/man3/ERR_peek_error_line_data.3
+#usr/share/man/man3/ERR_peek_last_error.3
+#usr/share/man/man3/ERR_peek_last_error_line.3
+#usr/share/man/man3/ERR_peek_last_error_line_data.3
+#usr/share/man/man3/ERR_print_errors.3
+#usr/share/man/man3/ERR_print_errors_fp.3
+#usr/share/man/man3/ERR_put_error.3
+#usr/share/man/man3/ERR_reason_error_string.3
+#usr/share/man/man3/ERR_remove_state.3
+#usr/share/man/man3/EVP_BytesToKey.3
+#usr/share/man/man3/EVP_CIPHER_CTX_block_size.3
+#usr/share/man/man3/EVP_CIPHER_CTX_cipher.3
+#usr/share/man/man3/EVP_CIPHER_CTX_cleanup.3
+#usr/share/man/man3/EVP_CIPHER_CTX_ctrl.3
+#usr/share/man/man3/EVP_CIPHER_CTX_flags.3
+#usr/share/man/man3/EVP_CIPHER_CTX_get_app_data.3
+#usr/share/man/man3/EVP_CIPHER_CTX_init.3
+#usr/share/man/man3/EVP_CIPHER_CTX_iv_length.3
+#usr/share/man/man3/EVP_CIPHER_CTX_key_length.3
+#usr/share/man/man3/EVP_CIPHER_CTX_mode.3
+#usr/share/man/man3/EVP_CIPHER_CTX_nid.3
+#usr/share/man/man3/EVP_CIPHER_CTX_set_app_data.3
+#usr/share/man/man3/EVP_CIPHER_CTX_set_key_length.3
+#usr/share/man/man3/EVP_CIPHER_CTX_set_padding.3
+#usr/share/man/man3/EVP_CIPHER_CTX_type.3
+#usr/share/man/man3/EVP_CIPHER_asn1_to_param.3
+#usr/share/man/man3/EVP_CIPHER_block_size.3
+#usr/share/man/man3/EVP_CIPHER_flags.3
+#usr/share/man/man3/EVP_CIPHER_iv_length.3
+#usr/share/man/man3/EVP_CIPHER_key_length.3
+#usr/share/man/man3/EVP_CIPHER_mode.3
+#usr/share/man/man3/EVP_CIPHER_nid.3
+#usr/share/man/man3/EVP_CIPHER_param_to_asn1.3
+#usr/share/man/man3/EVP_CIPHER_type.3
+#usr/share/man/man3/EVP_CipherFinal.3
+#usr/share/man/man3/EVP_CipherFinal_ex.3
+#usr/share/man/man3/EVP_CipherInit.3
+#usr/share/man/man3/EVP_CipherInit_ex.3
+#usr/share/man/man3/EVP_CipherUpdate.3
+#usr/share/man/man3/EVP_DecryptFinal.3
+#usr/share/man/man3/EVP_DecryptFinal_ex.3
+#usr/share/man/man3/EVP_DecryptInit.3
+#usr/share/man/man3/EVP_DecryptInit_ex.3
+#usr/share/man/man3/EVP_DecryptUpdate.3
+#usr/share/man/man3/EVP_DigestFinal_ex.3
+#usr/share/man/man3/EVP_DigestInit.3
+#usr/share/man/man3/EVP_DigestInit_ex.3
+#usr/share/man/man3/EVP_DigestUpdate.3
+#usr/share/man/man3/EVP_EncryptFinal.3
+#usr/share/man/man3/EVP_EncryptFinal_ex.3
+#usr/share/man/man3/EVP_EncryptInit.3
+#usr/share/man/man3/EVP_EncryptInit_ex.3
+#usr/share/man/man3/EVP_EncryptUpdate.3
+#usr/share/man/man3/EVP_MAX_MD_SIZE.3
+#usr/share/man/man3/EVP_MD_CTX_block_size.3
+#usr/share/man/man3/EVP_MD_CTX_cleanup.3
+#usr/share/man/man3/EVP_MD_CTX_copy.3
+#usr/share/man/man3/EVP_MD_CTX_copy_ex.3
+#usr/share/man/man3/EVP_MD_CTX_create.3
+#usr/share/man/man3/EVP_MD_CTX_destroy.3
+#usr/share/man/man3/EVP_MD_CTX_init.3
+#usr/share/man/man3/EVP_MD_CTX_md.3
+#usr/share/man/man3/EVP_MD_CTX_size.3
+#usr/share/man/man3/EVP_MD_CTX_type.3
+#usr/share/man/man3/EVP_MD_block_size.3
+#usr/share/man/man3/EVP_MD_pkey_type.3
+#usr/share/man/man3/EVP_MD_size.3
+#usr/share/man/man3/EVP_MD_type.3
+#usr/share/man/man3/EVP_OpenFinal.3
+#usr/share/man/man3/EVP_OpenInit.3
+#usr/share/man/man3/EVP_OpenUpdate.3
+#usr/share/man/man3/EVP_PKEY_assign_DH.3
+#usr/share/man/man3/EVP_PKEY_assign_DSA.3
+#usr/share/man/man3/EVP_PKEY_assign_EC_KEY.3
+#usr/share/man/man3/EVP_PKEY_assign_RSA.3
+#usr/share/man/man3/EVP_PKEY_free.3
+#usr/share/man/man3/EVP_PKEY_get1_DH.3
+#usr/share/man/man3/EVP_PKEY_get1_DSA.3
+#usr/share/man/man3/EVP_PKEY_get1_EC_KEY.3
+#usr/share/man/man3/EVP_PKEY_get1_RSA.3
+#usr/share/man/man3/EVP_PKEY_new.3
+#usr/share/man/man3/EVP_PKEY_set1_DH.3
+#usr/share/man/man3/EVP_PKEY_set1_DSA.3
+#usr/share/man/man3/EVP_PKEY_set1_EC_KEY.3
+#usr/share/man/man3/EVP_PKEY_set1_RSA.3
+#usr/share/man/man3/EVP_PKEY_type.3
+#usr/share/man/man3/EVP_SealFinal.3
+#usr/share/man/man3/EVP_SealInit.3
+#usr/share/man/man3/EVP_SealUpdate.3
+#usr/share/man/man3/EVP_SignFinal.3
+#usr/share/man/man3/EVP_SignInit.3
+#usr/share/man/man3/EVP_SignUpdate.3
+#usr/share/man/man3/EVP_VerifyFinal.3
+#usr/share/man/man3/EVP_VerifyInit.3
+#usr/share/man/man3/EVP_VerifyUpdate.3
+#usr/share/man/man3/EVP_dss.3
+#usr/share/man/man3/EVP_dss1.3
+#usr/share/man/man3/EVP_get_cipherbyname.3
+#usr/share/man/man3/EVP_get_cipherbynid.3
+#usr/share/man/man3/EVP_get_cipherbyobj.3
+#usr/share/man/man3/EVP_get_digestbyname.3
+#usr/share/man/man3/EVP_get_digestbynid.3
+#usr/share/man/man3/EVP_get_digestbyobj.3
+#usr/share/man/man3/EVP_md2.3
+#usr/share/man/man3/EVP_md5.3
+#usr/share/man/man3/EVP_md_null.3
+#usr/share/man/man3/EVP_mdc2.3
+#usr/share/man/man3/EVP_ripemd160.3
+#usr/share/man/man3/EVP_sha.3
+#usr/share/man/man3/EVP_sha1.3
+#usr/share/man/man3/HMAC.3
+#usr/share/man/man3/HMAC_Final.3
+#usr/share/man/man3/HMAC_Init.3
+#usr/share/man/man3/HMAC_Update.3
+#usr/share/man/man3/HMAC_cleanup.3
+#usr/share/man/man3/MD2.3
+#usr/share/man/man3/MD2_Final.3
+#usr/share/man/man3/MD2_Init.3
+#usr/share/man/man3/MD2_Update.3
+#usr/share/man/man3/MD4.3
+#usr/share/man/man3/MD4_Final.3
+#usr/share/man/man3/MD4_Init.3
+#usr/share/man/man3/MD4_Update.3
+#usr/share/man/man3/MD5.3
+#usr/share/man/man3/MD5_Final.3
+#usr/share/man/man3/MD5_Init.3
+#usr/share/man/man3/MD5_Update.3
+#usr/share/man/man3/MDC2.3
+#usr/share/man/man3/MDC2_Final.3
+#usr/share/man/man3/MDC2_Init.3
+#usr/share/man/man3/MDC2_Update.3
+#usr/share/man/man3/OBJ_cleanup.3
+#usr/share/man/man3/OBJ_cmp.3
+#usr/share/man/man3/OBJ_create.3
+#usr/share/man/man3/OBJ_dup.3
+#usr/share/man/man3/OBJ_ln2nid.3
+#usr/share/man/man3/OBJ_nid2ln.3
+#usr/share/man/man3/OBJ_nid2obj.3
+#usr/share/man/man3/OBJ_nid2sn.3
+#usr/share/man/man3/OBJ_obj2nid.3
+#usr/share/man/man3/OBJ_obj2txt.3
+#usr/share/man/man3/OBJ_sn2nid.3
+#usr/share/man/man3/OBJ_txt2nid.3
+#usr/share/man/man3/OBJ_txt2obj.3
+#usr/share/man/man3/OPENSSL_VERSION_NUMBER.3
+#usr/share/man/man3/OPENSSL_config.3
+#usr/share/man/man3/OPENSSL_load_builtin_modules.3
+#usr/share/man/man3/OPENSSL_no_config.3
+#usr/share/man/man3/OpenSSL_add_all_algorithms.3
+#usr/share/man/man3/OpenSSL_add_all_ciphers.3
+#usr/share/man/man3/OpenSSL_add_all_digests.3
+#usr/share/man/man3/OpenSSL_add_ssl_algorithms.3
+#usr/share/man/man3/PEM.3
+#usr/share/man/man3/PKCS12_create.3
+#usr/share/man/man3/PKCS12_parse.3
+#usr/share/man/man3/PKCS7_decrypt.3
+#usr/share/man/man3/PKCS7_encrypt.3
+#usr/share/man/man3/PKCS7_sign.3
+#usr/share/man/man3/PKCS7_verify.3
+#usr/share/man/man3/RAND_SSLeay.3
+#usr/share/man/man3/RAND_add.3
+#usr/share/man/man3/RAND_bytes.3
+#usr/share/man/man3/RAND_cleanup.3
+#usr/share/man/man3/RAND_egd.3
+#usr/share/man/man3/RAND_event.3
+#usr/share/man/man3/RAND_file_name.3
+#usr/share/man/man3/RAND_get_rand_method.3
+#usr/share/man/man3/RAND_load_file.3
+#usr/share/man/man3/RAND_pseudo_bytes.3
+#usr/share/man/man3/RAND_screen.3
+#usr/share/man/man3/RAND_seed.3
+#usr/share/man/man3/RAND_set_rand_method.3
+#usr/share/man/man3/RAND_status.3
+#usr/share/man/man3/RAND_write_file.3
+#usr/share/man/man3/RC4.3
+#usr/share/man/man3/RC4_set_key.3
+#usr/share/man/man3/RIPEMD160.3
+#usr/share/man/man3/RIPEMD160_Final.3
+#usr/share/man/man3/RIPEMD160_Init.3
+#usr/share/man/man3/RIPEMD160_Update.3
+#usr/share/man/man3/RSA_PKCS1_SSLeay.3
+#usr/share/man/man3/RSA_blinding_off.3
+#usr/share/man/man3/RSA_blinding_on.3
+#usr/share/man/man3/RSA_check_key.3
+#usr/share/man/man3/RSA_flags.3
+#usr/share/man/man3/RSA_free.3
+#usr/share/man/man3/RSA_generate_key.3
+#usr/share/man/man3/RSA_get_default_method.3
+#usr/share/man/man3/RSA_get_ex_data.3
+#usr/share/man/man3/RSA_get_ex_new_index.3
+#usr/share/man/man3/RSA_get_method.3
+#usr/share/man/man3/RSA_new.3
+#usr/share/man/man3/RSA_new_method.3
+#usr/share/man/man3/RSA_null_method.3
+#usr/share/man/man3/RSA_padding_add_PKCS1_OAEP.3
+#usr/share/man/man3/RSA_padding_add_PKCS1_type_1.3
+#usr/share/man/man3/RSA_padding_add_PKCS1_type_2.3
+#usr/share/man/man3/RSA_padding_add_SSLv23.3
+#usr/share/man/man3/RSA_padding_add_none.3
+#usr/share/man/man3/RSA_padding_check_PKCS1_OAEP.3
+#usr/share/man/man3/RSA_padding_check_PKCS1_type_1.3
+#usr/share/man/man3/RSA_padding_check_PKCS1_type_2.3
+#usr/share/man/man3/RSA_padding_check_SSLv23.3
+#usr/share/man/man3/RSA_padding_check_none.3
+#usr/share/man/man3/RSA_print.3
+#usr/share/man/man3/RSA_print_fp.3
+#usr/share/man/man3/RSA_private_decrypt.3
+#usr/share/man/man3/RSA_private_encrypt.3
+#usr/share/man/man3/RSA_public_decrypt.3
+#usr/share/man/man3/RSA_public_encrypt.3
+#usr/share/man/man3/RSA_set_default_method.3
+#usr/share/man/man3/RSA_set_ex_data.3
+#usr/share/man/man3/RSA_set_method.3
+#usr/share/man/man3/RSA_sign.3
+#usr/share/man/man3/RSA_sign_ASN1_OCTET_STRING.3
+#usr/share/man/man3/RSA_size.3
+#usr/share/man/man3/RSA_verify.3
+#usr/share/man/man3/RSA_verify_ASN1_OCTET_STRING.3
+#usr/share/man/man3/SHA1.3
+#usr/share/man/man3/SHA1_Final.3
+#usr/share/man/man3/SHA1_Init.3
+#usr/share/man/man3/SHA1_Update.3
+#usr/share/man/man3/SMIME_read_PKCS7.3
+#usr/share/man/man3/SMIME_write_PKCS7.3
+#usr/share/man/man3/SSL.3
+#usr/share/man/man3/SSL_CIPHER_description.3
+#usr/share/man/man3/SSL_CIPHER_get_bits.3
+#usr/share/man/man3/SSL_CIPHER_get_name.3
+#usr/share/man/man3/SSL_CIPHER_get_version.3
+#usr/share/man/man3/SSL_COMP_add_compression_method.3
+#usr/share/man/man3/SSL_CTX_add_client_CA.3
+#usr/share/man/man3/SSL_CTX_add_extra_chain_cert.3
+#usr/share/man/man3/SSL_CTX_add_session.3
+#usr/share/man/man3/SSL_CTX_callback_ctrl.3
+#usr/share/man/man3/SSL_CTX_check_private_key.3
+#usr/share/man/man3/SSL_CTX_ctrl.3
+#usr/share/man/man3/SSL_CTX_flush_sessions.3
+#usr/share/man/man3/SSL_CTX_free.3
+#usr/share/man/man3/SSL_CTX_get_cert_store.3
+#usr/share/man/man3/SSL_CTX_get_client_CA_list.3
+#usr/share/man/man3/SSL_CTX_get_client_cert_cb.3
+#usr/share/man/man3/SSL_CTX_get_ex_data.3
+#usr/share/man/man3/SSL_CTX_get_ex_new_index.3
+#usr/share/man/man3/SSL_CTX_get_info_callback.3
+#usr/share/man/man3/SSL_CTX_get_max_cert_list.3
+#usr/share/man/man3/SSL_CTX_get_mode.3
+#usr/share/man/man3/SSL_CTX_get_options.3
+#usr/share/man/man3/SSL_CTX_get_quiet_shutdown.3
+#usr/share/man/man3/SSL_CTX_get_session_cache_mode.3
+#usr/share/man/man3/SSL_CTX_get_timeout.3
+#usr/share/man/man3/SSL_CTX_get_verify_callback.3
+#usr/share/man/man3/SSL_CTX_get_verify_depth.3
+#usr/share/man/man3/SSL_CTX_get_verify_mode.3
+#usr/share/man/man3/SSL_CTX_load_verify_locations.3
+#usr/share/man/man3/SSL_CTX_need_tmp_rsa.3
+#usr/share/man/man3/SSL_CTX_new.3
+#usr/share/man/man3/SSL_CTX_remove_session.3
+#usr/share/man/man3/SSL_CTX_sess_accept.3
+#usr/share/man/man3/SSL_CTX_sess_accept_good.3
+#usr/share/man/man3/SSL_CTX_sess_accept_renegotiate.3
+#usr/share/man/man3/SSL_CTX_sess_cache_full.3
+#usr/share/man/man3/SSL_CTX_sess_cb_hits.3
+#usr/share/man/man3/SSL_CTX_sess_connect.3
+#usr/share/man/man3/SSL_CTX_sess_connect_good.3
+#usr/share/man/man3/SSL_CTX_sess_connect_renegotiate.3
+#usr/share/man/man3/SSL_CTX_sess_get_cache_size.3
+#usr/share/man/man3/SSL_CTX_sess_get_get_cb.3
+#usr/share/man/man3/SSL_CTX_sess_get_new_cb.3
+#usr/share/man/man3/SSL_CTX_sess_get_remove_cb.3
+#usr/share/man/man3/SSL_CTX_sess_hits.3
+#usr/share/man/man3/SSL_CTX_sess_misses.3
+#usr/share/man/man3/SSL_CTX_sess_number.3
+#usr/share/man/man3/SSL_CTX_sess_set_cache_size.3
+#usr/share/man/man3/SSL_CTX_sess_set_get_cb.3
+#usr/share/man/man3/SSL_CTX_sess_set_new_cb.3
+#usr/share/man/man3/SSL_CTX_sess_set_remove_cb.3
+#usr/share/man/man3/SSL_CTX_sess_timeouts.3
+#usr/share/man/man3/SSL_CTX_sessions.3
+#usr/share/man/man3/SSL_CTX_set_cert_store.3
+#usr/share/man/man3/SSL_CTX_set_cert_verify_callback.3
+#usr/share/man/man3/SSL_CTX_set_cipher_list.3
+#usr/share/man/man3/SSL_CTX_set_client_CA_list.3
+#usr/share/man/man3/SSL_CTX_set_client_cert_cb.3
+#usr/share/man/man3/SSL_CTX_set_default_passwd_cb.3
+#usr/share/man/man3/SSL_CTX_set_default_passwd_cb_userdata.3
+#usr/share/man/man3/SSL_CTX_set_ex_data.3
+#usr/share/man/man3/SSL_CTX_set_generate_session_id.3
+#usr/share/man/man3/SSL_CTX_set_info_callback.3
+#usr/share/man/man3/SSL_CTX_set_max_cert_list.3
+#usr/share/man/man3/SSL_CTX_set_mode.3
+#usr/share/man/man3/SSL_CTX_set_msg_callback.3
+#usr/share/man/man3/SSL_CTX_set_msg_callback_arg.3
+#usr/share/man/man3/SSL_CTX_set_options.3
+#usr/share/man/man3/SSL_CTX_set_quiet_shutdown.3
+#usr/share/man/man3/SSL_CTX_set_session_cache_mode.3
+#usr/share/man/man3/SSL_CTX_set_session_id_context.3
+#usr/share/man/man3/SSL_CTX_set_ssl_version.3
+#usr/share/man/man3/SSL_CTX_set_timeout.3
+#usr/share/man/man3/SSL_CTX_set_tmp_dh.3
+#usr/share/man/man3/SSL_CTX_set_tmp_dh_callback.3
+#usr/share/man/man3/SSL_CTX_set_tmp_rsa.3
+#usr/share/man/man3/SSL_CTX_set_tmp_rsa_callback.3
+#usr/share/man/man3/SSL_CTX_set_verify.3
+#usr/share/man/man3/SSL_CTX_set_verify_depth.3
+#usr/share/man/man3/SSL_CTX_use_PrivateKey.3
+#usr/share/man/man3/SSL_CTX_use_PrivateKey_ASN1.3
+#usr/share/man/man3/SSL_CTX_use_PrivateKey_file.3
+#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey.3
+#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey_ASN1.3
+#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey_file.3
+#usr/share/man/man3/SSL_CTX_use_certificate.3
+#usr/share/man/man3/SSL_CTX_use_certificate_ASN1.3
+#usr/share/man/man3/SSL_CTX_use_certificate_chain_file.3
+#usr/share/man/man3/SSL_CTX_use_certificate_file.3
+#usr/share/man/man3/SSL_SESSION_free.3
+#usr/share/man/man3/SSL_SESSION_get_ex_data.3
+#usr/share/man/man3/SSL_SESSION_get_ex_new_index.3
+#usr/share/man/man3/SSL_SESSION_get_time.3
+#usr/share/man/man3/SSL_SESSION_get_timeout.3
+#usr/share/man/man3/SSL_SESSION_set_ex_data.3
+#usr/share/man/man3/SSL_SESSION_set_time.3
+#usr/share/man/man3/SSL_accept.3
+#usr/share/man/man3/SSL_add_client_CA.3
+#usr/share/man/man3/SSL_add_session.3
+#usr/share/man/man3/SSL_alert_desc_string.3
+#usr/share/man/man3/SSL_alert_desc_string_long.3
+#usr/share/man/man3/SSL_alert_type_string.3
+#usr/share/man/man3/SSL_alert_type_string_long.3
+#usr/share/man/man3/SSL_callback_ctrl.3
+#usr/share/man/man3/SSL_check_private_key.3
+#usr/share/man/man3/SSL_clear.3
+#usr/share/man/man3/SSL_connect.3
+#usr/share/man/man3/SSL_ctrl.3
+#usr/share/man/man3/SSL_do_handshake.3
+#usr/share/man/man3/SSL_flush_sessions.3
+#usr/share/man/man3/SSL_free.3
+#usr/share/man/man3/SSL_get_SSL_CTX.3
+#usr/share/man/man3/SSL_get_accept_state.3
+#usr/share/man/man3/SSL_get_cipher.3
+#usr/share/man/man3/SSL_get_cipher_bits.3
+#usr/share/man/man3/SSL_get_cipher_list.3
+#usr/share/man/man3/SSL_get_cipher_name.3
+#usr/share/man/man3/SSL_get_cipher_version.3
+#usr/share/man/man3/SSL_get_ciphers.3
+#usr/share/man/man3/SSL_get_client_CA_list.3
+#usr/share/man/man3/SSL_get_current_cipher.3
+#usr/share/man/man3/SSL_get_default_timeout.3
+#usr/share/man/man3/SSL_get_error.3
+#usr/share/man/man3/SSL_get_ex_data.3
+#usr/share/man/man3/SSL_get_ex_data_X509_STORE_CTX_idx.3
+#usr/share/man/man3/SSL_get_ex_new_index.3
+#usr/share/man/man3/SSL_get_fd.3
+#usr/share/man/man3/SSL_get_info_callback.3
+#usr/share/man/man3/SSL_get_max_cert_list.3
+#usr/share/man/man3/SSL_get_mode.3
+#usr/share/man/man3/SSL_get_msg_callback_arg.3
+#usr/share/man/man3/SSL_get_options.3
+#usr/share/man/man3/SSL_get_peer_cert_chain.3
+#usr/share/man/man3/SSL_get_peer_certificate.3
+#usr/share/man/man3/SSL_get_quiet_shutdown.3
+#usr/share/man/man3/SSL_get_rbio.3
+#usr/share/man/man3/SSL_get_session.3
+#usr/share/man/man3/SSL_get_shutdown.3
+#usr/share/man/man3/SSL_get_ssl_method.3
+#usr/share/man/man3/SSL_get_verify_callback.3
+#usr/share/man/man3/SSL_get_verify_depth.3
+#usr/share/man/man3/SSL_get_verify_mode.3
+#usr/share/man/man3/SSL_get_verify_result.3
+#usr/share/man/man3/SSL_get_version.3
+#usr/share/man/man3/SSL_has_matching_session_id.3
+#usr/share/man/man3/SSL_library_init.3
+#usr/share/man/man3/SSL_load_client_CA_file.3
+#usr/share/man/man3/SSL_load_error_strings.3
+#usr/share/man/man3/SSL_need_tmp_rsa.3
+#usr/share/man/man3/SSL_new.3
+#usr/share/man/man3/SSL_pending.3
+#usr/share/man/man3/SSL_read.3
+#usr/share/man/man3/SSL_remove_session.3
+#usr/share/man/man3/SSL_rstate_string.3
+#usr/share/man/man3/SSL_rstate_string_long.3
+#usr/share/man/man3/SSL_session_reused.3
+#usr/share/man/man3/SSL_set_bio.3
+#usr/share/man/man3/SSL_set_cipher_list.3
+#usr/share/man/man3/SSL_set_client_CA_list.3
+#usr/share/man/man3/SSL_set_connect_state.3
+#usr/share/man/man3/SSL_set_ex_data.3
+#usr/share/man/man3/SSL_set_fd.3
+#usr/share/man/man3/SSL_set_generate_session_id.3
+#usr/share/man/man3/SSL_set_info_callback.3
+#usr/share/man/man3/SSL_set_max_cert_list.3
+#usr/share/man/man3/SSL_set_mode.3
+#usr/share/man/man3/SSL_set_msg_callback.3
+#usr/share/man/man3/SSL_set_options.3
+#usr/share/man/man3/SSL_set_quiet_shutdown.3
+#usr/share/man/man3/SSL_set_session.3
+#usr/share/man/man3/SSL_set_session_id_context.3
+#usr/share/man/man3/SSL_set_shutdown.3
+#usr/share/man/man3/SSL_set_ssl_method.3
+#usr/share/man/man3/SSL_set_tmp_dh.3
+#usr/share/man/man3/SSL_set_tmp_dh_callback.3
+#usr/share/man/man3/SSL_set_tmp_rsa.3
+#usr/share/man/man3/SSL_set_tmp_rsa_callback.3
+#usr/share/man/man3/SSL_set_verify.3
+#usr/share/man/man3/SSL_set_verify_depth.3
+#usr/share/man/man3/SSL_set_verify_result.3
+#usr/share/man/man3/SSL_shutdown.3
+#usr/share/man/man3/SSL_state_string.3
+#usr/share/man/man3/SSL_state_string_long.3
+#usr/share/man/man3/SSL_use_PrivateKey.3
+#usr/share/man/man3/SSL_use_PrivateKey_ASN1.3
+#usr/share/man/man3/SSL_use_PrivateKey_file.3
+#usr/share/man/man3/SSL_use_RSAPrivateKey.3
+#usr/share/man/man3/SSL_use_RSAPrivateKey_ASN1.3
+#usr/share/man/man3/SSL_use_RSAPrivateKey_file.3
+#usr/share/man/man3/SSL_use_certificate.3
+#usr/share/man/man3/SSL_use_certificate_ASN1.3
+#usr/share/man/man3/SSL_use_certificate_file.3
+#usr/share/man/man3/SSL_want.3
+#usr/share/man/man3/SSL_want_nothing.3
+#usr/share/man/man3/SSL_want_read.3
+#usr/share/man/man3/SSL_want_write.3
+#usr/share/man/man3/SSL_want_x509_lookup.3
+#usr/share/man/man3/SSL_write.3
+#usr/share/man/man3/SSLeay.3
+#usr/share/man/man3/SSLeay_add_ssl_algorithms.3
+#usr/share/man/man3/SSLeay_version.3
+#usr/share/man/man3/UI_OpenSSL.3
+#usr/share/man/man3/UI_add_error_string.3
+#usr/share/man/man3/UI_add_info_string.3
+#usr/share/man/man3/UI_add_input_boolean.3
+#usr/share/man/man3/UI_add_input_string.3
+#usr/share/man/man3/UI_add_user_data.3
+#usr/share/man/man3/UI_add_verify_string.3
+#usr/share/man/man3/UI_construct_prompt.3
+#usr/share/man/man3/UI_ctrl.3
+#usr/share/man/man3/UI_dup_error_string.3
+#usr/share/man/man3/UI_dup_info_string.3
+#usr/share/man/man3/UI_dup_input_boolean.3
+#usr/share/man/man3/UI_dup_input_string.3
+#usr/share/man/man3/UI_dup_verify_string.3
+#usr/share/man/man3/UI_free.3
+#usr/share/man/man3/UI_get0_result.3
+#usr/share/man/man3/UI_get0_user_data.3
+#usr/share/man/man3/UI_get_default_method.3
+#usr/share/man/man3/UI_get_method.3
+#usr/share/man/man3/UI_new.3
+#usr/share/man/man3/UI_new_method.3
+#usr/share/man/man3/UI_process.3
+#usr/share/man/man3/UI_set_default_method.3
+#usr/share/man/man3/UI_set_method.3
+#usr/share/man/man3/X509_NAME_ENTRY_create_by_NID.3
+#usr/share/man/man3/X509_NAME_ENTRY_create_by_OBJ.3
+#usr/share/man/man3/X509_NAME_ENTRY_create_by_txt.3
+#usr/share/man/man3/X509_NAME_ENTRY_get_data.3
+#usr/share/man/man3/X509_NAME_ENTRY_get_object.3
+#usr/share/man/man3/X509_NAME_ENTRY_set_data.3
+#usr/share/man/man3/X509_NAME_ENTRY_set_object.3
+#usr/share/man/man3/X509_NAME_add_entry.3
+#usr/share/man/man3/X509_NAME_add_entry_by_NID.3
+#usr/share/man/man3/X509_NAME_add_entry_by_OBJ.3
+#usr/share/man/man3/X509_NAME_add_entry_by_txt.3
+#usr/share/man/man3/X509_NAME_delete_entry.3
+#usr/share/man/man3/X509_NAME_entry_count.3
+#usr/share/man/man3/X509_NAME_get_entry.3
+#usr/share/man/man3/X509_NAME_get_index_by_NID.3
+#usr/share/man/man3/X509_NAME_get_index_by_OBJ.3
+#usr/share/man/man3/X509_NAME_get_text_by_NID.3
+#usr/share/man/man3/X509_NAME_get_text_by_OBJ.3
+#usr/share/man/man3/X509_NAME_oneline.3
+#usr/share/man/man3/X509_NAME_print.3
+#usr/share/man/man3/X509_NAME_print_ex.3
+#usr/share/man/man3/X509_NAME_print_ex_fp.3
+#usr/share/man/man3/X509_free.3
+#usr/share/man/man3/X509_new.3
+#usr/share/man/man3/bio.3
+#usr/share/man/man3/blowfish.3
+#usr/share/man/man3/bn.3
+#usr/share/man/man3/bn_add_words.3
+#usr/share/man/man3/bn_check_top.3
+#usr/share/man/man3/bn_cmp_words.3
+#usr/share/man/man3/bn_div_words.3
+#usr/share/man/man3/bn_dump.3
+#usr/share/man/man3/bn_expand.3
+#usr/share/man/man3/bn_expand2.3
+#usr/share/man/man3/bn_fix_top.3
+#usr/share/man/man3/bn_internal.3
+#usr/share/man/man3/bn_mul_add_words.3
+#usr/share/man/man3/bn_mul_comba4.3
+#usr/share/man/man3/bn_mul_comba8.3
+#usr/share/man/man3/bn_mul_high.3
+#usr/share/man/man3/bn_mul_low_normal.3
+#usr/share/man/man3/bn_mul_low_recursive.3
+#usr/share/man/man3/bn_mul_normal.3
+#usr/share/man/man3/bn_mul_part_recursive.3
+#usr/share/man/man3/bn_mul_recursive.3
+#usr/share/man/man3/bn_mul_words.3
+#usr/share/man/man3/bn_print.3
+#usr/share/man/man3/bn_set_high.3
+#usr/share/man/man3/bn_set_low.3
+#usr/share/man/man3/bn_set_max.3
+#usr/share/man/man3/bn_sqr_comba4.3
+#usr/share/man/man3/bn_sqr_comba8.3
+#usr/share/man/man3/bn_sqr_normal.3
+#usr/share/man/man3/bn_sqr_recursive.3
+#usr/share/man/man3/bn_sqr_words.3
+#usr/share/man/man3/bn_sub_words.3
+#usr/share/man/man3/bn_wexpand.3
+#usr/share/man/man3/buffer.3
+#usr/share/man/man3/crypto.3
+#usr/share/man/man3/d2i_509_CRL_fp.3
+#usr/share/man/man3/d2i_ASN1_OBJECT.3
+#usr/share/man/man3/d2i_DHparams.3
+#usr/share/man/man3/d2i_DSAPrivateKey.3
+#usr/share/man/man3/d2i_DSAPublicKey.3
+#usr/share/man/man3/d2i_DSA_PUBKEY.3
+#usr/share/man/man3/d2i_DSA_SIG.3
+#usr/share/man/man3/d2i_Netscape_RSA.3
+#usr/share/man/man3/d2i_PKCS8PrivateKey.3
+#usr/share/man/man3/d2i_PKCS8PrivateKey_bio.3
+#usr/share/man/man3/d2i_PKCS8PrivateKey_fp.3
+#usr/share/man/man3/d2i_RSAPrivateKey.3
+#usr/share/man/man3/d2i_RSAPublicKey.3
+#usr/share/man/man3/d2i_RSA_PUBKEY.3
+#usr/share/man/man3/d2i_SSL_SESSION.3
+#usr/share/man/man3/d2i_X509.3
+#usr/share/man/man3/d2i_X509_ALGOR.3
+#usr/share/man/man3/d2i_X509_CRL.3
+#usr/share/man/man3/d2i_X509_CRL_bio.3
+#usr/share/man/man3/d2i_X509_NAME.3
+#usr/share/man/man3/d2i_X509_REQ.3
+#usr/share/man/man3/d2i_X509_REQ_bio.3
+#usr/share/man/man3/d2i_X509_REQ_fp.3
+#usr/share/man/man3/d2i_X509_SIG.3
+#usr/share/man/man3/d2i_X509_bio.3
+#usr/share/man/man3/d2i_X509_fp.3
+#usr/share/man/man3/des.3
+#usr/share/man/man3/des_read_2passwords.3
+#usr/share/man/man3/des_read_password.3
+#usr/share/man/man3/des_read_pw.3
+#usr/share/man/man3/des_read_pw_string.3
+#usr/share/man/man3/dh.3
+#usr/share/man/man3/dsa.3
+#usr/share/man/man3/engine.3
+#usr/share/man/man3/evp.3
+#usr/share/man/man3/hmac.3
+#usr/share/man/man3/i2d_ASN1_OBJECT.3
+#usr/share/man/man3/i2d_DHparams.3
+#usr/share/man/man3/i2d_DSAPrivateKey.3
+#usr/share/man/man3/i2d_DSAPublicKey.3
+#usr/share/man/man3/i2d_DSA_PUBKEY.3
+#usr/share/man/man3/i2d_DSA_SIG.3
+#usr/share/man/man3/i2d_Netscape_RSA.3
+#usr/share/man/man3/i2d_PKCS8PrivateKey_bio.3
+#usr/share/man/man3/i2d_PKCS8PrivateKey_fp.3
+#usr/share/man/man3/i2d_PKCS8PrivateKey_nid_bio.3
+#usr/share/man/man3/i2d_PKCS8PrivateKey_nid_fp.3
+#usr/share/man/man3/i2d_RSAPrivateKey.3
+#usr/share/man/man3/i2d_RSAPublicKey.3
+#usr/share/man/man3/i2d_RSA_PUBKEY.3
+#usr/share/man/man3/i2d_SSL_SESSION.3
+#usr/share/man/man3/i2d_X509.3
+#usr/share/man/man3/i2d_X509_ALGOR.3
+#usr/share/man/man3/i2d_X509_CRL.3
+#usr/share/man/man3/i2d_X509_CRL_bio.3
+#usr/share/man/man3/i2d_X509_CRL_fp.3
+#usr/share/man/man3/i2d_X509_NAME.3
+#usr/share/man/man3/i2d_X509_REQ.3
+#usr/share/man/man3/i2d_X509_REQ_bio.3
+#usr/share/man/man3/i2d_X509_REQ_fp.3
+#usr/share/man/man3/i2d_X509_SIG.3
+#usr/share/man/man3/i2d_X509_bio.3
+#usr/share/man/man3/i2d_X509_fp.3
+#usr/share/man/man3/lh_delete.3
+#usr/share/man/man3/lh_doall.3
+#usr/share/man/man3/lh_doall_arg.3
+#usr/share/man/man3/lh_error.3
+#usr/share/man/man3/lh_free.3
+#usr/share/man/man3/lh_insert.3
+#usr/share/man/man3/lh_new.3
+#usr/share/man/man3/lh_node_stats.3
+#usr/share/man/man3/lh_node_stats_bio.3
+#usr/share/man/man3/lh_node_usage_stats.3
+#usr/share/man/man3/lh_node_usage_stats_bio.3
+#usr/share/man/man3/lh_retrieve.3
+#usr/share/man/man3/lh_stats.3
+#usr/share/man/man3/lh_stats_bio.3
+#usr/share/man/man3/lhash.3
+#usr/share/man/man3/md5.3
+#usr/share/man/man3/mdc2.3
+#usr/share/man/man3/pem.3
+#usr/share/man/man3/rc4.3
+#usr/share/man/man3/ripemd.3
+#usr/share/man/man3/rsa.3
+#usr/share/man/man3/sha.3
+#usr/share/man/man3/ssl.3
+#usr/share/man/man3/ui.3
+#usr/share/man/man3/ui_compat.3
+#usr/share/man/man5/config.5
+#usr/share/man/man7/Modes_of_DES.7
+#usr/share/man/man7/des_modes.7
+##
+## pciutils-2.1.11
+##
+#usr/include/pci
+#usr/include/pci/config.h
+#usr/include/pci/header.h
+#usr/include/pci/pci.h
+#usr/lib/libpci.a
+usr/sbin/lspci
+usr/sbin/setpci
+#usr/sbin/update-pciids
+#usr/share/man/man8/lspci.8
+#usr/share/man/man8/setpci.8
+#usr/share/man/man8/update-pciids.8
+#usr/share/pci.ids
+##
+## pcre-4.5
+##
+#usr/bin/pcregrep
+#usr/bin/pcretest
+#usr/bin/pcre-config
+#usr/include/pcre.h
+#usr/include/pcreposix.h
+usr/lib/libpcre.so.0.0.1
+usr/lib/libpcre.so.0
+usr/lib/libpcre.so
+#usr/lib/libpcre.la
+#usr/lib/libpcreposix.so.0.0.0
+#usr/lib/libpcreposix.so.0
+#usr/lib/libpcreposix.so
+#usr/lib/libpcreposix.la
+#usr/share/man/man1/pcregrep.1
+#usr/share/man/man1/pcretest.1
+#usr/share/man/man3/pcre.3
+#usr/share/man/man3/pcreapi.3
+#usr/share/man/man3/pcrebuild.3
+#usr/share/man/man3/pcrecallout.3
+#usr/share/man/man3/pcrecompat.3
+#usr/share/man/man3/pcrepattern.3
+#usr/share/man/man3/pcreperform.3
+#usr/share/man/man3/pcreposix.3
+#usr/share/man/man3/pcresample.3
+#usr/share/man/man3/pcre_compile.3
+#usr/share/man/man3/pcre_config.3
+#usr/share/man/man3/pcre_copy_named_substring.3
+#usr/share/man/man3/pcre_copy_substring.3
+#usr/share/man/man3/pcre_exec.3
+#usr/share/man/man3/pcre_free_substring.3
+#usr/share/man/man3/pcre_free_substring_list.3
+#usr/share/man/man3/pcre_fullinfo.3
+#usr/share/man/man3/pcre_get_named_substring.3
+#usr/share/man/man3/pcre_get_stringnumber.3
+#usr/share/man/man3/pcre_get_substring.3
+#usr/share/man/man3/pcre_get_substring_list.3
+#usr/share/man/man3/pcre_info.3
+#usr/share/man/man3/pcre_maketables.3
+#usr/share/man/man3/pcre_study.3
+#usr/share/man/man3/pcre_version.3
+##
+## 3cp4218-2003-10-22
+##
+usr/sbin/3cextract
+usr/sbin/3cload
+usr/sbin/3cioctl
+usr/sbin/ez-usb.bin
+usr/sbin/3cinit.bin
+usr/sbin/3cmain.bin
+#usr/share/locale/es/LC_MESSAGES/3cioctl.mo
+#usr/share/locale/es/LC_MESSAGES/3cload.mo
+#lib/modules/2.4.31/kernel/drivers/usb/3cp4218.o.gz
+##
+## amedyn-2004-08-04
+##
+usr/bin/br2684ctl
+usr/sbin/amload
+usr/sbin/amioctl
+usr/sbin/fw-usb.bin
+usr/sbin/Fw-usb_A.bin
+#lib/modules/2.4.31/kernel/drivers/usb/amedyn.o.gz
+##
+## apache_1.3.34 mod_ssl-2.8.25-1.3.34 mm-1.4.0
+##
+#etc/httpd
+#etc/httpd/conf
+#etc/httpd/conf/access.conf
+#etc/httpd/conf/access.conf.default
+etc/httpd/conf/hostname.conf
+etc/httpd/conf/httpd.conf
+#etc/httpd/conf/httpd.conf.default
+#etc/httpd/conf/magic
+#etc/httpd/conf/magic.default
+#etc/httpd/conf/mime.types
+#etc/httpd/conf/mime.types.default
+#etc/httpd/conf/srm.conf
+#etc/httpd/conf/srm.conf.default
+#etc/httpd/conf/ssl.crl
+#etc/httpd/conf/ssl.crl/Makefile
+#etc/httpd/conf/ssl.crl/README.CRL
+#etc/httpd/conf/ssl.crt
+#etc/httpd/conf/ssl.crt/0cf14d7d.0
+#etc/httpd/conf/ssl.crt/5d8360e1.0
+#etc/httpd/conf/ssl.crt/82ab5372.0
+#etc/httpd/conf/ssl.crt/Makefile
+#etc/httpd/conf/ssl.crt/README.CRT
+#etc/httpd/conf/ssl.crt/ca-bundle.crt
+#etc/httpd/conf/ssl.crt/e52d41d0.0
+#etc/httpd/conf/ssl.crt/server.crt
+#etc/httpd/conf/ssl.crt/snakeoil-ca-dsa.crt
+#etc/httpd/conf/ssl.crt/snakeoil-ca-rsa.crt
+#etc/httpd/conf/ssl.crt/snakeoil-dsa.crt
+#etc/httpd/conf/ssl.crt/snakeoil-rsa.crt
+#etc/httpd/conf/ssl.csr
+#etc/httpd/conf/ssl.csr/README.CSR
+#etc/httpd/conf/ssl.csr/server.csr
+#etc/httpd/conf/ssl.key
+#etc/httpd/conf/ssl.key/README.KEY
+#etc/httpd/conf/ssl.key/server.key
+#etc/httpd/conf/ssl.key/snakeoil-ca-dsa.key
+#etc/httpd/conf/ssl.key/snakeoil-ca-rsa.key
+#etc/httpd/conf/ssl.key/snakeoil-dsa.key
+#etc/httpd/conf/ssl.key/snakeoil-rsa.key
+#etc/httpd/conf/ssl.prm
+#etc/httpd/conf/ssl.prm/README.PRM
+#etc/httpd/conf/ssl.prm/snakeoil-ca-dsa.prm
+#etc/httpd/conf/ssl.prm/snakeoil-dsa.prm
+#home/httpd
+#home/httpd/cgi-bin
+home/httpd/cgi-bin/aliases.cgi
+home/httpd/cgi-bin/backup.cgi
+#home/httpd/cgi-bin/base.cgi
+home/httpd/cgi-bin/changepw.cgi
+home/httpd/cgi-bin/connections.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/dial.cgi
+home/httpd/cgi-bin/dmzholes.cgi
+home/httpd/cgi-bin/graphs.cgi
+home/httpd/cgi-bin/gui.cgi
+home/httpd/cgi-bin/hosts.cgi
+home/httpd/cgi-bin/ids.cgi
+home/httpd/cgi-bin/index.cgi
+home/httpd/cgi-bin/ipinfo.cgi
+#home/httpd/cgi-bin/logs.cgi
+home/httpd/cgi-bin/logs.cgi/config.dat
+home/httpd/cgi-bin/logs.cgi/firewalllog.dat
+home/httpd/cgi-bin/logs.cgi/ids.dat
+home/httpd/cgi-bin/logs.cgi/log.dat
+home/httpd/cgi-bin/logs.cgi/proxylog.dat
+home/httpd/cgi-bin/logs.cgi/summary.dat
+home/httpd/cgi-bin/modem.cgi
+home/httpd/cgi-bin/netstatus.cgi
+#home/httpd/cgi-bin/networks.cgi
+home/httpd/cgi-bin/optionsfw.cgi
+home/httpd/cgi-bin/portfw.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+#home/httpd/cgi-bin/printenv
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/proxygraphs.cgi
+home/httpd/cgi-bin/remote.cgi
+#home/httpd/cgi-bin/services.cgi
+home/httpd/cgi-bin/shaping.cgi
+home/httpd/cgi-bin/shutdown.cgi
+home/httpd/cgi-bin/status.cgi
+#home/httpd/cgi-bin/test-cgi
+home/httpd/cgi-bin/time.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/upload.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+home/httpd/cgi-bin/wireless.cgi
+home/httpd/cgi-bin/xtaccess.cgi
+#home/httpd/htdocs
+#home/httpd/htdocs/apache_pb.gif
+#home/httpd/htdocs/index.html.ca
+#home/httpd/htdocs/index.html.cz
+#home/httpd/htdocs/index.html.de
+#home/httpd/htdocs/index.html.dk
+#home/httpd/htdocs/index.html.ee
+#home/httpd/htdocs/index.html.el
+#home/httpd/htdocs/index.html.en
+#home/httpd/htdocs/index.html.es
+#home/httpd/htdocs/index.html.fr
+#home/httpd/htdocs/index.html.he.iso8859-8
+#home/httpd/htdocs/index.html.hu
+#home/httpd/htdocs/index.html.it
+#home/httpd/htdocs/index.html.ja.jis
+#home/httpd/htdocs/index.html.kr.iso-kr
+#home/httpd/htdocs/index.html.lb.utf8
+#home/httpd/htdocs/index.html.nl
+#home/httpd/htdocs/index.html.nn
+#home/httpd/htdocs/index.html.no
+#home/httpd/htdocs/index.html.po.iso-pl
+#home/httpd/htdocs/index.html.pt
+#home/httpd/htdocs/index.html.pt-br
+#home/httpd/htdocs/index.html.ru.cp-1251
+#home/httpd/htdocs/index.html.ru.cp866
+#home/httpd/htdocs/index.html.ru.iso-ru
+#home/httpd/htdocs/index.html.ru.koi8-r
+#home/httpd/htdocs/index.html.ru.ucs2
+#home/httpd/htdocs/index.html.ru.ucs4
+#home/httpd/htdocs/index.html.ru.utf8
+#home/httpd/htdocs/index.html.se
+#home/httpd/htdocs/index.html.zh-tw.big5
+#home/httpd/htdocs/manual
+#home/httpd/htdocs/manual/LICENSE
+#home/httpd/htdocs/manual/bind.html.en
+#home/httpd/htdocs/manual/bind.html.fr
+#home/httpd/htdocs/manual/bind.html.html
+#home/httpd/htdocs/manual/bind.html.ja.jis
+#home/httpd/htdocs/manual/configuring.html.en
+#home/httpd/htdocs/manual/configuring.html.fr
+#home/httpd/htdocs/manual/configuring.html.html
+#home/httpd/htdocs/manual/configuring.html.ja.jis
+#home/httpd/htdocs/manual/content-negotiation.html.en
+#home/httpd/htdocs/manual/content-negotiation.html.html
+#home/httpd/htdocs/manual/content-negotiation.html.ja.jis
+#home/httpd/htdocs/manual/custom-error.html.en
+#home/httpd/htdocs/manual/custom-error.html.fr
+#home/httpd/htdocs/manual/custom-error.html.html
+#home/httpd/htdocs/manual/custom-error.html.ja.jis
+#home/httpd/htdocs/manual/cygwin.html
+#home/httpd/htdocs/manual/dns-caveats.html.en
+#home/httpd/htdocs/manual/dns-caveats.html.fr
+#home/httpd/htdocs/manual/dns-caveats.html.html
+#home/httpd/htdocs/manual/dns-caveats.html.ja.jis
+#home/httpd/htdocs/manual/dso.html
+#home/httpd/htdocs/manual/ebcdic.html
+#home/httpd/htdocs/manual/env.html.en
+#home/httpd/htdocs/manual/env.html.html
+#home/httpd/htdocs/manual/env.html.ja.jis
+#home/httpd/htdocs/manual/footer.html
+#home/httpd/htdocs/manual/handler.html.en
+#home/httpd/htdocs/manual/handler.html.html
+#home/httpd/htdocs/manual/handler.html.ja.jis
+#home/httpd/htdocs/manual/header.html
+#home/httpd/htdocs/manual/howto
+#home/httpd/htdocs/manual/howto/auth.html
+#home/httpd/htdocs/manual/howto/cgi.html.en
+#home/httpd/htdocs/manual/howto/cgi.html.html
+#home/httpd/htdocs/manual/howto/cgi.html.ja.jis
+#home/httpd/htdocs/manual/howto/footer.html
+#home/httpd/htdocs/manual/howto/header.html
+#home/httpd/htdocs/manual/howto/htaccess.html
+#home/httpd/htdocs/manual/howto/ssi.html.en
+#home/httpd/htdocs/manual/howto/ssi.html.html
+#home/httpd/htdocs/manual/howto/ssi.html.ja.jis
+#home/httpd/htdocs/manual/images
+#home/httpd/htdocs/manual/images/apache_header.gif
+#home/httpd/htdocs/manual/images/apache_pb.gif
+#home/httpd/htdocs/manual/images/custom_errordocs.gif
+#home/httpd/htdocs/manual/images/feather.jpg
+#home/httpd/htdocs/manual/images/home.gif
+#home/httpd/htdocs/manual/images/index.gif
+#home/httpd/htdocs/manual/images/mod_rewrite_fig1.fig
+#home/httpd/htdocs/manual/images/mod_rewrite_fig1.gif
+#home/httpd/htdocs/manual/images/mod_rewrite_fig2.fig
+#home/httpd/htdocs/manual/images/mod_rewrite_fig2.gif
+#home/httpd/htdocs/manual/images/mod_ssl_sb.gif
+#home/httpd/htdocs/manual/images/openssl_ics.gif
+#home/httpd/htdocs/manual/images/pixel.gif
+#home/httpd/htdocs/manual/images/sub.gif
+#home/httpd/htdocs/manual/index.html.en
+#home/httpd/htdocs/manual/index.html.fr
+#home/httpd/htdocs/manual/index.html.html
+#home/httpd/htdocs/manual/index.html.ja.jis
+#home/httpd/htdocs/manual/install-tpf.html
+#home/httpd/htdocs/manual/install-ztpf.html
+#home/httpd/htdocs/manual/install.html.en
+#home/httpd/htdocs/manual/install.html.es
+#home/httpd/htdocs/manual/install.html.fr
+#home/httpd/htdocs/manual/install.html.html
+#home/httpd/htdocs/manual/install.html.ja.jis
+#home/httpd/htdocs/manual/invoking.html.en
+#home/httpd/htdocs/manual/invoking.html.fr
+#home/httpd/htdocs/manual/invoking.html.html
+#home/httpd/htdocs/manual/invoking.html.ja.jis
+#home/httpd/htdocs/manual/keepalive.html.en
+#home/httpd/htdocs/manual/keepalive.html.html
+#home/httpd/htdocs/manual/keepalive.html.ja.jis
+#home/httpd/htdocs/manual/location.html.en
+#home/httpd/htdocs/manual/location.html.html
+#home/httpd/htdocs/manual/location.html.ja.jis
+#home/httpd/htdocs/manual/logs.html
+#home/httpd/htdocs/manual/man-template.html
+#home/httpd/htdocs/manual/misc
+#home/httpd/htdocs/manual/misc/API.html
+#home/httpd/htdocs/manual/misc/FAQ.html
+#home/httpd/htdocs/manual/misc/HTTP_Features.tsv
+#home/httpd/htdocs/manual/misc/client_block_api.html
+#home/httpd/htdocs/manual/misc/compat_notes.html
+#home/httpd/htdocs/manual/misc/custom_errordocs.html
+#home/httpd/htdocs/manual/misc/descriptors.html
+#home/httpd/htdocs/manual/misc/fin_wait_2.html
+#home/httpd/htdocs/manual/misc/footer.html
+#home/httpd/htdocs/manual/misc/header.html
+#home/httpd/htdocs/manual/misc/howto.html
+#home/httpd/htdocs/manual/misc/index.html
+#home/httpd/htdocs/manual/misc/known_client_problems.html
+#home/httpd/htdocs/manual/misc/nopgp.html
+#home/httpd/htdocs/manual/misc/perf-bsd44.html
+#home/httpd/htdocs/manual/misc/perf-dec.html
+#home/httpd/htdocs/manual/misc/perf-hp.html
+#home/httpd/htdocs/manual/misc/perf-tuning.html
+#home/httpd/htdocs/manual/misc/perf.html
+#home/httpd/htdocs/manual/misc/rewriteguide.html
+#home/httpd/htdocs/manual/misc/security_tips.html
+#home/httpd/htdocs/manual/misc/tutorials.html
+#home/httpd/htdocs/manual/misc/vif-info.html
+#home/httpd/htdocs/manual/misc/windoz_keepalive.html
+#home/httpd/htdocs/manual/mod
+#home/httpd/htdocs/manual/mod/core.html.en
+#home/httpd/htdocs/manual/mod/core.html.fr
+#home/httpd/htdocs/manual/mod/core.html.html
+#home/httpd/htdocs/manual/mod/core.html.ja.jis
+#home/httpd/htdocs/manual/mod/directive-dict.html.en
+#home/httpd/htdocs/manual/mod/directive-dict.html.fr
+#home/httpd/htdocs/manual/mod/directive-dict.html.html
+#home/httpd/htdocs/manual/mod/directive-dict.html.ja.jis
+#home/httpd/htdocs/manual/mod/directives.html.de
+#home/httpd/htdocs/manual/mod/directives.html.en
+#home/httpd/htdocs/manual/mod/directives.html.fr
+#home/httpd/htdocs/manual/mod/directives.html.html
+#home/httpd/htdocs/manual/mod/directives.html.ja.jis
+#home/httpd/htdocs/manual/mod/footer.html
+#home/httpd/htdocs/manual/mod/header.html
+#home/httpd/htdocs/manual/mod/index-bytype.html.en
+#home/httpd/htdocs/manual/mod/index-bytype.html.fr
+#home/httpd/htdocs/manual/mod/index-bytype.html.html
+#home/httpd/htdocs/manual/mod/index-bytype.html.ja.jis
+#home/httpd/htdocs/manual/mod/index.html.en
+#home/httpd/htdocs/manual/mod/index.html.fr
+#home/httpd/htdocs/manual/mod/index.html.html
+#home/httpd/htdocs/manual/mod/index.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_access.html.en
+#home/httpd/htdocs/manual/mod/mod_access.html.html
+#home/httpd/htdocs/manual/mod/mod_access.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_actions.html.en
+#home/httpd/htdocs/manual/mod/mod_actions.html.html
+#home/httpd/htdocs/manual/mod/mod_actions.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_alias.html.en
+#home/httpd/htdocs/manual/mod/mod_alias.html.html
+#home/httpd/htdocs/manual/mod/mod_alias.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_asis.html.en
+#home/httpd/htdocs/manual/mod/mod_asis.html.html
+#home/httpd/htdocs/manual/mod/mod_asis.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_auth.html.en
+#home/httpd/htdocs/manual/mod/mod_auth.html.html
+#home/httpd/htdocs/manual/mod/mod_auth.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_auth_anon.html
+#home/httpd/htdocs/manual/mod/mod_auth_db.html
+#home/httpd/htdocs/manual/mod/mod_auth_dbm.html
+#home/httpd/htdocs/manual/mod/mod_auth_digest.html
+#home/httpd/htdocs/manual/mod/mod_autoindex.html.en
+#home/httpd/htdocs/manual/mod/mod_autoindex.html.html
+#home/httpd/htdocs/manual/mod/mod_autoindex.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_browser.html
+#home/httpd/htdocs/manual/mod/mod_cern_meta.html
+#home/httpd/htdocs/manual/mod/mod_cgi.html.en
+#home/httpd/htdocs/manual/mod/mod_cgi.html.html
+#home/httpd/htdocs/manual/mod/mod_cgi.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_cookies.html
+#home/httpd/htdocs/manual/mod/mod_define.html
+#home/httpd/htdocs/manual/mod/mod_digest.html
+#home/httpd/htdocs/manual/mod/mod_dir.html.en
+#home/httpd/htdocs/manual/mod/mod_dir.html.html
+#home/httpd/htdocs/manual/mod/mod_dir.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_dld.html
+#home/httpd/htdocs/manual/mod/mod_env.html.en
+#home/httpd/htdocs/manual/mod/mod_env.html.html
+#home/httpd/htdocs/manual/mod/mod_env.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_example.html
+#home/httpd/htdocs/manual/mod/mod_expires.html
+#home/httpd/htdocs/manual/mod/mod_headers.html
+#home/httpd/htdocs/manual/mod/mod_imap.html
+#home/httpd/htdocs/manual/mod/mod_include.html
+#home/httpd/htdocs/manual/mod/mod_info.html.en
+#home/httpd/htdocs/manual/mod/mod_info.html.html
+#home/httpd/htdocs/manual/mod/mod_info.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_isapi.html
+#home/httpd/htdocs/manual/mod/mod_log_agent.html
+#home/httpd/htdocs/manual/mod/mod_log_common.html
+#home/httpd/htdocs/manual/mod/mod_log_config.html.en
+#home/httpd/htdocs/manual/mod/mod_log_config.html.html
+#home/httpd/htdocs/manual/mod/mod_log_config.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_log_forensic.html.en
+#home/httpd/htdocs/manual/mod/mod_log_forensic.html.html
+#home/httpd/htdocs/manual/mod/mod_log_referer.html
+#home/httpd/htdocs/manual/mod/mod_mime.html.en
+#home/httpd/htdocs/manual/mod/mod_mime.html.html
+#home/httpd/htdocs/manual/mod/mod_mime.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_mime_magic.html
+#home/httpd/htdocs/manual/mod/mod_mmap_static.html
+#home/httpd/htdocs/manual/mod/mod_negotiation.html.en
+#home/httpd/htdocs/manual/mod/mod_negotiation.html.html
+#home/httpd/htdocs/manual/mod/mod_negotiation.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_proxy.html
+#home/httpd/htdocs/manual/mod/mod_rewrite.html.en
+#home/httpd/htdocs/manual/mod/mod_rewrite.html.html
+#home/httpd/htdocs/manual/mod/mod_rewrite.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_setenvif.html.en
+#home/httpd/htdocs/manual/mod/mod_setenvif.html.html
+#home/httpd/htdocs/manual/mod/mod_setenvif.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_so.html.en
+#home/httpd/htdocs/manual/mod/mod_so.html.html
+#home/httpd/htdocs/manual/mod/mod_so.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_speling.html.en
+#home/httpd/htdocs/manual/mod/mod_speling.html.html
+#home/httpd/htdocs/manual/mod/mod_speling.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_ssl
+#home/httpd/htdocs/manual/mod/mod_ssl/index.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_compat.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_compat.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_compat.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_cover.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_cover_logo.jpg
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_cover_title.jpg
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_faq.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_faq.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_faq.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_glossary.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_glossary.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_howto.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_howto.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_howto.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro_fig1.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro_fig2.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro_fig3.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_overview.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_overview.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_overview.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_overview_fig1.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_reference.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_reference.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_reference.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-chapter.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-1.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-2.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-3.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-4.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-5.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-6.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-7.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.imgdot-1x1-000000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.imgdot-1x1-transp.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.inc
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.navbut-next-n.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.navbut-next-s.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.navbut-prev-n.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.navbut-prev-s.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-abstract.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-compat.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-faq.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-gloss.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-howto.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-intro.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-over.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-preface.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-ref.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-toc.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-tutor.gif
+#home/httpd/htdocs/manual/mod/mod_status.html
+#home/httpd/htdocs/manual/mod/mod_unique_id.html.en
+#home/httpd/htdocs/manual/mod/mod_unique_id.html.html
+#home/httpd/htdocs/manual/mod/mod_unique_id.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_userdir.html.en
+#home/httpd/htdocs/manual/mod/mod_userdir.html.html
+#home/httpd/htdocs/manual/mod/mod_userdir.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_usertrack.html
+#home/httpd/htdocs/manual/mod/mod_vhost_alias.html
+#home/httpd/htdocs/manual/mod/module-dict.html.en
+#home/httpd/htdocs/manual/mod/module-dict.html.html
+#home/httpd/htdocs/manual/mod/module-dict.html.ja.jis
+#home/httpd/htdocs/manual/mpeix.html
+#home/httpd/htdocs/manual/multilogs.html
+#home/httpd/htdocs/manual/netware.html
+#home/httpd/htdocs/manual/new_features_1_0.html
+#home/httpd/htdocs/manual/new_features_1_1.html
+#home/httpd/htdocs/manual/new_features_1_2.html
+#home/httpd/htdocs/manual/new_features_1_3.html.en
+#home/httpd/htdocs/manual/new_features_1_3.html.html
+#home/httpd/htdocs/manual/new_features_1_3.html.ja.jis
+#home/httpd/htdocs/manual/process-model.html.en
+#home/httpd/htdocs/manual/process-model.html.html
+#home/httpd/htdocs/manual/process-model.html.ja.jis
+#home/httpd/htdocs/manual/programs
+#home/httpd/htdocs/manual/programs/ab.html
+#home/httpd/htdocs/manual/programs/apachectl.html.en
+#home/httpd/htdocs/manual/programs/apachectl.html.html
+#home/httpd/htdocs/manual/programs/apachectl.html.ja.jis
+#home/httpd/htdocs/manual/programs/apxs.html
+#home/httpd/htdocs/manual/programs/dbmmanage.html
+#home/httpd/htdocs/manual/programs/footer.html
+#home/httpd/htdocs/manual/programs/header.html
+#home/httpd/htdocs/manual/programs/htdigest.html
+#home/httpd/htdocs/manual/programs/htpasswd.html.en
+#home/httpd/htdocs/manual/programs/htpasswd.html.html
+#home/httpd/htdocs/manual/programs/htpasswd.html.ja.jis
+#home/httpd/htdocs/manual/programs/httpd.html.en
+#home/httpd/htdocs/manual/programs/httpd.html.html
+#home/httpd/htdocs/manual/programs/httpd.html.ja.jis
+#home/httpd/htdocs/manual/programs/index.html.en
+#home/httpd/htdocs/manual/programs/index.html.html
+#home/httpd/htdocs/manual/programs/index.html.ja.jis
+#home/httpd/htdocs/manual/programs/logresolve.html
+#home/httpd/htdocs/manual/programs/other.html
+#home/httpd/htdocs/manual/programs/rotatelogs.html
+#home/httpd/htdocs/manual/programs/suexec.html.en
+#home/httpd/htdocs/manual/programs/suexec.html.html
+#home/httpd/htdocs/manual/programs/suexec.html.ja.jis
+#home/httpd/htdocs/manual/readme-tpf.html
+#home/httpd/htdocs/manual/sections.html.en
+#home/httpd/htdocs/manual/sections.html.html
+#home/httpd/htdocs/manual/sections.html.ja.jis
+#home/httpd/htdocs/manual/server-wide.html.en
+#home/httpd/htdocs/manual/server-wide.html.fr
+#home/httpd/htdocs/manual/server-wide.html.html
+#home/httpd/htdocs/manual/server-wide.html.ja.jis
+#home/httpd/htdocs/manual/sitemap.html
+#home/httpd/htdocs/manual/sourcereorg.html
+#home/httpd/htdocs/manual/stopping.html.en
+#home/httpd/htdocs/manual/stopping.html.fr
+#home/httpd/htdocs/manual/stopping.html.html
+#home/httpd/htdocs/manual/suexec.html.en
+#home/httpd/htdocs/manual/suexec.html.html
+#home/httpd/htdocs/manual/suexec.html.ja.jis
+#home/httpd/htdocs/manual/suexec_1_2.html
+#home/httpd/htdocs/manual/unixware.html
+#home/httpd/htdocs/manual/upgrading_to_1_3.html
+#home/httpd/htdocs/manual/urlmapping.html
+#home/httpd/htdocs/manual/vhosts
+#home/httpd/htdocs/manual/vhosts/details.html
+#home/httpd/htdocs/manual/vhosts/details_1_2.html
+#home/httpd/htdocs/manual/vhosts/examples.html
+#home/httpd/htdocs/manual/vhosts/fd-limits.html.en
+#home/httpd/htdocs/manual/vhosts/fd-limits.html.html
+#home/httpd/htdocs/manual/vhosts/fd-limits.html.ja.jis
+#home/httpd/htdocs/manual/vhosts/footer.html
+#home/httpd/htdocs/manual/vhosts/header.html
+#home/httpd/htdocs/manual/vhosts/host.html
+#home/httpd/htdocs/manual/vhosts/index.html.en
+#home/httpd/htdocs/manual/vhosts/index.html.html
+#home/httpd/htdocs/manual/vhosts/index.html.ja.jis
+#home/httpd/htdocs/manual/vhosts/ip-based.html
+#home/httpd/htdocs/manual/vhosts/mass.html
+#home/httpd/htdocs/manual/vhosts/name-based.html.en
+#home/httpd/htdocs/manual/vhosts/name-based.html.html
+#home/httpd/htdocs/manual/vhosts/name-based.html.ja.jis
+#home/httpd/htdocs/manual/vhosts/vhosts-in-depth.html
+#home/httpd/htdocs/manual/vhosts/virtual-host.html
+#home/httpd/htdocs/manual/win_compiling.html.en
+#home/httpd/htdocs/manual/win_compiling.html.html
+#home/httpd/htdocs/manual/win_compiling.html.ja.jis
+#home/httpd/htdocs/manual/win_service.html.en
+#home/httpd/htdocs/manual/win_service.html.html
+#home/httpd/htdocs/manual/win_service.html.ja.jis
+#home/httpd/htdocs/manual/windows.html.en
+#home/httpd/htdocs/manual/windows.html.html
+#home/httpd/htdocs/manual/windows.html.ja.jis
+home/httpd/html
+#home/httpd/html/backup
+#home/httpd/html/blob.gif
+#home/httpd/html/favicon.ico
+#home/httpd/html/images
+#home/httpd/html/images/add.gif
+#home/httpd/html/images/addblue.gif
+#home/httpd/html/images/bounceback.png
+#home/httpd/html/images/boxbottom1.png
+#home/httpd/html/images/boxbottom2.png
+#home/httpd/html/images/boxbottom3.png
+#home/httpd/html/images/boxleft.png
+#home/httpd/html/images/boxright.png
+#home/httpd/html/images/boxtop1.png
+#home/httpd/html/images/boxtop2.png
+#home/httpd/html/images/boxtop3.png
+#home/httpd/html/images/clock.gif
+#home/httpd/html/images/delete.gif
+#home/httpd/html/images/download.png
+#home/httpd/html/images/edit.gif
+#home/httpd/html/images/floppy.gif
+#home/httpd/html/images/forward.gif
+#home/httpd/html/images/header.png
+#home/httpd/html/images/info.gif
+#home/httpd/html/images/null.gif
+#home/httpd/html/images/off.gif
+#home/httpd/html/images/on.gif
+#home/httpd/html/images/reload.gif
+#home/httpd/html/images/sflogo.png
+#home/httpd/html/images/web-support.png
+#home/httpd/html/include
+#home/httpd/html/include/domMenu.js
+#home/httpd/html/include/ipcop.css
+#home/httpd/html/index.cgi
+#home/httpd/html/ipcop_big.gif
+#home/httpd/icons
+#home/httpd/icons/README
+#home/httpd/icons/a.gif
+#home/httpd/icons/a.png
+#home/httpd/icons/alert.black.gif
+#home/httpd/icons/alert.black.png
+#home/httpd/icons/alert.red.gif
+#home/httpd/icons/alert.red.png
+#home/httpd/icons/apache_pb.gif
+#home/httpd/icons/apache_pb.png
+#home/httpd/icons/back.gif
+#home/httpd/icons/back.png
+#home/httpd/icons/ball.gray.gif
+#home/httpd/icons/ball.gray.png
+#home/httpd/icons/ball.red.gif
+#home/httpd/icons/ball.red.png
+#home/httpd/icons/binary.gif
+#home/httpd/icons/binary.png
+#home/httpd/icons/binhex.gif
+#home/httpd/icons/binhex.png
+#home/httpd/icons/blank.gif
+#home/httpd/icons/blank.png
+#home/httpd/icons/bomb.gif
+#home/httpd/icons/bomb.png
+#home/httpd/icons/box1.gif
+#home/httpd/icons/box1.png
+#home/httpd/icons/box2.gif
+#home/httpd/icons/box2.png
+#home/httpd/icons/broken.gif
+#home/httpd/icons/broken.png
+#home/httpd/icons/burst.gif
+#home/httpd/icons/burst.png
+#home/httpd/icons/c.gif
+#home/httpd/icons/c.png
+#home/httpd/icons/comp.blue.gif
+#home/httpd/icons/comp.blue.png
+#home/httpd/icons/comp.gray.gif
+#home/httpd/icons/comp.gray.png
+#home/httpd/icons/compressed.gif
+#home/httpd/icons/compressed.png
+#home/httpd/icons/continued.gif
+#home/httpd/icons/continued.png
+#home/httpd/icons/dir.gif
+#home/httpd/icons/dir.png
+#home/httpd/icons/diskimg.gif
+#home/httpd/icons/diskimg.png
+#home/httpd/icons/down.gif
+#home/httpd/icons/down.png
+#home/httpd/icons/dvi.gif
+#home/httpd/icons/dvi.png
+#home/httpd/icons/f.gif
+#home/httpd/icons/f.png
+#home/httpd/icons/folder.gif
+#home/httpd/icons/folder.open.gif
+#home/httpd/icons/folder.open.png
+#home/httpd/icons/folder.png
+#home/httpd/icons/folder.sec.gif
+#home/httpd/icons/folder.sec.png
+#home/httpd/icons/forward.gif
+#home/httpd/icons/forward.png
+#home/httpd/icons/generic.gif
+#home/httpd/icons/generic.png
+#home/httpd/icons/generic.red.gif
+#home/httpd/icons/generic.red.png
+#home/httpd/icons/generic.sec.gif
+#home/httpd/icons/generic.sec.png
+#home/httpd/icons/hand.right.gif
+#home/httpd/icons/hand.right.png
+#home/httpd/icons/hand.up.gif
+#home/httpd/icons/hand.up.png
+#home/httpd/icons/icon.sheet.gif
+#home/httpd/icons/icon.sheet.png
+#home/httpd/icons/image1.gif
+#home/httpd/icons/image1.png
+#home/httpd/icons/image2.gif
+#home/httpd/icons/image2.png
+#home/httpd/icons/image3.gif
+#home/httpd/icons/image3.png
+#home/httpd/icons/index.gif
+#home/httpd/icons/index.png
+#home/httpd/icons/layout.gif
+#home/httpd/icons/layout.png
+#home/httpd/icons/left.gif
+#home/httpd/icons/left.png
+#home/httpd/icons/link.gif
+#home/httpd/icons/link.png
+#home/httpd/icons/movie.gif
+#home/httpd/icons/movie.png
+#home/httpd/icons/p.gif
+#home/httpd/icons/p.png
+#home/httpd/icons/patch.gif
+#home/httpd/icons/patch.png
+#home/httpd/icons/pdf.gif
+#home/httpd/icons/pdf.png
+#home/httpd/icons/pie0.gif
+#home/httpd/icons/pie0.png
+#home/httpd/icons/pie1.gif
+#home/httpd/icons/pie1.png
+#home/httpd/icons/pie2.gif
+#home/httpd/icons/pie2.png
+#home/httpd/icons/pie3.gif
+#home/httpd/icons/pie3.png
+#home/httpd/icons/pie4.gif
+#home/httpd/icons/pie4.png
+#home/httpd/icons/pie5.gif
+#home/httpd/icons/pie5.png
+#home/httpd/icons/pie6.gif
+#home/httpd/icons/pie6.png
+#home/httpd/icons/pie7.gif
+#home/httpd/icons/pie7.png
+#home/httpd/icons/pie8.gif
+#home/httpd/icons/pie8.png
+#home/httpd/icons/portal.gif
+#home/httpd/icons/portal.png
+#home/httpd/icons/ps.gif
+#home/httpd/icons/ps.png
+#home/httpd/icons/quill.gif
+#home/httpd/icons/quill.png
+#home/httpd/icons/right.gif
+#home/httpd/icons/right.png
+#home/httpd/icons/screw1.gif
+#home/httpd/icons/screw1.png
+#home/httpd/icons/screw2.gif
+#home/httpd/icons/screw2.png
+#home/httpd/icons/script.gif
+#home/httpd/icons/script.png
+#home/httpd/icons/small
+#home/httpd/icons/small/README.txt
+#home/httpd/icons/small/back.gif
+#home/httpd/icons/small/back.png
+#home/httpd/icons/small/binary.gif
+#home/httpd/icons/small/binary.png
+#home/httpd/icons/small/binhex.gif
+#home/httpd/icons/small/binhex.png
+#home/httpd/icons/small/blank.gif
+#home/httpd/icons/small/blank.png
+#home/httpd/icons/small/broken.gif
+#home/httpd/icons/small/broken.png
+#home/httpd/icons/small/burst.gif
+#home/httpd/icons/small/burst.png
+#home/httpd/icons/small/comp1.gif
+#home/httpd/icons/small/comp1.png
+#home/httpd/icons/small/comp2.gif
+#home/httpd/icons/small/comp2.png
+#home/httpd/icons/small/compressed.gif
+#home/httpd/icons/small/compressed.png
+#home/httpd/icons/small/continued.gif
+#home/httpd/icons/small/continued.png
+#home/httpd/icons/small/dir.gif
+#home/httpd/icons/small/dir.png
+#home/httpd/icons/small/dir2.gif
+#home/httpd/icons/small/dir2.png
+#home/httpd/icons/small/doc.gif
+#home/httpd/icons/small/doc.png
+#home/httpd/icons/small/forward.gif
+#home/httpd/icons/small/forward.png
+#home/httpd/icons/small/generic.gif
+#home/httpd/icons/small/generic.png
+#home/httpd/icons/small/generic2.gif
+#home/httpd/icons/small/generic2.png
+#home/httpd/icons/small/generic3.gif
+#home/httpd/icons/small/generic3.png
+#home/httpd/icons/small/image.gif
+#home/httpd/icons/small/image.png
+#home/httpd/icons/small/image2.gif
+#home/httpd/icons/small/image2.png
+#home/httpd/icons/small/index.gif
+#home/httpd/icons/small/index.png
+#home/httpd/icons/small/key.gif
+#home/httpd/icons/small/key.png
+#home/httpd/icons/small/movie.gif
+#home/httpd/icons/small/movie.png
+#home/httpd/icons/small/patch.gif
+#home/httpd/icons/small/patch.png
+#home/httpd/icons/small/ps.gif
+#home/httpd/icons/small/ps.png
+#home/httpd/icons/small/rainbow.gif
+#home/httpd/icons/small/rainbow.png
+#home/httpd/icons/small/sound.gif
+#home/httpd/icons/small/sound.png
+#home/httpd/icons/small/sound2.gif
+#home/httpd/icons/small/sound2.png
+#home/httpd/icons/small/tar.gif
+#home/httpd/icons/small/tar.png
+#home/httpd/icons/small/text.gif
+#home/httpd/icons/small/text.png
+#home/httpd/icons/small/transfer.gif
+#home/httpd/icons/small/transfer.png
+#home/httpd/icons/small/unknown.gif
+#home/httpd/icons/small/unknown.png
+#home/httpd/icons/small/uu.gif
+#home/httpd/icons/small/uu.png
+#home/httpd/icons/sound1.gif
+#home/httpd/icons/sound1.png
+#home/httpd/icons/sound2.gif
+#home/httpd/icons/sound2.png
+#home/httpd/icons/sphere1.gif
+#home/httpd/icons/sphere1.png
+#home/httpd/icons/sphere2.gif
+#home/httpd/icons/sphere2.png
+#home/httpd/icons/tar.gif
+#home/httpd/icons/tar.png
+#home/httpd/icons/tex.gif
+#home/httpd/icons/tex.png
+#home/httpd/icons/text.gif
+#home/httpd/icons/text.png
+#home/httpd/icons/transfer.gif
+#home/httpd/icons/transfer.png
+#home/httpd/icons/unknown.gif
+#home/httpd/icons/unknown.png
+#home/httpd/icons/up.gif
+#home/httpd/icons/up.png
+#home/httpd/icons/uu.gif
+#home/httpd/icons/uu.png
+#home/httpd/icons/uuencoded.gif
+#home/httpd/icons/uuencoded.png
+#home/httpd/icons/world1.gif
+#home/httpd/icons/world1.png
+#home/httpd/icons/world2.gif
+#home/httpd/icons/world2.png
+#usr/bin/ab
+#usr/bin/apachectl
+#usr/bin/apxs
+#usr/bin/checkgid
+#usr/bin/dbmmanage
+#usr/bin/htdigest
+usr/bin/htpasswd
+#usr/bin/logresolve
+#usr/bin/rotatelogs
+#usr/include/apache
+#usr/include/apache/ap.h
+#usr/include/apache/ap_alloc.h
+#usr/include/apache/ap_compat.h
+#usr/include/apache/ap_config.h
+#usr/include/apache/ap_config_auto.h
+#usr/include/apache/ap_ctx.h
+#usr/include/apache/ap_ctype.h
+#usr/include/apache/ap_ebcdic.h
+#usr/include/apache/ap_hook.h
+#usr/include/apache/ap_md5.h
+#usr/include/apache/ap_mm.h
+#usr/include/apache/ap_mmn.h
+#usr/include/apache/ap_sha1.h
+#usr/include/apache/buff.h
+#usr/include/apache/compat.h
+#usr/include/apache/conf.h
+#usr/include/apache/explain.h
+#usr/include/apache/fnmatch.h
+#usr/include/apache/hsregex.h
+#usr/include/apache/http_conf_globals.h
+#usr/include/apache/http_config.h
+#usr/include/apache/http_core.h
+#usr/include/apache/http_log.h
+#usr/include/apache/http_main.h
+#usr/include/apache/http_protocol.h
+#usr/include/apache/http_request.h
+#usr/include/apache/http_vhost.h
+#usr/include/apache/httpd.h
+#usr/include/apache/multithread.h
+#usr/include/apache/os-inline.c
+#usr/include/apache/os.h
+#usr/include/apache/rfc1413.h
+#usr/include/apache/scoreboard.h
+#usr/include/apache/util_date.h
+#usr/include/apache/util_md5.h
+#usr/include/apache/util_script.h
+#usr/include/apache/util_uri.h
+#usr/include/apache/xml
+#usr/include/apache/xml/asciitab.h
+#usr/include/apache/xml/hashtable.h
+#usr/include/apache/xml/iasciitab.h
+#usr/include/apache/xml/latin1tab.h
+#usr/include/apache/xml/nametab.h
+#usr/include/apache/xml/utf8tab.h
+#usr/include/apache/xml/xmldef.h
+#usr/include/apache/xml/xmlparse.h
+#usr/include/apache/xml/xmlrole.h
+#usr/include/apache/xml/xmltok.h
+#usr/include/apache/xml/xmltok_impl.h
+#usr/libexec
+usr/sbin/httpd
+#usr/share/man/man1/dbmmanage.1
+#usr/share/man/man1/htdigest.1
+#usr/share/man/man1/htpasswd.1
+#usr/share/man/man8/ab.8
+#usr/share/man/man8/apachectl.8
+#usr/share/man/man8/apxs.8
+#usr/share/man/man8/httpd.8
+#usr/share/man/man8/logresolve.8
+#usr/share/man/man8/rotatelogs.8
+var/log/httpd
+#var/proxy
+##
+## arping-2.0.5
+##
+usr/sbin/arping
+##
+## beep-1.2.2
+##
+usr/bin/beep
+##
+## bind-9.2.5
+##
+usr/bin/host
+usr/bin/nsupdate
+##
+## capi4k-utils-2004-10-06
+##
+#etc/ppp/peers/isdn
+#etc/ppp/peers/isdn/arcor
+#etc/ppp/peers/isdn/otelo
+#etc/ppp/peers/isdn/talkline
+#etc/ppp/peers/isdn/avm
+#etc/ppp/peers/isdn/avm-ml
+#etc/ppp/peers/isdn/leased
+#etc/drdsl
+#etc/drdsl/adsl.conf
+#usr/include/capi20.h
+#usr/include/capiutils.h
+#usr/include/capicmd.h
+usr/lib/pppd/2.4.2/capiplugin.so
+usr/lib/pppd/2.4.2/userpass.so
+#usr/lib/libcapi20dyn.a
+usr/lib/libcapi20.so.2.0.9
+usr/lib/libcapi20.so.2
+usr/lib/libcapi20.so
+#usr/lib/libcapi20.la
+#usr/lib/libcapi20.a
+usr/sbin/capiinit
+#usr/share/man/man8/avmcapictrl.8
+#usr/share/man/man8/capiplugin.8
+#sbin/avmcapictrl
+##
+## cdrtools-2.01
+##
+#usr/bin/cdda2wav
+#usr/bin/cdrecord
+#usr/bin/devdump
+#usr/bin/isodebug
+#usr/bin/isodump
+#usr/bin/isoinfo
+#usr/bin/isovfy
+#usr/bin/mkhybrid
+#usr/bin/mkisofs
+#usr/bin/readcd
+#usr/bin/scgcheck
+#usr/bin/skel
+#usr/include/align.h
+#usr/include/avoffset.h
+#usr/lib/libdeflt.a
+#usr/lib/libedc_ecc.a
+#usr/lib/libfile.a
+#usr/lib/libhfs.a
+#usr/lib/libparanoia.a
+#usr/lib/librscg.a
+#usr/lib/libscg.a
+#usr/lib/libschily.a
+#usr/lib/libunls.a
+#usr/sbin/rscsi
+#usr/share/man/man1/cdda2ogg.1
+#usr/share/man/man1/cdda2wav.1
+#usr/share/man/man1/cdrecord.1
+#usr/share/man/man1/readcd.1
+#usr/share/man/man1/scgcheck.1
+#usr/share/man/man5/makefiles.5
+#usr/share/man/man5/makerules.5
+#usr/share/man/man8/isoinfo.8
+#usr/share/man/man8/mkhybrid.8
+#usr/share/man/man8/mkisofs.8
+##
+## configroot
+##
+var/ipcop
+#var/ipcop/alcatelusb
+#var/ipcop/auth
+#var/ipcop/auth/users
+#var/ipcop/backup
+#var/ipcop/backup/exclude.hardware
+#var/ipcop/backup/exclude.system
+#var/ipcop/backup/exclude.user
+#var/ipcop/backup/include.system
+#var/ipcop/backup/include.user
+#var/ipcop/backup/sets
+#var/ipcop/ca
+#var/ipcop/certs
+#var/ipcop/certs/index.txt
+#var/ipcop/certs/serial
+#var/ipcop/cnx_pci
+#var/ipcop/countries.pl
+#var/ipcop/crls
+#var/ipcop/ddns
+#var/ipcop/ddns/config
+#var/ipcop/ddns/ipcache
+#var/ipcop/ddns/noipsettings
+#var/ipcop/ddns/settings
+#var/ipcop/dhcp
+#var/ipcop/dhcp/advoptions
+#var/ipcop/dhcp/advoptions-list
+#var/ipcop/dhcp/fixleases
+#var/ipcop/dhcp/settings
+#var/ipcop/dhcpc
+#var/ipcop/dhcpc/dhcpcd.exe
+#var/ipcop/dmzholes
+#var/ipcop/dmzholes/config
+#var/ipcop/eagle-usb
+#var/ipcop/eciadsl
+#var/ipcop/ethernet
+#var/ipcop/ethernet/aliases
+#var/ipcop/ethernet/settings
+#var/ipcop/general-functions.pl
+#var/ipcop/header.pl
+#var/ipcop/isdn
+#var/ipcop/isdn/settings
+#var/ipcop/key
+#var/ipcop/key/ipcop.gpg
+#var/ipcop/lang.pl
+#var/ipcop/langs
+#var/ipcop/langs/bz.pl
+#var/ipcop/langs/cs.pl
+#var/ipcop/langs/da.pl
+#var/ipcop/langs/de.pl
+#var/ipcop/langs/el.pl
+#var/ipcop/langs/en.pl
+#var/ipcop/langs/es.pl
+#var/ipcop/langs/fi.pl
+#var/ipcop/langs/fr.pl
+#var/ipcop/langs/hu.pl
+#var/ipcop/langs/it.pl
+#var/ipcop/langs/la.pl
+#var/ipcop/langs/list
+#var/ipcop/langs/lt.pl
+#var/ipcop/langs/nl.pl
+#var/ipcop/langs/no.pl
+#var/ipcop/langs/pl.pl
+#var/ipcop/langs/pt.pl
+#var/ipcop/langs/ro.pl
+#var/ipcop/langs/ru.pl
+#var/ipcop/langs/so.pl
+#var/ipcop/langs/sv.pl
+#var/ipcop/langs/th.pl
+#var/ipcop/langs/tr.pl
+#var/ipcop/langs/vi.pl
+#var/ipcop/langs/zh.pl
+#var/ipcop/logging
+#var/ipcop/logging/settings
+#var/ipcop/main
+#var/ipcop/main/hosts
+#var/ipcop/main/settings
+#var/ipcop/modem
+#var/ipcop/modem/defaults
+#var/ipcop/modem/settings
+#var/ipcop/patches
+#var/ipcop/patches/available
+#var/ipcop/patches/installed
+#var/ipcop/portfw
+#var/ipcop/portfw/config
+#var/ipcop/ppp
+#var/ipcop/ppp/fake-resolv.conf
+#var/ipcop/ppp/settings
+#var/ipcop/ppp/settings-1
+#var/ipcop/ppp/settings-2
+#var/ipcop/ppp/settings-3
+#var/ipcop/ppp/settings-4
+#var/ipcop/ppp/settings-5
+#var/ipcop/proxy
+#var/ipcop/proxy/acl-1.4
+#var/ipcop/proxy/settings
+#var/ipcop/red
+#var/ipcop/remote
+#var/ipcop/remote/settings
+#var/ipcop/shaping
+#var/ipcop/shaping/config
+#var/ipcop/shaping/settings
+#var/ipcop/snort
+#var/ipcop/snort/settings
+#var/ipcop/time
+#var/ipcop/time/settings
+#var/ipcop/vpn
+#var/ipcop/vpn/caconfig
+#var/ipcop/vpn/config
+#var/ipcop/vpn/ipsec.conf
+#var/ipcop/vpn/ipsec.secrets
+#var/ipcop/vpn/settings
+#var/ipcop/wireless
+#var/ipcop/wireless/config
+#var/ipcop/wireless/settings
+#var/ipcop/xtaccess
+#var/ipcop/xtaccess/config
+##
+## cxacru-2003-10-05
+##
+#lib/modules/2.4.31/kernel/drivers/usb/cxacru.o.gz
+usr/sbin/cxfirm1.bin
+usr/sbin/cxfirm2.bin
+usr/sbin/cxfirm3.bin
+usr/sbin/cxfirm4.bin
+usr/sbin/cxfirm5.bin
+usr/sbin/cxioctl
+usr/sbin/cxload
+##
+## dhcp-3.0.2
+##
+etc/dhcpd.conf
+#sbin/dhclient
+#sbin/dhclient-script
+#usr/bin/omshell
+#usr/local/include/dhcpctl.h
+#usr/local/include/isc-dhcp
+#usr/local/include/isc-dhcp/boolean.h
+#usr/local/include/isc-dhcp/dst.h
+#usr/local/include/isc-dhcp/int.h
+#usr/local/include/isc-dhcp/lang.h
+#usr/local/include/isc-dhcp/list.h
+#usr/local/include/isc-dhcp/result.h
+#usr/local/include/isc-dhcp/types.h
+#usr/local/include/omapip
+#usr/local/include/omapip/alloc.h
+#usr/local/include/omapip/buffer.h
+#usr/local/include/omapip/omapip.h
+#usr/local/lib/libdhcpctl.a
+#usr/local/lib/libomapi.a
+usr/sbin/dhcpd
+#usr/sbin/dhcrelay
+#usr/share/man/man1/omshell.1
+#usr/share/man/man3/dhcpctl.3
+#usr/share/man/man3/omapi.3
+#usr/share/man/man3/omshell.3
+#usr/share/man/man5/dhclient.conf.5
+#usr/share/man/man5/dhclient.leases.5
+#usr/share/man/man5/dhcp-eval.5
+#usr/share/man/man5/dhcp-options.5
+#usr/share/man/man5/dhcpd.conf.5
+#usr/share/man/man5/dhcpd.leases.5
+#usr/share/man/man8/dhclient-script.8
+#usr/share/man/man8/dhclient.8
+#usr/share/man/man8/dhcpd.8
+#usr/share/man/man8/dhcrelay.8
+#var/state
+#var/state/dhcp
+var/state/dhcp/dhcpd.leases
+##
+## dhcpcd-1.3.22-pl4
+##
+#etc/dhcpc
+usr/sbin/dhcpcd
+#usr/share/man/man8/dhcpcd.8
+##
+## dnsmasq-2.22
+##
+usr/sbin/dnsmasq
+#usr/share/man/man8/dnsmasq.8
+##
+## dosfstools-2.11
+##
+#sbin/dosfsck
+#sbin/fsck.msdos
+#sbin/fsck.vfat
+#sbin/mkdosfs
+#sbin/mkfs.msdos
+#sbin/mkfs.vfat
+#usr/share/man/man8/dosfsck.8
+#usr/share/man/man8/fsck.msdos.8
+#usr/share/man/man8/fsck.vfat.8
+#usr/share/man/man8/mkdosfs.8
+#usr/share/man/man8/mkfs.msdos.8
+#usr/share/man/man8/mkfs.vfat.8
+##
+## eagle-usb-2.3.2
+##
+#etc/eagle-usb
+etc/eagle-usb/CMVeiWO.txt
+etc/eagle-usb/CMVepES.txt
+etc/eagle-usb/CMVepES03.txt
+etc/eagle-usb/CMVepFR.txt
+etc/eagle-usb/CMVepFR04.txt
+etc/eagle-usb/CMVepFR10.txt
+etc/eagle-usb/CMVepIT.txt
+etc/eagle-usb/CMVepWO.txt
+#etc/eagle-usb/eagle-usb.conf.template
+#lib/modules/2.4.31/misc
+lib/modules/2.4.31/misc/eagle-usb.o.gz
+usr/sbin/eaglectrl
+usr/sbin/eaglestat
+usr/sbin/pppoa
+#usr/share/eagle-usb
+#usr/share/eagle-usb/dsp
+usr/share/eagle-usb/dsp/dsp_code_isdn.bin
+usr/share/eagle-usb/dsp/dsp_code_pots.bin
+##
+## eciadsl-usermode-0.11
+##
+#etc/eciadsl
+etc/eciadsl/eciadsl.conf
+etc/eciadsl/firmware00.bin
+etc/eciadsl/modems.db
+usr/sbin/eciadsl-firmware
+usr/sbin/eciadsl-pppoeci
+usr/sbin/eciadsl-synch
+##
+## ethtool-3
+##
+usr/sbin/ethtool
+#usr/share/man/man8/ethtool.8
+##
+## ez-ipupdate-3.0.11b8
+##
+usr/bin/ez-ipupdate
+##
+## fcron-2.0.2
+##
+etc/fcron.allow
+etc/fcron.conf
+etc/fcron.deny
+usr/bin/fcronsighup
+usr/bin/fcrontab
+usr/sbin/fcron
+#usr/share/doc/fcron-2.0.1
+#usr/share/doc/fcron-2.0.1/fcron.conf.5.html
+#usr/share/doc/fcron-2.0.1/LICENSE
+#usr/share/doc/fcron-2.0.1/README
+#usr/share/doc/fcron-2.0.1/fcron.8.html
+#usr/share/doc/fcron-2.0.1/CHANGES
+#usr/share/doc/fcron-2.0.1/fcrontab.1.html
+#usr/share/doc/fcron-2.0.1/fcrontab.5.html
+#usr/share/man/man1/fcrontab.1
+#usr/share/man/man3/bitstring.3
+#usr/share/man/man5/fcrontab.5
+#usr/share/man/man5/fcron.conf.5
+#usr/share/man/man8/fcron.8
+var/spool/cron/root.orig
+var/spool/cron/new.root
+##
+## GD-2.12
+##
+#usr/lib/perl5/5.8.5/alpha-linux/perllocal.pod
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/GD
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/GD.pm
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/GD/Polyline.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/GD
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/GD/.packlist
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/GD/GD.bs
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/GD/GD.so
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/GD/autosplit.ix
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/qd.pl
+#usr/share/man/man3/GD.3
+#usr/share/man/man3/GD::Polyline.3
+##
+## gnupg-1.4.2
+##
+#root/.gnupg
+root/.gnupg/gpg.conf
+root/.gnupg/pubring.gpg
+#root/.gnupg/pubring.gpg~
+root/.gnupg/secring.gpg
+root/.gnupg/trustdb.gpg
+usr/bin/gpg
+#usr/bin/gpgsplit
+#usr/bin/gpgv
+#usr/libexec/gnupg
+#usr/share/gnupg
+#usr/share/gnupg/FAQ
+#usr/share/gnupg/faq.html
+#usr/share/gnupg/options.skel
+#usr/share/info/gpg.info
+#usr/share/info/gpgv.info
+#usr/share/man/man1/gpg.1
+#usr/share/man/man1/gpgv.1
+#usr/share/man/man7/gnupg.7
+##
+## hdparm-6.3
+##
+sbin/hdparm
+#usr/share/man/man8/hdparm.8
+##
+## ibod
+##
+etc/ppp/ibod.cf
+usr/sbin/ibod
+##
+## initscripts
+##
+#etc/rc.d
+#etc/rc.d/helper
+etc/rc.d/helper/getdnsfromdhcpc.pl
+etc/rc.d/helper/writeipac.pl
+etc/rc.d/rc.3cp4218usbadsl
+etc/rc.d/rc.alcatelusb
+etc/rc.d/rc.alcatelusbk
+etc/rc.d/rc.amedynusbadsl
+etc/rc.d/rc.bewanadsl
+etc/rc.d/rc.conexantusbadsl
+etc/rc.d/rc.connectioncheck
+etc/rc.d/rc.eagleusbadsl
+etc/rc.d/rc.eciadsl
+etc/rc.d/rc.firewall
+etc/rc.d/rc.firewall.local
+etc/rc.d/rc.flash.down
+etc/rc.d/rc.flash.up
+etc/rc.d/rc.fritzdsl
+etc/rc.d/rc.halt
+etc/rc.d/rc.isdn
+etc/rc.d/rc.local
+etc/rc.d/rc.netaddress.down
+etc/rc.d/rc.netaddress.up
+etc/rc.d/rc.network
+etc/rc.d/rc.pulsardsl
+etc/rc.d/rc.red
+etc/rc.d/rc.sysinit
+etc/rc.d/rc.updatered
+##
+## iptables-1.3.4
+##
+#lib/iptables
+lib/iptables/libipt_CLASSIFY.so
+lib/iptables/libipt_CONNMARK.so
+lib/iptables/libipt_DNAT.so
+lib/iptables/libipt_DSCP.so
+lib/iptables/libipt_ECN.so
+lib/iptables/libipt_IPV4OPTSSTRIP.so
+lib/iptables/libipt_LOG.so
+lib/iptables/libipt_MARK.so
+lib/iptables/libipt_MASQUERADE.so
+lib/iptables/libipt_MIRROR.so
+lib/iptables/libipt_NETLINK.so
+lib/iptables/libipt_NETMAP.so
+lib/iptables/libipt_NFQUEUE.so
+lib/iptables/libipt_NOTRACK.so
+lib/iptables/libipt_POOL.so
+lib/iptables/libipt_REDIRECT.so
+lib/iptables/libipt_REJECT.so
+lib/iptables/libipt_SAME.so
+lib/iptables/libipt_SET.so
+lib/iptables/libipt_SNAT.so
+lib/iptables/libipt_TARPIT.so
+lib/iptables/libipt_TCPMSS.so
+lib/iptables/libipt_TOS.so
+lib/iptables/libipt_TRACE.so
+lib/iptables/libipt_TTL.so
+lib/iptables/libipt_ULOG.so
+lib/iptables/libipt_addrtype.so
+lib/iptables/libipt_ah.so
+lib/iptables/libipt_comment.so
+lib/iptables/libipt_connlimit.so
+lib/iptables/libipt_connmark.so
+lib/iptables/libipt_conntrack.so
+lib/iptables/libipt_dscp.so
+lib/iptables/libipt_dstlimit.so
+lib/iptables/libipt_ecn.so
+lib/iptables/libipt_esp.so
+lib/iptables/libipt_fuzzy.so
+lib/iptables/libipt_hashlimit.so
+lib/iptables/libipt_helper.so
+lib/iptables/libipt_icmp.so
+lib/iptables/libipt_iprange.so
+lib/iptables/libipt_ipv4options.so
+lib/iptables/libipt_length.so
+lib/iptables/libipt_limit.so
+lib/iptables/libipt_mac.so
+lib/iptables/libipt_mark.so
+lib/iptables/libipt_mport.so
+lib/iptables/libipt_multiport.so
+lib/iptables/libipt_nth.so
+lib/iptables/libipt_osf.so
+lib/iptables/libipt_owner.so
+lib/iptables/libipt_physdev.so
+lib/iptables/libipt_pkttype.so
+lib/iptables/libipt_pool.so
+lib/iptables/libipt_psd.so
+lib/iptables/libipt_quota.so
+lib/iptables/libipt_random.so
+lib/iptables/libipt_realm.so
+lib/iptables/libipt_recent.so
+lib/iptables/libipt_rpc.so
+lib/iptables/libipt_sctp.so
+lib/iptables/libipt_set.so
+lib/iptables/libipt_standard.so
+lib/iptables/libipt_state.so
+lib/iptables/libipt_string.so
+lib/iptables/libipt_tcp.so
+lib/iptables/libipt_tcpmss.so
+lib/iptables/libipt_time.so
+lib/iptables/libipt_tos.so
+lib/iptables/libipt_ttl.so
+lib/iptables/libipt_u32.so
+lib/iptables/libipt_udp.so
+lib/iptables/libipt_unclean.so
+sbin/iptables
+#sbin/iptables-restore
+#sbin/iptables-save
+#usr/share/man/man8/iptables-restore.8
+#usr/share/man/man8/iptables-save.8
+#usr/share/man/man8/iptables.8
+##
+## ipac-ng-1.31
+##
+bin/mail
+#etc/ipac-ng
+etc/ipac-ng/ipac.conf
+etc/ipac-ng/rules.conf
+usr/sbin/fetchipac
+#usr/sbin/ipac-convert
+usr/sbin/ipacsum
+#usr/share/man/man8/fetchipac.8
+#usr/share/man/man8/ipac-convert.8
+#usr/share/man/man8/ipacsum.8
+var/log/ip-acct
+##
+## ipaddr-1.2
+##
+#usr/lib/python2.3/ipaddr.py
+usr/lib/python2.3/ipaddr.pyc
+##
+## iproute2-2.4.7-now-ss010824
+##
+sbin/ip
+sbin/rtmon
+sbin/tc
+##
+## isapnptools-1.26
+##
+#usr/include/isapnp
+#usr/include/isapnp/callbacks.h
+#usr/include/isapnp/errcodes.h
+#usr/include/isapnp/errenum.h
+#usr/include/isapnp/iopl.h
+#usr/include/isapnp/mysnprtf.h
+#usr/include/isapnp/pnp-access.h
+#usr/include/isapnp/pnp.h
+#usr/include/isapnp/realtime.h
+#usr/include/isapnp/release.h
+#usr/include/isapnp/res-access.h
+#usr/include/isapnp/resource.h
+#usr/lib/libisapnp.a
+usr/sbin/isapnp
+#usr/sbin/pnpdump
+#usr/share/man/man5/isapnp.conf.5
+#usr/share/man/man8/isapnp.8
+#usr/share/man/man8/pnpdump.8
+##
+## isdn4k-utils.v3.2p1
+##
+#usr/lib/isdn/ISAR.BIN
+#usr/lib/isdn/dnload.bin
+#usr/lib/isdn/ds4bri.bit
+#usr/lib/isdn/dspdload.bin
+#usr/lib/isdn/loadpg.bin
+#usr/lib/isdn/pc_1t_ca.bin
+#usr/lib/isdn/pc_eu_ca.bin
+#usr/lib/isdn/prload.bin
+#usr/lib/isdn/te_dmlt.pm
+#usr/lib/isdn/te_etsi.p
+#usr/lib/isdn/te_etsi.qm0
+#usr/lib/isdn/te_etsi.qm1
+#usr/lib/isdn/te_etsi.qm2
+#usr/lib/isdn/te_etsi.qm3
+#usr/lib/isdn/te_etsi.sm
+#usr/lib/isdn/te_etsi.sq
+#usr/lib/isdn/te_etsi.sx
+#usr/lib/isdn/te_etsi.sy
+#usr/sbin/divaload
+#usr/sbin/divalog
+#usr/sbin/divalogd
+#usr/sbin/eiconctrl
+#usr/sbin/hisaxctrl
+#usr/sbin/icnctrl
+usr/sbin/ipppd
+usr/sbin/isdnctrl
+#usr/sbin/pcbitctl
+#usr/share/man/man4/isdn_audio.4
+#usr/share/man/man4/isdnctrl.4
+#usr/share/man/man4/isdninfo.4
+#usr/share/man/man4/ttyI.4
+#usr/share/man/man7/isdn_cause.7
+#usr/share/man/man8/.isdnctrl_conf.8
+#usr/share/man/man8/eiconctrl.8
+#usr/share/man/man8/hisaxctrl.8
+#usr/share/man/man8/icnctrl.8
+#usr/share/man/man8/ipppd.8
+#usr/share/man/man8/isdnctrl.8
+#usr/share/man/man8/pcbitctl.8
+##
+## kudzu-0.99.50
+##
+#etc/rc.d/init.d
+#etc/rc.d/init.d/kudzu
+#etc/sysconfig
+#etc/sysconfig/kudzu
+etc/updfstab.conf
+etc/updfstab.conf.default
+#usr/include/kudzu
+#usr/include/kudzu/ddc.h
+#usr/include/kudzu/device.h
+#usr/include/kudzu/ide.h
+#usr/include/kudzu/isapnp.h
+#usr/include/kudzu/keyboard.h
+#usr/include/kudzu/kudzu.h
+#usr/include/kudzu/misc.h
+#usr/include/kudzu/modules.h
+#usr/include/kudzu/parallel.h
+#usr/include/kudzu/pci.h
+#usr/include/kudzu/psaux.h
+#usr/include/kudzu/sbus.h
+#usr/include/kudzu/scsi.h
+#usr/include/kudzu/serial.h
+#usr/include/kudzu/usb.h
+#usr/lib/libkudzu.a
+#usr/lib/libkudzu_loader.a
+usr/lib/python2.3/site-packages/_kudzumodule.so
+#usr/lib/python2.3/site-packages/kudzu.py
+usr/lib/python2.3/site-packages/kudzu.pyc
+#usr/sbin/kudzu
+#usr/sbin/module_upgrade
+usr/sbin/updfstab
+#usr/share/locale/bs
+#usr/share/locale/bs/LC_MESSAGES
+#usr/share/locale/bs/LC_MESSAGES/kudzu.mo
+#usr/share/locale/cs/LC_MESSAGES/kudzu.mo
+#usr/share/locale/da/LC_MESSAGES/kudzu.mo
+#usr/share/locale/de/LC_MESSAGES/kudzu.mo
+#usr/share/locale/es/LC_MESSAGES/kudzu.mo
+#usr/share/locale/eu_ES
+#usr/share/locale/eu_ES/LC_MESSAGES
+#usr/share/locale/eu_ES/LC_MESSAGES/kudzu.mo
+#usr/share/locale/fi/LC_MESSAGES/kudzu.mo
+#usr/share/locale/fr/LC_MESSAGES/kudzu.mo
+#usr/share/locale/gl/LC_MESSAGES/kudzu.mo
+#usr/share/locale/hu/LC_MESSAGES/kudzu.mo
+#usr/share/locale/id
+#usr/share/locale/id/LC_MESSAGES
+#usr/share/locale/id/LC_MESSAGES/kudzu.mo
+#usr/share/locale/is
+#usr/share/locale/is/LC_MESSAGES
+#usr/share/locale/is/LC_MESSAGES/kudzu.mo
+#usr/share/locale/it/LC_MESSAGES/kudzu.mo
+#usr/share/locale/ja/LC_MESSAGES/kudzu.mo
+#usr/share/locale/ko/LC_MESSAGES/kudzu.mo
+#usr/share/locale/nn
+#usr/share/locale/nn/LC_MESSAGES
+#usr/share/locale/nn/LC_MESSAGES/kudzu.mo
+#usr/share/locale/no/LC_MESSAGES/kudzu.mo
+#usr/share/locale/pl/LC_MESSAGES/kudzu.mo
+#usr/share/locale/pt
+#usr/share/locale/pt/LC_MESSAGES
+#usr/share/locale/pt/LC_MESSAGES/kudzu.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/kudzu.mo
+#usr/share/locale/ro
+#usr/share/locale/ro/LC_MESSAGES
+#usr/share/locale/ro/LC_MESSAGES/kudzu.mo
+#usr/share/locale/ru
+#usr/share/locale/ru/LC_MESSAGES
+#usr/share/locale/ru/LC_MESSAGES/kudzu.mo
+#usr/share/locale/sk/LC_MESSAGES/kudzu.mo
+#usr/share/locale/sl/LC_MESSAGES/kudzu.mo
+#usr/share/locale/sr
+#usr/share/locale/sr/LC_MESSAGES
+#usr/share/locale/sr/LC_MESSAGES/kudzu.mo
+#usr/share/locale/sv/LC_MESSAGES/kudzu.mo
+#usr/share/locale/tr/LC_MESSAGES/kudzu.mo
+#usr/share/locale/uk
+#usr/share/locale/uk/LC_MESSAGES
+#usr/share/locale/uk/LC_MESSAGES/kudzu.mo
+#usr/share/locale/wa
+#usr/share/locale/wa/LC_MESSAGES
+#usr/share/locale/wa/LC_MESSAGES/kudzu.mo
+#usr/share/locale/zh
+#usr/share/locale/zh/LC_MESSAGES
+#usr/share/locale/zh/LC_MESSAGES/kudzu.mo
+#usr/share/locale/zh_CN.GB2312
+#usr/share/locale/zh_CN.GB2312/LC_MESSAGES
+#usr/share/locale/zh_CN.GB2312/LC_MESSAGES/kudzu.mo
+#usr/share/locale/zh_TW.Big5
+#usr/share/locale/zh_TW.Big5/LC_MESSAGES
+#usr/share/locale/zh_TW.Big5/LC_MESSAGES/kudzu.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/kudzu.mo
+#usr/share/man/man8/kudzu.8
+#usr/share/man/man8/module_upgrade.8
+#usr/share/man/man8/updfstab.8
+##
+## logrotate-3.7
+##
+usr/sbin/logrotate
+#usr/share/man/man8/logrotate.8
+var/lib/logrotate.status
+##
+## logwatch-6.1.2
+##
+#etc/log.d
+#etc/log.d/conf
+etc/log.d/conf/ignore.conf
+#etc/log.d/conf/logfiles
+etc/log.d/conf/logfiles/http.conf
+etc/log.d/conf/logfiles/messages.conf
+etc/log.d/conf/logfiles/secure.conf
+etc/log.d/conf/logwatch.conf
+#etc/log.d/conf/services
+etc/log.d/conf/services/dhcpd.conf
+etc/log.d/conf/services/http.conf
+etc/log.d/conf/services/init.conf
+etc/log.d/conf/services/kernel.conf
+etc/log.d/conf/services/modprobe.conf
+#etc/log.d/conf/services/openvpn.conf
+#etc/log.d/conf/services/pam_unix.conf
+etc/log.d/conf/services/pluto.conf
+etc/log.d/conf/services/raid.conf
+etc/log.d/conf/services/scsi.conf
+etc/log.d/conf/services/secure.conf
+etc/log.d/conf/services/sshd.conf
+#etc/log.d/conf/services/sshd2.conf
+etc/log.d/conf/services/syslogd.conf
+etc/log.d/conf/services/xntpd.conf
+etc/log.d/conf/services/zz-disk_space.conf
+#etc/log.d/conf/services/zz-network.conf
+#etc/log.d/lib
+etc/log.d/lib/Logwatch.pm
+#etc/log.d/scripts
+etc/log.d/scripts/logwatch.pl
+#etc/log.d/scripts/services
+etc/log.d/scripts/services/dhcpd
+etc/log.d/scripts/services/http
+etc/log.d/scripts/services/init
+etc/log.d/scripts/services/kernel
+etc/log.d/scripts/services/modprobe
+#etc/log.d/scripts/services/openvpn
+#etc/log.d/scripts/services/pam_unix
+etc/log.d/scripts/services/pluto
+etc/log.d/scripts/services/raid
+etc/log.d/scripts/services/scsi
+etc/log.d/scripts/services/secure
+etc/log.d/scripts/services/sshd
+#etc/log.d/scripts/services/sshd2
+etc/log.d/scripts/services/syslogd
+etc/log.d/scripts/services/xntpd
+etc/log.d/scripts/services/zz-disk_space
+#etc/log.d/scripts/services/zz-network
+#etc/log.d/scripts/shared
+etc/log.d/scripts/shared/applyhttpdate
+etc/log.d/scripts/shared/applystddate
+etc/log.d/scripts/shared/applyusdate
+etc/log.d/scripts/shared/expandrepeats
+etc/log.d/scripts/shared/hosthash
+etc/log.d/scripts/shared/hostlist
+etc/log.d/scripts/shared/multiservice
+etc/log.d/scripts/shared/onlycontains
+etc/log.d/scripts/shared/onlyhost
+etc/log.d/scripts/shared/onlyservice
+etc/log.d/scripts/shared/remove
+etc/log.d/scripts/shared/removeheaders
+etc/log.d/scripts/shared/removeservice
+#usr/share/man/man8/logwatch.8
+var/log/logwatch
+##
+## mingetty-1.06
+##
+#usr/share/man/man8/mingetty.8
+sbin/mingetty
+##
+## misc-progs
+##
+usr/local/bin/installpackage
+usr/local/bin/iowrap
+usr/local/bin/ipcopbackup
+usr/local/bin/ipcopbkcfg
+usr/local/bin/ipcopreboot
+usr/local/bin/ipcoprscfg
+usr/local/bin/ipsecctrl
+usr/local/bin/logwatch
+usr/local/bin/rebuildhosts
+usr/local/bin/restartdhcp
+usr/local/bin/restartntpd
+usr/local/bin/restartshaping
+usr/local/bin/restartsnort
+usr/local/bin/restartsquid
+usr/local/bin/restartssh
+usr/local/bin/restartsyslogd
+usr/local/bin/restartwireless
+usr/local/bin/setaliases
+usr/local/bin/setdate
+usr/local/bin/setdmzholes
+usr/local/bin/setfilters
+usr/local/bin/setportfw
+usr/local/bin/setxtaccess
+##
+## mtools-3.9.9
+##
+#usr/bin/lz
+#usr/bin/mattrib
+#usr/bin/mbadblocks
+#usr/bin/mcat
+#usr/bin/mcd
+#usr/bin/mcheck
+#usr/bin/mcomp
+#usr/bin/mcopy
+#usr/bin/mdel
+#usr/bin/mdeltree
+#usr/bin/mdir
+#usr/bin/mdu
+#usr/bin/mformat
+#usr/bin/minfo
+#usr/bin/mkmanifest
+#usr/bin/mlabel
+#usr/bin/mmd
+#usr/bin/mmount
+#usr/bin/mmove
+#usr/bin/mpartition
+#usr/bin/mrd
+#usr/bin/mren
+#usr/bin/mshowfat
+#usr/bin/mtools
+#usr/bin/mtoolstest
+#usr/bin/mtype
+#usr/bin/mxtar
+#usr/bin/mzip
+#usr/bin/tgz
+#usr/bin/uz
+#usr/share/info/mtools.info
+#usr/share/man/man1/floppyd.1
+#usr/share/man/man1/floppyd_installtest.1
+#usr/share/man/man1/mattrib.1
+#usr/share/man/man1/mbadblocks.1
+#usr/share/man/man1/mcat.1
+#usr/share/man/man1/mcd.1
+#usr/share/man/man1/mcopy.1
+#usr/share/man/man1/mdel.1
+#usr/share/man/man1/mdeltree.1
+#usr/share/man/man1/mdir.1
+#usr/share/man/man1/mdu.1
+#usr/share/man/man1/mformat.1
+#usr/share/man/man1/minfo.1
+#usr/share/man/man1/mkmanifest.1
+#usr/share/man/man1/mlabel.1
+#usr/share/man/man1/mmd.1
+#usr/share/man/man1/mmount.1
+#usr/share/man/man1/mmove.1
+#usr/share/man/man1/mpartition.1
+#usr/share/man/man1/mrd.1
+#usr/share/man/man1/mren.1
+#usr/share/man/man1/mshowfat.1
+#usr/share/man/man1/mtools.1
+#usr/share/man/man1/mtoolstest.1
+#usr/share/man/man1/mtype.1
+#usr/share/man/man1/mzip.1
+#usr/share/man/man5/mtools.5
+##
+## nano-1.2.2
+##
+usr/bin/nano
+usr/bin/pico
+#usr/share/info/nano.info
+#usr/share/man/man1/nano.1
+#usr/share/man/man5/nanorc.5
+##
+## nash
+##
+sbin/mkinitrd
+sbin/nash
+##
+## nasm-0.98.36
+##
+#usr/bin/nasm
+#usr/bin/ndisasm
+#usr/share/man/man1/nasm.1
+#usr/share/man/man1/ndisasm.1
+##
+## Net-DNS-0.47
+##
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/A.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/EID.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/NIMLOC.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/MB.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/MG.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/MR.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/MX.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/NS.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/PX.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/RP.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/RT.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/LOC.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/MINFO.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/HINFO.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/OPT.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/PTR.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/SOA.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/SRV.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/TXT.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/X25.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/DNAME.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/TKEY.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/AAAA.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/TSIG.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/NSAP.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/NULL.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/AFSDB.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/NAPTR.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/CNAME.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/Unknown.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/CERT.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR/ISDN.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Nameserver.pm
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/RR.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/FAQ.pod
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Update.pm
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Packet.pm
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Question.pm
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Resolver.pm
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Header.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Resolver
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Resolver/Base.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Resolver/Cygwin.pm
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Resolver/Recurse.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Resolver/Win32.pm
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS/Resolver/UNIX.pm
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/DNS.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/DNS
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/DNS/DNS.bs
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/DNS/DNS.so
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/DNS/.packlist
+#usr/share/man/man3/Net::DNS::Nameserver.3
+#usr/share/man/man3/Net::DNS::RR::AFSDB.3
+#usr/share/man/man3/Net::DNS::RR::HINFO.3
+#usr/share/man/man3/Net::DNS::Resolver::Cygwin.3
+#usr/share/man/man3/Net::DNS::Resolver::Win32.3
+#usr/share/man/man3/Net::DNS::Packet.3
+#usr/share/man/man3/Net::DNS::RR::NIMLOC.3
+#usr/share/man/man3/Net::DNS::RR::CNAME.3
+#usr/share/man/man3/Net::DNS::Resolver.3
+#usr/share/man/man3/Net::DNS::Update.3
+#usr/share/man/man3/Net::DNS::RR::DNAME.3
+#usr/share/man/man3/Net::DNS::Question.3
+#usr/share/man/man3/Net::DNS::RR::A.3
+#usr/share/man/man3/Net::DNS::RR::MB.3
+#usr/share/man/man3/Net::DNS::RR::MG.3
+#usr/share/man/man3/Net::DNS::RR::MR.3
+#usr/share/man/man3/Net::DNS::RR::MX.3
+#usr/share/man/man3/Net::DNS::RR::NS.3
+#usr/share/man/man3/Net::DNS::RR::PX.3
+#usr/share/man/man3/Net::DNS::RR::RP.3
+#usr/share/man/man3/Net::DNS::RR::RT.3
+#usr/share/man/man3/Net::DNS::RR::AAAA.3
+#usr/share/man/man3/Net::DNS::Resolver::Base.3
+#usr/share/man/man3/Net::DNS::RR::Unknown.3
+#usr/share/man/man3/Net::DNS::RR::CERT.3
+#usr/share/man/man3/Net::DNS::Resolver::Recurse.3
+#usr/share/man/man3/Net::DNS::RR::MINFO.3
+#usr/share/man/man3/Net::DNS::RR.3
+#usr/share/man/man3/Net::DNS::RR::NAPTR.3
+#usr/share/man/man3/Net::DNS::RR::ISDN.3
+#usr/share/man/man3/Net::DNS::RR::EID.3
+#usr/share/man/man3/Net::DNS::RR::LOC.3
+#usr/share/man/man3/Net::DNS::RR::OPT.3
+#usr/share/man/man3/Net::DNS::RR::PTR.3
+#usr/share/man/man3/Net::DNS::RR::SOA.3
+#usr/share/man/man3/Net::DNS::RR::SRV.3
+#usr/share/man/man3/Net::DNS::RR::TXT.3
+#usr/share/man/man3/Net::DNS::RR::X25.3
+#usr/share/man/man3/Net::DNS::RR::NSAP.3
+#usr/share/man/man3/Net::DNS::FAQ.3
+#usr/share/man/man3/Net::DNS::RR::NULL.3
+#usr/share/man/man3/Net::DNS.3
+#usr/share/man/man3/Net::DNS::Resolver::UNIX.3
+#usr/share/man/man3/Net::DNS::RR::TKEY.3
+#usr/share/man/man3/Net::DNS::Header.3
+#usr/share/man/man3/Net::DNS::RR::TSIG.3
+##
+## Net-IPv4Addr-0.10
+##
+#usr/bin/ipv4calc
+usr/lib/perl5/site_perl/5.8.5/Net/IPv4Addr.pm
+#usr/lib/perl5/site_perl/5.8.5/auto
+#usr/lib/perl5/site_perl/5.8.5/auto/Net
+#usr/lib/perl5/site_perl/5.8.5/auto/Net/IPv4Addr
+#usr/lib/perl5/site_perl/5.8.5/auto/Net/IPv4Addr/autosplit.ix
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/IPv4Addr
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/IPv4Addr/.packlist
+#usr/share/man/man1/ipv4calc.1
+#usr/share/man/man3/Net::IPv4Addr.3
+##
+## noip_updater_v1.6
+##
+usr/bin/noip
+##
+## ntp-4.2.0
+##
+etc/ntp
+etc/ntp.conf
+#usr/bin/ntp-keygen
+#usr/bin/ntp-wait
+usr/bin/ntpd
+usr/bin/ntpdate
+#usr/bin/ntpdc
+#usr/bin/ntpq
+#usr/bin/ntptime
+#usr/bin/ntptrace
+#usr/bin/tickadj
+##
+## oinkmaster-1.2
+##
+usr/local/bin/oinkmaster.pl
+var/ipcop/snort/oinkmaster.conf
+##
+## openssh-3.9.p1
+##
+#etc/ssh
+etc/ssh/ssh_config
+etc/ssh/sshd_config
+etc/ssh/moduli
+#etc/ssh/ssh_host_key
+#etc/ssh/ssh_host_key.pub
+#etc/ssh/ssh_host_dsa_key
+#etc/ssh/ssh_host_dsa_key.pub
+#etc/ssh/ssh_host_rsa_key
+#etc/ssh/ssh_host_rsa_key.pub
+#usr/bin/ssh
+usr/bin/scp
+#usr/bin/ssh-add
+#usr/bin/ssh-agent
+usr/bin/ssh-keygen
+#usr/bin/ssh-keyscan
+#usr/bin/sftp
+#usr/bin/slogin
+usr/sbin/sshd
+#usr/share/man/man1/ssh.1
+#usr/share/man/man1/scp.1
+#usr/share/man/man1/ssh-add.1
+#usr/share/man/man1/ssh-agent.1
+#usr/share/man/man1/ssh-keygen.1
+#usr/share/man/man1/ssh-keyscan.1
+#usr/share/man/man1/sftp.1
+#usr/share/man/man1/slogin.1
+#usr/share/man/man5/sshd_config.5
+#usr/share/man/man5/ssh_config.5
+#usr/share/man/man8/sshd.8
+#usr/share/man/man8/sftp-server.8
+#usr/share/man/man8/ssh-keysign.8
+#usr/share/Ssh.bin
+#usr/libexec/ssh-keysign
+usr/libexec/sftp-server
+var/empty
+##
+## openswan-1.0.10
+##
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.d
+#etc/ipsec.d/cacerts
+#etc/ipsec.d/certs
+#etc/ipsec.d/crls
+#etc/ipsec.d/private
+etc/rc.d/ipsec
+#etc/rc.d/rc0.d/K68ipsec
+#etc/rc.d/rc1.d/K68ipsec
+#etc/rc.d/rc2.d/S47ipsec
+#etc/rc.d/rc3.d/S47ipsec
+#etc/rc.d/rc4.d/S47ipsec
+#etc/rc.d/rc5.d/S47ipsec
+#etc/rc.d/rc6.d/K68ipsec
+usr/lib/ipsec
+#usr/lib/ipsec/_confread
+#usr/lib/ipsec/_copyright
+#usr/lib/ipsec/_include
+#usr/lib/ipsec/_keycensor
+#usr/lib/ipsec/_pluto_adns
+#usr/lib/ipsec/_plutoload
+#usr/lib/ipsec/_plutorun
+#usr/lib/ipsec/_realsetup
+#usr/lib/ipsec/_secretcensor
+#usr/lib/ipsec/_startklips
+#usr/lib/ipsec/_updown
+#usr/lib/ipsec/_updown.x509
+#usr/lib/ipsec/auto
+#usr/lib/ipsec/barf
+#usr/lib/ipsec/calcgoo
+#usr/lib/ipsec/eroute
+#usr/lib/ipsec/ikeping
+#usr/lib/ipsec/ipsec
+#usr/lib/ipsec/ipsec_pr.template
+#usr/lib/ipsec/klipsdebug
+#usr/lib/ipsec/look
+#usr/lib/ipsec/manual
+#usr/lib/ipsec/newhostkey
+#usr/lib/ipsec/pf_key
+#usr/lib/ipsec/pluto
+#usr/lib/ipsec/ranbits
+#usr/lib/ipsec/rsasigkey
+#usr/lib/ipsec/send-pr
+#usr/lib/ipsec/setup
+#usr/lib/ipsec/showdefaults
+#usr/lib/ipsec/showhostkey
+#usr/lib/ipsec/spi
+#usr/lib/ipsec/spigrp
+#usr/lib/ipsec/tncfg
+#usr/lib/ipsec/uml_netjig
+#usr/lib/ipsec/verify
+#usr/lib/ipsec/whack
+#usr/local/include/des.h
+#usr/local/lib/libdes.a
+#usr/local/man/man3
+#usr/local/man/man3/des_crypt.3
+usr/sbin/ipsec
+#usr/share/man/man3/ipsec_addrbytesof.3
+#usr/share/man/man3/ipsec_addrbytesptr.3
+#usr/share/man/man3/ipsec_addrcmp.3
+#usr/share/man/man3/ipsec_addrinsubnet.3
+#usr/share/man/man3/ipsec_addrlenof.3
+#usr/share/man/man3/ipsec_addrtoa.3
+#usr/share/man/man3/ipsec_addrtosubnet.3
+#usr/share/man/man3/ipsec_addrtot.3
+#usr/share/man/man3/ipsec_addrtypeof.3
+#usr/share/man/man3/ipsec_anyaddr.3
+#usr/share/man/man3/ipsec_atoaddr.3
+#usr/share/man/man3/ipsec_atoasr.3
+#usr/share/man/man3/ipsec_atosa.3
+#usr/share/man/man3/ipsec_atosubnet.3
+#usr/share/man/man3/ipsec_atoul.3
+#usr/share/man/man3/ipsec_bitstomask.3
+#usr/share/man/man3/ipsec_broadcastof.3
+#usr/share/man/man3/ipsec_copyright_notice.3
+#usr/share/man/man3/ipsec_datatot.3
+#usr/share/man/man3/ipsec_goodmask.3
+#usr/share/man/man3/ipsec_hostof.3
+#usr/share/man/man3/ipsec_initaddr.3
+#usr/share/man/man3/ipsec_initsaid.3
+#usr/share/man/man3/ipsec_initsubnet.3
+#usr/share/man/man3/ipsec_isanyaddr.3
+#usr/share/man/man3/ipsec_isloopbackaddr.3
+#usr/share/man/man3/ipsec_isunspecaddr.3
+#usr/share/man/man3/ipsec_keyblobtoid.3
+#usr/share/man/man3/ipsec_loopbackaddr.3
+#usr/share/man/man3/ipsec_maskof.3
+#usr/share/man/man3/ipsec_masktobits.3
+#usr/share/man/man3/ipsec_masktocount.3
+#usr/share/man/man3/ipsec_networkof.3
+#usr/share/man/man3/ipsec_optionsfrom.3
+#usr/share/man/man3/ipsec_portof.3
+#usr/share/man/man3/ipsec_prng.3
+#usr/share/man/man3/ipsec_prng_bytes.3
+#usr/share/man/man3/ipsec_prng_final.3
+#usr/share/man/man3/ipsec_prng_init.3
+#usr/share/man/man3/ipsec_rangetoa.3
+#usr/share/man/man3/ipsec_rangetosubnet.3
+#usr/share/man/man3/ipsec_sameaddr.3
+#usr/share/man/man3/ipsec_sameaddrtype.3
+#usr/share/man/man3/ipsec_samesaid.3
+#usr/share/man/man3/ipsec_samesubnet.3
+#usr/share/man/man3/ipsec_samesubnettype.3
+#usr/share/man/man3/ipsec_satoa.3
+#usr/share/man/man3/ipsec_satot.3
+#usr/share/man/man3/ipsec_setportof.3
+#usr/share/man/man3/ipsec_sockaddrlenof.3
+#usr/share/man/man3/ipsec_sockaddrof.3
+#usr/share/man/man3/ipsec_splitkeytoid.3
+#usr/share/man/man3/ipsec_subnetinsubnet.3
+#usr/share/man/man3/ipsec_subnetishost.3
+#usr/share/man/man3/ipsec_subnetof.3
+#usr/share/man/man3/ipsec_subnettoa.3
+#usr/share/man/man3/ipsec_subnettot.3
+#usr/share/man/man3/ipsec_subnettypeof.3
+#usr/share/man/man3/ipsec_tnatoaddr.3
+#usr/share/man/man3/ipsec_ttoaddr.3
+#usr/share/man/man3/ipsec_ttodata.3
+#usr/share/man/man3/ipsec_ttosa.3
+#usr/share/man/man3/ipsec_ttosubnet.3
+#usr/share/man/man3/ipsec_ttoul.3
+#usr/share/man/man3/ipsec_ultoa.3
+#usr/share/man/man3/ipsec_ultot.3
+#usr/share/man/man3/ipsec_unspecaddr.3
+#usr/share/man/man3/ipsec_version.3
+#usr/share/man/man3/ipsec_version_code.3
+#usr/share/man/man3/ipsec_version_string.3
+#usr/share/man/man5/ipsec.conf.5
+#usr/share/man/man5/ipsec.secrets.5
+#usr/share/man/man5/ipsec_eroute.5
+#usr/share/man/man5/ipsec_klipsdebug.5
+#usr/share/man/man5/ipsec_pf_key.5
+#usr/share/man/man5/ipsec_spi.5
+#usr/share/man/man5/ipsec_spigrp.5
+#usr/share/man/man5/ipsec_tncfg.5
+#usr/share/man/man5/ipsec_version.5
+#usr/share/man/man8/ipsec.8
+#usr/share/man/man8/ipsec_auto.8
+#usr/share/man/man8/ipsec_barf.8
+#usr/share/man/man8/ipsec_calcgoo.8
+#usr/share/man/man8/ipsec_eroute.8
+#usr/share/man/man8/ipsec_ikeping.8
+#usr/share/man/man8/ipsec_klipsdebug.8
+#usr/share/man/man8/ipsec_look.8
+#usr/share/man/man8/ipsec_manual.8
+#usr/share/man/man8/ipsec_newhostkey.8
+#usr/share/man/man8/ipsec_pf_key.8
+#usr/share/man/man8/ipsec_pluto.8
+#usr/share/man/man8/ipsec_ranbits.8
+#usr/share/man/man8/ipsec_rsasigkey.8
+#usr/share/man/man8/ipsec_send-pr.8
+#usr/share/man/man8/ipsec_setup.8
+#usr/share/man/man8/ipsec_showdefaults.8
+#usr/share/man/man8/ipsec_showhostkey.8
+#usr/share/man/man8/ipsec_spi.8
+#usr/share/man/man8/ipsec_spigrp.8
+#usr/share/man/man8/ipsec_tncfg.8
+#usr/share/man/man8/ipsec_verify.8
+#usr/share/man/man8/ipsec_whack.8
+##
+## ppp-2.4.2
+##
+etc/ppp/options
+etc/ppp/pap-secrets
+etc/ppp/chap-secrets
+etc/ppp/demonloginscript
+etc/ppp/dialer
+etc/ppp/ioptions
+etc/ppp/ip-down
+etc/ppp/ip-up
+etc/ppp/standardloginscript
+#usr/include/pppd
+#usr/include/pppd/ccp.h
+#usr/include/pppd/chap-new.h
+#usr/include/pppd/ecp.h
+#usr/include/pppd/fsm.h
+#usr/include/pppd/ipcp.h
+#usr/include/pppd/ipxcp.h
+#usr/include/pppd/lcp.h
+#usr/include/pppd/magic.h
+#usr/include/pppd/md5.h
+#usr/include/pppd/patchlevel.h
+#usr/include/pppd/pathnames.h
+#usr/include/pppd/pppd.h
+#usr/include/pppd/upap.h
+#usr/include/pppd/eap.h
+#usr/include/pppd/md4.h
+#usr/include/pppd/chap_ms.h
+#usr/include/pppd/sha1.h
+#usr/include/pppd/pppcrypt.h
+#usr/include/pppd/tdb.h
+usr/lib/pppd/2.4.2/minconn.so
+usr/lib/pppd/2.4.2/passprompt.so
+usr/lib/pppd/2.4.2/passwordfd.so
+usr/lib/pppd/2.4.2/pppoatm.so
+usr/lib/pppd/2.4.2/rp-pppoe.so
+usr/sbin/chat
+usr/sbin/pppd
+#usr/sbin/pppdump
+usr/sbin/pppstats
+#usr/share/man/man8/chat.8
+#usr/share/man/man8/pppd.8
+#usr/share/man/man8/pppstats.8
+#usr/share/man/man8/pppdump.8
+var/log/connect-errors
+##
+## pptp-1.6.0
+##
+#etc/ppp/options.pptp
+usr/sbin/pptp
+#usr/share/man/man8/pptp.8
+##
+## rp-pppoe-3.5
+##
+#etc/ppp/firewall-masq
+#etc/ppp/firewall-standalone
+#etc/ppp/plugins
+#etc/ppp/plugins/README
+#etc/ppp/pppoe-server-options
+#etc/ppp/pppoe.conf
+#usr/sbin/adsl-connect
+#usr/sbin/adsl-setup
+#usr/sbin/adsl-start
+#usr/sbin/adsl-status
+#usr/sbin/adsl-stop
+usr/sbin/pppoe
+#usr/sbin/pppoe-relay
+#usr/sbin/pppoe-server
+#usr/sbin/pppoe-sniff
+#usr/share/doc/rp-pppoe-3.5
+#usr/share/doc/rp-pppoe-3.5/CHANGES
+#usr/share/doc/rp-pppoe-3.5/HOW-TO-CONNECT
+#usr/share/doc/rp-pppoe-3.5/KERNEL-MODE-PPPOE
+#usr/share/doc/rp-pppoe-3.5/LICENSE
+#usr/share/doc/rp-pppoe-3.5/README
+#usr/share/doc/rp-pppoe-3.5/SERVPOET
+#usr/share/doc/rp-pppoe-3.5/pap-secrets
+#usr/share/man/man5/pppoe.conf.5
+#usr/share/man/man8/adsl-connect.8
+#usr/share/man/man8/adsl-setup.8
+#usr/share/man/man8/adsl-start.8
+#usr/share/man/man8/adsl-status.8
+#usr/share/man/man8/adsl-stop.8
+#usr/share/man/man8/pppoe-relay.8
+#usr/share/man/man8/pppoe-server.8
+#usr/share/man/man8/pppoe-sniff.8
+#usr/share/man/man8/pppoe.8
+##
+## rrdtool-1.0.46
+##
+home/httpd/html/graphs
+#usr/bin/rrdcgi
+#usr/bin/rrdtool
+#usr/bin/rrdupdate
+#usr/bin/trytime
+#usr/lib/librrd.la
+#usr/lib/librrd.a
+#usr/share/rrdtool-1.0.46
+#usr/share/rrdtool-1.0.46/include
+#usr/share/rrdtool-1.0.46/include/rrd.h
+#usr/share/rrdtool-1.0.46/doc
+#usr/share/rrdtool-1.0.46/doc/rrdtool.pod
+#usr/share/rrdtool-1.0.46/doc/rrdlast.pod
+#usr/share/rrdtool-1.0.46/doc/rrdcreate.pod
+#usr/share/rrdtool-1.0.46/doc/rrdupdate.pod
+#usr/share/rrdtool-1.0.46/doc/rrdtutorial.es.pod
+#usr/share/rrdtool-1.0.46/doc/cdeftutorial.pod
+#usr/share/rrdtool-1.0.46/doc/rpntutorial.pod
+#usr/share/rrdtool-1.0.46/doc/rrdgraph.pod
+#usr/share/rrdtool-1.0.46/doc/bin_dec_hex.pod
+#usr/share/rrdtool-1.0.46/doc/rrdfetch.pod
+#usr/share/rrdtool-1.0.46/doc/rrdrestore.pod
+#usr/share/rrdtool-1.0.46/doc/rrddump.pod
+#usr/share/rrdtool-1.0.46/doc/rrdtune.pod
+#usr/share/rrdtool-1.0.46/doc/rrdresize.pod
+#usr/share/rrdtool-1.0.46/doc/rrdcgi.pod
+#usr/share/rrdtool-1.0.46/doc/rrdtutorial.pod
+#usr/share/rrdtool-1.0.46/doc/rrdinfo.pod
+#usr/share/rrdtool-1.0.46/doc/rrdxport.pod
+#usr/share/rrdtool-1.0.46/doc/rrd-beginners.pod
+#usr/share/rrdtool-1.0.46/doc/rrdtool.txt
+#usr/share/rrdtool-1.0.46/doc/rrdlast.txt
+#usr/share/rrdtool-1.0.46/doc/rrdcreate.txt
+#usr/share/rrdtool-1.0.46/doc/rrdupdate.txt
+#usr/share/rrdtool-1.0.46/doc/rrdtutorial.es.txt
+#usr/share/rrdtool-1.0.46/doc/cdeftutorial.txt
+#usr/share/rrdtool-1.0.46/doc/rpntutorial.txt
+#usr/share/rrdtool-1.0.46/doc/rrdgraph.txt
+#usr/share/rrdtool-1.0.46/doc/bin_dec_hex.txt
+#usr/share/rrdtool-1.0.46/doc/rrdfetch.txt
+#usr/share/rrdtool-1.0.46/doc/rrdrestore.txt
+#usr/share/rrdtool-1.0.46/doc/rrddump.txt
+#usr/share/rrdtool-1.0.46/doc/rrdtune.txt
+#usr/share/rrdtool-1.0.46/doc/rrdresize.txt
+#usr/share/rrdtool-1.0.46/doc/rrdcgi.txt
+#usr/share/rrdtool-1.0.46/doc/rrdtutorial.txt
+#usr/share/rrdtool-1.0.46/doc/rrdinfo.txt
+#usr/share/rrdtool-1.0.46/doc/rrdxport.txt
+#usr/share/rrdtool-1.0.46/doc/rrd-beginners.txt
+#usr/share/rrdtool-1.0.46/doc/RRDs.txt
+#usr/share/rrdtool-1.0.46/doc/RRDp.txt
+#usr/share/rrdtool-1.0.46/html
+#usr/share/rrdtool-1.0.46/html/rrdtool.html
+#usr/share/rrdtool-1.0.46/html/rrdlast.html
+#usr/share/rrdtool-1.0.46/html/rrdcreate.html
+#usr/share/rrdtool-1.0.46/html/rrdupdate.html
+#usr/share/rrdtool-1.0.46/html/rrdtutorial.es.html
+#usr/share/rrdtool-1.0.46/html/cdeftutorial.html
+#usr/share/rrdtool-1.0.46/html/rpntutorial.html
+#usr/share/rrdtool-1.0.46/html/rrdgraph.html
+#usr/share/rrdtool-1.0.46/html/bin_dec_hex.html
+#usr/share/rrdtool-1.0.46/html/rrdfetch.html
+#usr/share/rrdtool-1.0.46/html/rrdrestore.html
+#usr/share/rrdtool-1.0.46/html/rrddump.html
+#usr/share/rrdtool-1.0.46/html/rrdtune.html
+#usr/share/rrdtool-1.0.46/html/rrdresize.html
+#usr/share/rrdtool-1.0.46/html/rrdcgi.html
+#usr/share/rrdtool-1.0.46/html/rrdtutorial.html
+#usr/share/rrdtool-1.0.46/html/rrdinfo.html
+#usr/share/rrdtool-1.0.46/html/rrdxport.html
+#usr/share/rrdtool-1.0.46/html/rrd-beginners.html
+#usr/share/rrdtool-1.0.46/html/RRDs.html
+#usr/share/rrdtool-1.0.46/html/RRDp.html
+#usr/share/rrdtool-1.0.46/man
+#usr/share/rrdtool-1.0.46/man/man1
+#usr/share/rrdtool-1.0.46/man/man1/rrdtool.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdlast.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdcreate.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdupdate.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdtutorial.es.1
+#usr/share/rrdtool-1.0.46/man/man1/cdeftutorial.1
+#usr/share/rrdtool-1.0.46/man/man1/rpntutorial.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdgraph.1
+#usr/share/rrdtool-1.0.46/man/man1/bin_dec_hex.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdfetch.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdrestore.1
+#usr/share/rrdtool-1.0.46/man/man1/rrddump.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdtune.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdresize.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdcgi.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdtutorial.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdinfo.1
+#usr/share/rrdtool-1.0.46/man/man1/rrdxport.1
+#usr/share/rrdtool-1.0.46/man/man1/rrd-beginners.1
+#usr/share/rrdtool-1.0.46/man/man1/RRDs.1
+#usr/share/rrdtool-1.0.46/man/man1/RRDp.1
+#usr/share/rrdtool-1.0.46/examples
+#usr/share/rrdtool-1.0.46/examples/cgi-demo.cgi
+#usr/share/rrdtool-1.0.46/examples/piped-demo.pl
+#usr/share/rrdtool-1.0.46/examples/shared-demo.pl
+#usr/share/rrdtool-1.0.46/examples/stripes.pl
+#usr/share/rrdtool-1.0.46/examples/bigtops.pl
+#usr/share/rrdtool-1.0.46/examples/minmax.pl
+#usr/share/rrdtool-1.0.46/contrib
+#usr/share/rrdtool-1.0.46/contrib/trytime
+#usr/share/rrdtool-1.0.46/contrib/trytime/README
+#usr/share/rrdtool-1.0.46/contrib/trytime/trytime.c
+#usr/share/rrdtool-1.0.46/contrib/README
+#usr/share/rrdtool-1.0.46/lib
+#usr/share/rrdtool-1.0.46/lib/perl
+#usr/share/rrdtool-1.0.46/lib/perl/auto
+#usr/share/rrdtool-1.0.46/lib/perl/auto/RRDs
+#usr/share/rrdtool-1.0.46/lib/perl/auto/RRDs/RRDs.bs
+#usr/share/rrdtool-1.0.46/lib/perl/auto/RRDs/RRDs.so
+#usr/share/rrdtool-1.0.46/lib/perl/RRDp.pm
+#usr/share/rrdtool-1.0.46/lib/perl/RRDs.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/RRDp
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/RRDp/.packlist
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/RRDs
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/RRDs/RRDs.so
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/RRDs/RRDs.bs
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/RRDs/.packlist
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/RRDs.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/ntmake.pl
+usr/lib/perl5/site_perl/5.8.5/RRDp.pm
+#usr/share/man/man3/RRDp.3
+#usr/share/man/man3/RRDs.3
+var/log/rrd
+##
+## setserial-2.17
+##
+bin/setserial
+#usr/share/man/man8/setserial.8
+##
+## setup
+##
+usr/local/sbin/setup
+##
+## snort-2.3.3
+##
+etc/snort
+#etc/snort/attack-responses.rules
+#etc/snort/backdoor.rules
+#etc/snort/bad-traffic.rules
+#etc/snort/chat.rules
+#etc/snort/classification.config
+#etc/snort/ddos.rules
+#etc/snort/deleted.rules
+#etc/snort/dns.rules
+#etc/snort/dos.rules
+#etc/snort/experimental.rules
+#etc/snort/exploit.rules
+#etc/snort/finger.rules
+#etc/snort/ftp.rules
+#etc/snort/icmp-info.rules
+#etc/snort/icmp.rules
+#etc/snort/imap.rules
+#etc/snort/info.rules
+#etc/snort/local.rules
+#etc/snort/misc.rules
+#etc/snort/multimedia.rules
+#etc/snort/mysql.rules
+#etc/snort/netbios.rules
+#etc/snort/nntp.rules
+#etc/snort/oracle.rules
+#etc/snort/other-ids.rules
+#etc/snort/p2p.rules
+#etc/snort/policy.rules
+#etc/snort/pop2.rules
+#etc/snort/pop3.rules
+#etc/snort/porn.rules
+#etc/snort/reference.config
+#etc/snort/rpc.rules
+#etc/snort/rservices.rules
+#etc/snort/scan.rules
+#etc/snort/shellcode.rules
+#etc/snort/smtp.rules
+#etc/snort/snmp.rules
+#etc/snort/snort.conf
+#etc/snort/sql.rules
+#etc/snort/telnet.rules
+#etc/snort/tftp.rules
+#etc/snort/virus.rules
+#etc/snort/unicode.map
+#etc/snort/web-attacks.rules
+#etc/snort/web-cgi.rules
+#etc/snort/web-client.rules
+#etc/snort/web-coldfusion.rules
+#etc/snort/web-frontpage.rules
+#etc/snort/web-iis.rules
+#etc/snort/web-misc.rules
+#etc/snort/web-php.rules
+#etc/snort/x11.rules
+usr/sbin/snort
+#usr/share/man/man8/snort.8
+var/log/snort
+##
+## speedtouch-1.2
+##
+#etc/speedtouch
+#usr/bin/speedtouch-setup
+#usr/bin/speedtouch-start
+#usr/bin/speedtouch-stop
+usr/sbin/modem_run
+#usr/sbin/pppoa2
+usr/sbin/pppoa3
+#usr/share/doc/speedtouch
+#usr/share/doc/speedtouch/FAQ
+#usr/share/doc/speedtouch/BUGS
+#usr/share/doc/speedtouch/howto
+#usr/share/doc/speedtouch/howto/SpeedTouch-HOWTO-en.html
+#usr/share/doc/speedtouch/howto/SpeedTouch-HOWTO-fr.html
+#usr/share/doc/speedtouch/howto/SpeedTouch-HOWTO-it.html
+#usr/share/doc/speedtouch/howto/SpeedTouch-HOWTO-de.html
+#usr/share/doc/speedtouch/speedtouch.sh
+#usr/share/doc/speedtouch/speedtouch.conf
+#usr/share/doc/speedtouch/HDLC_BUG
+#usr/share/doc/speedtouch/results.txt
+#usr/share/doc/speedtouch/pppoax-doc-en.txt
+#usr/share/doc/speedtouch/adsl.ppp-peersample
+#usr/share/doc/speedtouch/pppoax-doc-fr.txt
+#usr/share/man/man1/speedtouch-setup.1
+#usr/share/man/man1/speedtouch-stop.1
+#usr/share/man/man1/speedtouch-start.1
+#usr/share/man/man8/modem_run.8
+#usr/share/man/man8/pppoa2.8
+#usr/share/man/man8/pppoa3.8
+#usr/share/speedtouch
+#usr/share/speedtouch/boot.v123.bin
+##
+## CGI-SpeedyCGI-2.22 (scripts not ready)
+##
+#usr/bin/speedy_backend
+#usr/bin/speedy
+##usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/CGI/SpeedyCGI/.packlist
+#usr/lib/perl5/site_perl/5.8.5/CGI/SpeedyCGI.pm
+##
+## squid-2.5.STABLE12
+##
+#etc/squid
+#etc/squid/cachemgr.conf
+etc/squid/errors
+etc/squid/mime.conf
+#etc/squid/mime.conf.default
+etc/squid/msntauth.conf
+#etc/squid/msntauth.conf.default
+etc/squid/squid.conf
+#etc/squid/squid.conf.default
+#usr/bin/RunAccel
+#usr/bin/RunCache
+#usr/bin/squidclient
+#usr/lib/squid
+#usr/lib/squid/cachemgr.cgi
+#usr/lib/squid/diskd
+#usr/lib/squid/errors
+#usr/lib/squid/errors/Bulgarian
+#usr/lib/squid/errors/Bulgarian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Bulgarian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Bulgarian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Bulgarian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Bulgarian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Bulgarian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Bulgarian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Bulgarian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Bulgarian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Bulgarian/ERR_INVALID_URL
+#usr/lib/squid/errors/Bulgarian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Bulgarian/ERR_NO_RELAY
+#usr/lib/squid/errors/Bulgarian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Bulgarian/ERR_READ_ERROR
+#usr/lib/squid/errors/Bulgarian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Bulgarian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Bulgarian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Bulgarian/ERR_TOO_BIG
+#usr/lib/squid/errors/Bulgarian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Bulgarian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Bulgarian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Bulgarian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Catalan
+#usr/lib/squid/errors/Catalan/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Catalan/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Catalan/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Catalan/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Catalan/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Catalan/ERR_DNS_FAIL
+#usr/lib/squid/errors/Catalan/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Catalan/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Catalan/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Catalan/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Catalan/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Catalan/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Catalan/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Catalan/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Catalan/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Catalan/ERR_INVALID_REQ
+#usr/lib/squid/errors/Catalan/ERR_INVALID_RESP
+#usr/lib/squid/errors/Catalan/ERR_INVALID_URL
+#usr/lib/squid/errors/Catalan/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Catalan/ERR_NO_RELAY
+#usr/lib/squid/errors/Catalan/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Catalan/ERR_READ_ERROR
+#usr/lib/squid/errors/Catalan/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Catalan/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Catalan/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Catalan/ERR_TOO_BIG
+#usr/lib/squid/errors/Catalan/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Catalan/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Catalan/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Catalan/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Czech
+#usr/lib/squid/errors/Czech/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Czech/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Czech/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Czech/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Czech/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Czech/ERR_DNS_FAIL
+#usr/lib/squid/errors/Czech/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Czech/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Czech/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Czech/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Czech/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Czech/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Czech/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Czech/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Czech/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Czech/ERR_INVALID_REQ
+#usr/lib/squid/errors/Czech/ERR_INVALID_RESP
+#usr/lib/squid/errors/Czech/ERR_INVALID_URL
+#usr/lib/squid/errors/Czech/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Czech/ERR_NO_RELAY
+#usr/lib/squid/errors/Czech/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Czech/ERR_READ_ERROR
+#usr/lib/squid/errors/Czech/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Czech/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Czech/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Czech/ERR_TOO_BIG
+#usr/lib/squid/errors/Czech/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Czech/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Czech/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Czech/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Danish
+#usr/lib/squid/errors/Danish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Danish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Danish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Danish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Danish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Danish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Danish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Danish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Danish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Danish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Danish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Danish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Danish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Danish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Danish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Danish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Danish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Danish/ERR_INVALID_URL
+#usr/lib/squid/errors/Danish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Danish/ERR_NO_RELAY
+#usr/lib/squid/errors/Danish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Danish/ERR_READ_ERROR
+#usr/lib/squid/errors/Danish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Danish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Danish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Danish/ERR_TOO_BIG
+#usr/lib/squid/errors/Danish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Danish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Danish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Danish/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Dutch
+#usr/lib/squid/errors/Dutch/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Dutch/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Dutch/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Dutch/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Dutch/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Dutch/ERR_DNS_FAIL
+#usr/lib/squid/errors/Dutch/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Dutch/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Dutch/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Dutch/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Dutch/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Dutch/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Dutch/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Dutch/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Dutch/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Dutch/ERR_INVALID_REQ
+#usr/lib/squid/errors/Dutch/ERR_INVALID_RESP
+#usr/lib/squid/errors/Dutch/ERR_INVALID_URL
+#usr/lib/squid/errors/Dutch/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Dutch/ERR_NO_RELAY
+#usr/lib/squid/errors/Dutch/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Dutch/ERR_READ_ERROR
+#usr/lib/squid/errors/Dutch/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Dutch/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Dutch/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Dutch/ERR_TOO_BIG
+#usr/lib/squid/errors/Dutch/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Dutch/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Dutch/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Dutch/ERR_ZERO_SIZE_OBJECT
+usr/lib/squid/errors/English
+#usr/lib/squid/errors/English/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/English/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/English/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/English/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/English/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/English/ERR_DNS_FAIL
+#usr/lib/squid/errors/English/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/English/ERR_FTP_DISABLED
+#usr/lib/squid/errors/English/ERR_FTP_FAILURE
+#usr/lib/squid/errors/English/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/English/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/English/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/English/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/English/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/English/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/English/ERR_INVALID_REQ
+#usr/lib/squid/errors/English/ERR_INVALID_RESP
+#usr/lib/squid/errors/English/ERR_INVALID_URL
+#usr/lib/squid/errors/English/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/English/ERR_NO_RELAY
+#usr/lib/squid/errors/English/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/English/ERR_READ_ERROR
+#usr/lib/squid/errors/English/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/English/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/English/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/English/ERR_TOO_BIG
+#usr/lib/squid/errors/English/ERR_UNSUP_REQ
+#usr/lib/squid/errors/English/ERR_URN_RESOLVE
+#usr/lib/squid/errors/English/ERR_WRITE_ERROR
+#usr/lib/squid/errors/English/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Estonian
+#usr/lib/squid/errors/Estonian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Estonian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Estonian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Estonian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Estonian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Estonian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Estonian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Estonian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Estonian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Estonian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Estonian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Estonian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Estonian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Estonian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Estonian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Estonian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Estonian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Estonian/ERR_INVALID_URL
+#usr/lib/squid/errors/Estonian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Estonian/ERR_NO_RELAY
+#usr/lib/squid/errors/Estonian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Estonian/ERR_READ_ERROR
+#usr/lib/squid/errors/Estonian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Estonian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Estonian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Estonian/ERR_TOO_BIG
+#usr/lib/squid/errors/Estonian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Estonian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Estonian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Estonian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Finnish
+#usr/lib/squid/errors/Finnish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Finnish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Finnish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Finnish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Finnish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Finnish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Finnish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Finnish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Finnish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Finnish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Finnish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Finnish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Finnish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Finnish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Finnish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Finnish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Finnish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Finnish/ERR_INVALID_URL
+#usr/lib/squid/errors/Finnish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Finnish/ERR_NO_RELAY
+#usr/lib/squid/errors/Finnish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Finnish/ERR_READ_ERROR
+#usr/lib/squid/errors/Finnish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Finnish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Finnish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Finnish/ERR_TOO_BIG
+#usr/lib/squid/errors/Finnish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Finnish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Finnish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Finnish/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/French
+#usr/lib/squid/errors/French/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/French/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/French/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/French/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/French/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/French/ERR_DNS_FAIL
+#usr/lib/squid/errors/French/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/French/ERR_FTP_DISABLED
+#usr/lib/squid/errors/French/ERR_FTP_FAILURE
+#usr/lib/squid/errors/French/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/French/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/French/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/French/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/French/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/French/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/French/ERR_INVALID_REQ
+#usr/lib/squid/errors/French/ERR_INVALID_RESP
+#usr/lib/squid/errors/French/ERR_INVALID_URL
+#usr/lib/squid/errors/French/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/French/ERR_NO_RELAY
+#usr/lib/squid/errors/French/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/French/ERR_READ_ERROR
+#usr/lib/squid/errors/French/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/French/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/French/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/French/ERR_TOO_BIG
+#usr/lib/squid/errors/French/ERR_UNSUP_REQ
+#usr/lib/squid/errors/French/ERR_URN_RESOLVE
+#usr/lib/squid/errors/French/ERR_WRITE_ERROR
+#usr/lib/squid/errors/French/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/German
+#usr/lib/squid/errors/German/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/German/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/German/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/German/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/German/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/German/ERR_DNS_FAIL
+#usr/lib/squid/errors/German/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/German/ERR_FTP_DISABLED
+#usr/lib/squid/errors/German/ERR_FTP_FAILURE
+#usr/lib/squid/errors/German/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/German/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/German/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/German/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/German/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/German/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/German/ERR_INVALID_REQ
+#usr/lib/squid/errors/German/ERR_INVALID_RESP
+#usr/lib/squid/errors/German/ERR_INVALID_URL
+#usr/lib/squid/errors/German/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/German/ERR_NO_RELAY
+#usr/lib/squid/errors/German/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/German/ERR_READ_ERROR
+#usr/lib/squid/errors/German/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/German/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/German/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/German/ERR_TOO_BIG
+#usr/lib/squid/errors/German/ERR_UNSUP_REQ
+#usr/lib/squid/errors/German/ERR_URN_RESOLVE
+#usr/lib/squid/errors/German/ERR_WRITE_ERROR
+#usr/lib/squid/errors/German/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Greek
+#usr/lib/squid/errors/Greek/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Greek/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Greek/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Greek/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Greek/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Greek/ERR_DNS_FAIL
+#usr/lib/squid/errors/Greek/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Greek/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Greek/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Greek/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Greek/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Greek/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Greek/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Greek/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Greek/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Greek/ERR_INVALID_REQ
+#usr/lib/squid/errors/Greek/ERR_INVALID_RESP
+#usr/lib/squid/errors/Greek/ERR_INVALID_URL
+#usr/lib/squid/errors/Greek/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Greek/ERR_NO_RELAY
+#usr/lib/squid/errors/Greek/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Greek/ERR_READ_ERROR
+#usr/lib/squid/errors/Greek/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Greek/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Greek/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Greek/ERR_TOO_BIG
+#usr/lib/squid/errors/Greek/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Greek/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Greek/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Greek/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Hebrew
+#usr/lib/squid/errors/Hebrew/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Hebrew/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Hebrew/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Hebrew/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Hebrew/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Hebrew/ERR_DNS_FAIL
+#usr/lib/squid/errors/Hebrew/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Hebrew/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Hebrew/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Hebrew/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Hebrew/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Hebrew/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Hebrew/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Hebrew/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Hebrew/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Hebrew/ERR_INVALID_REQ
+#usr/lib/squid/errors/Hebrew/ERR_INVALID_RESP
+#usr/lib/squid/errors/Hebrew/ERR_INVALID_URL
+#usr/lib/squid/errors/Hebrew/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Hebrew/ERR_NO_RELAY
+#usr/lib/squid/errors/Hebrew/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Hebrew/ERR_READ_ERROR
+#usr/lib/squid/errors/Hebrew/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Hebrew/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Hebrew/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Hebrew/ERR_TOO_BIG
+#usr/lib/squid/errors/Hebrew/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Hebrew/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Hebrew/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Hebrew/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Hungarian
+#usr/lib/squid/errors/Hungarian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Hungarian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Hungarian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Hungarian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Hungarian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Hungarian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Hungarian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Hungarian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Hungarian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Hungarian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Hungarian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Hungarian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Hungarian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Hungarian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Hungarian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Hungarian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Hungarian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Hungarian/ERR_INVALID_URL
+#usr/lib/squid/errors/Hungarian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Hungarian/ERR_NO_RELAY
+#usr/lib/squid/errors/Hungarian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Hungarian/ERR_READ_ERROR
+#usr/lib/squid/errors/Hungarian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Hungarian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Hungarian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Hungarian/ERR_TOO_BIG
+#usr/lib/squid/errors/Hungarian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Hungarian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Hungarian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Hungarian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Italian
+#usr/lib/squid/errors/Italian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Italian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Italian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Italian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Italian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Italian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Italian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Italian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Italian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Italian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Italian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Italian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Italian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Italian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Italian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Italian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Italian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Italian/ERR_INVALID_URL
+#usr/lib/squid/errors/Italian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Italian/ERR_NO_RELAY
+#usr/lib/squid/errors/Italian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Italian/ERR_READ_ERROR
+#usr/lib/squid/errors/Italian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Italian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Italian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Italian/ERR_TOO_BIG
+#usr/lib/squid/errors/Italian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Italian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Italian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Italian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Japanese
+#usr/lib/squid/errors/Japanese/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Japanese/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Japanese/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Japanese/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Japanese/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Japanese/ERR_DNS_FAIL
+#usr/lib/squid/errors/Japanese/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Japanese/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Japanese/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Japanese/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Japanese/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Japanese/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Japanese/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Japanese/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Japanese/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Japanese/ERR_INVALID_REQ
+#usr/lib/squid/errors/Japanese/ERR_INVALID_RESP
+#usr/lib/squid/errors/Japanese/ERR_INVALID_URL
+#usr/lib/squid/errors/Japanese/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Japanese/ERR_NO_RELAY
+#usr/lib/squid/errors/Japanese/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Japanese/ERR_READ_ERROR
+#usr/lib/squid/errors/Japanese/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Japanese/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Japanese/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Japanese/ERR_TOO_BIG
+#usr/lib/squid/errors/Japanese/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Japanese/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Japanese/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Japanese/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Korean
+#usr/lib/squid/errors/Korean/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Korean/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Korean/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Korean/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Korean/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Korean/ERR_DNS_FAIL
+#usr/lib/squid/errors/Korean/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Korean/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Korean/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Korean/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Korean/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Korean/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Korean/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Korean/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Korean/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Korean/ERR_INVALID_REQ
+#usr/lib/squid/errors/Korean/ERR_INVALID_RESP
+#usr/lib/squid/errors/Korean/ERR_INVALID_URL
+#usr/lib/squid/errors/Korean/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Korean/ERR_NO_RELAY
+#usr/lib/squid/errors/Korean/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Korean/ERR_READ_ERROR
+#usr/lib/squid/errors/Korean/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Korean/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Korean/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Korean/ERR_TOO_BIG
+#usr/lib/squid/errors/Korean/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Korean/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Korean/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Korean/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Lithuanian
+#usr/lib/squid/errors/Lithuanian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Lithuanian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Lithuanian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Lithuanian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Lithuanian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Lithuanian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Lithuanian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Lithuanian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Lithuanian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Lithuanian/ERR_INVALID_URL
+#usr/lib/squid/errors/Lithuanian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Lithuanian/ERR_NO_RELAY
+#usr/lib/squid/errors/Lithuanian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Lithuanian/ERR_READ_ERROR
+#usr/lib/squid/errors/Lithuanian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Lithuanian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Lithuanian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Lithuanian/ERR_TOO_BIG
+#usr/lib/squid/errors/Lithuanian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Lithuanian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Lithuanian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Lithuanian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Polish
+#usr/lib/squid/errors/Polish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Polish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Polish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Polish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Polish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Polish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Polish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Polish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Polish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Polish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Polish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Polish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Polish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Polish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Polish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Polish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Polish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Polish/ERR_INVALID_URL
+#usr/lib/squid/errors/Polish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Polish/ERR_NO_RELAY
+#usr/lib/squid/errors/Polish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Polish/ERR_READ_ERROR
+#usr/lib/squid/errors/Polish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Polish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Polish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Polish/ERR_TOO_BIG
+#usr/lib/squid/errors/Polish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Polish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Polish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Polish/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Portuguese
+#usr/lib/squid/errors/Portuguese/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Portuguese/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Portuguese/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Portuguese/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Portuguese/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Portuguese/ERR_DNS_FAIL
+#usr/lib/squid/errors/Portuguese/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Portuguese/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Portuguese/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Portuguese/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Portuguese/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Portuguese/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Portuguese/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Portuguese/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Portuguese/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Portuguese/ERR_INVALID_REQ
+#usr/lib/squid/errors/Portuguese/ERR_INVALID_RESP
+#usr/lib/squid/errors/Portuguese/ERR_INVALID_URL
+#usr/lib/squid/errors/Portuguese/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Portuguese/ERR_NO_RELAY
+#usr/lib/squid/errors/Portuguese/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Portuguese/ERR_READ_ERROR
+#usr/lib/squid/errors/Portuguese/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Portuguese/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Portuguese/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Portuguese/ERR_TOO_BIG
+#usr/lib/squid/errors/Portuguese/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Portuguese/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Portuguese/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Portuguese/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Romanian
+#usr/lib/squid/errors/Romanian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Romanian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Romanian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Romanian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Romanian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Romanian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Romanian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Romanian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Romanian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Romanian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Romanian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Romanian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Romanian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Romanian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Romanian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Romanian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Romanian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Romanian/ERR_INVALID_URL
+#usr/lib/squid/errors/Romanian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Romanian/ERR_NO_RELAY
+#usr/lib/squid/errors/Romanian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Romanian/ERR_READ_ERROR
+#usr/lib/squid/errors/Romanian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Romanian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Romanian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Romanian/ERR_TOO_BIG
+#usr/lib/squid/errors/Romanian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Romanian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Romanian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Romanian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Russian-1251
+#usr/lib/squid/errors/Russian-1251/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-1251/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-1251/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-1251/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Russian-1251/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Russian-1251/ERR_DNS_FAIL
+#usr/lib/squid/errors/Russian-1251/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Russian-1251/ERR_INVALID_REQ
+#usr/lib/squid/errors/Russian-1251/ERR_INVALID_RESP
+#usr/lib/squid/errors/Russian-1251/ERR_INVALID_URL
+#usr/lib/squid/errors/Russian-1251/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Russian-1251/ERR_NO_RELAY
+#usr/lib/squid/errors/Russian-1251/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Russian-1251/ERR_READ_ERROR
+#usr/lib/squid/errors/Russian-1251/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Russian-1251/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Russian-1251/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Russian-1251/ERR_TOO_BIG
+#usr/lib/squid/errors/Russian-1251/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Russian-1251/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Russian-1251/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Russian-1251/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Russian-koi8-r
+#usr/lib/squid/errors/Russian-koi8-r/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Russian-koi8-r/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Russian-koi8-r/ERR_DNS_FAIL
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Russian-koi8-r/ERR_INVALID_REQ
+#usr/lib/squid/errors/Russian-koi8-r/ERR_INVALID_RESP
+#usr/lib/squid/errors/Russian-koi8-r/ERR_INVALID_URL
+#usr/lib/squid/errors/Russian-koi8-r/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Russian-koi8-r/ERR_NO_RELAY
+#usr/lib/squid/errors/Russian-koi8-r/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Russian-koi8-r/ERR_READ_ERROR
+#usr/lib/squid/errors/Russian-koi8-r/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Russian-koi8-r/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Russian-koi8-r/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Russian-koi8-r/ERR_TOO_BIG
+#usr/lib/squid/errors/Russian-koi8-r/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Russian-koi8-r/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Russian-koi8-r/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Russian-koi8-r/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Serbian
+#usr/lib/squid/errors/Serbian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Serbian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Serbian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Serbian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Serbian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Serbian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Serbian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Serbian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Serbian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Serbian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Serbian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Serbian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Serbian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Serbian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Serbian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Serbian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Serbian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Serbian/ERR_INVALID_URL
+#usr/lib/squid/errors/Serbian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Serbian/ERR_NO_RELAY
+#usr/lib/squid/errors/Serbian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Serbian/ERR_READ_ERROR
+#usr/lib/squid/errors/Serbian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Serbian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Serbian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Serbian/ERR_TOO_BIG
+#usr/lib/squid/errors/Serbian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Serbian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Serbian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Serbian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Simplify_Chinese
+#usr/lib/squid/errors/Simplify_Chinese/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Simplify_Chinese/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Simplify_Chinese/ERR_DNS_FAIL
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Simplify_Chinese/ERR_INVALID_REQ
+#usr/lib/squid/errors/Simplify_Chinese/ERR_INVALID_RESP
+#usr/lib/squid/errors/Simplify_Chinese/ERR_INVALID_URL
+#usr/lib/squid/errors/Simplify_Chinese/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Simplify_Chinese/ERR_NO_RELAY
+#usr/lib/squid/errors/Simplify_Chinese/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Simplify_Chinese/ERR_READ_ERROR
+#usr/lib/squid/errors/Simplify_Chinese/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Simplify_Chinese/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Simplify_Chinese/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Simplify_Chinese/ERR_TOO_BIG
+#usr/lib/squid/errors/Simplify_Chinese/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Simplify_Chinese/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Simplify_Chinese/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Simplify_Chinese/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Slovak
+#usr/lib/squid/errors/Slovak/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Slovak/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Slovak/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Slovak/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Slovak/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Slovak/ERR_DNS_FAIL
+#usr/lib/squid/errors/Slovak/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Slovak/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Slovak/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Slovak/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Slovak/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Slovak/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Slovak/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Slovak/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Slovak/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Slovak/ERR_INVALID_REQ
+#usr/lib/squid/errors/Slovak/ERR_INVALID_RESP
+#usr/lib/squid/errors/Slovak/ERR_INVALID_URL
+#usr/lib/squid/errors/Slovak/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Slovak/ERR_NO_RELAY
+#usr/lib/squid/errors/Slovak/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Slovak/ERR_READ_ERROR
+#usr/lib/squid/errors/Slovak/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Slovak/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Slovak/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Slovak/ERR_TOO_BIG
+#usr/lib/squid/errors/Slovak/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Slovak/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Slovak/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Slovak/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Spanish
+#usr/lib/squid/errors/Spanish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Spanish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Spanish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Spanish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Spanish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Spanish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Spanish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Spanish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Spanish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Spanish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Spanish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Spanish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Spanish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Spanish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Spanish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Spanish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Spanish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Spanish/ERR_INVALID_URL
+#usr/lib/squid/errors/Spanish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Spanish/ERR_NO_RELAY
+#usr/lib/squid/errors/Spanish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Spanish/ERR_READ_ERROR
+#usr/lib/squid/errors/Spanish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Spanish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Spanish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Spanish/ERR_TOO_BIG
+#usr/lib/squid/errors/Spanish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Spanish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Spanish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Spanish/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Swedish
+#usr/lib/squid/errors/Swedish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Swedish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Swedish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Swedish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Swedish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Swedish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Swedish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Swedish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Swedish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Swedish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Swedish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Swedish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Swedish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Swedish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Swedish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Swedish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Swedish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Swedish/ERR_INVALID_URL
+#usr/lib/squid/errors/Swedish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Swedish/ERR_NO_RELAY
+#usr/lib/squid/errors/Swedish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Swedish/ERR_READ_ERROR
+#usr/lib/squid/errors/Swedish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Swedish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Swedish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Swedish/ERR_TOO_BIG
+#usr/lib/squid/errors/Swedish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Swedish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Swedish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Swedish/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Traditional_Chinese
+#usr/lib/squid/errors/Traditional_Chinese/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Traditional_Chinese/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Traditional_Chinese/ERR_DNS_FAIL
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Traditional_Chinese/ERR_INVALID_REQ
+#usr/lib/squid/errors/Traditional_Chinese/ERR_INVALID_RESP
+#usr/lib/squid/errors/Traditional_Chinese/ERR_INVALID_URL
+#usr/lib/squid/errors/Traditional_Chinese/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Traditional_Chinese/ERR_NO_RELAY
+#usr/lib/squid/errors/Traditional_Chinese/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Traditional_Chinese/ERR_READ_ERROR
+#usr/lib/squid/errors/Traditional_Chinese/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Traditional_Chinese/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Traditional_Chinese/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Traditional_Chinese/ERR_TOO_BIG
+#usr/lib/squid/errors/Traditional_Chinese/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Traditional_Chinese/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Traditional_Chinese/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Traditional_Chinese/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Turkish
+#usr/lib/squid/errors/Turkish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Turkish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Turkish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Turkish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Turkish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Turkish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Turkish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Turkish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Turkish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Turkish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Turkish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Turkish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Turkish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Turkish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Turkish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Turkish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Turkish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Turkish/ERR_INVALID_URL
+#usr/lib/squid/errors/Turkish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Turkish/ERR_NO_RELAY
+#usr/lib/squid/errors/Turkish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Turkish/ERR_READ_ERROR
+#usr/lib/squid/errors/Turkish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Turkish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Turkish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Turkish/ERR_TOO_BIG
+#usr/lib/squid/errors/Turkish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Turkish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Turkish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Turkish/ERR_ZERO_SIZE_OBJECT
+usr/lib/squid/icons
+#usr/lib/squid/icons/anthony-binhex.gif
+#usr/lib/squid/icons/anthony-bomb.gif
+#usr/lib/squid/icons/anthony-box.gif
+#usr/lib/squid/icons/anthony-box2.gif
+#usr/lib/squid/icons/anthony-c.gif
+#usr/lib/squid/icons/anthony-compressed.gif
+#usr/lib/squid/icons/anthony-dir.gif
+#usr/lib/squid/icons/anthony-dirup.gif
+#usr/lib/squid/icons/anthony-dvi.gif
+#usr/lib/squid/icons/anthony-f.gif
+#usr/lib/squid/icons/anthony-image.gif
+#usr/lib/squid/icons/anthony-image2.gif
+#usr/lib/squid/icons/anthony-layout.gif
+#usr/lib/squid/icons/anthony-link.gif
+#usr/lib/squid/icons/anthony-movie.gif
+#usr/lib/squid/icons/anthony-pdf.gif
+#usr/lib/squid/icons/anthony-portal.gif
+#usr/lib/squid/icons/anthony-ps.gif
+#usr/lib/squid/icons/anthony-quill.gif
+#usr/lib/squid/icons/anthony-script.gif
+#usr/lib/squid/icons/anthony-sound.gif
+#usr/lib/squid/icons/anthony-tar.gif
+#usr/lib/squid/icons/anthony-tex.gif
+#usr/lib/squid/icons/anthony-text.gif
+#usr/lib/squid/icons/anthony-unknown.gif
+#usr/lib/squid/icons/anthony-xbm.gif
+#usr/lib/squid/icons/anthony-xpm.gif
+#usr/lib/squid/mib.txt
+usr/lib/squid/msnt_auth
+usr/lib/squid/ncsa_auth
+usr/lib/squid/ntlm_auth
+usr/lib/squid/smb_auth
+usr/lib/squid/smb_auth.sh
+usr/lib/squid/unlinkd
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
+#usr/share/man/man8/cachemgr.cgi.8
+#usr/share/man/man8/squid.8
+var/log/cache
+var/log/squid
+var/log/squid/access.log
+#var/logs
+##
+## squid-graph-3.1
+##
+home/httpd/html/sgraph
+usr/bin/squid-graph
+##
+## tcpdump-3.7.2
+##
+usr/sbin/tcpdump
+#usr/share/man/man1/tcpdump.1
+##
+## traceroute-1.4a12
+##
+usr/sbin/traceroute
+#usr/share/man/man8/traceroute.8
+##
+## unzip552
+##
+#usr/bin/funzip
+#usr/bin/unzip
+#usr/bin/unzipsfx
+#usr/bin/zipgrep
+#usr/bin/zipinfo
+#usr/share/man/man1/funzip.1
+#usr/share/man/man1/unzip.1
+#usr/share/man/man1/unzipsfx.1
+#usr/share/man/man1/zipgrep.1
+#usr/share/man/man1/zipinfo.1
+##
+## wireless_tools.27
+##
+#usr/include/iwlib.h
+#usr/include/wireless.h
+usr/lib/libiw.so
+usr/lib/libiw.so.27
+usr/sbin/ifrename
+usr/sbin/iwconfig
+usr/sbin/iwevent
+usr/sbin/iwgetid
+usr/sbin/iwlist
+usr/sbin/iwpriv
+usr/sbin/iwspy
+#usr/share/man/man5/iftab.5
+#usr/share/man/man7/wireless.7
+#usr/share/man/man8/ifrename.8
+#usr/share/man/man8/iwconfig.8
+#usr/share/man/man8/iwevent.8
+#usr/share/man/man8/iwgetid.8
+#usr/share/man/man8/iwlist.8
+#usr/share/man/man8/iwpriv.8
+#usr/share/man/man8/iwspy.8
+##
+## HTML-Tagset-3.04
+##
+#usr/lib/perl5/site_perl/5.8.5/HTML
+#usr/lib/perl5/site_perl/5.8.5/HTML/Tagset.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/HTML
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/HTML/Tagset
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/HTML/Tagset/.packlist
+#usr/share/man/man3/HTML::Tagset.3
+##
+## HTML-Parser-3.45
+##
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/HTML
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/HTML/Entities.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/HTML/Filter.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/HTML/HeadParser.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/HTML/LinkExtor.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/HTML/Parser.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/HTML/PullParser.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/HTML/TokeParser.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/HTML/Parser
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/HTML/Parser/.packlist
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/HTML/Parser/Parser.bs
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/HTML/Parser/Parser.so
+#usr/share/man/man3/HTML::Entities.3
+#usr/share/man/man3/HTML::Filter.3
+#usr/share/man/man3/HTML::HeadParser.3
+#usr/share/man/man3/HTML::LinkExtor.3
+#usr/share/man/man3/HTML::Parser.3
+#usr/share/man/man3/HTML::PullParser.3
+#usr/share/man/man3/HTML::TokeParser.3
+##
+## Compress-Zlib-1.35
+##
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Compress/Zlib/Zlib.bs
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Compress/Zlib/Zlib.so
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Compress/Zlib/autosplit.ix
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Compress/Zlib.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Compress/Zlib/.packlist
+##
+## URI-1.35
+##
+usr/lib/perl5/site_perl/5.8.5/URI.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/data.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/tn3270.pm
+usr/lib/perl5/site_perl/5.8.5/URI/QueryParam.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_generic.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/ldapi.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/ldaps.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_query.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/ldap.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/rlogin.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_login.pm
+usr/lib/perl5/site_perl/5.8.5/URI/URL.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_server.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/rsync.pm
+usr/lib/perl5/site_perl/5.8.5/URI/https.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/sips.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/rtsp.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/rtspu.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file.pm
+usr/lib/perl5/site_perl/5.8.5/URI/WithBase.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/_ldap.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Heuristic.pm
+usr/lib/perl5/site_perl/5.8.5/URI/ftp.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/news.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/mms.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/pop.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/nntp.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/sip.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/ssh.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/urn.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/gopher.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Escape.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/telnet.pm
+usr/lib/perl5/site_perl/5.8.5/URI/http.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_foreign.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/snews.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/mailto.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Split.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_segment.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_userpass.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/urn/oid.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/urn/isbn.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/FAT.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/Base.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/Mac.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/OS2.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/QNX.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/Win32.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/Unix.pm
+##
+## libwww-perl-5.803
+##
+usr/lib/perl5/site_perl/5.8.5/LWP.pm
+#usr/lib/perl5/site_perl/5.8.5/lwpcook.pod
+#usr/lib/perl5/site_perl/5.8.5/lwptut.pod
+usr/lib/perl5/site_perl/5.8.5/LWP/MediaTypes.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Debug.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/ConnCache.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/RobotUA.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Simple.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/UserAgent.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/media.types
+usr/lib/perl5/site_perl/5.8.5/LWP/MemberMixin.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/ldap.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/rlogin.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/DebugFile.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Ntlm.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Basic.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Digest.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/data.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/cpan.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/http10.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/https.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/file.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/ftp.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/GHTTP.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/nogo.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/nntp.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/https10.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/gopher.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/loopback.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/http.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/mailto.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTPS.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP/NB.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP/Methods.pm
+#usr/lib/perl5/site_perl/5.8.5/WWW/RobotRules.pm
+#usr/lib/perl5/site_perl/5.8.5/WWW/RobotRules/AnyDBM_File.pm
+#usr/lib/perl5/site_perl/5.8.5/HTML/Form.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Date.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Status.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Request.pm
+#usr/lib/perl5/site_perl/5.8.5/HTTP/Cookies.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Negotiate.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Response.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers.pm
+#usr/lib/perl5/site_perl/5.8.5/HTTP/Daemon.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Message.pm
+#usr/lib/perl5/site_perl/5.8.5/HTTP/Cookies/Netscape.pm
+#usr/lib/perl5/site_perl/5.8.5/HTTP/Cookies/Microsoft.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Request/Common.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/Util.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/Auth.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/ETag.pm
+usr/lib/perl5/site_perl/5.8.5/File/Listing.pm
+#usr/lib/perl5/site_perl/5.8.5/Bundle/LWP.pm
+##
+## Digest-1.08
+##
+#usr/lib/perl5/5.8.5/Digest
+usr/lib/perl5/5.8.5/Digest/base.pm
+#usr/lib/perl5/5.8.5/alpha-linux/auto/Digest/.packlist
+#usr/share/man/man3/Digest::base.3
+##
+## Digest-SHA1-2.10
+##
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Digest
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Digest/SHA1
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Digest/SHA1/SHA1.bs
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Digest/SHA1/SHA1.so
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Digest/SHA1/.packlist
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Digest
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Digest/SHA1.pm
+#usr/share/man/man3/Digest::SHA1.3
+##
+## Digest-HMAC-1.01
+##
+#usr/lib/perl5/site_perl/5.8.5/Digest
+usr/lib/perl5/site_perl/5.8.5/Digest/HMAC_SHA1.pm
+usr/lib/perl5/site_perl/5.8.5/Digest/HMAC.pm
+usr/lib/perl5/site_perl/5.8.5/Digest/HMAC_MD5.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Digest/HMAC
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Digest/HMAC/.packlist
+#usr/share/man/man3/Digest::HMAC.3
+#usr/share/man/man3/Digest::HMAC_MD5.3
+#usr/share/man/man3/Digest::HMAC_SHA1.3
+##
+## 3c5x9setup-1.00
+##
+usr/sbin/3c5x9setup
+##
+## iputils-ss020927
+##
+usr/bin/ping
+##
+## iptstate-1.4
+##
+usr/sbin/iptstate
+#usr/share/man/man1/iptstate.1
+##
+## Net_SSLeay-1.2.5
+##
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/SSLeay
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/SSLeay.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/SSLeay/Handle.pm
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/Net/ptrtstrun.pl
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay
+#usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/.packlist
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/SSLeay.bs
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/SSLeay.so
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/autosplit.ix
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/debug_read.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/do_https.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/do_https2.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/do_https3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/do_https4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/do_httpx2.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/do_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/do_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/dump_peer_certificate.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/get_http.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/get_http3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/get_http4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/get_https.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/get_https3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/get_https4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/get_httpx.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/get_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/get_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/head_http.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/head_http3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/head_http4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/head_https.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/head_https3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/head_https4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/head_httpx.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/head_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/head_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/http_cat.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/https_cat.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/httpx_cat.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/make_form.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/make_headers.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/new_x_ctx.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/open_proxy_tcp_connection.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/open_tcp_connection.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/post_http.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/post_http3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/post_http4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/post_https.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/post_https3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/post_https4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/post_httpx.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/post_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/post_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/put_http.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/put_http3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/put_http4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/put_https.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/put_https3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/put_https4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/put_httpx.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/put_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/put_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/randomize.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/set_cert_and_key.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/set_proxy.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/set_server_cert_and_key.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/ssl_read_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/ssl_read_all.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/ssl_read_until.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/ssl_write_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/ssl_write_all.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/sslcat.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/tcp_read_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/tcp_read_all.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/tcp_read_until.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/tcp_write_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/tcp_write_all.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/tcpcat.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/tcpxcat.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/want_X509_lookup.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/want_nothing.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/want_read.al
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/Net/SSLeay/want_write.al
+#usr/share/man/man3/Net::SSLeay.3
+#usr/share/man/man3/Net::SSLeay::Handle.3
+##
+## vlan.1.9
+##
+sbin/vconfig
+##
+## installer extension
+##
+usr/local/bin/install2
diff --git a/src/ROOTFILES.i386 b/src/ROOTFILES.i386
new file mode 100644 (file)
index 0000000..c7b8de1
--- /dev/null
@@ -0,0 +1,24748 @@
+##
+## ccache-2.3
+##
+#usr/local/bin/ccache
+#usr/local/bin/cc
+#usr/local/bin/gcc
+#usr/local/bin/g++
+#usr/local/man/man1/ccache.1
+##
+## linux-2.4.31-ipcop
+##
+boot/vmlinuz-2.4.31
+boot/System.map-2.4.31
+boot/vmlinuz
+boot/System.map
+#lib/modules/2.4.31
+lib/modules/2.4.31/kernel
+#lib/modules/2.4.31/kernel/drivers
+#lib/modules/2.4.31/kernel/drivers/acpi
+#lib/modules/2.4.31/kernel/drivers/acpi/button.o.gz
+#lib/modules/2.4.31/kernel/drivers/acpi/fan.o.gz
+#lib/modules/2.4.31/kernel/drivers/acpi/processor.o.gz
+#lib/modules/2.4.31/kernel/drivers/acpi/thermal.o.gz
+#lib/modules/2.4.31/kernel/drivers/acpi/ac.o.gz
+#lib/modules/2.4.31/kernel/drivers/acpi/battery.o.gz
+#lib/modules/2.4.31/kernel/drivers/atm
+#lib/modules/2.4.31/kernel/drivers/atm/atmtcp.o.gz
+#lib/modules/2.4.31/kernel/drivers/block
+#lib/modules/2.4.31/kernel/drivers/block/cpqarray.o.gz
+#lib/modules/2.4.31/kernel/drivers/block/loop.o.gz
+#lib/modules/2.4.31/kernel/drivers/block/sx8.o.gz
+#lib/modules/2.4.31/kernel/drivers/block/DAC960.o.gz
+#lib/modules/2.4.31/kernel/drivers/block/cciss.o.gz
+#lib/modules/2.4.31/kernel/drivers/char
+#lib/modules/2.4.31/kernel/drivers/char/pcmcia
+#lib/modules/2.4.31/kernel/drivers/char/pcmcia/serial_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/char/pcmcia/synclink_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/char/n_hdlc.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide
+#lib/modules/2.4.31/kernel/drivers/ide/pci
+#lib/modules/2.4.31/kernel/drivers/ide/pci/delkin_cb.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide/raid
+#lib/modules/2.4.31/kernel/drivers/ide/raid/hptraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide/raid/medley.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide/raid/silraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide/raid/ataraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/ide/raid/pdcraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/input
+#lib/modules/2.4.31/kernel/drivers/input/input.o.gz
+#lib/modules/2.4.31/kernel/drivers/input/keybdev.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1/capifs.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1/capiutil.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1/kernelcapi.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1/capi.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/avmb1/capidrv.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/elsa_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/hisax.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/hisax_isac.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/hisax_st5481.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/isdnhdlc.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/sedlbauer_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/avma1_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/hisax/hisax_fcpcipnp.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/isdn.o.gz
+#lib/modules/2.4.31/kernel/drivers/isdn/isdn_bsdcomp.o.gz
+#lib/modules/2.4.31/kernel/drivers/message
+#lib/modules/2.4.31/kernel/drivers/message/fusion
+#lib/modules/2.4.31/kernel/drivers/message/fusion/mptlan.o.gz
+#lib/modules/2.4.31/kernel/drivers/message/fusion/mptbase.o.gz
+#lib/modules/2.4.31/kernel/drivers/message/fusion/mptscsih.o.gz
+#lib/modules/2.4.31/kernel/drivers/net
+#lib/modules/2.4.31/kernel/drivers/net/3c505.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c507.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c509.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c515.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c527.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c59x.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/8139cp.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/8139too.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/82596.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ac3200.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/acenic.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/aironet4500_core.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/amd8111e.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/arlan-proc.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/arlan.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/at1700.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/b44.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/bsd_comp.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/cs89x0.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/de4x5.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/depca.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/dl2k.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/dmfe.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/dummy.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/e2100.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/eexpress.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/epic100.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/eql.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/es3210.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/eth16i.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ewrk3.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/forcedeth.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/hamachi.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/hp-plus.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/hp.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/hp100.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ibmlana.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/lance.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/lp486e.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/mii.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/natsemi.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ne.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ne2.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ne2k-pci.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ne3210.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ni52.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ni65.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ns83820.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcnet32.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ppp_async.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ppp_generic.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ppp_synctty.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pppoe.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pppox.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/r8169.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/sis900.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/sk_mca.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/slhc.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/smc-mca.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/smc-ultra32.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/smc9194.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/starfire.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/sundance.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/tg3.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/tlan.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/tun.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/typhoon.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/via-rhine.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wavelan.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wd.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/yellowfin.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/bonding
+#lib/modules/2.4.31/kernel/drivers/net/bonding/bonding.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/e100
+#lib/modules/2.4.31/kernel/drivers/net/e100/e100.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/e1000
+#lib/modules/2.4.31/kernel/drivers/net/e1000/e1000.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/axnet_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/fmvj18x_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/netwave_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/nmclan_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/pcnet_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/ray_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/wavelan_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/xirc2ps_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/xircom_cb.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/xircom_tulip_cb.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/3c574_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/3c589_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/pcmcia/smc91c92_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/sk98lin
+#lib/modules/2.4.31/kernel/drivers/net/sk98lin/sk98lin.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/tulip
+#lib/modules/2.4.31/kernel/drivers/net/tulip/tulip.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless
+#lib/modules/2.4.31/kernel/drivers/net/wireless/hermes.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/orinoco.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/orinoco_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/orinoco_pci.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/orinoco_plx.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/orinoco_tmd.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/prism54
+#lib/modules/2.4.31/kernel/drivers/net/wireless/prism54/prism54.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/airo.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/wireless/airo_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c501.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c503.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/3c523.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/8390.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/aironet4500_card.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/dgrs.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/eepro.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/fealnx.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/lne390.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ni5010.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/ppp_deflate.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/smc-ultra.o.gz
+#lib/modules/2.4.31/kernel/drivers/net/winbond-840.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia
+#lib/modules/2.4.31/kernel/drivers/pcmcia/i82365.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia/pcmcia_core.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia/tcic.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia/ds.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia/i82092.o.gz
+#lib/modules/2.4.31/kernel/drivers/pcmcia/yenta_socket.o.gz
+#lib/modules/2.4.31/kernel/drivers/pnp
+#lib/modules/2.4.31/kernel/drivers/pnp/isa-pnp.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi
+#lib/modules/2.4.31/kernel/drivers/scsi/53c700.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/AM53C974.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/BusLogic.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/NCR53C9x.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/NCR53c406a.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/a100u2w.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/advansys.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aha152x.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aha1542.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aha1740.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ahci.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ata_piix.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/atp870u.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/cpqfc.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/dmx3191d.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/dpt_i2o.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/dtc.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/eata.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/eata_pio.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/fd_mcs.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/fdomain.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/g_NCR5380.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/gdth.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ibmmca.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/initio.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ips.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/libata.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/mca_53c9x.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/megaraid2.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ncr53c8xx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/nsp32.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pas16.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pci2000.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pci2220i.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/psi240i.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/qla1280.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/qlogicfc.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/qlogicisp.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_nv.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_promise.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_qstor.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_sil.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_sis.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_sx4.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_uli.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_via.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_vsc.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/scsi_mod.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sd_mod.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sg.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sim710.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sr_mod.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sym53c416.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/t128.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/tmscsim.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/u14-34f.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/ultrastor.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/wd7000.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aic79xx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sym53c8xx_2.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pcmcia
+#lib/modules/2.4.31/kernel/drivers/scsi/pcmcia/nsp_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pcmcia/qlogic_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pcmcia/aha152x_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/pcmcia/fdomain_cs.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/3w-xxxx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/53c7,8xx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/NCR_D700.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/eata_dma.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/in2000.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/megaraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/qlogicfas.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sata_svw.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/seagate.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/sym53c8xx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aic7xxx.o.gz
+#lib/modules/2.4.31/kernel/drivers/scsi/aacraid.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb
+#lib/modules/2.4.31/kernel/drivers/usb/acm.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/catc.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/hid.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/pegasus.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/rtl8150.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/speedtch.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/usbcore.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/usbnet.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/host
+#lib/modules/2.4.31/kernel/drivers/usb/host/uhci.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/host/usb-uhci.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/host/ehci-hcd.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/storage
+#lib/modules/2.4.31/kernel/drivers/usb/storage/usb-storage.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/CDCEther.o.gz
+#lib/modules/2.4.31/kernel/drivers/usb/kaweth.o.gz
+#lib/modules/2.4.31/kernel/fs
+#lib/modules/2.4.31/kernel/fs/fat
+#lib/modules/2.4.31/kernel/fs/fat/fat.o.gz
+#lib/modules/2.4.31/kernel/fs/vfat
+#lib/modules/2.4.31/kernel/fs/vfat/vfat.o.gz
+#lib/modules/2.4.31/kernel/net
+#lib/modules/2.4.31/kernel/net/8021q
+#lib/modules/2.4.31/kernel/net/8021q/8021q.o.gz
+#lib/modules/2.4.31/kernel/net/atm
+#lib/modules/2.4.31/kernel/net/atm/clip.o.gz
+#lib/modules/2.4.31/kernel/net/atm/pppoatm.o.gz
+#lib/modules/2.4.31/kernel/net/atm/atm.o.gz
+#lib/modules/2.4.31/kernel/net/atm/br2684.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec
+#lib/modules/2.4.31/kernel/net/ipsec/alg
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_blowfish.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_cast.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_md5.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_serpent.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_sha1.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_twofish.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_3des.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_aes.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/alg/ipsec_sha2.o.gz
+#lib/modules/2.4.31/kernel/net/ipsec/ipsec.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/arptable_filter.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_h323.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_irc.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_pptp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_proto_gre.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_quake3.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_rtsp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_tftp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_cuseeme.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_ftp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_h323.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_irc.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_mms.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_pptp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_quake3.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_rtsp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_tftp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_pool.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_queue.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_iphash.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_ipmap.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_iptree.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_macipmap.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_nethash.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_set_portmap.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_tables.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_DSCP.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ECN.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_LOG.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_MARK.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_MASQUERADE.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_MIRROR.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_NETLINK.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_NETMAP.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_NOTRACK.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_POOL.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_REDIRECT.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_REJECT.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_SET.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_TARPIT.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_TCPMSS.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_TOS.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_TTL.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ULOG.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ah.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_conntrack.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_dscp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_dstlimit.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ecn.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_esp.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_fuzzy.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_helper.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_iprange.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ipv4options.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_length.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_limit.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_mac.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_mport.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_multiport.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_nth.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_osf.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_owner.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_pkttype.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_pool.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_psd.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_quota.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_realm.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_recent.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_set.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_state.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_string.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_tcpmss.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_tos.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_ttl.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_u32.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_unclean.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/iptable_filter.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/iptable_mangle.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/iptable_nat.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/iptable_raw.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/arp_tables.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/arpt_mangle.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_conntrack_mms.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_nat_proto_gre.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_IPV4OPTSSTRIP.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_SAME.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_connlimit.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_mark.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_random.o.gz
+#lib/modules/2.4.31/kernel/net/ipv4/netfilter/ipt_time.o.gz
+#lib/modules/2.4.31/kernel/net/sched
+#lib/modules/2.4.31/kernel/net/sched/cls_rsvp.o.gz
+#lib/modules/2.4.31/kernel/net/sched/cls_rsvp6.o.gz
+#lib/modules/2.4.31/kernel/net/sched/cls_tcindex.o.gz
+#lib/modules/2.4.31/kernel/net/sched/cls_u32.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_cbq.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_csz.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_dsmark.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_gred.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_htb.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_ingress.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_prio.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_red.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_sfq.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_tbf.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_teql.o.gz
+#lib/modules/2.4.31/kernel/net/sched/cls_fw.o.gz
+#lib/modules/2.4.31/kernel/net/sched/cls_route.o.gz
+#lib/modules/2.4.31/kernel/net/sched/sch_hfsc.o.gz
+#lib/modules/2.4.31/kernel/lib
+#lib/modules/2.4.31/kernel/lib/zlib_deflate
+#lib/modules/2.4.31/kernel/lib/zlib_deflate/zlib_deflate.o.gz
+#lib/modules/2.4.31/kernel/lib/zlib_inflate
+#lib/modules/2.4.31/kernel/lib/zlib_inflate/zlib_inflate.o.gz
+#lib/modules/2.4.31/kernel/lib/crc32.o.gz
+#lib/modules/2.4.31/kernel/lib/firmware_class.o.gz
+#lib/modules/2.4.31/kernel/arch
+#lib/modules/2.4.31/kernel/arch/i386
+#lib/modules/2.4.31/kernel/arch/i386/kernel
+#lib/modules/2.4.31/kernel/arch/i386/kernel/apm.o.gz
+#lib/modules/2.4.31/build
+lib/modules/2.4.31/modules.dep
+lib/modules/2.4.31/modules.generic_string
+lib/modules/2.4.31/modules.pcimap
+lib/modules/2.4.31/modules.isapnpmap
+lib/modules/2.4.31/modules.usbmap
+#lib/modules/2.4.31/modules.parportmap
+#lib/modules/2.4.31/modules.ieee1394map
+#lib/modules/2.4.31/modules.pnpbiosmap
+#usr/share/man/man9
+#usr/share/man/man9/NS8390_init.9
+#usr/share/man/man9/PROC_CONSOLE.9
+#usr/share/man/man9/__change_bit.9
+#usr/share/man/man9/__fb_try_mode.9
+#usr/share/man/man9/__get_lease.9
+#usr/share/man/man9/__set_bit.9
+#usr/share/man/man9/__test_and_clear_bit.9
+#usr/share/man/man9/__test_and_set_bit.9
+#usr/share/man/man9/_devfs_alloc_entry.9
+#usr/share/man/man9/_devfs_append_entry.9
+#usr/share/man/man9/_devfs_descend.9
+#usr/share/man/man9/_devfs_find_by_dev.9
+#usr/share/man/man9/_devfs_find_entry.9
+#usr/share/man/man9/_devfs_get_root_entry.9
+#usr/share/man/man9/_devfs_get_vfs_inode.9
+#usr/share/man/man9/_devfs_search_dir.9
+#usr/share/man/man9/_devfs_unhook.9
+#usr/share/man/man9/_devfs_unregister.9
+#usr/share/man/man9/acquire_console_sem.9
+#usr/share/man/man9/alloc_ei_netdev.9
+#usr/share/man/man9/alloc_etherdev.9
+#usr/share/man/man9/alloc_fcdev.9
+#usr/share/man/man9/alloc_fddidev.9
+#usr/share/man/man9/alloc_hippi_dev.9
+#usr/share/man/man9/alloc_trdev.9
+#usr/share/man/man9/bcopy.9
+#usr/share/man/man9/blk_cleanup_queue.9
+#usr/share/man/man9/blk_init_queue.9
+#usr/share/man/man9/blk_queue_bounce_limit.9
+#usr/share/man/man9/blk_queue_headactive.9
+#usr/share/man/man9/blk_queue_make_request.9
+#usr/share/man/man9/blk_queue_throttle_sectors.9
+#usr/share/man/man9/call_usermodehelper.9
+#usr/share/man/man9/change_bit.9
+#usr/share/man/man9/check_disc_changed.9
+#usr/share/man/man9/clear_bit.9
+#usr/share/man/man9/console_getmode.9
+#usr/share/man/man9/console_powermode.9
+#usr/share/man/man9/console_setcmap.9
+#usr/share/man/man9/console_setmode.9
+#usr/share/man/man9/devfs_auto_unregister.9
+#usr/share/man/man9/devfs_d_delete.9
+#usr/share/man/man9/devfs_d_iput.9
+#usr/share/man/man9/devfs_d_release.9
+#usr/share/man/man9/devfs_generate_path.9
+#usr/share/man/man9/devfs_get.9
+#usr/share/man/man9/devfs_get_first_child.9
+#usr/share/man/man9/devfs_get_flags.9
+#usr/share/man/man9/devfs_get_handle.9
+#usr/share/man/man9/devfs_get_handle_from_inode.9
+#usr/share/man/man9/devfs_get_info.9
+#usr/share/man/man9/devfs_get_maj_min.9
+#usr/share/man/man9/devfs_get_name.9
+#usr/share/man/man9/devfs_get_next_sibling.9
+#usr/share/man/man9/devfs_get_ops.9
+#usr/share/man/man9/devfs_get_parent.9
+#usr/share/man/man9/devfs_get_unregister_slave.9
+#usr/share/man/man9/devfs_mk_dir.9
+#usr/share/man/man9/devfs_mk_symlink.9
+#usr/share/man/man9/devfs_put.9
+#usr/share/man/man9/devfs_put_ops.9
+#usr/share/man/man9/devfs_register.9
+#usr/share/man/man9/devfs_register_blkdev.9
+#usr/share/man/man9/devfs_register_chrdev.9
+#usr/share/man/man9/devfs_set_file_size.9
+#usr/share/man/man9/devfs_set_info.9
+#usr/share/man/man9/devfs_setup.9
+#usr/share/man/man9/devfs_unregister.9
+#usr/share/man/man9/devfs_unregister_blkdev.9
+#usr/share/man/man9/devfs_unregister_chrdev.9
+#usr/share/man/man9/devfsd_notify.9
+#usr/share/man/man9/devfsd_notify_de.9
+#usr/share/man/man9/devfsd_queue_empty.9
+#usr/share/man/man9/disable_irq.9
+#usr/share/man/man9/disable_irq_nosync.9
+#usr/share/man/man9/do_set_multicast_list.9
+#usr/share/man/man9/ei_close.9
+#usr/share/man/man9/ei_interrupt.9
+#usr/share/man/man9/ei_open.9
+#usr/share/man/man9/ei_receive.9
+#usr/share/man/man9/ei_rx_overrun.9
+#usr/share/man/man9/ei_start_xmit.9
+#usr/share/man/man9/ei_tx_err.9
+#usr/share/man/man9/ei_tx_intr.9
+#usr/share/man/man9/ei_tx_timeout.9
+#usr/share/man/man9/enable_irq.9
+#usr/share/man/man9/end_that_request_first.9
+#usr/share/man/man9/ethdev_init.9
+#usr/share/man/man9/fb_alloc_cmap.9
+#usr/share/man/man9/fb_copy_cmap.9
+#usr/share/man/man9/fb_default_cmap.9
+#usr/share/man/man9/fb_find_mode.9
+#usr/share/man/man9/fb_get_cmap.9
+#usr/share/man/man9/fb_invert_cmaps.9
+#usr/share/man/man9/fb_set_cmap.9
+#usr/share/man/man9/fbcon_find_font.9
+#usr/share/man/man9/fbcon_get_default_font.9
+#usr/share/man/man9/fbcon_redraw_bmove.9
+#usr/share/man/man9/fbcon_redraw_clear.9
+#usr/share/man/man9/fbgen_blank.9
+#usr/share/man/man9/fbgen_do_set_var.9
+#usr/share/man/man9/fbgen_get_cmap.9
+#usr/share/man/man9/fbgen_get_fix.9
+#usr/share/man/man9/fbgen_get_var.9
+#usr/share/man/man9/fbgen_install_cmap.9
+#usr/share/man/man9/fbgen_pan_display.9
+#usr/share/man/man9/fbgen_set_cmap.9
+#usr/share/man/man9/fbgen_set_disp.9
+#usr/share/man/man9/fbgen_set_var.9
+#usr/share/man/man9/fbgen_switch.9
+#usr/share/man/man9/fbgen_update_var.9
+#usr/share/man/man9/fbmem_init.9
+#usr/share/man/man9/fcntl_getlease.9
+#usr/share/man/man9/fcntl_setlease.9
+#usr/share/man/man9/ffs.9
+#usr/share/man/man9/ffz.9
+#usr/share/man/man9/find_first_zero_bit.9
+#usr/share/man/man9/find_next_zero_bit.9
+#usr/share/man/man9/free_dentry.9
+#usr/share/man/man9/free_irq.9
+#usr/share/man/man9/generic_make_request.9
+#usr/share/man/man9/get_locks_status.9
+#usr/share/man/man9/get_removable_partition.9
+#usr/share/man/man9/hweight32.9
+#usr/share/man/man9/init_etherdev.9
+#usr/share/man/man9/init_fcdev.9
+#usr/share/man/man9/init_fddidev.9
+#usr/share/man/man9/init_hippi_dev.9
+#usr/share/man/man9/init_trdev.9
+#usr/share/man/man9/inter_module_get.9
+#usr/share/man/man9/inter_module_get_request.9
+#usr/share/man/man9/inter_module_put.9
+#usr/share/man/man9/inter_module_register.9
+#usr/share/man/man9/inter_module_unregister.9
+#usr/share/man/man9/is_devfsd_or_child.9
+#usr/share/man/man9/lease_get_mtime.9
+#usr/share/man/man9/ll_rw_block.9
+#usr/share/man/man9/lock_may_read.9
+#usr/share/man/man9/lock_may_write.9
+#usr/share/man/man9/mac_find_mode.9
+#usr/share/man/man9/mac_map_monitor_sense.9
+#usr/share/man/man9/mac_var_to_vmode.9
+#usr/share/man/man9/mac_vmode_to_var.9
+#usr/share/man/man9/mca_find_adapter.9
+#usr/share/man/man9/mca_find_unused_adapter.9
+#usr/share/man/man9/mca_get_adapter_name.9
+#usr/share/man/man9/mca_is_adapter_used.9
+#usr/share/man/man9/mca_isadapter.9
+#usr/share/man/man9/mca_isenabled.9
+#usr/share/man/man9/mca_mark_as_unused.9
+#usr/share/man/man9/mca_mark_as_used.9
+#usr/share/man/man9/mca_read_pos.9
+#usr/share/man/man9/mca_write_pos.9
+#usr/share/man/man9/mca_read_stored_pos.9
+#usr/share/man/man9/mca_set_adapter_name.9
+#usr/share/man/man9/mca_set_adapter_procfn.9
+#usr/share/man/man9/memchr.9
+#usr/share/man/man9/memcmp.9
+#usr/share/man/man9/memcpy.9
+#usr/share/man/man9/memmove.9
+#usr/share/man/man9/memscan.9
+#usr/share/man/man9/memset.9
+#usr/share/man/man9/misc_deregister.9
+#usr/share/man/man9/misc_register.9
+#usr/share/man/man9/mod_firmware_load.9
+#usr/share/man/man9/mtrr_add.9
+#usr/share/man/man9/mtrr_add_page.9
+#usr/share/man/man9/mtrr_del.9
+#usr/share/man/man9/mtrr_del_page.9
+#usr/share/man/man9/pci_announce_device_to_drivers.9
+#usr/share/man/man9/pci_bus_read_config_byte.9
+#usr/share/man/man9/pci_bus_read_config_dword.9
+#usr/share/man/man9/pci_bus_read_config_word.9
+#usr/share/man/man9/pci_bus_write_config_byte.9
+#usr/share/man/man9/pci_bus_write_config_dword.9
+#usr/share/man/man9/pci_bus_write_config_word.9
+#usr/share/man/man9/pci_clear_mwi.9
+#usr/share/man/man9/pci_dev_driver.9
+#usr/share/man/man9/pci_disable_device.9
+#usr/share/man/man9/pci_enable_device.9
+#usr/share/man/man9/pci_enable_device_bars.9
+#usr/share/man/man9/pci_enable_wake.9
+#usr/share/man/man9/pci_find_capability.9
+#usr/share/man/man9/pci_find_class.9
+#usr/share/man/man9/pci_find_device.9
+#usr/share/man/man9/pci_find_parent_resource.9
+#usr/share/man/man9/pci_find_slot.9
+#usr/share/man/man9/pci_find_subsys.9
+#usr/share/man/man9/pci_generic_prep_mwi.9
+#usr/share/man/man9/pci_hp_change_slot_info.9
+#usr/share/man/man9/pci_hp_deregister.9
+#usr/share/man/man9/pci_hp_register.9
+#usr/share/man/man9/pci_insert_device.9
+#usr/share/man/man9/pci_match_device.9
+#usr/share/man/man9/pci_pool_alloc.9
+#usr/share/man/man9/pci_pool_create.9
+#usr/share/man/man9/pci_pool_destroy.9
+#usr/share/man/man9/pci_pool_free.9
+#usr/share/man/man9/pci_register_driver.9
+#usr/share/man/man9/pci_release_region.9
+#usr/share/man/man9/pci_release_regions.9
+#usr/share/man/man9/pci_remove_device.9
+#usr/share/man/man9/pci_request_region.9
+#usr/share/man/man9/pci_request_regions.9
+#usr/share/man/man9/pci_restore_state.9
+#usr/share/man/man9/pci_save_state.9
+#usr/share/man/man9/pci_set_master.9
+#usr/share/man/man9/pci_set_mwi.9
+#usr/share/man/man9/pci_set_power_state.9
+#usr/share/man/man9/pci_setup_device.9
+#usr/share/man/man9/pci_unregister_driver.9
+#usr/share/man/man9/pcihpfs_create_by_name.9
+#usr/share/man/man9/pm_find.9
+#usr/share/man/man9/pm_register.9
+#usr/share/man/man9/pm_send.9
+#usr/share/man/man9/pm_send_all.9
+#usr/share/man/man9/pm_unregister.9
+#usr/share/man/man9/pm_unregister_all.9
+#usr/share/man/man9/posix_block_lock.9
+#usr/share/man/man9/posix_lock_file.9
+#usr/share/man/man9/posix_unblock_lock.9
+#usr/share/man/man9/probe_irq_mask.9
+#usr/share/man/man9/probe_irq_off.9
+#usr/share/man/man9/probe_irq_on.9
+#usr/share/man/man9/proc_dointvec.9
+#usr/share/man/man9/proc_dointvec_jiffies.9
+#usr/share/man/man9/proc_dointvec_minmax.9
+#usr/share/man/man9/proc_dostring.9
+#usr/share/man/man9/proc_doulongvec_minmax.9
+#usr/share/man/man9/proc_doulongvec_ms_jiffies_minmax.9
+#usr/share/man/man9/read_zsdata.9
+#usr/share/man/man9/read_zsreg.9
+#usr/share/man/man9/register_framebuffer.9
+#usr/share/man/man9/register_serial.9
+#usr/share/man/man9/register_sound_dsp.9
+#usr/share/man/man9/register_sound_midi.9
+#usr/share/man/man9/register_sound_mixer.9
+#usr/share/man/man9/register_sound_special.9
+#usr/share/man/man9/register_sound_synth.9
+#usr/share/man/man9/register_sysctl_table.9
+#usr/share/man/man9/release_console_sem.9
+#usr/share/man/man9/reparent_to_init.9
+#usr/share/man/man9/request_irq.9
+#usr/share/man/man9/request_module.9
+#usr/share/man/man9/scan_dir_for_removable.9
+#usr/share/man/man9/schedule_timeout.9
+#usr/share/man/man9/set_all_vcs.9
+#usr/share/man/man9/set_bit.9
+#usr/share/man/man9/set_con2fb_map.9
+#usr/share/man/man9/set_cpus_allowed.9
+#usr/share/man/man9/simple_strtol.9
+#usr/share/man/man9/simple_strtoll.9
+#usr/share/man/man9/simple_strtoul.9
+#usr/share/man/man9/simple_strtoull.9
+#usr/share/man/man9/snprintf.9
+#usr/share/man/man9/spans_boundary.9
+#usr/share/man/man9/sppp_attach.9
+#usr/share/man/man9/sppp_change_mtu.9
+#usr/share/man/man9/sppp_close.9
+#usr/share/man/man9/sppp_detach.9
+#usr/share/man/man9/sppp_do_ioctl.9
+#usr/share/man/man9/sppp_input.9
+#usr/share/man/man9/sppp_open.9
+#usr/share/man/man9/sppp_rcv.9
+#usr/share/man/man9/sppp_reopen.9
+#usr/share/man/man9/sprintf.9
+#usr/share/man/man9/sscanf.9
+#usr/share/man/man9/strcat.9
+#usr/share/man/man9/strchr.9
+#usr/share/man/man9/strcmp.9
+#usr/share/man/man9/strcpy.9
+#usr/share/man/man9/strlen.9
+#usr/share/man/man9/strncat.9
+#usr/share/man/man9/strncmp.9
+#usr/share/man/man9/strncpy.9
+#usr/share/man/man9/strnicmp.9
+#usr/share/man/man9/strnlen.9
+#usr/share/man/man9/strpbrk.9
+#usr/share/man/man9/strrchr.9
+#usr/share/man/man9/strsep.9
+#usr/share/man/man9/strspn.9
+#usr/share/man/man9/strstr.9
+#usr/share/man/man9/strtok.9
+#usr/share/man/man9/submit_bh.9
+#usr/share/man/man9/sys_flock.9
+#usr/share/man/man9/test_and_change_bit.9
+#usr/share/man/man9/test_and_clear_bit.9
+#usr/share/man/man9/test_and_set_bit.9
+#usr/share/man/man9/test_bit.9
+#usr/share/man/man9/try_modload.9
+#usr/share/man/man9/tty_write_message.9
+#usr/share/man/man9/unregister_framebuffer.9
+#usr/share/man/man9/unregister_serial.9
+#usr/share/man/man9/unregister_sound_dsp.9
+#usr/share/man/man9/unregister_sound_midi.9
+#usr/share/man/man9/unregister_sound_mixer.9
+#usr/share/man/man9/unregister_sound_special.9
+#usr/share/man/man9/unregister_sound_synth.9
+#usr/share/man/man9/unregister_sysctl_table.9
+#usr/share/man/man9/usb_alloc_bus.9
+#usr/share/man/man9/usb_alloc_urb.9
+#usr/share/man/man9/usb_bulk_msg.9
+#usr/share/man/man9/usb_control_msg.9
+#usr/share/man/man9/usb_deregister.9
+#usr/share/man/man9/usb_deregister_bus.9
+#usr/share/man/man9/usb_free_bus.9
+#usr/share/man/man9/usb_free_urb.9
+#usr/share/man/man9/usb_match_id.9
+#usr/share/man/man9/usb_register.9
+#usr/share/man/man9/usb_register_bus.9
+#usr/share/man/man9/usb_scan_devices.9
+#usr/share/man/man9/video_register_device.9
+#usr/share/man/man9/video_setup.9
+#usr/share/man/man9/video_unregister_device.9
+#usr/share/man/man9/vsnprintf.9
+#usr/share/man/man9/vsprintf.9
+#usr/share/man/man9/vsscanf.9
+#usr/share/man/man9/wait_for_devfsd_finished.9
+#usr/share/man/man9/write_zsctrl.9
+#usr/share/man/man9/write_zsdata.9
+#usr/share/man/man9/write_zsreg.9
+#usr/share/man/man9/yield.9
+#usr/share/man/man9/z8530_channel_load.9
+#usr/share/man/man9/z8530_describe.9
+#usr/share/man/man9/z8530_dma_rx.9
+#usr/share/man/man9/z8530_dma_status.9
+#usr/share/man/man9/z8530_dma_tx.9
+#usr/share/man/man9/z8530_flush_fifo.9
+#usr/share/man/man9/z8530_get_stats.9
+#usr/share/man/man9/z8530_init.9
+#usr/share/man/man9/z8530_interrupt.9
+#usr/share/man/man9/z8530_null_rx.9
+#usr/share/man/man9/z8530_queue_xmit.9
+#usr/share/man/man9/z8530_read_port.9
+#usr/share/man/man9/z8530_rtsdtr.9
+#usr/share/man/man9/z8530_rx.9
+#usr/share/man/man9/z8530_rx_clear.9
+#usr/share/man/man9/z8530_rx_done.9
+#usr/share/man/man9/z8530_shutdown.9
+#usr/share/man/man9/z8530_status.9
+#usr/share/man/man9/z8530_status_clear.9
+#usr/share/man/man9/z8530_sync_close.9
+#usr/share/man/man9/z8530_sync_dma_close.9
+#usr/share/man/man9/z8530_sync_dma_open.9
+#usr/share/man/man9/z8530_sync_open.9
+#usr/share/man/man9/z8530_sync_txdma_close.9
+#usr/share/man/man9/z8530_sync_txdma_open.9
+#usr/share/man/man9/z8530_tx.9
+#usr/share/man/man9/z8530_tx_begin.9
+#usr/share/man/man9/z8530_tx_clear.9
+#usr/share/man/man9/z8530_tx_done.9
+#usr/share/man/man9/z8530_write_port.9
+##
+## linux-2.4.31-smp-ipcop
+##
+boot/vmlinuz-2.4.31-smp
+boot/System.map-2.4.31-smp
+boot/vmlinuz-smp
+#lib/modules
+#lib/modules/2.4.31-smp
+lib/modules/2.4.31-smp/kernel
+#lib/modules/2.4.31-smp/kernel/arch
+#lib/modules/2.4.31-smp/kernel/arch/i386
+#lib/modules/2.4.31-smp/kernel/arch/i386/kernel
+#lib/modules/2.4.31-smp/kernel/arch/i386/kernel/apm.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers
+#lib/modules/2.4.31-smp/kernel/drivers/acpi
+#lib/modules/2.4.31-smp/kernel/drivers/acpi/button.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/acpi/fan.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/acpi/processor.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/acpi/thermal.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/acpi/ac.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/acpi/battery.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/atm
+#lib/modules/2.4.31-smp/kernel/drivers/atm/atmtcp.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/block
+#lib/modules/2.4.31-smp/kernel/drivers/block/cpqarray.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/block/loop.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/block/sx8.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/block/DAC960.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/block/cciss.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/char
+#lib/modules/2.4.31-smp/kernel/drivers/char/pcmcia
+#lib/modules/2.4.31-smp/kernel/drivers/char/pcmcia/serial_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/char/pcmcia/synclink_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/char/n_hdlc.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/ide
+#lib/modules/2.4.31-smp/kernel/drivers/ide/pci
+#lib/modules/2.4.31-smp/kernel/drivers/ide/pci/delkin_cb.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/ide/raid
+#lib/modules/2.4.31-smp/kernel/drivers/ide/raid/hptraid.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/ide/raid/medley.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/ide/raid/silraid.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/ide/raid/ataraid.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/ide/raid/pdcraid.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/input
+#lib/modules/2.4.31-smp/kernel/drivers/input/input.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/input/keybdev.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/avmb1
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/avmb1/capifs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/avmb1/capiutil.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/avmb1/kernelcapi.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/avmb1/capi.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/avmb1/capidrv.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/hisax
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/hisax/elsa_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/hisax/hisax.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/hisax/hisax_isac.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/hisax/hisax_st5481.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/hisax/isdnhdlc.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/hisax/sedlbauer_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/hisax/avma1_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/hisax/hisax_fcpcipnp.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/isdn.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/isdn/isdn_bsdcomp.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/message
+#lib/modules/2.4.31-smp/kernel/drivers/message/fusion
+#lib/modules/2.4.31-smp/kernel/drivers/message/fusion/mptlan.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/message/fusion/mptbase.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/message/fusion/mptscsih.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net
+#lib/modules/2.4.31-smp/kernel/drivers/net/3c505.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/3c507.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/3c509.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/3c515.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/3c527.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/3c59x.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/8139cp.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/8139too.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/82596.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ac3200.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/acenic.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/aironet4500_core.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/amd8111e.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/arlan-proc.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/arlan.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/at1700.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/b44.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/bsd_comp.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/cs89x0.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/de4x5.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/depca.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/dl2k.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/dmfe.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/dummy.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/e2100.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/eexpress.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/epic100.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/eql.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/es3210.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/eth16i.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ewrk3.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/forcedeth.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/hamachi.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/hp-plus.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/hp.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/hp100.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ibmlana.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/lance.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/lp486e.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/mii.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/natsemi.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ne.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ne2.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ne2k-pci.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ne3210.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ni52.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ni65.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ns83820.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcnet32.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ppp_async.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ppp_generic.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ppp_synctty.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pppoe.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pppox.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/r8169.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/sis900.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/sk_mca.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/slhc.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/smc-mca.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/smc-ultra32.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/smc9194.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/starfire.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/sundance.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/tg3.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/tlan.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/tun.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/typhoon.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/via-rhine.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wavelan.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wd.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/yellowfin.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/bonding
+#lib/modules/2.4.31-smp/kernel/drivers/net/bonding/bonding.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/e100
+#lib/modules/2.4.31-smp/kernel/drivers/net/e100/e100.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/e1000
+#lib/modules/2.4.31-smp/kernel/drivers/net/e1000/e1000.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/axnet_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/fmvj18x_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/netwave_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/nmclan_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/pcnet_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/ray_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/wavelan_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/xirc2ps_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/xircom_cb.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/xircom_tulip_cb.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/3c574_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/3c589_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/pcmcia/smc91c92_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/sk98lin
+#lib/modules/2.4.31-smp/kernel/drivers/net/sk98lin/sk98lin.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/tulip
+#lib/modules/2.4.31-smp/kernel/drivers/net/tulip/tulip.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless/hermes.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless/orinoco.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless/orinoco_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless/orinoco_pci.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless/orinoco_plx.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless/orinoco_tmd.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless/prism54
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless/prism54/prism54.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless/airo.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/wireless/airo_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/3c501.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/3c503.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/3c523.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/8390.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/aironet4500_card.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/dgrs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/eepro.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/fealnx.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/lne390.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ni5010.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/ppp_deflate.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/smc-ultra.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/net/winbond-840.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/pcmcia
+#lib/modules/2.4.31-smp/kernel/drivers/pcmcia/i82365.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/pcmcia/pcmcia_core.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/pcmcia/tcic.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/pcmcia/ds.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/pcmcia/i82092.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/pcmcia/yenta_socket.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/pnp
+#lib/modules/2.4.31-smp/kernel/drivers/pnp/isa-pnp.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/53c700.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/AM53C974.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/BusLogic.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/NCR53C9x.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/NCR53c406a.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/a100u2w.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/advansys.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/aha152x.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/aha1542.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/aha1740.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/ahci.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/ata_piix.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/atp870u.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/cpqfc.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/dmx3191d.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/dpt_i2o.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/dtc.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/eata.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/eata_pio.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/fd_mcs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/fdomain.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/g_NCR5380.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/gdth.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/ibmmca.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/initio.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/ips.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/libata.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/mca_53c9x.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/megaraid2.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/ncr53c8xx.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/nsp32.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/pas16.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/pci2000.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/pci2220i.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/psi240i.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/qla1280.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/qlogicfc.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/qlogicisp.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sata_nv.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sata_promise.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sata_qstor.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sata_sil.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sata_sis.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sata_sx4.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sata_uli.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sata_via.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sata_vsc.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/scsi_mod.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sd_mod.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sg.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sim710.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sr_mod.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sym53c416.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/t128.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/tmscsim.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/u14-34f.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/ultrastor.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/wd7000.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/aic79xx.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sym53c8xx_2.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/pcmcia
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/pcmcia/nsp_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/pcmcia/qlogic_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/pcmcia/aha152x_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/pcmcia/fdomain_cs.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/3w-xxxx.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/53c7,8xx.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/NCR_D700.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/eata_dma.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/in2000.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/megaraid.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/qlogicfas.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sata_svw.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/seagate.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/sym53c8xx.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/aic7xxx.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/scsi/aacraid.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb
+#lib/modules/2.4.31-smp/kernel/drivers/usb/acm.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/catc.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/hid.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/pegasus.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/rtl8150.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/speedtch.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/usbcore.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/usbnet.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/host
+#lib/modules/2.4.31-smp/kernel/drivers/usb/host/uhci.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/host/usb-uhci.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/host/ehci-hcd.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/host/usb-ohci.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/storage
+#lib/modules/2.4.31-smp/kernel/drivers/usb/storage/usb-storage.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/CDCEther.o.gz
+#lib/modules/2.4.31-smp/kernel/drivers/usb/kaweth.o.gz
+#lib/modules/2.4.31-smp/kernel/fs
+#lib/modules/2.4.31-smp/kernel/fs/fat
+#lib/modules/2.4.31-smp/kernel/fs/fat/fat.o.gz
+#lib/modules/2.4.31-smp/kernel/fs/vfat
+#lib/modules/2.4.31-smp/kernel/fs/vfat/vfat.o.gz
+#lib/modules/2.4.31-smp/kernel/net
+#lib/modules/2.4.31-smp/kernel/net/8021q
+#lib/modules/2.4.31-smp/kernel/net/8021q/8021q.o.gz
+#lib/modules/2.4.31-smp/kernel/net/atm
+#lib/modules/2.4.31-smp/kernel/net/atm/clip.o.gz
+#lib/modules/2.4.31-smp/kernel/net/atm/pppoatm.o.gz
+#lib/modules/2.4.31-smp/kernel/net/atm/atm.o.gz
+#lib/modules/2.4.31-smp/kernel/net/atm/br2684.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipsec
+#lib/modules/2.4.31-smp/kernel/net/ipsec/alg
+#lib/modules/2.4.31-smp/kernel/net/ipsec/alg/ipsec_blowfish.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipsec/alg/ipsec_cast.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipsec/alg/ipsec_md5.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipsec/alg/ipsec_serpent.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipsec/alg/ipsec_sha1.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipsec/alg/ipsec_twofish.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipsec/alg/ipsec_3des.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipsec/alg/ipsec_aes.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipsec/alg/ipsec_sha2.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipsec/ipsec.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/arptable_filter.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_conntrack.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_conntrack_h323.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_conntrack_irc.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_conntrack_pptp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_conntrack_proto_gre.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_conntrack_quake3.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_conntrack_rtsp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_conntrack_tftp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_nat_cuseeme.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_nat_ftp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_nat_h323.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_nat_irc.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_nat_mms.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_nat_pptp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_nat_quake3.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_nat_rtsp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_nat_tftp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_pool.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_queue.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_set.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_set_iphash.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_set_ipmap.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_set_iptree.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_set_macipmap.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_set_nethash.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_set_portmap.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_tables.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_DSCP.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_ECN.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_LOG.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_MARK.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_MASQUERADE.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_MIRROR.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_NETLINK.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_NETMAP.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_NOTRACK.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_POOL.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_REDIRECT.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_REJECT.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_SET.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_TARPIT.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_TCPMSS.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_TOS.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_TTL.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_ULOG.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_ah.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_conntrack.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_dscp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_dstlimit.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_ecn.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_esp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_fuzzy.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_helper.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_iprange.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_ipv4options.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_length.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_limit.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_mac.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_mport.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_multiport.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_nth.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_osf.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_owner.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_pkttype.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_pool.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_psd.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_quota.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_realm.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_recent.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_set.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_state.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_string.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_tcpmss.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_tos.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_ttl.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_u32.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_unclean.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/iptable_filter.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/iptable_mangle.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/iptable_nat.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/iptable_raw.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/arp_tables.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/arpt_mangle.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_conntrack_mms.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ip_nat_proto_gre.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_IPV4OPTSSTRIP.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_SAME.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_connlimit.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_mark.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_random.o.gz
+#lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter/ipt_time.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched
+#lib/modules/2.4.31-smp/kernel/net/sched/cls_rsvp.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/cls_rsvp6.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/cls_tcindex.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/cls_u32.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_cbq.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_csz.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_dsmark.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_gred.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_htb.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_ingress.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_prio.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_red.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_sfq.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_tbf.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_teql.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/cls_fw.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/cls_route.o.gz
+#lib/modules/2.4.31-smp/kernel/net/sched/sch_hfsc.o.gz
+#lib/modules/2.4.31-smp/kernel/lib
+#lib/modules/2.4.31-smp/kernel/lib/zlib_deflate
+#lib/modules/2.4.31-smp/kernel/lib/zlib_deflate/zlib_deflate.o.gz
+#lib/modules/2.4.31-smp/kernel/lib/zlib_inflate
+#lib/modules/2.4.31-smp/kernel/lib/zlib_inflate/zlib_inflate.o.gz
+#lib/modules/2.4.31-smp/kernel/lib/crc32.o.gz
+#lib/modules/2.4.31-smp/kernel/lib/firmware_class.o.gz
+#lib/modules/2.4.31-smp/build
+lib/modules/2.4.31-smp/modules.dep
+lib/modules/2.4.31-smp/modules.generic_string
+#lib/modules/2.4.31-smp/modules.ieee1394map
+lib/modules/2.4.31-smp/modules.isapnpmap
+#lib/modules/2.4.31-smp/modules.parportmap
+lib/modules/2.4.31-smp/modules.pcimap
+#lib/modules/2.4.31-smp/modules.pnpbiosmap
+lib/modules/2.4.31-smp/modules.usbmap
+##
+## grub-0.95
+##
+#boot/grub
+boot/grub/grub.conf
+boot/grub/grubbatch
+boot/grub/ipcop.xpm.gz
+boot/grub/scsigrub.conf
+#usr/bin/mbchk
+usr/sbin/grub
+usr/sbin/grub-install
+usr/sbin/grub-md5-crypt
+usr/sbin/grub-terminfo
+usr/share/grub
+usr/share/grub/i386-pc
+usr/share/grub/i386-pc/e2fs_stage1_5
+#usr/share/grub/i386-pc/fat_stage1_5
+#usr/share/grub/i386-pc/ffs_stage1_5
+#usr/share/grub/i386-pc/iso9660_stage1_5
+#usr/share/grub/i386-pc/jfs_stage1_5
+#usr/share/grub/i386-pc/minix_stage1_5
+#usr/share/grub/i386-pc/reiserfs_stage1_5
+usr/share/grub/i386-pc/stage1
+usr/share/grub/i386-pc/stage2
+#usr/share/grub/i386-pc/stage2_eltorito
+#usr/share/grub/i386-pc/ufs2_stage1_5
+#usr/share/grub/i386-pc/vstafs_stage1_5
+#usr/share/grub/i386-pc/xfs_stage1_5
+#usr/share/info/grub.info
+#usr/share/info/multiboot.info
+#usr/share/man/man1/mbchk.1
+#usr/share/man/man8/grub-install.8
+#usr/share/man/man8/grub-md5-crypt.8
+#usr/share/man/man8/grub-terminfo.8
+#usr/share/man/man8/grub.8
+##
+## stage2
+##
+bin/cat
+bin/pwd
+bin/stty
+#boot
+#etc
+etc/certparams
+etc/fstab
+etc/group
+etc/host.conf
+etc/inittab
+etc/inputrc
+etc/issue
+etc/ld.so.conf
+etc/logrotate.conf
+etc/mime.types
+etc/modules.conf
+etc/mtab
+etc/nsswitch.conf
+#etc/opt
+etc/passwd
+etc/profile
+etc/resolv.conf
+etc/securetty
+etc/sysctl.conf
+etc/syslog.conf
+#home
+#home/nobody
+#lib
+mnt
+#opt
+#opt/bin
+#opt/doc
+#opt/include
+#opt/info
+#opt/lib
+#opt/man
+#opt/man/man1
+#opt/man/man2
+#opt/man/man3
+#opt/man/man4
+#opt/man/man5
+#opt/man/man6
+#opt/man/man7
+#opt/man/man8
+proc
+root
+#sbin
+sbin/mkinitrd
+tmp
+#usr/doc
+#usr/etc
+#usr/include
+#usr/info
+#usr/lib
+#usr/local
+#usr/local/bin
+usr/local/bin/httpscert
+usr/local/bin/makegraphs
+usr/local/bin/readhash
+usr/local/bin/setddns.pl
+usr/local/bin/setreservedports
+usr/local/bin/settime
+usr/local/bin/timecheck
+#usr/local/bin/tunerrd.pl
+usr/local/bin/updatelists.pl
+usr/local/bin/resetusb
+#usr/local/doc
+#usr/local/etc
+#usr/local/include
+#usr/local/info
+#usr/local/lib
+#usr/local/man
+#usr/local/sbin
+#usr/local/share
+#usr/local/share/dict
+#usr/local/share/doc
+#usr/local/share/info
+#usr/local/share/locale
+#usr/local/share/man
+#usr/local/share/man/man1
+#usr/local/share/man/man2
+#usr/local/share/man/man3
+#usr/local/share/man/man4
+#usr/local/share/man/man5
+#usr/local/share/man/man6
+#usr/local/share/man/man7
+#usr/local/share/man/man8
+#usr/local/share/misc
+#usr/local/share/nls
+#usr/local/share/terminfo
+#usr/local/share/zoneinfo
+#usr/local/src
+#usr/man
+#usr/sbin
+#usr/share
+#usr/share/dict
+#usr/share/doc
+#usr/share/info
+#usr/share/locale
+#usr/share/man
+#usr/share/man/man1
+#usr/share/man/man2
+#usr/share/man/man3
+#usr/share/man/man4
+#usr/share/man/man5
+#usr/share/man/man6
+#usr/share/man/man7
+#usr/share/man/man8
+#usr/share/misc
+#usr/share/nls
+#usr/share/terminfo
+#usr/share/zoneinfo
+#var
+#var/cache
+#var/lib
+#var/lib/misc
+#var/local
+#var/lock
+var/lock/subsys
+#var/log
+#var/mail
+#var/opt
+var/patches
+var/run
+#var/spool
+var/tmp
+##
+## make_devices-1.2
+##
+dev
+##
+## man-pages-2.09
+##
+#usr/share/man/man0p
+#usr/share/man/man0p/aio.h.0p
+#usr/share/man/man0p/assert.h.0p
+#usr/share/man/man0p/complex.h.0p
+#usr/share/man/man0p/cpio.h.0p
+#usr/share/man/man0p/ctype.h.0p
+#usr/share/man/man0p/dirent.h.0p
+#usr/share/man/man0p/dlfcn.h.0p
+#usr/share/man/man0p/errno.h.0p
+#usr/share/man/man0p/fcntl.h.0p
+#usr/share/man/man0p/fenv.h.0p
+#usr/share/man/man0p/float.h.0p
+#usr/share/man/man0p/fmtmsg.h.0p
+#usr/share/man/man0p/fnmatch.h.0p
+#usr/share/man/man0p/ftw.h.0p
+#usr/share/man/man0p/glob.h.0p
+#usr/share/man/man0p/grp.h.0p
+#usr/share/man/man0p/iconv.h.0p
+#usr/share/man/man0p/if.h.0p
+#usr/share/man/man0p/in.h.0p
+#usr/share/man/man0p/inet.h.0p
+#usr/share/man/man0p/inttypes.h.0p
+#usr/share/man/man0p/ipc.h.0p
+#usr/share/man/man0p/iso646.h.0p
+#usr/share/man/man0p/langinfo.h.0p
+#usr/share/man/man0p/libgen.h.0p
+#usr/share/man/man0p/limits.h.0p
+#usr/share/man/man0p/locale.h.0p
+#usr/share/man/man0p/math.h.0p
+#usr/share/man/man0p/mman.h.0p
+#usr/share/man/man0p/monetary.h.0p
+#usr/share/man/man0p/mqueue.h.0p
+#usr/share/man/man0p/msg.h.0p
+#usr/share/man/man0p/ndbm.h.0p
+#usr/share/man/man0p/netdb.h.0p
+#usr/share/man/man0p/nl_types.h.0p
+#usr/share/man/man0p/poll.h.0p
+#usr/share/man/man0p/pthread.h.0p
+#usr/share/man/man0p/pwd.h.0p
+#usr/share/man/man0p/regex.h.0p
+#usr/share/man/man0p/resource.h.0p
+#usr/share/man/man0p/sched.h.0p
+#usr/share/man/man0p/search.h.0p
+#usr/share/man/man0p/select.h.0p
+#usr/share/man/man0p/sem.h.0p
+#usr/share/man/man0p/semaphore.h.0p
+#usr/share/man/man0p/setjmp.h.0p
+#usr/share/man/man0p/shm.h.0p
+#usr/share/man/man0p/signal.h.0p
+#usr/share/man/man0p/socket.h.0p
+#usr/share/man/man0p/spawn.h.0p
+#usr/share/man/man0p/stat.h.0p
+#usr/share/man/man0p/statvfs.h.0p
+#usr/share/man/man0p/stdarg.h.0p
+#usr/share/man/man0p/stdbool.h.0p
+#usr/share/man/man0p/stddef.h.0p
+#usr/share/man/man0p/stdint.h.0p
+#usr/share/man/man0p/stdio.h.0p
+#usr/share/man/man0p/stdlib.h.0p
+#usr/share/man/man0p/string.h.0p
+#usr/share/man/man0p/strings.h.0p
+#usr/share/man/man0p/stropts.h.0p
+#usr/share/man/man0p/sys_ipc.h.0p
+#usr/share/man/man0p/sys_mman.h.0p
+#usr/share/man/man0p/sys_msg.h.0p
+#usr/share/man/man0p/sys_resource.h.0p
+#usr/share/man/man0p/sys_select.h.0p
+#usr/share/man/man0p/sys_sem.h.0p
+#usr/share/man/man0p/sys_shm.h.0p
+#usr/share/man/man0p/sys_socket.h.0p
+#usr/share/man/man0p/sys_stat.h.0p
+#usr/share/man/man0p/sys_statvfs.h.0p
+#usr/share/man/man0p/sys_time.h.0p
+#usr/share/man/man0p/sys_timeb.h.0p
+#usr/share/man/man0p/sys_times.h.0p
+#usr/share/man/man0p/sys_types.h.0p
+#usr/share/man/man0p/sys_uio.h.0p
+#usr/share/man/man0p/sys_un.h.0p
+#usr/share/man/man0p/sys_utsname.h.0p
+#usr/share/man/man0p/sys_wait.h.0p
+#usr/share/man/man0p/syslog.h.0p
+#usr/share/man/man0p/tar.h.0p
+#usr/share/man/man0p/tcp.h.0p
+#usr/share/man/man0p/termios.h.0p
+#usr/share/man/man0p/tgmath.h.0p
+#usr/share/man/man0p/time.h.0p
+#usr/share/man/man0p/timeb.h.0p
+#usr/share/man/man0p/times.h.0p
+#usr/share/man/man0p/trace.h.0p
+#usr/share/man/man0p/types.h.0p
+#usr/share/man/man0p/ucontext.h.0p
+#usr/share/man/man0p/uio.h.0p
+#usr/share/man/man0p/ulimit.h.0p
+#usr/share/man/man0p/un.h.0p
+#usr/share/man/man0p/unistd.h.0p
+#usr/share/man/man0p/utime.h.0p
+#usr/share/man/man0p/utmpx.h.0p
+#usr/share/man/man0p/utsname.h.0p
+#usr/share/man/man0p/wait.h.0p
+#usr/share/man/man0p/wchar.h.0p
+#usr/share/man/man0p/wctype.h.0p
+#usr/share/man/man0p/wordexp.h.0p
+#usr/share/man/man1/chgrp.1
+#usr/share/man/man1/chmod.1
+#usr/share/man/man1/chown.1
+#usr/share/man/man1/cp.1
+#usr/share/man/man1/dd.1
+#usr/share/man/man1/df.1
+#usr/share/man/man1/diff.1
+#usr/share/man/man1/dir.1
+#usr/share/man/man1/dircolors.1
+#usr/share/man/man1/du.1
+#usr/share/man/man1/install.1
+#usr/share/man/man1/intro.1
+#usr/share/man/man1/ldd.1
+#usr/share/man/man1/ln.1
+#usr/share/man/man1/ls.1
+#usr/share/man/man1/mkdir.1
+#usr/share/man/man1/mkfifo.1
+#usr/share/man/man1/mknod.1
+#usr/share/man/man1/mv.1
+#usr/share/man/man1/rm.1
+#usr/share/man/man1/rmdir.1
+#usr/share/man/man1/time.1
+#usr/share/man/man1/touch.1
+#usr/share/man/man1/vdir.1
+#usr/share/man/man1p
+#usr/share/man/man1p/admin.1p
+#usr/share/man/man1p/alias.1p
+#usr/share/man/man1p/ar.1p
+#usr/share/man/man1p/asa.1p
+#usr/share/man/man1p/at.1p
+#usr/share/man/man1p/awk.1p
+#usr/share/man/man1p/basename.1p
+#usr/share/man/man1p/batch.1p
+#usr/share/man/man1p/bc.1p
+#usr/share/man/man1p/bg.1p
+#usr/share/man/man1p/break.1p
+#usr/share/man/man1p/c99.1p
+#usr/share/man/man1p/cal.1p
+#usr/share/man/man1p/cat.1p
+#usr/share/man/man1p/cd.1p
+#usr/share/man/man1p/cflow.1p
+#usr/share/man/man1p/chgrp.1p
+#usr/share/man/man1p/chmod.1p
+#usr/share/man/man1p/chown.1p
+#usr/share/man/man1p/cksum.1p
+#usr/share/man/man1p/cmp.1p
+#usr/share/man/man1p/colon.1p
+#usr/share/man/man1p/comm.1p
+#usr/share/man/man1p/command.1p
+#usr/share/man/man1p/compress.1p
+#usr/share/man/man1p/continue.1p
+#usr/share/man/man1p/cp.1p
+#usr/share/man/man1p/crontab.1p
+#usr/share/man/man1p/csplit.1p
+#usr/share/man/man1p/ctags.1p
+#usr/share/man/man1p/cut.1p
+#usr/share/man/man1p/cxref.1p
+#usr/share/man/man1p/date.1p
+#usr/share/man/man1p/dd.1p
+#usr/share/man/man1p/delta.1p
+#usr/share/man/man1p/df.1p
+#usr/share/man/man1p/diff.1p
+#usr/share/man/man1p/dirname.1p
+#usr/share/man/man1p/dot.1p
+#usr/share/man/man1p/du.1p
+#usr/share/man/man1p/echo.1p
+#usr/share/man/man1p/ed.1p
+#usr/share/man/man1p/env.1p
+#usr/share/man/man1p/eval.1p
+#usr/share/man/man1p/ex.1p
+#usr/share/man/man1p/exec.1p
+#usr/share/man/man1p/exit.1p
+#usr/share/man/man1p/expand.1p
+#usr/share/man/man1p/export.1p
+#usr/share/man/man1p/expr.1p
+#usr/share/man/man1p/false.1p
+#usr/share/man/man1p/fc.1p
+#usr/share/man/man1p/fg.1p
+#usr/share/man/man1p/file.1p
+#usr/share/man/man1p/find.1p
+#usr/share/man/man1p/fold.1p
+#usr/share/man/man1p/fort77.1p
+#usr/share/man/man1p/fuser.1p
+#usr/share/man/man1p/gencat.1p
+#usr/share/man/man1p/get.1p
+#usr/share/man/man1p/getconf.1p
+#usr/share/man/man1p/getopts.1p
+#usr/share/man/man1p/grep.1p
+#usr/share/man/man1p/hash.1p
+#usr/share/man/man1p/head.1p
+#usr/share/man/man1p/iconv.1p
+#usr/share/man/man1p/id.1p
+#usr/share/man/man1p/ipcrm.1p
+#usr/share/man/man1p/ipcs.1p
+#usr/share/man/man1p/jobs.1p
+#usr/share/man/man1p/join.1p
+#usr/share/man/man1p/kill.1p
+#usr/share/man/man1p/lex.1p
+#usr/share/man/man1p/link.1p
+#usr/share/man/man1p/ln.1p
+#usr/share/man/man1p/locale.1p
+#usr/share/man/man1p/localedef.1p
+#usr/share/man/man1p/logger.1p
+#usr/share/man/man1p/logname.1p
+#usr/share/man/man1p/lp.1p
+#usr/share/man/man1p/ls.1p
+#usr/share/man/man1p/m4.1p
+#usr/share/man/man1p/mailx.1p
+#usr/share/man/man1p/make.1p
+#usr/share/man/man1p/man.1p
+#usr/share/man/man1p/mesg.1p
+#usr/share/man/man1p/mkdir.1p
+#usr/share/man/man1p/mkfifo.1p
+#usr/share/man/man1p/more.1p
+#usr/share/man/man1p/mv.1p
+#usr/share/man/man1p/newgrp.1p
+#usr/share/man/man1p/nice.1p
+#usr/share/man/man1p/nl.1p
+#usr/share/man/man1p/nm.1p
+#usr/share/man/man1p/nohup.1p
+#usr/share/man/man1p/od.1p
+#usr/share/man/man1p/paste.1p
+#usr/share/man/man1p/patch.1p
+#usr/share/man/man1p/pathchk.1p
+#usr/share/man/man1p/pax.1p
+#usr/share/man/man1p/pr.1p
+#usr/share/man/man1p/printf.1p
+#usr/share/man/man1p/prs.1p
+#usr/share/man/man1p/ps.1p
+#usr/share/man/man1p/pwd.1p
+#usr/share/man/man1p/qalter.1p
+#usr/share/man/man1p/qdel.1p
+#usr/share/man/man1p/qhold.1p
+#usr/share/man/man1p/qmove.1p
+#usr/share/man/man1p/qmsg.1p
+#usr/share/man/man1p/qrerun.1p
+#usr/share/man/man1p/qrls.1p
+#usr/share/man/man1p/qselect.1p
+#usr/share/man/man1p/qsig.1p
+#usr/share/man/man1p/qstat.1p
+#usr/share/man/man1p/qsub.1p
+#usr/share/man/man1p/read.1p
+#usr/share/man/man1p/readonly.1p
+#usr/share/man/man1p/renice.1p
+#usr/share/man/man1p/return.1p
+#usr/share/man/man1p/rm.1p
+#usr/share/man/man1p/rmdel.1p
+#usr/share/man/man1p/rmdir.1p
+#usr/share/man/man1p/sact.1p
+#usr/share/man/man1p/sccs.1p
+#usr/share/man/man1p/sed.1p
+#usr/share/man/man1p/set.1p
+#usr/share/man/man1p/sh.1p
+#usr/share/man/man1p/shift.1p
+#usr/share/man/man1p/sleep.1p
+#usr/share/man/man1p/sort.1p
+#usr/share/man/man1p/split.1p
+#usr/share/man/man1p/strings.1p
+#usr/share/man/man1p/strip.1p
+#usr/share/man/man1p/stty.1p
+#usr/share/man/man1p/tabs.1p
+#usr/share/man/man1p/tail.1p
+#usr/share/man/man1p/talk.1p
+#usr/share/man/man1p/tee.1p
+#usr/share/man/man1p/test.1p
+#usr/share/man/man1p/time.1p
+#usr/share/man/man1p/times.1p
+#usr/share/man/man1p/touch.1p
+#usr/share/man/man1p/tput.1p
+#usr/share/man/man1p/tr.1p
+#usr/share/man/man1p/trap.1p
+#usr/share/man/man1p/true.1p
+#usr/share/man/man1p/tsort.1p
+#usr/share/man/man1p/tty.1p
+#usr/share/man/man1p/type.1p
+#usr/share/man/man1p/ulimit.1p
+#usr/share/man/man1p/umask.1p
+#usr/share/man/man1p/unalias.1p
+#usr/share/man/man1p/uname.1p
+#usr/share/man/man1p/uncompress.1p
+#usr/share/man/man1p/unexpand.1p
+#usr/share/man/man1p/unget.1p
+#usr/share/man/man1p/uniq.1p
+#usr/share/man/man1p/unlink.1p
+#usr/share/man/man1p/unset.1p
+#usr/share/man/man1p/uucp.1p
+#usr/share/man/man1p/uudecode.1p
+#usr/share/man/man1p/uuencode.1p
+#usr/share/man/man1p/uustat.1p
+#usr/share/man/man1p/uux.1p
+#usr/share/man/man1p/val.1p
+#usr/share/man/man1p/vi.1p
+#usr/share/man/man1p/wait.1p
+#usr/share/man/man1p/wc.1p
+#usr/share/man/man1p/what.1p
+#usr/share/man/man1p/who.1p
+#usr/share/man/man1p/write.1p
+#usr/share/man/man1p/xargs.1p
+#usr/share/man/man1p/yacc.1p
+#usr/share/man/man1p/zcat.1p
+#usr/share/man/man2/_Exit.2
+#usr/share/man/man2/_exit.2
+#usr/share/man/man2/_llseek.2
+#usr/share/man/man2/_newselect.2
+#usr/share/man/man2/_sysctl.2
+#usr/share/man/man2/accept.2
+#usr/share/man/man2/access.2
+#usr/share/man/man2/acct.2
+#usr/share/man/man2/adjtimex.2
+#usr/share/man/man2/afs_syscall.2
+#usr/share/man/man2/alarm.2
+#usr/share/man/man2/alloc_hugepages.2
+#usr/share/man/man2/arch_prctl.2
+#usr/share/man/man2/bdflush.2
+#usr/share/man/man2/bind.2
+#usr/share/man/man2/break.2
+#usr/share/man/man2/brk.2
+#usr/share/man/man2/cacheflush.2
+#usr/share/man/man2/capget.2
+#usr/share/man/man2/capset.2
+#usr/share/man/man2/chdir.2
+#usr/share/man/man2/chmod.2
+#usr/share/man/man2/chown.2
+#usr/share/man/man2/chroot.2
+#usr/share/man/man2/clone.2
+#usr/share/man/man2/close.2
+#usr/share/man/man2/connect.2
+#usr/share/man/man2/creat.2
+#usr/share/man/man2/dup.2
+#usr/share/man/man2/dup2.2
+#usr/share/man/man2/epoll_create.2
+#usr/share/man/man2/epoll_ctl.2
+#usr/share/man/man2/epoll_wait.2
+#usr/share/man/man2/execve.2
+#usr/share/man/man2/exit.2
+#usr/share/man/man2/exit_group.2
+#usr/share/man/man2/fchdir.2
+#usr/share/man/man2/fchmod.2
+#usr/share/man/man2/fchown.2
+#usr/share/man/man2/fcntl.2
+#usr/share/man/man2/fdatasync.2
+#usr/share/man/man2/fgetxattr.2
+#usr/share/man/man2/flistxattr.2
+#usr/share/man/man2/flock.2
+#usr/share/man/man2/fork.2
+#usr/share/man/man2/free_hugepages.2
+#usr/share/man/man2/fremovexattr.2
+#usr/share/man/man2/fsetxattr.2
+#usr/share/man/man2/fstat.2
+#usr/share/man/man2/fstatfs.2
+#usr/share/man/man2/fstatvfs.2
+#usr/share/man/man2/fsync.2
+#usr/share/man/man2/ftruncate.2
+#usr/share/man/man2/futex.2
+#usr/share/man/man2/get_thread_area.2
+#usr/share/man/man2/getcontext.2
+#usr/share/man/man2/getdents.2
+#usr/share/man/man2/getdomainname.2
+#usr/share/man/man2/getdtablesize.2
+#usr/share/man/man2/getegid.2
+#usr/share/man/man2/geteuid.2
+#usr/share/man/man2/getgid.2
+#usr/share/man/man2/getgroups.2
+#usr/share/man/man2/gethostid.2
+#usr/share/man/man2/gethostname.2
+#usr/share/man/man2/getitimer.2
+#usr/share/man/man2/getpagesize.2
+#usr/share/man/man2/getpeername.2
+#usr/share/man/man2/getpgid.2
+#usr/share/man/man2/getpgrp.2
+#usr/share/man/man2/getpid.2
+#usr/share/man/man2/getpmsg.2
+#usr/share/man/man2/getppid.2
+#usr/share/man/man2/getpriority.2
+#usr/share/man/man2/getresgid.2
+#usr/share/man/man2/getresuid.2
+#usr/share/man/man2/getrlimit.2
+#usr/share/man/man2/getrusage.2
+#usr/share/man/man2/getsid.2
+#usr/share/man/man2/getsockname.2
+#usr/share/man/man2/getsockopt.2
+#usr/share/man/man2/gettid.2
+#usr/share/man/man2/gettimeofday.2
+#usr/share/man/man2/getuid.2
+#usr/share/man/man2/getxattr.2
+#usr/share/man/man2/gtty.2
+#usr/share/man/man2/idle.2
+#usr/share/man/man2/inb.2
+#usr/share/man/man2/inb_p.2
+#usr/share/man/man2/inl.2
+#usr/share/man/man2/inl_p.2
+#usr/share/man/man2/insb.2
+#usr/share/man/man2/insl.2
+#usr/share/man/man2/insw.2
+#usr/share/man/man2/intro.2
+#usr/share/man/man2/inw.2
+#usr/share/man/man2/inw_p.2
+#usr/share/man/man2/io_cancel.2
+#usr/share/man/man2/io_destroy.2
+#usr/share/man/man2/io_getevents.2
+#usr/share/man/man2/io_setup.2
+#usr/share/man/man2/io_submit.2
+#usr/share/man/man2/ioctl.2
+#usr/share/man/man2/ioctl_list.2
+#usr/share/man/man2/ioperm.2
+#usr/share/man/man2/iopl.2
+#usr/share/man/man2/ipc.2
+#usr/share/man/man2/kill.2
+#usr/share/man/man2/killpg.2
+#usr/share/man/man2/lchown.2
+#usr/share/man/man2/lgetxattr.2
+#usr/share/man/man2/link.2
+#usr/share/man/man2/listen.2
+#usr/share/man/man2/listxattr.2
+#usr/share/man/man2/llistxattr.2
+#usr/share/man/man2/llseek.2
+#usr/share/man/man2/lock.2
+#usr/share/man/man2/lookup_dcookie.2
+#usr/share/man/man2/lremovexattr.2
+#usr/share/man/man2/lseek.2
+#usr/share/man/man2/lsetxattr.2
+#usr/share/man/man2/lstat.2
+#usr/share/man/man2/madvise.2
+#usr/share/man/man2/mincore.2
+#usr/share/man/man2/mkdir.2
+#usr/share/man/man2/mknod.2
+#usr/share/man/man2/mlock.2
+#usr/share/man/man2/mlockall.2
+#usr/share/man/man2/mmap.2
+#usr/share/man/man2/mmap2.2
+#usr/share/man/man2/modify_ldt.2
+#usr/share/man/man2/mount.2
+#usr/share/man/man2/mprotect.2
+#usr/share/man/man2/mpx.2
+#usr/share/man/man2/mremap.2
+#usr/share/man/man2/msgctl.2
+#usr/share/man/man2/msgget.2
+#usr/share/man/man2/msgop.2
+#usr/share/man/man2/msgrcv.2
+#usr/share/man/man2/msgsnd.2
+#usr/share/man/man2/msync.2
+#usr/share/man/man2/munlock.2
+#usr/share/man/man2/munlockall.2
+#usr/share/man/man2/munmap.2
+#usr/share/man/man2/nanosleep.2
+#usr/share/man/man2/nfsservctl.2
+#usr/share/man/man2/nice.2
+#usr/share/man/man2/obsolete.2
+#usr/share/man/man2/oldfstat.2
+#usr/share/man/man2/oldlstat.2
+#usr/share/man/man2/oldolduname.2
+#usr/share/man/man2/oldstat.2
+#usr/share/man/man2/olduname.2
+#usr/share/man/man2/open.2
+#usr/share/man/man2/outb.2
+#usr/share/man/man2/outb_p.2
+#usr/share/man/man2/outl.2
+#usr/share/man/man2/outl_p.2
+#usr/share/man/man2/outsb.2
+#usr/share/man/man2/outsl.2
+#usr/share/man/man2/outsw.2
+#usr/share/man/man2/outw.2
+#usr/share/man/man2/outw_p.2
+#usr/share/man/man2/path_resolution.2
+#usr/share/man/man2/pause.2
+#usr/share/man/man2/pciconfig_iobase.2
+#usr/share/man/man2/pciconfig_read.2
+#usr/share/man/man2/pciconfig_write.2
+#usr/share/man/man2/personality.2
+#usr/share/man/man2/pipe.2
+#usr/share/man/man2/pivot_root.2
+#usr/share/man/man2/poll.2
+#usr/share/man/man2/posix_fadvise.2
+#usr/share/man/man2/prctl.2
+#usr/share/man/man2/pread.2
+#usr/share/man/man2/prof.2
+#usr/share/man/man2/pselect.2
+#usr/share/man/man2/ptrace.2
+#usr/share/man/man2/putpmsg.2
+#usr/share/man/man2/pwrite.2
+#usr/share/man/man2/quotactl.2
+#usr/share/man/man2/read.2
+#usr/share/man/man2/readahead.2
+#usr/share/man/man2/readdir.2
+#usr/share/man/man2/readlink.2
+#usr/share/man/man2/readv.2
+#usr/share/man/man2/reboot.2
+#usr/share/man/man2/recv.2
+#usr/share/man/man2/recvfrom.2
+#usr/share/man/man2/recvmsg.2
+#usr/share/man/man2/remap_file_pages.2
+#usr/share/man/man2/removexattr.2
+#usr/share/man/man2/rename.2
+#usr/share/man/man2/rmdir.2
+#usr/share/man/man2/sbrk.2
+#usr/share/man/man2/sched_get_priority_max.2
+#usr/share/man/man2/sched_get_priority_min.2
+#usr/share/man/man2/sched_getaffinity.2
+#usr/share/man/man2/sched_getparam.2
+#usr/share/man/man2/sched_getscheduler.2
+#usr/share/man/man2/sched_rr_get_interval.2
+#usr/share/man/man2/sched_setaffinity.2
+#usr/share/man/man2/sched_setparam.2
+#usr/share/man/man2/sched_setscheduler.2
+#usr/share/man/man2/sched_yield.2
+#usr/share/man/man2/security.2
+#usr/share/man/man2/select.2
+#usr/share/man/man2/select_tut.2
+#usr/share/man/man2/semctl.2
+#usr/share/man/man2/semget.2
+#usr/share/man/man2/semop.2
+#usr/share/man/man2/semtimedop.2
+#usr/share/man/man2/send.2
+#usr/share/man/man2/sendfile.2
+#usr/share/man/man2/sendmsg.2
+#usr/share/man/man2/sendto.2
+#usr/share/man/man2/set_thread_area.2
+#usr/share/man/man2/set_tid_address.2
+#usr/share/man/man2/setcontext.2
+#usr/share/man/man2/setdomainname.2
+#usr/share/man/man2/setegid.2
+#usr/share/man/man2/seteuid.2
+#usr/share/man/man2/setfsgid.2
+#usr/share/man/man2/setfsuid.2
+#usr/share/man/man2/setgid.2
+#usr/share/man/man2/setgroups.2
+#usr/share/man/man2/sethostid.2
+#usr/share/man/man2/sethostname.2
+#usr/share/man/man2/setitimer.2
+#usr/share/man/man2/setpgid.2
+#usr/share/man/man2/setpgrp.2
+#usr/share/man/man2/setpriority.2
+#usr/share/man/man2/setregid.2
+#usr/share/man/man2/setresgid.2
+#usr/share/man/man2/setresuid.2
+#usr/share/man/man2/setreuid.2
+#usr/share/man/man2/setrlimit.2
+#usr/share/man/man2/setsid.2
+#usr/share/man/man2/setsockopt.2
+#usr/share/man/man2/settimeofday.2
+#usr/share/man/man2/setuid.2
+#usr/share/man/man2/setup.2
+#usr/share/man/man2/setxattr.2
+#usr/share/man/man2/sgetmask.2
+#usr/share/man/man2/shmat.2
+#usr/share/man/man2/shmctl.2
+#usr/share/man/man2/shmdt.2
+#usr/share/man/man2/shmget.2
+#usr/share/man/man2/shmop.2
+#usr/share/man/man2/shutdown.2
+#usr/share/man/man2/sigaction.2
+#usr/share/man/man2/sigaltstack.2
+#usr/share/man/man2/sigblock.2
+#usr/share/man/man2/siggetmask.2
+#usr/share/man/man2/sigmask.2
+#usr/share/man/man2/signal.2
+#usr/share/man/man2/sigpause.2
+#usr/share/man/man2/sigpending.2
+#usr/share/man/man2/sigprocmask.2
+#usr/share/man/man2/sigqueue.2
+#usr/share/man/man2/sigreturn.2
+#usr/share/man/man2/sigsetmask.2
+#usr/share/man/man2/sigsuspend.2
+#usr/share/man/man2/sigtimedwait.2
+#usr/share/man/man2/sigvec.2
+#usr/share/man/man2/sigwaitinfo.2
+#usr/share/man/man2/socket.2
+#usr/share/man/man2/socketcall.2
+#usr/share/man/man2/socketpair.2
+#usr/share/man/man2/ssetmask.2
+#usr/share/man/man2/stat.2
+#usr/share/man/man2/statfs.2
+#usr/share/man/man2/statvfs.2
+#usr/share/man/man2/stime.2
+#usr/share/man/man2/stty.2
+#usr/share/man/man2/swapoff.2
+#usr/share/man/man2/swapon.2
+#usr/share/man/man2/symlink.2
+#usr/share/man/man2/sync.2
+#usr/share/man/man2/syscall.2
+#usr/share/man/man2/syscalls.2
+#usr/share/man/man2/sysctl.2
+#usr/share/man/man2/sysfs.2
+#usr/share/man/man2/sysinfo.2
+#usr/share/man/man2/syslog.2
+#usr/share/man/man2/tgkill.2
+#usr/share/man/man2/time.2
+#usr/share/man/man2/times.2
+#usr/share/man/man2/tkill.2
+#usr/share/man/man2/truncate.2
+#usr/share/man/man2/umask.2
+#usr/share/man/man2/umount.2
+#usr/share/man/man2/umount2.2
+#usr/share/man/man2/uname.2
+#usr/share/man/man2/undocumented.2
+#usr/share/man/man2/unimplemented.2
+#usr/share/man/man2/unlink.2
+#usr/share/man/man2/uselib.2
+#usr/share/man/man2/ustat.2
+#usr/share/man/man2/utime.2
+#usr/share/man/man2/utimes.2
+#usr/share/man/man2/vfork.2
+#usr/share/man/man2/vhangup.2
+#usr/share/man/man2/vm86.2
+#usr/share/man/man2/wait.2
+#usr/share/man/man2/wait3.2
+#usr/share/man/man2/wait4.2
+#usr/share/man/man2/waitid.2
+#usr/share/man/man2/waitpid.2
+#usr/share/man/man2/write.2
+#usr/share/man/man2/writev.2
+#usr/share/man/man3/CMSG_ALIGN.3
+#usr/share/man/man3/CMSG_FIRSTHDR.3
+#usr/share/man/man3/CMSG_NXTHDR.3
+#usr/share/man/man3/CMSG_SPACE.3
+#usr/share/man/man3/HUGE_VAL.3
+#usr/share/man/man3/HUGE_VALF.3
+#usr/share/man/man3/HUGE_VALL.3
+#usr/share/man/man3/INFINITY.3
+#usr/share/man/man3/MB_CUR_MAX.3
+#usr/share/man/man3/MB_LEN_MAX.3
+#usr/share/man/man3/NAN.3
+#usr/share/man/man3/__fbufsize.3
+#usr/share/man/man3/__flbf.3
+#usr/share/man/man3/__fpending.3
+#usr/share/man/man3/__fpurge.3
+#usr/share/man/man3/__freadable.3
+#usr/share/man/man3/__freading.3
+#usr/share/man/man3/__fsetlocking.3
+#usr/share/man/man3/__fwritable.3
+#usr/share/man/man3/__fwriting.3
+#usr/share/man/man3/__malloc_hook.3
+#usr/share/man/man3/__setfpucw.3
+#usr/share/man/man3/_flushlbf.3
+#usr/share/man/man3/a64l.3
+#usr/share/man/man3/abort.3
+#usr/share/man/man3/abs.3
+#usr/share/man/man3/acos.3
+#usr/share/man/man3/acosf.3
+#usr/share/man/man3/acosh.3
+#usr/share/man/man3/acoshf.3
+#usr/share/man/man3/acoshl.3
+#usr/share/man/man3/acosl.3
+#usr/share/man/man3/addmntent.3
+#usr/share/man/man3/addseverity.3
+#usr/share/man/man3/aio_cancel.3
+#usr/share/man/man3/aio_error.3
+#usr/share/man/man3/aio_fsync.3
+#usr/share/man/man3/aio_read.3
+#usr/share/man/man3/aio_return.3
+#usr/share/man/man3/aio_suspend.3
+#usr/share/man/man3/aio_write.3
+#usr/share/man/man3/alloca.3
+#usr/share/man/man3/alphasort.3
+#usr/share/man/man3/argz_add.3
+#usr/share/man/man3/argz_add_sep.3
+#usr/share/man/man3/argz_append.3
+#usr/share/man/man3/argz_count.3
+#usr/share/man/man3/argz_create.3
+#usr/share/man/man3/argz_create_sep.3
+#usr/share/man/man3/argz_delete.3
+#usr/share/man/man3/argz_extract.3
+#usr/share/man/man3/argz_insert.3
+#usr/share/man/man3/argz_next.3
+#usr/share/man/man3/argz_replace.3
+#usr/share/man/man3/argz_stringify.3
+#usr/share/man/man3/asctime.3
+#usr/share/man/man3/asctime_r.3
+#usr/share/man/man3/asin.3
+#usr/share/man/man3/asinf.3
+#usr/share/man/man3/asinh.3
+#usr/share/man/man3/asinhf.3
+#usr/share/man/man3/asinhl.3
+#usr/share/man/man3/asinl.3
+#usr/share/man/man3/asprintf.3
+#usr/share/man/man3/assert.3
+#usr/share/man/man3/assert_perror.3
+#usr/share/man/man3/atan.3
+#usr/share/man/man3/atan2.3
+#usr/share/man/man3/atan2f.3
+#usr/share/man/man3/atan2l.3
+#usr/share/man/man3/atanf.3
+#usr/share/man/man3/atanh.3
+#usr/share/man/man3/atanhf.3
+#usr/share/man/man3/atanhl.3
+#usr/share/man/man3/atanl.3
+#usr/share/man/man3/atexit.3
+#usr/share/man/man3/atof.3
+#usr/share/man/man3/atoi.3
+#usr/share/man/man3/atol.3
+#usr/share/man/man3/atoll.3
+#usr/share/man/man3/atoq.3
+#usr/share/man/man3/auth_destroy.3
+#usr/share/man/man3/authnone_create.3
+#usr/share/man/man3/authunix_create.3
+#usr/share/man/man3/authunix_create_default.3
+#usr/share/man/man3/basename.3
+#usr/share/man/man3/bcmp.3
+#usr/share/man/man3/bcopy.3
+#usr/share/man/man3/bindresvport.3
+#usr/share/man/man3/bsearch.3
+#usr/share/man/man3/bstring.3
+#usr/share/man/man3/btowc.3
+#usr/share/man/man3/btree.3
+#usr/share/man/man3/byteorder.3
+#usr/share/man/man3/bzero.3
+#usr/share/man/man3/cabs.3
+#usr/share/man/man3/cabsf.3
+#usr/share/man/man3/cabsl.3
+#usr/share/man/man3/cacos.3
+#usr/share/man/man3/cacosf.3
+#usr/share/man/man3/cacosh.3
+#usr/share/man/man3/cacoshf.3
+#usr/share/man/man3/cacoshl.3
+#usr/share/man/man3/cacosl.3
+#usr/share/man/man3/calloc.3
+#usr/share/man/man3/callrpc.3
+#usr/share/man/man3/canonicalize_file_name.3
+#usr/share/man/man3/carg.3
+#usr/share/man/man3/cargf.3
+#usr/share/man/man3/cargl.3
+#usr/share/man/man3/casin.3
+#usr/share/man/man3/casinf.3
+#usr/share/man/man3/casinh.3
+#usr/share/man/man3/casinhf.3
+#usr/share/man/man3/casinhl.3
+#usr/share/man/man3/casinl.3
+#usr/share/man/man3/catan.3
+#usr/share/man/man3/catanf.3
+#usr/share/man/man3/catanh.3
+#usr/share/man/man3/catanhf.3
+#usr/share/man/man3/catanhl.3
+#usr/share/man/man3/catanl.3
+#usr/share/man/man3/catclose.3
+#usr/share/man/man3/catgets.3
+#usr/share/man/man3/catopen.3
+#usr/share/man/man3/cbc_crypt.3
+#usr/share/man/man3/cbrt.3
+#usr/share/man/man3/cbrtf.3
+#usr/share/man/man3/cbrtl.3
+#usr/share/man/man3/ccos.3
+#usr/share/man/man3/ccosf.3
+#usr/share/man/man3/ccosh.3
+#usr/share/man/man3/ccoshf.3
+#usr/share/man/man3/ccoshl.3
+#usr/share/man/man3/ccosl.3
+#usr/share/man/man3/ceil.3
+#usr/share/man/man3/ceilf.3
+#usr/share/man/man3/ceill.3
+#usr/share/man/man3/cerf.3
+#usr/share/man/man3/cerfc.3
+#usr/share/man/man3/cerfcf.3
+#usr/share/man/man3/cerfcl.3
+#usr/share/man/man3/cerff.3
+#usr/share/man/man3/cerfl.3
+#usr/share/man/man3/cexp.3
+#usr/share/man/man3/cexp2.3
+#usr/share/man/man3/cexp2f.3
+#usr/share/man/man3/cexp2l.3
+#usr/share/man/man3/cexpf.3
+#usr/share/man/man3/cexpl.3
+#usr/share/man/man3/cfgetispeed.3
+#usr/share/man/man3/cfgetospeed.3
+#usr/share/man/man3/cfmakeraw.3
+#usr/share/man/man3/cfree.3
+#usr/share/man/man3/cfsetispeed.3
+#usr/share/man/man3/cfsetospeed.3
+#usr/share/man/man3/cimag.3
+#usr/share/man/man3/cimagf.3
+#usr/share/man/man3/cimagl.3
+#usr/share/man/man3/clearenv.3
+#usr/share/man/man3/clearerr.3
+#usr/share/man/man3/clearerr_unlocked.3
+#usr/share/man/man3/clnt_broadcast.3
+#usr/share/man/man3/clnt_call.3
+#usr/share/man/man3/clnt_control.3
+#usr/share/man/man3/clnt_create.3
+#usr/share/man/man3/clnt_destroy.3
+#usr/share/man/man3/clnt_freeres.3
+#usr/share/man/man3/clnt_geterr.3
+#usr/share/man/man3/clnt_pcreateerror.3
+#usr/share/man/man3/clnt_perrno.3
+#usr/share/man/man3/clnt_perror.3
+#usr/share/man/man3/clnt_spcreateerror.3
+#usr/share/man/man3/clnt_sperrno.3
+#usr/share/man/man3/clnt_sperror.3
+#usr/share/man/man3/clntraw_create.3
+#usr/share/man/man3/clnttcp_create.3
+#usr/share/man/man3/clntudp_bufcreate.3
+#usr/share/man/man3/clntudp_create.3
+#usr/share/man/man3/clock.3
+#usr/share/man/man3/clock_getres.3
+#usr/share/man/man3/clock_gettime.3
+#usr/share/man/man3/clock_settime.3
+#usr/share/man/man3/clog.3
+#usr/share/man/man3/clog10.3
+#usr/share/man/man3/clog10f.3
+#usr/share/man/man3/clog10l.3
+#usr/share/man/man3/clog2.3
+#usr/share/man/man3/clog2f.3
+#usr/share/man/man3/clog2l.3
+#usr/share/man/man3/clogf.3
+#usr/share/man/man3/clogl.3
+#usr/share/man/man3/closedir.3
+#usr/share/man/man3/closelog.3
+#usr/share/man/man3/cmsg.3
+#usr/share/man/man3/confstr.3
+#usr/share/man/man3/conj.3
+#usr/share/man/man3/conjf.3
+#usr/share/man/man3/conjl.3
+#usr/share/man/man3/copysign.3
+#usr/share/man/man3/copysignf.3
+#usr/share/man/man3/copysignl.3
+#usr/share/man/man3/cos.3
+#usr/share/man/man3/cosf.3
+#usr/share/man/man3/cosh.3
+#usr/share/man/man3/coshf.3
+#usr/share/man/man3/coshl.3
+#usr/share/man/man3/cosl.3
+#usr/share/man/man3/cpow.3
+#usr/share/man/man3/cpowf.3
+#usr/share/man/man3/cpowl.3
+#usr/share/man/man3/cproj.3
+#usr/share/man/man3/cprojf.3
+#usr/share/man/man3/cprojl.3
+#usr/share/man/man3/creal.3
+#usr/share/man/man3/crealf.3
+#usr/share/man/man3/creall.3
+#usr/share/man/man3/crypt.3
+#usr/share/man/man3/csin.3
+#usr/share/man/man3/csinf.3
+#usr/share/man/man3/csinh.3
+#usr/share/man/man3/csinhf.3
+#usr/share/man/man3/csinhl.3
+#usr/share/man/man3/csinl.3
+#usr/share/man/man3/csqrt.3
+#usr/share/man/man3/csqrtf.3
+#usr/share/man/man3/csqrtl.3
+#usr/share/man/man3/ctan.3
+#usr/share/man/man3/ctanf.3
+#usr/share/man/man3/ctanh.3
+#usr/share/man/man3/ctanhf.3
+#usr/share/man/man3/ctanhl.3
+#usr/share/man/man3/ctanl.3
+#usr/share/man/man3/ctermid.3
+#usr/share/man/man3/ctime.3
+#usr/share/man/man3/ctime_r.3
+#usr/share/man/man3/cuserid.3
+#usr/share/man/man3/daemon.3
+#usr/share/man/man3/db.3
+#usr/share/man/man3/dbopen.3
+#usr/share/man/man3/des_crypt.3
+#usr/share/man/man3/des_setparity.3
+#usr/share/man/man3/difftime.3
+#usr/share/man/man3/dirfd.3
+#usr/share/man/man3/dirname.3
+#usr/share/man/man3/div.3
+#usr/share/man/man3/dl_iterate_phdr.3
+#usr/share/man/man3/dladdr.3
+#usr/share/man/man3/dlclose.3
+#usr/share/man/man3/dlerror.3
+#usr/share/man/man3/dlopen.3
+#usr/share/man/man3/dlsym.3
+#usr/share/man/man3/dlvsym.3
+#usr/share/man/man3/dn_comp.3
+#usr/share/man/man3/dn_expand.3
+#usr/share/man/man3/dprintf.3
+#usr/share/man/man3/drand48.3
+#usr/share/man/man3/drand48_r.3
+#usr/share/man/man3/drem.3
+#usr/share/man/man3/dremf.3
+#usr/share/man/man3/dreml.3
+#usr/share/man/man3/dysize.3
+#usr/share/man/man3/ecb_crypt.3
+#usr/share/man/man3/ecvt.3
+#usr/share/man/man3/ecvt_r.3
+#usr/share/man/man3/encrypt.3
+#usr/share/man/man3/endaliasent.3
+#usr/share/man/man3/endfsent.3
+#usr/share/man/man3/endgrent.3
+#usr/share/man/man3/endhostent.3
+#usr/share/man/man3/endmntent.3
+#usr/share/man/man3/endnetent.3
+#usr/share/man/man3/endnetgrent.3
+#usr/share/man/man3/endprotoent.3
+#usr/share/man/man3/endpwent.3
+#usr/share/man/man3/endrpcent.3
+#usr/share/man/man3/endservent.3
+#usr/share/man/man3/endspent.3
+#usr/share/man/man3/endttyent.3
+#usr/share/man/man3/endusershell.3
+#usr/share/man/man3/endutent.3
+#usr/share/man/man3/endutxent.3
+#usr/share/man/man3/envz_add.3
+#usr/share/man/man3/envz_entry.3
+#usr/share/man/man3/envz_get.3
+#usr/share/man/man3/envz_merge.3
+#usr/share/man/man3/envz_remove.3
+#usr/share/man/man3/envz_strip.3
+#usr/share/man/man3/erand48.3
+#usr/share/man/man3/erand48_r.3
+#usr/share/man/man3/erf.3
+#usr/share/man/man3/erfc.3
+#usr/share/man/man3/erfcf.3
+#usr/share/man/man3/erfcl.3
+#usr/share/man/man3/erff.3
+#usr/share/man/man3/erfl.3
+#usr/share/man/man3/err.3
+#usr/share/man/man3/errno.3
+#usr/share/man/man3/errx.3
+#usr/share/man/man3/ether_aton.3
+#usr/share/man/man3/ether_aton_r.3
+#usr/share/man/man3/ether_hostton.3
+#usr/share/man/man3/ether_line.3
+#usr/share/man/man3/ether_ntoa.3
+#usr/share/man/man3/ether_ntoa_r.3
+#usr/share/man/man3/ether_ntohost.3
+#usr/share/man/man3/exec.3
+#usr/share/man/man3/execl.3
+#usr/share/man/man3/execle.3
+#usr/share/man/man3/execlp.3
+#usr/share/man/man3/execv.3
+#usr/share/man/man3/execvp.3
+#usr/share/man/man3/exit.3
+#usr/share/man/man3/exp.3
+#usr/share/man/man3/exp10.3
+#usr/share/man/man3/exp10f.3
+#usr/share/man/man3/exp10l.3
+#usr/share/man/man3/exp2.3
+#usr/share/man/man3/exp2f.3
+#usr/share/man/man3/exp2l.3
+#usr/share/man/man3/expf.3
+#usr/share/man/man3/expl.3
+#usr/share/man/man3/expm1.3
+#usr/share/man/man3/expm1f.3
+#usr/share/man/man3/expm1l.3
+#usr/share/man/man3/fabs.3
+#usr/share/man/man3/fabsf.3
+#usr/share/man/man3/fabsl.3
+#usr/share/man/man3/fclose.3
+#usr/share/man/man3/fcloseall.3
+#usr/share/man/man3/fcvt.3
+#usr/share/man/man3/fcvt_r.3
+#usr/share/man/man3/fdim.3
+#usr/share/man/man3/fdimf.3
+#usr/share/man/man3/fdiml.3
+#usr/share/man/man3/fdopen.3
+#usr/share/man/man3/feclearexcept.3
+#usr/share/man/man3/fedisableexcept.3
+#usr/share/man/man3/feenableexcept.3
+#usr/share/man/man3/fegetenv.3
+#usr/share/man/man3/fegetexcept.3
+#usr/share/man/man3/fegetexceptflag.3
+#usr/share/man/man3/fegetround.3
+#usr/share/man/man3/feholdexcept.3
+#usr/share/man/man3/fenv.3
+#usr/share/man/man3/feof.3
+#usr/share/man/man3/feof_unlocked.3
+#usr/share/man/man3/feraiseexcept.3
+#usr/share/man/man3/ferror.3
+#usr/share/man/man3/ferror_unlocked.3
+#usr/share/man/man3/fesetenv.3
+#usr/share/man/man3/fesetexceptflag.3
+#usr/share/man/man3/fesetround.3
+#usr/share/man/man3/fetestexcept.3
+#usr/share/man/man3/feupdateenv.3
+#usr/share/man/man3/fflush.3
+#usr/share/man/man3/fflush_unlocked.3
+#usr/share/man/man3/ffs.3
+#usr/share/man/man3/ffsl.3
+#usr/share/man/man3/ffsll.3
+#usr/share/man/man3/fgetc.3
+#usr/share/man/man3/fgetc_unlocked.3
+#usr/share/man/man3/fgetgrent.3
+#usr/share/man/man3/fgetgrent_r.3
+#usr/share/man/man3/fgetpos.3
+#usr/share/man/man3/fgetpwent.3
+#usr/share/man/man3/fgetpwent_r.3
+#usr/share/man/man3/fgets.3
+#usr/share/man/man3/fgets_unlocked.3
+#usr/share/man/man3/fgetspent.3
+#usr/share/man/man3/fgetspent_r.3
+#usr/share/man/man3/fgetwc.3
+#usr/share/man/man3/fgetwc_unlocked.3
+#usr/share/man/man3/fgetws.3
+#usr/share/man/man3/fgetws_unlocked.3
+#usr/share/man/man3/fileno.3
+#usr/share/man/man3/fileno_unlocked.3
+#usr/share/man/man3/finite.3
+#usr/share/man/man3/finitef.3
+#usr/share/man/man3/finitel.3
+#usr/share/man/man3/flockfile.3
+#usr/share/man/man3/floor.3
+#usr/share/man/man3/floorf.3
+#usr/share/man/man3/floorl.3
+#usr/share/man/man3/fma.3
+#usr/share/man/man3/fmaf.3
+#usr/share/man/man3/fmal.3
+#usr/share/man/man3/fmax.3
+#usr/share/man/man3/fmaxf.3
+#usr/share/man/man3/fmaxl.3
+#usr/share/man/man3/fmin.3
+#usr/share/man/man3/fminf.3
+#usr/share/man/man3/fminl.3
+#usr/share/man/man3/fmod.3
+#usr/share/man/man3/fmodf.3
+#usr/share/man/man3/fmodl.3
+#usr/share/man/man3/fmtmsg.3
+#usr/share/man/man3/fnmatch.3
+#usr/share/man/man3/fopen.3
+#usr/share/man/man3/forkpty.3
+#usr/share/man/man3/fpathconf.3
+#usr/share/man/man3/fpclassify.3
+#usr/share/man/man3/fprintf.3
+#usr/share/man/man3/fpurge.3
+#usr/share/man/man3/fputc.3
+#usr/share/man/man3/fputc_unlocked.3
+#usr/share/man/man3/fputs.3
+#usr/share/man/man3/fputs_unlocked.3
+#usr/share/man/man3/fputwc.3
+#usr/share/man/man3/fputwc_unlocked.3
+#usr/share/man/man3/fputws.3
+#usr/share/man/man3/fputws_unlocked.3
+#usr/share/man/man3/fread.3
+#usr/share/man/man3/fread_unlocked.3
+#usr/share/man/man3/free.3
+#usr/share/man/man3/freeaddrinfo.3
+#usr/share/man/man3/freehostent.3
+#usr/share/man/man3/freopen.3
+#usr/share/man/man3/frexp.3
+#usr/share/man/man3/frexpf.3
+#usr/share/man/man3/frexpl.3
+#usr/share/man/man3/fscanf.3
+#usr/share/man/man3/fseek.3
+#usr/share/man/man3/fseeko.3
+#usr/share/man/man3/fsetpos.3
+#usr/share/man/man3/ftell.3
+#usr/share/man/man3/ftello.3
+#usr/share/man/man3/ftime.3
+#usr/share/man/man3/ftok.3
+#usr/share/man/man3/ftrylockfile.3
+#usr/share/man/man3/fts.3
+#usr/share/man/man3/fts_children.3
+#usr/share/man/man3/fts_close.3
+#usr/share/man/man3/fts_open.3
+#usr/share/man/man3/fts_read.3
+#usr/share/man/man3/fts_set.3
+#usr/share/man/man3/ftw.3
+#usr/share/man/man3/funlockfile.3
+#usr/share/man/man3/fwide.3
+#usr/share/man/man3/fwprintf.3
+#usr/share/man/man3/fwrite.3
+#usr/share/man/man3/fwrite_unlocked.3
+#usr/share/man/man3/gai_strerror.3
+#usr/share/man/man3/gamma.3
+#usr/share/man/man3/gammaf.3
+#usr/share/man/man3/gammal.3
+#usr/share/man/man3/gcvt.3
+#usr/share/man/man3/get_current_dir_name.3
+#usr/share/man/man3/get_myaddress.3
+#usr/share/man/man3/getaddrinfo.3
+#usr/share/man/man3/getaliasbyname.3
+#usr/share/man/man3/getaliasbyname_r.3
+#usr/share/man/man3/getaliasent.3
+#usr/share/man/man3/getaliasent_r.3
+#usr/share/man/man3/getc.3
+#usr/share/man/man3/getc_unlocked.3
+#usr/share/man/man3/getchar.3
+#usr/share/man/man3/getchar_unlocked.3
+#usr/share/man/man3/getcwd.3
+#usr/share/man/man3/getdate.3
+#usr/share/man/man3/getdate_r.3
+#usr/share/man/man3/getdelim.3
+#usr/share/man/man3/getdirentries.3
+#usr/share/man/man3/getenv.3
+#usr/share/man/man3/getfsent.3
+#usr/share/man/man3/getfsfile.3
+#usr/share/man/man3/getfsspec.3
+#usr/share/man/man3/getgrent.3
+#usr/share/man/man3/getgrent_r.3
+#usr/share/man/man3/getgrgid.3
+#usr/share/man/man3/getgrgid_r.3
+#usr/share/man/man3/getgrnam.3
+#usr/share/man/man3/getgrnam_r.3
+#usr/share/man/man3/getgrouplist.3
+#usr/share/man/man3/gethostbyaddr.3
+#usr/share/man/man3/gethostbyname.3
+#usr/share/man/man3/gethostbyname2.3
+#usr/share/man/man3/gethostbyname2_r.3
+#usr/share/man/man3/gethostbyname_r.3
+#usr/share/man/man3/gethostent.3
+#usr/share/man/man3/gethostent_r.3
+#usr/share/man/man3/getipnodebyaddr.3
+#usr/share/man/man3/getipnodebyname.3
+#usr/share/man/man3/getline.3
+#usr/share/man/man3/getloadavg.3
+#usr/share/man/man3/getlogin.3
+#usr/share/man/man3/getlogin_r.3
+#usr/share/man/man3/getmntent.3
+#usr/share/man/man3/getmntent_r.3
+#usr/share/man/man3/getnameinfo.3
+#usr/share/man/man3/getnetbyaddr.3
+#usr/share/man/man3/getnetbyname.3
+#usr/share/man/man3/getnetent.3
+#usr/share/man/man3/getnetgrent.3
+#usr/share/man/man3/getnetgrent_r.3
+#usr/share/man/man3/getopt.3
+#usr/share/man/man3/getopt_long.3
+#usr/share/man/man3/getopt_long_only.3
+#usr/share/man/man3/getpass.3
+#usr/share/man/man3/getprotobyname.3
+#usr/share/man/man3/getprotobynumber.3
+#usr/share/man/man3/getprotoent.3
+#usr/share/man/man3/getpt.3
+#usr/share/man/man3/getpw.3
+#usr/share/man/man3/getpwent.3
+#usr/share/man/man3/getpwent_r.3
+#usr/share/man/man3/getpwnam.3
+#usr/share/man/man3/getpwnam_r.3
+#usr/share/man/man3/getpwuid.3
+#usr/share/man/man3/getpwuid_r.3
+#usr/share/man/man3/getrpcbyname.3
+#usr/share/man/man3/getrpcbynumber.3
+#usr/share/man/man3/getrpcent.3
+#usr/share/man/man3/getrpcport.3
+#usr/share/man/man3/gets.3
+#usr/share/man/man3/getservbyname.3
+#usr/share/man/man3/getservbyport.3
+#usr/share/man/man3/getservent.3
+#usr/share/man/man3/getspent.3
+#usr/share/man/man3/getspent_r.3
+#usr/share/man/man3/getspnam.3
+#usr/share/man/man3/getspnam_r.3
+#usr/share/man/man3/getttyent.3
+#usr/share/man/man3/getttynam.3
+#usr/share/man/man3/getumask.3
+#usr/share/man/man3/getusershell.3
+#usr/share/man/man3/getutent.3
+#usr/share/man/man3/getutent_r.3
+#usr/share/man/man3/getutid.3
+#usr/share/man/man3/getutid_r.3
+#usr/share/man/man3/getutline.3
+#usr/share/man/man3/getutline_r.3
+#usr/share/man/man3/getutxent.3
+#usr/share/man/man3/getutxid.3
+#usr/share/man/man3/getutxline.3
+#usr/share/man/man3/getw.3
+#usr/share/man/man3/getwc.3
+#usr/share/man/man3/getwc_unlocked.3
+#usr/share/man/man3/getwchar.3
+#usr/share/man/man3/getwchar_unlocked.3
+#usr/share/man/man3/getwd.3
+#usr/share/man/man3/glob.3
+#usr/share/man/man3/globfree.3
+#usr/share/man/man3/gmtime.3
+#usr/share/man/man3/gmtime_r.3
+#usr/share/man/man3/grantpt.3
+#usr/share/man/man3/gsignal.3
+#usr/share/man/man3/hash.3
+#usr/share/man/man3/hasmntopt.3
+#usr/share/man/man3/hcreate.3
+#usr/share/man/man3/hcreate_r.3
+#usr/share/man/man3/hdestroy.3
+#usr/share/man/man3/hdestroy_r.3
+#usr/share/man/man3/herror.3
+#usr/share/man/man3/hsearch.3
+#usr/share/man/man3/hsearch_r.3
+#usr/share/man/man3/hstrerror.3
+#usr/share/man/man3/htonl.3
+#usr/share/man/man3/htons.3
+#usr/share/man/man3/hypot.3
+#usr/share/man/man3/hypotf.3
+#usr/share/man/man3/hypotl.3
+#usr/share/man/man3/iconv.3
+#usr/share/man/man3/iconv_close.3
+#usr/share/man/man3/iconv_open.3
+#usr/share/man/man3/ilogb.3
+#usr/share/man/man3/ilogbf.3
+#usr/share/man/man3/ilogbl.3
+#usr/share/man/man3/imaxabs.3
+#usr/share/man/man3/imaxdiv.3
+#usr/share/man/man3/index.3
+#usr/share/man/man3/inet.3
+#usr/share/man/man3/inet_addr.3
+#usr/share/man/man3/inet_aton.3
+#usr/share/man/man3/inet_lnaof.3
+#usr/share/man/man3/inet_makeaddr.3
+#usr/share/man/man3/inet_netof.3
+#usr/share/man/man3/inet_network.3
+#usr/share/man/man3/inet_ntoa.3
+#usr/share/man/man3/inet_ntop.3
+#usr/share/man/man3/inet_pton.3
+#usr/share/man/man3/infnan.3
+#usr/share/man/man3/initgroups.3
+#usr/share/man/man3/initstate.3
+#usr/share/man/man3/innetgr.3
+#usr/share/man/man3/insque.3
+#usr/share/man/man3/intro.3
+#usr/share/man/man3/iruserok.3
+#usr/share/man/man3/isalnum.3
+#usr/share/man/man3/isalpha.3
+#usr/share/man/man3/isascii.3
+#usr/share/man/man3/isatty.3
+#usr/share/man/man3/isblank.3
+#usr/share/man/man3/iscntrl.3
+#usr/share/man/man3/isdigit.3
+#usr/share/man/man3/isfinite.3
+#usr/share/man/man3/isgraph.3
+#usr/share/man/man3/isgreater.3
+#usr/share/man/man3/isgreaterequal.3
+#usr/share/man/man3/isinf.3
+#usr/share/man/man3/isinff.3
+#usr/share/man/man3/isinfl.3
+#usr/share/man/man3/isless.3
+#usr/share/man/man3/islessequal.3
+#usr/share/man/man3/islessgreater.3
+#usr/share/man/man3/islower.3
+#usr/share/man/man3/isnan.3
+#usr/share/man/man3/isnormal.3
+#usr/share/man/man3/isprint.3
+#usr/share/man/man3/ispunct.3
+#usr/share/man/man3/isspace.3
+#usr/share/man/man3/isunordered.3
+#usr/share/man/man3/isupper.3
+#usr/share/man/man3/iswalnum.3
+#usr/share/man/man3/iswalpha.3
+#usr/share/man/man3/iswblank.3
+#usr/share/man/man3/iswcntrl.3
+#usr/share/man/man3/iswctype.3
+#usr/share/man/man3/iswdigit.3
+#usr/share/man/man3/iswgraph.3
+#usr/share/man/man3/iswlower.3
+#usr/share/man/man3/iswprint.3
+#usr/share/man/man3/iswpunct.3
+#usr/share/man/man3/iswspace.3
+#usr/share/man/man3/iswupper.3
+#usr/share/man/man3/iswxdigit.3
+#usr/share/man/man3/isxdigit.3
+#usr/share/man/man3/j0.3
+#usr/share/man/man3/j0f.3
+#usr/share/man/man3/j0l.3
+#usr/share/man/man3/j1.3
+#usr/share/man/man3/j1f.3
+#usr/share/man/man3/j1l.3
+#usr/share/man/man3/jn.3
+#usr/share/man/man3/jnf.3
+#usr/share/man/man3/jnl.3
+#usr/share/man/man3/jrand48.3
+#usr/share/man/man3/jrand48_r.3
+#usr/share/man/man3/key_decryptsession.3
+#usr/share/man/man3/key_encryptsession.3
+#usr/share/man/man3/key_gendes.3
+#usr/share/man/man3/key_secretkey_is_set.3
+#usr/share/man/man3/key_setsecret.3
+#usr/share/man/man3/killpg.3
+#usr/share/man/man3/klogctl.3
+#usr/share/man/man3/l64a.3
+#usr/share/man/man3/labs.3
+#usr/share/man/man3/lckpwdf.3
+#usr/share/man/man3/lcong48.3
+#usr/share/man/man3/lcong48_r.3
+#usr/share/man/man3/ldexp.3
+#usr/share/man/man3/ldexpf.3
+#usr/share/man/man3/ldexpl.3
+#usr/share/man/man3/ldiv.3
+#usr/share/man/man3/lfind.3
+#usr/share/man/man3/lgamma.3
+#usr/share/man/man3/lgamma_r.3
+#usr/share/man/man3/lgammaf.3
+#usr/share/man/man3/lgammaf_r.3
+#usr/share/man/man3/lgammal.3
+#usr/share/man/man3/lgammal_r.3
+#usr/share/man/man3/llabs.3
+#usr/share/man/man3/lldiv.3
+#usr/share/man/man3/llrint.3
+#usr/share/man/man3/llrintf.3
+#usr/share/man/man3/llrintl.3
+#usr/share/man/man3/llround.3
+#usr/share/man/man3/llroundf.3
+#usr/share/man/man3/llroundl.3
+#usr/share/man/man3/localeconv.3
+#usr/share/man/man3/localtime.3
+#usr/share/man/man3/localtime_r.3
+#usr/share/man/man3/lockf.3
+#usr/share/man/man3/log.3
+#usr/share/man/man3/log10.3
+#usr/share/man/man3/log10f.3
+#usr/share/man/man3/log10l.3
+#usr/share/man/man3/log1p.3
+#usr/share/man/man3/log1pf.3
+#usr/share/man/man3/log1pl.3
+#usr/share/man/man3/log2.3
+#usr/share/man/man3/log2f.3
+#usr/share/man/man3/log2l.3
+#usr/share/man/man3/logb.3
+#usr/share/man/man3/logbf.3
+#usr/share/man/man3/logbl.3
+#usr/share/man/man3/logf.3
+#usr/share/man/man3/login.3
+#usr/share/man/man3/login_tty.3
+#usr/share/man/man3/logl.3
+#usr/share/man/man3/logout.3
+#usr/share/man/man3/logwtmp.3
+#usr/share/man/man3/longjmp.3
+#usr/share/man/man3/lrand48.3
+#usr/share/man/man3/lrand48_r.3
+#usr/share/man/man3/lrint.3
+#usr/share/man/man3/lrintf.3
+#usr/share/man/man3/lrintl.3
+#usr/share/man/man3/lround.3
+#usr/share/man/man3/lroundf.3
+#usr/share/man/man3/lroundl.3
+#usr/share/man/man3/lsearch.3
+#usr/share/man/man3/lseek64.3
+#usr/share/man/man3/makecontext.3
+#usr/share/man/man3/malloc.3
+#usr/share/man/man3/malloc_hook.3
+#usr/share/man/man3/mblen.3
+#usr/share/man/man3/mbrlen.3
+#usr/share/man/man3/mbrtowc.3
+#usr/share/man/man3/mbsinit.3
+#usr/share/man/man3/mbsnrtowcs.3
+#usr/share/man/man3/mbsrtowcs.3
+#usr/share/man/man3/mbstowcs.3
+#usr/share/man/man3/mbtowc.3
+#usr/share/man/man3/memalign.3
+#usr/share/man/man3/memccpy.3
+#usr/share/man/man3/memchr.3
+#usr/share/man/man3/memcmp.3
+#usr/share/man/man3/memcpy.3
+#usr/share/man/man3/memfrob.3
+#usr/share/man/man3/memmem.3
+#usr/share/man/man3/memmove.3
+#usr/share/man/man3/mempcpy.3
+#usr/share/man/man3/memrchr.3
+#usr/share/man/man3/memset.3
+#usr/share/man/man3/mkdtemp.3
+#usr/share/man/man3/mkfifo.3
+#usr/share/man/man3/mkstemp.3
+#usr/share/man/man3/mktemp.3
+#usr/share/man/man3/mktime.3
+#usr/share/man/man3/modf.3
+#usr/share/man/man3/modff.3
+#usr/share/man/man3/modfl.3
+#usr/share/man/man3/mpool.3
+#usr/share/man/man3/mrand48.3
+#usr/share/man/man3/mrand48_r.3
+#usr/share/man/man3/mtrace.3
+#usr/share/man/man3/muntrace.3
+#usr/share/man/man3/nan.3
+#usr/share/man/man3/nanf.3
+#usr/share/man/man3/nanl.3
+#usr/share/man/man3/nearbyint.3
+#usr/share/man/man3/nearbyintf.3
+#usr/share/man/man3/nearbyintl.3
+#usr/share/man/man3/netlink.3
+#usr/share/man/man3/nextafter.3
+#usr/share/man/man3/nextafterf.3
+#usr/share/man/man3/nextafterl.3
+#usr/share/man/man3/nexttoward.3
+#usr/share/man/man3/nexttowardf.3
+#usr/share/man/man3/nexttowardl.3
+#usr/share/man/man3/nftw.3
+#usr/share/man/man3/nl_langinfo.3
+#usr/share/man/man3/nrand48.3
+#usr/share/man/man3/nrand48_r.3
+#usr/share/man/man3/ntohl.3
+#usr/share/man/man3/ntohs.3
+#usr/share/man/man3/on_exit.3
+#usr/share/man/man3/opendir.3
+#usr/share/man/man3/openlog.3
+#usr/share/man/man3/openpty.3
+#usr/share/man/man3/passwd2des.3
+#usr/share/man/man3/pathconf.3
+#usr/share/man/man3/pclose.3
+#usr/share/man/man3/perror.3
+#usr/share/man/man3/pmap_getmaps.3
+#usr/share/man/man3/pmap_getport.3
+#usr/share/man/man3/pmap_rmtcall.3
+#usr/share/man/man3/pmap_set.3
+#usr/share/man/man3/pmap_unset.3
+#usr/share/man/man3/popen.3
+#usr/share/man/man3/posix_memalign.3
+#usr/share/man/man3/posix_openpt.3
+#usr/share/man/man3/pow.3
+#usr/share/man/man3/pow10.3
+#usr/share/man/man3/pow10f.3
+#usr/share/man/man3/pow10l.3
+#usr/share/man/man3/powf.3
+#usr/share/man/man3/powl.3
+#usr/share/man/man3/printf.3
+#usr/share/man/man3/profil.3
+#usr/share/man/man3/psignal.3
+#usr/share/man/man3/ptsname.3
+#usr/share/man/man3/ptsname_r.3
+#usr/share/man/man3/putc.3
+#usr/share/man/man3/putc_unlocked.3
+#usr/share/man/man3/putchar.3
+#usr/share/man/man3/putchar_unlocked.3
+#usr/share/man/man3/putenv.3
+#usr/share/man/man3/putgrent.3
+#usr/share/man/man3/putpwent.3
+#usr/share/man/man3/puts.3
+#usr/share/man/man3/putspent.3
+#usr/share/man/man3/pututline.3
+#usr/share/man/man3/pututxline.3
+#usr/share/man/man3/putw.3
+#usr/share/man/man3/putwc.3
+#usr/share/man/man3/putwc_unlocked.3
+#usr/share/man/man3/putwchar.3
+#usr/share/man/man3/putwchar_unlocked.3
+#usr/share/man/man3/qecvt.3
+#usr/share/man/man3/qecvt_r.3
+#usr/share/man/man3/qfcvt.3
+#usr/share/man/man3/qfcvt_r.3
+#usr/share/man/man3/qgcvt.3
+#usr/share/man/man3/qsort.3
+#usr/share/man/man3/queue.3
+#usr/share/man/man3/raise.3
+#usr/share/man/man3/rand.3
+#usr/share/man/man3/rand_r.3
+#usr/share/man/man3/random.3
+#usr/share/man/man3/rcmd.3
+#usr/share/man/man3/re_comp.3
+#usr/share/man/man3/re_exec.3
+#usr/share/man/man3/readdir.3
+#usr/share/man/man3/realloc.3
+#usr/share/man/man3/realpath.3
+#usr/share/man/man3/recno.3
+#usr/share/man/man3/regcomp.3
+#usr/share/man/man3/regerror.3
+#usr/share/man/man3/regex.3
+#usr/share/man/man3/regexec.3
+#usr/share/man/man3/regfree.3
+#usr/share/man/man3/registerrpc.3
+#usr/share/man/man3/remainder.3
+#usr/share/man/man3/remainderf.3
+#usr/share/man/man3/remainderl.3
+#usr/share/man/man3/remove.3
+#usr/share/man/man3/remque.3
+#usr/share/man/man3/remquo.3
+#usr/share/man/man3/remquof.3
+#usr/share/man/man3/remquol.3
+#usr/share/man/man3/res_init.3
+#usr/share/man/man3/res_mkquery.3
+#usr/share/man/man3/res_query.3
+#usr/share/man/man3/res_querydomain.3
+#usr/share/man/man3/res_search.3
+#usr/share/man/man3/res_send.3
+#usr/share/man/man3/resolver.3
+#usr/share/man/man3/rewind.3
+#usr/share/man/man3/rewinddir.3
+#usr/share/man/man3/rindex.3
+#usr/share/man/man3/rint.3
+#usr/share/man/man3/rintf.3
+#usr/share/man/man3/rintl.3
+#usr/share/man/man3/round.3
+#usr/share/man/man3/roundf.3
+#usr/share/man/man3/roundl.3
+#usr/share/man/man3/rpc.3
+#usr/share/man/man3/rresvport.3
+#usr/share/man/man3/rtime.3
+#usr/share/man/man3/rtnetlink.3
+#usr/share/man/man3/ruserok.3
+#usr/share/man/man3/scalb.3
+#usr/share/man/man3/scalbf.3
+#usr/share/man/man3/scalbl.3
+#usr/share/man/man3/scalbln.3
+#usr/share/man/man3/scalblnf.3
+#usr/share/man/man3/scalblnl.3
+#usr/share/man/man3/scalbn.3
+#usr/share/man/man3/scalbnf.3
+#usr/share/man/man3/scalbnl.3
+#usr/share/man/man3/scandir.3
+#usr/share/man/man3/scanf.3
+#usr/share/man/man3/seed48.3
+#usr/share/man/man3/seed48_r.3
+#usr/share/man/man3/seekdir.3
+#usr/share/man/man3/setaliasent.3
+#usr/share/man/man3/setbuf.3
+#usr/share/man/man3/setbuffer.3
+#usr/share/man/man3/setenv.3
+#usr/share/man/man3/setfsent.3
+#usr/share/man/man3/setgrent.3
+#usr/share/man/man3/sethostent.3
+#usr/share/man/man3/setjmp.3
+#usr/share/man/man3/setkey.3
+#usr/share/man/man3/setlinebuf.3
+#usr/share/man/man3/setlocale.3
+#usr/share/man/man3/setlogmask.3
+#usr/share/man/man3/setmntent.3
+#usr/share/man/man3/setnetent.3
+#usr/share/man/man3/setnetgrent.3
+#usr/share/man/man3/setprotoent.3
+#usr/share/man/man3/setpwent.3
+#usr/share/man/man3/setrpcent.3
+#usr/share/man/man3/setservent.3
+#usr/share/man/man3/setspent.3
+#usr/share/man/man3/setstate.3
+#usr/share/man/man3/setttyent.3
+#usr/share/man/man3/setusershell.3
+#usr/share/man/man3/setutent.3
+#usr/share/man/man3/setutxent.3
+#usr/share/man/man3/setvbuf.3
+#usr/share/man/man3/sgetspent.3
+#usr/share/man/man3/sgetspent_r.3
+#usr/share/man/man3/shm_open.3
+#usr/share/man/man3/sigaddset.3
+#usr/share/man/man3/sigdelset.3
+#usr/share/man/man3/sigemptyset.3
+#usr/share/man/man3/sigfillset.3
+#usr/share/man/man3/siginterrupt.3
+#usr/share/man/man3/sigismember.3
+#usr/share/man/man3/siglongjmp.3
+#usr/share/man/man3/signbit.3
+#usr/share/man/man3/signgam.3
+#usr/share/man/man3/significand.3
+#usr/share/man/man3/significandf.3
+#usr/share/man/man3/significandl.3
+#usr/share/man/man3/sigsetjmp.3
+#usr/share/man/man3/sigsetops.3
+#usr/share/man/man3/sin.3
+#usr/share/man/man3/sincos.3
+#usr/share/man/man3/sincosf.3
+#usr/share/man/man3/sincosl.3
+#usr/share/man/man3/sinf.3
+#usr/share/man/man3/sinh.3
+#usr/share/man/man3/sinhf.3
+#usr/share/man/man3/sinhl.3
+#usr/share/man/man3/sinl.3
+#usr/share/man/man3/sleep.3
+#usr/share/man/man3/snprintf.3
+#usr/share/man/man3/sprintf.3
+#usr/share/man/man3/sqrt.3
+#usr/share/man/man3/sqrtf.3
+#usr/share/man/man3/sqrtl.3
+#usr/share/man/man3/srand.3
+#usr/share/man/man3/srand48.3
+#usr/share/man/man3/srand48_r.3
+#usr/share/man/man3/srandom.3
+#usr/share/man/man3/sscanf.3
+#usr/share/man/man3/ssignal.3
+#usr/share/man/man3/stdarg.3
+#usr/share/man/man3/stderr.3
+#usr/share/man/man3/stdin.3
+#usr/share/man/man3/stdio.3
+#usr/share/man/man3/stdio_ext.3
+#usr/share/man/man3/stdout.3
+#usr/share/man/man3/stpcpy.3
+#usr/share/man/man3/stpncpy.3
+#usr/share/man/man3/strcasecmp.3
+#usr/share/man/man3/strcasestr.3
+#usr/share/man/man3/strcat.3
+#usr/share/man/man3/strchr.3
+#usr/share/man/man3/strcmp.3
+#usr/share/man/man3/strcoll.3
+#usr/share/man/man3/strcpy.3
+#usr/share/man/man3/strcspn.3
+#usr/share/man/man3/strdup.3
+#usr/share/man/man3/strdupa.3
+#usr/share/man/man3/strerror.3
+#usr/share/man/man3/strerror_r.3
+#usr/share/man/man3/strfmon.3
+#usr/share/man/man3/strfry.3
+#usr/share/man/man3/strftime.3
+#usr/share/man/man3/string.3
+#usr/share/man/man3/strlen.3
+#usr/share/man/man3/strncasecmp.3
+#usr/share/man/man3/strncat.3
+#usr/share/man/man3/strncmp.3
+#usr/share/man/man3/strncpy.3
+#usr/share/man/man3/strndup.3
+#usr/share/man/man3/strndupa.3
+#usr/share/man/man3/strnlen.3
+#usr/share/man/man3/strpbrk.3
+#usr/share/man/man3/strptime.3
+#usr/share/man/man3/strrchr.3
+#usr/share/man/man3/strsep.3
+#usr/share/man/man3/strsignal.3
+#usr/share/man/man3/strspn.3
+#usr/share/man/man3/strstr.3
+#usr/share/man/man3/strtod.3
+#usr/share/man/man3/strtof.3
+#usr/share/man/man3/strtoimax.3
+#usr/share/man/man3/strtok.3
+#usr/share/man/man3/strtok_r.3
+#usr/share/man/man3/strtol.3
+#usr/share/man/man3/strtold.3
+#usr/share/man/man3/strtoll.3
+#usr/share/man/man3/strtoq.3
+#usr/share/man/man3/strtoul.3
+#usr/share/man/man3/strtoull.3
+#usr/share/man/man3/strtoumax.3
+#usr/share/man/man3/strtouq.3
+#usr/share/man/man3/strverscmp.3
+#usr/share/man/man3/strxfrm.3
+#usr/share/man/man3/svc_destroy.3
+#usr/share/man/man3/svc_freeargs.3
+#usr/share/man/man3/svc_getargs.3
+#usr/share/man/man3/svc_getcaller.3
+#usr/share/man/man3/svc_getreq.3
+#usr/share/man/man3/svc_getreqset.3
+#usr/share/man/man3/svc_register.3
+#usr/share/man/man3/svc_run.3
+#usr/share/man/man3/svc_sendreply.3
+#usr/share/man/man3/svc_unregister.3
+#usr/share/man/man3/svcerr_auth.3
+#usr/share/man/man3/svcerr_decode.3
+#usr/share/man/man3/svcerr_noproc.3
+#usr/share/man/man3/svcerr_noprog.3
+#usr/share/man/man3/svcerr_progvers.3
+#usr/share/man/man3/svcerr_systemerr.3
+#usr/share/man/man3/svcerr_weakauth.3
+#usr/share/man/man3/svcfd_create.3
+#usr/share/man/man3/svcraw_create.3
+#usr/share/man/man3/svctcp_create.3
+#usr/share/man/man3/svcudp_bufcreate.3
+#usr/share/man/man3/svcudp_create.3
+#usr/share/man/man3/swab.3
+#usr/share/man/man3/swapcontext.3
+#usr/share/man/man3/swprintf.3
+#usr/share/man/man3/sysconf.3
+#usr/share/man/man3/syslog.3
+#usr/share/man/man3/system.3
+#usr/share/man/man3/tan.3
+#usr/share/man/man3/tanf.3
+#usr/share/man/man3/tanh.3
+#usr/share/man/man3/tanhf.3
+#usr/share/man/man3/tanhl.3
+#usr/share/man/man3/tanl.3
+#usr/share/man/man3/tcdrain.3
+#usr/share/man/man3/tcflow.3
+#usr/share/man/man3/tcflush.3
+#usr/share/man/man3/tcgetattr.3
+#usr/share/man/man3/tcgetpgrp.3
+#usr/share/man/man3/tcgetsid.3
+#usr/share/man/man3/tcsendbreak.3
+#usr/share/man/man3/tcsetattr.3
+#usr/share/man/man3/tcsetpgrp.3
+#usr/share/man/man3/tdelete.3
+#usr/share/man/man3/tdestroy.3
+#usr/share/man/man3/telldir.3
+#usr/share/man/man3/tempnam.3
+#usr/share/man/man3/termios.3
+#usr/share/man/man3/tfind.3
+#usr/share/man/man3/tgamma.3
+#usr/share/man/man3/tgammaf.3
+#usr/share/man/man3/tgammal.3
+#usr/share/man/man3/timegm.3
+#usr/share/man/man3/timelocal.3
+#usr/share/man/man3/tmpfile.3
+#usr/share/man/man3/tmpnam.3
+#usr/share/man/man3/tmpnam_r.3
+#usr/share/man/man3/toascii.3
+#usr/share/man/man3/tolower.3
+#usr/share/man/man3/toupper.3
+#usr/share/man/man3/towctrans.3
+#usr/share/man/man3/towlower.3
+#usr/share/man/man3/towupper.3
+#usr/share/man/man3/trunc.3
+#usr/share/man/man3/truncf.3
+#usr/share/man/man3/truncl.3
+#usr/share/man/man3/tsearch.3
+#usr/share/man/man3/ttyname.3
+#usr/share/man/man3/ttyname_r.3
+#usr/share/man/man3/ttyslot.3
+#usr/share/man/man3/twalk.3
+#usr/share/man/man3/tzset.3
+#usr/share/man/man3/ualarm.3
+#usr/share/man/man3/ulckpwdf.3
+#usr/share/man/man3/ulimit.3
+#usr/share/man/man3/undocumented.3
+#usr/share/man/man3/ungetc.3
+#usr/share/man/man3/ungetwc.3
+#usr/share/man/man3/unlocked_stdio.3
+#usr/share/man/man3/unlockpt.3
+#usr/share/man/man3/unsetenv.3
+#usr/share/man/man3/updwtmp.3
+#usr/share/man/man3/usleep.3
+#usr/share/man/man3/utmpname.3
+#usr/share/man/man3/va_arg.3
+#usr/share/man/man3/va_copy.3
+#usr/share/man/man3/va_end.3
+#usr/share/man/man3/va_start.3
+#usr/share/man/man3/valloc.3
+#usr/share/man/man3/vasprintf.3
+#usr/share/man/man3/vdprintf.3
+#usr/share/man/man3/verr.3
+#usr/share/man/man3/verrx.3
+#usr/share/man/man3/versionsort.3
+#usr/share/man/man3/vfprintf.3
+#usr/share/man/man3/vfscanf.3
+#usr/share/man/man3/vfwprintf.3
+#usr/share/man/man3/vprintf.3
+#usr/share/man/man3/vscanf.3
+#usr/share/man/man3/vsnprintf.3
+#usr/share/man/man3/vsprintf.3
+#usr/share/man/man3/vsscanf.3
+#usr/share/man/man3/vswprintf.3
+#usr/share/man/man3/vsyslog.3
+#usr/share/man/man3/vwarn.3
+#usr/share/man/man3/vwarnx.3
+#usr/share/man/man3/vwprintf.3
+#usr/share/man/man3/warn.3
+#usr/share/man/man3/warnx.3
+#usr/share/man/man3/wcpcpy.3
+#usr/share/man/man3/wcpncpy.3
+#usr/share/man/man3/wcrtomb.3
+#usr/share/man/man3/wcscasecmp.3
+#usr/share/man/man3/wcscat.3
+#usr/share/man/man3/wcschr.3
+#usr/share/man/man3/wcscmp.3
+#usr/share/man/man3/wcscpy.3
+#usr/share/man/man3/wcscspn.3
+#usr/share/man/man3/wcsdup.3
+#usr/share/man/man3/wcslen.3
+#usr/share/man/man3/wcsncasecmp.3
+#usr/share/man/man3/wcsncat.3
+#usr/share/man/man3/wcsncmp.3
+#usr/share/man/man3/wcsncpy.3
+#usr/share/man/man3/wcsnlen.3
+#usr/share/man/man3/wcsnrtombs.3
+#usr/share/man/man3/wcspbrk.3
+#usr/share/man/man3/wcsrchr.3
+#usr/share/man/man3/wcsrtombs.3
+#usr/share/man/man3/wcsspn.3
+#usr/share/man/man3/wcsstr.3
+#usr/share/man/man3/wcstoimax.3
+#usr/share/man/man3/wcstok.3
+#usr/share/man/man3/wcstombs.3
+#usr/share/man/man3/wcstoumax.3
+#usr/share/man/man3/wcswidth.3
+#usr/share/man/man3/wctob.3
+#usr/share/man/man3/wctomb.3
+#usr/share/man/man3/wctrans.3
+#usr/share/man/man3/wctype.3
+#usr/share/man/man3/wcwidth.3
+#usr/share/man/man3/wmemchr.3
+#usr/share/man/man3/wmemcmp.3
+#usr/share/man/man3/wmemcpy.3
+#usr/share/man/man3/wmemmove.3
+#usr/share/man/man3/wmempcpy.3
+#usr/share/man/man3/wmemset.3
+#usr/share/man/man3/wordexp.3
+#usr/share/man/man3/wordfree.3
+#usr/share/man/man3/wprintf.3
+#usr/share/man/man3/xcrypt.3
+#usr/share/man/man3/xdecrypt.3
+#usr/share/man/man3/xdr.3
+#usr/share/man/man3/xdr_accepted_reply.3
+#usr/share/man/man3/xdr_array.3
+#usr/share/man/man3/xdr_authunix_parms.3
+#usr/share/man/man3/xdr_bool.3
+#usr/share/man/man3/xdr_bytes.3
+#usr/share/man/man3/xdr_callhdr.3
+#usr/share/man/man3/xdr_callmsg.3
+#usr/share/man/man3/xdr_char.3
+#usr/share/man/man3/xdr_destroy.3
+#usr/share/man/man3/xdr_double.3
+#usr/share/man/man3/xdr_enum.3
+#usr/share/man/man3/xdr_float.3
+#usr/share/man/man3/xdr_free.3
+#usr/share/man/man3/xdr_getpos.3
+#usr/share/man/man3/xdr_inline.3
+#usr/share/man/man3/xdr_int.3
+#usr/share/man/man3/xdr_long.3
+#usr/share/man/man3/xdr_opaque.3
+#usr/share/man/man3/xdr_opaque_auth.3
+#usr/share/man/man3/xdr_pmap.3
+#usr/share/man/man3/xdr_pmaplist.3
+#usr/share/man/man3/xdr_pointer.3
+#usr/share/man/man3/xdr_reference.3
+#usr/share/man/man3/xdr_rejected_reply.3
+#usr/share/man/man3/xdr_replymsg.3
+#usr/share/man/man3/xdr_setpos.3
+#usr/share/man/man3/xdr_short.3
+#usr/share/man/man3/xdr_string.3
+#usr/share/man/man3/xdr_u_char.3
+#usr/share/man/man3/xdr_u_int.3
+#usr/share/man/man3/xdr_u_long.3
+#usr/share/man/man3/xdr_u_short.3
+#usr/share/man/man3/xdr_union.3
+#usr/share/man/man3/xdr_vector.3
+#usr/share/man/man3/xdr_void.3
+#usr/share/man/man3/xdr_wrapstring.3
+#usr/share/man/man3/xdrmem_create.3
+#usr/share/man/man3/xdrrec_create.3
+#usr/share/man/man3/xdrrec_endofrecord.3
+#usr/share/man/man3/xdrrec_eof.3
+#usr/share/man/man3/xdrrec_skiprecord.3
+#usr/share/man/man3/xdrstdio_create.3
+#usr/share/man/man3/xencrypt.3
+#usr/share/man/man3/xprt_register.3
+#usr/share/man/man3/xprt_unregister.3
+#usr/share/man/man3/y0.3
+#usr/share/man/man3/y0f.3
+#usr/share/man/man3/y0l.3
+#usr/share/man/man3/y1.3
+#usr/share/man/man3/y1f.3
+#usr/share/man/man3/y1l.3
+#usr/share/man/man3/yn.3
+#usr/share/man/man3/ynf.3
+#usr/share/man/man3/ynl.3
+#usr/share/man/man3p
+#usr/share/man/man3p/FD_CLR.3p
+#usr/share/man/man3p/FD_ISSET.3p
+#usr/share/man/man3p/FD_SET.3p
+#usr/share/man/man3p/FD_ZERO.3p
+#usr/share/man/man3p/_Exit.3p
+#usr/share/man/man3p/_exit.3p
+#usr/share/man/man3p/_longjmp.3p
+#usr/share/man/man3p/_setjmp.3p
+#usr/share/man/man3p/_tolower.3p
+#usr/share/man/man3p/_toupper.3p
+#usr/share/man/man3p/a64l.3p
+#usr/share/man/man3p/abort.3p
+#usr/share/man/man3p/abs.3p
+#usr/share/man/man3p/accept.3p
+#usr/share/man/man3p/access.3p
+#usr/share/man/man3p/acos.3p
+#usr/share/man/man3p/acosf.3p
+#usr/share/man/man3p/acosh.3p
+#usr/share/man/man3p/acoshf.3p
+#usr/share/man/man3p/acoshl.3p
+#usr/share/man/man3p/acosl.3p
+#usr/share/man/man3p/aio_cancel.3p
+#usr/share/man/man3p/aio_error.3p
+#usr/share/man/man3p/aio_fsync.3p
+#usr/share/man/man3p/aio_read.3p
+#usr/share/man/man3p/aio_return.3p
+#usr/share/man/man3p/aio_suspend.3p
+#usr/share/man/man3p/aio_write.3p
+#usr/share/man/man3p/alarm.3p
+#usr/share/man/man3p/asctime.3p
+#usr/share/man/man3p/asctime_r.3p
+#usr/share/man/man3p/asin.3p
+#usr/share/man/man3p/asinf.3p
+#usr/share/man/man3p/asinh.3p
+#usr/share/man/man3p/asinhf.3p
+#usr/share/man/man3p/asinhl.3p
+#usr/share/man/man3p/asinl.3p
+#usr/share/man/man3p/assert.3p
+#usr/share/man/man3p/atan.3p
+#usr/share/man/man3p/atan2.3p
+#usr/share/man/man3p/atan2f.3p
+#usr/share/man/man3p/atan2l.3p
+#usr/share/man/man3p/atanf.3p
+#usr/share/man/man3p/atanh.3p
+#usr/share/man/man3p/atanhf.3p
+#usr/share/man/man3p/atanhl.3p
+#usr/share/man/man3p/atanl.3p
+#usr/share/man/man3p/atexit.3p
+#usr/share/man/man3p/atof.3p
+#usr/share/man/man3p/atoi.3p
+#usr/share/man/man3p/atol.3p
+#usr/share/man/man3p/atoll.3p
+#usr/share/man/man3p/basename.3p
+#usr/share/man/man3p/bcmp.3p
+#usr/share/man/man3p/bcopy.3p
+#usr/share/man/man3p/bind.3p
+#usr/share/man/man3p/bsd_signal.3p
+#usr/share/man/man3p/bsearch.3p
+#usr/share/man/man3p/btowc.3p
+#usr/share/man/man3p/bzero.3p
+#usr/share/man/man3p/cabs.3p
+#usr/share/man/man3p/cabsf.3p
+#usr/share/man/man3p/cabsl.3p
+#usr/share/man/man3p/cacos.3p
+#usr/share/man/man3p/cacosf.3p
+#usr/share/man/man3p/cacosh.3p
+#usr/share/man/man3p/cacoshf.3p
+#usr/share/man/man3p/cacoshl.3p
+#usr/share/man/man3p/cacosl.3p
+#usr/share/man/man3p/calloc.3p
+#usr/share/man/man3p/carg.3p
+#usr/share/man/man3p/cargf.3p
+#usr/share/man/man3p/cargl.3p
+#usr/share/man/man3p/casin.3p
+#usr/share/man/man3p/casinf.3p
+#usr/share/man/man3p/casinh.3p
+#usr/share/man/man3p/casinhf.3p
+#usr/share/man/man3p/casinhl.3p
+#usr/share/man/man3p/casinl.3p
+#usr/share/man/man3p/catan.3p
+#usr/share/man/man3p/catanf.3p
+#usr/share/man/man3p/catanh.3p
+#usr/share/man/man3p/catanhf.3p
+#usr/share/man/man3p/catanhl.3p
+#usr/share/man/man3p/catanl.3p
+#usr/share/man/man3p/catclose.3p
+#usr/share/man/man3p/catgets.3p
+#usr/share/man/man3p/catopen.3p
+#usr/share/man/man3p/cbrt.3p
+#usr/share/man/man3p/cbrtf.3p
+#usr/share/man/man3p/cbrtl.3p
+#usr/share/man/man3p/ccos.3p
+#usr/share/man/man3p/ccosf.3p
+#usr/share/man/man3p/ccosh.3p
+#usr/share/man/man3p/ccoshf.3p
+#usr/share/man/man3p/ccoshl.3p
+#usr/share/man/man3p/ccosl.3p
+#usr/share/man/man3p/ceil.3p
+#usr/share/man/man3p/ceilf.3p
+#usr/share/man/man3p/ceill.3p
+#usr/share/man/man3p/cexp.3p
+#usr/share/man/man3p/cexpf.3p
+#usr/share/man/man3p/cexpl.3p
+#usr/share/man/man3p/cfgetispeed.3p
+#usr/share/man/man3p/cfgetospeed.3p
+#usr/share/man/man3p/cfsetispeed.3p
+#usr/share/man/man3p/cfsetospeed.3p
+#usr/share/man/man3p/chdir.3p
+#usr/share/man/man3p/chmod.3p
+#usr/share/man/man3p/chown.3p
+#usr/share/man/man3p/cimag.3p
+#usr/share/man/man3p/cimagf.3p
+#usr/share/man/man3p/cimagl.3p
+#usr/share/man/man3p/clearerr.3p
+#usr/share/man/man3p/clock.3p
+#usr/share/man/man3p/clock_getcpuclockid.3p
+#usr/share/man/man3p/clock_getres.3p
+#usr/share/man/man3p/clock_gettime.3p
+#usr/share/man/man3p/clock_nanosleep.3p
+#usr/share/man/man3p/clock_settime.3p
+#usr/share/man/man3p/clog.3p
+#usr/share/man/man3p/clogf.3p
+#usr/share/man/man3p/clogl.3p
+#usr/share/man/man3p/close.3p
+#usr/share/man/man3p/closedir.3p
+#usr/share/man/man3p/closelog.3p
+#usr/share/man/man3p/confstr.3p
+#usr/share/man/man3p/conj.3p
+#usr/share/man/man3p/conjf.3p
+#usr/share/man/man3p/conjl.3p
+#usr/share/man/man3p/connect.3p
+#usr/share/man/man3p/copysign.3p
+#usr/share/man/man3p/copysignf.3p
+#usr/share/man/man3p/copysignl.3p
+#usr/share/man/man3p/cos.3p
+#usr/share/man/man3p/cosf.3p
+#usr/share/man/man3p/cosh.3p
+#usr/share/man/man3p/coshf.3p
+#usr/share/man/man3p/coshl.3p
+#usr/share/man/man3p/cosl.3p
+#usr/share/man/man3p/cpow.3p
+#usr/share/man/man3p/cpowf.3p
+#usr/share/man/man3p/cpowl.3p
+#usr/share/man/man3p/cproj.3p
+#usr/share/man/man3p/cprojf.3p
+#usr/share/man/man3p/cprojl.3p
+#usr/share/man/man3p/creal.3p
+#usr/share/man/man3p/crealf.3p
+#usr/share/man/man3p/creall.3p
+#usr/share/man/man3p/creat.3p
+#usr/share/man/man3p/crypt.3p
+#usr/share/man/man3p/csin.3p
+#usr/share/man/man3p/csinf.3p
+#usr/share/man/man3p/csinh.3p
+#usr/share/man/man3p/csinhf.3p
+#usr/share/man/man3p/csinhl.3p
+#usr/share/man/man3p/csinl.3p
+#usr/share/man/man3p/csqrt.3p
+#usr/share/man/man3p/csqrtf.3p
+#usr/share/man/man3p/csqrtl.3p
+#usr/share/man/man3p/ctan.3p
+#usr/share/man/man3p/ctanf.3p
+#usr/share/man/man3p/ctanh.3p
+#usr/share/man/man3p/ctanhf.3p
+#usr/share/man/man3p/ctanhl.3p
+#usr/share/man/man3p/ctanl.3p
+#usr/share/man/man3p/ctermid.3p
+#usr/share/man/man3p/ctime.3p
+#usr/share/man/man3p/ctime_r.3p
+#usr/share/man/man3p/daylight.3p
+#usr/share/man/man3p/dbm_clearerr.3p
+#usr/share/man/man3p/dbm_close.3p
+#usr/share/man/man3p/dbm_delete.3p
+#usr/share/man/man3p/dbm_error.3p
+#usr/share/man/man3p/dbm_fetch.3p
+#usr/share/man/man3p/dbm_firstkey.3p
+#usr/share/man/man3p/dbm_nextkey.3p
+#usr/share/man/man3p/dbm_open.3p
+#usr/share/man/man3p/dbm_store.3p
+#usr/share/man/man3p/difftime.3p
+#usr/share/man/man3p/dirname.3p
+#usr/share/man/man3p/div.3p
+#usr/share/man/man3p/dlclose.3p
+#usr/share/man/man3p/dlerror.3p
+#usr/share/man/man3p/dlopen.3p
+#usr/share/man/man3p/dlsym.3p
+#usr/share/man/man3p/drand48.3p
+#usr/share/man/man3p/dup.3p
+#usr/share/man/man3p/dup2.3p
+#usr/share/man/man3p/ecvt.3p
+#usr/share/man/man3p/encrypt.3p
+#usr/share/man/man3p/endgrent.3p
+#usr/share/man/man3p/endhostent.3p
+#usr/share/man/man3p/endnetent.3p
+#usr/share/man/man3p/endprotoent.3p
+#usr/share/man/man3p/endpwent.3p
+#usr/share/man/man3p/endservent.3p
+#usr/share/man/man3p/endutxent.3p
+#usr/share/man/man3p/environ.3p
+#usr/share/man/man3p/erand48.3p
+#usr/share/man/man3p/erf.3p
+#usr/share/man/man3p/erfc.3p
+#usr/share/man/man3p/erfcf.3p
+#usr/share/man/man3p/erfcl.3p
+#usr/share/man/man3p/erff.3p
+#usr/share/man/man3p/erfl.3p
+#usr/share/man/man3p/errno.3p
+#usr/share/man/man3p/exec.3p
+#usr/share/man/man3p/execl.3p
+#usr/share/man/man3p/execle.3p
+#usr/share/man/man3p/execlp.3p
+#usr/share/man/man3p/execv.3p
+#usr/share/man/man3p/execve.3p
+#usr/share/man/man3p/execvp.3p
+#usr/share/man/man3p/exit.3p
+#usr/share/man/man3p/exp.3p
+#usr/share/man/man3p/exp2.3p
+#usr/share/man/man3p/exp2f.3p
+#usr/share/man/man3p/exp2l.3p
+#usr/share/man/man3p/expf.3p
+#usr/share/man/man3p/expl.3p
+#usr/share/man/man3p/expm1.3p
+#usr/share/man/man3p/expm1f.3p
+#usr/share/man/man3p/expm1l.3p
+#usr/share/man/man3p/fabs.3p
+#usr/share/man/man3p/fabsf.3p
+#usr/share/man/man3p/fabsl.3p
+#usr/share/man/man3p/fattach.3p
+#usr/share/man/man3p/fchdir.3p
+#usr/share/man/man3p/fchmod.3p
+#usr/share/man/man3p/fchown.3p
+#usr/share/man/man3p/fclose.3p
+#usr/share/man/man3p/fcntl.3p
+#usr/share/man/man3p/fcvt.3p
+#usr/share/man/man3p/fdatasync.3p
+#usr/share/man/man3p/fdetach.3p
+#usr/share/man/man3p/fdim.3p
+#usr/share/man/man3p/fdimf.3p
+#usr/share/man/man3p/fdiml.3p
+#usr/share/man/man3p/fdopen.3p
+#usr/share/man/man3p/feclearexcept.3p
+#usr/share/man/man3p/fegetenv.3p
+#usr/share/man/man3p/fegetexceptflag.3p
+#usr/share/man/man3p/fegetround.3p
+#usr/share/man/man3p/feholdexcept.3p
+#usr/share/man/man3p/feof.3p
+#usr/share/man/man3p/feraiseexcept.3p
+#usr/share/man/man3p/ferror.3p
+#usr/share/man/man3p/fesetenv.3p
+#usr/share/man/man3p/fesetexceptflag.3p
+#usr/share/man/man3p/fesetround.3p
+#usr/share/man/man3p/fetestexcept.3p
+#usr/share/man/man3p/feupdateenv.3p
+#usr/share/man/man3p/fflush.3p
+#usr/share/man/man3p/ffs.3p
+#usr/share/man/man3p/fgetc.3p
+#usr/share/man/man3p/fgetpos.3p
+#usr/share/man/man3p/fgets.3p
+#usr/share/man/man3p/fgetwc.3p
+#usr/share/man/man3p/fgetws.3p
+#usr/share/man/man3p/fileno.3p
+#usr/share/man/man3p/flockfile.3p
+#usr/share/man/man3p/floor.3p
+#usr/share/man/man3p/floorf.3p
+#usr/share/man/man3p/floorl.3p
+#usr/share/man/man3p/fma.3p
+#usr/share/man/man3p/fmaf.3p
+#usr/share/man/man3p/fmal.3p
+#usr/share/man/man3p/fmax.3p
+#usr/share/man/man3p/fmaxf.3p
+#usr/share/man/man3p/fmaxl.3p
+#usr/share/man/man3p/fmin.3p
+#usr/share/man/man3p/fminf.3p
+#usr/share/man/man3p/fminl.3p
+#usr/share/man/man3p/fmod.3p
+#usr/share/man/man3p/fmodf.3p
+#usr/share/man/man3p/fmodl.3p
+#usr/share/man/man3p/fmtmsg.3p
+#usr/share/man/man3p/fnmatch.3p
+#usr/share/man/man3p/fopen.3p
+#usr/share/man/man3p/fork.3p
+#usr/share/man/man3p/fpathconf.3p
+#usr/share/man/man3p/fpclassify.3p
+#usr/share/man/man3p/fprintf.3p
+#usr/share/man/man3p/fputc.3p
+#usr/share/man/man3p/fputs.3p
+#usr/share/man/man3p/fputwc.3p
+#usr/share/man/man3p/fputws.3p
+#usr/share/man/man3p/fread.3p
+#usr/share/man/man3p/free.3p
+#usr/share/man/man3p/freeaddrinfo.3p
+#usr/share/man/man3p/freopen.3p
+#usr/share/man/man3p/frexp.3p
+#usr/share/man/man3p/frexpf.3p
+#usr/share/man/man3p/frexpl.3p
+#usr/share/man/man3p/fscanf.3p
+#usr/share/man/man3p/fseek.3p
+#usr/share/man/man3p/fseeko.3p
+#usr/share/man/man3p/fsetpos.3p
+#usr/share/man/man3p/fstat.3p
+#usr/share/man/man3p/fstatvfs.3p
+#usr/share/man/man3p/fsync.3p
+#usr/share/man/man3p/ftell.3p
+#usr/share/man/man3p/ftello.3p
+#usr/share/man/man3p/ftime.3p
+#usr/share/man/man3p/ftok.3p
+#usr/share/man/man3p/ftruncate.3p
+#usr/share/man/man3p/ftrylockfile.3p
+#usr/share/man/man3p/ftw.3p
+#usr/share/man/man3p/funlockfile.3p
+#usr/share/man/man3p/fwide.3p
+#usr/share/man/man3p/fwprintf.3p
+#usr/share/man/man3p/fwrite.3p
+#usr/share/man/man3p/fwscanf.3p
+#usr/share/man/man3p/gai_strerror.3p
+#usr/share/man/man3p/gcvt.3p
+#usr/share/man/man3p/getaddrinfo.3p
+#usr/share/man/man3p/getc.3p
+#usr/share/man/man3p/getc_unlocked.3p
+#usr/share/man/man3p/getchar.3p
+#usr/share/man/man3p/getchar_unlocked.3p
+#usr/share/man/man3p/getcontext.3p
+#usr/share/man/man3p/getcwd.3p
+#usr/share/man/man3p/getdate.3p
+#usr/share/man/man3p/getdate_err.3p
+#usr/share/man/man3p/getegid.3p
+#usr/share/man/man3p/getenv.3p
+#usr/share/man/man3p/geteuid.3p
+#usr/share/man/man3p/getgid.3p
+#usr/share/man/man3p/getgrent.3p
+#usr/share/man/man3p/getgrgid.3p
+#usr/share/man/man3p/getgrgid_r.3p
+#usr/share/man/man3p/getgrnam.3p
+#usr/share/man/man3p/getgrnam_r.3p
+#usr/share/man/man3p/getgroups.3p
+#usr/share/man/man3p/gethostbyaddr.3p
+#usr/share/man/man3p/gethostbyname.3p
+#usr/share/man/man3p/gethostent.3p
+#usr/share/man/man3p/gethostid.3p
+#usr/share/man/man3p/gethostname.3p
+#usr/share/man/man3p/getitimer.3p
+#usr/share/man/man3p/getlogin.3p
+#usr/share/man/man3p/getlogin_r.3p
+#usr/share/man/man3p/getmsg.3p
+#usr/share/man/man3p/getnameinfo.3p
+#usr/share/man/man3p/getnetbyaddr.3p
+#usr/share/man/man3p/getnetbyname.3p
+#usr/share/man/man3p/getnetent.3p
+#usr/share/man/man3p/getopt.3p
+#usr/share/man/man3p/getpeername.3p
+#usr/share/man/man3p/getpgid.3p
+#usr/share/man/man3p/getpgrp.3p
+#usr/share/man/man3p/getpid.3p
+#usr/share/man/man3p/getpmsg.3p
+#usr/share/man/man3p/getppid.3p
+#usr/share/man/man3p/getpriority.3p
+#usr/share/man/man3p/getprotobyname.3p
+#usr/share/man/man3p/getprotobynumber.3p
+#usr/share/man/man3p/getprotoent.3p
+#usr/share/man/man3p/getpwent.3p
+#usr/share/man/man3p/getpwnam.3p
+#usr/share/man/man3p/getpwnam_r.3p
+#usr/share/man/man3p/getpwuid.3p
+#usr/share/man/man3p/getpwuid_r.3p
+#usr/share/man/man3p/getrlimit.3p
+#usr/share/man/man3p/getrusage.3p
+#usr/share/man/man3p/gets.3p
+#usr/share/man/man3p/getservbyname.3p
+#usr/share/man/man3p/getservbyport.3p
+#usr/share/man/man3p/getservent.3p
+#usr/share/man/man3p/getsid.3p
+#usr/share/man/man3p/getsockname.3p
+#usr/share/man/man3p/getsockopt.3p
+#usr/share/man/man3p/getsubopt.3p
+#usr/share/man/man3p/gettimeofday.3p
+#usr/share/man/man3p/getuid.3p
+#usr/share/man/man3p/getutxent.3p
+#usr/share/man/man3p/getutxid.3p
+#usr/share/man/man3p/getutxline.3p
+#usr/share/man/man3p/getwc.3p
+#usr/share/man/man3p/getwchar.3p
+#usr/share/man/man3p/getwd.3p
+#usr/share/man/man3p/glob.3p
+#usr/share/man/man3p/globfree.3p
+#usr/share/man/man3p/gmtime.3p
+#usr/share/man/man3p/gmtime_r.3p
+#usr/share/man/man3p/grantpt.3p
+#usr/share/man/man3p/h_errno.3p
+#usr/share/man/man3p/hcreate.3p
+#usr/share/man/man3p/hdestroy.3p
+#usr/share/man/man3p/hsearch.3p
+#usr/share/man/man3p/htonl.3p
+#usr/share/man/man3p/htons.3p
+#usr/share/man/man3p/hypot.3p
+#usr/share/man/man3p/hypotf.3p
+#usr/share/man/man3p/hypotl.3p
+#usr/share/man/man3p/iconv.3p
+#usr/share/man/man3p/iconv_close.3p
+#usr/share/man/man3p/iconv_open.3p
+#usr/share/man/man3p/if_freenameindex.3p
+#usr/share/man/man3p/if_indextoname.3p
+#usr/share/man/man3p/if_nameindex.3p
+#usr/share/man/man3p/if_nametoindex.3p
+#usr/share/man/man3p/ilogb.3p
+#usr/share/man/man3p/ilogbf.3p
+#usr/share/man/man3p/ilogbl.3p
+#usr/share/man/man3p/imaxabs.3p
+#usr/share/man/man3p/imaxdiv.3p
+#usr/share/man/man3p/index.3p
+#usr/share/man/man3p/inet_addr.3p
+#usr/share/man/man3p/inet_ntoa.3p
+#usr/share/man/man3p/inet_ntop.3p
+#usr/share/man/man3p/inet_pton.3p
+#usr/share/man/man3p/initstate.3p
+#usr/share/man/man3p/insque.3p
+#usr/share/man/man3p/ioctl.3p
+#usr/share/man/man3p/isalnum.3p
+#usr/share/man/man3p/isalpha.3p
+#usr/share/man/man3p/isascii.3p
+#usr/share/man/man3p/isastream.3p
+#usr/share/man/man3p/isatty.3p
+#usr/share/man/man3p/isblank.3p
+#usr/share/man/man3p/iscntrl.3p
+#usr/share/man/man3p/isdigit.3p
+#usr/share/man/man3p/isfinite.3p
+#usr/share/man/man3p/isgraph.3p
+#usr/share/man/man3p/isgreater.3p
+#usr/share/man/man3p/isgreaterequal.3p
+#usr/share/man/man3p/isinf.3p
+#usr/share/man/man3p/isless.3p
+#usr/share/man/man3p/islessequal.3p
+#usr/share/man/man3p/islessgreater.3p
+#usr/share/man/man3p/islower.3p
+#usr/share/man/man3p/isnan.3p
+#usr/share/man/man3p/isnormal.3p
+#usr/share/man/man3p/isprint.3p
+#usr/share/man/man3p/ispunct.3p
+#usr/share/man/man3p/isspace.3p
+#usr/share/man/man3p/isunordered.3p
+#usr/share/man/man3p/isupper.3p
+#usr/share/man/man3p/iswalnum.3p
+#usr/share/man/man3p/iswalpha.3p
+#usr/share/man/man3p/iswblank.3p
+#usr/share/man/man3p/iswcntrl.3p
+#usr/share/man/man3p/iswctype.3p
+#usr/share/man/man3p/iswdigit.3p
+#usr/share/man/man3p/iswgraph.3p
+#usr/share/man/man3p/iswlower.3p
+#usr/share/man/man3p/iswprint.3p
+#usr/share/man/man3p/iswpunct.3p
+#usr/share/man/man3p/iswspace.3p
+#usr/share/man/man3p/iswupper.3p
+#usr/share/man/man3p/iswxdigit.3p
+#usr/share/man/man3p/isxdigit.3p
+#usr/share/man/man3p/j0.3p
+#usr/share/man/man3p/j1.3p
+#usr/share/man/man3p/jn.3p
+#usr/share/man/man3p/jrand48.3p
+#usr/share/man/man3p/kill.3p
+#usr/share/man/man3p/killpg.3p
+#usr/share/man/man3p/l64a.3p
+#usr/share/man/man3p/labs.3p
+#usr/share/man/man3p/lchown.3p
+#usr/share/man/man3p/lcong48.3p
+#usr/share/man/man3p/ldexp.3p
+#usr/share/man/man3p/ldexpf.3p
+#usr/share/man/man3p/ldexpl.3p
+#usr/share/man/man3p/ldiv.3p
+#usr/share/man/man3p/lfind.3p
+#usr/share/man/man3p/lgamma.3p
+#usr/share/man/man3p/lgammaf.3p
+#usr/share/man/man3p/lgammal.3p
+#usr/share/man/man3p/link.3p
+#usr/share/man/man3p/lio_listio.3p
+#usr/share/man/man3p/listen.3p
+#usr/share/man/man3p/llabs.3p
+#usr/share/man/man3p/lldiv.3p
+#usr/share/man/man3p/llrint.3p
+#usr/share/man/man3p/llrintf.3p
+#usr/share/man/man3p/llrintl.3p
+#usr/share/man/man3p/llround.3p
+#usr/share/man/man3p/llroundf.3p
+#usr/share/man/man3p/llroundl.3p
+#usr/share/man/man3p/localeconv.3p
+#usr/share/man/man3p/localtime.3p
+#usr/share/man/man3p/localtime_r.3p
+#usr/share/man/man3p/lockf.3p
+#usr/share/man/man3p/log.3p
+#usr/share/man/man3p/log10.3p
+#usr/share/man/man3p/log10f.3p
+#usr/share/man/man3p/log10l.3p
+#usr/share/man/man3p/log1p.3p
+#usr/share/man/man3p/log1pf.3p
+#usr/share/man/man3p/log1pl.3p
+#usr/share/man/man3p/log2.3p
+#usr/share/man/man3p/log2f.3p
+#usr/share/man/man3p/log2l.3p
+#usr/share/man/man3p/logb.3p
+#usr/share/man/man3p/logbf.3p
+#usr/share/man/man3p/logbl.3p
+#usr/share/man/man3p/logf.3p
+#usr/share/man/man3p/logl.3p
+#usr/share/man/man3p/longjmp.3p
+#usr/share/man/man3p/lrand48.3p
+#usr/share/man/man3p/lrint.3p
+#usr/share/man/man3p/lrintf.3p
+#usr/share/man/man3p/lrintl.3p
+#usr/share/man/man3p/lround.3p
+#usr/share/man/man3p/lroundf.3p
+#usr/share/man/man3p/lroundl.3p
+#usr/share/man/man3p/lsearch.3p
+#usr/share/man/man3p/lseek.3p
+#usr/share/man/man3p/lstat.3p
+#usr/share/man/man3p/makecontext.3p
+#usr/share/man/man3p/malloc.3p
+#usr/share/man/man3p/mblen.3p
+#usr/share/man/man3p/mbrlen.3p
+#usr/share/man/man3p/mbrtowc.3p
+#usr/share/man/man3p/mbsinit.3p
+#usr/share/man/man3p/mbsrtowcs.3p
+#usr/share/man/man3p/mbstowcs.3p
+#usr/share/man/man3p/mbtowc.3p
+#usr/share/man/man3p/memccpy.3p
+#usr/share/man/man3p/memchr.3p
+#usr/share/man/man3p/memcmp.3p
+#usr/share/man/man3p/memcpy.3p
+#usr/share/man/man3p/memmove.3p
+#usr/share/man/man3p/memset.3p
+#usr/share/man/man3p/mkdir.3p
+#usr/share/man/man3p/mkfifo.3p
+#usr/share/man/man3p/mknod.3p
+#usr/share/man/man3p/mkstemp.3p
+#usr/share/man/man3p/mktemp.3p
+#usr/share/man/man3p/mktime.3p
+#usr/share/man/man3p/mlock.3p
+#usr/share/man/man3p/mlockall.3p
+#usr/share/man/man3p/mmap.3p
+#usr/share/man/man3p/modf.3p
+#usr/share/man/man3p/modff.3p
+#usr/share/man/man3p/modfl.3p
+#usr/share/man/man3p/mprotect.3p
+#usr/share/man/man3p/mq_close.3p
+#usr/share/man/man3p/mq_getattr.3p
+#usr/share/man/man3p/mq_notify.3p
+#usr/share/man/man3p/mq_open.3p
+#usr/share/man/man3p/mq_receive.3p
+#usr/share/man/man3p/mq_send.3p
+#usr/share/man/man3p/mq_setattr.3p
+#usr/share/man/man3p/mq_timedreceive.3p
+#usr/share/man/man3p/mq_timedsend.3p
+#usr/share/man/man3p/mq_unlink.3p
+#usr/share/man/man3p/mrand48.3p
+#usr/share/man/man3p/msgctl.3p
+#usr/share/man/man3p/msgget.3p
+#usr/share/man/man3p/msgrcv.3p
+#usr/share/man/man3p/msgsnd.3p
+#usr/share/man/man3p/msync.3p
+#usr/share/man/man3p/munlock.3p
+#usr/share/man/man3p/munlockall.3p
+#usr/share/man/man3p/munmap.3p
+#usr/share/man/man3p/nan.3p
+#usr/share/man/man3p/nanf.3p
+#usr/share/man/man3p/nanl.3p
+#usr/share/man/man3p/nanosleep.3p
+#usr/share/man/man3p/nearbyint.3p
+#usr/share/man/man3p/nearbyintf.3p
+#usr/share/man/man3p/nearbyintl.3p
+#usr/share/man/man3p/nextafter.3p
+#usr/share/man/man3p/nextafterf.3p
+#usr/share/man/man3p/nextafterl.3p
+#usr/share/man/man3p/nexttoward.3p
+#usr/share/man/man3p/nexttowardf.3p
+#usr/share/man/man3p/nexttowardl.3p
+#usr/share/man/man3p/nftw.3p
+#usr/share/man/man3p/nice.3p
+#usr/share/man/man3p/nl_langinfo.3p
+#usr/share/man/man3p/nrand48.3p
+#usr/share/man/man3p/ntohl.3p
+#usr/share/man/man3p/ntohs.3p
+#usr/share/man/man3p/open.3p
+#usr/share/man/man3p/opendir.3p
+#usr/share/man/man3p/openlog.3p
+#usr/share/man/man3p/optarg.3p
+#usr/share/man/man3p/opterr.3p
+#usr/share/man/man3p/optind.3p
+#usr/share/man/man3p/optopt.3p
+#usr/share/man/man3p/pathconf.3p
+#usr/share/man/man3p/pause.3p
+#usr/share/man/man3p/pclose.3p
+#usr/share/man/man3p/perror.3p
+#usr/share/man/man3p/pipe.3p
+#usr/share/man/man3p/poll.3p
+#usr/share/man/man3p/popen.3p
+#usr/share/man/man3p/posix_fadvise.3p
+#usr/share/man/man3p/posix_fallocate.3p
+#usr/share/man/man3p/posix_madvise.3p
+#usr/share/man/man3p/posix_mem_offset.3p
+#usr/share/man/man3p/posix_memalign.3p
+#usr/share/man/man3p/posix_openpt.3p
+#usr/share/man/man3p/posix_spawn.3p
+#usr/share/man/man3p/posix_spawn_file_actions_addclose.3p
+#usr/share/man/man3p/posix_spawn_file_actions_adddup2.3p
+#usr/share/man/man3p/posix_spawn_file_actions_addopen.3p
+#usr/share/man/man3p/posix_spawn_file_actions_destroy.3p
+#usr/share/man/man3p/posix_spawn_file_actions_init.3p
+#usr/share/man/man3p/posix_spawnattr_destroy.3p
+#usr/share/man/man3p/posix_spawnattr_getflags.3p
+#usr/share/man/man3p/posix_spawnattr_getpgroup.3p
+#usr/share/man/man3p/posix_spawnattr_getschedparam.3p
+#usr/share/man/man3p/posix_spawnattr_getschedpolicy.3p
+#usr/share/man/man3p/posix_spawnattr_getsigdefault.3p
+#usr/share/man/man3p/posix_spawnattr_getsigmask.3p
+#usr/share/man/man3p/posix_spawnattr_init.3p
+#usr/share/man/man3p/posix_spawnattr_setflags.3p
+#usr/share/man/man3p/posix_spawnattr_setpgroup.3p
+#usr/share/man/man3p/posix_spawnattr_setschedparam.3p
+#usr/share/man/man3p/posix_spawnattr_setschedpolicy.3p
+#usr/share/man/man3p/posix_spawnattr_setsigdefault.3p
+#usr/share/man/man3p/posix_spawnattr_setsigmask.3p
+#usr/share/man/man3p/posix_spawnp.3p
+#usr/share/man/man3p/posix_trace_attr_destroy.3p
+#usr/share/man/man3p/posix_trace_attr_getclockres.3p
+#usr/share/man/man3p/posix_trace_attr_getcreatetime.3p
+#usr/share/man/man3p/posix_trace_attr_getgenversion.3p
+#usr/share/man/man3p/posix_trace_attr_getinherited.3p
+#usr/share/man/man3p/posix_trace_attr_getlogfullpolicy.3p
+#usr/share/man/man3p/posix_trace_attr_getlogsize.3p
+#usr/share/man/man3p/posix_trace_attr_getmaxdatasize.3p
+#usr/share/man/man3p/posix_trace_attr_getmaxsystemeventsize.3p
+#usr/share/man/man3p/posix_trace_attr_getmaxusereventsize.3p
+#usr/share/man/man3p/posix_trace_attr_getname.3p
+#usr/share/man/man3p/posix_trace_attr_getstreamfullpolicy.3p
+#usr/share/man/man3p/posix_trace_attr_getstreamsize.3p
+#usr/share/man/man3p/posix_trace_attr_init.3p
+#usr/share/man/man3p/posix_trace_attr_setinherited.3p
+#usr/share/man/man3p/posix_trace_attr_setlogfullpolicy.3p
+#usr/share/man/man3p/posix_trace_attr_setlogsize.3p
+#usr/share/man/man3p/posix_trace_attr_setmaxdatasize.3p
+#usr/share/man/man3p/posix_trace_attr_setname.3p
+#usr/share/man/man3p/posix_trace_attr_setstreamfullpolicy.3p
+#usr/share/man/man3p/posix_trace_attr_setstreamsize.3p
+#usr/share/man/man3p/posix_trace_clear.3p
+#usr/share/man/man3p/posix_trace_close.3p
+#usr/share/man/man3p/posix_trace_create.3p
+#usr/share/man/man3p/posix_trace_create_withlog.3p
+#usr/share/man/man3p/posix_trace_event.3p
+#usr/share/man/man3p/posix_trace_eventid_equal.3p
+#usr/share/man/man3p/posix_trace_eventid_get_name.3p
+#usr/share/man/man3p/posix_trace_eventid_open.3p
+#usr/share/man/man3p/posix_trace_eventset_add.3p
+#usr/share/man/man3p/posix_trace_eventset_del.3p
+#usr/share/man/man3p/posix_trace_eventset_empty.3p
+#usr/share/man/man3p/posix_trace_eventset_fill.3p
+#usr/share/man/man3p/posix_trace_eventset_ismember.3p
+#usr/share/man/man3p/posix_trace_eventtypelist_getnext_id.3p
+#usr/share/man/man3p/posix_trace_eventtypelist_rewind.3p
+#usr/share/man/man3p/posix_trace_flush.3p
+#usr/share/man/man3p/posix_trace_get_attr.3p
+#usr/share/man/man3p/posix_trace_get_filter.3p
+#usr/share/man/man3p/posix_trace_get_status.3p
+#usr/share/man/man3p/posix_trace_getnext_event.3p
+#usr/share/man/man3p/posix_trace_open.3p
+#usr/share/man/man3p/posix_trace_rewind.3p
+#usr/share/man/man3p/posix_trace_set_filter.3p
+#usr/share/man/man3p/posix_trace_shutdown.3p
+#usr/share/man/man3p/posix_trace_start.3p
+#usr/share/man/man3p/posix_trace_stop.3p
+#usr/share/man/man3p/posix_trace_timedgetnext_event.3p
+#usr/share/man/man3p/posix_trace_trid_eventid_open.3p
+#usr/share/man/man3p/posix_trace_trygetnext_event.3p
+#usr/share/man/man3p/posix_typed_mem_get_info.3p
+#usr/share/man/man3p/posix_typed_mem_open.3p
+#usr/share/man/man3p/pow.3p
+#usr/share/man/man3p/powf.3p
+#usr/share/man/man3p/powl.3p
+#usr/share/man/man3p/pread.3p
+#usr/share/man/man3p/printf.3p
+#usr/share/man/man3p/pselect.3p
+#usr/share/man/man3p/pthread_atfork.3p
+#usr/share/man/man3p/pthread_attr_destroy.3p
+#usr/share/man/man3p/pthread_attr_getdetachstate.3p
+#usr/share/man/man3p/pthread_attr_getguardsize.3p
+#usr/share/man/man3p/pthread_attr_getinheritsched.3p
+#usr/share/man/man3p/pthread_attr_getschedparam.3p
+#usr/share/man/man3p/pthread_attr_getschedpolicy.3p
+#usr/share/man/man3p/pthread_attr_getscope.3p
+#usr/share/man/man3p/pthread_attr_getstack.3p
+#usr/share/man/man3p/pthread_attr_getstackaddr.3p
+#usr/share/man/man3p/pthread_attr_getstacksize.3p
+#usr/share/man/man3p/pthread_attr_init.3p
+#usr/share/man/man3p/pthread_attr_setdetachstate.3p
+#usr/share/man/man3p/pthread_attr_setguardsize.3p
+#usr/share/man/man3p/pthread_attr_setinheritsched.3p
+#usr/share/man/man3p/pthread_attr_setschedparam.3p
+#usr/share/man/man3p/pthread_attr_setschedpolicy.3p
+#usr/share/man/man3p/pthread_attr_setscope.3p
+#usr/share/man/man3p/pthread_attr_setstack.3p
+#usr/share/man/man3p/pthread_attr_setstackaddr.3p
+#usr/share/man/man3p/pthread_attr_setstacksize.3p
+#usr/share/man/man3p/pthread_barrier_destroy.3p
+#usr/share/man/man3p/pthread_barrier_init.3p
+#usr/share/man/man3p/pthread_barrier_wait.3p
+#usr/share/man/man3p/pthread_barrierattr_destroy.3p
+#usr/share/man/man3p/pthread_barrierattr_getpshared.3p
+#usr/share/man/man3p/pthread_barrierattr_init.3p
+#usr/share/man/man3p/pthread_barrierattr_setpshared.3p
+#usr/share/man/man3p/pthread_cancel.3p
+#usr/share/man/man3p/pthread_cleanup_pop.3p
+#usr/share/man/man3p/pthread_cleanup_push.3p
+#usr/share/man/man3p/pthread_cond_broadcast.3p
+#usr/share/man/man3p/pthread_cond_destroy.3p
+#usr/share/man/man3p/pthread_cond_init.3p
+#usr/share/man/man3p/pthread_cond_signal.3p
+#usr/share/man/man3p/pthread_cond_timedwait.3p
+#usr/share/man/man3p/pthread_cond_wait.3p
+#usr/share/man/man3p/pthread_condattr_destroy.3p
+#usr/share/man/man3p/pthread_condattr_getclock.3p
+#usr/share/man/man3p/pthread_condattr_getpshared.3p
+#usr/share/man/man3p/pthread_condattr_init.3p
+#usr/share/man/man3p/pthread_condattr_setclock.3p
+#usr/share/man/man3p/pthread_condattr_setpshared.3p
+#usr/share/man/man3p/pthread_create.3p
+#usr/share/man/man3p/pthread_detach.3p
+#usr/share/man/man3p/pthread_equal.3p
+#usr/share/man/man3p/pthread_exit.3p
+#usr/share/man/man3p/pthread_getconcurrency.3p
+#usr/share/man/man3p/pthread_getcpuclockid.3p
+#usr/share/man/man3p/pthread_getschedparam.3p
+#usr/share/man/man3p/pthread_getspecific.3p
+#usr/share/man/man3p/pthread_join.3p
+#usr/share/man/man3p/pthread_key_create.3p
+#usr/share/man/man3p/pthread_key_delete.3p
+#usr/share/man/man3p/pthread_kill.3p
+#usr/share/man/man3p/pthread_mutex_destroy.3p
+#usr/share/man/man3p/pthread_mutex_getprioceiling.3p
+#usr/share/man/man3p/pthread_mutex_init.3p
+#usr/share/man/man3p/pthread_mutex_lock.3p
+#usr/share/man/man3p/pthread_mutex_setprioceiling.3p
+#usr/share/man/man3p/pthread_mutex_timedlock.3p
+#usr/share/man/man3p/pthread_mutex_trylock.3p
+#usr/share/man/man3p/pthread_mutex_unlock.3p
+#usr/share/man/man3p/pthread_mutexattr_destroy.3p
+#usr/share/man/man3p/pthread_mutexattr_getprioceiling.3p
+#usr/share/man/man3p/pthread_mutexattr_getprotocol.3p
+#usr/share/man/man3p/pthread_mutexattr_getpshared.3p
+#usr/share/man/man3p/pthread_mutexattr_gettype.3p
+#usr/share/man/man3p/pthread_mutexattr_init.3p
+#usr/share/man/man3p/pthread_mutexattr_setprioceiling.3p
+#usr/share/man/man3p/pthread_mutexattr_setprotocol.3p
+#usr/share/man/man3p/pthread_mutexattr_setpshared.3p
+#usr/share/man/man3p/pthread_mutexattr_settype.3p
+#usr/share/man/man3p/pthread_once.3p
+#usr/share/man/man3p/pthread_rwlock_destroy.3p
+#usr/share/man/man3p/pthread_rwlock_init.3p
+#usr/share/man/man3p/pthread_rwlock_rdlock.3p
+#usr/share/man/man3p/pthread_rwlock_timedrdlock.3p
+#usr/share/man/man3p/pthread_rwlock_timedwrlock.3p
+#usr/share/man/man3p/pthread_rwlock_tryrdlock.3p
+#usr/share/man/man3p/pthread_rwlock_trywrlock.3p
+#usr/share/man/man3p/pthread_rwlock_unlock.3p
+#usr/share/man/man3p/pthread_rwlock_wrlock.3p
+#usr/share/man/man3p/pthread_rwlockattr_destroy.3p
+#usr/share/man/man3p/pthread_rwlockattr_getpshared.3p
+#usr/share/man/man3p/pthread_rwlockattr_init.3p
+#usr/share/man/man3p/pthread_rwlockattr_setpshared.3p
+#usr/share/man/man3p/pthread_self.3p
+#usr/share/man/man3p/pthread_setcancelstate.3p
+#usr/share/man/man3p/pthread_setcanceltype.3p
+#usr/share/man/man3p/pthread_setconcurrency.3p
+#usr/share/man/man3p/pthread_setschedparam.3p
+#usr/share/man/man3p/pthread_setschedprio.3p
+#usr/share/man/man3p/pthread_setspecific.3p
+#usr/share/man/man3p/pthread_sigmask.3p
+#usr/share/man/man3p/pthread_spin_destroy.3p
+#usr/share/man/man3p/pthread_spin_init.3p
+#usr/share/man/man3p/pthread_spin_lock.3p
+#usr/share/man/man3p/pthread_spin_trylock.3p
+#usr/share/man/man3p/pthread_spin_unlock.3p
+#usr/share/man/man3p/pthread_testcancel.3p
+#usr/share/man/man3p/ptsname.3p
+#usr/share/man/man3p/putc.3p
+#usr/share/man/man3p/putc_unlocked.3p
+#usr/share/man/man3p/putchar.3p
+#usr/share/man/man3p/putchar_unlocked.3p
+#usr/share/man/man3p/putenv.3p
+#usr/share/man/man3p/putmsg.3p
+#usr/share/man/man3p/putpmsg.3p
+#usr/share/man/man3p/puts.3p
+#usr/share/man/man3p/pututxline.3p
+#usr/share/man/man3p/putwc.3p
+#usr/share/man/man3p/putwchar.3p
+#usr/share/man/man3p/pwrite.3p
+#usr/share/man/man3p/qsort.3p
+#usr/share/man/man3p/raise.3p
+#usr/share/man/man3p/rand.3p
+#usr/share/man/man3p/rand_r.3p
+#usr/share/man/man3p/random.3p
+#usr/share/man/man3p/read.3p
+#usr/share/man/man3p/readdir.3p
+#usr/share/man/man3p/readdir_r.3p
+#usr/share/man/man3p/readlink.3p
+#usr/share/man/man3p/readv.3p
+#usr/share/man/man3p/realloc.3p
+#usr/share/man/man3p/realpath.3p
+#usr/share/man/man3p/recv.3p
+#usr/share/man/man3p/recvfrom.3p
+#usr/share/man/man3p/recvmsg.3p
+#usr/share/man/man3p/regcomp.3p
+#usr/share/man/man3p/regerror.3p
+#usr/share/man/man3p/regexec.3p
+#usr/share/man/man3p/regfree.3p
+#usr/share/man/man3p/remainder.3p
+#usr/share/man/man3p/remainderf.3p
+#usr/share/man/man3p/remainderl.3p
+#usr/share/man/man3p/remove.3p
+#usr/share/man/man3p/remque.3p
+#usr/share/man/man3p/remquo.3p
+#usr/share/man/man3p/remquof.3p
+#usr/share/man/man3p/remquol.3p
+#usr/share/man/man3p/rename.3p
+#usr/share/man/man3p/rewind.3p
+#usr/share/man/man3p/rewinddir.3p
+#usr/share/man/man3p/rindex.3p
+#usr/share/man/man3p/rint.3p
+#usr/share/man/man3p/rintf.3p
+#usr/share/man/man3p/rintl.3p
+#usr/share/man/man3p/rmdir.3p
+#usr/share/man/man3p/round.3p
+#usr/share/man/man3p/roundf.3p
+#usr/share/man/man3p/roundl.3p
+#usr/share/man/man3p/scalb.3p
+#usr/share/man/man3p/scalbln.3p
+#usr/share/man/man3p/scalblnf.3p
+#usr/share/man/man3p/scalblnl.3p
+#usr/share/man/man3p/scalbn.3p
+#usr/share/man/man3p/scalbnf.3p
+#usr/share/man/man3p/scalbnl.3p
+#usr/share/man/man3p/scanf.3p
+#usr/share/man/man3p/sched_get_priority_max.3p
+#usr/share/man/man3p/sched_get_priority_min.3p
+#usr/share/man/man3p/sched_getparam.3p
+#usr/share/man/man3p/sched_getscheduler.3p
+#usr/share/man/man3p/sched_rr_get_interval.3p
+#usr/share/man/man3p/sched_setparam.3p
+#usr/share/man/man3p/sched_setscheduler.3p
+#usr/share/man/man3p/sched_yield.3p
+#usr/share/man/man3p/seed48.3p
+#usr/share/man/man3p/seekdir.3p
+#usr/share/man/man3p/select.3p
+#usr/share/man/man3p/sem_close.3p
+#usr/share/man/man3p/sem_destroy.3p
+#usr/share/man/man3p/sem_getvalue.3p
+#usr/share/man/man3p/sem_init.3p
+#usr/share/man/man3p/sem_open.3p
+#usr/share/man/man3p/sem_post.3p
+#usr/share/man/man3p/sem_timedwait.3p
+#usr/share/man/man3p/sem_trywait.3p
+#usr/share/man/man3p/sem_unlink.3p
+#usr/share/man/man3p/sem_wait.3p
+#usr/share/man/man3p/semctl.3p
+#usr/share/man/man3p/semget.3p
+#usr/share/man/man3p/semop.3p
+#usr/share/man/man3p/send.3p
+#usr/share/man/man3p/sendmsg.3p
+#usr/share/man/man3p/sendto.3p
+#usr/share/man/man3p/setbuf.3p
+#usr/share/man/man3p/setcontext.3p
+#usr/share/man/man3p/setegid.3p
+#usr/share/man/man3p/setenv.3p
+#usr/share/man/man3p/seteuid.3p
+#usr/share/man/man3p/setgid.3p
+#usr/share/man/man3p/setgrent.3p
+#usr/share/man/man3p/sethostent.3p
+#usr/share/man/man3p/setitimer.3p
+#usr/share/man/man3p/setjmp.3p
+#usr/share/man/man3p/setkey.3p
+#usr/share/man/man3p/setlocale.3p
+#usr/share/man/man3p/setlogmask.3p
+#usr/share/man/man3p/setnetent.3p
+#usr/share/man/man3p/setpgid.3p
+#usr/share/man/man3p/setpgrp.3p
+#usr/share/man/man3p/setpriority.3p
+#usr/share/man/man3p/setprotoent.3p
+#usr/share/man/man3p/setpwent.3p
+#usr/share/man/man3p/setregid.3p
+#usr/share/man/man3p/setreuid.3p
+#usr/share/man/man3p/setrlimit.3p
+#usr/share/man/man3p/setservent.3p
+#usr/share/man/man3p/setsid.3p
+#usr/share/man/man3p/setsockopt.3p
+#usr/share/man/man3p/setstate.3p
+#usr/share/man/man3p/setuid.3p
+#usr/share/man/man3p/setutxent.3p
+#usr/share/man/man3p/setvbuf.3p
+#usr/share/man/man3p/shm_open.3p
+#usr/share/man/man3p/shm_unlink.3p
+#usr/share/man/man3p/shmat.3p
+#usr/share/man/man3p/shmctl.3p
+#usr/share/man/man3p/shmdt.3p
+#usr/share/man/man3p/shmget.3p
+#usr/share/man/man3p/shutdown.3p
+#usr/share/man/man3p/sigaction.3p
+#usr/share/man/man3p/sigaddset.3p
+#usr/share/man/man3p/sigaltstack.3p
+#usr/share/man/man3p/sigdelset.3p
+#usr/share/man/man3p/sigemptyset.3p
+#usr/share/man/man3p/sigfillset.3p
+#usr/share/man/man3p/sighold.3p
+#usr/share/man/man3p/sigignore.3p
+#usr/share/man/man3p/siginterrupt.3p
+#usr/share/man/man3p/sigismember.3p
+#usr/share/man/man3p/siglongjmp.3p
+#usr/share/man/man3p/signal.3p
+#usr/share/man/man3p/signbit.3p
+#usr/share/man/man3p/signgam.3p
+#usr/share/man/man3p/sigpause.3p
+#usr/share/man/man3p/sigpending.3p
+#usr/share/man/man3p/sigprocmask.3p
+#usr/share/man/man3p/sigqueue.3p
+#usr/share/man/man3p/sigrelse.3p
+#usr/share/man/man3p/sigset.3p
+#usr/share/man/man3p/sigsetjmp.3p
+#usr/share/man/man3p/sigsuspend.3p
+#usr/share/man/man3p/sigtimedwait.3p
+#usr/share/man/man3p/sigwait.3p
+#usr/share/man/man3p/sigwaitinfo.3p
+#usr/share/man/man3p/sin.3p
+#usr/share/man/man3p/sinf.3p
+#usr/share/man/man3p/sinh.3p
+#usr/share/man/man3p/sinhf.3p
+#usr/share/man/man3p/sinhl.3p
+#usr/share/man/man3p/sinl.3p
+#usr/share/man/man3p/sleep.3p
+#usr/share/man/man3p/snprintf.3p
+#usr/share/man/man3p/sockatmark.3p
+#usr/share/man/man3p/socket.3p
+#usr/share/man/man3p/socketpair.3p
+#usr/share/man/man3p/sprintf.3p
+#usr/share/man/man3p/sqrt.3p
+#usr/share/man/man3p/sqrtf.3p
+#usr/share/man/man3p/sqrtl.3p
+#usr/share/man/man3p/srand.3p
+#usr/share/man/man3p/srand48.3p
+#usr/share/man/man3p/srandom.3p
+#usr/share/man/man3p/sscanf.3p
+#usr/share/man/man3p/stat.3p
+#usr/share/man/man3p/statvfs.3p
+#usr/share/man/man3p/stderr.3p
+#usr/share/man/man3p/stdin.3p
+#usr/share/man/man3p/stdout.3p
+#usr/share/man/man3p/strcasecmp.3p
+#usr/share/man/man3p/strcat.3p
+#usr/share/man/man3p/strchr.3p
+#usr/share/man/man3p/strcmp.3p
+#usr/share/man/man3p/strcoll.3p
+#usr/share/man/man3p/strcpy.3p
+#usr/share/man/man3p/strcspn.3p
+#usr/share/man/man3p/strdup.3p
+#usr/share/man/man3p/strerror.3p
+#usr/share/man/man3p/strerror_r.3p
+#usr/share/man/man3p/strfmon.3p
+#usr/share/man/man3p/strftime.3p
+#usr/share/man/man3p/strlen.3p
+#usr/share/man/man3p/strncasecmp.3p
+#usr/share/man/man3p/strncat.3p
+#usr/share/man/man3p/strncmp.3p
+#usr/share/man/man3p/strncpy.3p
+#usr/share/man/man3p/strpbrk.3p
+#usr/share/man/man3p/strptime.3p
+#usr/share/man/man3p/strrchr.3p
+#usr/share/man/man3p/strspn.3p
+#usr/share/man/man3p/strstr.3p
+#usr/share/man/man3p/strtod.3p
+#usr/share/man/man3p/strtof.3p
+#usr/share/man/man3p/strtoimax.3p
+#usr/share/man/man3p/strtok.3p
+#usr/share/man/man3p/strtok_r.3p
+#usr/share/man/man3p/strtol.3p
+#usr/share/man/man3p/strtold.3p
+#usr/share/man/man3p/strtoll.3p
+#usr/share/man/man3p/strtoul.3p
+#usr/share/man/man3p/strtoull.3p
+#usr/share/man/man3p/strtoumax.3p
+#usr/share/man/man3p/strxfrm.3p
+#usr/share/man/man3p/swab.3p
+#usr/share/man/man3p/swapcontext.3p
+#usr/share/man/man3p/swprintf.3p
+#usr/share/man/man3p/swscanf.3p
+#usr/share/man/man3p/symlink.3p
+#usr/share/man/man3p/sync.3p
+#usr/share/man/man3p/sysconf.3p
+#usr/share/man/man3p/syslog.3p
+#usr/share/man/man3p/system.3p
+#usr/share/man/man3p/tan.3p
+#usr/share/man/man3p/tanf.3p
+#usr/share/man/man3p/tanh.3p
+#usr/share/man/man3p/tanhf.3p
+#usr/share/man/man3p/tanhl.3p
+#usr/share/man/man3p/tanl.3p
+#usr/share/man/man3p/tcdrain.3p
+#usr/share/man/man3p/tcflow.3p
+#usr/share/man/man3p/tcflush.3p
+#usr/share/man/man3p/tcgetattr.3p
+#usr/share/man/man3p/tcgetpgrp.3p
+#usr/share/man/man3p/tcgetsid.3p
+#usr/share/man/man3p/tcsendbreak.3p
+#usr/share/man/man3p/tcsetattr.3p
+#usr/share/man/man3p/tcsetpgrp.3p
+#usr/share/man/man3p/tdelete.3p
+#usr/share/man/man3p/telldir.3p
+#usr/share/man/man3p/tempnam.3p
+#usr/share/man/man3p/tfind.3p
+#usr/share/man/man3p/tgamma.3p
+#usr/share/man/man3p/tgammaf.3p
+#usr/share/man/man3p/tgammal.3p
+#usr/share/man/man3p/time.3p
+#usr/share/man/man3p/timer_create.3p
+#usr/share/man/man3p/timer_delete.3p
+#usr/share/man/man3p/timer_getoverrun.3p
+#usr/share/man/man3p/timer_gettime.3p
+#usr/share/man/man3p/timer_settime.3p
+#usr/share/man/man3p/times.3p
+#usr/share/man/man3p/timezone.3p
+#usr/share/man/man3p/tmpfile.3p
+#usr/share/man/man3p/tmpnam.3p
+#usr/share/man/man3p/toascii.3p
+#usr/share/man/man3p/tolower.3p
+#usr/share/man/man3p/toupper.3p
+#usr/share/man/man3p/towctrans.3p
+#usr/share/man/man3p/towlower.3p
+#usr/share/man/man3p/towupper.3p
+#usr/share/man/man3p/trunc.3p
+#usr/share/man/man3p/truncate.3p
+#usr/share/man/man3p/truncf.3p
+#usr/share/man/man3p/truncl.3p
+#usr/share/man/man3p/tsearch.3p
+#usr/share/man/man3p/ttyname.3p
+#usr/share/man/man3p/ttyname_r.3p
+#usr/share/man/man3p/twalk.3p
+#usr/share/man/man3p/tzname.3p
+#usr/share/man/man3p/tzset.3p
+#usr/share/man/man3p/ualarm.3p
+#usr/share/man/man3p/ulimit.3p
+#usr/share/man/man3p/umask.3p
+#usr/share/man/man3p/uname.3p
+#usr/share/man/man3p/ungetc.3p
+#usr/share/man/man3p/ungetwc.3p
+#usr/share/man/man3p/unlink.3p
+#usr/share/man/man3p/unlockpt.3p
+#usr/share/man/man3p/unsetenv.3p
+#usr/share/man/man3p/usleep.3p
+#usr/share/man/man3p/utime.3p
+#usr/share/man/man3p/utimes.3p
+#usr/share/man/man3p/va_arg.3p
+#usr/share/man/man3p/va_copy.3p
+#usr/share/man/man3p/va_end.3p
+#usr/share/man/man3p/va_start.3p
+#usr/share/man/man3p/vfork.3p
+#usr/share/man/man3p/vfprintf.3p
+#usr/share/man/man3p/vfscanf.3p
+#usr/share/man/man3p/vfwprintf.3p
+#usr/share/man/man3p/vfwscanf.3p
+#usr/share/man/man3p/vprintf.3p
+#usr/share/man/man3p/vscanf.3p
+#usr/share/man/man3p/vsnprintf.3p
+#usr/share/man/man3p/vsprintf.3p
+#usr/share/man/man3p/vsscanf.3p
+#usr/share/man/man3p/vswprintf.3p
+#usr/share/man/man3p/vswscanf.3p
+#usr/share/man/man3p/vwprintf.3p
+#usr/share/man/man3p/vwscanf.3p
+#usr/share/man/man3p/wait.3p
+#usr/share/man/man3p/waitid.3p
+#usr/share/man/man3p/waitpid.3p
+#usr/share/man/man3p/wcrtomb.3p
+#usr/share/man/man3p/wcscat.3p
+#usr/share/man/man3p/wcschr.3p
+#usr/share/man/man3p/wcscmp.3p
+#usr/share/man/man3p/wcscoll.3p
+#usr/share/man/man3p/wcscpy.3p
+#usr/share/man/man3p/wcscspn.3p
+#usr/share/man/man3p/wcsftime.3p
+#usr/share/man/man3p/wcslen.3p
+#usr/share/man/man3p/wcsncat.3p
+#usr/share/man/man3p/wcsncmp.3p
+#usr/share/man/man3p/wcsncpy.3p
+#usr/share/man/man3p/wcspbrk.3p
+#usr/share/man/man3p/wcsrchr.3p
+#usr/share/man/man3p/wcsrtombs.3p
+#usr/share/man/man3p/wcsspn.3p
+#usr/share/man/man3p/wcsstr.3p
+#usr/share/man/man3p/wcstod.3p
+#usr/share/man/man3p/wcstof.3p
+#usr/share/man/man3p/wcstoimax.3p
+#usr/share/man/man3p/wcstok.3p
+#usr/share/man/man3p/wcstol.3p
+#usr/share/man/man3p/wcstold.3p
+#usr/share/man/man3p/wcstoll.3p
+#usr/share/man/man3p/wcstombs.3p
+#usr/share/man/man3p/wcstoul.3p
+#usr/share/man/man3p/wcstoull.3p
+#usr/share/man/man3p/wcstoumax.3p
+#usr/share/man/man3p/wcswcs.3p
+#usr/share/man/man3p/wcswidth.3p
+#usr/share/man/man3p/wcsxfrm.3p
+#usr/share/man/man3p/wctob.3p
+#usr/share/man/man3p/wctomb.3p
+#usr/share/man/man3p/wctrans.3p
+#usr/share/man/man3p/wctype.3p
+#usr/share/man/man3p/wcwidth.3p
+#usr/share/man/man3p/wmemchr.3p
+#usr/share/man/man3p/wmemcmp.3p
+#usr/share/man/man3p/wmemcpy.3p
+#usr/share/man/man3p/wmemmove.3p
+#usr/share/man/man3p/wmemset.3p
+#usr/share/man/man3p/wordexp.3p
+#usr/share/man/man3p/wordfree.3p
+#usr/share/man/man3p/wprintf.3p
+#usr/share/man/man3p/write.3p
+#usr/share/man/man3p/writev.3p
+#usr/share/man/man3p/wscanf.3p
+#usr/share/man/man3p/y0.3p
+#usr/share/man/man3p/y1.3p
+#usr/share/man/man3p/yn.3p
+#usr/share/man/man4/console.4
+#usr/share/man/man4/console_codes.4
+#usr/share/man/man4/console_ioctl.4
+#usr/share/man/man4/dsp56k.4
+#usr/share/man/man4/epoll.4
+#usr/share/man/man4/fd.4
+#usr/share/man/man4/fifo.4
+#usr/share/man/man4/full.4
+#usr/share/man/man4/futex.4
+#usr/share/man/man4/hd.4
+#usr/share/man/man4/initrd.4
+#usr/share/man/man4/intro.4
+#usr/share/man/man4/kmem.4
+#usr/share/man/man4/lp.4
+#usr/share/man/man4/mem.4
+#usr/share/man/man4/mouse.4
+#usr/share/man/man4/null.4
+#usr/share/man/man4/port.4
+#usr/share/man/man4/ptmx.4
+#usr/share/man/man4/pts.4
+#usr/share/man/man4/ram.4
+#usr/share/man/man4/random.4
+#usr/share/man/man4/sd.4
+#usr/share/man/man4/sk98lin.4
+#usr/share/man/man4/st.4
+#usr/share/man/man4/tty.4
+#usr/share/man/man4/ttyS.4
+#usr/share/man/man4/tty_ioctl.4
+#usr/share/man/man4/urandom.4
+#usr/share/man/man4/vcs.4
+#usr/share/man/man4/vcsa.4
+#usr/share/man/man4/wavelan.4
+#usr/share/man/man4/zero.4
+#usr/share/man/man5/acct.5
+#usr/share/man/man5/charmap.5
+#usr/share/man/man5/complex.5
+#usr/share/man/man5/dir_colors.5
+#usr/share/man/man5/elf.5
+#usr/share/man/man5/environ.5
+#usr/share/man/man5/fs.5
+#usr/share/man/man5/ftpusers.5
+#usr/share/man/man5/group.5
+#usr/share/man/man5/host.conf.5
+#usr/share/man/man5/hosts.5
+#usr/share/man/man5/hosts.equiv.5
+#usr/share/man/man5/intro.5
+#usr/share/man/man5/ipc.5
+#usr/share/man/man5/issue.5
+#usr/share/man/man5/locale.5
+#usr/share/man/man5/motd.5
+#usr/share/man/man5/nologin.5
+#usr/share/man/man5/nscd.conf.5
+#usr/share/man/man5/nsswitch.conf.5
+#usr/share/man/man5/passwd.5
+#usr/share/man/man5/proc.5
+#usr/share/man/man5/protocols.5
+#usr/share/man/man5/resolv.conf.5
+#usr/share/man/man5/resolver.5
+#usr/share/man/man5/rpc.5
+#usr/share/man/man5/securetty.5
+#usr/share/man/man5/services.5
+#usr/share/man/man5/shells.5
+#usr/share/man/man5/slabinfo.5
+#usr/share/man/man5/termcap.5
+#usr/share/man/man5/ttytype.5
+#usr/share/man/man5/tzfile.5
+#usr/share/man/man5/utmp.5
+#usr/share/man/man5/wtmp.5
+#usr/share/man/man6/intro.6
+#usr/share/man/man7/LDP.7
+#usr/share/man/man7/arp.7
+#usr/share/man/man7/ascii.7
+#usr/share/man/man7/boot.7
+#usr/share/man/man7/bootparam.7
+#usr/share/man/man7/capabilities.7
+#usr/share/man/man7/charsets.7
+#usr/share/man/man7/ddp.7
+#usr/share/man/man7/glob.7
+#usr/share/man/man7/hier.7
+#usr/share/man/man7/icmp.7
+#usr/share/man/man7/intro.7
+#usr/share/man/man7/ip.7
+#usr/share/man/man7/ipv6.7
+#usr/share/man/man7/iso-8859-1.7
+#usr/share/man/man7/iso-8859-15.7
+#usr/share/man/man7/iso-8859-16.7
+#usr/share/man/man7/iso-8859-2.7
+#usr/share/man/man7/iso-8859-7.7
+#usr/share/man/man7/iso-8859-9.7
+#usr/share/man/man7/iso_8859-1.7
+#usr/share/man/man7/iso_8859-15.7
+#usr/share/man/man7/iso_8859-16.7
+#usr/share/man/man7/iso_8859-2.7
+#usr/share/man/man7/iso_8859-7.7
+#usr/share/man/man7/iso_8859-9.7
+#usr/share/man/man7/iso_8859_1.7
+#usr/share/man/man7/iso_8859_15.7
+#usr/share/man/man7/iso_8859_16.7
+#usr/share/man/man7/iso_8859_2.7
+#usr/share/man/man7/iso_8859_7.7
+#usr/share/man/man7/iso_8859_9.7
+#usr/share/man/man7/koi8-r.7
+#usr/share/man/man7/latin1.7
+#usr/share/man/man7/latin10.7
+#usr/share/man/man7/latin2.7
+#usr/share/man/man7/latin5.7
+#usr/share/man/man7/latin9.7
+#usr/share/man/man7/locale.7
+#usr/share/man/man7/mailaddr.7
+#usr/share/man/man7/man.7
+#usr/share/man/man7/mdoc.7
+#usr/share/man/man7/mdoc.samples.7
+#usr/share/man/man7/netdevice.7
+#usr/share/man/man7/netlink.7
+#usr/share/man/man7/operator.7
+#usr/share/man/man7/packet.7
+#usr/share/man/man7/posixoptions.7
+#usr/share/man/man7/pthreads.7
+#usr/share/man/man7/pty.7
+#usr/share/man/man7/raw.7
+#usr/share/man/man7/regex.7
+#usr/share/man/man7/rtnetlink.7
+#usr/share/man/man7/signal.7
+#usr/share/man/man7/socket.7
+#usr/share/man/man7/suffixes.7
+#usr/share/man/man7/tcp.7
+#usr/share/man/man7/udp.7
+#usr/share/man/man7/unicode.7
+#usr/share/man/man7/units.7
+#usr/share/man/man7/unix.7
+#usr/share/man/man7/uri.7
+#usr/share/man/man7/url.7
+#usr/share/man/man7/urn.7
+#usr/share/man/man7/utf-8.7
+#usr/share/man/man7/utf8.7
+#usr/share/man/man7/x25.7
+#usr/share/man/man8/intro.8
+#usr/share/man/man8/ld-linux.8
+#usr/share/man/man8/ld-linux.so.8
+#usr/share/man/man8/ld.so.8
+#usr/share/man/man8/ldconfig.8
+#usr/share/man/man8/nscd.8
+#usr/share/man/man8/sync.8
+#usr/share/man/man8/tzselect.8
+#usr/share/man/man8/zdump.8
+#usr/share/man/man8/zic.8
+#usr/share/man/man9
+#usr/share/man/man9/ksoftirqd.9
+##
+## glibc-2.3.3
+##
+etc/ld.so.cache
+etc/localtime
+#etc/rpc
+lib/ld-2.3.3.so
+lib/ld-linux.so.2
+#lib/libBrokenLocale-2.3.3.so
+#lib/libBrokenLocale.so.1
+#lib/libSegFault.so
+#lib/libanl-2.3.3.so
+#lib/libanl.so.1
+lib/libc-2.3.3.so
+lib/libc.so.6
+lib/libcrypt-2.3.3.so
+lib/libcrypt.so.1
+lib/libdl-2.3.3.so
+lib/libdl.so.2
+lib/libm-2.3.3.so
+lib/libm.so.6
+#lib/libmemusage.so
+lib/libnsl-2.3.3.so
+lib/libnsl.so.1
+lib/libnss_compat-2.3.3.so
+lib/libnss_compat.so.2
+lib/libnss_dns-2.3.3.so
+lib/libnss_dns.so.2
+lib/libnss_files-2.3.3.so
+lib/libnss_files.so.2
+#lib/libnss_hesiod-2.3.3.so
+#lib/libnss_hesiod.so.2
+#lib/libnss_nis-2.3.3.so
+#lib/libnss_nis.so.2
+#lib/libnss_nisplus-2.3.3.so
+#lib/libnss_nisplus.so.2
+#lib/libpcprofile.so
+lib/libpthread-0.10.so
+lib/libpthread.so.0
+lib/libresolv-2.3.3.so
+lib/libresolv.so.2
+lib/librt-2.3.3.so
+lib/librt.so.1
+#lib/libthread_db-1.0.so
+#lib/libthread_db.so.1
+lib/libutil-2.3.3.so
+lib/libutil.so.1
+sbin/ldconfig
+#sbin/sln
+#usr/bin/catchsegv
+#usr/bin/gencat
+#usr/bin/getconf
+#usr/bin/getent
+#usr/bin/glibcbug
+#usr/bin/iconv
+#usr/bin/ldd
+#usr/bin/lddlibc4
+#usr/bin/locale
+#usr/bin/localedef
+#usr/bin/memusage
+#usr/bin/memusagestat
+#usr/bin/mtrace
+#usr/bin/pcprofiledump
+#usr/bin/pt_chown
+#usr/bin/rpcgen
+#usr/bin/sprof
+#usr/bin/tzselect
+#usr/bin/xtrace
+#usr/include/_G_config.h
+#usr/include/a.out.h
+#usr/include/aio.h
+#usr/include/aliases.h
+#usr/include/alloca.h
+#usr/include/ar.h
+#usr/include/argp.h
+#usr/include/argz.h
+#usr/include/arpa
+#usr/include/arpa/ftp.h
+#usr/include/arpa/inet.h
+#usr/include/arpa/nameser.h
+#usr/include/arpa/nameser_compat.h
+#usr/include/arpa/telnet.h
+#usr/include/arpa/tftp.h
+#usr/include/assert.h
+#usr/include/bits
+#usr/include/bits/byteswap.h
+#usr/include/bits/cmathcalls.h
+#usr/include/bits/confname.h
+#usr/include/bits/dirent.h
+#usr/include/bits/dlfcn.h
+#usr/include/bits/elfclass.h
+#usr/include/bits/endian.h
+#usr/include/bits/environments.h
+#usr/include/bits/errno.h
+#usr/include/bits/fcntl.h
+#usr/include/bits/fenv.h
+#usr/include/bits/fenvinline.h
+#usr/include/bits/huge_val.h
+#usr/include/bits/in.h
+#usr/include/bits/initspin.h
+#usr/include/bits/ioctl-types.h
+#usr/include/bits/ioctls.h
+#usr/include/bits/ipc.h
+#usr/include/bits/ipctypes.h
+#usr/include/bits/libc-lock.h
+#usr/include/bits/local_lim.h
+#usr/include/bits/locale.h
+#usr/include/bits/mathcalls.h
+#usr/include/bits/mathdef.h
+#usr/include/bits/mathinline.h
+#usr/include/bits/mman.h
+#usr/include/bits/msq.h
+#usr/include/bits/nan.h
+#usr/include/bits/netdb.h
+#usr/include/bits/poll.h
+#usr/include/bits/posix1_lim.h
+#usr/include/bits/posix2_lim.h
+#usr/include/bits/posix_opt.h
+#usr/include/bits/pthreadtypes.h
+#usr/include/bits/resource.h
+#usr/include/bits/sched.h
+#usr/include/bits/select.h
+#usr/include/bits/sem.h
+#usr/include/bits/setjmp.h
+#usr/include/bits/shm.h
+#usr/include/bits/sigaction.h
+#usr/include/bits/sigcontext.h
+#usr/include/bits/siginfo.h
+#usr/include/bits/signum.h
+#usr/include/bits/sigset.h
+#usr/include/bits/sigstack.h
+#usr/include/bits/sigthread.h
+#usr/include/bits/sockaddr.h
+#usr/include/bits/socket.h
+#usr/include/bits/stab.def
+#usr/include/bits/stat.h
+#usr/include/bits/statfs.h
+#usr/include/bits/statvfs.h
+#usr/include/bits/stdio-lock.h
+#usr/include/bits/stdio.h
+#usr/include/bits/stdio_lim.h
+#usr/include/bits/string.h
+#usr/include/bits/string2.h
+#usr/include/bits/stropts.h
+#usr/include/bits/sys_errlist.h
+#usr/include/bits/syscall.h
+#usr/include/bits/termios.h
+#usr/include/bits/time.h
+#usr/include/bits/types.h
+#usr/include/bits/typesizes.h
+#usr/include/bits/uio.h
+#usr/include/bits/ustat.h
+#usr/include/bits/utmp.h
+#usr/include/bits/utmpx.h
+#usr/include/bits/utsname.h
+#usr/include/bits/waitflags.h
+#usr/include/bits/waitstatus.h
+#usr/include/bits/wchar.h
+#usr/include/bits/wordsize.h
+#usr/include/bits/xopen_lim.h
+#usr/include/bits/xtitypes.h
+#usr/include/byteswap.h
+#usr/include/complex.h
+#usr/include/cpio.h
+#usr/include/crypt.h
+#usr/include/ctype.h
+#usr/include/dirent.h
+#usr/include/dlfcn.h
+#usr/include/elf.h
+#usr/include/endian.h
+#usr/include/envz.h
+#usr/include/err.h
+#usr/include/errno.h
+#usr/include/error.h
+#usr/include/execinfo.h
+#usr/include/fcntl.h
+#usr/include/features.h
+#usr/include/fenv.h
+#usr/include/fmtmsg.h
+#usr/include/fnmatch.h
+#usr/include/fpu_control.h
+#usr/include/fstab.h
+#usr/include/fts.h
+#usr/include/ftw.h
+#usr/include/gconv.h
+#usr/include/getopt.h
+#usr/include/glob.h
+#usr/include/gnu
+#usr/include/gnu-versions.h
+#usr/include/gnu/lib-names.h
+#usr/include/gnu/libc-version.h
+#usr/include/gnu/stubs.h
+#usr/include/grp.h
+#usr/include/iconv.h
+#usr/include/ieee754.h
+#usr/include/ifaddrs.h
+#usr/include/inttypes.h
+#usr/include/langinfo.h
+#usr/include/lastlog.h
+#usr/include/libgen.h
+#usr/include/libintl.h
+#usr/include/libio.h
+#usr/include/limits.h
+#usr/include/link.h
+#usr/include/locale.h
+#usr/include/malloc.h
+#usr/include/math.h
+#usr/include/mcheck.h
+#usr/include/memory.h
+#usr/include/mntent.h
+#usr/include/monetary.h
+#usr/include/net
+#usr/include/net/ethernet.h
+#usr/include/net/if.h
+#usr/include/net/if_arp.h
+#usr/include/net/if_packet.h
+#usr/include/net/if_ppp.h
+#usr/include/net/if_shaper.h
+#usr/include/net/if_slip.h
+#usr/include/net/ppp-comp.h
+#usr/include/net/ppp_defs.h
+#usr/include/net/route.h
+#usr/include/netash
+#usr/include/netash/ash.h
+#usr/include/netatalk
+#usr/include/netatalk/at.h
+#usr/include/netax25
+#usr/include/netax25/ax25.h
+#usr/include/netdb.h
+#usr/include/neteconet
+#usr/include/neteconet/ec.h
+#usr/include/netinet
+#usr/include/netinet/ether.h
+#usr/include/netinet/icmp6.h
+#usr/include/netinet/if_ether.h
+#usr/include/netinet/if_fddi.h
+#usr/include/netinet/if_tr.h
+#usr/include/netinet/igmp.h
+#usr/include/netinet/in.h
+#usr/include/netinet/in_systm.h
+#usr/include/netinet/ip.h
+#usr/include/netinet/ip6.h
+#usr/include/netinet/ip_icmp.h
+#usr/include/netinet/tcp.h
+#usr/include/netinet/udp.h
+#usr/include/netipx
+#usr/include/netipx/ipx.h
+#usr/include/netpacket
+#usr/include/netpacket/packet.h
+#usr/include/netrom
+#usr/include/netrom/netrom.h
+#usr/include/netrose
+#usr/include/netrose/rose.h
+#usr/include/nfs
+#usr/include/nfs/nfs.h
+#usr/include/nl_types.h
+#usr/include/nss.h
+#usr/include/obstack.h
+#usr/include/paths.h
+#usr/include/poll.h
+#usr/include/printf.h
+#usr/include/protocols
+#usr/include/protocols/routed.h
+#usr/include/protocols/rwhod.h
+#usr/include/protocols/talkd.h
+#usr/include/protocols/timed.h
+#usr/include/pthread.h
+#usr/include/pty.h
+#usr/include/pwd.h
+#usr/include/re_comp.h
+#usr/include/regex.h
+#usr/include/regexp.h
+#usr/include/resolv.h
+#usr/include/rpc
+#usr/include/rpc/auth.h
+#usr/include/rpc/auth_des.h
+#usr/include/rpc/auth_unix.h
+#usr/include/rpc/clnt.h
+#usr/include/rpc/des_crypt.h
+#usr/include/rpc/key_prot.h
+#usr/include/rpc/netdb.h
+#usr/include/rpc/pmap_clnt.h
+#usr/include/rpc/pmap_prot.h
+#usr/include/rpc/pmap_rmt.h
+#usr/include/rpc/rpc.h
+#usr/include/rpc/rpc_des.h
+#usr/include/rpc/rpc_msg.h
+#usr/include/rpc/svc.h
+#usr/include/rpc/svc_auth.h
+#usr/include/rpc/types.h
+#usr/include/rpc/xdr.h
+#usr/include/rpcsvc
+#usr/include/rpcsvc/bootparam.h
+#usr/include/rpcsvc/bootparam_prot.h
+#usr/include/rpcsvc/bootparam_prot.x
+#usr/include/rpcsvc/key_prot.h
+#usr/include/rpcsvc/key_prot.x
+#usr/include/rpcsvc/klm_prot.h
+#usr/include/rpcsvc/klm_prot.x
+#usr/include/rpcsvc/mount.h
+#usr/include/rpcsvc/mount.x
+#usr/include/rpcsvc/nfs_prot.h
+#usr/include/rpcsvc/nfs_prot.x
+#usr/include/rpcsvc/nis.h
+#usr/include/rpcsvc/nis.x
+#usr/include/rpcsvc/nis_callback.h
+#usr/include/rpcsvc/nis_callback.x
+#usr/include/rpcsvc/nis_object.x
+#usr/include/rpcsvc/nis_tags.h
+#usr/include/rpcsvc/nislib.h
+#usr/include/rpcsvc/nlm_prot.h
+#usr/include/rpcsvc/nlm_prot.x
+#usr/include/rpcsvc/rex.h
+#usr/include/rpcsvc/rex.x
+#usr/include/rpcsvc/rquota.h
+#usr/include/rpcsvc/rquota.x
+#usr/include/rpcsvc/rstat.h
+#usr/include/rpcsvc/rstat.x
+#usr/include/rpcsvc/rusers.h
+#usr/include/rpcsvc/rusers.x
+#usr/include/rpcsvc/sm_inter.h
+#usr/include/rpcsvc/sm_inter.x
+#usr/include/rpcsvc/spray.h
+#usr/include/rpcsvc/spray.x
+#usr/include/rpcsvc/yp.h
+#usr/include/rpcsvc/yp.x
+#usr/include/rpcsvc/yp_prot.h
+#usr/include/rpcsvc/ypclnt.h
+#usr/include/rpcsvc/yppasswd.h
+#usr/include/rpcsvc/yppasswd.x
+#usr/include/rpcsvc/ypupd.h
+#usr/include/sched.h
+#usr/include/scsi
+#usr/include/scsi/scsi.h
+#usr/include/scsi/scsi_ioctl.h
+#usr/include/scsi/sg.h
+#usr/include/search.h
+#usr/include/semaphore.h
+#usr/include/setjmp.h
+#usr/include/sgtty.h
+#usr/include/shadow.h
+#usr/include/signal.h
+#usr/include/spawn.h
+#usr/include/stab.h
+#usr/include/stdint.h
+#usr/include/stdio.h
+#usr/include/stdio_ext.h
+#usr/include/stdlib.h
+#usr/include/string.h
+#usr/include/strings.h
+#usr/include/stropts.h
+#usr/include/sys
+#usr/include/sys/acct.h
+#usr/include/sys/bitypes.h
+#usr/include/sys/cdefs.h
+#usr/include/sys/debugreg.h
+#usr/include/sys/dir.h
+#usr/include/sys/elf.h
+#usr/include/sys/epoll.h
+#usr/include/sys/errno.h
+#usr/include/sys/fcntl.h
+#usr/include/sys/file.h
+#usr/include/sys/fsuid.h
+#usr/include/sys/gmon.h
+#usr/include/sys/gmon_out.h
+#usr/include/sys/io.h
+#usr/include/sys/ioctl.h
+#usr/include/sys/ipc.h
+#usr/include/sys/kd.h
+#usr/include/sys/kdaemon.h
+#usr/include/sys/klog.h
+#usr/include/sys/mman.h
+#usr/include/sys/mount.h
+#usr/include/sys/msg.h
+#usr/include/sys/mtio.h
+#usr/include/sys/param.h
+#usr/include/sys/pci.h
+#usr/include/sys/perm.h
+#usr/include/sys/personality.h
+#usr/include/sys/poll.h
+#usr/include/sys/prctl.h
+#usr/include/sys/procfs.h
+#usr/include/sys/profil.h
+#usr/include/sys/ptrace.h
+#usr/include/sys/queue.h
+#usr/include/sys/quota.h
+#usr/include/sys/raw.h
+#usr/include/sys/reboot.h
+#usr/include/sys/reg.h
+#usr/include/sys/resource.h
+#usr/include/sys/select.h
+#usr/include/sys/sem.h
+#usr/include/sys/sendfile.h
+#usr/include/sys/shm.h
+#usr/include/sys/signal.h
+#usr/include/sys/socket.h
+#usr/include/sys/socketvar.h
+#usr/include/sys/soundcard.h
+#usr/include/sys/stat.h
+#usr/include/sys/statfs.h
+#usr/include/sys/statvfs.h
+#usr/include/sys/stropts.h
+#usr/include/sys/swap.h
+#usr/include/sys/syscall.h
+#usr/include/sys/sysctl.h
+#usr/include/sys/sysinfo.h
+#usr/include/sys/syslog.h
+#usr/include/sys/sysmacros.h
+#usr/include/sys/termios.h
+#usr/include/sys/time.h
+#usr/include/sys/timeb.h
+#usr/include/sys/times.h
+#usr/include/sys/timex.h
+#usr/include/sys/ttychars.h
+#usr/include/sys/ttydefaults.h
+#usr/include/sys/types.h
+#usr/include/sys/ucontext.h
+#usr/include/sys/uio.h
+#usr/include/sys/ultrasound.h
+#usr/include/sys/un.h
+#usr/include/sys/unistd.h
+#usr/include/sys/user.h
+#usr/include/sys/ustat.h
+#usr/include/sys/utsname.h
+#usr/include/sys/vfs.h
+#usr/include/sys/vlimit.h
+#usr/include/sys/vm86.h
+#usr/include/sys/vt.h
+#usr/include/sys/vtimes.h
+#usr/include/sys/wait.h
+#usr/include/sys/xattr.h
+#usr/include/syscall.h
+#usr/include/sysexits.h
+#usr/include/syslog.h
+#usr/include/tar.h
+#usr/include/termio.h
+#usr/include/termios.h
+#usr/include/tgmath.h
+#usr/include/thread_db.h
+#usr/include/time.h
+#usr/include/ttyent.h
+#usr/include/ucontext.h
+#usr/include/ulimit.h
+#usr/include/unistd.h
+#usr/include/ustat.h
+#usr/include/utime.h
+#usr/include/utmp.h
+#usr/include/utmpx.h
+#usr/include/values.h
+#usr/include/wait.h
+#usr/include/wchar.h
+#usr/include/wctype.h
+#usr/include/wordexp.h
+#usr/include/xlocale.h
+#usr/lib/Mcrt1.o
+#usr/lib/crt1.o
+#usr/lib/crti.o
+#usr/lib/crtn.o
+#usr/lib/gconv
+#usr/lib/gconv/ANSI_X3.110.so
+#usr/lib/gconv/ARMSCII-8.so
+#usr/lib/gconv/ASMO_449.so
+#usr/lib/gconv/BIG5.so
+#usr/lib/gconv/BIG5HKSCS.so
+#usr/lib/gconv/CP10007.so
+#usr/lib/gconv/CP1125.so
+#usr/lib/gconv/CP1250.so
+#usr/lib/gconv/CP1251.so
+#usr/lib/gconv/CP1252.so
+#usr/lib/gconv/CP1253.so
+#usr/lib/gconv/CP1254.so
+#usr/lib/gconv/CP1255.so
+#usr/lib/gconv/CP1256.so
+#usr/lib/gconv/CP1257.so
+#usr/lib/gconv/CP1258.so
+#usr/lib/gconv/CP737.so
+#usr/lib/gconv/CP775.so
+#usr/lib/gconv/CSN_369103.so
+#usr/lib/gconv/CWI.so
+#usr/lib/gconv/DEC-MCS.so
+#usr/lib/gconv/EBCDIC-AT-DE-A.so
+#usr/lib/gconv/EBCDIC-AT-DE.so
+#usr/lib/gconv/EBCDIC-CA-FR.so
+#usr/lib/gconv/EBCDIC-DK-NO-A.so
+#usr/lib/gconv/EBCDIC-DK-NO.so
+#usr/lib/gconv/EBCDIC-ES-A.so
+#usr/lib/gconv/EBCDIC-ES-S.so
+#usr/lib/gconv/EBCDIC-ES.so
+#usr/lib/gconv/EBCDIC-FI-SE-A.so
+#usr/lib/gconv/EBCDIC-FI-SE.so
+#usr/lib/gconv/EBCDIC-FR.so
+#usr/lib/gconv/EBCDIC-IS-FRISS.so
+#usr/lib/gconv/EBCDIC-IT.so
+#usr/lib/gconv/EBCDIC-PT.so
+#usr/lib/gconv/EBCDIC-UK.so
+#usr/lib/gconv/EBCDIC-US.so
+#usr/lib/gconv/ECMA-CYRILLIC.so
+#usr/lib/gconv/EUC-CN.so
+#usr/lib/gconv/EUC-JISX0213.so
+#usr/lib/gconv/EUC-JP.so
+#usr/lib/gconv/EUC-KR.so
+#usr/lib/gconv/EUC-TW.so
+#usr/lib/gconv/GB18030.so
+#usr/lib/gconv/GBBIG5.so
+#usr/lib/gconv/GBGBK.so
+#usr/lib/gconv/GBK.so
+#usr/lib/gconv/GEORGIAN-ACADEMY.so
+#usr/lib/gconv/GEORGIAN-PS.so
+#usr/lib/gconv/GOST_19768-74.so
+#usr/lib/gconv/GREEK-CCITT.so
+#usr/lib/gconv/GREEK7-OLD.so
+#usr/lib/gconv/GREEK7.so
+#usr/lib/gconv/HP-ROMAN8.so
+#usr/lib/gconv/IBM037.so
+#usr/lib/gconv/IBM038.so
+#usr/lib/gconv/IBM1004.so
+#usr/lib/gconv/IBM1026.so
+#usr/lib/gconv/IBM1046.so
+#usr/lib/gconv/IBM1047.so
+#usr/lib/gconv/IBM1124.so
+#usr/lib/gconv/IBM1129.so
+#usr/lib/gconv/IBM1132.so
+#usr/lib/gconv/IBM1133.so
+#usr/lib/gconv/IBM1160.so
+#usr/lib/gconv/IBM1161.so
+#usr/lib/gconv/IBM1162.so
+#usr/lib/gconv/IBM1163.so
+#usr/lib/gconv/IBM1164.so
+#usr/lib/gconv/IBM256.so
+#usr/lib/gconv/IBM273.so
+#usr/lib/gconv/IBM274.so
+#usr/lib/gconv/IBM275.so
+#usr/lib/gconv/IBM277.so
+#usr/lib/gconv/IBM278.so
+#usr/lib/gconv/IBM280.so
+#usr/lib/gconv/IBM281.so
+#usr/lib/gconv/IBM284.so
+#usr/lib/gconv/IBM285.so
+#usr/lib/gconv/IBM290.so
+#usr/lib/gconv/IBM297.so
+#usr/lib/gconv/IBM420.so
+#usr/lib/gconv/IBM423.so
+#usr/lib/gconv/IBM424.so
+#usr/lib/gconv/IBM437.so
+#usr/lib/gconv/IBM500.so
+#usr/lib/gconv/IBM850.so
+#usr/lib/gconv/IBM851.so
+#usr/lib/gconv/IBM852.so
+#usr/lib/gconv/IBM855.so
+#usr/lib/gconv/IBM856.so
+#usr/lib/gconv/IBM857.so
+#usr/lib/gconv/IBM860.so
+#usr/lib/gconv/IBM861.so
+#usr/lib/gconv/IBM862.so
+#usr/lib/gconv/IBM863.so
+#usr/lib/gconv/IBM864.so
+#usr/lib/gconv/IBM865.so
+#usr/lib/gconv/IBM866.so
+#usr/lib/gconv/IBM866NAV.so
+#usr/lib/gconv/IBM868.so
+#usr/lib/gconv/IBM869.so
+#usr/lib/gconv/IBM870.so
+#usr/lib/gconv/IBM871.so
+#usr/lib/gconv/IBM874.so
+#usr/lib/gconv/IBM875.so
+#usr/lib/gconv/IBM880.so
+#usr/lib/gconv/IBM891.so
+#usr/lib/gconv/IBM903.so
+#usr/lib/gconv/IBM904.so
+#usr/lib/gconv/IBM905.so
+#usr/lib/gconv/IBM918.so
+#usr/lib/gconv/IBM922.so
+#usr/lib/gconv/IBM930.so
+#usr/lib/gconv/IBM932.so
+#usr/lib/gconv/IBM933.so
+#usr/lib/gconv/IBM935.so
+#usr/lib/gconv/IBM937.so
+#usr/lib/gconv/IBM939.so
+#usr/lib/gconv/IBM943.so
+#usr/lib/gconv/IEC_P27-1.so
+#usr/lib/gconv/INIS-8.so
+#usr/lib/gconv/INIS-CYRILLIC.so
+#usr/lib/gconv/INIS.so
+#usr/lib/gconv/ISIRI-3342.so
+#usr/lib/gconv/ISO-2022-CN-EXT.so
+#usr/lib/gconv/ISO-2022-CN.so
+#usr/lib/gconv/ISO-2022-JP-3.so
+#usr/lib/gconv/ISO-2022-JP.so
+#usr/lib/gconv/ISO-2022-KR.so
+#usr/lib/gconv/ISO-IR-197.so
+#usr/lib/gconv/ISO-IR-209.so
+#usr/lib/gconv/ISO646.so
+#usr/lib/gconv/ISO8859-1.so
+#usr/lib/gconv/ISO8859-10.so
+#usr/lib/gconv/ISO8859-11.so
+#usr/lib/gconv/ISO8859-13.so
+#usr/lib/gconv/ISO8859-14.so
+#usr/lib/gconv/ISO8859-15.so
+#usr/lib/gconv/ISO8859-16.so
+#usr/lib/gconv/ISO8859-2.so
+#usr/lib/gconv/ISO8859-3.so
+#usr/lib/gconv/ISO8859-4.so
+#usr/lib/gconv/ISO8859-5.so
+#usr/lib/gconv/ISO8859-6.so
+#usr/lib/gconv/ISO8859-7.so
+#usr/lib/gconv/ISO8859-8.so
+#usr/lib/gconv/ISO8859-9.so
+#usr/lib/gconv/ISO_10367-BOX.so
+#usr/lib/gconv/ISO_2033.so
+#usr/lib/gconv/ISO_5427-EXT.so
+#usr/lib/gconv/ISO_5427.so
+#usr/lib/gconv/ISO_5428.so
+#usr/lib/gconv/ISO_6937-2.so
+#usr/lib/gconv/ISO_6937.so
+#usr/lib/gconv/JOHAB.so
+#usr/lib/gconv/KOI-8.so
+#usr/lib/gconv/KOI8-R.so
+#usr/lib/gconv/KOI8-T.so
+#usr/lib/gconv/KOI8-U.so
+#usr/lib/gconv/LATIN-GREEK-1.so
+#usr/lib/gconv/LATIN-GREEK.so
+#usr/lib/gconv/MAC-IS.so
+#usr/lib/gconv/MAC-SAMI.so
+#usr/lib/gconv/MAC-UK.so
+#usr/lib/gconv/MACINTOSH.so
+#usr/lib/gconv/NATS-DANO.so
+#usr/lib/gconv/NATS-SEFI.so
+#usr/lib/gconv/SAMI-WS2.so
+#usr/lib/gconv/SHIFT_JISX0213.so
+#usr/lib/gconv/SJIS.so
+#usr/lib/gconv/T.61.so
+#usr/lib/gconv/TCVN5712-1.so
+#usr/lib/gconv/TIS-620.so
+#usr/lib/gconv/TSCII.so
+#usr/lib/gconv/UHC.so
+#usr/lib/gconv/UNICODE.so
+#usr/lib/gconv/UTF-16.so
+#usr/lib/gconv/UTF-32.so
+#usr/lib/gconv/UTF-7.so
+#usr/lib/gconv/VISCII.so
+#usr/lib/gconv/gconv-modules
+#usr/lib/gconv/libCNS.so
+#usr/lib/gconv/libGB.so
+#usr/lib/gconv/libISOIR165.so
+#usr/lib/gconv/libJIS.so
+#usr/lib/gconv/libJISX0213.so
+#usr/lib/gconv/libKSC.so
+#usr/lib/gcrt1.o
+#usr/lib/libBrokenLocale.a
+#usr/lib/libBrokenLocale.so
+#usr/lib/libanl.a
+#usr/lib/libanl.so
+#usr/lib/libbsd-compat.a
+#usr/lib/libc.a
+#usr/lib/libc.so
+#usr/lib/libc_nonshared.a
+#usr/lib/libcrypt.a
+#usr/lib/libcrypt.so
+#usr/lib/libdl.a
+#usr/lib/libdl.so
+#usr/lib/libg.a
+#usr/lib/libieee.a
+#usr/lib/libm.a
+#usr/lib/libm.so
+#usr/lib/libmcheck.a
+#usr/lib/libnsl.a
+#usr/lib/libnsl.so
+#usr/lib/libnss_compat.so
+#usr/lib/libnss_dns.so
+#usr/lib/libnss_files.so
+#usr/lib/libnss_hesiod.so
+#usr/lib/libnss_nis.so
+#usr/lib/libnss_nisplus.so
+#usr/lib/libpthread.a
+#usr/lib/libpthread.so
+#usr/lib/libpthread_nonshared.a
+#usr/lib/libresolv.a
+#usr/lib/libresolv.so
+#usr/lib/librpcsvc.a
+#usr/lib/librt.a
+#usr/lib/librt.so
+#usr/lib/libthread_db.so
+#usr/lib/libutil.a
+#usr/lib/libutil.so
+#usr/lib/locale
+usr/lib/locale/locale-archive
+#usr/sbin/iconvconfig
+#usr/sbin/nscd
+#usr/sbin/nscd_nischeck
+#usr/sbin/rpcinfo
+#usr/sbin/zdump
+#usr/sbin/zic
+#usr/share/i18n
+#usr/share/i18n/charmaps
+#usr/share/i18n/charmaps/ANSI_X3.110-1983.gz
+#usr/share/i18n/charmaps/ANSI_X3.4-1968.gz
+#usr/share/i18n/charmaps/ARMSCII-8.gz
+#usr/share/i18n/charmaps/ASMO_449.gz
+#usr/share/i18n/charmaps/BIG5-HKSCS.gz
+#usr/share/i18n/charmaps/BIG5.gz
+#usr/share/i18n/charmaps/BS_4730.gz
+#usr/share/i18n/charmaps/BS_VIEWDATA.gz
+#usr/share/i18n/charmaps/CP10007.gz
+#usr/share/i18n/charmaps/CP1125.gz
+#usr/share/i18n/charmaps/CP1250.gz
+#usr/share/i18n/charmaps/CP1251.gz
+#usr/share/i18n/charmaps/CP1252.gz
+#usr/share/i18n/charmaps/CP1253.gz
+#usr/share/i18n/charmaps/CP1254.gz
+#usr/share/i18n/charmaps/CP1255.gz
+#usr/share/i18n/charmaps/CP1256.gz
+#usr/share/i18n/charmaps/CP1257.gz
+#usr/share/i18n/charmaps/CP1258.gz
+#usr/share/i18n/charmaps/CP737.gz
+#usr/share/i18n/charmaps/CP775.gz
+#usr/share/i18n/charmaps/CP949.gz
+#usr/share/i18n/charmaps/CSA_Z243.4-1985-1.gz
+#usr/share/i18n/charmaps/CSA_Z243.4-1985-2.gz
+#usr/share/i18n/charmaps/CSA_Z243.4-1985-GR.gz
+#usr/share/i18n/charmaps/CSN_369103.gz
+#usr/share/i18n/charmaps/CWI.gz
+#usr/share/i18n/charmaps/DEC-MCS.gz
+#usr/share/i18n/charmaps/DIN_66003.gz
+#usr/share/i18n/charmaps/DS_2089.gz
+#usr/share/i18n/charmaps/EBCDIC-AT-DE-A.gz
+#usr/share/i18n/charmaps/EBCDIC-AT-DE.gz
+#usr/share/i18n/charmaps/EBCDIC-CA-FR.gz
+#usr/share/i18n/charmaps/EBCDIC-DK-NO-A.gz
+#usr/share/i18n/charmaps/EBCDIC-DK-NO.gz
+#usr/share/i18n/charmaps/EBCDIC-ES-A.gz
+#usr/share/i18n/charmaps/EBCDIC-ES-S.gz
+#usr/share/i18n/charmaps/EBCDIC-ES.gz
+#usr/share/i18n/charmaps/EBCDIC-FI-SE-A.gz
+#usr/share/i18n/charmaps/EBCDIC-FI-SE.gz
+#usr/share/i18n/charmaps/EBCDIC-FR.gz
+#usr/share/i18n/charmaps/EBCDIC-IS-FRISS.gz
+#usr/share/i18n/charmaps/EBCDIC-IT.gz
+#usr/share/i18n/charmaps/EBCDIC-PT.gz
+#usr/share/i18n/charmaps/EBCDIC-UK.gz
+#usr/share/i18n/charmaps/EBCDIC-US.gz
+#usr/share/i18n/charmaps/ECMA-CYRILLIC.gz
+#usr/share/i18n/charmaps/ES.gz
+#usr/share/i18n/charmaps/ES2.gz
+#usr/share/i18n/charmaps/EUC-JISX0213.gz
+#usr/share/i18n/charmaps/EUC-JP.gz
+#usr/share/i18n/charmaps/EUC-KR.gz
+#usr/share/i18n/charmaps/EUC-TW.gz
+#usr/share/i18n/charmaps/GB18030.gz
+#usr/share/i18n/charmaps/GB2312.gz
+#usr/share/i18n/charmaps/GBK.gz
+#usr/share/i18n/charmaps/GB_1988-80.gz
+#usr/share/i18n/charmaps/GEORGIAN-ACADEMY.gz
+#usr/share/i18n/charmaps/GEORGIAN-PS.gz
+#usr/share/i18n/charmaps/GOST_19768-74.gz
+#usr/share/i18n/charmaps/GREEK-CCITT.gz
+#usr/share/i18n/charmaps/GREEK7-OLD.gz
+#usr/share/i18n/charmaps/GREEK7.gz
+#usr/share/i18n/charmaps/HP-ROMAN8.gz
+#usr/share/i18n/charmaps/IBM037.gz
+#usr/share/i18n/charmaps/IBM038.gz
+#usr/share/i18n/charmaps/IBM1004.gz
+#usr/share/i18n/charmaps/IBM1026.gz
+#usr/share/i18n/charmaps/IBM1047.gz
+#usr/share/i18n/charmaps/IBM1124.gz
+#usr/share/i18n/charmaps/IBM1129.gz
+#usr/share/i18n/charmaps/IBM1132.gz
+#usr/share/i18n/charmaps/IBM1133.gz
+#usr/share/i18n/charmaps/IBM1160.gz
+#usr/share/i18n/charmaps/IBM1161.gz
+#usr/share/i18n/charmaps/IBM1162.gz
+#usr/share/i18n/charmaps/IBM1163.gz
+#usr/share/i18n/charmaps/IBM1164.gz
+#usr/share/i18n/charmaps/IBM256.gz
+#usr/share/i18n/charmaps/IBM273.gz
+#usr/share/i18n/charmaps/IBM274.gz
+#usr/share/i18n/charmaps/IBM275.gz
+#usr/share/i18n/charmaps/IBM277.gz
+#usr/share/i18n/charmaps/IBM278.gz
+#usr/share/i18n/charmaps/IBM280.gz
+#usr/share/i18n/charmaps/IBM281.gz
+#usr/share/i18n/charmaps/IBM284.gz
+#usr/share/i18n/charmaps/IBM285.gz
+#usr/share/i18n/charmaps/IBM290.gz
+#usr/share/i18n/charmaps/IBM297.gz
+#usr/share/i18n/charmaps/IBM420.gz
+#usr/share/i18n/charmaps/IBM423.gz
+#usr/share/i18n/charmaps/IBM424.gz
+#usr/share/i18n/charmaps/IBM437.gz
+#usr/share/i18n/charmaps/IBM500.gz
+#usr/share/i18n/charmaps/IBM850.gz
+#usr/share/i18n/charmaps/IBM851.gz
+#usr/share/i18n/charmaps/IBM852.gz
+#usr/share/i18n/charmaps/IBM855.gz
+#usr/share/i18n/charmaps/IBM856.gz
+#usr/share/i18n/charmaps/IBM857.gz
+#usr/share/i18n/charmaps/IBM860.gz
+#usr/share/i18n/charmaps/IBM861.gz
+#usr/share/i18n/charmaps/IBM862.gz
+#usr/share/i18n/charmaps/IBM863.gz
+#usr/share/i18n/charmaps/IBM864.gz
+#usr/share/i18n/charmaps/IBM865.gz
+#usr/share/i18n/charmaps/IBM866.gz
+#usr/share/i18n/charmaps/IBM866NAV.gz
+#usr/share/i18n/charmaps/IBM868.gz
+#usr/share/i18n/charmaps/IBM869.gz
+#usr/share/i18n/charmaps/IBM870.gz
+#usr/share/i18n/charmaps/IBM871.gz
+#usr/share/i18n/charmaps/IBM874.gz
+#usr/share/i18n/charmaps/IBM875.gz
+#usr/share/i18n/charmaps/IBM880.gz
+#usr/share/i18n/charmaps/IBM891.gz
+#usr/share/i18n/charmaps/IBM903.gz
+#usr/share/i18n/charmaps/IBM904.gz
+#usr/share/i18n/charmaps/IBM905.gz
+#usr/share/i18n/charmaps/IBM918.gz
+#usr/share/i18n/charmaps/IBM922.gz
+#usr/share/i18n/charmaps/IEC_P27-1.gz
+#usr/share/i18n/charmaps/INIS-8.gz
+#usr/share/i18n/charmaps/INIS-CYRILLIC.gz
+#usr/share/i18n/charmaps/INIS.gz
+#usr/share/i18n/charmaps/INVARIANT.gz
+#usr/share/i18n/charmaps/ISIRI-3342.gz
+#usr/share/i18n/charmaps/ISO-8859-1.gz
+#usr/share/i18n/charmaps/ISO-8859-10.gz
+#usr/share/i18n/charmaps/ISO-8859-11.gz
+#usr/share/i18n/charmaps/ISO-8859-13.gz
+#usr/share/i18n/charmaps/ISO-8859-14.gz
+#usr/share/i18n/charmaps/ISO-8859-15.gz
+#usr/share/i18n/charmaps/ISO-8859-16.gz
+#usr/share/i18n/charmaps/ISO-8859-2.gz
+#usr/share/i18n/charmaps/ISO-8859-3.gz
+#usr/share/i18n/charmaps/ISO-8859-4.gz
+#usr/share/i18n/charmaps/ISO-8859-5.gz
+#usr/share/i18n/charmaps/ISO-8859-6.gz
+#usr/share/i18n/charmaps/ISO-8859-7.gz
+#usr/share/i18n/charmaps/ISO-8859-8.gz
+#usr/share/i18n/charmaps/ISO-8859-9.gz
+#usr/share/i18n/charmaps/ISO-IR-197.gz
+#usr/share/i18n/charmaps/ISO-IR-209.gz
+#usr/share/i18n/charmaps/ISO-IR-90.gz
+#usr/share/i18n/charmaps/ISO_10367-BOX.gz
+#usr/share/i18n/charmaps/ISO_10646.gz
+#usr/share/i18n/charmaps/ISO_2033-1983.gz
+#usr/share/i18n/charmaps/ISO_5427-EXT.gz
+#usr/share/i18n/charmaps/ISO_5427.gz
+#usr/share/i18n/charmaps/ISO_5428.gz
+#usr/share/i18n/charmaps/ISO_646.BASIC.gz
+#usr/share/i18n/charmaps/ISO_646.IRV.gz
+#usr/share/i18n/charmaps/ISO_6937-2-25.gz
+#usr/share/i18n/charmaps/ISO_6937-2-ADD.gz
+#usr/share/i18n/charmaps/ISO_6937.gz
+#usr/share/i18n/charmaps/ISO_8859-1,GL.gz
+#usr/share/i18n/charmaps/ISO_8859-SUPP.gz
+#usr/share/i18n/charmaps/IT.gz
+#usr/share/i18n/charmaps/JIS_C6220-1969-JP.gz
+#usr/share/i18n/charmaps/JIS_C6220-1969-RO.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-A.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-B-ADD.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-B.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-HAND-ADD.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-HAND.gz
+#usr/share/i18n/charmaps/JIS_C6229-1984-KANA.gz
+#usr/share/i18n/charmaps/JIS_X0201.gz
+#usr/share/i18n/charmaps/JOHAB.gz
+#usr/share/i18n/charmaps/JUS_I.B1.002.gz
+#usr/share/i18n/charmaps/JUS_I.B1.003-MAC.gz
+#usr/share/i18n/charmaps/JUS_I.B1.003-SERB.gz
+#usr/share/i18n/charmaps/KOI-8.gz
+#usr/share/i18n/charmaps/KOI8-R.gz
+#usr/share/i18n/charmaps/KOI8-T.gz
+#usr/share/i18n/charmaps/KOI8-U.gz
+#usr/share/i18n/charmaps/KSC5636.gz
+#usr/share/i18n/charmaps/LATIN-GREEK-1.gz
+#usr/share/i18n/charmaps/LATIN-GREEK.gz
+#usr/share/i18n/charmaps/MAC-CYRILLIC.gz
+#usr/share/i18n/charmaps/MAC-IS.gz
+#usr/share/i18n/charmaps/MAC-SAMI.gz
+#usr/share/i18n/charmaps/MAC-UK.gz
+#usr/share/i18n/charmaps/MACINTOSH.gz
+#usr/share/i18n/charmaps/MSZ_7795.3.gz
+#usr/share/i18n/charmaps/NATS-DANO-ADD.gz
+#usr/share/i18n/charmaps/NATS-DANO.gz
+#usr/share/i18n/charmaps/NATS-SEFI-ADD.gz
+#usr/share/i18n/charmaps/NATS-SEFI.gz
+#usr/share/i18n/charmaps/NC_NC00-10.gz
+#usr/share/i18n/charmaps/NEXTSTEP.gz
+#usr/share/i18n/charmaps/NF_Z_62-010.gz
+#usr/share/i18n/charmaps/NF_Z_62-010_1973.gz
+#usr/share/i18n/charmaps/NS_4551-1.gz
+#usr/share/i18n/charmaps/NS_4551-2.gz
+#usr/share/i18n/charmaps/PT.gz
+#usr/share/i18n/charmaps/PT2.gz
+#usr/share/i18n/charmaps/SAMI-WS2.gz
+#usr/share/i18n/charmaps/SAMI.gz
+#usr/share/i18n/charmaps/SEN_850200_B.gz
+#usr/share/i18n/charmaps/SEN_850200_C.gz
+#usr/share/i18n/charmaps/SHIFT_JIS.gz
+#usr/share/i18n/charmaps/SHIFT_JISX0213.gz
+#usr/share/i18n/charmaps/T.101-G2.gz
+#usr/share/i18n/charmaps/T.61-7BIT.gz
+#usr/share/i18n/charmaps/T.61-8BIT.gz
+#usr/share/i18n/charmaps/TCVN5712-1.gz
+#usr/share/i18n/charmaps/TIS-620.gz
+#usr/share/i18n/charmaps/TSCII.gz
+usr/share/i18n/charmaps/UTF-8.gz
+#usr/share/i18n/charmaps/VIDEOTEX-SUPPL.gz
+#usr/share/i18n/charmaps/VISCII.gz
+#usr/share/i18n/locales
+#usr/share/i18n/locales/POSIX
+#usr/share/i18n/locales/af_ZA
+#usr/share/i18n/locales/am_ET
+#usr/share/i18n/locales/ar_AE
+#usr/share/i18n/locales/ar_BH
+#usr/share/i18n/locales/ar_DZ
+#usr/share/i18n/locales/ar_EG
+#usr/share/i18n/locales/ar_IN
+#usr/share/i18n/locales/ar_IQ
+#usr/share/i18n/locales/ar_JO
+#usr/share/i18n/locales/ar_KW
+#usr/share/i18n/locales/ar_LB
+#usr/share/i18n/locales/ar_LY
+#usr/share/i18n/locales/ar_MA
+#usr/share/i18n/locales/ar_OM
+#usr/share/i18n/locales/ar_QA
+#usr/share/i18n/locales/ar_SA
+#usr/share/i18n/locales/ar_SD
+#usr/share/i18n/locales/ar_SY
+#usr/share/i18n/locales/ar_TN
+#usr/share/i18n/locales/ar_YE
+#usr/share/i18n/locales/az_AZ
+#usr/share/i18n/locales/be_BY
+#usr/share/i18n/locales/bg_BG
+#usr/share/i18n/locales/bn_BD
+#usr/share/i18n/locales/bn_IN
+#usr/share/i18n/locales/br_FR
+#usr/share/i18n/locales/br_FR@euro
+#usr/share/i18n/locales/bs_BA
+#usr/share/i18n/locales/ca_ES
+#usr/share/i18n/locales/ca_ES@euro
+#usr/share/i18n/locales/cs_CZ
+#usr/share/i18n/locales/cy_GB
+#usr/share/i18n/locales/da_DK
+#usr/share/i18n/locales/de_AT
+#usr/share/i18n/locales/de_AT@euro
+#usr/share/i18n/locales/de_BE
+#usr/share/i18n/locales/de_BE@euro
+#usr/share/i18n/locales/de_CH
+#usr/share/i18n/locales/de_DE
+#usr/share/i18n/locales/de_DE@euro
+#usr/share/i18n/locales/de_LU
+#usr/share/i18n/locales/de_LU@euro
+#usr/share/i18n/locales/el_GR
+#usr/share/i18n/locales/el_GR@euro
+#usr/share/i18n/locales/en_AU
+#usr/share/i18n/locales/en_BW
+#usr/share/i18n/locales/en_CA
+#usr/share/i18n/locales/en_DK
+#usr/share/i18n/locales/en_GB
+#usr/share/i18n/locales/en_HK
+#usr/share/i18n/locales/en_IE
+#usr/share/i18n/locales/en_IE@euro
+#usr/share/i18n/locales/en_IN
+#usr/share/i18n/locales/en_NZ
+#usr/share/i18n/locales/en_PH
+#usr/share/i18n/locales/en_SG
+#usr/share/i18n/locales/en_US
+#usr/share/i18n/locales/en_ZA
+#usr/share/i18n/locales/en_ZW
+#usr/share/i18n/locales/es_AR
+#usr/share/i18n/locales/es_BO
+#usr/share/i18n/locales/es_CL
+#usr/share/i18n/locales/es_CO
+#usr/share/i18n/locales/es_CR
+#usr/share/i18n/locales/es_DO
+#usr/share/i18n/locales/es_EC
+#usr/share/i18n/locales/es_ES
+#usr/share/i18n/locales/es_ES@euro
+#usr/share/i18n/locales/es_GT
+#usr/share/i18n/locales/es_HN
+#usr/share/i18n/locales/es_MX
+#usr/share/i18n/locales/es_NI
+#usr/share/i18n/locales/es_PA
+#usr/share/i18n/locales/es_PE
+#usr/share/i18n/locales/es_PR
+#usr/share/i18n/locales/es_PY
+#usr/share/i18n/locales/es_SV
+#usr/share/i18n/locales/es_US
+#usr/share/i18n/locales/es_UY
+#usr/share/i18n/locales/es_VE
+#usr/share/i18n/locales/et_EE
+#usr/share/i18n/locales/eu_ES
+#usr/share/i18n/locales/eu_ES@euro
+#usr/share/i18n/locales/fa_IR
+#usr/share/i18n/locales/fi_FI
+#usr/share/i18n/locales/fi_FI@euro
+#usr/share/i18n/locales/fo_FO
+#usr/share/i18n/locales/fr_BE
+#usr/share/i18n/locales/fr_BE@euro
+#usr/share/i18n/locales/fr_CA
+#usr/share/i18n/locales/fr_CH
+#usr/share/i18n/locales/fr_FR
+#usr/share/i18n/locales/fr_FR@euro
+#usr/share/i18n/locales/fr_LU
+#usr/share/i18n/locales/fr_LU@euro
+#usr/share/i18n/locales/ga_IE
+#usr/share/i18n/locales/ga_IE@euro
+#usr/share/i18n/locales/gd_GB
+#usr/share/i18n/locales/gl_ES
+#usr/share/i18n/locales/gl_ES@euro
+#usr/share/i18n/locales/gv_GB
+#usr/share/i18n/locales/he_IL
+#usr/share/i18n/locales/hi_IN
+#usr/share/i18n/locales/hr_HR
+#usr/share/i18n/locales/hu_HU
+#usr/share/i18n/locales/hy_AM
+#usr/share/i18n/locales/i18n
+#usr/share/i18n/locales/id_ID
+#usr/share/i18n/locales/is_IS
+#usr/share/i18n/locales/iso14651_t1
+#usr/share/i18n/locales/it_CH
+#usr/share/i18n/locales/it_IT
+#usr/share/i18n/locales/it_IT@euro
+#usr/share/i18n/locales/iw_IL
+#usr/share/i18n/locales/ja_JP
+#usr/share/i18n/locales/ka_GE
+#usr/share/i18n/locales/kl_GL
+#usr/share/i18n/locales/ko_KR
+#usr/share/i18n/locales/kw_GB
+#usr/share/i18n/locales/lt_LT
+#usr/share/i18n/locales/lug_UG
+#usr/share/i18n/locales/lv_LV
+#usr/share/i18n/locales/mi_NZ
+#usr/share/i18n/locales/mk_MK
+#usr/share/i18n/locales/ml_IN
+#usr/share/i18n/locales/mr_IN
+#usr/share/i18n/locales/ms_MY
+#usr/share/i18n/locales/mt_MT
+#usr/share/i18n/locales/nl_BE
+#usr/share/i18n/locales/nl_BE@euro
+#usr/share/i18n/locales/nl_NL
+#usr/share/i18n/locales/nl_NL@euro
+#usr/share/i18n/locales/nn_NO
+#usr/share/i18n/locales/no_NO
+#usr/share/i18n/locales/oc_FR
+#usr/share/i18n/locales/pl_PL
+#usr/share/i18n/locales/pt_BR
+#usr/share/i18n/locales/pt_PT
+#usr/share/i18n/locales/pt_PT@euro
+#usr/share/i18n/locales/ro_RO
+#usr/share/i18n/locales/ru_RU
+#usr/share/i18n/locales/ru_UA
+#usr/share/i18n/locales/se_NO
+#usr/share/i18n/locales/sk_SK
+#usr/share/i18n/locales/sl_SI
+#usr/share/i18n/locales/sq_AL
+#usr/share/i18n/locales/sr_YU
+#usr/share/i18n/locales/sr_YU@cyrillic
+#usr/share/i18n/locales/sv_FI
+#usr/share/i18n/locales/sv_FI@euro
+#usr/share/i18n/locales/sv_SE
+#usr/share/i18n/locales/ta_IN
+#usr/share/i18n/locales/te_IN
+#usr/share/i18n/locales/tg_TJ
+#usr/share/i18n/locales/th_TH
+#usr/share/i18n/locales/ti_ER
+#usr/share/i18n/locales/ti_ET
+#usr/share/i18n/locales/tl_PH
+#usr/share/i18n/locales/tr_TR
+#usr/share/i18n/locales/translit_circle
+#usr/share/i18n/locales/translit_cjk_compat
+#usr/share/i18n/locales/translit_cjk_variants
+#usr/share/i18n/locales/translit_combining
+#usr/share/i18n/locales/translit_compat
+#usr/share/i18n/locales/translit_et
+#usr/share/i18n/locales/translit_font
+#usr/share/i18n/locales/translit_fraction
+#usr/share/i18n/locales/translit_hangul
+#usr/share/i18n/locales/translit_narrow
+#usr/share/i18n/locales/translit_neutral
+#usr/share/i18n/locales/translit_small
+#usr/share/i18n/locales/translit_wide
+#usr/share/i18n/locales/tt_RU
+#usr/share/i18n/locales/uk_UA
+#usr/share/i18n/locales/ur_PK
+#usr/share/i18n/locales/uz_UZ
+#usr/share/i18n/locales/vi_VN
+#usr/share/i18n/locales/wa_BE
+#usr/share/i18n/locales/wa_BE@euro
+#usr/share/i18n/locales/yi_US
+#usr/share/i18n/locales/zh_CN
+#usr/share/i18n/locales/zh_HK
+#usr/share/i18n/locales/zh_SG
+#usr/share/i18n/locales/zh_TW
+#usr/share/info/dir
+#usr/share/info/libc.info
+#usr/share/info/libc.info-1
+#usr/share/info/libc.info-10
+#usr/share/info/libc.info-11
+#usr/share/info/libc.info-12
+#usr/share/info/libc.info-13
+#usr/share/info/libc.info-14
+#usr/share/info/libc.info-15
+#usr/share/info/libc.info-16
+#usr/share/info/libc.info-17
+#usr/share/info/libc.info-18
+#usr/share/info/libc.info-19
+#usr/share/info/libc.info-2
+#usr/share/info/libc.info-20
+#usr/share/info/libc.info-21
+#usr/share/info/libc.info-22
+#usr/share/info/libc.info-23
+#usr/share/info/libc.info-24
+#usr/share/info/libc.info-25
+#usr/share/info/libc.info-26
+#usr/share/info/libc.info-27
+#usr/share/info/libc.info-28
+#usr/share/info/libc.info-29
+#usr/share/info/libc.info-3
+#usr/share/info/libc.info-30
+#usr/share/info/libc.info-31
+#usr/share/info/libc.info-32
+#usr/share/info/libc.info-33
+#usr/share/info/libc.info-34
+#usr/share/info/libc.info-35
+#usr/share/info/libc.info-36
+#usr/share/info/libc.info-37
+#usr/share/info/libc.info-38
+#usr/share/info/libc.info-39
+#usr/share/info/libc.info-4
+#usr/share/info/libc.info-40
+#usr/share/info/libc.info-41
+#usr/share/info/libc.info-42
+#usr/share/info/libc.info-43
+#usr/share/info/libc.info-44
+#usr/share/info/libc.info-45
+#usr/share/info/libc.info-46
+#usr/share/info/libc.info-47
+#usr/share/info/libc.info-48
+#usr/share/info/libc.info-49
+#usr/share/info/libc.info-5
+#usr/share/info/libc.info-50
+#usr/share/info/libc.info-51
+#usr/share/info/libc.info-52
+#usr/share/info/libc.info-53
+#usr/share/info/libc.info-54
+#usr/share/info/libc.info-55
+#usr/share/info/libc.info-56
+#usr/share/info/libc.info-57
+#usr/share/info/libc.info-58
+#usr/share/info/libc.info-59
+#usr/share/info/libc.info-6
+#usr/share/info/libc.info-60
+#usr/share/info/libc.info-61
+#usr/share/info/libc.info-7
+#usr/share/info/libc.info-8
+#usr/share/info/libc.info-9
+#usr/share/locale/be
+#usr/share/locale/be/LC_MESSAGES
+#usr/share/locale/be/LC_MESSAGES/libc.mo
+#usr/share/locale/ca
+#usr/share/locale/ca/LC_MESSAGES
+#usr/share/locale/ca/LC_MESSAGES/libc.mo
+#usr/share/locale/cs
+#usr/share/locale/cs/LC_MESSAGES
+#usr/share/locale/cs/LC_MESSAGES/libc.mo
+#usr/share/locale/da
+#usr/share/locale/da/LC_MESSAGES
+#usr/share/locale/da/LC_MESSAGES/libc.mo
+#usr/share/locale/de
+#usr/share/locale/de/LC_MESSAGES
+#usr/share/locale/de/LC_MESSAGES/libc.mo
+#usr/share/locale/el
+#usr/share/locale/el/LC_MESSAGES
+#usr/share/locale/el/LC_MESSAGES/libc.mo
+#usr/share/locale/en_GB
+#usr/share/locale/en_GB/LC_MESSAGES
+#usr/share/locale/en_GB/LC_MESSAGES/libc.mo
+#usr/share/locale/es
+#usr/share/locale/es/LC_MESSAGES
+#usr/share/locale/es/LC_MESSAGES/libc.mo
+#usr/share/locale/fi
+#usr/share/locale/fi/LC_MESSAGES
+#usr/share/locale/fi/LC_MESSAGES/libc.mo
+#usr/share/locale/fr
+#usr/share/locale/fr/LC_MESSAGES
+#usr/share/locale/fr/LC_MESSAGES/libc.mo
+#usr/share/locale/gl
+#usr/share/locale/gl/LC_MESSAGES
+#usr/share/locale/gl/LC_MESSAGES/libc.mo
+#usr/share/locale/hr
+#usr/share/locale/hr/LC_MESSAGES
+#usr/share/locale/hr/LC_MESSAGES/libc.mo
+#usr/share/locale/hu
+#usr/share/locale/hu/LC_MESSAGES
+#usr/share/locale/hu/LC_MESSAGES/libc.mo
+#usr/share/locale/it
+#usr/share/locale/it/LC_MESSAGES
+#usr/share/locale/it/LC_MESSAGES/libc.mo
+#usr/share/locale/ja
+#usr/share/locale/ja/LC_MESSAGES
+#usr/share/locale/ja/LC_MESSAGES/libc.mo
+#usr/share/locale/ko
+#usr/share/locale/ko/LC_MESSAGES
+#usr/share/locale/ko/LC_MESSAGES/libc.mo
+#usr/share/locale/locale.alias
+#usr/share/locale/nl
+#usr/share/locale/nl/LC_MESSAGES
+#usr/share/locale/nl/LC_MESSAGES/libc.mo
+#usr/share/locale/no
+#usr/share/locale/no/LC_MESSAGES
+#usr/share/locale/no/LC_MESSAGES/libc.mo
+#usr/share/locale/pl
+#usr/share/locale/pl/LC_MESSAGES
+#usr/share/locale/pl/LC_MESSAGES/libc.mo
+#usr/share/locale/pt_BR
+#usr/share/locale/pt_BR/LC_MESSAGES
+#usr/share/locale/pt_BR/LC_MESSAGES/libc.mo
+#usr/share/locale/sk
+#usr/share/locale/sk/LC_MESSAGES
+#usr/share/locale/sk/LC_MESSAGES/libc.mo
+#usr/share/locale/sv
+#usr/share/locale/sv/LC_MESSAGES
+#usr/share/locale/sv/LC_MESSAGES/libc.mo
+#usr/share/locale/tr
+#usr/share/locale/tr/LC_MESSAGES
+#usr/share/locale/tr/LC_MESSAGES/libc.mo
+#usr/share/locale/zh_CN
+#usr/share/locale/zh_CN/LC_MESSAGES
+#usr/share/locale/zh_CN/LC_MESSAGES/libc.mo
+#usr/share/locale/zh_TW
+#usr/share/locale/zh_TW/LC_MESSAGES
+#usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
+#usr/share/zoneinfo/Africa
+#usr/share/zoneinfo/Africa/Abidjan
+#usr/share/zoneinfo/Africa/Accra
+#usr/share/zoneinfo/Africa/Addis_Ababa
+#usr/share/zoneinfo/Africa/Algiers
+#usr/share/zoneinfo/Africa/Asmera
+#usr/share/zoneinfo/Africa/Bamako
+#usr/share/zoneinfo/Africa/Bangui
+#usr/share/zoneinfo/Africa/Banjul
+#usr/share/zoneinfo/Africa/Bissau
+#usr/share/zoneinfo/Africa/Blantyre
+#usr/share/zoneinfo/Africa/Brazzaville
+#usr/share/zoneinfo/Africa/Bujumbura
+#usr/share/zoneinfo/Africa/Cairo
+#usr/share/zoneinfo/Africa/Casablanca
+#usr/share/zoneinfo/Africa/Ceuta
+#usr/share/zoneinfo/Africa/Conakry
+#usr/share/zoneinfo/Africa/Dakar
+#usr/share/zoneinfo/Africa/Dar_es_Salaam
+#usr/share/zoneinfo/Africa/Djibouti
+#usr/share/zoneinfo/Africa/Douala
+#usr/share/zoneinfo/Africa/El_Aaiun
+#usr/share/zoneinfo/Africa/Freetown
+#usr/share/zoneinfo/Africa/Gaborone
+#usr/share/zoneinfo/Africa/Harare
+#usr/share/zoneinfo/Africa/Johannesburg
+#usr/share/zoneinfo/Africa/Kampala
+#usr/share/zoneinfo/Africa/Khartoum
+#usr/share/zoneinfo/Africa/Kigali
+#usr/share/zoneinfo/Africa/Kinshasa
+#usr/share/zoneinfo/Africa/Lagos
+#usr/share/zoneinfo/Africa/Libreville
+#usr/share/zoneinfo/Africa/Lome
+#usr/share/zoneinfo/Africa/Luanda
+#usr/share/zoneinfo/Africa/Lubumbashi
+#usr/share/zoneinfo/Africa/Lusaka
+#usr/share/zoneinfo/Africa/Malabo
+#usr/share/zoneinfo/Africa/Maputo
+#usr/share/zoneinfo/Africa/Maseru
+#usr/share/zoneinfo/Africa/Mbabane
+#usr/share/zoneinfo/Africa/Mogadishu
+#usr/share/zoneinfo/Africa/Monrovia
+#usr/share/zoneinfo/Africa/Nairobi
+#usr/share/zoneinfo/Africa/Ndjamena
+#usr/share/zoneinfo/Africa/Niamey
+#usr/share/zoneinfo/Africa/Nouakchott
+#usr/share/zoneinfo/Africa/Ouagadougou
+#usr/share/zoneinfo/Africa/Porto-Novo
+#usr/share/zoneinfo/Africa/Sao_Tome
+#usr/share/zoneinfo/Africa/Timbuktu
+#usr/share/zoneinfo/Africa/Tripoli
+#usr/share/zoneinfo/Africa/Tunis
+#usr/share/zoneinfo/Africa/Windhoek
+#usr/share/zoneinfo/America
+#usr/share/zoneinfo/America/Adak
+#usr/share/zoneinfo/America/Anchorage
+#usr/share/zoneinfo/America/Anguilla
+#usr/share/zoneinfo/America/Antigua
+#usr/share/zoneinfo/America/Araguaina
+#usr/share/zoneinfo/America/Aruba
+#usr/share/zoneinfo/America/Asuncion
+#usr/share/zoneinfo/America/Atka
+#usr/share/zoneinfo/America/Barbados
+#usr/share/zoneinfo/America/Belem
+#usr/share/zoneinfo/America/Belize
+#usr/share/zoneinfo/America/Boa_Vista
+#usr/share/zoneinfo/America/Bogota
+#usr/share/zoneinfo/America/Boise
+#usr/share/zoneinfo/America/Buenos_Aires
+#usr/share/zoneinfo/America/Cambridge_Bay
+#usr/share/zoneinfo/America/Cancun
+#usr/share/zoneinfo/America/Caracas
+#usr/share/zoneinfo/America/Catamarca
+#usr/share/zoneinfo/America/Cayenne
+#usr/share/zoneinfo/America/Cayman
+#usr/share/zoneinfo/America/Chicago
+#usr/share/zoneinfo/America/Chihuahua
+#usr/share/zoneinfo/America/Cordoba
+#usr/share/zoneinfo/America/Costa_Rica
+#usr/share/zoneinfo/America/Cuiaba
+#usr/share/zoneinfo/America/Curacao
+#usr/share/zoneinfo/America/Danmarkshavn
+#usr/share/zoneinfo/America/Dawson
+#usr/share/zoneinfo/America/Dawson_Creek
+#usr/share/zoneinfo/America/Denver
+#usr/share/zoneinfo/America/Detroit
+#usr/share/zoneinfo/America/Dominica
+#usr/share/zoneinfo/America/Edmonton
+#usr/share/zoneinfo/America/Eirunepe
+#usr/share/zoneinfo/America/El_Salvador
+#usr/share/zoneinfo/America/Ensenada
+#usr/share/zoneinfo/America/Fort_Wayne
+#usr/share/zoneinfo/America/Fortaleza
+#usr/share/zoneinfo/America/Glace_Bay
+#usr/share/zoneinfo/America/Godthab
+#usr/share/zoneinfo/America/Goose_Bay
+#usr/share/zoneinfo/America/Grand_Turk
+#usr/share/zoneinfo/America/Grenada
+#usr/share/zoneinfo/America/Guadeloupe
+#usr/share/zoneinfo/America/Guatemala
+#usr/share/zoneinfo/America/Guayaquil
+#usr/share/zoneinfo/America/Guyana
+#usr/share/zoneinfo/America/Halifax
+#usr/share/zoneinfo/America/Havana
+#usr/share/zoneinfo/America/Hermosillo
+#usr/share/zoneinfo/America/Indiana
+#usr/share/zoneinfo/America/Indiana/Indianapolis
+#usr/share/zoneinfo/America/Indiana/Knox
+#usr/share/zoneinfo/America/Indiana/Marengo
+#usr/share/zoneinfo/America/Indiana/Vevay
+#usr/share/zoneinfo/America/Indianapolis
+#usr/share/zoneinfo/America/Inuvik
+#usr/share/zoneinfo/America/Iqaluit
+#usr/share/zoneinfo/America/Jamaica
+#usr/share/zoneinfo/America/Jujuy
+#usr/share/zoneinfo/America/Juneau
+#usr/share/zoneinfo/America/Kentucky
+#usr/share/zoneinfo/America/Kentucky/Louisville
+#usr/share/zoneinfo/America/Kentucky/Monticello
+#usr/share/zoneinfo/America/Knox_IN
+#usr/share/zoneinfo/America/La_Paz
+#usr/share/zoneinfo/America/Lima
+#usr/share/zoneinfo/America/Los_Angeles
+#usr/share/zoneinfo/America/Louisville
+#usr/share/zoneinfo/America/Maceio
+#usr/share/zoneinfo/America/Managua
+#usr/share/zoneinfo/America/Manaus
+#usr/share/zoneinfo/America/Martinique
+#usr/share/zoneinfo/America/Mazatlan
+#usr/share/zoneinfo/America/Mendoza
+#usr/share/zoneinfo/America/Menominee
+#usr/share/zoneinfo/America/Merida
+#usr/share/zoneinfo/America/Mexico_City
+#usr/share/zoneinfo/America/Miquelon
+#usr/share/zoneinfo/America/Monterrey
+#usr/share/zoneinfo/America/Montevideo
+#usr/share/zoneinfo/America/Montreal
+#usr/share/zoneinfo/America/Montserrat
+#usr/share/zoneinfo/America/Nassau
+#usr/share/zoneinfo/America/New_York
+#usr/share/zoneinfo/America/Nipigon
+#usr/share/zoneinfo/America/Nome
+#usr/share/zoneinfo/America/Noronha
+#usr/share/zoneinfo/America/North_Dakota
+#usr/share/zoneinfo/America/North_Dakota/Center
+#usr/share/zoneinfo/America/Panama
+#usr/share/zoneinfo/America/Pangnirtung
+#usr/share/zoneinfo/America/Paramaribo
+#usr/share/zoneinfo/America/Phoenix
+#usr/share/zoneinfo/America/Port-au-Prince
+#usr/share/zoneinfo/America/Port_of_Spain
+#usr/share/zoneinfo/America/Porto_Acre
+#usr/share/zoneinfo/America/Porto_Velho
+#usr/share/zoneinfo/America/Puerto_Rico
+#usr/share/zoneinfo/America/Rainy_River
+#usr/share/zoneinfo/America/Rankin_Inlet
+#usr/share/zoneinfo/America/Recife
+#usr/share/zoneinfo/America/Regina
+#usr/share/zoneinfo/America/Rio_Branco
+#usr/share/zoneinfo/America/Rosario
+#usr/share/zoneinfo/America/Santiago
+#usr/share/zoneinfo/America/Santo_Domingo
+#usr/share/zoneinfo/America/Sao_Paulo
+#usr/share/zoneinfo/America/Scoresbysund
+#usr/share/zoneinfo/America/Shiprock
+#usr/share/zoneinfo/America/St_Johns
+#usr/share/zoneinfo/America/St_Kitts
+#usr/share/zoneinfo/America/St_Lucia
+#usr/share/zoneinfo/America/St_Thomas
+#usr/share/zoneinfo/America/St_Vincent
+#usr/share/zoneinfo/America/Swift_Current
+#usr/share/zoneinfo/America/Tegucigalpa
+#usr/share/zoneinfo/America/Thule
+#usr/share/zoneinfo/America/Thunder_Bay
+#usr/share/zoneinfo/America/Tijuana
+#usr/share/zoneinfo/America/Tortola
+#usr/share/zoneinfo/America/Vancouver
+#usr/share/zoneinfo/America/Virgin
+#usr/share/zoneinfo/America/Whitehorse
+#usr/share/zoneinfo/America/Winnipeg
+#usr/share/zoneinfo/America/Yakutat
+#usr/share/zoneinfo/America/Yellowknife
+#usr/share/zoneinfo/Antarctica
+#usr/share/zoneinfo/Antarctica/Casey
+#usr/share/zoneinfo/Antarctica/Davis
+#usr/share/zoneinfo/Antarctica/DumontDUrville
+#usr/share/zoneinfo/Antarctica/Mawson
+#usr/share/zoneinfo/Antarctica/McMurdo
+#usr/share/zoneinfo/Antarctica/Palmer
+#usr/share/zoneinfo/Antarctica/South_Pole
+#usr/share/zoneinfo/Antarctica/Syowa
+#usr/share/zoneinfo/Antarctica/Vostok
+#usr/share/zoneinfo/Arctic
+#usr/share/zoneinfo/Arctic/Longyearbyen
+#usr/share/zoneinfo/Asia
+#usr/share/zoneinfo/Asia/Aden
+#usr/share/zoneinfo/Asia/Almaty
+#usr/share/zoneinfo/Asia/Amman
+#usr/share/zoneinfo/Asia/Anadyr
+#usr/share/zoneinfo/Asia/Aqtau
+#usr/share/zoneinfo/Asia/Aqtobe
+#usr/share/zoneinfo/Asia/Ashgabat
+#usr/share/zoneinfo/Asia/Ashkhabad
+#usr/share/zoneinfo/Asia/Baghdad
+#usr/share/zoneinfo/Asia/Bahrain
+#usr/share/zoneinfo/Asia/Baku
+#usr/share/zoneinfo/Asia/Bangkok
+#usr/share/zoneinfo/Asia/Beirut
+#usr/share/zoneinfo/Asia/Bishkek
+#usr/share/zoneinfo/Asia/Brunei
+#usr/share/zoneinfo/Asia/Calcutta
+#usr/share/zoneinfo/Asia/Choibalsan
+#usr/share/zoneinfo/Asia/Chongqing
+#usr/share/zoneinfo/Asia/Chungking
+#usr/share/zoneinfo/Asia/Colombo
+#usr/share/zoneinfo/Asia/Dacca
+#usr/share/zoneinfo/Asia/Damascus
+#usr/share/zoneinfo/Asia/Dhaka
+#usr/share/zoneinfo/Asia/Dili
+#usr/share/zoneinfo/Asia/Dubai
+#usr/share/zoneinfo/Asia/Dushanbe
+#usr/share/zoneinfo/Asia/Gaza
+#usr/share/zoneinfo/Asia/Harbin
+#usr/share/zoneinfo/Asia/Hong_Kong
+#usr/share/zoneinfo/Asia/Hovd
+#usr/share/zoneinfo/Asia/Irkutsk
+#usr/share/zoneinfo/Asia/Istanbul
+#usr/share/zoneinfo/Asia/Jakarta
+#usr/share/zoneinfo/Asia/Jayapura
+#usr/share/zoneinfo/Asia/Jerusalem
+#usr/share/zoneinfo/Asia/Kabul
+#usr/share/zoneinfo/Asia/Kamchatka
+#usr/share/zoneinfo/Asia/Karachi
+#usr/share/zoneinfo/Asia/Kashgar
+#usr/share/zoneinfo/Asia/Katmandu
+#usr/share/zoneinfo/Asia/Krasnoyarsk
+#usr/share/zoneinfo/Asia/Kuala_Lumpur
+#usr/share/zoneinfo/Asia/Kuching
+#usr/share/zoneinfo/Asia/Kuwait
+#usr/share/zoneinfo/Asia/Macao
+#usr/share/zoneinfo/Asia/Macau
+#usr/share/zoneinfo/Asia/Magadan
+#usr/share/zoneinfo/Asia/Makassar
+#usr/share/zoneinfo/Asia/Manila
+#usr/share/zoneinfo/Asia/Muscat
+#usr/share/zoneinfo/Asia/Nicosia
+#usr/share/zoneinfo/Asia/Novosibirsk
+#usr/share/zoneinfo/Asia/Omsk
+#usr/share/zoneinfo/Asia/Oral
+#usr/share/zoneinfo/Asia/Phnom_Penh
+#usr/share/zoneinfo/Asia/Pontianak
+#usr/share/zoneinfo/Asia/Pyongyang
+#usr/share/zoneinfo/Asia/Qatar
+#usr/share/zoneinfo/Asia/Qyzylorda
+#usr/share/zoneinfo/Asia/Rangoon
+#usr/share/zoneinfo/Asia/Riyadh
+#usr/share/zoneinfo/Asia/Riyadh87
+#usr/share/zoneinfo/Asia/Riyadh88
+#usr/share/zoneinfo/Asia/Riyadh89
+#usr/share/zoneinfo/Asia/Saigon
+#usr/share/zoneinfo/Asia/Sakhalin
+#usr/share/zoneinfo/Asia/Samarkand
+#usr/share/zoneinfo/Asia/Seoul
+#usr/share/zoneinfo/Asia/Shanghai
+#usr/share/zoneinfo/Asia/Singapore
+#usr/share/zoneinfo/Asia/Taipei
+#usr/share/zoneinfo/Asia/Tashkent
+#usr/share/zoneinfo/Asia/Tbilisi
+#usr/share/zoneinfo/Asia/Tehran
+#usr/share/zoneinfo/Asia/Tel_Aviv
+#usr/share/zoneinfo/Asia/Thimbu
+#usr/share/zoneinfo/Asia/Thimphu
+#usr/share/zoneinfo/Asia/Tokyo
+#usr/share/zoneinfo/Asia/Ujung_Pandang
+#usr/share/zoneinfo/Asia/Ulaanbaatar
+#usr/share/zoneinfo/Asia/Ulan_Bator
+#usr/share/zoneinfo/Asia/Urumqi
+#usr/share/zoneinfo/Asia/Vientiane
+#usr/share/zoneinfo/Asia/Vladivostok
+#usr/share/zoneinfo/Asia/Yakutsk
+#usr/share/zoneinfo/Asia/Yekaterinburg
+#usr/share/zoneinfo/Asia/Yerevan
+#usr/share/zoneinfo/Atlantic
+#usr/share/zoneinfo/Atlantic/Azores
+#usr/share/zoneinfo/Atlantic/Bermuda
+#usr/share/zoneinfo/Atlantic/Canary
+#usr/share/zoneinfo/Atlantic/Cape_Verde
+#usr/share/zoneinfo/Atlantic/Faeroe
+#usr/share/zoneinfo/Atlantic/Jan_Mayen
+#usr/share/zoneinfo/Atlantic/Madeira
+#usr/share/zoneinfo/Atlantic/Reykjavik
+#usr/share/zoneinfo/Atlantic/South_Georgia
+#usr/share/zoneinfo/Atlantic/St_Helena
+#usr/share/zoneinfo/Atlantic/Stanley
+#usr/share/zoneinfo/Australia
+#usr/share/zoneinfo/Australia/ACT
+#usr/share/zoneinfo/Australia/Adelaide
+#usr/share/zoneinfo/Australia/Brisbane
+#usr/share/zoneinfo/Australia/Broken_Hill
+#usr/share/zoneinfo/Australia/Canberra
+#usr/share/zoneinfo/Australia/Darwin
+#usr/share/zoneinfo/Australia/Hobart
+#usr/share/zoneinfo/Australia/LHI
+#usr/share/zoneinfo/Australia/Lindeman
+#usr/share/zoneinfo/Australia/Lord_Howe
+#usr/share/zoneinfo/Australia/Melbourne
+#usr/share/zoneinfo/Australia/NSW
+#usr/share/zoneinfo/Australia/North
+#usr/share/zoneinfo/Australia/Perth
+#usr/share/zoneinfo/Australia/Queensland
+#usr/share/zoneinfo/Australia/South
+#usr/share/zoneinfo/Australia/Sydney
+#usr/share/zoneinfo/Australia/Tasmania
+#usr/share/zoneinfo/Australia/Victoria
+#usr/share/zoneinfo/Australia/West
+#usr/share/zoneinfo/Australia/Yancowinna
+#usr/share/zoneinfo/Brazil
+#usr/share/zoneinfo/Brazil/Acre
+#usr/share/zoneinfo/Brazil/DeNoronha
+#usr/share/zoneinfo/Brazil/East
+#usr/share/zoneinfo/Brazil/West
+#usr/share/zoneinfo/CET
+#usr/share/zoneinfo/CST6CDT
+#usr/share/zoneinfo/Canada
+#usr/share/zoneinfo/Canada/Atlantic
+#usr/share/zoneinfo/Canada/Central
+#usr/share/zoneinfo/Canada/East-Saskatchewan
+#usr/share/zoneinfo/Canada/Eastern
+#usr/share/zoneinfo/Canada/Mountain
+#usr/share/zoneinfo/Canada/Newfoundland
+#usr/share/zoneinfo/Canada/Pacific
+#usr/share/zoneinfo/Canada/Saskatchewan
+#usr/share/zoneinfo/Canada/Yukon
+#usr/share/zoneinfo/Chile
+#usr/share/zoneinfo/Chile/Continental
+#usr/share/zoneinfo/Chile/EasterIsland
+#usr/share/zoneinfo/Cuba
+#usr/share/zoneinfo/EET
+#usr/share/zoneinfo/EST
+#usr/share/zoneinfo/EST5EDT
+#usr/share/zoneinfo/Egypt
+#usr/share/zoneinfo/Eire
+#usr/share/zoneinfo/Etc
+#usr/share/zoneinfo/Etc/GMT
+#usr/share/zoneinfo/Etc/GMT+0
+#usr/share/zoneinfo/Etc/GMT+1
+#usr/share/zoneinfo/Etc/GMT+10
+#usr/share/zoneinfo/Etc/GMT+11
+#usr/share/zoneinfo/Etc/GMT+12
+#usr/share/zoneinfo/Etc/GMT+2
+#usr/share/zoneinfo/Etc/GMT+3
+#usr/share/zoneinfo/Etc/GMT+4
+#usr/share/zoneinfo/Etc/GMT+5
+#usr/share/zoneinfo/Etc/GMT+6
+#usr/share/zoneinfo/Etc/GMT+7
+#usr/share/zoneinfo/Etc/GMT+8
+#usr/share/zoneinfo/Etc/GMT+9
+#usr/share/zoneinfo/Etc/GMT-0
+#usr/share/zoneinfo/Etc/GMT-1
+#usr/share/zoneinfo/Etc/GMT-10
+#usr/share/zoneinfo/Etc/GMT-11
+#usr/share/zoneinfo/Etc/GMT-12
+#usr/share/zoneinfo/Etc/GMT-13
+#usr/share/zoneinfo/Etc/GMT-14
+#usr/share/zoneinfo/Etc/GMT-2
+#usr/share/zoneinfo/Etc/GMT-3
+#usr/share/zoneinfo/Etc/GMT-4
+#usr/share/zoneinfo/Etc/GMT-5
+#usr/share/zoneinfo/Etc/GMT-6
+#usr/share/zoneinfo/Etc/GMT-7
+#usr/share/zoneinfo/Etc/GMT-8
+#usr/share/zoneinfo/Etc/GMT-9
+#usr/share/zoneinfo/Etc/GMT0
+#usr/share/zoneinfo/Etc/Greenwich
+#usr/share/zoneinfo/Etc/UCT
+#usr/share/zoneinfo/Etc/UTC
+#usr/share/zoneinfo/Etc/Universal
+#usr/share/zoneinfo/Etc/Zulu
+#usr/share/zoneinfo/Europe
+#usr/share/zoneinfo/Europe/Amsterdam
+#usr/share/zoneinfo/Europe/Andorra
+#usr/share/zoneinfo/Europe/Athens
+#usr/share/zoneinfo/Europe/Belfast
+#usr/share/zoneinfo/Europe/Belgrade
+#usr/share/zoneinfo/Europe/Berlin
+#usr/share/zoneinfo/Europe/Bratislava
+#usr/share/zoneinfo/Europe/Brussels
+#usr/share/zoneinfo/Europe/Bucharest
+#usr/share/zoneinfo/Europe/Budapest
+#usr/share/zoneinfo/Europe/Chisinau
+#usr/share/zoneinfo/Europe/Copenhagen
+#usr/share/zoneinfo/Europe/Dublin
+#usr/share/zoneinfo/Europe/Gibraltar
+#usr/share/zoneinfo/Europe/Helsinki
+#usr/share/zoneinfo/Europe/Istanbul
+#usr/share/zoneinfo/Europe/Kaliningrad
+#usr/share/zoneinfo/Europe/Kiev
+#usr/share/zoneinfo/Europe/Lisbon
+#usr/share/zoneinfo/Europe/Ljubljana
+#usr/share/zoneinfo/Europe/London
+#usr/share/zoneinfo/Europe/Luxembourg
+#usr/share/zoneinfo/Europe/Madrid
+#usr/share/zoneinfo/Europe/Malta
+#usr/share/zoneinfo/Europe/Minsk
+#usr/share/zoneinfo/Europe/Monaco
+#usr/share/zoneinfo/Europe/Moscow
+#usr/share/zoneinfo/Europe/Nicosia
+#usr/share/zoneinfo/Europe/Oslo
+#usr/share/zoneinfo/Europe/Paris
+#usr/share/zoneinfo/Europe/Prague
+#usr/share/zoneinfo/Europe/Riga
+#usr/share/zoneinfo/Europe/Rome
+#usr/share/zoneinfo/Europe/Samara
+#usr/share/zoneinfo/Europe/San_Marino
+#usr/share/zoneinfo/Europe/Sarajevo
+#usr/share/zoneinfo/Europe/Simferopol
+#usr/share/zoneinfo/Europe/Skopje
+#usr/share/zoneinfo/Europe/Sofia
+#usr/share/zoneinfo/Europe/Stockholm
+#usr/share/zoneinfo/Europe/Tallinn
+#usr/share/zoneinfo/Europe/Tirane
+#usr/share/zoneinfo/Europe/Tiraspol
+#usr/share/zoneinfo/Europe/Uzhgorod
+#usr/share/zoneinfo/Europe/Vaduz
+#usr/share/zoneinfo/Europe/Vatican
+#usr/share/zoneinfo/Europe/Vienna
+#usr/share/zoneinfo/Europe/Vilnius
+#usr/share/zoneinfo/Europe/Warsaw
+#usr/share/zoneinfo/Europe/Zagreb
+#usr/share/zoneinfo/Europe/Zaporozhye
+#usr/share/zoneinfo/Europe/Zurich
+#usr/share/zoneinfo/Factory
+#usr/share/zoneinfo/GB
+#usr/share/zoneinfo/GB-Eire
+#usr/share/zoneinfo/GMT
+#usr/share/zoneinfo/GMT+0
+#usr/share/zoneinfo/GMT-0
+#usr/share/zoneinfo/GMT0
+#usr/share/zoneinfo/Greenwich
+#usr/share/zoneinfo/HST
+#usr/share/zoneinfo/Hongkong
+#usr/share/zoneinfo/Iceland
+#usr/share/zoneinfo/Indian
+#usr/share/zoneinfo/Indian/Antananarivo
+#usr/share/zoneinfo/Indian/Chagos
+#usr/share/zoneinfo/Indian/Christmas
+#usr/share/zoneinfo/Indian/Cocos
+#usr/share/zoneinfo/Indian/Comoro
+#usr/share/zoneinfo/Indian/Kerguelen
+#usr/share/zoneinfo/Indian/Mahe
+#usr/share/zoneinfo/Indian/Maldives
+#usr/share/zoneinfo/Indian/Mauritius
+#usr/share/zoneinfo/Indian/Mayotte
+#usr/share/zoneinfo/Indian/Reunion
+#usr/share/zoneinfo/Iran
+#usr/share/zoneinfo/Israel
+#usr/share/zoneinfo/Jamaica
+#usr/share/zoneinfo/Japan
+#usr/share/zoneinfo/Kwajalein
+#usr/share/zoneinfo/Libya
+#usr/share/zoneinfo/MET
+#usr/share/zoneinfo/MST
+#usr/share/zoneinfo/MST7MDT
+#usr/share/zoneinfo/Mexico
+#usr/share/zoneinfo/Mexico/BajaNorte
+#usr/share/zoneinfo/Mexico/BajaSur
+#usr/share/zoneinfo/Mexico/General
+#usr/share/zoneinfo/Mideast
+#usr/share/zoneinfo/Mideast/Riyadh87
+#usr/share/zoneinfo/Mideast/Riyadh88
+#usr/share/zoneinfo/Mideast/Riyadh89
+#usr/share/zoneinfo/NZ
+#usr/share/zoneinfo/NZ-CHAT
+#usr/share/zoneinfo/Navajo
+#usr/share/zoneinfo/PRC
+#usr/share/zoneinfo/PST8PDT
+#usr/share/zoneinfo/Pacific
+#usr/share/zoneinfo/Pacific/Apia
+#usr/share/zoneinfo/Pacific/Auckland
+#usr/share/zoneinfo/Pacific/Chatham
+#usr/share/zoneinfo/Pacific/Easter
+#usr/share/zoneinfo/Pacific/Efate
+#usr/share/zoneinfo/Pacific/Enderbury
+#usr/share/zoneinfo/Pacific/Fakaofo
+#usr/share/zoneinfo/Pacific/Fiji
+#usr/share/zoneinfo/Pacific/Funafuti
+#usr/share/zoneinfo/Pacific/Galapagos
+#usr/share/zoneinfo/Pacific/Gambier
+#usr/share/zoneinfo/Pacific/Guadalcanal
+#usr/share/zoneinfo/Pacific/Guam
+#usr/share/zoneinfo/Pacific/Honolulu
+#usr/share/zoneinfo/Pacific/Johnston
+#usr/share/zoneinfo/Pacific/Kiritimati
+#usr/share/zoneinfo/Pacific/Kosrae
+#usr/share/zoneinfo/Pacific/Kwajalein
+#usr/share/zoneinfo/Pacific/Majuro
+#usr/share/zoneinfo/Pacific/Marquesas
+#usr/share/zoneinfo/Pacific/Midway
+#usr/share/zoneinfo/Pacific/Nauru
+#usr/share/zoneinfo/Pacific/Niue
+#usr/share/zoneinfo/Pacific/Norfolk
+#usr/share/zoneinfo/Pacific/Noumea
+#usr/share/zoneinfo/Pacific/Pago_Pago
+#usr/share/zoneinfo/Pacific/Palau
+#usr/share/zoneinfo/Pacific/Pitcairn
+#usr/share/zoneinfo/Pacific/Ponape
+#usr/share/zoneinfo/Pacific/Port_Moresby
+#usr/share/zoneinfo/Pacific/Rarotonga
+#usr/share/zoneinfo/Pacific/Saipan
+#usr/share/zoneinfo/Pacific/Samoa
+#usr/share/zoneinfo/Pacific/Tahiti
+#usr/share/zoneinfo/Pacific/Tarawa
+#usr/share/zoneinfo/Pacific/Tongatapu
+#usr/share/zoneinfo/Pacific/Truk
+#usr/share/zoneinfo/Pacific/Wake
+#usr/share/zoneinfo/Pacific/Wallis
+#usr/share/zoneinfo/Pacific/Yap
+#usr/share/zoneinfo/Poland
+#usr/share/zoneinfo/Portugal
+#usr/share/zoneinfo/ROC
+#usr/share/zoneinfo/ROK
+#usr/share/zoneinfo/Singapore
+#usr/share/zoneinfo/SystemV
+#usr/share/zoneinfo/SystemV/AST4
+#usr/share/zoneinfo/SystemV/AST4ADT
+#usr/share/zoneinfo/SystemV/CST6
+#usr/share/zoneinfo/SystemV/CST6CDT
+#usr/share/zoneinfo/SystemV/EST5
+#usr/share/zoneinfo/SystemV/EST5EDT
+#usr/share/zoneinfo/SystemV/HST10
+#usr/share/zoneinfo/SystemV/MST7
+#usr/share/zoneinfo/SystemV/MST7MDT
+#usr/share/zoneinfo/SystemV/PST8
+#usr/share/zoneinfo/SystemV/PST8PDT
+#usr/share/zoneinfo/SystemV/YST9
+#usr/share/zoneinfo/SystemV/YST9YDT
+#usr/share/zoneinfo/Turkey
+#usr/share/zoneinfo/UCT
+#usr/share/zoneinfo/US
+#usr/share/zoneinfo/US/Alaska
+#usr/share/zoneinfo/US/Aleutian
+#usr/share/zoneinfo/US/Arizona
+#usr/share/zoneinfo/US/Central
+#usr/share/zoneinfo/US/East-Indiana
+#usr/share/zoneinfo/US/Eastern
+#usr/share/zoneinfo/US/Hawaii
+#usr/share/zoneinfo/US/Indiana-Starke
+#usr/share/zoneinfo/US/Michigan
+#usr/share/zoneinfo/US/Mountain
+#usr/share/zoneinfo/US/Pacific
+#usr/share/zoneinfo/US/Samoa
+#usr/share/zoneinfo/UTC
+#usr/share/zoneinfo/Universal
+#usr/share/zoneinfo/W-SU
+#usr/share/zoneinfo/WET
+#usr/share/zoneinfo/Zulu
+#usr/share/zoneinfo/iso3166.tab
+usr/share/zoneinfo/posix
+#usr/share/zoneinfo/posix/Africa
+#usr/share/zoneinfo/posix/Africa/Abidjan
+#usr/share/zoneinfo/posix/Africa/Accra
+#usr/share/zoneinfo/posix/Africa/Addis_Ababa
+#usr/share/zoneinfo/posix/Africa/Algiers
+#usr/share/zoneinfo/posix/Africa/Asmera
+#usr/share/zoneinfo/posix/Africa/Bamako
+#usr/share/zoneinfo/posix/Africa/Bangui
+#usr/share/zoneinfo/posix/Africa/Banjul
+#usr/share/zoneinfo/posix/Africa/Bissau
+#usr/share/zoneinfo/posix/Africa/Blantyre
+#usr/share/zoneinfo/posix/Africa/Brazzaville
+#usr/share/zoneinfo/posix/Africa/Bujumbura
+#usr/share/zoneinfo/posix/Africa/Cairo
+#usr/share/zoneinfo/posix/Africa/Casablanca
+#usr/share/zoneinfo/posix/Africa/Ceuta
+#usr/share/zoneinfo/posix/Africa/Conakry
+#usr/share/zoneinfo/posix/Africa/Dakar
+#usr/share/zoneinfo/posix/Africa/Dar_es_Salaam
+#usr/share/zoneinfo/posix/Africa/Djibouti
+#usr/share/zoneinfo/posix/Africa/Douala
+#usr/share/zoneinfo/posix/Africa/El_Aaiun
+#usr/share/zoneinfo/posix/Africa/Freetown
+#usr/share/zoneinfo/posix/Africa/Gaborone
+#usr/share/zoneinfo/posix/Africa/Harare
+#usr/share/zoneinfo/posix/Africa/Johannesburg
+#usr/share/zoneinfo/posix/Africa/Kampala
+#usr/share/zoneinfo/posix/Africa/Khartoum
+#usr/share/zoneinfo/posix/Africa/Kigali
+#usr/share/zoneinfo/posix/Africa/Kinshasa
+#usr/share/zoneinfo/posix/Africa/Lagos
+#usr/share/zoneinfo/posix/Africa/Libreville
+#usr/share/zoneinfo/posix/Africa/Lome
+#usr/share/zoneinfo/posix/Africa/Luanda
+#usr/share/zoneinfo/posix/Africa/Lubumbashi
+#usr/share/zoneinfo/posix/Africa/Lusaka
+#usr/share/zoneinfo/posix/Africa/Malabo
+#usr/share/zoneinfo/posix/Africa/Maputo
+#usr/share/zoneinfo/posix/Africa/Maseru
+#usr/share/zoneinfo/posix/Africa/Mbabane
+#usr/share/zoneinfo/posix/Africa/Mogadishu
+#usr/share/zoneinfo/posix/Africa/Monrovia
+#usr/share/zoneinfo/posix/Africa/Nairobi
+#usr/share/zoneinfo/posix/Africa/Ndjamena
+#usr/share/zoneinfo/posix/Africa/Niamey
+#usr/share/zoneinfo/posix/Africa/Nouakchott
+#usr/share/zoneinfo/posix/Africa/Ouagadougou
+#usr/share/zoneinfo/posix/Africa/Porto-Novo
+#usr/share/zoneinfo/posix/Africa/Sao_Tome
+#usr/share/zoneinfo/posix/Africa/Timbuktu
+#usr/share/zoneinfo/posix/Africa/Tripoli
+#usr/share/zoneinfo/posix/Africa/Tunis
+#usr/share/zoneinfo/posix/Africa/Windhoek
+#usr/share/zoneinfo/posix/America
+#usr/share/zoneinfo/posix/America/Adak
+#usr/share/zoneinfo/posix/America/Anchorage
+#usr/share/zoneinfo/posix/America/Anguilla
+#usr/share/zoneinfo/posix/America/Antigua
+#usr/share/zoneinfo/posix/America/Araguaina
+#usr/share/zoneinfo/posix/America/Aruba
+#usr/share/zoneinfo/posix/America/Asuncion
+#usr/share/zoneinfo/posix/America/Atka
+#usr/share/zoneinfo/posix/America/Barbados
+#usr/share/zoneinfo/posix/America/Belem
+#usr/share/zoneinfo/posix/America/Belize
+#usr/share/zoneinfo/posix/America/Boa_Vista
+#usr/share/zoneinfo/posix/America/Bogota
+#usr/share/zoneinfo/posix/America/Boise
+#usr/share/zoneinfo/posix/America/Buenos_Aires
+#usr/share/zoneinfo/posix/America/Cambridge_Bay
+#usr/share/zoneinfo/posix/America/Cancun
+#usr/share/zoneinfo/posix/America/Caracas
+#usr/share/zoneinfo/posix/America/Catamarca
+#usr/share/zoneinfo/posix/America/Cayenne
+#usr/share/zoneinfo/posix/America/Cayman
+#usr/share/zoneinfo/posix/America/Chicago
+#usr/share/zoneinfo/posix/America/Chihuahua
+#usr/share/zoneinfo/posix/America/Cordoba
+#usr/share/zoneinfo/posix/America/Costa_Rica
+#usr/share/zoneinfo/posix/America/Cuiaba
+#usr/share/zoneinfo/posix/America/Curacao
+#usr/share/zoneinfo/posix/America/Danmarkshavn
+#usr/share/zoneinfo/posix/America/Dawson
+#usr/share/zoneinfo/posix/America/Dawson_Creek
+#usr/share/zoneinfo/posix/America/Denver
+#usr/share/zoneinfo/posix/America/Detroit
+#usr/share/zoneinfo/posix/America/Dominica
+#usr/share/zoneinfo/posix/America/Edmonton
+#usr/share/zoneinfo/posix/America/Eirunepe
+#usr/share/zoneinfo/posix/America/El_Salvador
+#usr/share/zoneinfo/posix/America/Ensenada
+#usr/share/zoneinfo/posix/America/Fort_Wayne
+#usr/share/zoneinfo/posix/America/Fortaleza
+#usr/share/zoneinfo/posix/America/Glace_Bay
+#usr/share/zoneinfo/posix/America/Godthab
+#usr/share/zoneinfo/posix/America/Goose_Bay
+#usr/share/zoneinfo/posix/America/Grand_Turk
+#usr/share/zoneinfo/posix/America/Grenada
+#usr/share/zoneinfo/posix/America/Guadeloupe
+#usr/share/zoneinfo/posix/America/Guatemala
+#usr/share/zoneinfo/posix/America/Guayaquil
+#usr/share/zoneinfo/posix/America/Guyana
+#usr/share/zoneinfo/posix/America/Halifax
+#usr/share/zoneinfo/posix/America/Havana
+#usr/share/zoneinfo/posix/America/Hermosillo
+#usr/share/zoneinfo/posix/America/Indiana
+#usr/share/zoneinfo/posix/America/Indiana/Indianapolis
+#usr/share/zoneinfo/posix/America/Indiana/Knox
+#usr/share/zoneinfo/posix/America/Indiana/Marengo
+#usr/share/zoneinfo/posix/America/Indiana/Vevay
+#usr/share/zoneinfo/posix/America/Indianapolis
+#usr/share/zoneinfo/posix/America/Inuvik
+#usr/share/zoneinfo/posix/America/Iqaluit
+#usr/share/zoneinfo/posix/America/Jamaica
+#usr/share/zoneinfo/posix/America/Jujuy
+#usr/share/zoneinfo/posix/America/Juneau
+#usr/share/zoneinfo/posix/America/Kentucky
+#usr/share/zoneinfo/posix/America/Kentucky/Louisville
+#usr/share/zoneinfo/posix/America/Kentucky/Monticello
+#usr/share/zoneinfo/posix/America/Knox_IN
+#usr/share/zoneinfo/posix/America/La_Paz
+#usr/share/zoneinfo/posix/America/Lima
+#usr/share/zoneinfo/posix/America/Los_Angeles
+#usr/share/zoneinfo/posix/America/Louisville
+#usr/share/zoneinfo/posix/America/Maceio
+#usr/share/zoneinfo/posix/America/Managua
+#usr/share/zoneinfo/posix/America/Manaus
+#usr/share/zoneinfo/posix/America/Martinique
+#usr/share/zoneinfo/posix/America/Mazatlan
+#usr/share/zoneinfo/posix/America/Mendoza
+#usr/share/zoneinfo/posix/America/Menominee
+#usr/share/zoneinfo/posix/America/Merida
+#usr/share/zoneinfo/posix/America/Mexico_City
+#usr/share/zoneinfo/posix/America/Miquelon
+#usr/share/zoneinfo/posix/America/Monterrey
+#usr/share/zoneinfo/posix/America/Montevideo
+#usr/share/zoneinfo/posix/America/Montreal
+#usr/share/zoneinfo/posix/America/Montserrat
+#usr/share/zoneinfo/posix/America/Nassau
+#usr/share/zoneinfo/posix/America/New_York
+#usr/share/zoneinfo/posix/America/Nipigon
+#usr/share/zoneinfo/posix/America/Nome
+#usr/share/zoneinfo/posix/America/Noronha
+#usr/share/zoneinfo/posix/America/North_Dakota
+#usr/share/zoneinfo/posix/America/North_Dakota/Center
+#usr/share/zoneinfo/posix/America/Panama
+#usr/share/zoneinfo/posix/America/Pangnirtung
+#usr/share/zoneinfo/posix/America/Paramaribo
+#usr/share/zoneinfo/posix/America/Phoenix
+#usr/share/zoneinfo/posix/America/Port-au-Prince
+#usr/share/zoneinfo/posix/America/Port_of_Spain
+#usr/share/zoneinfo/posix/America/Porto_Acre
+#usr/share/zoneinfo/posix/America/Porto_Velho
+#usr/share/zoneinfo/posix/America/Puerto_Rico
+#usr/share/zoneinfo/posix/America/Rainy_River
+#usr/share/zoneinfo/posix/America/Rankin_Inlet
+#usr/share/zoneinfo/posix/America/Recife
+#usr/share/zoneinfo/posix/America/Regina
+#usr/share/zoneinfo/posix/America/Rio_Branco
+#usr/share/zoneinfo/posix/America/Rosario
+#usr/share/zoneinfo/posix/America/Santiago
+#usr/share/zoneinfo/posix/America/Santo_Domingo
+#usr/share/zoneinfo/posix/America/Sao_Paulo
+#usr/share/zoneinfo/posix/America/Scoresbysund
+#usr/share/zoneinfo/posix/America/Shiprock
+#usr/share/zoneinfo/posix/America/St_Johns
+#usr/share/zoneinfo/posix/America/St_Kitts
+#usr/share/zoneinfo/posix/America/St_Lucia
+#usr/share/zoneinfo/posix/America/St_Thomas
+#usr/share/zoneinfo/posix/America/St_Vincent
+#usr/share/zoneinfo/posix/America/Swift_Current
+#usr/share/zoneinfo/posix/America/Tegucigalpa
+#usr/share/zoneinfo/posix/America/Thule
+#usr/share/zoneinfo/posix/America/Thunder_Bay
+#usr/share/zoneinfo/posix/America/Tijuana
+#usr/share/zoneinfo/posix/America/Tortola
+#usr/share/zoneinfo/posix/America/Vancouver
+#usr/share/zoneinfo/posix/America/Virgin
+#usr/share/zoneinfo/posix/America/Whitehorse
+#usr/share/zoneinfo/posix/America/Winnipeg
+#usr/share/zoneinfo/posix/America/Yakutat
+#usr/share/zoneinfo/posix/America/Yellowknife
+#usr/share/zoneinfo/posix/Antarctica
+#usr/share/zoneinfo/posix/Antarctica/Casey
+#usr/share/zoneinfo/posix/Antarctica/Davis
+#usr/share/zoneinfo/posix/Antarctica/DumontDUrville
+#usr/share/zoneinfo/posix/Antarctica/Mawson
+#usr/share/zoneinfo/posix/Antarctica/McMurdo
+#usr/share/zoneinfo/posix/Antarctica/Palmer
+#usr/share/zoneinfo/posix/Antarctica/South_Pole
+#usr/share/zoneinfo/posix/Antarctica/Syowa
+#usr/share/zoneinfo/posix/Antarctica/Vostok
+#usr/share/zoneinfo/posix/Arctic
+#usr/share/zoneinfo/posix/Arctic/Longyearbyen
+#usr/share/zoneinfo/posix/Asia
+#usr/share/zoneinfo/posix/Asia/Aden
+#usr/share/zoneinfo/posix/Asia/Almaty
+#usr/share/zoneinfo/posix/Asia/Amman
+#usr/share/zoneinfo/posix/Asia/Anadyr
+#usr/share/zoneinfo/posix/Asia/Aqtau
+#usr/share/zoneinfo/posix/Asia/Aqtobe
+#usr/share/zoneinfo/posix/Asia/Ashgabat
+#usr/share/zoneinfo/posix/Asia/Ashkhabad
+#usr/share/zoneinfo/posix/Asia/Baghdad
+#usr/share/zoneinfo/posix/Asia/Bahrain
+#usr/share/zoneinfo/posix/Asia/Baku
+#usr/share/zoneinfo/posix/Asia/Bangkok
+#usr/share/zoneinfo/posix/Asia/Beirut
+#usr/share/zoneinfo/posix/Asia/Bishkek
+#usr/share/zoneinfo/posix/Asia/Brunei
+#usr/share/zoneinfo/posix/Asia/Calcutta
+#usr/share/zoneinfo/posix/Asia/Choibalsan
+#usr/share/zoneinfo/posix/Asia/Chongqing
+#usr/share/zoneinfo/posix/Asia/Chungking
+#usr/share/zoneinfo/posix/Asia/Colombo
+#usr/share/zoneinfo/posix/Asia/Dacca
+#usr/share/zoneinfo/posix/Asia/Damascus
+#usr/share/zoneinfo/posix/Asia/Dhaka
+#usr/share/zoneinfo/posix/Asia/Dili
+#usr/share/zoneinfo/posix/Asia/Dubai
+#usr/share/zoneinfo/posix/Asia/Dushanbe
+#usr/share/zoneinfo/posix/Asia/Gaza
+#usr/share/zoneinfo/posix/Asia/Harbin
+#usr/share/zoneinfo/posix/Asia/Hong_Kong
+#usr/share/zoneinfo/posix/Asia/Hovd
+#usr/share/zoneinfo/posix/Asia/Irkutsk
+#usr/share/zoneinfo/posix/Asia/Istanbul
+#usr/share/zoneinfo/posix/Asia/Jakarta
+#usr/share/zoneinfo/posix/Asia/Jayapura
+#usr/share/zoneinfo/posix/Asia/Jerusalem
+#usr/share/zoneinfo/posix/Asia/Kabul
+#usr/share/zoneinfo/posix/Asia/Kamchatka
+#usr/share/zoneinfo/posix/Asia/Karachi
+#usr/share/zoneinfo/posix/Asia/Kashgar
+#usr/share/zoneinfo/posix/Asia/Katmandu
+#usr/share/zoneinfo/posix/Asia/Krasnoyarsk
+#usr/share/zoneinfo/posix/Asia/Kuala_Lumpur
+#usr/share/zoneinfo/posix/Asia/Kuching
+#usr/share/zoneinfo/posix/Asia/Kuwait
+#usr/share/zoneinfo/posix/Asia/Macao
+#usr/share/zoneinfo/posix/Asia/Macau
+#usr/share/zoneinfo/posix/Asia/Magadan
+#usr/share/zoneinfo/posix/Asia/Makassar
+#usr/share/zoneinfo/posix/Asia/Manila
+#usr/share/zoneinfo/posix/Asia/Muscat
+#usr/share/zoneinfo/posix/Asia/Nicosia
+#usr/share/zoneinfo/posix/Asia/Novosibirsk
+#usr/share/zoneinfo/posix/Asia/Omsk
+#usr/share/zoneinfo/posix/Asia/Oral
+#usr/share/zoneinfo/posix/Asia/Phnom_Penh
+#usr/share/zoneinfo/posix/Asia/Pontianak
+#usr/share/zoneinfo/posix/Asia/Pyongyang
+#usr/share/zoneinfo/posix/Asia/Qatar
+#usr/share/zoneinfo/posix/Asia/Qyzylorda
+#usr/share/zoneinfo/posix/Asia/Rangoon
+#usr/share/zoneinfo/posix/Asia/Riyadh
+#usr/share/zoneinfo/posix/Asia/Riyadh87
+#usr/share/zoneinfo/posix/Asia/Riyadh88
+#usr/share/zoneinfo/posix/Asia/Riyadh89
+#usr/share/zoneinfo/posix/Asia/Saigon
+#usr/share/zoneinfo/posix/Asia/Sakhalin
+#usr/share/zoneinfo/posix/Asia/Samarkand
+#usr/share/zoneinfo/posix/Asia/Seoul
+#usr/share/zoneinfo/posix/Asia/Shanghai
+#usr/share/zoneinfo/posix/Asia/Singapore
+#usr/share/zoneinfo/posix/Asia/Taipei
+#usr/share/zoneinfo/posix/Asia/Tashkent
+#usr/share/zoneinfo/posix/Asia/Tbilisi
+#usr/share/zoneinfo/posix/Asia/Tehran
+#usr/share/zoneinfo/posix/Asia/Tel_Aviv
+#usr/share/zoneinfo/posix/Asia/Thimbu
+#usr/share/zoneinfo/posix/Asia/Thimphu
+#usr/share/zoneinfo/posix/Asia/Tokyo
+#usr/share/zoneinfo/posix/Asia/Ujung_Pandang
+#usr/share/zoneinfo/posix/Asia/Ulaanbaatar
+#usr/share/zoneinfo/posix/Asia/Ulan_Bator
+#usr/share/zoneinfo/posix/Asia/Urumqi
+#usr/share/zoneinfo/posix/Asia/Vientiane
+#usr/share/zoneinfo/posix/Asia/Vladivostok
+#usr/share/zoneinfo/posix/Asia/Yakutsk
+#usr/share/zoneinfo/posix/Asia/Yekaterinburg
+#usr/share/zoneinfo/posix/Asia/Yerevan
+#usr/share/zoneinfo/posix/Atlantic
+#usr/share/zoneinfo/posix/Atlantic/Azores
+#usr/share/zoneinfo/posix/Atlantic/Bermuda
+#usr/share/zoneinfo/posix/Atlantic/Canary
+#usr/share/zoneinfo/posix/Atlantic/Cape_Verde
+#usr/share/zoneinfo/posix/Atlantic/Faeroe
+#usr/share/zoneinfo/posix/Atlantic/Jan_Mayen
+#usr/share/zoneinfo/posix/Atlantic/Madeira
+#usr/share/zoneinfo/posix/Atlantic/Reykjavik
+#usr/share/zoneinfo/posix/Atlantic/South_Georgia
+#usr/share/zoneinfo/posix/Atlantic/St_Helena
+#usr/share/zoneinfo/posix/Atlantic/Stanley
+#usr/share/zoneinfo/posix/Australia
+#usr/share/zoneinfo/posix/Australia/ACT
+#usr/share/zoneinfo/posix/Australia/Adelaide
+#usr/share/zoneinfo/posix/Australia/Brisbane
+#usr/share/zoneinfo/posix/Australia/Broken_Hill
+#usr/share/zoneinfo/posix/Australia/Canberra
+#usr/share/zoneinfo/posix/Australia/Darwin
+#usr/share/zoneinfo/posix/Australia/Hobart
+#usr/share/zoneinfo/posix/Australia/LHI
+#usr/share/zoneinfo/posix/Australia/Lindeman
+#usr/share/zoneinfo/posix/Australia/Lord_Howe
+#usr/share/zoneinfo/posix/Australia/Melbourne
+#usr/share/zoneinfo/posix/Australia/NSW
+#usr/share/zoneinfo/posix/Australia/North
+#usr/share/zoneinfo/posix/Australia/Perth
+#usr/share/zoneinfo/posix/Australia/Queensland
+#usr/share/zoneinfo/posix/Australia/South
+#usr/share/zoneinfo/posix/Australia/Sydney
+#usr/share/zoneinfo/posix/Australia/Tasmania
+#usr/share/zoneinfo/posix/Australia/Victoria
+#usr/share/zoneinfo/posix/Australia/West
+#usr/share/zoneinfo/posix/Australia/Yancowinna
+#usr/share/zoneinfo/posix/Brazil
+#usr/share/zoneinfo/posix/Brazil/Acre
+#usr/share/zoneinfo/posix/Brazil/DeNoronha
+#usr/share/zoneinfo/posix/Brazil/East
+#usr/share/zoneinfo/posix/Brazil/West
+#usr/share/zoneinfo/posix/CET
+#usr/share/zoneinfo/posix/CST6CDT
+#usr/share/zoneinfo/posix/Canada
+#usr/share/zoneinfo/posix/Canada/Atlantic
+#usr/share/zoneinfo/posix/Canada/Central
+#usr/share/zoneinfo/posix/Canada/East-Saskatchewan
+#usr/share/zoneinfo/posix/Canada/Eastern
+#usr/share/zoneinfo/posix/Canada/Mountain
+#usr/share/zoneinfo/posix/Canada/Newfoundland
+#usr/share/zoneinfo/posix/Canada/Pacific
+#usr/share/zoneinfo/posix/Canada/Saskatchewan
+#usr/share/zoneinfo/posix/Canada/Yukon
+#usr/share/zoneinfo/posix/Chile
+#usr/share/zoneinfo/posix/Chile/Continental
+#usr/share/zoneinfo/posix/Chile/EasterIsland
+#usr/share/zoneinfo/posix/Cuba
+#usr/share/zoneinfo/posix/EET
+#usr/share/zoneinfo/posix/EST
+#usr/share/zoneinfo/posix/EST5EDT
+#usr/share/zoneinfo/posix/Egypt
+#usr/share/zoneinfo/posix/Eire
+#usr/share/zoneinfo/posix/Etc
+#usr/share/zoneinfo/posix/Etc/GMT
+#usr/share/zoneinfo/posix/Etc/GMT+0
+#usr/share/zoneinfo/posix/Etc/GMT+1
+#usr/share/zoneinfo/posix/Etc/GMT+10
+#usr/share/zoneinfo/posix/Etc/GMT+11
+#usr/share/zoneinfo/posix/Etc/GMT+12
+#usr/share/zoneinfo/posix/Etc/GMT+2
+#usr/share/zoneinfo/posix/Etc/GMT+3
+#usr/share/zoneinfo/posix/Etc/GMT+4
+#usr/share/zoneinfo/posix/Etc/GMT+5
+#usr/share/zoneinfo/posix/Etc/GMT+6
+#usr/share/zoneinfo/posix/Etc/GMT+7
+#usr/share/zoneinfo/posix/Etc/GMT+8
+#usr/share/zoneinfo/posix/Etc/GMT+9
+#usr/share/zoneinfo/posix/Etc/GMT-0
+#usr/share/zoneinfo/posix/Etc/GMT-1
+#usr/share/zoneinfo/posix/Etc/GMT-10
+#usr/share/zoneinfo/posix/Etc/GMT-11
+#usr/share/zoneinfo/posix/Etc/GMT-12
+#usr/share/zoneinfo/posix/Etc/GMT-13
+#usr/share/zoneinfo/posix/Etc/GMT-14
+#usr/share/zoneinfo/posix/Etc/GMT-2
+#usr/share/zoneinfo/posix/Etc/GMT-3
+#usr/share/zoneinfo/posix/Etc/GMT-4
+#usr/share/zoneinfo/posix/Etc/GMT-5
+#usr/share/zoneinfo/posix/Etc/GMT-6
+#usr/share/zoneinfo/posix/Etc/GMT-7
+#usr/share/zoneinfo/posix/Etc/GMT-8
+#usr/share/zoneinfo/posix/Etc/GMT-9
+#usr/share/zoneinfo/posix/Etc/GMT0
+#usr/share/zoneinfo/posix/Etc/Greenwich
+#usr/share/zoneinfo/posix/Etc/UCT
+#usr/share/zoneinfo/posix/Etc/UTC
+#usr/share/zoneinfo/posix/Etc/Universal
+#usr/share/zoneinfo/posix/Etc/Zulu
+#usr/share/zoneinfo/posix/Europe
+#usr/share/zoneinfo/posix/Europe/Amsterdam
+#usr/share/zoneinfo/posix/Europe/Andorra
+#usr/share/zoneinfo/posix/Europe/Athens
+#usr/share/zoneinfo/posix/Europe/Belfast
+#usr/share/zoneinfo/posix/Europe/Belgrade
+#usr/share/zoneinfo/posix/Europe/Berlin
+#usr/share/zoneinfo/posix/Europe/Bratislava
+#usr/share/zoneinfo/posix/Europe/Brussels
+#usr/share/zoneinfo/posix/Europe/Bucharest
+#usr/share/zoneinfo/posix/Europe/Budapest
+#usr/share/zoneinfo/posix/Europe/Chisinau
+#usr/share/zoneinfo/posix/Europe/Copenhagen
+#usr/share/zoneinfo/posix/Europe/Dublin
+#usr/share/zoneinfo/posix/Europe/Gibraltar
+#usr/share/zoneinfo/posix/Europe/Helsinki
+#usr/share/zoneinfo/posix/Europe/Istanbul
+#usr/share/zoneinfo/posix/Europe/Kaliningrad
+#usr/share/zoneinfo/posix/Europe/Kiev
+#usr/share/zoneinfo/posix/Europe/Lisbon
+#usr/share/zoneinfo/posix/Europe/Ljubljana
+#usr/share/zoneinfo/posix/Europe/London
+#usr/share/zoneinfo/posix/Europe/Luxembourg
+#usr/share/zoneinfo/posix/Europe/Madrid
+#usr/share/zoneinfo/posix/Europe/Malta
+#usr/share/zoneinfo/posix/Europe/Minsk
+#usr/share/zoneinfo/posix/Europe/Monaco
+#usr/share/zoneinfo/posix/Europe/Moscow
+#usr/share/zoneinfo/posix/Europe/Nicosia
+#usr/share/zoneinfo/posix/Europe/Oslo
+#usr/share/zoneinfo/posix/Europe/Paris
+#usr/share/zoneinfo/posix/Europe/Prague
+#usr/share/zoneinfo/posix/Europe/Riga
+#usr/share/zoneinfo/posix/Europe/Rome
+#usr/share/zoneinfo/posix/Europe/Samara
+#usr/share/zoneinfo/posix/Europe/San_Marino
+#usr/share/zoneinfo/posix/Europe/Sarajevo
+#usr/share/zoneinfo/posix/Europe/Simferopol
+#usr/share/zoneinfo/posix/Europe/Skopje
+#usr/share/zoneinfo/posix/Europe/Sofia
+#usr/share/zoneinfo/posix/Europe/Stockholm
+#usr/share/zoneinfo/posix/Europe/Tallinn
+#usr/share/zoneinfo/posix/Europe/Tirane
+#usr/share/zoneinfo/posix/Europe/Tiraspol
+#usr/share/zoneinfo/posix/Europe/Uzhgorod
+#usr/share/zoneinfo/posix/Europe/Vaduz
+#usr/share/zoneinfo/posix/Europe/Vatican
+#usr/share/zoneinfo/posix/Europe/Vienna
+#usr/share/zoneinfo/posix/Europe/Vilnius
+#usr/share/zoneinfo/posix/Europe/Warsaw
+#usr/share/zoneinfo/posix/Europe/Zagreb
+#usr/share/zoneinfo/posix/Europe/Zaporozhye
+#usr/share/zoneinfo/posix/Europe/Zurich
+#usr/share/zoneinfo/posix/Factory
+#usr/share/zoneinfo/posix/GB
+#usr/share/zoneinfo/posix/GB-Eire
+#usr/share/zoneinfo/posix/GMT
+#usr/share/zoneinfo/posix/GMT+0
+#usr/share/zoneinfo/posix/GMT-0
+#usr/share/zoneinfo/posix/GMT0
+#usr/share/zoneinfo/posix/Greenwich
+#usr/share/zoneinfo/posix/HST
+#usr/share/zoneinfo/posix/Hongkong
+#usr/share/zoneinfo/posix/Iceland
+#usr/share/zoneinfo/posix/Indian
+#usr/share/zoneinfo/posix/Indian/Antananarivo
+#usr/share/zoneinfo/posix/Indian/Chagos
+#usr/share/zoneinfo/posix/Indian/Christmas
+#usr/share/zoneinfo/posix/Indian/Cocos
+#usr/share/zoneinfo/posix/Indian/Comoro
+#usr/share/zoneinfo/posix/Indian/Kerguelen
+#usr/share/zoneinfo/posix/Indian/Mahe
+#usr/share/zoneinfo/posix/Indian/Maldives
+#usr/share/zoneinfo/posix/Indian/Mauritius
+#usr/share/zoneinfo/posix/Indian/Mayotte
+#usr/share/zoneinfo/posix/Indian/Reunion
+#usr/share/zoneinfo/posix/Iran
+#usr/share/zoneinfo/posix/Israel
+#usr/share/zoneinfo/posix/Jamaica
+#usr/share/zoneinfo/posix/Japan
+#usr/share/zoneinfo/posix/Kwajalein
+#usr/share/zoneinfo/posix/Libya
+#usr/share/zoneinfo/posix/MET
+#usr/share/zoneinfo/posix/MST
+#usr/share/zoneinfo/posix/MST7MDT
+#usr/share/zoneinfo/posix/Mexico
+#usr/share/zoneinfo/posix/Mexico/BajaNorte
+#usr/share/zoneinfo/posix/Mexico/BajaSur
+#usr/share/zoneinfo/posix/Mexico/General
+#usr/share/zoneinfo/posix/Mideast
+#usr/share/zoneinfo/posix/Mideast/Riyadh87
+#usr/share/zoneinfo/posix/Mideast/Riyadh88
+#usr/share/zoneinfo/posix/Mideast/Riyadh89
+#usr/share/zoneinfo/posix/NZ
+#usr/share/zoneinfo/posix/NZ-CHAT
+#usr/share/zoneinfo/posix/Navajo
+#usr/share/zoneinfo/posix/PRC
+#usr/share/zoneinfo/posix/PST8PDT
+#usr/share/zoneinfo/posix/Pacific
+#usr/share/zoneinfo/posix/Pacific/Apia
+#usr/share/zoneinfo/posix/Pacific/Auckland
+#usr/share/zoneinfo/posix/Pacific/Chatham
+#usr/share/zoneinfo/posix/Pacific/Easter
+#usr/share/zoneinfo/posix/Pacific/Efate
+#usr/share/zoneinfo/posix/Pacific/Enderbury
+#usr/share/zoneinfo/posix/Pacific/Fakaofo
+#usr/share/zoneinfo/posix/Pacific/Fiji
+#usr/share/zoneinfo/posix/Pacific/Funafuti
+#usr/share/zoneinfo/posix/Pacific/Galapagos
+#usr/share/zoneinfo/posix/Pacific/Gambier
+#usr/share/zoneinfo/posix/Pacific/Guadalcanal
+#usr/share/zoneinfo/posix/Pacific/Guam
+#usr/share/zoneinfo/posix/Pacific/Honolulu
+#usr/share/zoneinfo/posix/Pacific/Johnston
+#usr/share/zoneinfo/posix/Pacific/Kiritimati
+#usr/share/zoneinfo/posix/Pacific/Kosrae
+#usr/share/zoneinfo/posix/Pacific/Kwajalein
+#usr/share/zoneinfo/posix/Pacific/Majuro
+#usr/share/zoneinfo/posix/Pacific/Marquesas
+#usr/share/zoneinfo/posix/Pacific/Midway
+#usr/share/zoneinfo/posix/Pacific/Nauru
+#usr/share/zoneinfo/posix/Pacific/Niue
+#usr/share/zoneinfo/posix/Pacific/Norfolk
+#usr/share/zoneinfo/posix/Pacific/Noumea
+#usr/share/zoneinfo/posix/Pacific/Pago_Pago
+#usr/share/zoneinfo/posix/Pacific/Palau
+#usr/share/zoneinfo/posix/Pacific/Pitcairn
+#usr/share/zoneinfo/posix/Pacific/Ponape
+#usr/share/zoneinfo/posix/Pacific/Port_Moresby
+#usr/share/zoneinfo/posix/Pacific/Rarotonga
+#usr/share/zoneinfo/posix/Pacific/Saipan
+#usr/share/zoneinfo/posix/Pacific/Samoa
+#usr/share/zoneinfo/posix/Pacific/Tahiti
+#usr/share/zoneinfo/posix/Pacific/Tarawa
+#usr/share/zoneinfo/posix/Pacific/Tongatapu
+#usr/share/zoneinfo/posix/Pacific/Truk
+#usr/share/zoneinfo/posix/Pacific/Wake
+#usr/share/zoneinfo/posix/Pacific/Wallis
+#usr/share/zoneinfo/posix/Pacific/Yap
+#usr/share/zoneinfo/posix/Poland
+#usr/share/zoneinfo/posix/Portugal
+#usr/share/zoneinfo/posix/ROC
+#usr/share/zoneinfo/posix/ROK
+#usr/share/zoneinfo/posix/Singapore
+#usr/share/zoneinfo/posix/SystemV
+#usr/share/zoneinfo/posix/SystemV/AST4
+#usr/share/zoneinfo/posix/SystemV/AST4ADT
+#usr/share/zoneinfo/posix/SystemV/CST6
+#usr/share/zoneinfo/posix/SystemV/CST6CDT
+#usr/share/zoneinfo/posix/SystemV/EST5
+#usr/share/zoneinfo/posix/SystemV/EST5EDT
+#usr/share/zoneinfo/posix/SystemV/HST10
+#usr/share/zoneinfo/posix/SystemV/MST7
+#usr/share/zoneinfo/posix/SystemV/MST7MDT
+#usr/share/zoneinfo/posix/SystemV/PST8
+#usr/share/zoneinfo/posix/SystemV/PST8PDT
+#usr/share/zoneinfo/posix/SystemV/YST9
+#usr/share/zoneinfo/posix/SystemV/YST9YDT
+#usr/share/zoneinfo/posix/Turkey
+#usr/share/zoneinfo/posix/UCT
+#usr/share/zoneinfo/posix/US
+#usr/share/zoneinfo/posix/US/Alaska
+#usr/share/zoneinfo/posix/US/Aleutian
+#usr/share/zoneinfo/posix/US/Arizona
+#usr/share/zoneinfo/posix/US/Central
+#usr/share/zoneinfo/posix/US/East-Indiana
+#usr/share/zoneinfo/posix/US/Eastern
+#usr/share/zoneinfo/posix/US/Hawaii
+#usr/share/zoneinfo/posix/US/Indiana-Starke
+#usr/share/zoneinfo/posix/US/Michigan
+#usr/share/zoneinfo/posix/US/Mountain
+#usr/share/zoneinfo/posix/US/Pacific
+#usr/share/zoneinfo/posix/US/Samoa
+#usr/share/zoneinfo/posix/UTC
+#usr/share/zoneinfo/posix/Universal
+#usr/share/zoneinfo/posix/W-SU
+#usr/share/zoneinfo/posix/WET
+#usr/share/zoneinfo/posix/Zulu
+#usr/share/zoneinfo/posixrules
+#usr/share/zoneinfo/right
+#usr/share/zoneinfo/right/Africa
+#usr/share/zoneinfo/right/Africa/Abidjan
+#usr/share/zoneinfo/right/Africa/Accra
+#usr/share/zoneinfo/right/Africa/Addis_Ababa
+#usr/share/zoneinfo/right/Africa/Algiers
+#usr/share/zoneinfo/right/Africa/Asmera
+#usr/share/zoneinfo/right/Africa/Bamako
+#usr/share/zoneinfo/right/Africa/Bangui
+#usr/share/zoneinfo/right/Africa/Banjul
+#usr/share/zoneinfo/right/Africa/Bissau
+#usr/share/zoneinfo/right/Africa/Blantyre
+#usr/share/zoneinfo/right/Africa/Brazzaville
+#usr/share/zoneinfo/right/Africa/Bujumbura
+#usr/share/zoneinfo/right/Africa/Cairo
+#usr/share/zoneinfo/right/Africa/Casablanca
+#usr/share/zoneinfo/right/Africa/Ceuta
+#usr/share/zoneinfo/right/Africa/Conakry
+#usr/share/zoneinfo/right/Africa/Dakar
+#usr/share/zoneinfo/right/Africa/Dar_es_Salaam
+#usr/share/zoneinfo/right/Africa/Djibouti
+#usr/share/zoneinfo/right/Africa/Douala
+#usr/share/zoneinfo/right/Africa/El_Aaiun
+#usr/share/zoneinfo/right/Africa/Freetown
+#usr/share/zoneinfo/right/Africa/Gaborone
+#usr/share/zoneinfo/right/Africa/Harare
+#usr/share/zoneinfo/right/Africa/Johannesburg
+#usr/share/zoneinfo/right/Africa/Kampala
+#usr/share/zoneinfo/right/Africa/Khartoum
+#usr/share/zoneinfo/right/Africa/Kigali
+#usr/share/zoneinfo/right/Africa/Kinshasa
+#usr/share/zoneinfo/right/Africa/Lagos
+#usr/share/zoneinfo/right/Africa/Libreville
+#usr/share/zoneinfo/right/Africa/Lome
+#usr/share/zoneinfo/right/Africa/Luanda
+#usr/share/zoneinfo/right/Africa/Lubumbashi
+#usr/share/zoneinfo/right/Africa/Lusaka
+#usr/share/zoneinfo/right/Africa/Malabo
+#usr/share/zoneinfo/right/Africa/Maputo
+#usr/share/zoneinfo/right/Africa/Maseru
+#usr/share/zoneinfo/right/Africa/Mbabane
+#usr/share/zoneinfo/right/Africa/Mogadishu
+#usr/share/zoneinfo/right/Africa/Monrovia
+#usr/share/zoneinfo/right/Africa/Nairobi
+#usr/share/zoneinfo/right/Africa/Ndjamena
+#usr/share/zoneinfo/right/Africa/Niamey
+#usr/share/zoneinfo/right/Africa/Nouakchott
+#usr/share/zoneinfo/right/Africa/Ouagadougou
+#usr/share/zoneinfo/right/Africa/Porto-Novo
+#usr/share/zoneinfo/right/Africa/Sao_Tome
+#usr/share/zoneinfo/right/Africa/Timbuktu
+#usr/share/zoneinfo/right/Africa/Tripoli
+#usr/share/zoneinfo/right/Africa/Tunis
+#usr/share/zoneinfo/right/Africa/Windhoek
+#usr/share/zoneinfo/right/America
+#usr/share/zoneinfo/right/America/Adak
+#usr/share/zoneinfo/right/America/Anchorage
+#usr/share/zoneinfo/right/America/Anguilla
+#usr/share/zoneinfo/right/America/Antigua
+#usr/share/zoneinfo/right/America/Araguaina
+#usr/share/zoneinfo/right/America/Aruba
+#usr/share/zoneinfo/right/America/Asuncion
+#usr/share/zoneinfo/right/America/Atka
+#usr/share/zoneinfo/right/America/Barbados
+#usr/share/zoneinfo/right/America/Belem
+#usr/share/zoneinfo/right/America/Belize
+#usr/share/zoneinfo/right/America/Boa_Vista
+#usr/share/zoneinfo/right/America/Bogota
+#usr/share/zoneinfo/right/America/Boise
+#usr/share/zoneinfo/right/America/Buenos_Aires
+#usr/share/zoneinfo/right/America/Cambridge_Bay
+#usr/share/zoneinfo/right/America/Cancun
+#usr/share/zoneinfo/right/America/Caracas
+#usr/share/zoneinfo/right/America/Catamarca
+#usr/share/zoneinfo/right/America/Cayenne
+#usr/share/zoneinfo/right/America/Cayman
+#usr/share/zoneinfo/right/America/Chicago
+#usr/share/zoneinfo/right/America/Chihuahua
+#usr/share/zoneinfo/right/America/Cordoba
+#usr/share/zoneinfo/right/America/Costa_Rica
+#usr/share/zoneinfo/right/America/Cuiaba
+#usr/share/zoneinfo/right/America/Curacao
+#usr/share/zoneinfo/right/America/Danmarkshavn
+#usr/share/zoneinfo/right/America/Dawson
+#usr/share/zoneinfo/right/America/Dawson_Creek
+#usr/share/zoneinfo/right/America/Denver
+#usr/share/zoneinfo/right/America/Detroit
+#usr/share/zoneinfo/right/America/Dominica
+#usr/share/zoneinfo/right/America/Edmonton
+#usr/share/zoneinfo/right/America/Eirunepe
+#usr/share/zoneinfo/right/America/El_Salvador
+#usr/share/zoneinfo/right/America/Ensenada
+#usr/share/zoneinfo/right/America/Fort_Wayne
+#usr/share/zoneinfo/right/America/Fortaleza
+#usr/share/zoneinfo/right/America/Glace_Bay
+#usr/share/zoneinfo/right/America/Godthab
+#usr/share/zoneinfo/right/America/Goose_Bay
+#usr/share/zoneinfo/right/America/Grand_Turk
+#usr/share/zoneinfo/right/America/Grenada
+#usr/share/zoneinfo/right/America/Guadeloupe
+#usr/share/zoneinfo/right/America/Guatemala
+#usr/share/zoneinfo/right/America/Guayaquil
+#usr/share/zoneinfo/right/America/Guyana
+#usr/share/zoneinfo/right/America/Halifax
+#usr/share/zoneinfo/right/America/Havana
+#usr/share/zoneinfo/right/America/Hermosillo
+#usr/share/zoneinfo/right/America/Indiana
+#usr/share/zoneinfo/right/America/Indiana/Indianapolis
+#usr/share/zoneinfo/right/America/Indiana/Knox
+#usr/share/zoneinfo/right/America/Indiana/Marengo
+#usr/share/zoneinfo/right/America/Indiana/Vevay
+#usr/share/zoneinfo/right/America/Indianapolis
+#usr/share/zoneinfo/right/America/Inuvik
+#usr/share/zoneinfo/right/America/Iqaluit
+#usr/share/zoneinfo/right/America/Jamaica
+#usr/share/zoneinfo/right/America/Jujuy
+#usr/share/zoneinfo/right/America/Juneau
+#usr/share/zoneinfo/right/America/Kentucky
+#usr/share/zoneinfo/right/America/Kentucky/Louisville
+#usr/share/zoneinfo/right/America/Kentucky/Monticello
+#usr/share/zoneinfo/right/America/Knox_IN
+#usr/share/zoneinfo/right/America/La_Paz
+#usr/share/zoneinfo/right/America/Lima
+#usr/share/zoneinfo/right/America/Los_Angeles
+#usr/share/zoneinfo/right/America/Louisville
+#usr/share/zoneinfo/right/America/Maceio
+#usr/share/zoneinfo/right/America/Managua
+#usr/share/zoneinfo/right/America/Manaus
+#usr/share/zoneinfo/right/America/Martinique
+#usr/share/zoneinfo/right/America/Mazatlan
+#usr/share/zoneinfo/right/America/Mendoza
+#usr/share/zoneinfo/right/America/Menominee
+#usr/share/zoneinfo/right/America/Merida
+#usr/share/zoneinfo/right/America/Mexico_City
+#usr/share/zoneinfo/right/America/Miquelon
+#usr/share/zoneinfo/right/America/Monterrey
+#usr/share/zoneinfo/right/America/Montevideo
+#usr/share/zoneinfo/right/America/Montreal
+#usr/share/zoneinfo/right/America/Montserrat
+#usr/share/zoneinfo/right/America/Nassau
+#usr/share/zoneinfo/right/America/New_York
+#usr/share/zoneinfo/right/America/Nipigon
+#usr/share/zoneinfo/right/America/Nome
+#usr/share/zoneinfo/right/America/Noronha
+#usr/share/zoneinfo/right/America/North_Dakota
+#usr/share/zoneinfo/right/America/North_Dakota/Center
+#usr/share/zoneinfo/right/America/Panama
+#usr/share/zoneinfo/right/America/Pangnirtung
+#usr/share/zoneinfo/right/America/Paramaribo
+#usr/share/zoneinfo/right/America/Phoenix
+#usr/share/zoneinfo/right/America/Port-au-Prince
+#usr/share/zoneinfo/right/America/Port_of_Spain
+#usr/share/zoneinfo/right/America/Porto_Acre
+#usr/share/zoneinfo/right/America/Porto_Velho
+#usr/share/zoneinfo/right/America/Puerto_Rico
+#usr/share/zoneinfo/right/America/Rainy_River
+#usr/share/zoneinfo/right/America/Rankin_Inlet
+#usr/share/zoneinfo/right/America/Recife
+#usr/share/zoneinfo/right/America/Regina
+#usr/share/zoneinfo/right/America/Rio_Branco
+#usr/share/zoneinfo/right/America/Rosario
+#usr/share/zoneinfo/right/America/Santiago
+#usr/share/zoneinfo/right/America/Santo_Domingo
+#usr/share/zoneinfo/right/America/Sao_Paulo
+#usr/share/zoneinfo/right/America/Scoresbysund
+#usr/share/zoneinfo/right/America/Shiprock
+#usr/share/zoneinfo/right/America/St_Johns
+#usr/share/zoneinfo/right/America/St_Kitts
+#usr/share/zoneinfo/right/America/St_Lucia
+#usr/share/zoneinfo/right/America/St_Thomas
+#usr/share/zoneinfo/right/America/St_Vincent
+#usr/share/zoneinfo/right/America/Swift_Current
+#usr/share/zoneinfo/right/America/Tegucigalpa
+#usr/share/zoneinfo/right/America/Thule
+#usr/share/zoneinfo/right/America/Thunder_Bay
+#usr/share/zoneinfo/right/America/Tijuana
+#usr/share/zoneinfo/right/America/Tortola
+#usr/share/zoneinfo/right/America/Vancouver
+#usr/share/zoneinfo/right/America/Virgin
+#usr/share/zoneinfo/right/America/Whitehorse
+#usr/share/zoneinfo/right/America/Winnipeg
+#usr/share/zoneinfo/right/America/Yakutat
+#usr/share/zoneinfo/right/America/Yellowknife
+#usr/share/zoneinfo/right/Antarctica
+#usr/share/zoneinfo/right/Antarctica/Casey
+#usr/share/zoneinfo/right/Antarctica/Davis
+#usr/share/zoneinfo/right/Antarctica/DumontDUrville
+#usr/share/zoneinfo/right/Antarctica/Mawson
+#usr/share/zoneinfo/right/Antarctica/McMurdo
+#usr/share/zoneinfo/right/Antarctica/Palmer
+#usr/share/zoneinfo/right/Antarctica/South_Pole
+#usr/share/zoneinfo/right/Antarctica/Syowa
+#usr/share/zoneinfo/right/Antarctica/Vostok
+#usr/share/zoneinfo/right/Arctic
+#usr/share/zoneinfo/right/Arctic/Longyearbyen
+#usr/share/zoneinfo/right/Asia
+#usr/share/zoneinfo/right/Asia/Aden
+#usr/share/zoneinfo/right/Asia/Almaty
+#usr/share/zoneinfo/right/Asia/Amman
+#usr/share/zoneinfo/right/Asia/Anadyr
+#usr/share/zoneinfo/right/Asia/Aqtau
+#usr/share/zoneinfo/right/Asia/Aqtobe
+#usr/share/zoneinfo/right/Asia/Ashgabat
+#usr/share/zoneinfo/right/Asia/Ashkhabad
+#usr/share/zoneinfo/right/Asia/Baghdad
+#usr/share/zoneinfo/right/Asia/Bahrain
+#usr/share/zoneinfo/right/Asia/Baku
+#usr/share/zoneinfo/right/Asia/Bangkok
+#usr/share/zoneinfo/right/Asia/Beirut
+#usr/share/zoneinfo/right/Asia/Bishkek
+#usr/share/zoneinfo/right/Asia/Brunei
+#usr/share/zoneinfo/right/Asia/Calcutta
+#usr/share/zoneinfo/right/Asia/Choibalsan
+#usr/share/zoneinfo/right/Asia/Chongqing
+#usr/share/zoneinfo/right/Asia/Chungking
+#usr/share/zoneinfo/right/Asia/Colombo
+#usr/share/zoneinfo/right/Asia/Dacca
+#usr/share/zoneinfo/right/Asia/Damascus
+#usr/share/zoneinfo/right/Asia/Dhaka
+#usr/share/zoneinfo/right/Asia/Dili
+#usr/share/zoneinfo/right/Asia/Dubai
+#usr/share/zoneinfo/right/Asia/Dushanbe
+#usr/share/zoneinfo/right/Asia/Gaza
+#usr/share/zoneinfo/right/Asia/Harbin
+#usr/share/zoneinfo/right/Asia/Hong_Kong
+#usr/share/zoneinfo/right/Asia/Hovd
+#usr/share/zoneinfo/right/Asia/Irkutsk
+#usr/share/zoneinfo/right/Asia/Istanbul
+#usr/share/zoneinfo/right/Asia/Jakarta
+#usr/share/zoneinfo/right/Asia/Jayapura
+#usr/share/zoneinfo/right/Asia/Jerusalem
+#usr/share/zoneinfo/right/Asia/Kabul
+#usr/share/zoneinfo/right/Asia/Kamchatka
+#usr/share/zoneinfo/right/Asia/Karachi
+#usr/share/zoneinfo/right/Asia/Kashgar
+#usr/share/zoneinfo/right/Asia/Katmandu
+#usr/share/zoneinfo/right/Asia/Krasnoyarsk
+#usr/share/zoneinfo/right/Asia/Kuala_Lumpur
+#usr/share/zoneinfo/right/Asia/Kuching
+#usr/share/zoneinfo/right/Asia/Kuwait
+#usr/share/zoneinfo/right/Asia/Macao
+#usr/share/zoneinfo/right/Asia/Macau
+#usr/share/zoneinfo/right/Asia/Magadan
+#usr/share/zoneinfo/right/Asia/Makassar
+#usr/share/zoneinfo/right/Asia/Manila
+#usr/share/zoneinfo/right/Asia/Muscat
+#usr/share/zoneinfo/right/Asia/Nicosia
+#usr/share/zoneinfo/right/Asia/Novosibirsk
+#usr/share/zoneinfo/right/Asia/Omsk
+#usr/share/zoneinfo/right/Asia/Oral
+#usr/share/zoneinfo/right/Asia/Phnom_Penh
+#usr/share/zoneinfo/right/Asia/Pontianak
+#usr/share/zoneinfo/right/Asia/Pyongyang
+#usr/share/zoneinfo/right/Asia/Qatar
+#usr/share/zoneinfo/right/Asia/Qyzylorda
+#usr/share/zoneinfo/right/Asia/Rangoon
+#usr/share/zoneinfo/right/Asia/Riyadh
+#usr/share/zoneinfo/right/Asia/Riyadh87
+#usr/share/zoneinfo/right/Asia/Riyadh88
+#usr/share/zoneinfo/right/Asia/Riyadh89
+#usr/share/zoneinfo/right/Asia/Saigon
+#usr/share/zoneinfo/right/Asia/Sakhalin
+#usr/share/zoneinfo/right/Asia/Samarkand
+#usr/share/zoneinfo/right/Asia/Seoul
+#usr/share/zoneinfo/right/Asia/Shanghai
+#usr/share/zoneinfo/right/Asia/Singapore
+#usr/share/zoneinfo/right/Asia/Taipei
+#usr/share/zoneinfo/right/Asia/Tashkent
+#usr/share/zoneinfo/right/Asia/Tbilisi
+#usr/share/zoneinfo/right/Asia/Tehran
+#usr/share/zoneinfo/right/Asia/Tel_Aviv
+#usr/share/zoneinfo/right/Asia/Thimbu
+#usr/share/zoneinfo/right/Asia/Thimphu
+#usr/share/zoneinfo/right/Asia/Tokyo
+#usr/share/zoneinfo/right/Asia/Ujung_Pandang
+#usr/share/zoneinfo/right/Asia/Ulaanbaatar
+#usr/share/zoneinfo/right/Asia/Ulan_Bator
+#usr/share/zoneinfo/right/Asia/Urumqi
+#usr/share/zoneinfo/right/Asia/Vientiane
+#usr/share/zoneinfo/right/Asia/Vladivostok
+#usr/share/zoneinfo/right/Asia/Yakutsk
+#usr/share/zoneinfo/right/Asia/Yekaterinburg
+#usr/share/zoneinfo/right/Asia/Yerevan
+#usr/share/zoneinfo/right/Atlantic
+#usr/share/zoneinfo/right/Atlantic/Azores
+#usr/share/zoneinfo/right/Atlantic/Bermuda
+#usr/share/zoneinfo/right/Atlantic/Canary
+#usr/share/zoneinfo/right/Atlantic/Cape_Verde
+#usr/share/zoneinfo/right/Atlantic/Faeroe
+#usr/share/zoneinfo/right/Atlantic/Jan_Mayen
+#usr/share/zoneinfo/right/Atlantic/Madeira
+#usr/share/zoneinfo/right/Atlantic/Reykjavik
+#usr/share/zoneinfo/right/Atlantic/South_Georgia
+#usr/share/zoneinfo/right/Atlantic/St_Helena
+#usr/share/zoneinfo/right/Atlantic/Stanley
+#usr/share/zoneinfo/right/Australia
+#usr/share/zoneinfo/right/Australia/ACT
+#usr/share/zoneinfo/right/Australia/Adelaide
+#usr/share/zoneinfo/right/Australia/Brisbane
+#usr/share/zoneinfo/right/Australia/Broken_Hill
+#usr/share/zoneinfo/right/Australia/Canberra
+#usr/share/zoneinfo/right/Australia/Darwin
+#usr/share/zoneinfo/right/Australia/Hobart
+#usr/share/zoneinfo/right/Australia/LHI
+#usr/share/zoneinfo/right/Australia/Lindeman
+#usr/share/zoneinfo/right/Australia/Lord_Howe
+#usr/share/zoneinfo/right/Australia/Melbourne
+#usr/share/zoneinfo/right/Australia/NSW
+#usr/share/zoneinfo/right/Australia/North
+#usr/share/zoneinfo/right/Australia/Perth
+#usr/share/zoneinfo/right/Australia/Queensland
+#usr/share/zoneinfo/right/Australia/South
+#usr/share/zoneinfo/right/Australia/Sydney
+#usr/share/zoneinfo/right/Australia/Tasmania
+#usr/share/zoneinfo/right/Australia/Victoria
+#usr/share/zoneinfo/right/Australia/West
+#usr/share/zoneinfo/right/Australia/Yancowinna
+#usr/share/zoneinfo/right/Brazil
+#usr/share/zoneinfo/right/Brazil/Acre
+#usr/share/zoneinfo/right/Brazil/DeNoronha
+#usr/share/zoneinfo/right/Brazil/East
+#usr/share/zoneinfo/right/Brazil/West
+#usr/share/zoneinfo/right/CET
+#usr/share/zoneinfo/right/CST6CDT
+#usr/share/zoneinfo/right/Canada
+#usr/share/zoneinfo/right/Canada/Atlantic
+#usr/share/zoneinfo/right/Canada/Central
+#usr/share/zoneinfo/right/Canada/East-Saskatchewan
+#usr/share/zoneinfo/right/Canada/Eastern
+#usr/share/zoneinfo/right/Canada/Mountain
+#usr/share/zoneinfo/right/Canada/Newfoundland
+#usr/share/zoneinfo/right/Canada/Pacific
+#usr/share/zoneinfo/right/Canada/Saskatchewan
+#usr/share/zoneinfo/right/Canada/Yukon
+#usr/share/zoneinfo/right/Chile
+#usr/share/zoneinfo/right/Chile/Continental
+#usr/share/zoneinfo/right/Chile/EasterIsland
+#usr/share/zoneinfo/right/Cuba
+#usr/share/zoneinfo/right/EET
+#usr/share/zoneinfo/right/EST
+#usr/share/zoneinfo/right/EST5EDT
+#usr/share/zoneinfo/right/Egypt
+#usr/share/zoneinfo/right/Eire
+#usr/share/zoneinfo/right/Etc
+#usr/share/zoneinfo/right/Etc/GMT
+#usr/share/zoneinfo/right/Etc/GMT+0
+#usr/share/zoneinfo/right/Etc/GMT+1
+#usr/share/zoneinfo/right/Etc/GMT+10
+#usr/share/zoneinfo/right/Etc/GMT+11
+#usr/share/zoneinfo/right/Etc/GMT+12
+#usr/share/zoneinfo/right/Etc/GMT+2
+#usr/share/zoneinfo/right/Etc/GMT+3
+#usr/share/zoneinfo/right/Etc/GMT+4
+#usr/share/zoneinfo/right/Etc/GMT+5
+#usr/share/zoneinfo/right/Etc/GMT+6
+#usr/share/zoneinfo/right/Etc/GMT+7
+#usr/share/zoneinfo/right/Etc/GMT+8
+#usr/share/zoneinfo/right/Etc/GMT+9
+#usr/share/zoneinfo/right/Etc/GMT-0
+#usr/share/zoneinfo/right/Etc/GMT-1
+#usr/share/zoneinfo/right/Etc/GMT-10
+#usr/share/zoneinfo/right/Etc/GMT-11
+#usr/share/zoneinfo/right/Etc/GMT-12
+#usr/share/zoneinfo/right/Etc/GMT-13
+#usr/share/zoneinfo/right/Etc/GMT-14
+#usr/share/zoneinfo/right/Etc/GMT-2
+#usr/share/zoneinfo/right/Etc/GMT-3
+#usr/share/zoneinfo/right/Etc/GMT-4
+#usr/share/zoneinfo/right/Etc/GMT-5
+#usr/share/zoneinfo/right/Etc/GMT-6
+#usr/share/zoneinfo/right/Etc/GMT-7
+#usr/share/zoneinfo/right/Etc/GMT-8
+#usr/share/zoneinfo/right/Etc/GMT-9
+#usr/share/zoneinfo/right/Etc/GMT0
+#usr/share/zoneinfo/right/Etc/Greenwich
+#usr/share/zoneinfo/right/Etc/UCT
+#usr/share/zoneinfo/right/Etc/UTC
+#usr/share/zoneinfo/right/Etc/Universal
+#usr/share/zoneinfo/right/Etc/Zulu
+#usr/share/zoneinfo/right/Europe
+#usr/share/zoneinfo/right/Europe/Amsterdam
+#usr/share/zoneinfo/right/Europe/Andorra
+#usr/share/zoneinfo/right/Europe/Athens
+#usr/share/zoneinfo/right/Europe/Belfast
+#usr/share/zoneinfo/right/Europe/Belgrade
+#usr/share/zoneinfo/right/Europe/Berlin
+#usr/share/zoneinfo/right/Europe/Bratislava
+#usr/share/zoneinfo/right/Europe/Brussels
+#usr/share/zoneinfo/right/Europe/Bucharest
+#usr/share/zoneinfo/right/Europe/Budapest
+#usr/share/zoneinfo/right/Europe/Chisinau
+#usr/share/zoneinfo/right/Europe/Copenhagen
+#usr/share/zoneinfo/right/Europe/Dublin
+#usr/share/zoneinfo/right/Europe/Gibraltar
+#usr/share/zoneinfo/right/Europe/Helsinki
+#usr/share/zoneinfo/right/Europe/Istanbul
+#usr/share/zoneinfo/right/Europe/Kaliningrad
+#usr/share/zoneinfo/right/Europe/Kiev
+#usr/share/zoneinfo/right/Europe/Lisbon
+#usr/share/zoneinfo/right/Europe/Ljubljana
+#usr/share/zoneinfo/right/Europe/London
+#usr/share/zoneinfo/right/Europe/Luxembourg
+#usr/share/zoneinfo/right/Europe/Madrid
+#usr/share/zoneinfo/right/Europe/Malta
+#usr/share/zoneinfo/right/Europe/Minsk
+#usr/share/zoneinfo/right/Europe/Monaco
+#usr/share/zoneinfo/right/Europe/Moscow
+#usr/share/zoneinfo/right/Europe/Nicosia
+#usr/share/zoneinfo/right/Europe/Oslo
+#usr/share/zoneinfo/right/Europe/Paris
+#usr/share/zoneinfo/right/Europe/Prague
+#usr/share/zoneinfo/right/Europe/Riga
+#usr/share/zoneinfo/right/Europe/Rome
+#usr/share/zoneinfo/right/Europe/Samara
+#usr/share/zoneinfo/right/Europe/San_Marino
+#usr/share/zoneinfo/right/Europe/Sarajevo
+#usr/share/zoneinfo/right/Europe/Simferopol
+#usr/share/zoneinfo/right/Europe/Skopje
+#usr/share/zoneinfo/right/Europe/Sofia
+#usr/share/zoneinfo/right/Europe/Stockholm
+#usr/share/zoneinfo/right/Europe/Tallinn
+#usr/share/zoneinfo/right/Europe/Tirane
+#usr/share/zoneinfo/right/Europe/Tiraspol
+#usr/share/zoneinfo/right/Europe/Uzhgorod
+#usr/share/zoneinfo/right/Europe/Vaduz
+#usr/share/zoneinfo/right/Europe/Vatican
+#usr/share/zoneinfo/right/Europe/Vienna
+#usr/share/zoneinfo/right/Europe/Vilnius
+#usr/share/zoneinfo/right/Europe/Warsaw
+#usr/share/zoneinfo/right/Europe/Zagreb
+#usr/share/zoneinfo/right/Europe/Zaporozhye
+#usr/share/zoneinfo/right/Europe/Zurich
+#usr/share/zoneinfo/right/Factory
+#usr/share/zoneinfo/right/GB
+#usr/share/zoneinfo/right/GB-Eire
+#usr/share/zoneinfo/right/GMT
+#usr/share/zoneinfo/right/GMT+0
+#usr/share/zoneinfo/right/GMT-0
+#usr/share/zoneinfo/right/GMT0
+#usr/share/zoneinfo/right/Greenwich
+#usr/share/zoneinfo/right/HST
+#usr/share/zoneinfo/right/Hongkong
+#usr/share/zoneinfo/right/Iceland
+#usr/share/zoneinfo/right/Indian
+#usr/share/zoneinfo/right/Indian/Antananarivo
+#usr/share/zoneinfo/right/Indian/Chagos
+#usr/share/zoneinfo/right/Indian/Christmas
+#usr/share/zoneinfo/right/Indian/Cocos
+#usr/share/zoneinfo/right/Indian/Comoro
+#usr/share/zoneinfo/right/Indian/Kerguelen
+#usr/share/zoneinfo/right/Indian/Mahe
+#usr/share/zoneinfo/right/Indian/Maldives
+#usr/share/zoneinfo/right/Indian/Mauritius
+#usr/share/zoneinfo/right/Indian/Mayotte
+#usr/share/zoneinfo/right/Indian/Reunion
+#usr/share/zoneinfo/right/Iran
+#usr/share/zoneinfo/right/Israel
+#usr/share/zoneinfo/right/Jamaica
+#usr/share/zoneinfo/right/Japan
+#usr/share/zoneinfo/right/Kwajalein
+#usr/share/zoneinfo/right/Libya
+#usr/share/zoneinfo/right/MET
+#usr/share/zoneinfo/right/MST
+#usr/share/zoneinfo/right/MST7MDT
+#usr/share/zoneinfo/right/Mexico
+#usr/share/zoneinfo/right/Mexico/BajaNorte
+#usr/share/zoneinfo/right/Mexico/BajaSur
+#usr/share/zoneinfo/right/Mexico/General
+#usr/share/zoneinfo/right/Mideast
+#usr/share/zoneinfo/right/Mideast/Riyadh87
+#usr/share/zoneinfo/right/Mideast/Riyadh88
+#usr/share/zoneinfo/right/Mideast/Riyadh89
+#usr/share/zoneinfo/right/NZ
+#usr/share/zoneinfo/right/NZ-CHAT
+#usr/share/zoneinfo/right/Navajo
+#usr/share/zoneinfo/right/PRC
+#usr/share/zoneinfo/right/PST8PDT
+#usr/share/zoneinfo/right/Pacific
+#usr/share/zoneinfo/right/Pacific/Apia
+#usr/share/zoneinfo/right/Pacific/Auckland
+#usr/share/zoneinfo/right/Pacific/Chatham
+#usr/share/zoneinfo/right/Pacific/Easter
+#usr/share/zoneinfo/right/Pacific/Efate
+#usr/share/zoneinfo/right/Pacific/Enderbury
+#usr/share/zoneinfo/right/Pacific/Fakaofo
+#usr/share/zoneinfo/right/Pacific/Fiji
+#usr/share/zoneinfo/right/Pacific/Funafuti
+#usr/share/zoneinfo/right/Pacific/Galapagos
+#usr/share/zoneinfo/right/Pacific/Gambier
+#usr/share/zoneinfo/right/Pacific/Guadalcanal
+#usr/share/zoneinfo/right/Pacific/Guam
+#usr/share/zoneinfo/right/Pacific/Honolulu
+#usr/share/zoneinfo/right/Pacific/Johnston
+#usr/share/zoneinfo/right/Pacific/Kiritimati
+#usr/share/zoneinfo/right/Pacific/Kosrae
+#usr/share/zoneinfo/right/Pacific/Kwajalein
+#usr/share/zoneinfo/right/Pacific/Majuro
+#usr/share/zoneinfo/right/Pacific/Marquesas
+#usr/share/zoneinfo/right/Pacific/Midway
+#usr/share/zoneinfo/right/Pacific/Nauru
+#usr/share/zoneinfo/right/Pacific/Niue
+#usr/share/zoneinfo/right/Pacific/Norfolk
+#usr/share/zoneinfo/right/Pacific/Noumea
+#usr/share/zoneinfo/right/Pacific/Pago_Pago
+#usr/share/zoneinfo/right/Pacific/Palau
+#usr/share/zoneinfo/right/Pacific/Pitcairn
+#usr/share/zoneinfo/right/Pacific/Ponape
+#usr/share/zoneinfo/right/Pacific/Port_Moresby
+#usr/share/zoneinfo/right/Pacific/Rarotonga
+#usr/share/zoneinfo/right/Pacific/Saipan
+#usr/share/zoneinfo/right/Pacific/Samoa
+#usr/share/zoneinfo/right/Pacific/Tahiti
+#usr/share/zoneinfo/right/Pacific/Tarawa
+#usr/share/zoneinfo/right/Pacific/Tongatapu
+#usr/share/zoneinfo/right/Pacific/Truk
+#usr/share/zoneinfo/right/Pacific/Wake
+#usr/share/zoneinfo/right/Pacific/Wallis
+#usr/share/zoneinfo/right/Pacific/Yap
+#usr/share/zoneinfo/right/Poland
+#usr/share/zoneinfo/right/Portugal
+#usr/share/zoneinfo/right/ROC
+#usr/share/zoneinfo/right/ROK
+#usr/share/zoneinfo/right/Singapore
+#usr/share/zoneinfo/right/SystemV
+#usr/share/zoneinfo/right/SystemV/AST4
+#usr/share/zoneinfo/right/SystemV/AST4ADT
+#usr/share/zoneinfo/right/SystemV/CST6
+#usr/share/zoneinfo/right/SystemV/CST6CDT
+#usr/share/zoneinfo/right/SystemV/EST5
+#usr/share/zoneinfo/right/SystemV/EST5EDT
+#usr/share/zoneinfo/right/SystemV/HST10
+#usr/share/zoneinfo/right/SystemV/MST7
+#usr/share/zoneinfo/right/SystemV/MST7MDT
+#usr/share/zoneinfo/right/SystemV/PST8
+#usr/share/zoneinfo/right/SystemV/PST8PDT
+#usr/share/zoneinfo/right/SystemV/YST9
+#usr/share/zoneinfo/right/SystemV/YST9YDT
+#usr/share/zoneinfo/right/Turkey
+#usr/share/zoneinfo/right/UCT
+#usr/share/zoneinfo/right/US
+#usr/share/zoneinfo/right/US/Alaska
+#usr/share/zoneinfo/right/US/Aleutian
+#usr/share/zoneinfo/right/US/Arizona
+#usr/share/zoneinfo/right/US/Central
+#usr/share/zoneinfo/right/US/East-Indiana
+#usr/share/zoneinfo/right/US/Eastern
+#usr/share/zoneinfo/right/US/Hawaii
+#usr/share/zoneinfo/right/US/Indiana-Starke
+#usr/share/zoneinfo/right/US/Michigan
+#usr/share/zoneinfo/right/US/Mountain
+#usr/share/zoneinfo/right/US/Pacific
+#usr/share/zoneinfo/right/US/Samoa
+#usr/share/zoneinfo/right/UTC
+#usr/share/zoneinfo/right/Universal
+#usr/share/zoneinfo/right/W-SU
+#usr/share/zoneinfo/right/WET
+#usr/share/zoneinfo/right/Zulu
+#usr/share/zoneinfo/zone.tab
+##
+## binutils-2.14
+##
+#usr/bin/addr2line
+#usr/bin/ar
+#usr/bin/as
+#usr/bin/c++filt
+#usr/bin/gprof
+#usr/bin/ld
+#usr/bin/nm
+#usr/bin/objcopy
+#usr/bin/objdump
+#usr/bin/ranlib
+#usr/bin/readelf
+#usr/bin/size
+#usr/bin/strings
+#usr/bin/strip
+#usr/i386-pc-linux-gnu
+#usr/i386-pc-linux-gnu/bin
+#usr/i386-pc-linux-gnu/bin/ar
+#usr/i386-pc-linux-gnu/bin/as
+#usr/i386-pc-linux-gnu/bin/ld
+#usr/i386-pc-linux-gnu/bin/nm
+#usr/i386-pc-linux-gnu/bin/ranlib
+#usr/i386-pc-linux-gnu/bin/strip
+#usr/i386-pc-linux-gnu/lib
+#usr/i386-pc-linux-gnu/lib/ldscripts
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.x
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xbn
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xc
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xn
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xr
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xs
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xsc
+#usr/i386-pc-linux-gnu/lib/ldscripts/elf_i386.xu
+#usr/i386-pc-linux-gnu/lib/ldscripts/i386linux.x
+#usr/i386-pc-linux-gnu/lib/ldscripts/i386linux.xbn
+#usr/i386-pc-linux-gnu/lib/ldscripts/i386linux.xn
+#usr/i386-pc-linux-gnu/lib/ldscripts/i386linux.xr
+#usr/i386-pc-linux-gnu/lib/ldscripts/i386linux.xu
+#usr/include/ansidecl.h
+#usr/include/bfd.h
+#usr/include/bfdlink.h
+#usr/include/dis-asm.h
+#usr/include/symcat.h
+#usr/lib/libbfd-2.14.so
+#usr/lib/libbfd.a
+#usr/lib/libbfd.la
+#usr/lib/libbfd.so
+#usr/lib/libiberty.a
+#usr/lib/libopcodes-2.14.so
+#usr/lib/libopcodes.a
+#usr/lib/libopcodes.la
+#usr/lib/libopcodes.so
+#usr/share/info/as.info
+#usr/share/info/bfd.info
+#usr/share/info/bfd.info-1
+#usr/share/info/bfd.info-2
+#usr/share/info/bfd.info-3
+#usr/share/info/bfd.info-4
+#usr/share/info/bfd.info-5
+#usr/share/info/bfd.info-6
+#usr/share/info/bfd.info-7
+#usr/share/info/bfd.info-8
+#usr/share/info/bfd.info-9
+#usr/share/info/binutils.info
+#usr/share/info/configure.info
+#usr/share/info/configure.info-1
+#usr/share/info/configure.info-2
+#usr/share/info/configure.info-3
+#usr/share/info/gprof.info
+#usr/share/info/gprof.info-1
+#usr/share/info/gprof.info-2
+#usr/share/info/gprof.info-3
+#usr/share/info/ld.info
+#usr/share/info/standards.info
+#usr/share/man/man1/addr2line.1
+#usr/share/man/man1/ar.1
+#usr/share/man/man1/as.1
+#usr/share/man/man1/c++filt.1
+#usr/share/man/man1/dlltool.1
+#usr/share/man/man1/gprof.1
+#usr/share/man/man1/ld.1
+#usr/share/man/man1/nlmconv.1
+#usr/share/man/man1/nm.1
+#usr/share/man/man1/objcopy.1
+#usr/share/man/man1/objdump.1
+#usr/share/man/man1/ranlib.1
+#usr/share/man/man1/readelf.1
+#usr/share/man/man1/size.1
+#usr/share/man/man1/strings.1
+#usr/share/man/man1/strip.1
+#usr/share/man/man1/windres.1
+##
+## gcc-3.3.3
+##
+#usr/bin/c++
+#usr/bin/g++
+#usr/bin/i386-pc-linux-gnu-g++
+#usr/bin/i386-pc-linux-gnu-c++
+#usr/bin/cc
+#usr/bin/gcov
+#usr/bin/gccbug
+#usr/bin/cpp
+#usr/bin/gcc
+#usr/bin/i386-pc-linux-gnu-gcc-3.3.3
+#usr/bin/i386-pc-linux-gnu-gcc
+#usr/include/c++
+#usr/include/c++/3.3.3
+#usr/include/c++/3.3.3/bits
+#usr/include/c++/3.3.3/bits/basic_ios.h
+#usr/include/c++/3.3.3/bits/basic_ios.tcc
+#usr/include/c++/3.3.3/bits/basic_string.h
+#usr/include/c++/3.3.3/bits/basic_string.tcc
+#usr/include/c++/3.3.3/bits/boost_concept_check.h
+#usr/include/c++/3.3.3/bits/char_traits.h
+#usr/include/c++/3.3.3/bits/codecvt.h
+#usr/include/c++/3.3.3/bits/concept_check.h
+#usr/include/c++/3.3.3/bits/cpp_type_traits.h
+#usr/include/c++/3.3.3/bits/deque.tcc
+#usr/include/c++/3.3.3/bits/fpos.h
+#usr/include/c++/3.3.3/bits/fstream.tcc
+#usr/include/c++/3.3.3/bits/functexcept.h
+#usr/include/c++/3.3.3/bits/gslice.h
+#usr/include/c++/3.3.3/bits/gslice_array.h
+#usr/include/c++/3.3.3/bits/indirect_array.h
+#usr/include/c++/3.3.3/bits/ios_base.h
+#usr/include/c++/3.3.3/bits/istream.tcc
+#usr/include/c++/3.3.3/bits/list.tcc
+#usr/include/c++/3.3.3/bits/locale_classes.h
+#usr/include/c++/3.3.3/bits/locale_facets.h
+#usr/include/c++/3.3.3/bits/locale_facets.tcc
+#usr/include/c++/3.3.3/bits/localefwd.h
+#usr/include/c++/3.3.3/bits/mask_array.h
+#usr/include/c++/3.3.3/bits/ostream.tcc
+#usr/include/c++/3.3.3/bits/pthread_allocimpl.h
+#usr/include/c++/3.3.3/bits/stream_iterator.h
+#usr/include/c++/3.3.3/bits/streambuf_iterator.h
+#usr/include/c++/3.3.3/bits/slice_array.h
+#usr/include/c++/3.3.3/bits/sstream.tcc
+#usr/include/c++/3.3.3/bits/stl_algo.h
+#usr/include/c++/3.3.3/bits/stl_algobase.h
+#usr/include/c++/3.3.3/bits/stl_alloc.h
+#usr/include/c++/3.3.3/bits/stl_bvector.h
+#usr/include/c++/3.3.3/bits/stl_construct.h
+#usr/include/c++/3.3.3/bits/stl_deque.h
+#usr/include/c++/3.3.3/bits/stl_function.h
+#usr/include/c++/3.3.3/bits/stl_heap.h
+#usr/include/c++/3.3.3/bits/stl_iterator.h
+#usr/include/c++/3.3.3/bits/stl_iterator_base_funcs.h
+#usr/include/c++/3.3.3/bits/stl_iterator_base_types.h
+#usr/include/c++/3.3.3/bits/stl_list.h
+#usr/include/c++/3.3.3/bits/stl_map.h
+#usr/include/c++/3.3.3/bits/stl_multimap.h
+#usr/include/c++/3.3.3/bits/stl_multiset.h
+#usr/include/c++/3.3.3/bits/stl_numeric.h
+#usr/include/c++/3.3.3/bits/stl_pair.h
+#usr/include/c++/3.3.3/bits/stl_pthread_alloc.h
+#usr/include/c++/3.3.3/bits/stl_queue.h
+#usr/include/c++/3.3.3/bits/stl_raw_storage_iter.h
+#usr/include/c++/3.3.3/bits/stl_relops.h
+#usr/include/c++/3.3.3/bits/stl_set.h
+#usr/include/c++/3.3.3/bits/stl_stack.h
+#usr/include/c++/3.3.3/bits/stl_tempbuf.h
+#usr/include/c++/3.3.3/bits/stl_threads.h
+#usr/include/c++/3.3.3/bits/stl_tree.h
+#usr/include/c++/3.3.3/bits/stl_uninitialized.h
+#usr/include/c++/3.3.3/bits/stl_vector.h
+#usr/include/c++/3.3.3/bits/streambuf.tcc
+#usr/include/c++/3.3.3/bits/stringfwd.h
+#usr/include/c++/3.3.3/bits/type_traits.h
+#usr/include/c++/3.3.3/bits/valarray_array.h
+#usr/include/c++/3.3.3/bits/valarray_array.tcc
+#usr/include/c++/3.3.3/bits/valarray_meta.h
+#usr/include/c++/3.3.3/bits/vector.tcc
+#usr/include/c++/3.3.3/bits/cmath.tcc
+#usr/include/c++/3.3.3/backward
+#usr/include/c++/3.3.3/backward/complex.h
+#usr/include/c++/3.3.3/backward/iomanip.h
+#usr/include/c++/3.3.3/backward/istream.h
+#usr/include/c++/3.3.3/backward/ostream.h
+#usr/include/c++/3.3.3/backward/stream.h
+#usr/include/c++/3.3.3/backward/streambuf.h
+#usr/include/c++/3.3.3/backward/algo.h
+#usr/include/c++/3.3.3/backward/algobase.h
+#usr/include/c++/3.3.3/backward/alloc.h
+#usr/include/c++/3.3.3/backward/bvector.h
+#usr/include/c++/3.3.3/backward/defalloc.h
+#usr/include/c++/3.3.3/backward/deque.h
+#usr/include/c++/3.3.3/backward/function.h
+#usr/include/c++/3.3.3/backward/hash_map.h
+#usr/include/c++/3.3.3/backward/hash_set.h
+#usr/include/c++/3.3.3/backward/hashtable.h
+#usr/include/c++/3.3.3/backward/heap.h
+#usr/include/c++/3.3.3/backward/iostream.h
+#usr/include/c++/3.3.3/backward/iterator.h
+#usr/include/c++/3.3.3/backward/list.h
+#usr/include/c++/3.3.3/backward/map.h
+#usr/include/c++/3.3.3/backward/multimap.h
+#usr/include/c++/3.3.3/backward/new.h
+#usr/include/c++/3.3.3/backward/multiset.h
+#usr/include/c++/3.3.3/backward/pair.h
+#usr/include/c++/3.3.3/backward/queue.h
+#usr/include/c++/3.3.3/backward/rope.h
+#usr/include/c++/3.3.3/backward/set.h
+#usr/include/c++/3.3.3/backward/slist.h
+#usr/include/c++/3.3.3/backward/stack.h
+#usr/include/c++/3.3.3/backward/tempbuf.h
+#usr/include/c++/3.3.3/backward/tree.h
+#usr/include/c++/3.3.3/backward/vector.h
+#usr/include/c++/3.3.3/backward/fstream.h
+#usr/include/c++/3.3.3/backward/strstream
+#usr/include/c++/3.3.3/backward/backward_warning.h
+#usr/include/c++/3.3.3/ext
+#usr/include/c++/3.3.3/ext/algorithm
+#usr/include/c++/3.3.3/ext/enc_filebuf.h
+#usr/include/c++/3.3.3/ext/stdio_filebuf.h
+#usr/include/c++/3.3.3/ext/functional
+#usr/include/c++/3.3.3/ext/hash_map
+#usr/include/c++/3.3.3/ext/hash_set
+#usr/include/c++/3.3.3/ext/iterator
+#usr/include/c++/3.3.3/ext/memory
+#usr/include/c++/3.3.3/ext/numeric
+#usr/include/c++/3.3.3/ext/rb_tree
+#usr/include/c++/3.3.3/ext/rope
+#usr/include/c++/3.3.3/ext/ropeimpl.h
+#usr/include/c++/3.3.3/ext/slist
+#usr/include/c++/3.3.3/ext/stl_hash_fun.h
+#usr/include/c++/3.3.3/ext/stl_hashtable.h
+#usr/include/c++/3.3.3/ext/stl_rope.h
+#usr/include/c++/3.3.3/cassert
+#usr/include/c++/3.3.3/cctype
+#usr/include/c++/3.3.3/cerrno
+#usr/include/c++/3.3.3/cfloat
+#usr/include/c++/3.3.3/ciso646
+#usr/include/c++/3.3.3/climits
+#usr/include/c++/3.3.3/clocale
+#usr/include/c++/3.3.3/cmath
+#usr/include/c++/3.3.3/csetjmp
+#usr/include/c++/3.3.3/csignal
+#usr/include/c++/3.3.3/cstdarg
+#usr/include/c++/3.3.3/cstddef
+#usr/include/c++/3.3.3/cstdio
+#usr/include/c++/3.3.3/cstdlib
+#usr/include/c++/3.3.3/cstring
+#usr/include/c++/3.3.3/ctime
+#usr/include/c++/3.3.3/cwchar
+#usr/include/c++/3.3.3/cwctype
+#usr/include/c++/3.3.3/algorithm
+#usr/include/c++/3.3.3/bitset
+#usr/include/c++/3.3.3/complex
+#usr/include/c++/3.3.3/deque
+#usr/include/c++/3.3.3/fstream
+#usr/include/c++/3.3.3/functional
+#usr/include/c++/3.3.3/iomanip
+#usr/include/c++/3.3.3/ios
+#usr/include/c++/3.3.3/iosfwd
+#usr/include/c++/3.3.3/iostream
+#usr/include/c++/3.3.3/istream
+#usr/include/c++/3.3.3/iterator
+#usr/include/c++/3.3.3/limits
+#usr/include/c++/3.3.3/list
+#usr/include/c++/3.3.3/locale
+#usr/include/c++/3.3.3/map
+#usr/include/c++/3.3.3/memory
+#usr/include/c++/3.3.3/numeric
+#usr/include/c++/3.3.3/ostream
+#usr/include/c++/3.3.3/queue
+#usr/include/c++/3.3.3/set
+#usr/include/c++/3.3.3/sstream
+#usr/include/c++/3.3.3/stack
+#usr/include/c++/3.3.3/stdexcept
+#usr/include/c++/3.3.3/streambuf
+#usr/include/c++/3.3.3/string
+#usr/include/c++/3.3.3/utility
+#usr/include/c++/3.3.3/valarray
+#usr/include/c++/3.3.3/vector
+#usr/include/c++/3.3.3/i386-pc-linux-gnu
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/ctype_base.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/ctype_inline.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/ctype_noninline.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/os_defines.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/atomicity.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/basic_file.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/c++config.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/c++io.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/c++locale.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/messages_members.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/time_members.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/codecvt_specializations.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/gthr.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/gthr-single.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/gthr-posix.h
+#usr/include/c++/3.3.3/i386-pc-linux-gnu/bits/gthr-default.h
+#usr/include/c++/3.3.3/exception
+#usr/include/c++/3.3.3/new
+#usr/include/c++/3.3.3/typeinfo
+#usr/include/c++/3.3.3/cxxabi.h
+#usr/include/c++/3.3.3/exception_defines.h
+#usr/lib/gcc-lib
+#usr/lib/gcc-lib/i386-pc-linux-gnu
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/syslimits.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/float.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/iso646.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/stdarg.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/stdbool.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/stddef.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/varargs.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/unwind.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/mmintrin.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/xmmintrin.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/limits.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/cc1
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/cc1plus
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/collect2
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/crtbegin.o
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/crtbeginS.o
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/crtbeginT.o
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/crtend.o
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/crtendS.o
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/specs
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/float.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/iso646.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/stdarg.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/stdbool.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/stddef.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/varargs.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/unwind.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/mmintrin.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/xmmintrin.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/limits.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/include/README
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/fixinc.sh
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/fixincl
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/gsyslimits.h
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/mkheaders
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/install-tools/mkheaders.conf
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/libgcc.a
+#usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/libgcc_eh.a
+usr/lib/libgcc_s.so
+usr/lib/libgcc_s.so.1
+usr/lib/libstdc++.so
+usr/lib/libstdc++.so.5
+usr/lib/libstdc++.so.5.0.5
+#usr/lib/libstdc++.la
+#usr/lib/libstdc++.a
+#usr/lib/libsupc++.la
+#usr/lib/libsupc++.a
+#usr/share/info/cpp.info
+#usr/share/info/gcc.info
+#usr/share/info/cppinternals.info
+#usr/share/info/gccint.info
+#usr/share/man/man1/g++.1
+#usr/share/man/man1/gcc.1
+#usr/share/man/man1/cpp.1
+#usr/share/man/man1/gcov.1
+#usr/share/man/man7/fsf-funding.7
+#usr/share/man/man7/gfdl.7
+#usr/share/man/man7/gpl.7
+#lib/cpp
+##
+## coreutils-5.2.1
+##
+bin/[
+bin/basename
+bin/chgrp
+bin/chmod
+bin/chown
+bin/cp
+bin/date
+bin/dd
+bin/df
+#bin/dir
+#bin/dircolors
+bin/du
+bin/echo
+bin/false
+bin/head
+bin/install
+bin/ln
+bin/ls
+bin/mkdir
+bin/mkfifo
+bin/mknod
+bin/mv
+bin/rm
+bin/rmdir
+#bin/shred
+bin/sleep
+bin/su
+bin/sync
+bin/test
+bin/touch
+bin/true
+#bin/uname
+bin/uname.bak
+#bin/vdir
+#usr/bin/cksum
+#usr/bin/comm
+#usr/bin/csplit
+usr/bin/cut
+usr/bin/dirname
+usr/bin/env
+#usr/bin/expand
+usr/bin/expr
+#usr/bin/factor
+#usr/bin/fmt
+#usr/bin/fold
+usr/bin/groups
+usr/bin/hostid
+usr/bin/id
+#usr/bin/install
+usr/bin/join
+#usr/bin/kill
+#usr/bin/link
+#usr/bin/logname
+usr/bin/md5sum
+usr/bin/nice
+#usr/bin/nl
+usr/bin/nohup
+#usr/bin/od
+usr/bin/paste
+#usr/bin/pathchk
+#usr/bin/pinky
+#usr/bin/pr
+#usr/bin/printenv
+#usr/bin/printf
+#usr/bin/ptx
+#usr/bin/readlink
+usr/bin/seq
+#usr/bin/sha1sum
+usr/bin/sort
+usr/bin/split
+usr/bin/stat
+#usr/bin/sum
+#usr/bin/tac
+usr/bin/tail
+usr/bin/tee
+usr/bin/tr
+#usr/bin/tsort
+#usr/bin/tty
+#usr/bin/unexpand
+usr/bin/uniq
+#usr/bin/unlink
+usr/bin/uptime
+#usr/bin/users
+usr/bin/wc
+usr/bin/who
+usr/bin/whoami
+usr/bin/yes
+usr/sbin/chroot
+#usr/share/info/coreutils.info
+#usr/share/man/man1/basename.1
+#usr/share/man/man1/cat.1
+#usr/share/man/man1/chroot.1
+#usr/share/man/man1/cksum.1
+#usr/share/man/man1/comm.1
+#usr/share/man/man1/csplit.1
+#usr/share/man/man1/cut.1
+#usr/share/man/man1/date.1
+#usr/share/man/man1/dirname.1
+#usr/share/man/man1/echo.1
+#usr/share/man/man1/env.1
+#usr/share/man/man1/expand.1
+#usr/share/man/man1/expr.1
+#usr/share/man/man1/factor.1
+#usr/share/man/man1/false.1
+#usr/share/man/man1/fmt.1
+#usr/share/man/man1/fold.1
+#usr/share/man/man1/groups.1
+#usr/share/man/man1/head.1
+#usr/share/man/man1/hostid.1
+#usr/share/man/man1/id.1
+#usr/share/man/man1/join.1
+#usr/share/man/man1/link.1
+#usr/share/man/man1/logname.1
+#usr/share/man/man1/md5sum.1
+#usr/share/man/man1/nice.1
+#usr/share/man/man1/nl.1
+#usr/share/man/man1/nohup.1
+#usr/share/man/man1/od.1
+#usr/share/man/man1/paste.1
+#usr/share/man/man1/pathchk.1
+#usr/share/man/man1/pinky.1
+#usr/share/man/man1/pr.1
+#usr/share/man/man1/printenv.1
+#usr/share/man/man1/printf.1
+#usr/share/man/man1/ptx.1
+#usr/share/man/man1/pwd.1
+#usr/share/man/man1/readlink.1
+#usr/share/man/man1/seq.1
+#usr/share/man/man1/sha1sum.1
+#usr/share/man/man1/shred.1
+#usr/share/man/man1/sleep.1
+#usr/share/man/man1/sort.1
+#usr/share/man/man1/split.1
+#usr/share/man/man1/stat.1
+#usr/share/man/man1/stty.1
+#usr/share/man/man1/su.1
+#usr/share/man/man1/sum.1
+#usr/share/man/man1/sync.1
+#usr/share/man/man1/tac.1
+#usr/share/man/man1/tail.1
+#usr/share/man/man1/tee.1
+#usr/share/man/man1/test.1
+#usr/share/man/man1/tr.1
+#usr/share/man/man1/true.1
+#usr/share/man/man1/tsort.1
+#usr/share/man/man1/tty.1
+#usr/share/man/man1/uname.1
+#usr/share/man/man1/unexpand.1
+#usr/share/man/man1/uniq.1
+#usr/share/man/man1/unlink.1
+#usr/share/man/man1/uptime.1
+#usr/share/man/man1/users.1
+#usr/share/man/man1/wc.1
+#usr/share/man/man1/who.1
+#usr/share/man/man1/whoami.1
+#usr/share/man/man1/yes.1
+##
+## zlib-1.2.3
+##
+lib/libz.so.1
+lib/libz.so.1.2.3
+#usr/include/zconf.h
+#usr/include/zlib.h
+#usr/lib/libz.a
+#usr/share/man/man3/zlib.3
+##
+## mktemp-1.5
+##
+usr/bin/mktemp
+#usr/share/man/man1/mktemp.1
+##
+## Iana-Etc-2.00
+##
+etc/protocols
+etc/services
+##
+## findutils-4.1.20
+##
+#usr/bin/bigram
+#usr/bin/code
+usr/bin/find
+#usr/bin/frcode
+#usr/bin/locate
+#usr/bin/updatedb
+#usr/bin/xargs
+#usr/share/info/find.info
+#usr/share/info/find.info-1
+#usr/share/info/find.info-2
+#usr/share/man/man1/find.1
+#usr/share/man/man1/locate.1
+#usr/share/man/man1/updatedb.1
+#usr/share/man/man1/xargs.1
+#usr/share/man/man5/locatedb.5
+#usr/var
+##
+## gawk-3.1.3
+##
+usr/bin/awk
+usr/bin/gawk
+#usr/bin/gawk-3.1.3
+#usr/bin/grcat
+#usr/bin/igawk
+#usr/bin/pgawk
+#usr/bin/pgawk-3.1.3
+#usr/bin/pwcat
+#usr/share/gawk-3.1.3
+#usr/share/gawk-3.1.3/assert.awk
+#usr/share/gawk-3.1.3/bits2str.awk
+#usr/share/gawk-3.1.3/cliff_rand.awk
+#usr/share/gawk-3.1.3/ctime.awk
+#usr/share/gawk-3.1.3/ftrans.awk
+#usr/share/gawk-3.1.3/getopt.awk
+#usr/share/gawk-3.1.3/gettime.awk
+#usr/share/gawk-3.1.3/group.awk
+#usr/share/gawk-3.1.3/join.awk
+#usr/share/gawk-3.1.3/libintl.awk
+#usr/share/gawk-3.1.3/nextfile.awk
+#usr/share/gawk-3.1.3/noassign.awk
+#usr/share/gawk-3.1.3/ord.awk
+#usr/share/gawk-3.1.3/passwd.awk
+#usr/share/gawk-3.1.3/readable.awk
+#usr/share/gawk-3.1.3/rewind.awk
+#usr/share/gawk-3.1.3/round.awk
+#usr/share/gawk-3.1.3/zerofile.awk
+#usr/share/info/gawk.info
+#usr/share/info/gawkinet.info
+#usr/share/man/man1/gawk.1
+#usr/share/man/man1/igawk.1
+#usr/share/man/man1/pgawk.1
+##
+## ncurses-5.4
+##
+lib/libncurses.so.5
+lib/libncurses.so.5.4
+#usr/bin/captoinfo
+#usr/bin/clear
+#usr/bin/infocmp
+#usr/bin/infotocap
+#usr/bin/reset
+#usr/bin/tack
+#usr/bin/tic
+#usr/bin/toe
+usr/bin/tput
+#usr/bin/tset
+#usr/include/curses.h
+#usr/include/cursesapp.h
+#usr/include/cursesf.h
+#usr/include/cursesm.h
+#usr/include/cursesp.h
+#usr/include/cursesw.h
+#usr/include/cursslk.h
+#usr/include/eti.h
+#usr/include/etip.h
+#usr/include/form.h
+#usr/include/menu.h
+#usr/include/ncurses.h
+#usr/include/ncurses_dll.h
+#usr/include/panel.h
+#usr/include/term.h
+#usr/include/termcap.h
+#usr/include/unctrl.h
+#usr/lib/libcurses.a
+#usr/lib/libcurses.so
+#usr/lib/libform.a
+#usr/lib/libform.so
+#usr/lib/libform.so.5
+#usr/lib/libform.so.5.4
+#usr/lib/libmenu.a
+#usr/lib/libmenu.so
+#usr/lib/libmenu.so.5
+#usr/lib/libmenu.so.5.4
+#usr/lib/libncurses++.a
+#usr/lib/libncurses.a
+usr/lib/libncurses.so
+#usr/lib/libpanel.a
+usr/lib/libpanel.so
+usr/lib/libpanel.so.5
+usr/lib/libpanel.so.5.4
+#usr/lib/terminfo
+#usr/share/man/man1/captoinfo.1m
+#usr/share/man/man1/clear.1
+#usr/share/man/man1/infocmp.1m
+#usr/share/man/man1/infotocap.1m
+#usr/share/man/man1/reset.1
+#usr/share/man/man1/tack.1
+#usr/share/man/man1/tic.1m
+#usr/share/man/man1/toe.1m
+#usr/share/man/man1/tput.1
+#usr/share/man/man1/tset.1
+#usr/share/man/man3/COLOR_PAIR.3x
+#usr/share/man/man3/PAIR_NUMBER.3x
+#usr/share/man/man3/_nc_tracebits.3x
+#usr/share/man/man3/_traceattr.3x
+#usr/share/man/man3/_traceattr2.3x
+#usr/share/man/man3/_tracechar.3x
+#usr/share/man/man3/_tracechtype.3x
+#usr/share/man/man3/_tracechtype2.3x
+#usr/share/man/man3/_tracedump.3x
+#usr/share/man/man3/_tracef.3x
+#usr/share/man/man3/_tracemouse.3x
+#usr/share/man/man3/add_wch.3x
+#usr/share/man/man3/add_wchnstr.3x
+#usr/share/man/man3/add_wchstr.3x
+#usr/share/man/man3/addch.3x
+#usr/share/man/man3/addchnstr.3x
+#usr/share/man/man3/addchstr.3x
+#usr/share/man/man3/addnstr.3x
+#usr/share/man/man3/addnwstr.3x
+#usr/share/man/man3/addstr.3x
+#usr/share/man/man3/addwstr.3x
+#usr/share/man/man3/assume_default_colors.3x
+#usr/share/man/man3/attr_get.3x
+#usr/share/man/man3/attr_off.3x
+#usr/share/man/man3/attr_on.3x
+#usr/share/man/man3/attr_set.3x
+#usr/share/man/man3/attroff.3x
+#usr/share/man/man3/attron.3x
+#usr/share/man/man3/attrset.3x
+#usr/share/man/man3/baudrate.3x
+#usr/share/man/man3/beep.3x
+#usr/share/man/man3/bkgd.3x
+#usr/share/man/man3/bkgdset.3x
+#usr/share/man/man3/bkgrnd.3x
+#usr/share/man/man3/bkgrndset.3x
+#usr/share/man/man3/border.3x
+#usr/share/man/man3/border_set.3x
+#usr/share/man/man3/bottom_panel.3x
+#usr/share/man/man3/box.3x
+#usr/share/man/man3/box_set.3x
+#usr/share/man/man3/can_change_color.3x
+#usr/share/man/man3/cbreak.3x
+#usr/share/man/man3/chgat.3x
+#usr/share/man/man3/clear.3x
+#usr/share/man/man3/clearok.3x
+#usr/share/man/man3/clrtobot.3x
+#usr/share/man/man3/clrtoeol.3x
+#usr/share/man/man3/color_content.3x
+#usr/share/man/man3/color_set.3x
+#usr/share/man/man3/copywin.3x
+#usr/share/man/man3/current_field.3x
+#usr/share/man/man3/current_item.3x
+#usr/share/man/man3/curs_add_wch.3x
+#usr/share/man/man3/curs_add_wchstr.3x
+#usr/share/man/man3/curs_addch.3x
+#usr/share/man/man3/curs_addchstr.3x
+#usr/share/man/man3/curs_addstr.3x
+#usr/share/man/man3/curs_addwstr.3x
+#usr/share/man/man3/curs_attr.3x
+#usr/share/man/man3/curs_beep.3x
+#usr/share/man/man3/curs_bkgd.3x
+#usr/share/man/man3/curs_bkgrnd.3x
+#usr/share/man/man3/curs_border.3x
+#usr/share/man/man3/curs_border_set.3x
+#usr/share/man/man3/curs_clear.3x
+#usr/share/man/man3/curs_color.3x
+#usr/share/man/man3/curs_delch.3x
+#usr/share/man/man3/curs_deleteln.3x
+#usr/share/man/man3/curs_extend.3x
+#usr/share/man/man3/curs_get_wch.3x
+#usr/share/man/man3/curs_get_wstr.3x
+#usr/share/man/man3/curs_getcchar.3x
+#usr/share/man/man3/curs_getch.3x
+#usr/share/man/man3/curs_getstr.3x
+#usr/share/man/man3/curs_getyx.3x
+#usr/share/man/man3/curs_in_wch.3x
+#usr/share/man/man3/curs_in_wchstr.3x
+#usr/share/man/man3/curs_inch.3x
+#usr/share/man/man3/curs_inchstr.3x
+#usr/share/man/man3/curs_initscr.3x
+#usr/share/man/man3/curs_inopts.3x
+#usr/share/man/man3/curs_ins_wch.3x
+#usr/share/man/man3/curs_ins_wstr.3x
+#usr/share/man/man3/curs_insch.3x
+#usr/share/man/man3/curs_insstr.3x
+#usr/share/man/man3/curs_instr.3x
+#usr/share/man/man3/curs_inwstr.3x
+#usr/share/man/man3/curs_kernel.3x
+#usr/share/man/man3/curs_mouse.3x
+#usr/share/man/man3/curs_move.3x
+#usr/share/man/man3/curs_outopts.3x
+#usr/share/man/man3/curs_overlay.3x
+#usr/share/man/man3/curs_pad.3x
+#usr/share/man/man3/curs_print.3x
+#usr/share/man/man3/curs_printw.3x
+#usr/share/man/man3/curs_refresh.3x
+#usr/share/man/man3/curs_scanw.3x
+#usr/share/man/man3/curs_scr_dump.3x
+#usr/share/man/man3/curs_scroll.3x
+#usr/share/man/man3/curs_set.3x
+#usr/share/man/man3/curs_slk.3x
+#usr/share/man/man3/curs_termattrs.3x
+#usr/share/man/man3/curs_termcap.3x
+#usr/share/man/man3/curs_terminfo.3x
+#usr/share/man/man3/curs_touch.3x
+#usr/share/man/man3/curs_trace.3x
+#usr/share/man/man3/curs_util.3x
+#usr/share/man/man3/curs_window.3x
+#usr/share/man/man3/curses_version.3x
+#usr/share/man/man3/data_ahead.3x
+#usr/share/man/man3/data_behind.3x
+#usr/share/man/man3/def_prog_mode.3x
+#usr/share/man/man3/def_shell_mode.3x
+#usr/share/man/man3/default_colors.3x
+#usr/share/man/man3/define_key.3x
+#usr/share/man/man3/del_curterm.3x
+#usr/share/man/man3/del_panel.3x
+#usr/share/man/man3/delay_output.3x
+#usr/share/man/man3/delch.3x
+#usr/share/man/man3/deleteln.3x
+#usr/share/man/man3/delscreen.3x
+#usr/share/man/man3/delwin.3x
+#usr/share/man/man3/derwin.3x
+#usr/share/man/man3/doupdate.3x
+#usr/share/man/man3/dup_field.3x
+#usr/share/man/man3/dupwin.3x
+#usr/share/man/man3/dynamic_field_info.3x
+#usr/share/man/man3/echo.3x
+#usr/share/man/man3/echo_wchar.3x
+#usr/share/man/man3/echochar.3x
+#usr/share/man/man3/endwin.3x
+#usr/share/man/man3/erase.3x
+#usr/share/man/man3/erasechar.3x
+#usr/share/man/man3/erasewchar.3x
+#usr/share/man/man3/field_arg.3x
+#usr/share/man/man3/field_back.3x
+#usr/share/man/man3/field_buffer.3x
+#usr/share/man/man3/field_count.3x
+#usr/share/man/man3/field_fore.3x
+#usr/share/man/man3/field_index.3x
+#usr/share/man/man3/field_info.3x
+#usr/share/man/man3/field_just.3x
+#usr/share/man/man3/field_opts.3x
+#usr/share/man/man3/field_opts_off.3x
+#usr/share/man/man3/field_opts_on.3x
+#usr/share/man/man3/field_pad.3x
+#usr/share/man/man3/field_status.3x
+#usr/share/man/man3/field_type.3x
+#usr/share/man/man3/field_userptr.3x
+#usr/share/man/man3/filter.3x
+#usr/share/man/man3/flash.3x
+#usr/share/man/man3/flushinp.3x
+#usr/share/man/man3/form.3x
+#usr/share/man/man3/form_cursor.3x
+#usr/share/man/man3/form_data.3x
+#usr/share/man/man3/form_driver.3x
+#usr/share/man/man3/form_field.3x
+#usr/share/man/man3/form_field_attributes.3x
+#usr/share/man/man3/form_field_buffer.3x
+#usr/share/man/man3/form_field_info.3x
+#usr/share/man/man3/form_field_just.3x
+#usr/share/man/man3/form_field_new.3x
+#usr/share/man/man3/form_field_opts.3x
+#usr/share/man/man3/form_field_userptr.3x
+#usr/share/man/man3/form_field_validation.3x
+#usr/share/man/man3/form_fields.3x
+#usr/share/man/man3/form_fieldtype.3x
+#usr/share/man/man3/form_hook.3x
+#usr/share/man/man3/form_new.3x
+#usr/share/man/man3/form_new_page.3x
+#usr/share/man/man3/form_opts.3x
+#usr/share/man/man3/form_opts_off.3x
+#usr/share/man/man3/form_opts_on.3x
+#usr/share/man/man3/form_page.3x
+#usr/share/man/man3/form_post.3x
+#usr/share/man/man3/form_request_by_name.3x
+#usr/share/man/man3/form_request_name.3x
+#usr/share/man/man3/form_requestname.3x
+#usr/share/man/man3/form_sub.3x
+#usr/share/man/man3/form_userptr.3x
+#usr/share/man/man3/form_win.3x
+#usr/share/man/man3/free_field.3x
+#usr/share/man/man3/free_fieldtype.3x
+#usr/share/man/man3/free_form.3x
+#usr/share/man/man3/free_item.3x
+#usr/share/man/man3/free_menu.3x
+#usr/share/man/man3/get_wch.3x
+#usr/share/man/man3/get_wstr.3x
+#usr/share/man/man3/getbegx.3x
+#usr/share/man/man3/getbegy.3x
+#usr/share/man/man3/getbegyx.3x
+#usr/share/man/man3/getbkgd.3x
+#usr/share/man/man3/getbkgrnd.3x
+#usr/share/man/man3/getcchar.3x
+#usr/share/man/man3/getch.3x
+#usr/share/man/man3/getcurx.3x
+#usr/share/man/man3/getcury.3x
+#usr/share/man/man3/getmaxx.3x
+#usr/share/man/man3/getmaxy.3x
+#usr/share/man/man3/getmaxyx.3x
+#usr/share/man/man3/getmouse.3x
+#usr/share/man/man3/getn_wstr.3x
+#usr/share/man/man3/getnstr.3x
+#usr/share/man/man3/getparx.3x
+#usr/share/man/man3/getpary.3x
+#usr/share/man/man3/getparyx.3x
+#usr/share/man/man3/getstr.3x
+#usr/share/man/man3/getsyx.3x
+#usr/share/man/man3/getwin.3x
+#usr/share/man/man3/getyx.3x
+#usr/share/man/man3/halfdelay.3x
+#usr/share/man/man3/has_colors.3x
+#usr/share/man/man3/has_ic.3x
+#usr/share/man/man3/has_il.3x
+#usr/share/man/man3/has_key.3x
+#usr/share/man/man3/hide_panel.3x
+#usr/share/man/man3/hline.3x
+#usr/share/man/man3/hline_set.3x
+#usr/share/man/man3/idcok.3x
+#usr/share/man/man3/idlok.3x
+#usr/share/man/man3/immedok.3x
+#usr/share/man/man3/in_wch.3x
+#usr/share/man/man3/in_wchnstr.3x
+#usr/share/man/man3/in_wchstr.3x
+#usr/share/man/man3/inch.3x
+#usr/share/man/man3/inchnstr.3x
+#usr/share/man/man3/inchstr.3x
+#usr/share/man/man3/init_color.3x
+#usr/share/man/man3/init_pair.3x
+#usr/share/man/man3/initscr.3x
+#usr/share/man/man3/innstr.3x
+#usr/share/man/man3/innwstr.3x
+#usr/share/man/man3/ins_nwstr.3x
+#usr/share/man/man3/ins_wch.3x
+#usr/share/man/man3/ins_wstr.3x
+#usr/share/man/man3/insch.3x
+#usr/share/man/man3/insdelln.3x
+#usr/share/man/man3/insertln.3x
+#usr/share/man/man3/insnstr.3x
+#usr/share/man/man3/insstr.3x
+#usr/share/man/man3/instr.3x
+#usr/share/man/man3/intrflush.3x
+#usr/share/man/man3/inwstr.3x
+#usr/share/man/man3/is_linetouched.3x
+#usr/share/man/man3/is_term_resized.3x
+#usr/share/man/man3/is_wintouched.3x
+#usr/share/man/man3/isendwin.3x
+#usr/share/man/man3/item_count.3x
+#usr/share/man/man3/item_description.3x
+#usr/share/man/man3/item_index.3x
+#usr/share/man/man3/item_name.3x
+#usr/share/man/man3/item_opts.3x
+#usr/share/man/man3/item_opts_off.3x
+#usr/share/man/man3/item_opts_on.3x
+#usr/share/man/man3/item_userptr.3x
+#usr/share/man/man3/item_value.3x
+#usr/share/man/man3/item_visible.3x
+#usr/share/man/man3/key_name.3x
+#usr/share/man/man3/keybound.3x
+#usr/share/man/man3/keyname.3x
+#usr/share/man/man3/keyok.3x
+#usr/share/man/man3/keypad.3x
+#usr/share/man/man3/killchar.3x
+#usr/share/man/man3/killwchar.3x
+#usr/share/man/man3/leaveok.3x
+#usr/share/man/man3/link_field.3x
+#usr/share/man/man3/link_fieldtype.3x
+#usr/share/man/man3/longname.3x
+#usr/share/man/man3/mcprint.3x
+#usr/share/man/man3/menu.3x
+#usr/share/man/man3/menu_attributes.3x
+#usr/share/man/man3/menu_back.3x
+#usr/share/man/man3/menu_cursor.3x
+#usr/share/man/man3/menu_driver.3x
+#usr/share/man/man3/menu_fore.3x
+#usr/share/man/man3/menu_format.3x
+#usr/share/man/man3/menu_grey.3x
+#usr/share/man/man3/menu_hook.3x
+#usr/share/man/man3/menu_items.3x
+#usr/share/man/man3/menu_mark.3x
+#usr/share/man/man3/menu_new.3x
+#usr/share/man/man3/menu_opts.3x
+#usr/share/man/man3/menu_opts_off.3x
+#usr/share/man/man3/menu_opts_on.3x
+#usr/share/man/man3/menu_pad.3x
+#usr/share/man/man3/menu_pattern.3x
+#usr/share/man/man3/menu_post.3x
+#usr/share/man/man3/menu_request_by_name.3x
+#usr/share/man/man3/menu_request_name.3x
+#usr/share/man/man3/menu_requestname.3x
+#usr/share/man/man3/menu_spacing.3x
+#usr/share/man/man3/menu_sub.3x
+#usr/share/man/man3/menu_userptr.3x
+#usr/share/man/man3/menu_win.3x
+#usr/share/man/man3/meta.3x
+#usr/share/man/man3/mitem_current.3x
+#usr/share/man/man3/mitem_name.3x
+#usr/share/man/man3/mitem_new.3x
+#usr/share/man/man3/mitem_opts.3x
+#usr/share/man/man3/mitem_userptr.3x
+#usr/share/man/man3/mitem_value.3x
+#usr/share/man/man3/mitem_visible.3x
+#usr/share/man/man3/mouse_trafo.3x
+#usr/share/man/man3/mouseinterval.3x
+#usr/share/man/man3/mousemask.3x
+#usr/share/man/man3/move.3x
+#usr/share/man/man3/move_field.3x
+#usr/share/man/man3/move_panel.3x
+#usr/share/man/man3/mvadd_wch.3x
+#usr/share/man/man3/mvadd_wchnstr.3x
+#usr/share/man/man3/mvadd_wchstr.3x
+#usr/share/man/man3/mvaddch.3x
+#usr/share/man/man3/mvaddchnstr.3x
+#usr/share/man/man3/mvaddchstr.3x
+#usr/share/man/man3/mvaddnstr.3x
+#usr/share/man/man3/mvaddnwstr.3x
+#usr/share/man/man3/mvaddstr.3x
+#usr/share/man/man3/mvaddwstr.3x
+#usr/share/man/man3/mvchgat.3x
+#usr/share/man/man3/mvcur.3x
+#usr/share/man/man3/mvdelch.3x
+#usr/share/man/man3/mvderwin.3x
+#usr/share/man/man3/mvget_wch.3x
+#usr/share/man/man3/mvget_wstr.3x
+#usr/share/man/man3/mvgetch.3x
+#usr/share/man/man3/mvgetn_wstr.3x
+#usr/share/man/man3/mvgetnstr.3x
+#usr/share/man/man3/mvgetstr.3x
+#usr/share/man/man3/mvhline.3x
+#usr/share/man/man3/mvhline_set.3x
+#usr/share/man/man3/mvin_wch.3x
+#usr/share/man/man3/mvin_wchnstr.3x
+#usr/share/man/man3/mvin_wchstr.3x
+#usr/share/man/man3/mvinch.3x
+#usr/share/man/man3/mvinchnstr.3x
+#usr/share/man/man3/mvinchstr.3x
+#usr/share/man/man3/mvinnstr.3x
+#usr/share/man/man3/mvinnwstr.3x
+#usr/share/man/man3/mvins_nwstr.3x
+#usr/share/man/man3/mvins_wch.3x
+#usr/share/man/man3/mvins_wstr.3x
+#usr/share/man/man3/mvinsch.3x
+#usr/share/man/man3/mvinsnstr.3x
+#usr/share/man/man3/mvinsstr.3x
+#usr/share/man/man3/mvinstr.3x
+#usr/share/man/man3/mvinwstr.3x
+#usr/share/man/man3/mvprintw.3x
+#usr/share/man/man3/mvscanw.3x
+#usr/share/man/man3/mvvline.3x
+#usr/share/man/man3/mvvline_set.3x
+#usr/share/man/man3/mvwadd_wch.3x
+#usr/share/man/man3/mvwadd_wchnstr.3x
+#usr/share/man/man3/mvwadd_wchstr.3x
+#usr/share/man/man3/mvwaddch.3x
+#usr/share/man/man3/mvwaddchnstr.3x
+#usr/share/man/man3/mvwaddchstr.3x
+#usr/share/man/man3/mvwaddnstr.3x
+#usr/share/man/man3/mvwaddnwstr.3x
+#usr/share/man/man3/mvwaddstr.3x
+#usr/share/man/man3/mvwaddwstr.3x
+#usr/share/man/man3/mvwchgat.3x
+#usr/share/man/man3/mvwdelch.3x
+#usr/share/man/man3/mvwget_wch.3x
+#usr/share/man/man3/mvwget_wstr.3x
+#usr/share/man/man3/mvwgetch.3x
+#usr/share/man/man3/mvwgetn_wstr.3x
+#usr/share/man/man3/mvwgetnstr.3x
+#usr/share/man/man3/mvwgetstr.3x
+#usr/share/man/man3/mvwhline.3x
+#usr/share/man/man3/mvwhline_set.3x
+#usr/share/man/man3/mvwin.3x
+#usr/share/man/man3/mvwin_wch.3x
+#usr/share/man/man3/mvwin_wchnstr.3x
+#usr/share/man/man3/mvwin_wchstr.3x
+#usr/share/man/man3/mvwinch.3x
+#usr/share/man/man3/mvwinchnstr.3x
+#usr/share/man/man3/mvwinchstr.3x
+#usr/share/man/man3/mvwinnstr.3x
+#usr/share/man/man3/mvwinnwstr.3x
+#usr/share/man/man3/mvwins_nwstr.3x
+#usr/share/man/man3/mvwins_wch.3x
+#usr/share/man/man3/mvwins_wstr.3x
+#usr/share/man/man3/mvwinsch.3x
+#usr/share/man/man3/mvwinsnstr.3x
+#usr/share/man/man3/mvwinsstr.3x
+#usr/share/man/man3/mvwinstr.3x
+#usr/share/man/man3/mvwinwstr.3x
+#usr/share/man/man3/mvwprintw.3x
+#usr/share/man/man3/mvwscanw.3x
+#usr/share/man/man3/mvwvline.3x
+#usr/share/man/man3/mvwvline_set.3x
+#usr/share/man/man3/napms.3x
+#usr/share/man/man3/ncurses.3x
+#usr/share/man/man3/new_field.3x
+#usr/share/man/man3/new_fieldtype.3x
+#usr/share/man/man3/new_form.3x
+#usr/share/man/man3/new_item.3x
+#usr/share/man/man3/new_menu.3x
+#usr/share/man/man3/new_page.3x
+#usr/share/man/man3/new_panel.3x
+#usr/share/man/man3/newpad.3x
+#usr/share/man/man3/newterm.3x
+#usr/share/man/man3/newwin.3x
+#usr/share/man/man3/nl.3x
+#usr/share/man/man3/nocbreak.3x
+#usr/share/man/man3/nodelay.3x
+#usr/share/man/man3/noecho.3x
+#usr/share/man/man3/nonl.3x
+#usr/share/man/man3/noqiflush.3x
+#usr/share/man/man3/noraw.3x
+#usr/share/man/man3/notimeout.3x
+#usr/share/man/man3/overlay.3x
+#usr/share/man/man3/overwrite.3x
+#usr/share/man/man3/pair_content.3x
+#usr/share/man/man3/panel.3x
+#usr/share/man/man3/panel_above.3x
+#usr/share/man/man3/panel_below.3x
+#usr/share/man/man3/panel_hidden.3x
+#usr/share/man/man3/panel_userptr.3x
+#usr/share/man/man3/panel_window.3x
+#usr/share/man/man3/pechochar.3x
+#usr/share/man/man3/pnoutrefresh.3x
+#usr/share/man/man3/pos_form_cursor.3x
+#usr/share/man/man3/pos_menu_cursor.3x
+#usr/share/man/man3/post_form.3x
+#usr/share/man/man3/post_menu.3x
+#usr/share/man/man3/prefresh.3x
+#usr/share/man/man3/printw.3x
+#usr/share/man/man3/putp.3x
+#usr/share/man/man3/putwin.3x
+#usr/share/man/man3/qiflush.3x
+#usr/share/man/man3/raw.3x
+#usr/share/man/man3/redrawwin.3x
+#usr/share/man/man3/refresh.3x
+#usr/share/man/man3/replace_panel.3x
+#usr/share/man/man3/reset_prog_mode.3x
+#usr/share/man/man3/reset_shell_mode.3x
+#usr/share/man/man3/resetty.3x
+#usr/share/man/man3/resize_term.3x
+#usr/share/man/man3/resizeterm.3x
+#usr/share/man/man3/restartterm.3x
+#usr/share/man/man3/ripoffline.3x
+#usr/share/man/man3/savetty.3x
+#usr/share/man/man3/scale_form.3x
+#usr/share/man/man3/scale_menu.3x
+#usr/share/man/man3/scanw.3x
+#usr/share/man/man3/scr_dump.3x
+#usr/share/man/man3/scr_init.3x
+#usr/share/man/man3/scr_restore.3x
+#usr/share/man/man3/scr_set.3x
+#usr/share/man/man3/scrl.3x
+#usr/share/man/man3/scroll.3x
+#usr/share/man/man3/scrollok.3x
+#usr/share/man/man3/set_current_field.3x
+#usr/share/man/man3/set_current_item.3x
+#usr/share/man/man3/set_curterm.3x
+#usr/share/man/man3/set_field_back.3x
+#usr/share/man/man3/set_field_buffer.3x
+#usr/share/man/man3/set_field_fore.3x
+#usr/share/man/man3/set_field_init.3x
+#usr/share/man/man3/set_field_just.3x
+#usr/share/man/man3/set_field_opts.3x
+#usr/share/man/man3/set_field_pad.3x
+#usr/share/man/man3/set_field_status.3x
+#usr/share/man/man3/set_field_term.3x
+#usr/share/man/man3/set_field_type.3x
+#usr/share/man/man3/set_field_userptr.3x
+#usr/share/man/man3/set_fieldtype_arg.3x
+#usr/share/man/man3/set_fieldtype_choice.3x
+#usr/share/man/man3/set_form_fields.3x
+#usr/share/man/man3/set_form_init.3x
+#usr/share/man/man3/set_form_opts.3x
+#usr/share/man/man3/set_form_page.3x
+#usr/share/man/man3/set_form_sub.3x
+#usr/share/man/man3/set_form_term.3x
+#usr/share/man/man3/set_form_userptr.3x
+#usr/share/man/man3/set_form_win.3x
+#usr/share/man/man3/set_item_init.3x
+#usr/share/man/man3/set_item_opts.3x
+#usr/share/man/man3/set_item_term.3x
+#usr/share/man/man3/set_item_userptr.3x
+#usr/share/man/man3/set_item_value.3x
+#usr/share/man/man3/set_max_field.3x
+#usr/share/man/man3/set_menu_back.3x
+#usr/share/man/man3/set_menu_fore.3x
+#usr/share/man/man3/set_menu_format.3x
+#usr/share/man/man3/set_menu_grey.3x
+#usr/share/man/man3/set_menu_init.3x
+#usr/share/man/man3/set_menu_items.3x
+#usr/share/man/man3/set_menu_mark.3x
+#usr/share/man/man3/set_menu_opts.3x
+#usr/share/man/man3/set_menu_pad.3x
+#usr/share/man/man3/set_menu_pattern.3x
+#usr/share/man/man3/set_menu_spacing.3x
+#usr/share/man/man3/set_menu_sub.3x
+#usr/share/man/man3/set_menu_term.3x
+#usr/share/man/man3/set_menu_userptr.3x
+#usr/share/man/man3/set_menu_win.3x
+#usr/share/man/man3/set_new_page.3x
+#usr/share/man/man3/set_panel_userptr.3x
+#usr/share/man/man3/set_term.3x
+#usr/share/man/man3/set_top_row.3x
+#usr/share/man/man3/setcchar.3x
+#usr/share/man/man3/setscrreg.3x
+#usr/share/man/man3/setsyx.3x
+#usr/share/man/man3/setterm.3x
+#usr/share/man/man3/setupterm.3x
+#usr/share/man/man3/show_panel.3x
+#usr/share/man/man3/slk_attr.3x
+#usr/share/man/man3/slk_attr_off.3x
+#usr/share/man/man3/slk_attr_on.3x
+#usr/share/man/man3/slk_attr_set.3x
+#usr/share/man/man3/slk_attroff.3x
+#usr/share/man/man3/slk_attron.3x
+#usr/share/man/man3/slk_attrset.3x
+#usr/share/man/man3/slk_clear.3x
+#usr/share/man/man3/slk_color.3x
+#usr/share/man/man3/slk_init.3x
+#usr/share/man/man3/slk_label.3x
+#usr/share/man/man3/slk_noutrefresh.3x
+#usr/share/man/man3/slk_refresh.3x
+#usr/share/man/man3/slk_restore.3x
+#usr/share/man/man3/slk_set.3x
+#usr/share/man/man3/slk_touch.3x
+#usr/share/man/man3/standend.3x
+#usr/share/man/man3/standout.3x
+#usr/share/man/man3/start_color.3x
+#usr/share/man/man3/subpad.3x
+#usr/share/man/man3/subwin.3x
+#usr/share/man/man3/syncok.3x
+#usr/share/man/man3/term_attrs.3x
+#usr/share/man/man3/termattrs.3x
+#usr/share/man/man3/termname.3x
+#usr/share/man/man3/tgetent.3x
+#usr/share/man/man3/tgetflag.3x
+#usr/share/man/man3/tgetnum.3x
+#usr/share/man/man3/tgetstr.3x
+#usr/share/man/man3/tgoto.3x
+#usr/share/man/man3/tigetflag.3x
+#usr/share/man/man3/tigetnum.3x
+#usr/share/man/man3/tigetstr.3x
+#usr/share/man/man3/timeout.3x
+#usr/share/man/man3/top_panel.3x
+#usr/share/man/man3/top_row.3x
+#usr/share/man/man3/touchline.3x
+#usr/share/man/man3/touchwin.3x
+#usr/share/man/man3/tparm.3x
+#usr/share/man/man3/tputs.3x
+#usr/share/man/man3/trace.3x
+#usr/share/man/man3/typeahead.3x
+#usr/share/man/man3/unctrl.3x
+#usr/share/man/man3/unget_wch.3x
+#usr/share/man/man3/ungetch.3x
+#usr/share/man/man3/ungetmouse.3x
+#usr/share/man/man3/unpost_form.3x
+#usr/share/man/man3/unpost_menu.3x
+#usr/share/man/man3/untouchwin.3x
+#usr/share/man/man3/update_panels.3x
+#usr/share/man/man3/use_default_colors.3x
+#usr/share/man/man3/use_env.3x
+#usr/share/man/man3/use_extended_names.3x
+#usr/share/man/man3/vid_attr.3x
+#usr/share/man/man3/vid_puts.3x
+#usr/share/man/man3/vidattr.3x
+#usr/share/man/man3/vidputs.3x
+#usr/share/man/man3/vline.3x
+#usr/share/man/man3/vline_set.3x
+#usr/share/man/man3/vw_printw.3x
+#usr/share/man/man3/vw_scanw.3x
+#usr/share/man/man3/vwprintw.3x
+#usr/share/man/man3/vwscanw.3x
+#usr/share/man/man3/wadd_wch.3x
+#usr/share/man/man3/wadd_wchnstr.3x
+#usr/share/man/man3/wadd_wchstr.3x
+#usr/share/man/man3/waddch.3x
+#usr/share/man/man3/waddchnstr.3x
+#usr/share/man/man3/waddchstr.3x
+#usr/share/man/man3/waddnstr.3x
+#usr/share/man/man3/waddnwstr.3x
+#usr/share/man/man3/waddstr.3x
+#usr/share/man/man3/waddwstr.3x
+#usr/share/man/man3/wattr_get.3x
+#usr/share/man/man3/wattr_off.3x
+#usr/share/man/man3/wattr_on.3x
+#usr/share/man/man3/wattr_set.3x
+#usr/share/man/man3/wattroff.3x
+#usr/share/man/man3/wattron.3x
+#usr/share/man/man3/wattrset.3x
+#usr/share/man/man3/wbkgd.3x
+#usr/share/man/man3/wbkgdset.3x
+#usr/share/man/man3/wbkgrnd.3x
+#usr/share/man/man3/wbkgrndset.3x
+#usr/share/man/man3/wborder.3x
+#usr/share/man/man3/wborder_set.3x
+#usr/share/man/man3/wchgat.3x
+#usr/share/man/man3/wclear.3x
+#usr/share/man/man3/wclrtobot.3x
+#usr/share/man/man3/wclrtoeol.3x
+#usr/share/man/man3/wcolor_set.3x
+#usr/share/man/man3/wcursyncup.3x
+#usr/share/man/man3/wdelch.3x
+#usr/share/man/man3/wdeleteln.3x
+#usr/share/man/man3/wecho_wchar.3x
+#usr/share/man/man3/wechochar.3x
+#usr/share/man/man3/wenclose.3x
+#usr/share/man/man3/werase.3x
+#usr/share/man/man3/wget_wch.3x
+#usr/share/man/man3/wget_wstr.3x
+#usr/share/man/man3/wgetbkgrnd.3x
+#usr/share/man/man3/wgetch.3x
+#usr/share/man/man3/wgetn_wstr.3x
+#usr/share/man/man3/wgetnstr.3x
+#usr/share/man/man3/wgetstr.3x
+#usr/share/man/man3/whline.3x
+#usr/share/man/man3/whline_set.3x
+#usr/share/man/man3/win_wch.3x
+#usr/share/man/man3/win_wchnstr.3x
+#usr/share/man/man3/win_wchstr.3x
+#usr/share/man/man3/winch.3x
+#usr/share/man/man3/winchnstr.3x
+#usr/share/man/man3/winchstr.3x
+#usr/share/man/man3/winnstr.3x
+#usr/share/man/man3/winnwstr.3x
+#usr/share/man/man3/wins_nwstr.3x
+#usr/share/man/man3/wins_wch.3x
+#usr/share/man/man3/wins_wstr.3x
+#usr/share/man/man3/winsch.3x
+#usr/share/man/man3/winsdelln.3x
+#usr/share/man/man3/winsertln.3x
+#usr/share/man/man3/winsnstr.3x
+#usr/share/man/man3/winsstr.3x
+#usr/share/man/man3/winstr.3x
+#usr/share/man/man3/winwstr.3x
+#usr/share/man/man3/wmouse_trafo.3x
+#usr/share/man/man3/wmove.3x
+#usr/share/man/man3/wnoutrefresh.3x
+#usr/share/man/man3/wprintw.3x
+#usr/share/man/man3/wredrawln.3x
+#usr/share/man/man3/wrefresh.3x
+#usr/share/man/man3/wresize.3x
+#usr/share/man/man3/wscanw.3x
+#usr/share/man/man3/wscrl.3x
+#usr/share/man/man3/wsetscrreg.3x
+#usr/share/man/man3/wstandend.3x
+#usr/share/man/man3/wstandout.3x
+#usr/share/man/man3/wsyncdown.3x
+#usr/share/man/man3/wsyncup.3x
+#usr/share/man/man3/wtimeout.3x
+#usr/share/man/man3/wtouchln.3x
+#usr/share/man/man3/wunctrl.3x
+#usr/share/man/man3/wvline.3x
+#usr/share/man/man3/wvline_set.3x
+#usr/share/man/man5/term.5
+#usr/share/man/man5/terminfo.5
+#usr/share/man/man7/term.7
+#usr/share/tabset
+#usr/share/tabset/std
+#usr/share/tabset/stdcrt
+#usr/share/tabset/vt100
+#usr/share/tabset/vt300
+#usr/share/terminfo/1
+#usr/share/terminfo/1/1178
+#usr/share/terminfo/1/1730-lm
+#usr/share/terminfo/2
+#usr/share/terminfo/2/2621
+#usr/share/terminfo/2/2621-wl
+#usr/share/terminfo/2/2621A
+#usr/share/terminfo/2/2621a
+#usr/share/terminfo/3
+#usr/share/terminfo/3/386at
+#usr/share/terminfo/3/3b1
+#usr/share/terminfo/4
+#usr/share/terminfo/4/4025ex
+#usr/share/terminfo/4/4027ex
+#usr/share/terminfo/4/4410-w
+#usr/share/terminfo/5
+#usr/share/terminfo/5/5051
+#usr/share/terminfo/5/5410-w
+#usr/share/terminfo/5/5620
+#usr/share/terminfo/5/5630-24
+#usr/share/terminfo/5/5630DMD-24
+#usr/share/terminfo/6
+#usr/share/terminfo/6/6053
+#usr/share/terminfo/6/6053-dg
+#usr/share/terminfo/6/605x
+#usr/share/terminfo/6/605x-dg
+#usr/share/terminfo/6/630-lm
+#usr/share/terminfo/6/630MTG-24
+#usr/share/terminfo/7
+#usr/share/terminfo/7/730MTG-24
+#usr/share/terminfo/7/730MTG-41
+#usr/share/terminfo/7/730MTG-41r
+#usr/share/terminfo/7/730MTGr
+#usr/share/terminfo/7/730MTGr-24
+#usr/share/terminfo/8
+#usr/share/terminfo/8/8510
+#usr/share/terminfo/9
+#usr/share/terminfo/9/955-hb
+#usr/share/terminfo/9/955-w
+#usr/share/terminfo/A
+#usr/share/terminfo/A/Apple_Terminal
+#usr/share/terminfo/E
+#usr/share/terminfo/E/Eterm
+#usr/share/terminfo/E/Eterm-color
+#usr/share/terminfo/L
+#usr/share/terminfo/L/LFT-PC850
+#usr/share/terminfo/M
+#usr/share/terminfo/M/MtxOrb
+#usr/share/terminfo/M/MtxOrb162
+#usr/share/terminfo/M/MtxOrb204
+#usr/share/terminfo/N
+#usr/share/terminfo/N/NCR260VT300WPP
+#usr/share/terminfo/N/NCRVT100WPP
+#usr/share/terminfo/P
+#usr/share/terminfo/P/P12
+#usr/share/terminfo/P/P12-M
+#usr/share/terminfo/P/P12-M-W
+#usr/share/terminfo/P/P12-W
+#usr/share/terminfo/P/P14
+#usr/share/terminfo/P/P14-M
+#usr/share/terminfo/P/P14-M-W
+#usr/share/terminfo/P/P14-W
+#usr/share/terminfo/P/P4
+#usr/share/terminfo/P/P5
+#usr/share/terminfo/P/P7
+#usr/share/terminfo/P/P8
+#usr/share/terminfo/P/P8-W
+#usr/share/terminfo/P/P9
+#usr/share/terminfo/P/P9-8
+#usr/share/terminfo/P/P9-8-W
+#usr/share/terminfo/P/P9-W
+#usr/share/terminfo/Q
+#usr/share/terminfo/Q/Q306-8-pc
+#usr/share/terminfo/Q/Q310-vip-H
+#usr/share/terminfo/Q/Q310-vip-H-am
+#usr/share/terminfo/Q/Q310-vip-Hw
+#usr/share/terminfo/Q/Q310-vip-w
+#usr/share/terminfo/Q/Q310-vip-w-am
+#usr/share/terminfo/X
+#usr/share/terminfo/X/X-hpterm
+#usr/share/terminfo/a
+#usr/share/terminfo/a/a210
+#usr/share/terminfo/a/a80
+#usr/share/terminfo/a/a980
+#usr/share/terminfo/a/aa4080
+#usr/share/terminfo/a/aaa
+#usr/share/terminfo/a/aaa+dec
+#usr/share/terminfo/a/aaa+rv
+#usr/share/terminfo/a/aaa+unk
+#usr/share/terminfo/a/aaa-18
+#usr/share/terminfo/a/aaa-18-rv
+#usr/share/terminfo/a/aaa-20
+#usr/share/terminfo/a/aaa-22
+#usr/share/terminfo/a/aaa-24
+#usr/share/terminfo/a/aaa-24-rv
+#usr/share/terminfo/a/aaa-26
+#usr/share/terminfo/a/aaa-28
+#usr/share/terminfo/a/aaa-30
+#usr/share/terminfo/a/aaa-30-ctxt
+#usr/share/terminfo/a/aaa-30-rv
+#usr/share/terminfo/a/aaa-30-rv-ctxt
+#usr/share/terminfo/a/aaa-30-s
+#usr/share/terminfo/a/aaa-30-s-ctxt
+#usr/share/terminfo/a/aaa-30-s-rv
+#usr/share/terminfo/a/aaa-30-s-rv-ct
+#usr/share/terminfo/a/aaa-36
+#usr/share/terminfo/a/aaa-36-rv
+#usr/share/terminfo/a/aaa-40
+#usr/share/terminfo/a/aaa-40-rv
+#usr/share/terminfo/a/aaa-48
+#usr/share/terminfo/a/aaa-48-rv
+#usr/share/terminfo/a/aaa-60
+#usr/share/terminfo/a/aaa-60-dec-rv
+#usr/share/terminfo/a/aaa-60-rv
+#usr/share/terminfo/a/aaa-60-s
+#usr/share/terminfo/a/aaa-60-s-rv
+#usr/share/terminfo/a/aaa-ctxt
+#usr/share/terminfo/a/aaa-db
+#usr/share/terminfo/a/aaa-rv
+#usr/share/terminfo/a/aaa-rv-ctxt
+#usr/share/terminfo/a/aaa-rv-unk
+#usr/share/terminfo/a/aaa-s
+#usr/share/terminfo/a/aaa-s-ctxt
+#usr/share/terminfo/a/aaa-s-rv
+#usr/share/terminfo/a/aaa-s-rv-ctxt
+#usr/share/terminfo/a/aaa-unk
+#usr/share/terminfo/a/aas1901
+#usr/share/terminfo/a/abm80
+#usr/share/terminfo/a/abm85
+#usr/share/terminfo/a/abm85e
+#usr/share/terminfo/a/abm85h
+#usr/share/terminfo/a/abm85h-old
+#usr/share/terminfo/a/act4
+#usr/share/terminfo/a/act5
+#usr/share/terminfo/a/addrinfo
+#usr/share/terminfo/a/adds980
+#usr/share/terminfo/a/addsviewpoint
+#usr/share/terminfo/a/addsvp60
+#usr/share/terminfo/a/adm+sgr
+#usr/share/terminfo/a/adm1
+#usr/share/terminfo/a/adm11
+#usr/share/terminfo/a/adm1178
+#usr/share/terminfo/a/adm12
+#usr/share/terminfo/a/adm1a
+#usr/share/terminfo/a/adm2
+#usr/share/terminfo/a/adm20
+#usr/share/terminfo/a/adm21
+#usr/share/terminfo/a/adm22
+#usr/share/terminfo/a/adm3
+#usr/share/terminfo/a/adm31
+#usr/share/terminfo/a/adm31-old
+#usr/share/terminfo/a/adm36
+#usr/share/terminfo/a/adm3a
+#usr/share/terminfo/a/adm3a+
+#usr/share/terminfo/a/adm42
+#usr/share/terminfo/a/adm42-ns
+#usr/share/terminfo/a/adm5
+#usr/share/terminfo/a/aepro
+#usr/share/terminfo/a/aixterm
+#usr/share/terminfo/a/aixterm-m
+#usr/share/terminfo/a/aixterm-m-old
+#usr/share/terminfo/a/aj
+#usr/share/terminfo/a/aj510
+#usr/share/terminfo/a/aj830
+#usr/share/terminfo/a/aj832
+#usr/share/terminfo/a/alt2
+#usr/share/terminfo/a/alt3
+#usr/share/terminfo/a/alt4
+#usr/share/terminfo/a/alt5
+#usr/share/terminfo/a/alt7
+#usr/share/terminfo/a/alt7pc
+#usr/share/terminfo/a/alto-h19
+#usr/share/terminfo/a/alto-heath
+#usr/share/terminfo/a/altoh19
+#usr/share/terminfo/a/altoheath
+#usr/share/terminfo/a/altos-2
+#usr/share/terminfo/a/altos-3
+#usr/share/terminfo/a/altos-4
+#usr/share/terminfo/a/altos-5
+#usr/share/terminfo/a/altos2
+#usr/share/terminfo/a/altos3
+#usr/share/terminfo/a/altos4
+#usr/share/terminfo/a/altos5
+#usr/share/terminfo/a/altos7
+#usr/share/terminfo/a/altos7pc
+#usr/share/terminfo/a/ambas
+#usr/share/terminfo/a/ambassador
+#usr/share/terminfo/a/amiga
+#usr/share/terminfo/a/amiga-8bit
+#usr/share/terminfo/a/amiga-h
+#usr/share/terminfo/a/amiga-vnc
+#usr/share/terminfo/a/amp219
+#usr/share/terminfo/a/amp219w
+#usr/share/terminfo/a/ampex-219
+#usr/share/terminfo/a/ampex-219w
+#usr/share/terminfo/a/ampex-232
+#usr/share/terminfo/a/ampex175
+#usr/share/terminfo/a/ampex175-b
+#usr/share/terminfo/a/ampex210
+#usr/share/terminfo/a/ampex219
+#usr/share/terminfo/a/ampex219w
+#usr/share/terminfo/a/ampex232
+#usr/share/terminfo/a/ampex232w
+#usr/share/terminfo/a/ampex80
+#usr/share/terminfo/a/annarbor4080
+#usr/share/terminfo/a/ansi
+#usr/share/terminfo/a/ansi+arrows
+#usr/share/terminfo/a/ansi+csr
+#usr/share/terminfo/a/ansi+cup
+#usr/share/terminfo/a/ansi+erase
+#usr/share/terminfo/a/ansi+idc
+#usr/share/terminfo/a/ansi+idl
+#usr/share/terminfo/a/ansi+idl1
+#usr/share/terminfo/a/ansi+inittabs
+#usr/share/terminfo/a/ansi+local
+#usr/share/terminfo/a/ansi+local1
+#usr/share/terminfo/a/ansi+pp
+#usr/share/terminfo/a/ansi+rca
+#usr/share/terminfo/a/ansi+rep
+#usr/share/terminfo/a/ansi+sgr
+#usr/share/terminfo/a/ansi+sgrbold
+#usr/share/terminfo/a/ansi+sgrdim
+#usr/share/terminfo/a/ansi+sgrso
+#usr/share/terminfo/a/ansi+sgrul
+#usr/share/terminfo/a/ansi+tabs
+#usr/share/terminfo/a/ansi-color-2-emx
+#usr/share/terminfo/a/ansi-color-3-emx
+#usr/share/terminfo/a/ansi-emx
+#usr/share/terminfo/a/ansi-generic
+#usr/share/terminfo/a/ansi-m
+#usr/share/terminfo/a/ansi-mini
+#usr/share/terminfo/a/ansi-mono
+#usr/share/terminfo/a/ansi-mr
+#usr/share/terminfo/a/ansi-mtabs
+#usr/share/terminfo/a/ansi-nt
+#usr/share/terminfo/a/ansi.sys
+#usr/share/terminfo/a/ansi.sys-old
+#usr/share/terminfo/a/ansi.sysk
+#usr/share/terminfo/a/ansi43m
+#usr/share/terminfo/a/ansi77
+#usr/share/terminfo/a/ansi80x25
+#usr/share/terminfo/a/ansi80x25-mono
+#usr/share/terminfo/a/ansi80x25-raw
+#usr/share/terminfo/a/ansi80x30
+#usr/share/terminfo/a/ansi80x30-mono
+#usr/share/terminfo/a/ansi80x43
+#usr/share/terminfo/a/ansi80x43-mono
+#usr/share/terminfo/a/ansi80x50
+#usr/share/terminfo/a/ansi80x50-mono
+#usr/share/terminfo/a/ansi80x60
+#usr/share/terminfo/a/ansi80x60-mono
+#usr/share/terminfo/a/ansil
+#usr/share/terminfo/a/ansil-mono
+#usr/share/terminfo/a/ansis
+#usr/share/terminfo/a/ansis-mono
+#usr/share/terminfo/a/ansisysk
+#usr/share/terminfo/a/ansiw
+#usr/share/terminfo/a/ap-vm80
+#usr/share/terminfo/a/apl
+#usr/share/terminfo/a/apollo
+#usr/share/terminfo/a/apollo_15P
+#usr/share/terminfo/a/apollo_19L
+#usr/share/terminfo/a/apollo_color
+#usr/share/terminfo/a/apple-80
+#usr/share/terminfo/a/apple-ae
+#usr/share/terminfo/a/apple-soroc
+#usr/share/terminfo/a/apple-uterm
+#usr/share/terminfo/a/apple-uterm-vb
+#usr/share/terminfo/a/apple-videx
+#usr/share/terminfo/a/apple-videx2
+#usr/share/terminfo/a/apple-videx3
+#usr/share/terminfo/a/apple-vm80
+#usr/share/terminfo/a/apple2e
+#usr/share/terminfo/a/apple2e-p
+#usr/share/terminfo/a/apple80p
+#usr/share/terminfo/a/appleII
+#usr/share/terminfo/a/appleIIc
+#usr/share/terminfo/a/appleIIe
+#usr/share/terminfo/a/appleIIgs
+#usr/share/terminfo/a/arm100
+#usr/share/terminfo/a/arm100-am
+#usr/share/terminfo/a/arm100-w
+#usr/share/terminfo/a/arm100-wam
+#usr/share/terminfo/a/at386
+#usr/share/terminfo/a/atari
+#usr/share/terminfo/a/att2300
+#usr/share/terminfo/a/att2350
+#usr/share/terminfo/a/att4410
+#usr/share/terminfo/a/att4410-w
+#usr/share/terminfo/a/att4410v1
+#usr/share/terminfo/a/att4410v1-w
+#usr/share/terminfo/a/att4415
+#usr/share/terminfo/a/att4415+nl
+#usr/share/terminfo/a/att4415-nl
+#usr/share/terminfo/a/att4415-rv
+#usr/share/terminfo/a/att4415-rv-nl
+#usr/share/terminfo/a/att4415-w
+#usr/share/terminfo/a/att4415-w-nl
+#usr/share/terminfo/a/att4415-w-rv
+#usr/share/terminfo/a/att4415-w-rv-n
+#usr/share/terminfo/a/att4418
+#usr/share/terminfo/a/att4418-w
+#usr/share/terminfo/a/att4420
+#usr/share/terminfo/a/att4424
+#usr/share/terminfo/a/att4424-1
+#usr/share/terminfo/a/att4424m
+#usr/share/terminfo/a/att4425
+#usr/share/terminfo/a/att4425-nl
+#usr/share/terminfo/a/att4425-w
+#usr/share/terminfo/a/att4426
+#usr/share/terminfo/a/att500
+#usr/share/terminfo/a/att505
+#usr/share/terminfo/a/att505-24
+#usr/share/terminfo/a/att510a
+#usr/share/terminfo/a/att510d
+#usr/share/terminfo/a/att513
+#usr/share/terminfo/a/att5310
+#usr/share/terminfo/a/att5320
+#usr/share/terminfo/a/att5410
+#usr/share/terminfo/a/att5410-w
+#usr/share/terminfo/a/att5410v1
+#usr/share/terminfo/a/att5410v1-w
+#usr/share/terminfo/a/att5418
+#usr/share/terminfo/a/att5418-w
+#usr/share/terminfo/a/att5420
+#usr/share/terminfo/a/att5420+nl
+#usr/share/terminfo/a/att5420-nl
+#usr/share/terminfo/a/att5420-rv
+#usr/share/terminfo/a/att5420-rv-nl
+#usr/share/terminfo/a/att5420-w
+#usr/share/terminfo/a/att5420-w-nl
+#usr/share/terminfo/a/att5420-w-rv
+#usr/share/terminfo/a/att5420-w-rv-n
+#usr/share/terminfo/a/att5420_2
+#usr/share/terminfo/a/att5420_2-w
+#usr/share/terminfo/a/att5425
+#usr/share/terminfo/a/att5425-nl
+#usr/share/terminfo/a/att5425-w
+#usr/share/terminfo/a/att5430
+#usr/share/terminfo/a/att5620
+#usr/share/terminfo/a/att5620-1
+#usr/share/terminfo/a/att5620-24
+#usr/share/terminfo/a/att5620-34
+#usr/share/terminfo/a/att5620-s
+#usr/share/terminfo/a/att605
+#usr/share/terminfo/a/att605-pc
+#usr/share/terminfo/a/att605-w
+#usr/share/terminfo/a/att610
+#usr/share/terminfo/a/att610-103k
+#usr/share/terminfo/a/att610-103k-w
+#usr/share/terminfo/a/att610-w
+#usr/share/terminfo/a/att615
+#usr/share/terminfo/a/att615-103k
+#usr/share/terminfo/a/att615-103k-w
+#usr/share/terminfo/a/att615-w
+#usr/share/terminfo/a/att620
+#usr/share/terminfo/a/att620-103k
+#usr/share/terminfo/a/att620-103k-w
+#usr/share/terminfo/a/att620-w
+#usr/share/terminfo/a/att630
+#usr/share/terminfo/a/att630-24
+#usr/share/terminfo/a/att6386
+#usr/share/terminfo/a/att700
+#usr/share/terminfo/a/att730
+#usr/share/terminfo/a/att730-24
+#usr/share/terminfo/a/att730-41
+#usr/share/terminfo/a/att7300
+#usr/share/terminfo/a/att730r
+#usr/share/terminfo/a/att730r-24
+#usr/share/terminfo/a/att730r-41
+#usr/share/terminfo/a/avatar
+#usr/share/terminfo/a/avatar0
+#usr/share/terminfo/a/avatar0+
+#usr/share/terminfo/a/avatar1
+#usr/share/terminfo/a/avt
+#usr/share/terminfo/a/avt+s
+#usr/share/terminfo/a/avt-ns
+#usr/share/terminfo/a/avt-rv
+#usr/share/terminfo/a/avt-rv-ns
+#usr/share/terminfo/a/avt-rv-s
+#usr/share/terminfo/a/avt-s
+#usr/share/terminfo/a/avt-w
+#usr/share/terminfo/a/avt-w-ns
+#usr/share/terminfo/a/avt-w-rv
+#usr/share/terminfo/a/avt-w-rv-ns
+#usr/share/terminfo/a/avt-w-rv-s
+#usr/share/terminfo/a/avt-w-s
+#usr/share/terminfo/a/aws
+#usr/share/terminfo/a/awsc
+#usr/share/terminfo/b
+#usr/share/terminfo/b/b-128
+#usr/share/terminfo/b/bantam
+#usr/share/terminfo/b/basic4
+#usr/share/terminfo/b/basis
+#usr/share/terminfo/b/bct510a
+#usr/share/terminfo/b/bct510d
+#usr/share/terminfo/b/beacon
+#usr/share/terminfo/b/bee
+#usr/share/terminfo/b/beehive
+#usr/share/terminfo/b/beehive3
+#usr/share/terminfo/b/beehive4
+#usr/share/terminfo/b/beehiveIIIm
+#usr/share/terminfo/b/beterm
+#usr/share/terminfo/b/bg1.25
+#usr/share/terminfo/b/bg1.25nv
+#usr/share/terminfo/b/bg1.25rv
+#usr/share/terminfo/b/bg2.0
+#usr/share/terminfo/b/bg2.0nv
+#usr/share/terminfo/b/bg2.0rv
+#usr/share/terminfo/b/bg3.10
+#usr/share/terminfo/b/bg3.10nv
+#usr/share/terminfo/b/bg3.10rv
+#usr/share/terminfo/b/bh3m
+#usr/share/terminfo/b/bh4
+#usr/share/terminfo/b/bitgraph
+#usr/share/terminfo/b/blit
+#usr/share/terminfo/b/bobcat
+#usr/share/terminfo/b/bq300
+#usr/share/terminfo/b/bq300-8
+#usr/share/terminfo/b/bq300-8-pc
+#usr/share/terminfo/b/bq300-8-pc-rv
+#usr/share/terminfo/b/bq300-8-pc-w
+#usr/share/terminfo/b/bq300-8-pc-w-rv
+#usr/share/terminfo/b/bq300-8rv
+#usr/share/terminfo/b/bq300-8w
+#usr/share/terminfo/b/bq300-pc
+#usr/share/terminfo/b/bq300-pc-rv
+#usr/share/terminfo/b/bq300-pc-w
+#usr/share/terminfo/b/bq300-pc-w-rv
+#usr/share/terminfo/b/bq300-rv
+#usr/share/terminfo/b/bq300-w
+#usr/share/terminfo/b/bq300-w-8rv
+#usr/share/terminfo/b/bq300-w-rv
+#usr/share/terminfo/b/bsdos-pc
+#usr/share/terminfo/b/bsdos-pc-m
+#usr/share/terminfo/b/bsdos-pc-mono
+#usr/share/terminfo/b/bsdos-pc-nobold
+#usr/share/terminfo/b/bsdos-ppc
+#usr/share/terminfo/b/bsdos-sparc
+#usr/share/terminfo/c
+#usr/share/terminfo/c/c100
+#usr/share/terminfo/c/c100-1p
+#usr/share/terminfo/c/c100-4p
+#usr/share/terminfo/c/c100-rv
+#usr/share/terminfo/c/c100-rv-4p
+#usr/share/terminfo/c/c104
+#usr/share/terminfo/c/c108
+#usr/share/terminfo/c/c108-4p
+#usr/share/terminfo/c/c108-8p
+#usr/share/terminfo/c/c108-rv
+#usr/share/terminfo/c/c108-rv-4p
+#usr/share/terminfo/c/c108-rv-8p
+#usr/share/terminfo/c/c108-w
+#usr/share/terminfo/c/c108-w-8p
+#usr/share/terminfo/c/c300
+#usr/share/terminfo/c/c301
+#usr/share/terminfo/c/c321
+#usr/share/terminfo/c/ca22851
+#usr/share/terminfo/c/cad68-2
+#usr/share/terminfo/c/cad68-3
+#usr/share/terminfo/c/cbblit
+#usr/share/terminfo/c/cbunix
+#usr/share/terminfo/c/cci
+#usr/share/terminfo/c/cci1
+#usr/share/terminfo/c/cdc456
+#usr/share/terminfo/c/cdc721
+#usr/share/terminfo/c/cdc721-esc
+#usr/share/terminfo/c/cdc721ll
+#usr/share/terminfo/c/cdc752
+#usr/share/terminfo/c/cdc756
+#usr/share/terminfo/c/cg7900
+#usr/share/terminfo/c/cgc2
+#usr/share/terminfo/c/cgc3
+#usr/share/terminfo/c/chromatics
+#usr/share/terminfo/c/ci8510
+#usr/share/terminfo/c/cit-80
+#usr/share/terminfo/c/cit101
+#usr/share/terminfo/c/cit101e
+#usr/share/terminfo/c/cit101e-132
+#usr/share/terminfo/c/cit101e-n
+#usr/share/terminfo/c/cit101e-n132
+#usr/share/terminfo/c/cit101e-rv
+#usr/share/terminfo/c/cit500
+#usr/share/terminfo/c/cit80
+#usr/share/terminfo/c/citc
+#usr/share/terminfo/c/citoh
+#usr/share/terminfo/c/citoh-6lpi
+#usr/share/terminfo/c/citoh-8lpi
+#usr/share/terminfo/c/citoh-comp
+#usr/share/terminfo/c/citoh-elite
+#usr/share/terminfo/c/citoh-pica
+#usr/share/terminfo/c/citoh-prop
+#usr/share/terminfo/c/citoh-ps
+#usr/share/terminfo/c/coco3
+#usr/share/terminfo/c/coherent
+#usr/share/terminfo/c/color_xterm
+#usr/share/terminfo/c/colorscan
+#usr/share/terminfo/c/commodore
+#usr/share/terminfo/c/concept
+#usr/share/terminfo/c/concept-avt
+#usr/share/terminfo/c/concept100
+#usr/share/terminfo/c/concept100-rv
+#usr/share/terminfo/c/concept108
+#usr/share/terminfo/c/concept108-4p
+#usr/share/terminfo/c/concept108-8p
+#usr/share/terminfo/c/concept108-w-8
+#usr/share/terminfo/c/concept108-w8p
+#usr/share/terminfo/c/concept108rv4p
+#usr/share/terminfo/c/cons25
+#usr/share/terminfo/c/cons25-iso-m
+#usr/share/terminfo/c/cons25-iso8859
+#usr/share/terminfo/c/cons25-koi8-r
+#usr/share/terminfo/c/cons25-koi8r-m
+#usr/share/terminfo/c/cons25-m
+#usr/share/terminfo/c/cons25l1
+#usr/share/terminfo/c/cons25l1-m
+#usr/share/terminfo/c/cons25r
+#usr/share/terminfo/c/cons25r-m
+#usr/share/terminfo/c/cons25w
+#usr/share/terminfo/c/cons30
+#usr/share/terminfo/c/cons30-m
+#usr/share/terminfo/c/cons43
+#usr/share/terminfo/c/cons43-m
+#usr/share/terminfo/c/cons50
+#usr/share/terminfo/c/cons50-iso-m
+#usr/share/terminfo/c/cons50-iso8859
+#usr/share/terminfo/c/cons50-koi8r
+#usr/share/terminfo/c/cons50-koi8r-m
+#usr/share/terminfo/c/cons50-m
+#usr/share/terminfo/c/cons50l1
+#usr/share/terminfo/c/cons50l1-m
+#usr/share/terminfo/c/cons50r
+#usr/share/terminfo/c/cons50r-m
+#usr/share/terminfo/c/cons60
+#usr/share/terminfo/c/cons60-iso
+#usr/share/terminfo/c/cons60-iso-m
+#usr/share/terminfo/c/cons60-koi8r
+#usr/share/terminfo/c/cons60-koi8r-m
+#usr/share/terminfo/c/cons60-m
+#usr/share/terminfo/c/cons60l1
+#usr/share/terminfo/c/cons60l1-m
+#usr/share/terminfo/c/cons60r
+#usr/share/terminfo/c/cons60r-m
+#usr/share/terminfo/c/contel300
+#usr/share/terminfo/c/contel301
+#usr/share/terminfo/c/contel320
+#usr/share/terminfo/c/contel321
+#usr/share/terminfo/c/cops
+#usr/share/terminfo/c/cops-10
+#usr/share/terminfo/c/cops10
+#usr/share/terminfo/c/crt
+#usr/share/terminfo/c/crt-vt220
+#usr/share/terminfo/c/cs10
+#usr/share/terminfo/c/cs10-w
+#usr/share/terminfo/c/ct82
+#usr/share/terminfo/c/ct8500
+#usr/share/terminfo/c/ctrm
+#usr/share/terminfo/c/cx
+#usr/share/terminfo/c/cx100
+#usr/share/terminfo/c/cyb110
+#usr/share/terminfo/c/cyb83
+#usr/share/terminfo/c/cygwin
+#usr/share/terminfo/c/cygwinB19
+#usr/share/terminfo/d
+#usr/share/terminfo/d/d132
+#usr/share/terminfo/d/d2
+#usr/share/terminfo/d/d2-dg
+#usr/share/terminfo/d/d200
+#usr/share/terminfo/d/d200-dg
+#usr/share/terminfo/d/d210
+#usr/share/terminfo/d/d210-dg
+#usr/share/terminfo/d/d211
+#usr/share/terminfo/d/d211-7b
+#usr/share/terminfo/d/d211-dg
+#usr/share/terminfo/d/d214
+#usr/share/terminfo/d/d214-dg
+#usr/share/terminfo/d/d215
+#usr/share/terminfo/d/d215-7b
+#usr/share/terminfo/d/d215-dg
+#usr/share/terminfo/d/d216+
+#usr/share/terminfo/d/d216+25
+#usr/share/terminfo/d/d216+dg
+#usr/share/terminfo/d/d216-dg
+#usr/share/terminfo/d/d216-unix
+#usr/share/terminfo/d/d216-unix-25
+#usr/share/terminfo/d/d216e+
+#usr/share/terminfo/d/d216e+dg
+#usr/share/terminfo/d/d216e-dg
+#usr/share/terminfo/d/d216e-unix
+#usr/share/terminfo/d/d217-dg
+#usr/share/terminfo/d/d217-unix
+#usr/share/terminfo/d/d217-unix-25
+#usr/share/terminfo/d/d220
+#usr/share/terminfo/d/d220-7b
+#usr/share/terminfo/d/d220-dg
+#usr/share/terminfo/d/d230
+#usr/share/terminfo/d/d230-dg
+#usr/share/terminfo/d/d230c
+#usr/share/terminfo/d/d230c-dg
+#usr/share/terminfo/d/d400
+#usr/share/terminfo/d/d400-dg
+#usr/share/terminfo/d/d410
+#usr/share/terminfo/d/d410-7b
+#usr/share/terminfo/d/d410-7b-w
+#usr/share/terminfo/d/d410-dg
+#usr/share/terminfo/d/d410-w
+#usr/share/terminfo/d/d411
+#usr/share/terminfo/d/d411-7b
+#usr/share/terminfo/d/d411-7b-w
+#usr/share/terminfo/d/d411-dg
+#usr/share/terminfo/d/d411-w
+#usr/share/terminfo/d/d412+
+#usr/share/terminfo/d/d412+25
+#usr/share/terminfo/d/d412+dg
+#usr/share/terminfo/d/d412+s
+#usr/share/terminfo/d/d412+sr
+#usr/share/terminfo/d/d412+w
+#usr/share/terminfo/d/d412-dg
+#usr/share/terminfo/d/d412-unix
+#usr/share/terminfo/d/d412-unix-25
+#usr/share/terminfo/d/d412-unix-s
+#usr/share/terminfo/d/d412-unix-sr
+#usr/share/terminfo/d/d412-unix-w
+#usr/share/terminfo/d/d413-dg
+#usr/share/terminfo/d/d413-unix
+#usr/share/terminfo/d/d413-unix-25
+#usr/share/terminfo/d/d413-unix-s
+#usr/share/terminfo/d/d413-unix-sr
+#usr/share/terminfo/d/d413-unix-w
+#usr/share/terminfo/d/d414-unix
+#usr/share/terminfo/d/d414-unix-25
+#usr/share/terminfo/d/d414-unix-s
+#usr/share/terminfo/d/d414-unix-sr
+#usr/share/terminfo/d/d414-unix-w
+#usr/share/terminfo/d/d430-dg
+#usr/share/terminfo/d/d430-dg-ccc
+#usr/share/terminfo/d/d430-unix
+#usr/share/terminfo/d/d430-unix-25
+#usr/share/terminfo/d/d430-unix-25-ccc
+#usr/share/terminfo/d/d430-unix-ccc
+#usr/share/terminfo/d/d430-unix-s
+#usr/share/terminfo/d/d430-unix-s-ccc
+#usr/share/terminfo/d/d430-unix-sr
+#usr/share/terminfo/d/d430-unix-sr-ccc
+#usr/share/terminfo/d/d430-unix-w
+#usr/share/terminfo/d/d430-unix-w-ccc
+#usr/share/terminfo/d/d430c-dg
+#usr/share/terminfo/d/d430c-dg-ccc
+#usr/share/terminfo/d/d430c-unix
+#usr/share/terminfo/d/d430c-unix-25
+#usr/share/terminfo/d/d430c-unix-25-ccc
+#usr/share/terminfo/d/d430c-unix-ccc
+#usr/share/terminfo/d/d430c-unix-s
+#usr/share/terminfo/d/d430c-unix-s-ccc
+#usr/share/terminfo/d/d430c-unix-sr
+#usr/share/terminfo/d/d430c-unix-sr-ccc
+#usr/share/terminfo/d/d430c-unix-w
+#usr/share/terminfo/d/d430c-unix-w-ccc
+#usr/share/terminfo/d/d450
+#usr/share/terminfo/d/d450-dg
+#usr/share/terminfo/d/d460
+#usr/share/terminfo/d/d460-7b
+#usr/share/terminfo/d/d460-7b-w
+#usr/share/terminfo/d/d460-dg
+#usr/share/terminfo/d/d460-w
+#usr/share/terminfo/d/d461
+#usr/share/terminfo/d/d461-7b
+#usr/share/terminfo/d/d461-7b-w
+#usr/share/terminfo/d/d461-dg
+#usr/share/terminfo/d/d461-w
+#usr/share/terminfo/d/d462+
+#usr/share/terminfo/d/d462+25
+#usr/share/terminfo/d/d462+dg
+#usr/share/terminfo/d/d462+s
+#usr/share/terminfo/d/d462+sr
+#usr/share/terminfo/d/d462+w
+#usr/share/terminfo/d/d462-dg
+#usr/share/terminfo/d/d462-unix
+#usr/share/terminfo/d/d462-unix-25
+#usr/share/terminfo/d/d462-unix-s
+#usr/share/terminfo/d/d462-unix-sr
+#usr/share/terminfo/d/d462-unix-w
+#usr/share/terminfo/d/d462e-dg
+#usr/share/terminfo/d/d463-dg
+#usr/share/terminfo/d/d463-unix
+#usr/share/terminfo/d/d463-unix-25
+#usr/share/terminfo/d/d463-unix-s
+#usr/share/terminfo/d/d463-unix-sr
+#usr/share/terminfo/d/d463-unix-w
+#usr/share/terminfo/d/d464-unix
+#usr/share/terminfo/d/d464-unix-25
+#usr/share/terminfo/d/d464-unix-s
+#usr/share/terminfo/d/d464-unix-sr
+#usr/share/terminfo/d/d464-unix-w
+#usr/share/terminfo/d/d470
+#usr/share/terminfo/d/d470-7b
+#usr/share/terminfo/d/d470-dg
+#usr/share/terminfo/d/d470c
+#usr/share/terminfo/d/d470c-7b
+#usr/share/terminfo/d/d470c-dg
+#usr/share/terminfo/d/d555
+#usr/share/terminfo/d/d555-7b
+#usr/share/terminfo/d/d555-7b-w
+#usr/share/terminfo/d/d555-dg
+#usr/share/terminfo/d/d555-w
+#usr/share/terminfo/d/d577
+#usr/share/terminfo/d/d577-7b
+#usr/share/terminfo/d/d577-7b-w
+#usr/share/terminfo/d/d577-dg
+#usr/share/terminfo/d/d577-w
+#usr/share/terminfo/d/d578
+#usr/share/terminfo/d/d578-7b
+#usr/share/terminfo/d/d578-dg
+#usr/share/terminfo/d/d80
+#usr/share/terminfo/d/d800
+#usr/share/terminfo/d/darwin
+#usr/share/terminfo/d/darwin-100x37
+#usr/share/terminfo/d/darwin-100x37-m
+#usr/share/terminfo/d/darwin-112x37
+#usr/share/terminfo/d/darwin-112x37-m
+#usr/share/terminfo/d/darwin-128x40
+#usr/share/terminfo/d/darwin-128x40-m
+#usr/share/terminfo/d/darwin-128x48
+#usr/share/terminfo/d/darwin-128x48-m
+#usr/share/terminfo/d/darwin-144x48
+#usr/share/terminfo/d/darwin-144x48-m
+#usr/share/terminfo/d/darwin-160x64
+#usr/share/terminfo/d/darwin-160x64-m
+#usr/share/terminfo/d/darwin-200x64
+#usr/share/terminfo/d/darwin-200x64-m
+#usr/share/terminfo/d/darwin-200x75
+#usr/share/terminfo/d/darwin-200x75-m
+#usr/share/terminfo/d/darwin-256x96
+#usr/share/terminfo/d/darwin-256x96-m
+#usr/share/terminfo/d/darwin-80x25
+#usr/share/terminfo/d/darwin-80x25-m
+#usr/share/terminfo/d/darwin-80x30
+#usr/share/terminfo/d/darwin-80x30-m
+#usr/share/terminfo/d/darwin-90x30
+#usr/share/terminfo/d/darwin-90x30-m
+#usr/share/terminfo/d/darwin-b
+#usr/share/terminfo/d/darwin-f
+#usr/share/terminfo/d/darwin-f2
+#usr/share/terminfo/d/darwin-m
+#usr/share/terminfo/d/darwin-m-b
+#usr/share/terminfo/d/darwin-m-f
+#usr/share/terminfo/d/darwin-m-f2
+#usr/share/terminfo/d/datagraphix
+#usr/share/terminfo/d/datamedia2500
+#usr/share/terminfo/d/datapoint
+#usr/share/terminfo/d/dataspeed40
+#usr/share/terminfo/d/dd5000
+#usr/share/terminfo/d/ddr
+#usr/share/terminfo/d/ddr3180
+#usr/share/terminfo/d/dec-vt100
+#usr/share/terminfo/d/dec-vt220
+#usr/share/terminfo/d/dec-vt330
+#usr/share/terminfo/d/dec-vt340
+#usr/share/terminfo/d/dec-vt400
+#usr/share/terminfo/d/decpro
+#usr/share/terminfo/d/decwriter
+#usr/share/terminfo/d/delta
+#usr/share/terminfo/d/dg+ccc
+#usr/share/terminfo/d/dg+color
+#usr/share/terminfo/d/dg+color8
+#usr/share/terminfo/d/dg+fixed
+#usr/share/terminfo/d/dg-ansi
+#usr/share/terminfo/d/dg-generic
+#usr/share/terminfo/d/dg100
+#usr/share/terminfo/d/dg200
+#usr/share/terminfo/d/dg210
+#usr/share/terminfo/d/dg211
+#usr/share/terminfo/d/dg450
+#usr/share/terminfo/d/dg460-ansi
+#usr/share/terminfo/d/dg6053
+#usr/share/terminfo/d/dg6053-old
+#usr/share/terminfo/d/dg605x
+#usr/share/terminfo/d/dg6134
+#usr/share/terminfo/d/dgkeys+11
+#usr/share/terminfo/d/dgkeys+15
+#usr/share/terminfo/d/dgkeys+7b
+#usr/share/terminfo/d/dgkeys+8b
+#usr/share/terminfo/d/dgmode+color
+#usr/share/terminfo/d/dgmode+color8
+#usr/share/terminfo/d/dgunix+ccc
+#usr/share/terminfo/d/dgunix+fixed
+#usr/share/terminfo/d/diablo
+#usr/share/terminfo/d/diablo-lm
+#usr/share/terminfo/d/diablo1620
+#usr/share/terminfo/d/diablo1620-m8
+#usr/share/terminfo/d/diablo1640
+#usr/share/terminfo/d/diablo1640-lm
+#usr/share/terminfo/d/diablo1640-m8
+#usr/share/terminfo/d/diablo1720
+#usr/share/terminfo/d/diablo1730
+#usr/share/terminfo/d/diablo1740
+#usr/share/terminfo/d/diablo1740-lm
+#usr/share/terminfo/d/diablo450
+#usr/share/terminfo/d/diablo630
+#usr/share/terminfo/d/dialogue
+#usr/share/terminfo/d/dialogue80
+#usr/share/terminfo/d/digilog
+#usr/share/terminfo/d/dku7003
+#usr/share/terminfo/d/dku7003-dumb
+#usr/share/terminfo/d/dku7102
+#usr/share/terminfo/d/dku7102-old
+#usr/share/terminfo/d/dku7102-sna
+#usr/share/terminfo/d/dku7103-sna
+#usr/share/terminfo/d/dku7202
+#usr/share/terminfo/d/dm1520
+#usr/share/terminfo/d/dm1521
+#usr/share/terminfo/d/dm2500
+#usr/share/terminfo/d/dm3025
+#usr/share/terminfo/d/dm3045
+#usr/share/terminfo/d/dm80
+#usr/share/terminfo/d/dm80w
+#usr/share/terminfo/d/dmchat
+#usr/share/terminfo/d/dmd
+#usr/share/terminfo/d/dmd-24
+#usr/share/terminfo/d/dmd-34
+#usr/share/terminfo/d/dmd1
+#usr/share/terminfo/d/dmdt80
+#usr/share/terminfo/d/dmdt80w
+#usr/share/terminfo/d/dmterm
+#usr/share/terminfo/d/dp3360
+#usr/share/terminfo/d/dp8242
+#usr/share/terminfo/d/ds40
+#usr/share/terminfo/d/ds40-2
+#usr/share/terminfo/d/dt-100
+#usr/share/terminfo/d/dt-100w
+#usr/share/terminfo/d/dt100
+#usr/share/terminfo/d/dt100w
+#usr/share/terminfo/d/dt110
+#usr/share/terminfo/d/dt80
+#usr/share/terminfo/d/dt80-sas
+#usr/share/terminfo/d/dt80w
+#usr/share/terminfo/d/dtc300s
+#usr/share/terminfo/d/dtc382
+#usr/share/terminfo/d/dtterm
+#usr/share/terminfo/d/dumb
+#usr/share/terminfo/d/dw
+#usr/share/terminfo/d/dw1
+#usr/share/terminfo/d/dw2
+#usr/share/terminfo/d/dw3
+#usr/share/terminfo/d/dw4
+#usr/share/terminfo/d/dwk
+#usr/share/terminfo/d/dwk-vt
+#usr/share/terminfo/e
+#usr/share/terminfo/e/ecma+color
+#usr/share/terminfo/e/ecma+sgr
+#usr/share/terminfo/e/elks
+#usr/share/terminfo/e/elks-ansi
+#usr/share/terminfo/e/elks-glasstty
+#usr/share/terminfo/e/elks-vt52
+#usr/share/terminfo/e/emots
+#usr/share/terminfo/e/emu
+#usr/share/terminfo/e/env230
+#usr/share/terminfo/e/envision230
+#usr/share/terminfo/e/ep40
+#usr/share/terminfo/e/ep4000
+#usr/share/terminfo/e/ep4080
+#usr/share/terminfo/e/ep48
+#usr/share/terminfo/e/ergo4000
+#usr/share/terminfo/e/esprit
+#usr/share/terminfo/e/esprit-am
+#usr/share/terminfo/e/eterm
+#usr/share/terminfo/e/ex155
+#usr/share/terminfo/e/excel62
+#usr/share/terminfo/e/excel62-rv
+#usr/share/terminfo/e/excel62-w
+#usr/share/terminfo/e/excel64
+#usr/share/terminfo/e/excel64-rv
+#usr/share/terminfo/e/excel64-w
+#usr/share/terminfo/e/exec80
+#usr/share/terminfo/f
+#usr/share/terminfo/f/f100
+#usr/share/terminfo/f/f100-rv
+#usr/share/terminfo/f/f110
+#usr/share/terminfo/f/f110-14
+#usr/share/terminfo/f/f110-14w
+#usr/share/terminfo/f/f110-w
+#usr/share/terminfo/f/f1720
+#usr/share/terminfo/f/f1720a
+#usr/share/terminfo/f/f200
+#usr/share/terminfo/f/f200-w
+#usr/share/terminfo/f/f200vi
+#usr/share/terminfo/f/f200vi-w
+#usr/share/terminfo/f/falco
+#usr/share/terminfo/f/falco-p
+#usr/share/terminfo/f/fenix
+#usr/share/terminfo/f/fenixw
+#usr/share/terminfo/f/fixterm
+#usr/share/terminfo/f/fortune
+#usr/share/terminfo/f/fos
+#usr/share/terminfo/f/fox
+#usr/share/terminfo/f/freedom
+#usr/share/terminfo/f/freedom-rv
+#usr/share/terminfo/f/freedom100
+#usr/share/terminfo/f/freedom110
+#usr/share/terminfo/f/freedom200
+#usr/share/terminfo/g
+#usr/share/terminfo/g/gator
+#usr/share/terminfo/g/gator-52
+#usr/share/terminfo/g/gator-52t
+#usr/share/terminfo/g/gator-t
+#usr/share/terminfo/g/gigi
+#usr/share/terminfo/g/glasstty
+#usr/share/terminfo/g/gnome
+#usr/share/terminfo/g/gnome-rh62
+#usr/share/terminfo/g/gnome-rh72
+#usr/share/terminfo/g/go-225
+#usr/share/terminfo/g/go140
+#usr/share/terminfo/g/go140w
+#usr/share/terminfo/g/go225
+#usr/share/terminfo/g/graphos
+#usr/share/terminfo/g/graphos-30
+#usr/share/terminfo/g/gs5430
+#usr/share/terminfo/g/gs5430-22
+#usr/share/terminfo/g/gs5430-24
+#usr/share/terminfo/g/gs6300
+#usr/share/terminfo/g/gsi
+#usr/share/terminfo/g/gt100
+#usr/share/terminfo/g/gt100a
+#usr/share/terminfo/g/gt40
+#usr/share/terminfo/g/gt42
+#usr/share/terminfo/g/guru
+#usr/share/terminfo/g/guru+rv
+#usr/share/terminfo/g/guru+s
+#usr/share/terminfo/g/guru+unk
+#usr/share/terminfo/g/guru-24
+#usr/share/terminfo/g/guru-33
+#usr/share/terminfo/g/guru-33-rv
+#usr/share/terminfo/g/guru-33-s
+#usr/share/terminfo/g/guru-44
+#usr/share/terminfo/g/guru-44-s
+#usr/share/terminfo/g/guru-76
+#usr/share/terminfo/g/guru-76-lp
+#usr/share/terminfo/g/guru-76-s
+#usr/share/terminfo/g/guru-76-w
+#usr/share/terminfo/g/guru-76-w-s
+#usr/share/terminfo/g/guru-76-wm
+#usr/share/terminfo/g/guru-lp
+#usr/share/terminfo/g/guru-nctxt
+#usr/share/terminfo/g/guru-rv
+#usr/share/terminfo/g/guru-s
+#usr/share/terminfo/h
+#usr/share/terminfo/h/h-100
+#usr/share/terminfo/h/h-100bw
+#usr/share/terminfo/h/h100
+#usr/share/terminfo/h/h100bw
+#usr/share/terminfo/h/h19
+#usr/share/terminfo/h/h19-a
+#usr/share/terminfo/h/h19-b
+#usr/share/terminfo/h/h19-bs
+#usr/share/terminfo/h/h19-g
+#usr/share/terminfo/h/h19-smul
+#usr/share/terminfo/h/h19-u
+#usr/share/terminfo/h/h19-us
+#usr/share/terminfo/h/h19a
+#usr/share/terminfo/h/h19g
+#usr/share/terminfo/h/h19k
+#usr/share/terminfo/h/h19kermit
+#usr/share/terminfo/h/h19us
+#usr/share/terminfo/h/h29a-kc-bc
+#usr/share/terminfo/h/h29a-kc-uc
+#usr/share/terminfo/h/h29a-nkc-bc
+#usr/share/terminfo/h/h29a-nkc-uc
+#usr/share/terminfo/h/h80
+#usr/share/terminfo/h/ha8675
+#usr/share/terminfo/h/ha8686
+#usr/share/terminfo/h/hazel
+#usr/share/terminfo/h/hds200
+#usr/share/terminfo/h/he80
+#usr/share/terminfo/h/heath
+#usr/share/terminfo/h/heath-19
+#usr/share/terminfo/h/heath-ansi
+#usr/share/terminfo/h/heathkit
+#usr/share/terminfo/h/heathkit-a
+#usr/share/terminfo/h/hft
+#usr/share/terminfo/h/hft-c
+#usr/share/terminfo/h/hft-c-old
+#usr/share/terminfo/h/hft-old
+#usr/share/terminfo/h/hirez100
+#usr/share/terminfo/h/hirez100-w
+#usr/share/terminfo/h/hmod1
+#usr/share/terminfo/h/hp
+#usr/share/terminfo/h/hp+arrows
+#usr/share/terminfo/h/hp+color
+#usr/share/terminfo/h/hp+labels
+#usr/share/terminfo/h/hp+pfk+arrows
+#usr/share/terminfo/h/hp+pfk+cr
+#usr/share/terminfo/h/hp+pfk-cr
+#usr/share/terminfo/h/hp+printer
+#usr/share/terminfo/h/hp110
+#usr/share/terminfo/h/hp150
+#usr/share/terminfo/h/hp2
+#usr/share/terminfo/h/hp236
+#usr/share/terminfo/h/hp2382
+#usr/share/terminfo/h/hp2382a
+#usr/share/terminfo/h/hp2392
+#usr/share/terminfo/h/hp2397
+#usr/share/terminfo/h/hp2397a
+#usr/share/terminfo/h/hp2621
+#usr/share/terminfo/h/hp2621-48
+#usr/share/terminfo/h/hp2621-a
+#usr/share/terminfo/h/hp2621-ba
+#usr/share/terminfo/h/hp2621-fl
+#usr/share/terminfo/h/hp2621-k45
+#usr/share/terminfo/h/hp2621-nl
+#usr/share/terminfo/h/hp2621-nt
+#usr/share/terminfo/h/hp2621-wl
+#usr/share/terminfo/h/hp2621A
+#usr/share/terminfo/h/hp2621a
+#usr/share/terminfo/h/hp2621a-a
+#usr/share/terminfo/h/hp2621b
+#usr/share/terminfo/h/hp2621b-kx
+#usr/share/terminfo/h/hp2621b-kx-p
+#usr/share/terminfo/h/hp2621b-p
+#usr/share/terminfo/h/hp2621k45
+#usr/share/terminfo/h/hp2621p
+#usr/share/terminfo/h/hp2621p-a
+#usr/share/terminfo/h/hp2622
+#usr/share/terminfo/h/hp2622a
+#usr/share/terminfo/h/hp2623
+#usr/share/terminfo/h/hp2623a
+#usr/share/terminfo/h/hp2624
+#usr/share/terminfo/h/hp2624-10p
+#usr/share/terminfo/h/hp2624a
+#usr/share/terminfo/h/hp2624a-10p
+#usr/share/terminfo/h/hp2624b
+#usr/share/terminfo/h/hp2624b-10p
+#usr/share/terminfo/h/hp2624b-10p-p
+#usr/share/terminfo/h/hp2624b-4p
+#usr/share/terminfo/h/hp2624b-4p-p
+#usr/share/terminfo/h/hp2624b-p
+#usr/share/terminfo/h/hp2626
+#usr/share/terminfo/h/hp2626-12
+#usr/share/terminfo/h/hp2626-12-s
+#usr/share/terminfo/h/hp2626-12x40
+#usr/share/terminfo/h/hp2626-ns
+#usr/share/terminfo/h/hp2626-s
+#usr/share/terminfo/h/hp2626-x40
+#usr/share/terminfo/h/hp2626a
+#usr/share/terminfo/h/hp2626p
+#usr/share/terminfo/h/hp2627a
+#usr/share/terminfo/h/hp2627a-rev
+#usr/share/terminfo/h/hp2627c
+#usr/share/terminfo/h/hp262x
+#usr/share/terminfo/h/hp2640a
+#usr/share/terminfo/h/hp2640b
+#usr/share/terminfo/h/hp2641a
+#usr/share/terminfo/h/hp2644a
+#usr/share/terminfo/h/hp2645
+#usr/share/terminfo/h/hp2645a
+#usr/share/terminfo/h/hp2647a
+#usr/share/terminfo/h/hp2648
+#usr/share/terminfo/h/hp2648a
+#usr/share/terminfo/h/hp300h
+#usr/share/terminfo/h/hp45
+#usr/share/terminfo/h/hp700
+#usr/share/terminfo/h/hp700-wy
+#usr/share/terminfo/h/hp70092
+#usr/share/terminfo/h/hp70092A
+#usr/share/terminfo/h/hp70092a
+#usr/share/terminfo/h/hp9837
+#usr/share/terminfo/h/hp9845
+#usr/share/terminfo/h/hp98550
+#usr/share/terminfo/h/hp98550a
+#usr/share/terminfo/h/hp98720
+#usr/share/terminfo/h/hp98721
+#usr/share/terminfo/h/hpansi
+#usr/share/terminfo/h/hpex
+#usr/share/terminfo/h/hpex2
+#usr/share/terminfo/h/hpgeneric
+#usr/share/terminfo/h/hpsub
+#usr/share/terminfo/h/hpterm
+#usr/share/terminfo/h/htx11
+#usr/share/terminfo/h/hz1000
+#usr/share/terminfo/h/hz1420
+#usr/share/terminfo/h/hz1500
+#usr/share/terminfo/h/hz1510
+#usr/share/terminfo/h/hz1520
+#usr/share/terminfo/h/hz1520-noesc
+#usr/share/terminfo/h/hz1552
+#usr/share/terminfo/h/hz1552-rv
+#usr/share/terminfo/h/hz2000
+#usr/share/terminfo/i
+#usr/share/terminfo/i/i100
+#usr/share/terminfo/i/i3101
+#usr/share/terminfo/i/i3164
+#usr/share/terminfo/i/i400
+#usr/share/terminfo/i/ibcs2
+#usr/share/terminfo/i/ibm+16color
+#usr/share/terminfo/i/ibm+color
+#usr/share/terminfo/i/ibm-apl
+#usr/share/terminfo/i/ibm-pc
+#usr/share/terminfo/i/ibm-system1
+#usr/share/terminfo/i/ibm3101
+#usr/share/terminfo/i/ibm3151
+#usr/share/terminfo/i/ibm3161
+#usr/share/terminfo/i/ibm3161-C
+#usr/share/terminfo/i/ibm3162
+#usr/share/terminfo/i/ibm3163
+#usr/share/terminfo/i/ibm3164
+#usr/share/terminfo/i/ibm327x
+#usr/share/terminfo/i/ibm5051
+#usr/share/terminfo/i/ibm5081
+#usr/share/terminfo/i/ibm5081-c
+#usr/share/terminfo/i/ibm5151
+#usr/share/terminfo/i/ibm5154
+#usr/share/terminfo/i/ibm5154-c
+#usr/share/terminfo/i/ibm6153
+#usr/share/terminfo/i/ibm6153-40
+#usr/share/terminfo/i/ibm6153-90
+#usr/share/terminfo/i/ibm6154
+#usr/share/terminfo/i/ibm6154-c
+#usr/share/terminfo/i/ibm6155
+#usr/share/terminfo/i/ibm8503
+#usr/share/terminfo/i/ibm8507
+#usr/share/terminfo/i/ibm8512
+#usr/share/terminfo/i/ibm8513
+#usr/share/terminfo/i/ibm8514
+#usr/share/terminfo/i/ibm8514-c
+#usr/share/terminfo/i/ibm8604
+#usr/share/terminfo/i/ibmaed
+#usr/share/terminfo/i/ibmapa16
+#usr/share/terminfo/i/ibmapa8
+#usr/share/terminfo/i/ibmapa8c
+#usr/share/terminfo/i/ibmapa8c-c
+#usr/share/terminfo/i/ibmega
+#usr/share/terminfo/i/ibmega-c
+#usr/share/terminfo/i/ibmmono
+#usr/share/terminfo/i/ibmmpel-c
+#usr/share/terminfo/i/ibmpc
+#usr/share/terminfo/i/ibmpc3
+#usr/share/terminfo/i/ibmpc3r
+#usr/share/terminfo/i/ibmpc3r-mono
+#usr/share/terminfo/i/ibmpcx
+#usr/share/terminfo/i/ibmvga
+#usr/share/terminfo/i/ibmvga-c
+#usr/share/terminfo/i/ibmx
+#usr/share/terminfo/i/icl6402
+#usr/share/terminfo/i/icl6404
+#usr/share/terminfo/i/icl6404-w
+#usr/share/terminfo/i/ifmr
+#usr/share/terminfo/i/ims-ansi
+#usr/share/terminfo/i/ims950
+#usr/share/terminfo/i/ims950-b
+#usr/share/terminfo/i/ims950-rv
+#usr/share/terminfo/i/infoton
+#usr/share/terminfo/i/intertec
+#usr/share/terminfo/i/intertube
+#usr/share/terminfo/i/intertube2
+#usr/share/terminfo/i/intext
+#usr/share/terminfo/i/intext2
+#usr/share/terminfo/i/intextii
+#usr/share/terminfo/i/ips
+#usr/share/terminfo/i/ipsi
+#usr/share/terminfo/i/iq120
+#usr/share/terminfo/i/iq140
+#usr/share/terminfo/i/iris-ansi
+#usr/share/terminfo/i/iris-ansi-ap
+#usr/share/terminfo/i/iris-ansi-net
+#usr/share/terminfo/i/iris-color
+#usr/share/terminfo/i/iris40
+#usr/share/terminfo/j
+#usr/share/terminfo/j/jaixterm
+#usr/share/terminfo/j/jaixterm-m
+#usr/share/terminfo/j/jerq
+#usr/share/terminfo/k
+#usr/share/terminfo/k/k45
+#usr/share/terminfo/k/kaypro
+#usr/share/terminfo/k/kaypro2
+#usr/share/terminfo/k/kds6402
+#usr/share/terminfo/k/kds7372
+#usr/share/terminfo/k/kds7372-w
+#usr/share/terminfo/k/kermit
+#usr/share/terminfo/k/kermit-am
+#usr/share/terminfo/k/klone+acs
+#usr/share/terminfo/k/klone+color
+#usr/share/terminfo/k/klone+koi8acs
+#usr/share/terminfo/k/klone+sgr
+#usr/share/terminfo/k/klone+sgr-dumb
+#usr/share/terminfo/k/konsole
+#usr/share/terminfo/k/konsole-16color
+#usr/share/terminfo/k/konsole-base
+#usr/share/terminfo/k/konsole-linux
+#usr/share/terminfo/k/konsole-vt100
+#usr/share/terminfo/k/konsole-vt420pc
+#usr/share/terminfo/k/konsole-xf3x
+#usr/share/terminfo/k/konsole-xf4x
+#usr/share/terminfo/k/kt7
+#usr/share/terminfo/k/kt7ix
+#usr/share/terminfo/k/kterm
+#usr/share/terminfo/k/kterm-co
+#usr/share/terminfo/k/kterm-color
+#usr/share/terminfo/k/ktm
+#usr/share/terminfo/k/kvt
+#usr/share/terminfo/l
+#usr/share/terminfo/l/la120
+#usr/share/terminfo/l/layer
+#usr/share/terminfo/l/lft
+#usr/share/terminfo/l/lft-pc850
+usr/share/terminfo/l/linux
+usr/share/terminfo/l/linux-basic
+usr/share/terminfo/l/linux-c
+usr/share/terminfo/l/linux-c-nc
+usr/share/terminfo/l/linux-koi8
+usr/share/terminfo/l/linux-koi8r
+usr/share/terminfo/l/linux-lat
+usr/share/terminfo/l/linux-m
+usr/share/terminfo/l/linux-nic
+#usr/share/terminfo/l/lisa
+#usr/share/terminfo/l/lisaterm
+#usr/share/terminfo/l/lisaterm-w
+#usr/share/terminfo/l/liswb
+#usr/share/terminfo/l/ln03
+#usr/share/terminfo/l/ln03-w
+#usr/share/terminfo/l/lpr
+#usr/share/terminfo/l/luna
+#usr/share/terminfo/l/luna68k
+#usr/share/terminfo/m
+#usr/share/terminfo/m/m2-nam
+#usr/share/terminfo/m/mac
+#usr/share/terminfo/m/mac-w
+#usr/share/terminfo/m/mach
+#usr/share/terminfo/m/mach-bold
+#usr/share/terminfo/m/mach-color
+#usr/share/terminfo/m/macintosh
+#usr/share/terminfo/m/macterminal-w
+#usr/share/terminfo/m/mai
+#usr/share/terminfo/m/masscomp
+#usr/share/terminfo/m/masscomp1
+#usr/share/terminfo/m/masscomp2
+#usr/share/terminfo/m/mdl110
+#usr/share/terminfo/m/megatek
+#usr/share/terminfo/m/memhp
+#usr/share/terminfo/m/mgr
+#usr/share/terminfo/m/mgr-linux
+#usr/share/terminfo/m/mgr-sun
+#usr/share/terminfo/m/mgterm
+#usr/share/terminfo/m/microb
+#usr/share/terminfo/m/microbee
+#usr/share/terminfo/m/microterm
+#usr/share/terminfo/m/microterm5
+#usr/share/terminfo/m/mime
+#usr/share/terminfo/m/mime-3ax
+#usr/share/terminfo/m/mime-fb
+#usr/share/terminfo/m/mime-hb
+#usr/share/terminfo/m/mime1
+#usr/share/terminfo/m/mime2
+#usr/share/terminfo/m/mime2a
+#usr/share/terminfo/m/mime2a-s
+#usr/share/terminfo/m/mime2a-v
+#usr/share/terminfo/m/mime314
+#usr/share/terminfo/m/mime340
+#usr/share/terminfo/m/mime3a
+#usr/share/terminfo/m/mime3ax
+#usr/share/terminfo/m/mimei
+#usr/share/terminfo/m/mimeii
+#usr/share/terminfo/m/minitel
+#usr/share/terminfo/m/minitel-2
+#usr/share/terminfo/m/minitel-2-nam
+#usr/share/terminfo/m/minitel1
+#usr/share/terminfo/m/minitel1b
+#usr/share/terminfo/m/minitel1b-80
+#usr/share/terminfo/m/minix
+#usr/share/terminfo/m/minix-old
+#usr/share/terminfo/m/minix-old-am
+#usr/share/terminfo/m/mm314
+#usr/share/terminfo/m/mm340
+#usr/share/terminfo/m/mod
+#usr/share/terminfo/m/mod24
+#usr/share/terminfo/m/modgraph
+#usr/share/terminfo/m/modgraph2
+#usr/share/terminfo/m/modgraph48
+#usr/share/terminfo/m/mono-emx
+#usr/share/terminfo/m/ms-vt100
+#usr/share/terminfo/m/ms-vt100-color
+#usr/share/terminfo/m/msk227
+#usr/share/terminfo/m/msk22714
+#usr/share/terminfo/m/msk227am
+#usr/share/terminfo/m/mskermit227
+#usr/share/terminfo/m/mskermit22714
+#usr/share/terminfo/m/mskermit227am
+#usr/share/terminfo/m/mt-70
+#usr/share/terminfo/m/mt4520-rv
+#usr/share/terminfo/m/mt70
+#usr/share/terminfo/m/mvterm
+#usr/share/terminfo/n
+#usr/share/terminfo/n/nansi.sys
+#usr/share/terminfo/n/nansi.sysk
+#usr/share/terminfo/n/nansisys
+#usr/share/terminfo/n/nansisysk
+#usr/share/terminfo/n/ncr160vppp
+#usr/share/terminfo/n/ncr160vpwpp
+#usr/share/terminfo/n/ncr160vt100an
+#usr/share/terminfo/n/ncr160vt100pp
+#usr/share/terminfo/n/ncr160vt100wan
+#usr/share/terminfo/n/ncr160vt100wpp
+#usr/share/terminfo/n/ncr160vt200an
+#usr/share/terminfo/n/ncr160vt200pp
+#usr/share/terminfo/n/ncr160vt200wan
+#usr/share/terminfo/n/ncr160vt200wpp
+#usr/share/terminfo/n/ncr160vt300an
+#usr/share/terminfo/n/ncr160vt300pp
+#usr/share/terminfo/n/ncr160vt300wan
+#usr/share/terminfo/n/ncr160vt300wpp
+#usr/share/terminfo/n/ncr160wy50+pp
+#usr/share/terminfo/n/ncr160wy50+wpp
+#usr/share/terminfo/n/ncr160wy60pp
+#usr/share/terminfo/n/ncr160wy60wpp
+#usr/share/terminfo/n/ncr260intan
+#usr/share/terminfo/n/ncr260intpp
+#usr/share/terminfo/n/ncr260intwan
+#usr/share/terminfo/n/ncr260intwpp
+#usr/share/terminfo/n/ncr260vppp
+#usr/share/terminfo/n/ncr260vpwpp
+#usr/share/terminfo/n/ncr260vt100an
+#usr/share/terminfo/n/ncr260vt100pp
+#usr/share/terminfo/n/ncr260vt100wan
+#usr/share/terminfo/n/ncr260vt100wpp
+#usr/share/terminfo/n/ncr260vt200an
+#usr/share/terminfo/n/ncr260vt200pp
+#usr/share/terminfo/n/ncr260vt200wan
+#usr/share/terminfo/n/ncr260vt200wpp
+#usr/share/terminfo/n/ncr260vt300an
+#usr/share/terminfo/n/ncr260vt300pp
+#usr/share/terminfo/n/ncr260vt300wan
+#usr/share/terminfo/n/ncr260vt300wpp
+#usr/share/terminfo/n/ncr260wy325pp
+#usr/share/terminfo/n/ncr260wy325wpp
+#usr/share/terminfo/n/ncr260wy350pp
+#usr/share/terminfo/n/ncr260wy350wpp
+#usr/share/terminfo/n/ncr260wy50+pp
+#usr/share/terminfo/n/ncr260wy50+wpp
+#usr/share/terminfo/n/ncr260wy60pp
+#usr/share/terminfo/n/ncr260wy60wpp
+#usr/share/terminfo/n/ncr7900
+#usr/share/terminfo/n/ncr7900i
+#usr/share/terminfo/n/ncr7900iv
+#usr/share/terminfo/n/ncr7901
+#usr/share/terminfo/n/ncrvt100an
+#usr/share/terminfo/n/ncrvt100pp
+#usr/share/terminfo/n/ncrvt100wan
+#usr/share/terminfo/n/ncrvt100wpp
+#usr/share/terminfo/n/ncsa
+#usr/share/terminfo/n/ncsa-m
+#usr/share/terminfo/n/ncsa-m-ns
+#usr/share/terminfo/n/ncsa-ns
+#usr/share/terminfo/n/ncsa-vt220
+#usr/share/terminfo/n/ncsa-vt220-8
+#usr/share/terminfo/n/nec
+#usr/share/terminfo/n/nec5520
+#usr/share/terminfo/n/newhp
+#usr/share/terminfo/n/newhpkeyboard
+#usr/share/terminfo/n/news
+#usr/share/terminfo/n/news-29
+#usr/share/terminfo/n/news-29-euc
+#usr/share/terminfo/n/news-29-sjis
+#usr/share/terminfo/n/news-33
+#usr/share/terminfo/n/news-33-euc
+#usr/share/terminfo/n/news-33-sjis
+#usr/share/terminfo/n/news-42
+#usr/share/terminfo/n/news-42-euc
+#usr/share/terminfo/n/news-42-sjis
+#usr/share/terminfo/n/news-a
+#usr/share/terminfo/n/news-o
+#usr/share/terminfo/n/news-old-unk
+#usr/share/terminfo/n/news-unk
+#usr/share/terminfo/n/news28
+#usr/share/terminfo/n/news28-a
+#usr/share/terminfo/n/news29
+#usr/share/terminfo/n/news31
+#usr/share/terminfo/n/news31-a
+#usr/share/terminfo/n/news31-o
+#usr/share/terminfo/n/news33
+#usr/share/terminfo/n/news40
+#usr/share/terminfo/n/news40-a
+#usr/share/terminfo/n/news40-o
+#usr/share/terminfo/n/news42
+#usr/share/terminfo/n/newscbm
+#usr/share/terminfo/n/newscbm-a
+#usr/share/terminfo/n/newscbm-o
+#usr/share/terminfo/n/newscbm33
+#usr/share/terminfo/n/next
+#usr/share/terminfo/n/nextshell
+#usr/share/terminfo/n/northstar
+#usr/share/terminfo/n/nsterm
+#usr/share/terminfo/n/nsterm+7
+#usr/share/terminfo/n/nsterm+acs
+#usr/share/terminfo/n/nsterm+c
+#usr/share/terminfo/n/nsterm+c41
+#usr/share/terminfo/n/nsterm+mac
+#usr/share/terminfo/n/nsterm+s
+#usr/share/terminfo/n/nsterm-7
+#usr/share/terminfo/n/nsterm-7-c
+#usr/share/terminfo/n/nsterm-7-c-s
+#usr/share/terminfo/n/nsterm-7-m
+#usr/share/terminfo/n/nsterm-7-m-s
+#usr/share/terminfo/n/nsterm-7-s
+#usr/share/terminfo/n/nsterm-acs
+#usr/share/terminfo/n/nsterm-acs-c
+#usr/share/terminfo/n/nsterm-acs-c-s
+#usr/share/terminfo/n/nsterm-acs-m
+#usr/share/terminfo/n/nsterm-acs-m-s
+#usr/share/terminfo/n/nsterm-acs-s
+#usr/share/terminfo/n/nsterm-c
+#usr/share/terminfo/n/nsterm-c-7
+#usr/share/terminfo/n/nsterm-c-acs
+#usr/share/terminfo/n/nsterm-c-s
+#usr/share/terminfo/n/nsterm-c-s-7
+#usr/share/terminfo/n/nsterm-c-s-acs
+#usr/share/terminfo/n/nsterm-m
+#usr/share/terminfo/n/nsterm-m-7
+#usr/share/terminfo/n/nsterm-m-acs
+#usr/share/terminfo/n/nsterm-m-s
+#usr/share/terminfo/n/nsterm-m-s-7
+#usr/share/terminfo/n/nsterm-m-s-acs
+#usr/share/terminfo/n/nsterm-s
+#usr/share/terminfo/n/nsterm-s-7
+#usr/share/terminfo/n/nsterm-s-acs
+#usr/share/terminfo/n/nwe501
+#usr/share/terminfo/n/nwe501-a
+#usr/share/terminfo/n/nwe501-o
+#usr/share/terminfo/n/nwp-511
+#usr/share/terminfo/n/nwp-517
+#usr/share/terminfo/n/nwp-517-w
+#usr/share/terminfo/n/nwp251-a
+#usr/share/terminfo/n/nwp251-o
+#usr/share/terminfo/n/nwp511
+#usr/share/terminfo/n/nwp512
+#usr/share/terminfo/n/nwp512-a
+#usr/share/terminfo/n/nwp512-o
+#usr/share/terminfo/n/nwp513
+#usr/share/terminfo/n/nwp513-a
+#usr/share/terminfo/n/nwp513-o
+#usr/share/terminfo/n/nwp514
+#usr/share/terminfo/n/nwp514-a
+#usr/share/terminfo/n/nwp514-o
+#usr/share/terminfo/n/nwp517
+#usr/share/terminfo/n/nwp517-w
+#usr/share/terminfo/n/nwp518
+#usr/share/terminfo/n/nwp518-a
+#usr/share/terminfo/n/nwp518-o
+#usr/share/terminfo/n/nxterm
+#usr/share/terminfo/o
+#usr/share/terminfo/o/o31
+#usr/share/terminfo/o/o4112-nd
+#usr/share/terminfo/o/o85h
+#usr/share/terminfo/o/oabm85h
+#usr/share/terminfo/o/oblit
+#usr/share/terminfo/o/oc100
+#usr/share/terminfo/o/oconcept
+#usr/share/terminfo/o/ofcons
+#usr/share/terminfo/o/ojerq
+#usr/share/terminfo/o/oldibmpc3
+#usr/share/terminfo/o/oldpc3
+#usr/share/terminfo/o/oldsun
+#usr/share/terminfo/o/omron
+#usr/share/terminfo/o/opus3n1+
+#usr/share/terminfo/o/origibmpc3
+#usr/share/terminfo/o/origpc3
+#usr/share/terminfo/o/os9LII
+#usr/share/terminfo/o/osborne
+#usr/share/terminfo/o/osborne-w
+#usr/share/terminfo/o/osborne1
+#usr/share/terminfo/o/osborne1-w
+#usr/share/terminfo/o/osexec
+#usr/share/terminfo/o/otek4112
+#usr/share/terminfo/o/otek4113
+#usr/share/terminfo/o/otek4114
+#usr/share/terminfo/o/otek4115
+#usr/share/terminfo/o/owl
+#usr/share/terminfo/p
+#usr/share/terminfo/p/p12
+#usr/share/terminfo/p/p12-m
+#usr/share/terminfo/p/p12-m-w
+#usr/share/terminfo/p/p12-w
+#usr/share/terminfo/p/p14
+#usr/share/terminfo/p/p14-m
+#usr/share/terminfo/p/p14-m-w
+#usr/share/terminfo/p/p14-w
+#usr/share/terminfo/p/p19
+#usr/share/terminfo/p/p4
+#usr/share/terminfo/p/p5
+#usr/share/terminfo/p/p7
+#usr/share/terminfo/p/p8
+#usr/share/terminfo/p/p8-w
+#usr/share/terminfo/p/p8gl
+#usr/share/terminfo/p/p9
+#usr/share/terminfo/p/p9-8
+#usr/share/terminfo/p/p9-8-w
+#usr/share/terminfo/p/p9-w
+#usr/share/terminfo/p/pc-coherent
+#usr/share/terminfo/p/pc-minix
+#usr/share/terminfo/p/pc-venix
+#usr/share/terminfo/p/pc3
+#usr/share/terminfo/p/pc3-bold
+#usr/share/terminfo/p/pc3r
+#usr/share/terminfo/p/pc3r-m
+#usr/share/terminfo/p/pc6300plus
+#usr/share/terminfo/p/pc7300
+#usr/share/terminfo/p/pcansi
+#usr/share/terminfo/p/pcansi-25
+#usr/share/terminfo/p/pcansi-25-m
+#usr/share/terminfo/p/pcansi-33
+#usr/share/terminfo/p/pcansi-33-m
+#usr/share/terminfo/p/pcansi-43
+#usr/share/terminfo/p/pcansi-43-m
+#usr/share/terminfo/p/pcansi-m
+#usr/share/terminfo/p/pcansi-mono
+#usr/share/terminfo/p/pcansi25
+#usr/share/terminfo/p/pcansi25m
+#usr/share/terminfo/p/pcansi33
+#usr/share/terminfo/p/pcansi33m
+#usr/share/terminfo/p/pcansi43
+#usr/share/terminfo/p/pccons
+#usr/share/terminfo/p/pcconsole
+#usr/share/terminfo/p/pcix
+#usr/share/terminfo/p/pckermit
+#usr/share/terminfo/p/pckermit12
+#usr/share/terminfo/p/pckermit120
+#usr/share/terminfo/p/pcmw
+#usr/share/terminfo/p/pcplot
+#usr/share/terminfo/p/pcvt25
+#usr/share/terminfo/p/pcvt25-color
+#usr/share/terminfo/p/pcvt25w
+#usr/share/terminfo/p/pcvt28
+#usr/share/terminfo/p/pcvt28w
+#usr/share/terminfo/p/pcvt35
+#usr/share/terminfo/p/pcvt35w
+#usr/share/terminfo/p/pcvt40
+#usr/share/terminfo/p/pcvt40w
+#usr/share/terminfo/p/pcvt43
+#usr/share/terminfo/p/pcvt43w
+#usr/share/terminfo/p/pcvt50
+#usr/share/terminfo/p/pcvt50w
+#usr/share/terminfo/p/pcvtXX
+#usr/share/terminfo/p/pcz19
+#usr/share/terminfo/p/pe1100
+#usr/share/terminfo/p/pe1200
+#usr/share/terminfo/p/pe1251
+#usr/share/terminfo/p/pe550
+#usr/share/terminfo/p/pe6100
+#usr/share/terminfo/p/pe6300
+#usr/share/terminfo/p/pe6312
+#usr/share/terminfo/p/pe7000c
+#usr/share/terminfo/p/pe7000m
+#usr/share/terminfo/p/pilot
+#usr/share/terminfo/p/pmcons
+#usr/share/terminfo/p/pmconsole
+#usr/share/terminfo/p/printer
+#usr/share/terminfo/p/prism12
+#usr/share/terminfo/p/prism12-m
+#usr/share/terminfo/p/prism12-m-w
+#usr/share/terminfo/p/prism12-w
+#usr/share/terminfo/p/prism14
+#usr/share/terminfo/p/prism14-m
+#usr/share/terminfo/p/prism14-m-w
+#usr/share/terminfo/p/prism14-w
+#usr/share/terminfo/p/prism2
+#usr/share/terminfo/p/prism4
+#usr/share/terminfo/p/prism5
+#usr/share/terminfo/p/prism7
+#usr/share/terminfo/p/prism8
+#usr/share/terminfo/p/prism8-w
+#usr/share/terminfo/p/prism8gl
+#usr/share/terminfo/p/prism9
+#usr/share/terminfo/p/prism9-8
+#usr/share/terminfo/p/prism9-8-w
+#usr/share/terminfo/p/prism9-w
+#usr/share/terminfo/p/pro350
+#usr/share/terminfo/p/ps300
+#usr/share/terminfo/p/psterm
+#usr/share/terminfo/p/psterm-80x24
+#usr/share/terminfo/p/psterm-90x28
+#usr/share/terminfo/p/psterm-96x48
+#usr/share/terminfo/p/psterm-basic
+#usr/share/terminfo/p/psterm-fast
+#usr/share/terminfo/p/psx_ansi
+#usr/share/terminfo/p/pt100
+#usr/share/terminfo/p/pt100w
+#usr/share/terminfo/p/pt200
+#usr/share/terminfo/p/pt200w
+#usr/share/terminfo/p/pt210
+#usr/share/terminfo/p/pt250
+#usr/share/terminfo/p/pt250w
+#usr/share/terminfo/p/pt505
+#usr/share/terminfo/p/pt505-22
+#usr/share/terminfo/p/pt505-24
+#usr/share/terminfo/p/pty
+#usr/share/terminfo/p/putty
+#usr/share/terminfo/q
+#usr/share/terminfo/q/qansi
+#usr/share/terminfo/q/qansi-g
+#usr/share/terminfo/q/qansi-m
+#usr/share/terminfo/q/qansi-t
+#usr/share/terminfo/q/qansi-w
+#usr/share/terminfo/q/qdcons
+#usr/share/terminfo/q/qdss
+#usr/share/terminfo/q/qnx
+#usr/share/terminfo/q/qnx4
+#usr/share/terminfo/q/qnxm
+#usr/share/terminfo/q/qnxt
+#usr/share/terminfo/q/qnxt2
+#usr/share/terminfo/q/qnxt4
+#usr/share/terminfo/q/qnxtmono
+#usr/share/terminfo/q/qnxw
+#usr/share/terminfo/q/qume
+#usr/share/terminfo/q/qume5
+#usr/share/terminfo/q/qvt101
+#usr/share/terminfo/q/qvt101+
+#usr/share/terminfo/q/qvt101p
+#usr/share/terminfo/q/qvt102
+#usr/share/terminfo/q/qvt103
+#usr/share/terminfo/q/qvt103-w
+#usr/share/terminfo/q/qvt108
+#usr/share/terminfo/q/qvt119
+#usr/share/terminfo/q/qvt119+
+#usr/share/terminfo/q/qvt119+-25
+#usr/share/terminfo/q/qvt119+-25-w
+#usr/share/terminfo/q/qvt119+-w
+#usr/share/terminfo/q/qvt119-25-w
+#usr/share/terminfo/q/qvt119-w
+#usr/share/terminfo/q/qvt119p
+#usr/share/terminfo/q/qvt119p-25
+#usr/share/terminfo/q/qvt119p-25-w
+#usr/share/terminfo/q/qvt119p-w
+#usr/share/terminfo/q/qvt203
+#usr/share/terminfo/q/qvt203+
+#usr/share/terminfo/q/qvt203-25
+#usr/share/terminfo/q/qvt203-25-w
+#usr/share/terminfo/q/qvt203-w
+#usr/share/terminfo/q/qvt203-w-am
+#usr/share/terminfo/r
+#usr/share/terminfo/r/rbcomm
+#usr/share/terminfo/r/rbcomm-nam
+#usr/share/terminfo/r/rbcomm-w
+#usr/share/terminfo/r/rca
+#usr/share/terminfo/r/rcons
+#usr/share/terminfo/r/rcons-color
+#usr/share/terminfo/r/rebus3180
+#usr/share/terminfo/r/regent
+#usr/share/terminfo/r/regent100
+#usr/share/terminfo/r/regent20
+#usr/share/terminfo/r/regent200
+#usr/share/terminfo/r/regent25
+#usr/share/terminfo/r/regent40
+#usr/share/terminfo/r/regent40+
+#usr/share/terminfo/r/regent60
+#usr/share/terminfo/r/rt6221
+#usr/share/terminfo/r/rt6221-w
+#usr/share/terminfo/r/rtpc
+#usr/share/terminfo/r/rxvt
+#usr/share/terminfo/r/rxvt-16color
+#usr/share/terminfo/r/rxvt-basic
+#usr/share/terminfo/s
+#usr/share/terminfo/s/s4
+#usr/share/terminfo/s/sb1
+#usr/share/terminfo/s/sb2
+#usr/share/terminfo/s/sb3
+#usr/share/terminfo/s/sbi
+#usr/share/terminfo/s/sbobcat
+#usr/share/terminfo/s/sc410
+#usr/share/terminfo/s/sc415
+#usr/share/terminfo/s/scanset
+#usr/share/terminfo/s/scoansi
+#usr/share/terminfo/s/scoansi-new
+#usr/share/terminfo/s/scoansi-old
+#usr/share/terminfo/s/screen
+#usr/share/terminfo/s/screen-w
+#usr/share/terminfo/s/screen.teraterm
+#usr/share/terminfo/s/screen.xterm-r6
+#usr/share/terminfo/s/screen.xterm-xfree86
+#usr/share/terminfo/s/screen2
+#usr/share/terminfo/s/screen3
+#usr/share/terminfo/s/screwpoint
+#usr/share/terminfo/s/scrhp
+#usr/share/terminfo/s/sibo
+#usr/share/terminfo/s/simterm
+#usr/share/terminfo/s/soroc
+#usr/share/terminfo/s/soroc120
+#usr/share/terminfo/s/soroc140
+#usr/share/terminfo/s/spinwriter
+#usr/share/terminfo/s/st52
+#usr/share/terminfo/s/sun
+#usr/share/terminfo/s/sun-1
+#usr/share/terminfo/s/sun-12
+#usr/share/terminfo/s/sun-17
+#usr/share/terminfo/s/sun-24
+#usr/share/terminfo/s/sun-34
+#usr/share/terminfo/s/sun-48
+#usr/share/terminfo/s/sun-c
+#usr/share/terminfo/s/sun-cgsix
+#usr/share/terminfo/s/sun-cmd
+#usr/share/terminfo/s/sun-e
+#usr/share/terminfo/s/sun-e-s
+#usr/share/terminfo/s/sun-il
+#usr/share/terminfo/s/sun-nic
+#usr/share/terminfo/s/sun-s
+#usr/share/terminfo/s/sun-s-e
+#usr/share/terminfo/s/sun-ss5
+#usr/share/terminfo/s/sun1
+#usr/share/terminfo/s/sun2
+#usr/share/terminfo/s/sune
+#usr/share/terminfo/s/superbee
+#usr/share/terminfo/s/superbee-xsb
+#usr/share/terminfo/s/superbeeic
+#usr/share/terminfo/s/superbrain
+#usr/share/terminfo/s/sv80
+#usr/share/terminfo/s/swtp
+#usr/share/terminfo/s/synertek
+#usr/share/terminfo/s/synertek380
+#usr/share/terminfo/s/system1
+#usr/share/terminfo/t
+#usr/share/terminfo/t/t10
+#usr/share/terminfo/t/t1061
+#usr/share/terminfo/t/t1061f
+#usr/share/terminfo/t/t16
+#usr/share/terminfo/t/t3700
+#usr/share/terminfo/t/t3800
+#usr/share/terminfo/t/t653x
+#usr/share/terminfo/t/tab
+#usr/share/terminfo/t/tab132
+#usr/share/terminfo/t/tab132-15
+#usr/share/terminfo/t/tab132-rv
+#usr/share/terminfo/t/tab132-w
+#usr/share/terminfo/t/tab132-w-rv
+#usr/share/terminfo/t/tandem6510
+#usr/share/terminfo/t/tandem653
+#usr/share/terminfo/t/tek
+#usr/share/terminfo/t/tek4012
+#usr/share/terminfo/t/tek4013
+#usr/share/terminfo/t/tek4014
+#usr/share/terminfo/t/tek4014-sm
+#usr/share/terminfo/t/tek4015
+#usr/share/terminfo/t/tek4015-sm
+#usr/share/terminfo/t/tek4023
+#usr/share/terminfo/t/tek4024
+#usr/share/terminfo/t/tek4025
+#usr/share/terminfo/t/tek4025-17
+#usr/share/terminfo/t/tek4025-17-ws
+#usr/share/terminfo/t/tek4025-cr
+#usr/share/terminfo/t/tek4025-ex
+#usr/share/terminfo/t/tek4025a
+#usr/share/terminfo/t/tek4025ex
+#usr/share/terminfo/t/tek4027
+#usr/share/terminfo/t/tek4027-ex
+#usr/share/terminfo/t/tek4105
+#usr/share/terminfo/t/tek4105-30
+#usr/share/terminfo/t/tek4105a
+#usr/share/terminfo/t/tek4106brl
+#usr/share/terminfo/t/tek4107
+#usr/share/terminfo/t/tek4107brl
+#usr/share/terminfo/t/tek4109
+#usr/share/terminfo/t/tek4109brl
+#usr/share/terminfo/t/tek4112
+#usr/share/terminfo/t/tek4112-5
+#usr/share/terminfo/t/tek4112-nd
+#usr/share/terminfo/t/tek4113
+#usr/share/terminfo/t/tek4113-34
+#usr/share/terminfo/t/tek4113-nd
+#usr/share/terminfo/t/tek4114
+#usr/share/terminfo/t/tek4115
+#usr/share/terminfo/t/tek4125
+#usr/share/terminfo/t/tek4205
+#usr/share/terminfo/t/tek4207
+#usr/share/terminfo/t/tek4207-s
+#usr/share/terminfo/t/tek4404
+#usr/share/terminfo/t/teleray
+#usr/share/terminfo/t/teletec
+#usr/share/terminfo/t/teraterm
+#usr/share/terminfo/t/terminet
+#usr/share/terminfo/t/terminet1200
+#usr/share/terminfo/t/terminet300
+#usr/share/terminfo/t/tgtelnet
+#usr/share/terminfo/t/ti700
+#usr/share/terminfo/t/ti733
+#usr/share/terminfo/t/ti735
+#usr/share/terminfo/t/ti745
+#usr/share/terminfo/t/ti800
+#usr/share/terminfo/t/ti916
+#usr/share/terminfo/t/ti916-132
+#usr/share/terminfo/t/ti916-220-7
+#usr/share/terminfo/t/ti916-220-8
+#usr/share/terminfo/t/ti916-8
+#usr/share/terminfo/t/ti916-8-132
+#usr/share/terminfo/t/ti924
+#usr/share/terminfo/t/ti924-8
+#usr/share/terminfo/t/ti924-8w
+#usr/share/terminfo/t/ti924w
+#usr/share/terminfo/t/ti926
+#usr/share/terminfo/t/ti926-8
+#usr/share/terminfo/t/ti928
+#usr/share/terminfo/t/ti928-8
+#usr/share/terminfo/t/ti931
+#usr/share/terminfo/t/ti_ansi
+#usr/share/terminfo/t/tn1200
+#usr/share/terminfo/t/tn300
+#usr/share/terminfo/t/trs16
+#usr/share/terminfo/t/trs2
+#usr/share/terminfo/t/trs80II
+#usr/share/terminfo/t/trsII
+#usr/share/terminfo/t/ts-1
+#usr/share/terminfo/t/ts-1p
+#usr/share/terminfo/t/ts1
+#usr/share/terminfo/t/ts100
+#usr/share/terminfo/t/ts100-ctxt
+#usr/share/terminfo/t/ts100-sp
+#usr/share/terminfo/t/ts1p
+#usr/share/terminfo/t/tt505-22
+#usr/share/terminfo/t/tty33
+#usr/share/terminfo/t/tty35
+#usr/share/terminfo/t/tty37
+#usr/share/terminfo/t/tty40
+#usr/share/terminfo/t/tty43
+#usr/share/terminfo/t/tty4420
+#usr/share/terminfo/t/tty4424
+#usr/share/terminfo/t/tty4424-1
+#usr/share/terminfo/t/tty4424m
+#usr/share/terminfo/t/tty4426
+#usr/share/terminfo/t/tty5410
+#usr/share/terminfo/t/tty5410-w
+#usr/share/terminfo/t/tty5410v1
+#usr/share/terminfo/t/tty5410v1-w
+#usr/share/terminfo/t/tty5420
+#usr/share/terminfo/t/tty5420+nl
+#usr/share/terminfo/t/tty5420-nl
+#usr/share/terminfo/t/tty5420-rv
+#usr/share/terminfo/t/tty5420-rv-nl
+#usr/share/terminfo/t/tty5420-w
+#usr/share/terminfo/t/tty5420-w-nl
+#usr/share/terminfo/t/tty5420-w-rv
+#usr/share/terminfo/t/tty5420-w-rv-n
+#usr/share/terminfo/t/tty5425
+#usr/share/terminfo/t/tty5425-nl
+#usr/share/terminfo/t/tty5425-w
+#usr/share/terminfo/t/tty5620
+#usr/share/terminfo/t/tty5620-1
+#usr/share/terminfo/t/tty5620-24
+#usr/share/terminfo/t/tty5620-34
+#usr/share/terminfo/t/tty5620-s
+#usr/share/terminfo/t/ttydmd
+#usr/share/terminfo/t/tvi-2p
+#usr/share/terminfo/t/tvi803
+#usr/share/terminfo/t/tvi9065
+#usr/share/terminfo/t/tvi910
+#usr/share/terminfo/t/tvi910+
+#usr/share/terminfo/t/tvi912
+#usr/share/terminfo/t/tvi912-2p
+#usr/share/terminfo/t/tvi912b
+#usr/share/terminfo/t/tvi912c
+#usr/share/terminfo/t/tvi912cc
+#usr/share/terminfo/t/tvi914
+#usr/share/terminfo/t/tvi920
+#usr/share/terminfo/t/tvi920-2p
+#usr/share/terminfo/t/tvi920b
+#usr/share/terminfo/t/tvi920c
+#usr/share/terminfo/t/tvi921
+#usr/share/terminfo/t/tvi924
+#usr/share/terminfo/t/tvi925
+#usr/share/terminfo/t/tvi925-hi
+#usr/share/terminfo/t/tvi92B
+#usr/share/terminfo/t/tvi92D
+#usr/share/terminfo/t/tvi950
+#usr/share/terminfo/t/tvi950-2p
+#usr/share/terminfo/t/tvi950-4p
+#usr/share/terminfo/t/tvi950-rv
+#usr/share/terminfo/t/tvi950-rv-2p
+#usr/share/terminfo/t/tvi950-rv-4p
+#usr/share/terminfo/t/tvi955
+#usr/share/terminfo/t/tvi955-hb
+#usr/share/terminfo/t/tvi955-w
+#usr/share/terminfo/t/tvi970
+#usr/share/terminfo/t/tvi970-2p
+#usr/share/terminfo/t/tvi970-vb
+#usr/share/terminfo/t/tvipt
+#usr/share/terminfo/t/tws-generic
+#usr/share/terminfo/t/tws2102-sna
+#usr/share/terminfo/t/tws2103
+#usr/share/terminfo/t/tws2103-sna
+#usr/share/terminfo/u
+#usr/share/terminfo/u/ultima2
+#usr/share/terminfo/u/ultimaII
+#usr/share/terminfo/u/uniterm
+#usr/share/terminfo/u/uniterm49
+#usr/share/terminfo/u/unixpc
+#usr/share/terminfo/u/unknown
+#usr/share/terminfo/u/uts30
+#usr/share/terminfo/v
+#usr/share/terminfo/v/v200-nam
+#usr/share/terminfo/v/v320n
+#usr/share/terminfo/v/v3220
+#usr/share/terminfo/v/v5410
+#usr/share/terminfo/v/vanilla
+#usr/share/terminfo/v/vapple
+#usr/share/terminfo/v/vc103
+#usr/share/terminfo/v/vc203
+#usr/share/terminfo/v/vc303
+#usr/share/terminfo/v/vc303a
+#usr/share/terminfo/v/vc403a
+#usr/share/terminfo/v/vc404
+#usr/share/terminfo/v/vc404-s
+#usr/share/terminfo/v/vc414
+#usr/share/terminfo/v/vc414h
+#usr/share/terminfo/v/vc415
+#usr/share/terminfo/v/venix
+#usr/share/terminfo/v/versaterm
+#usr/share/terminfo/v/vi200
+#usr/share/terminfo/v/vi200-f
+#usr/share/terminfo/v/vi200-rv
+#usr/share/terminfo/v/vi300
+#usr/share/terminfo/v/vi300-old
+#usr/share/terminfo/v/vi50
+#usr/share/terminfo/v/vi500
+#usr/share/terminfo/v/vi50adm
+#usr/share/terminfo/v/vi55
+#usr/share/terminfo/v/vi550
+#usr/share/terminfo/v/vi603
+#usr/share/terminfo/v/viewpoint
+#usr/share/terminfo/v/viewpoint3a+
+#usr/share/terminfo/v/viewpoint60
+#usr/share/terminfo/v/viewpoint90
+#usr/share/terminfo/v/vip
+#usr/share/terminfo/v/vip-H
+#usr/share/terminfo/v/vip-Hw
+#usr/share/terminfo/v/vip-w
+#usr/share/terminfo/v/vip7800-H
+#usr/share/terminfo/v/vip7800-Hw
+#usr/share/terminfo/v/vip7800-w
+#usr/share/terminfo/v/visa50
+#usr/share/terminfo/v/visual603
+#usr/share/terminfo/v/vitty
+#usr/share/terminfo/v/vk100
+#usr/share/terminfo/v/vp3a+
+#usr/share/terminfo/v/vp60
+#usr/share/terminfo/v/vp90
+#usr/share/terminfo/v/vremote
+#usr/share/terminfo/v/vs100
+#usr/share/terminfo/v/vs100-x10
+#usr/share/terminfo/v/vsc
+#usr/share/terminfo/v/vt-61
+usr/share/terminfo/v/vt100
+usr/share/terminfo/v/vt100-am
+usr/share/terminfo/v/vt100-bm
+usr/share/terminfo/v/vt100-bm-o
+usr/share/terminfo/v/vt100-bot-s
+usr/share/terminfo/v/vt100-nam
+usr/share/terminfo/v/vt100-nam-w
+usr/share/terminfo/v/vt100-nav
+usr/share/terminfo/v/vt100-nav-w
+usr/share/terminfo/v/vt100-s
+usr/share/terminfo/v/vt100-s-bot
+usr/share/terminfo/v/vt100-s-top
+usr/share/terminfo/v/vt100-top-s
+usr/share/terminfo/v/vt100-vb
+usr/share/terminfo/v/vt100-w
+usr/share/terminfo/v/vt100-w-am
+usr/share/terminfo/v/vt100-w-nam
+usr/share/terminfo/v/vt100-w-nav
+usr/share/terminfo/v/vt100nam
+usr/share/terminfo/v/vt102
+usr/share/terminfo/v/vt102-nsgr
+usr/share/terminfo/v/vt102-w
+#usr/share/terminfo/v/vt125
+#usr/share/terminfo/v/vt131
+#usr/share/terminfo/v/vt132
+usr/share/terminfo/v/vt200
+usr/share/terminfo/v/vt200-8
+usr/share/terminfo/v/vt200-8bit
+usr/share/terminfo/v/vt200-js
+usr/share/terminfo/v/vt200-old
+usr/share/terminfo/v/vt200-w
+usr/share/terminfo/v/vt220
+usr/share/terminfo/v/vt220-8
+usr/share/terminfo/v/vt220-8bit
+usr/share/terminfo/v/vt220-js
+usr/share/terminfo/v/vt220-nam
+#usr/share/terminfo/v/vt220-old
+usr/share/terminfo/v/vt220-w
+usr/share/terminfo/v/vt220d
+#usr/share/terminfo/v/vt300
+#usr/share/terminfo/v/vt300-nam
+#usr/share/terminfo/v/vt300-w
+#usr/share/terminfo/v/vt300-w-nam
+#usr/share/terminfo/v/vt320
+#usr/share/terminfo/v/vt320-k3
+#usr/share/terminfo/v/vt320-k311
+#usr/share/terminfo/v/vt320-nam
+#usr/share/terminfo/v/vt320-w
+#usr/share/terminfo/v/vt320-w-nam
+#usr/share/terminfo/v/vt320nam
+#usr/share/terminfo/v/vt330
+#usr/share/terminfo/v/vt340
+#usr/share/terminfo/v/vt400
+#usr/share/terminfo/v/vt400-24
+#usr/share/terminfo/v/vt420
+#usr/share/terminfo/v/vt420f
+#usr/share/terminfo/v/vt420pc
+#usr/share/terminfo/v/vt420pcdos
+#usr/share/terminfo/v/vt50
+#usr/share/terminfo/v/vt50h
+#usr/share/terminfo/v/vt510
+#usr/share/terminfo/v/vt510pc
+#usr/share/terminfo/v/vt510pcdos
+#usr/share/terminfo/v/vt52
+#usr/share/terminfo/v/vt520
+#usr/share/terminfo/v/vt525
+#usr/share/terminfo/v/vt61
+#usr/share/terminfo/v/vt61.5
+#usr/share/terminfo/v/vv100
+#usr/share/terminfo/w
+#usr/share/terminfo/w/wren
+#usr/share/terminfo/w/wrenw
+#usr/share/terminfo/w/wsiris
+#usr/share/terminfo/w/wsvt25
+#usr/share/terminfo/w/wsvt25m
+#usr/share/terminfo/w/wy-75ap
+#usr/share/terminfo/w/wy-99fgt
+#usr/share/terminfo/w/wy-99fgta
+#usr/share/terminfo/w/wy100
+#usr/share/terminfo/w/wy100q
+#usr/share/terminfo/w/wy120
+#usr/share/terminfo/w/wy120-25
+#usr/share/terminfo/w/wy120-25-w
+#usr/share/terminfo/w/wy120-vb
+#usr/share/terminfo/w/wy120-w
+#usr/share/terminfo/w/wy120-w-vb
+#usr/share/terminfo/w/wy120-wvb
+#usr/share/terminfo/w/wy150
+#usr/share/terminfo/w/wy150-25
+#usr/share/terminfo/w/wy150-25-w
+#usr/share/terminfo/w/wy150-vb
+#usr/share/terminfo/w/wy150-w
+#usr/share/terminfo/w/wy150-w-vb
+#usr/share/terminfo/w/wy160
+#usr/share/terminfo/w/wy160-25
+#usr/share/terminfo/w/wy160-25-w
+#usr/share/terminfo/w/wy160-42
+#usr/share/terminfo/w/wy160-42-w
+#usr/share/terminfo/w/wy160-43
+#usr/share/terminfo/w/wy160-43-w
+#usr/share/terminfo/w/wy160-tek
+#usr/share/terminfo/w/wy160-vb
+#usr/share/terminfo/w/wy160-w
+#usr/share/terminfo/w/wy160-w-vb
+#usr/share/terminfo/w/wy160-wvb
+#usr/share/terminfo/w/wy185
+#usr/share/terminfo/w/wy185-24
+#usr/share/terminfo/w/wy185-vb
+#usr/share/terminfo/w/wy185-w
+#usr/share/terminfo/w/wy185-wvb
+#usr/share/terminfo/w/wy30
+#usr/share/terminfo/w/wy30-mc
+#usr/share/terminfo/w/wy30-vb
+#usr/share/terminfo/w/wy325
+#usr/share/terminfo/w/wy325-25
+#usr/share/terminfo/w/wy325-25w
+#usr/share/terminfo/w/wy325-42
+#usr/share/terminfo/w/wy325-42w
+#usr/share/terminfo/w/wy325-42w-vb
+#usr/share/terminfo/w/wy325-42wvb
+#usr/share/terminfo/w/wy325-43
+#usr/share/terminfo/w/wy325-43w
+#usr/share/terminfo/w/wy325-43w-vb
+#usr/share/terminfo/w/wy325-43wvb
+#usr/share/terminfo/w/wy325-80
+#usr/share/terminfo/w/wy325-vb
+#usr/share/terminfo/w/wy325-w
+#usr/share/terminfo/w/wy325-w-vb
+#usr/share/terminfo/w/wy325-wvb
+#usr/share/terminfo/w/wy325w-24
+#usr/share/terminfo/w/wy350
+#usr/share/terminfo/w/wy350-vb
+#usr/share/terminfo/w/wy350-w
+#usr/share/terminfo/w/wy350-wvb
+#usr/share/terminfo/w/wy370
+#usr/share/terminfo/w/wy370-101k
+#usr/share/terminfo/w/wy370-105k
+#usr/share/terminfo/w/wy370-EPC
+#usr/share/terminfo/w/wy370-nk
+#usr/share/terminfo/w/wy370-rv
+#usr/share/terminfo/w/wy370-tek
+#usr/share/terminfo/w/wy370-vb
+#usr/share/terminfo/w/wy370-w
+#usr/share/terminfo/w/wy370-wvb
+#usr/share/terminfo/w/wy50
+#usr/share/terminfo/w/wy50-mc
+#usr/share/terminfo/w/wy50-vb
+#usr/share/terminfo/w/wy50-w
+#usr/share/terminfo/w/wy50-wvb
+#usr/share/terminfo/w/wy520
+#usr/share/terminfo/w/wy520-24
+#usr/share/terminfo/w/wy520-36
+#usr/share/terminfo/w/wy520-36pc
+#usr/share/terminfo/w/wy520-36w
+#usr/share/terminfo/w/wy520-36wpc
+#usr/share/terminfo/w/wy520-48
+#usr/share/terminfo/w/wy520-48pc
+#usr/share/terminfo/w/wy520-48w
+#usr/share/terminfo/w/wy520-48wpc
+#usr/share/terminfo/w/wy520-epc
+#usr/share/terminfo/w/wy520-epc-24
+#usr/share/terminfo/w/wy520-epc-vb
+#usr/share/terminfo/w/wy520-epc-w
+#usr/share/terminfo/w/wy520-epc-wvb
+#usr/share/terminfo/w/wy520-vb
+#usr/share/terminfo/w/wy520-w
+#usr/share/terminfo/w/wy520-wvb
+#usr/share/terminfo/w/wy60
+#usr/share/terminfo/w/wy60-25
+#usr/share/terminfo/w/wy60-25-w
+#usr/share/terminfo/w/wy60-316X
+#usr/share/terminfo/w/wy60-42
+#usr/share/terminfo/w/wy60-42-w
+#usr/share/terminfo/w/wy60-43
+#usr/share/terminfo/w/wy60-43-w
+#usr/share/terminfo/w/wy60-AT
+#usr/share/terminfo/w/wy60-PC
+#usr/share/terminfo/w/wy60-vb
+#usr/share/terminfo/w/wy60-w
+#usr/share/terminfo/w/wy60-w-vb
+#usr/share/terminfo/w/wy60-wvb
+#usr/share/terminfo/w/wy75
+#usr/share/terminfo/w/wy75-mc
+#usr/share/terminfo/w/wy75-vb
+#usr/share/terminfo/w/wy75-w
+#usr/share/terminfo/w/wy75-wvb
+#usr/share/terminfo/w/wy75ap
+#usr/share/terminfo/w/wy85
+#usr/share/terminfo/w/wy85-8bit
+#usr/share/terminfo/w/wy85-vb
+#usr/share/terminfo/w/wy85-w
+#usr/share/terminfo/w/wy85-wvb
+#usr/share/terminfo/w/wy99-ansi
+#usr/share/terminfo/w/wy99a-ansi
+#usr/share/terminfo/w/wy99f
+#usr/share/terminfo/w/wy99fa
+#usr/share/terminfo/w/wy99fgt
+#usr/share/terminfo/w/wy99fgta
+#usr/share/terminfo/w/wy99gt
+#usr/share/terminfo/w/wy99gt-25
+#usr/share/terminfo/w/wy99gt-25-w
+#usr/share/terminfo/w/wy99gt-tek
+#usr/share/terminfo/w/wy99gt-vb
+#usr/share/terminfo/w/wy99gt-w
+#usr/share/terminfo/w/wy99gt-w-vb
+#usr/share/terminfo/w/wy99gt-wvb
+#usr/share/terminfo/w/wyse-325
+#usr/share/terminfo/w/wyse-75ap
+#usr/share/terminfo/w/wyse-vp
+#usr/share/terminfo/w/wyse120
+#usr/share/terminfo/w/wyse120-25
+#usr/share/terminfo/w/wyse120-25-w
+#usr/share/terminfo/w/wyse120-vb
+#usr/share/terminfo/w/wyse120-w
+#usr/share/terminfo/w/wyse120-wvb
+#usr/share/terminfo/w/wyse150
+#usr/share/terminfo/w/wyse150-25
+#usr/share/terminfo/w/wyse150-25-w
+#usr/share/terminfo/w/wyse150-vb
+#usr/share/terminfo/w/wyse150-w
+#usr/share/terminfo/w/wyse150-w-vb
+#usr/share/terminfo/w/wyse160
+#usr/share/terminfo/w/wyse160-25
+#usr/share/terminfo/w/wyse160-25-w
+#usr/share/terminfo/w/wyse160-42
+#usr/share/terminfo/w/wyse160-42-w
+#usr/share/terminfo/w/wyse160-43
+#usr/share/terminfo/w/wyse160-43-w
+#usr/share/terminfo/w/wyse160-vb
+#usr/share/terminfo/w/wyse160-w
+#usr/share/terminfo/w/wyse160-wvb
+#usr/share/terminfo/w/wyse185
+#usr/share/terminfo/w/wyse185-24
+#usr/share/terminfo/w/wyse185-vb
+#usr/share/terminfo/w/wyse185-w
+#usr/share/terminfo/w/wyse185-wvb
+#usr/share/terminfo/w/wyse30
+#usr/share/terminfo/w/wyse30-mc
+#usr/share/terminfo/w/wyse30-vb
+#usr/share/terminfo/w/wyse325
+#usr/share/terminfo/w/wyse325-25
+#usr/share/terminfo/w/wyse325-25w
+#usr/share/terminfo/w/wyse325-42
+#usr/share/terminfo/w/wyse325-42w
+#usr/share/terminfo/w/wyse325-43
+#usr/share/terminfo/w/wyse325-43w
+#usr/share/terminfo/w/wyse325-vb
+#usr/share/terminfo/w/wyse325-w
+#usr/share/terminfo/w/wyse325-wvb
+#usr/share/terminfo/w/wyse350
+#usr/share/terminfo/w/wyse350-vb
+#usr/share/terminfo/w/wyse350-w
+#usr/share/terminfo/w/wyse350-wvb
+#usr/share/terminfo/w/wyse370
+#usr/share/terminfo/w/wyse50
+#usr/share/terminfo/w/wyse50-mc
+#usr/share/terminfo/w/wyse50-vb
+#usr/share/terminfo/w/wyse50-w
+#usr/share/terminfo/w/wyse50-wvb
+#usr/share/terminfo/w/wyse520
+#usr/share/terminfo/w/wyse520-24
+#usr/share/terminfo/w/wyse520-36
+#usr/share/terminfo/w/wyse520-36pc
+#usr/share/terminfo/w/wyse520-36w
+#usr/share/terminfo/w/wyse520-36wpc
+#usr/share/terminfo/w/wyse520-48
+#usr/share/terminfo/w/wyse520-48pc
+#usr/share/terminfo/w/wyse520-48w
+#usr/share/terminfo/w/wyse520-48wpc
+#usr/share/terminfo/w/wyse520-epc
+#usr/share/terminfo/w/wyse520-epc-w
+#usr/share/terminfo/w/wyse520-p-wvb
+#usr/share/terminfo/w/wyse520-pc-24
+#usr/share/terminfo/w/wyse520-pc-vb
+#usr/share/terminfo/w/wyse520-vb
+#usr/share/terminfo/w/wyse520-w
+#usr/share/terminfo/w/wyse520-wvb
+#usr/share/terminfo/w/wyse60
+#usr/share/terminfo/w/wyse60-25
+#usr/share/terminfo/w/wyse60-25-w
+#usr/share/terminfo/w/wyse60-316X
+#usr/share/terminfo/w/wyse60-42
+#usr/share/terminfo/w/wyse60-42-w
+#usr/share/terminfo/w/wyse60-43
+#usr/share/terminfo/w/wyse60-43-w
+#usr/share/terminfo/w/wyse60-AT
+#usr/share/terminfo/w/wyse60-PC
+#usr/share/terminfo/w/wyse60-vb
+#usr/share/terminfo/w/wyse60-w
+#usr/share/terminfo/w/wyse60-wvb
+#usr/share/terminfo/w/wyse75
+#usr/share/terminfo/w/wyse75-mc
+#usr/share/terminfo/w/wyse75-vb
+#usr/share/terminfo/w/wyse75-w
+#usr/share/terminfo/w/wyse75-wvb
+#usr/share/terminfo/w/wyse75ap
+#usr/share/terminfo/w/wyse85
+#usr/share/terminfo/w/wyse85-8bit
+#usr/share/terminfo/w/wyse85-vb
+#usr/share/terminfo/w/wyse85-w
+#usr/share/terminfo/w/wyse85-wvb
+#usr/share/terminfo/w/wyse99gt
+#usr/share/terminfo/w/wyse99gt-25
+#usr/share/terminfo/w/wyse99gt-25-w
+#usr/share/terminfo/w/wyse99gt-vb
+#usr/share/terminfo/w/wyse99gt-w
+#usr/share/terminfo/w/wyse99gt-wvb
+#usr/share/terminfo/x
+#usr/share/terminfo/x/x10term
+#usr/share/terminfo/x/x1700
+#usr/share/terminfo/x/x1700-lm
+#usr/share/terminfo/x/x1720
+#usr/share/terminfo/x/x1750
+#usr/share/terminfo/x/x68k
+#usr/share/terminfo/x/x68k-ite
+#usr/share/terminfo/x/x820
+#usr/share/terminfo/x/xdku
+#usr/share/terminfo/x/xenix
+#usr/share/terminfo/x/xerox
+#usr/share/terminfo/x/xerox-lm
+#usr/share/terminfo/x/xerox1720
+#usr/share/terminfo/x/xerox820
+#usr/share/terminfo/x/xl83
+#usr/share/terminfo/x/xnuppc
+#usr/share/terminfo/x/xnuppc+100x37
+#usr/share/terminfo/x/xnuppc+112x37
+#usr/share/terminfo/x/xnuppc+128x40
+#usr/share/terminfo/x/xnuppc+128x48
+#usr/share/terminfo/x/xnuppc+144x48
+#usr/share/terminfo/x/xnuppc+160x64
+#usr/share/terminfo/x/xnuppc+200x64
+#usr/share/terminfo/x/xnuppc+200x75
+#usr/share/terminfo/x/xnuppc+256x96
+#usr/share/terminfo/x/xnuppc+80x25
+#usr/share/terminfo/x/xnuppc+80x30
+#usr/share/terminfo/x/xnuppc+90x30
+#usr/share/terminfo/x/xnuppc+b
+#usr/share/terminfo/x/xnuppc+basic
+#usr/share/terminfo/x/xnuppc+c
+#usr/share/terminfo/x/xnuppc+f
+#usr/share/terminfo/x/xnuppc+f2
+#usr/share/terminfo/x/xnuppc-100x37
+#usr/share/terminfo/x/xnuppc-100x37-m
+#usr/share/terminfo/x/xnuppc-112x37
+#usr/share/terminfo/x/xnuppc-112x37-m
+#usr/share/terminfo/x/xnuppc-128x40
+#usr/share/terminfo/x/xnuppc-128x40-m
+#usr/share/terminfo/x/xnuppc-128x48
+#usr/share/terminfo/x/xnuppc-128x48-m
+#usr/share/terminfo/x/xnuppc-144x48
+#usr/share/terminfo/x/xnuppc-144x48-m
+#usr/share/terminfo/x/xnuppc-160x64
+#usr/share/terminfo/x/xnuppc-160x64-m
+#usr/share/terminfo/x/xnuppc-200x64
+#usr/share/terminfo/x/xnuppc-200x64-m
+#usr/share/terminfo/x/xnuppc-200x75
+#usr/share/terminfo/x/xnuppc-200x75-m
+#usr/share/terminfo/x/xnuppc-256x96
+#usr/share/terminfo/x/xnuppc-256x96-m
+#usr/share/terminfo/x/xnuppc-80x25
+#usr/share/terminfo/x/xnuppc-80x25-m
+#usr/share/terminfo/x/xnuppc-80x30
+#usr/share/terminfo/x/xnuppc-80x30-m
+#usr/share/terminfo/x/xnuppc-90x30
+#usr/share/terminfo/x/xnuppc-90x30-m
+#usr/share/terminfo/x/xnuppc-b
+#usr/share/terminfo/x/xnuppc-f
+#usr/share/terminfo/x/xnuppc-f2
+#usr/share/terminfo/x/xnuppc-m
+#usr/share/terminfo/x/xnuppc-m-b
+#usr/share/terminfo/x/xnuppc-m-f
+#usr/share/terminfo/x/xnuppc-m-f2
+#usr/share/terminfo/x/xtalk
+usr/share/terminfo/x/xterm
+usr/share/terminfo/x/xterm+sl
+usr/share/terminfo/x/xterm+sl-twm
+usr/share/terminfo/x/xterm-16color
+usr/share/terminfo/x/xterm-24
+usr/share/terminfo/x/xterm-256color
+usr/share/terminfo/x/xterm-88color
+usr/share/terminfo/x/xterm-8bit
+usr/share/terminfo/x/xterm-basic
+usr/share/terminfo/x/xterm-bold
+usr/share/terminfo/x/xterm-color
+usr/share/terminfo/x/xterm-hp
+usr/share/terminfo/x/xterm-new
+usr/share/terminfo/x/xterm-nic
+usr/share/terminfo/x/xterm-noapp
+usr/share/terminfo/x/xterm-old
+usr/share/terminfo/x/xterm-pcolor
+usr/share/terminfo/x/xterm-r5
+usr/share/terminfo/x/xterm-r6
+usr/share/terminfo/x/xterm-sco
+usr/share/terminfo/x/xterm-sun
+usr/share/terminfo/x/xterm-vt220
+usr/share/terminfo/x/xterm-vt52
+usr/share/terminfo/x/xterm-xf86-v32
+usr/share/terminfo/x/xterm-xf86-v33
+usr/share/terminfo/x/xterm-xf86-v333
+usr/share/terminfo/x/xterm-xf86-v40
+usr/share/terminfo/x/xterm-xfree86
+usr/share/terminfo/x/xterm-xi
+usr/share/terminfo/x/xterm1
+usr/share/terminfo/x/xtermc
+usr/share/terminfo/x/xtermm
+usr/share/terminfo/x/xterms
+usr/share/terminfo/x/xterms-sun
+#usr/share/terminfo/x/xwsh
+#usr/share/terminfo/z
+#usr/share/terminfo/z/z-100
+#usr/share/terminfo/z/z-100bw
+#usr/share/terminfo/z/z100
+#usr/share/terminfo/z/z100bw
+#usr/share/terminfo/z/z110
+#usr/share/terminfo/z/z110bw
+#usr/share/terminfo/z/z19
+#usr/share/terminfo/z/z29
+#usr/share/terminfo/z/z29a
+#usr/share/terminfo/z/z29a-kc-bc
+#usr/share/terminfo/z/z29a-kc-uc
+#usr/share/terminfo/z/z29a-nkc-bc
+#usr/share/terminfo/z/z29a-nkc-uc
+#usr/share/terminfo/z/z29b
+#usr/share/terminfo/z/z30
+#usr/share/terminfo/z/z340
+#usr/share/terminfo/z/z340-nam
+#usr/share/terminfo/z/z39-a
+#usr/share/terminfo/z/z39a
+#usr/share/terminfo/z/z50
+#usr/share/terminfo/z/z8001
+#usr/share/terminfo/z/zen30
+#usr/share/terminfo/z/zen50
+#usr/share/terminfo/z/zen8001
+#usr/share/terminfo/z/zenith
+#usr/share/terminfo/z/zenith29
+#usr/share/terminfo/z/zenith39-a
+#usr/share/terminfo/z/zenith39-ansi
+#usr/share/terminfo/z/zt-1
+#usr/share/terminfo/z/ztx
+#usr/share/terminfo/z/ztx-1-a
+#usr/share/terminfo/z/ztx11
+##
+## vim-6.3
+##
+#root/.vimrc
+#usr/bin/ex
+#usr/bin/rview
+#usr/bin/rvim
+usr/bin/vi
+#usr/bin/view
+usr/bin/vim
+#usr/bin/vimtutor
+#usr/bin/xxd
+#usr/share/man/man1/evim.1
+#usr/share/man/man1/ex.1
+#usr/share/man/man1/rview.1
+#usr/share/man/man1/rvim.1
+#usr/share/man/man1/view.1
+#usr/share/man/man1/vim.1
+#usr/share/man/man1/vimdiff.1
+#usr/share/man/man1/vimtutor.1
+#usr/share/man/man1/xxd.1
+#usr/share/vim
+#usr/share/vim/vim63
+#usr/share/vim/vim63/bugreport.vim
+#usr/share/vim/vim63/colors
+#usr/share/vim/vim63/colors/README.txt
+#usr/share/vim/vim63/colors/blue.vim
+#usr/share/vim/vim63/colors/darkblue.vim
+#usr/share/vim/vim63/colors/default.vim
+#usr/share/vim/vim63/colors/delek.vim
+#usr/share/vim/vim63/colors/desert.vim
+#usr/share/vim/vim63/colors/elflord.vim
+#usr/share/vim/vim63/colors/evening.vim
+#usr/share/vim/vim63/colors/koehler.vim
+#usr/share/vim/vim63/colors/morning.vim
+#usr/share/vim/vim63/colors/murphy.vim
+#usr/share/vim/vim63/colors/pablo.vim
+#usr/share/vim/vim63/colors/peachpuff.vim
+#usr/share/vim/vim63/colors/ron.vim
+#usr/share/vim/vim63/colors/shine.vim
+#usr/share/vim/vim63/colors/torte.vim
+#usr/share/vim/vim63/colors/zellner.vim
+#usr/share/vim/vim63/compiler
+#usr/share/vim/vim63/compiler/README.txt
+#usr/share/vim/vim63/compiler/ant.vim
+#usr/share/vim/vim63/compiler/bcc.vim
+#usr/share/vim/vim63/compiler/bdf.vim
+#usr/share/vim/vim63/compiler/checkstyle.vim
+#usr/share/vim/vim63/compiler/cs.vim
+#usr/share/vim/vim63/compiler/dot.vim
+#usr/share/vim/vim63/compiler/fortran_F.vim
+#usr/share/vim/vim63/compiler/fortran_cv.vim
+#usr/share/vim/vim63/compiler/fortran_elf90.vim
+#usr/share/vim/vim63/compiler/fortran_g77.vim
+#usr/share/vim/vim63/compiler/fortran_lf95.vim
+#usr/share/vim/vim63/compiler/hp_acc.vim
+#usr/share/vim/vim63/compiler/icc.vim
+#usr/share/vim/vim63/compiler/intel.vim
+#usr/share/vim/vim63/compiler/irix5_c.vim
+#usr/share/vim/vim63/compiler/irix5_cpp.vim
+#usr/share/vim/vim63/compiler/javac.vim
+#usr/share/vim/vim63/compiler/jikes.vim
+#usr/share/vim/vim63/compiler/mips_c.vim
+#usr/share/vim/vim63/compiler/mipspro_c89.vim
+#usr/share/vim/vim63/compiler/mipspro_cpp.vim
+#usr/share/vim/vim63/compiler/modelsim_vcom.vim
+#usr/share/vim/vim63/compiler/msvc.vim
+#usr/share/vim/vim63/compiler/neato.vim
+#usr/share/vim/vim63/compiler/onsgmls.vim
+#usr/share/vim/vim63/compiler/pbx.vim
+#usr/share/vim/vim63/compiler/perl.vim
+#usr/share/vim/vim63/compiler/pyunit.vim
+#usr/share/vim/vim63/compiler/rst.vim
+#usr/share/vim/vim63/compiler/ruby.vim
+#usr/share/vim/vim63/compiler/se.vim
+#usr/share/vim/vim63/compiler/splint.vim
+#usr/share/vim/vim63/compiler/tcl.vim
+#usr/share/vim/vim63/compiler/tex.vim
+#usr/share/vim/vim63/compiler/tidy.vim
+#usr/share/vim/vim63/compiler/xmllint.vim
+#usr/share/vim/vim63/compiler/xmlwf.vim
+#usr/share/vim/vim63/delmenu.vim
+#usr/share/vim/vim63/doc
+#usr/share/vim/vim63/doc/arabic.txt
+#usr/share/vim/vim63/doc/autocmd.txt
+#usr/share/vim/vim63/doc/change.txt
+#usr/share/vim/vim63/doc/cmdline.txt
+#usr/share/vim/vim63/doc/debugger.txt
+#usr/share/vim/vim63/doc/develop.txt
+#usr/share/vim/vim63/doc/diff.txt
+#usr/share/vim/vim63/doc/digraph.txt
+#usr/share/vim/vim63/doc/editing.txt
+#usr/share/vim/vim63/doc/eval.txt
+#usr/share/vim/vim63/doc/farsi.txt
+#usr/share/vim/vim63/doc/filetype.txt
+#usr/share/vim/vim63/doc/fold.txt
+#usr/share/vim/vim63/doc/gui.txt
+#usr/share/vim/vim63/doc/gui_w16.txt
+#usr/share/vim/vim63/doc/gui_w32.txt
+#usr/share/vim/vim63/doc/gui_x11.txt
+#usr/share/vim/vim63/doc/hangulin.txt
+#usr/share/vim/vim63/doc/hebrew.txt
+#usr/share/vim/vim63/doc/help.txt
+#usr/share/vim/vim63/doc/howto.txt
+#usr/share/vim/vim63/doc/if_cscop.txt
+#usr/share/vim/vim63/doc/if_ole.txt
+#usr/share/vim/vim63/doc/if_perl.txt
+#usr/share/vim/vim63/doc/if_pyth.txt
+#usr/share/vim/vim63/doc/if_ruby.txt
+#usr/share/vim/vim63/doc/if_sniff.txt
+#usr/share/vim/vim63/doc/if_tcl.txt
+#usr/share/vim/vim63/doc/indent.txt
+#usr/share/vim/vim63/doc/index.txt
+#usr/share/vim/vim63/doc/insert.txt
+#usr/share/vim/vim63/doc/intro.txt
+#usr/share/vim/vim63/doc/map.txt
+#usr/share/vim/vim63/doc/mbyte.txt
+#usr/share/vim/vim63/doc/message.txt
+#usr/share/vim/vim63/doc/mlang.txt
+#usr/share/vim/vim63/doc/motion.txt
+#usr/share/vim/vim63/doc/netbeans.txt
+#usr/share/vim/vim63/doc/options.txt
+#usr/share/vim/vim63/doc/os_390.txt
+#usr/share/vim/vim63/doc/os_amiga.txt
+#usr/share/vim/vim63/doc/os_beos.txt
+#usr/share/vim/vim63/doc/os_dos.txt
+#usr/share/vim/vim63/doc/os_mac.txt
+#usr/share/vim/vim63/doc/os_mint.txt
+#usr/share/vim/vim63/doc/os_msdos.txt
+#usr/share/vim/vim63/doc/os_os2.txt
+#usr/share/vim/vim63/doc/os_qnx.txt
+#usr/share/vim/vim63/doc/os_risc.txt
+#usr/share/vim/vim63/doc/os_unix.txt
+#usr/share/vim/vim63/doc/os_vms.txt
+#usr/share/vim/vim63/doc/os_win32.txt
+#usr/share/vim/vim63/doc/pattern.txt
+#usr/share/vim/vim63/doc/pi_expl.txt
+#usr/share/vim/vim63/doc/pi_gzip.txt
+#usr/share/vim/vim63/doc/pi_netrw.txt
+#usr/share/vim/vim63/doc/pi_spec.txt
+#usr/share/vim/vim63/doc/quickfix.txt
+#usr/share/vim/vim63/doc/quickref.txt
+#usr/share/vim/vim63/doc/quotes.txt
+#usr/share/vim/vim63/doc/recover.txt
+#usr/share/vim/vim63/doc/remote.txt
+#usr/share/vim/vim63/doc/repeat.txt
+#usr/share/vim/vim63/doc/rileft.txt
+#usr/share/vim/vim63/doc/russian.txt
+#usr/share/vim/vim63/doc/scroll.txt
+#usr/share/vim/vim63/doc/sign.txt
+#usr/share/vim/vim63/doc/sponsor.txt
+#usr/share/vim/vim63/doc/starting.txt
+#usr/share/vim/vim63/doc/syntax.txt
+#usr/share/vim/vim63/doc/tags
+#usr/share/vim/vim63/doc/tagsrch.txt
+#usr/share/vim/vim63/doc/term.txt
+#usr/share/vim/vim63/doc/tips.txt
+#usr/share/vim/vim63/doc/todo.txt
+#usr/share/vim/vim63/doc/uganda.txt
+#usr/share/vim/vim63/doc/undo.txt
+#usr/share/vim/vim63/doc/usr_01.txt
+#usr/share/vim/vim63/doc/usr_02.txt
+#usr/share/vim/vim63/doc/usr_03.txt
+#usr/share/vim/vim63/doc/usr_04.txt
+#usr/share/vim/vim63/doc/usr_05.txt
+#usr/share/vim/vim63/doc/usr_06.txt
+#usr/share/vim/vim63/doc/usr_07.txt
+#usr/share/vim/vim63/doc/usr_08.txt
+#usr/share/vim/vim63/doc/usr_09.txt
+#usr/share/vim/vim63/doc/usr_10.txt
+#usr/share/vim/vim63/doc/usr_11.txt
+#usr/share/vim/vim63/doc/usr_12.txt
+#usr/share/vim/vim63/doc/usr_20.txt
+#usr/share/vim/vim63/doc/usr_21.txt
+#usr/share/vim/vim63/doc/usr_22.txt
+#usr/share/vim/vim63/doc/usr_23.txt
+#usr/share/vim/vim63/doc/usr_24.txt
+#usr/share/vim/vim63/doc/usr_25.txt
+#usr/share/vim/vim63/doc/usr_26.txt
+#usr/share/vim/vim63/doc/usr_27.txt
+#usr/share/vim/vim63/doc/usr_28.txt
+#usr/share/vim/vim63/doc/usr_29.txt
+#usr/share/vim/vim63/doc/usr_30.txt
+#usr/share/vim/vim63/doc/usr_31.txt
+#usr/share/vim/vim63/doc/usr_40.txt
+#usr/share/vim/vim63/doc/usr_41.txt
+#usr/share/vim/vim63/doc/usr_42.txt
+#usr/share/vim/vim63/doc/usr_43.txt
+#usr/share/vim/vim63/doc/usr_44.txt
+#usr/share/vim/vim63/doc/usr_45.txt
+#usr/share/vim/vim63/doc/usr_90.txt
+#usr/share/vim/vim63/doc/usr_toc.txt
+#usr/share/vim/vim63/doc/various.txt
+#usr/share/vim/vim63/doc/version4.txt
+#usr/share/vim/vim63/doc/version5.txt
+#usr/share/vim/vim63/doc/version6.txt
+#usr/share/vim/vim63/doc/vi_diff.txt
+#usr/share/vim/vim63/doc/vim2html.pl
+#usr/share/vim/vim63/doc/visual.txt
+#usr/share/vim/vim63/doc/windows.txt
+#usr/share/vim/vim63/doc/workshop.txt
+#usr/share/vim/vim63/evim.vim
+#usr/share/vim/vim63/filetype.vim
+#usr/share/vim/vim63/ftoff.vim
+#usr/share/vim/vim63/ftplugin
+#usr/share/vim/vim63/ftplugin.vim
+#usr/share/vim/vim63/ftplugin/README.txt
+#usr/share/vim/vim63/ftplugin/aap.vim
+#usr/share/vim/vim63/ftplugin/abaqus.vim
+#usr/share/vim/vim63/ftplugin/ada.vim
+#usr/share/vim/vim63/ftplugin/ant.vim
+#usr/share/vim/vim63/ftplugin/art.vim
+#usr/share/vim/vim63/ftplugin/aspvbs.vim
+#usr/share/vim/vim63/ftplugin/automake.vim
+#usr/share/vim/vim63/ftplugin/bib.vim
+#usr/share/vim/vim63/ftplugin/c.vim
+#usr/share/vim/vim63/ftplugin/ch.vim
+#usr/share/vim/vim63/ftplugin/changelog.vim
+#usr/share/vim/vim63/ftplugin/config.vim
+#usr/share/vim/vim63/ftplugin/cpp.vim
+#usr/share/vim/vim63/ftplugin/cs.vim
+#usr/share/vim/vim63/ftplugin/csc.vim
+#usr/share/vim/vim63/ftplugin/csh.vim
+#usr/share/vim/vim63/ftplugin/css.vim
+#usr/share/vim/vim63/ftplugin/debchangelog.vim
+#usr/share/vim/vim63/ftplugin/dosbatch.vim
+#usr/share/vim/vim63/ftplugin/dtd.vim
+#usr/share/vim/vim63/ftplugin/fortran.vim
+#usr/share/vim/vim63/ftplugin/html.vim
+#usr/share/vim/vim63/ftplugin/ishd.vim
+#usr/share/vim/vim63/ftplugin/java.vim
+#usr/share/vim/vim63/ftplugin/jsp.vim
+#usr/share/vim/vim63/ftplugin/kwt.vim
+#usr/share/vim/vim63/ftplugin/lisp.vim
+#usr/share/vim/vim63/ftplugin/lprolog.vim
+#usr/share/vim/vim63/ftplugin/lua.vim
+#usr/share/vim/vim63/ftplugin/mail.vim
+#usr/share/vim/vim63/ftplugin/make.vim
+#usr/share/vim/vim63/ftplugin/man.vim
+#usr/share/vim/vim63/ftplugin/mf.vim
+#usr/share/vim/vim63/ftplugin/mp.vim
+#usr/share/vim/vim63/ftplugin/objc.vim
+#usr/share/vim/vim63/ftplugin/ocaml.vim
+#usr/share/vim/vim63/ftplugin/occam.vim
+#usr/share/vim/vim63/ftplugin/pascal.vim
+#usr/share/vim/vim63/ftplugin/perl.vim
+#usr/share/vim/vim63/ftplugin/php.vim
+#usr/share/vim/vim63/ftplugin/postscr.vim
+#usr/share/vim/vim63/ftplugin/pyrex.vim
+#usr/share/vim/vim63/ftplugin/python.vim
+#usr/share/vim/vim63/ftplugin/rpl.vim
+#usr/share/vim/vim63/ftplugin/rst.vim
+#usr/share/vim/vim63/ftplugin/ruby.vim
+#usr/share/vim/vim63/ftplugin/scheme.vim
+#usr/share/vim/vim63/ftplugin/sgml.vim
+#usr/share/vim/vim63/ftplugin/sh.vim
+#usr/share/vim/vim63/ftplugin/spec.vim
+#usr/share/vim/vim63/ftplugin/sql.vim
+#usr/share/vim/vim63/ftplugin/svg.vim
+#usr/share/vim/vim63/ftplugin/tcsh.vim
+#usr/share/vim/vim63/ftplugin/tex.vim
+#usr/share/vim/vim63/ftplugin/vb.vim
+#usr/share/vim/vim63/ftplugin/verilog.vim
+#usr/share/vim/vim63/ftplugin/vim.vim
+#usr/share/vim/vim63/ftplugin/xhtml.vim
+#usr/share/vim/vim63/ftplugin/xml.vim
+#usr/share/vim/vim63/ftplugin/xs.vim
+#usr/share/vim/vim63/ftplugin/xsd.vim
+#usr/share/vim/vim63/ftplugin/xslt.vim
+#usr/share/vim/vim63/ftplugof.vim
+#usr/share/vim/vim63/gvimrc_example.vim
+#usr/share/vim/vim63/indent
+#usr/share/vim/vim63/indent.vim
+#usr/share/vim/vim63/indent/README.txt
+#usr/share/vim/vim63/indent/aap.vim
+#usr/share/vim/vim63/indent/ada.vim
+#usr/share/vim/vim63/indent/ant.vim
+#usr/share/vim/vim63/indent/automake.vim
+#usr/share/vim/vim63/indent/awk.vim
+#usr/share/vim/vim63/indent/c.vim
+#usr/share/vim/vim63/indent/cdl.vim
+#usr/share/vim/vim63/indent/ch.vim
+#usr/share/vim/vim63/indent/config.vim
+#usr/share/vim/vim63/indent/cpp.vim
+#usr/share/vim/vim63/indent/cs.vim
+#usr/share/vim/vim63/indent/css.vim
+#usr/share/vim/vim63/indent/docbk.vim
+#usr/share/vim/vim63/indent/dylan.vim
+#usr/share/vim/vim63/indent/eiffel.vim
+#usr/share/vim/vim63/indent/eterm.vim
+#usr/share/vim/vim63/indent/fortran.vim
+#usr/share/vim/vim63/indent/html.vim
+#usr/share/vim/vim63/indent/idlang.vim
+#usr/share/vim/vim63/indent/ishd.vim
+#usr/share/vim/vim63/indent/java.vim
+#usr/share/vim/vim63/indent/lua.vim
+#usr/share/vim/vim63/indent/make.vim
+#usr/share/vim/vim63/indent/matlab.vim
+#usr/share/vim/vim63/indent/mp.vim
+#usr/share/vim/vim63/indent/objc.vim
+#usr/share/vim/vim63/indent/ocaml.vim
+#usr/share/vim/vim63/indent/occam.vim
+#usr/share/vim/vim63/indent/perl.vim
+#usr/share/vim/vim63/indent/php.vim
+#usr/share/vim/vim63/indent/postscr.vim
+#usr/share/vim/vim63/indent/pov.vim
+#usr/share/vim/vim63/indent/prolog.vim
+#usr/share/vim/vim63/indent/pyrex.vim
+#usr/share/vim/vim63/indent/python.vim
+#usr/share/vim/vim63/indent/readline.vim
+#usr/share/vim/vim63/indent/rpl.vim
+#usr/share/vim/vim63/indent/rst.vim
+#usr/share/vim/vim63/indent/ruby.vim
+#usr/share/vim/vim63/indent/sdl.vim
+#usr/share/vim/vim63/indent/sh.vim
+#usr/share/vim/vim63/indent/tcl.vim
+#usr/share/vim/vim63/indent/tcsh.vim
+#usr/share/vim/vim63/indent/tilde.vim
+#usr/share/vim/vim63/indent/vb.vim
+#usr/share/vim/vim63/indent/verilog.vim
+#usr/share/vim/vim63/indent/vim.vim
+#usr/share/vim/vim63/indent/xf86conf.vim
+#usr/share/vim/vim63/indent/xhtml.vim
+#usr/share/vim/vim63/indent/xml.vim
+#usr/share/vim/vim63/indent/xslt.vim
+#usr/share/vim/vim63/indent/yacc.vim
+#usr/share/vim/vim63/indent/zsh.vim
+#usr/share/vim/vim63/indoff.vim
+#usr/share/vim/vim63/keymap
+#usr/share/vim/vim63/keymap/README.txt
+#usr/share/vim/vim63/keymap/accents.vim
+#usr/share/vim/vim63/keymap/arabic.vim
+#usr/share/vim/vim63/keymap/arabic_utf-8.vim
+#usr/share/vim/vim63/keymap/czech.vim
+#usr/share/vim/vim63/keymap/czech_utf-8.vim
+#usr/share/vim/vim63/keymap/esperanto.vim
+#usr/share/vim/vim63/keymap/esperanto_utf-8.vim
+#usr/share/vim/vim63/keymap/greek.vim
+#usr/share/vim/vim63/keymap/greek_cp1253.vim
+#usr/share/vim/vim63/keymap/greek_iso-8859-7.vim
+#usr/share/vim/vim63/keymap/greek_utf-8.vim
+#usr/share/vim/vim63/keymap/hebrew.vim
+#usr/share/vim/vim63/keymap/hebrew_cp1255.vim
+#usr/share/vim/vim63/keymap/hebrew_iso-8859-8.vim
+#usr/share/vim/vim63/keymap/hebrew_utf-8.vim
+#usr/share/vim/vim63/keymap/hebrewp.vim
+#usr/share/vim/vim63/keymap/hebrewp_cp1255.vim
+#usr/share/vim/vim63/keymap/hebrewp_iso-8859-8.vim
+#usr/share/vim/vim63/keymap/hebrewp_utf-8.vim
+#usr/share/vim/vim63/keymap/lithuanian-baltic.vim
+#usr/share/vim/vim63/keymap/magyar_utf-8.vim
+#usr/share/vim/vim63/keymap/persian-iranian_utf-8.vim
+#usr/share/vim/vim63/keymap/persian.vim
+#usr/share/vim/vim63/keymap/pinyin.vim
+#usr/share/vim/vim63/keymap/russian-jcuken.vim
+#usr/share/vim/vim63/keymap/russian-jcukenwin.vim
+#usr/share/vim/vim63/keymap/russian-yawerty.vim
+#usr/share/vim/vim63/keymap/serbian-latin.vim
+#usr/share/vim/vim63/keymap/serbian-latin_utf-8.vim
+#usr/share/vim/vim63/keymap/serbian.vim
+#usr/share/vim/vim63/keymap/serbian_cp1250.vim
+#usr/share/vim/vim63/keymap/serbian_cp1251.vim
+#usr/share/vim/vim63/keymap/serbian_iso-8859-2.vim
+#usr/share/vim/vim63/keymap/serbian_iso-8859-5.vim
+#usr/share/vim/vim63/keymap/serbian_utf-8.vim
+#usr/share/vim/vim63/keymap/slovak.vim
+#usr/share/vim/vim63/keymap/slovak_cp1250.vim
+#usr/share/vim/vim63/keymap/slovak_iso-8859-2.vim
+#usr/share/vim/vim63/keymap/slovak_utf-8.vim
+#usr/share/vim/vim63/lang
+#usr/share/vim/vim63/lang/README.txt
+#usr/share/vim/vim63/lang/menu_af.latin1.vim
+#usr/share/vim/vim63/lang/menu_af.utf-8.vim
+#usr/share/vim/vim63/lang/menu_af_af.latin1.vim
+#usr/share/vim/vim63/lang/menu_af_af.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ca.latin1.vim
+#usr/share/vim/vim63/lang/menu_ca.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ca_es.latin1.vim
+#usr/share/vim/vim63/lang/menu_ca_es.utf-8.vim
+#usr/share/vim/vim63/lang/menu_chinese(gb)_gb.936.vim
+#usr/share/vim/vim63/lang/menu_chinese(taiwan)_taiwan.950.vim
+#usr/share/vim/vim63/lang/menu_chinese_gb.936.vim
+#usr/share/vim/vim63/lang/menu_chinese_taiwan.950.vim
+#usr/share/vim/vim63/lang/menu_cs.cp1250.vim
+#usr/share/vim/vim63/lang/menu_cs.latin1.vim
+#usr/share/vim/vim63/lang/menu_cs_cz.cp1250.vim
+#usr/share/vim/vim63/lang/menu_cs_cz.iso_8859-2.vim
+#usr/share/vim/vim63/lang/menu_cs_cz.latin1.vim
+#usr/share/vim/vim63/lang/menu_czech_czech_republic.1250.vim
+#usr/share/vim/vim63/lang/menu_czech_czech_republic.1252.vim
+#usr/share/vim/vim63/lang/menu_czech_czech_republic.ascii.vim
+#usr/share/vim/vim63/lang/menu_de.latin1.vim
+#usr/share/vim/vim63/lang/menu_de.utf-8.vim
+#usr/share/vim/vim63/lang/menu_de_de.latin1.vim
+#usr/share/vim/vim63/lang/menu_de_de.utf-8.vim
+#usr/share/vim/vim63/lang/menu_en_gb.latin1.vim
+#usr/share/vim/vim63/lang/menu_en_gb.utf-8.vim
+#usr/share/vim/vim63/lang/menu_english_united_kingdom.1252.vim
+#usr/share/vim/vim63/lang/menu_english_united_kingdom.ascii.vim
+#usr/share/vim/vim63/lang/menu_es.latin1.vim
+#usr/share/vim/vim63/lang/menu_es.utf-8.vim
+#usr/share/vim/vim63/lang/menu_es_es.latin1.vim
+#usr/share/vim/vim63/lang/menu_es_es.utf-8.vim
+#usr/share/vim/vim63/lang/menu_fr.latin1.vim
+#usr/share/vim/vim63/lang/menu_fr.utf-8.vim
+#usr/share/vim/vim63/lang/menu_fr_fr.latin1.vim
+#usr/share/vim/vim63/lang/menu_fr_fr.utf-8.vim
+#usr/share/vim/vim63/lang/menu_french_france.1252.vim
+#usr/share/vim/vim63/lang/menu_german_germany.1252.vim
+#usr/share/vim/vim63/lang/menu_hu_hu.iso_8859-2.vim
+#usr/share/vim/vim63/lang/menu_it.latin1.vim
+#usr/share/vim/vim63/lang/menu_it.utf-8.vim
+#usr/share/vim/vim63/lang/menu_it_it.latin1.vim
+#usr/share/vim/vim63/lang/menu_it_it.utf-8.vim
+#usr/share/vim/vim63/lang/menu_italian_italy.1252.vim
+#usr/share/vim/vim63/lang/menu_ja.cp932.vim
+#usr/share/vim/vim63/lang/menu_ja.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ja_jp.cp932.vim
+#usr/share/vim/vim63/lang/menu_ja_jp.euc-jp.vim
+#usr/share/vim/vim63/lang/menu_ja_jp.eucjp.vim
+#usr/share/vim/vim63/lang/menu_ja_jp.ujis.vim
+#usr/share/vim/vim63/lang/menu_ja_jp.utf-8.vim
+#usr/share/vim/vim63/lang/menu_japanese_japan.932.vim
+#usr/share/vim/vim63/lang/menu_ko.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ko_kr.euckr.vim
+#usr/share/vim/vim63/lang/menu_ko_kr.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ko_kr.vim
+#usr/share/vim/vim63/lang/menu_nl.latin1.vim
+#usr/share/vim/vim63/lang/menu_nl.utf-8.vim
+#usr/share/vim/vim63/lang/menu_nl_nl.latin1.vim
+#usr/share/vim/vim63/lang/menu_nl_nl.utf-8.vim
+#usr/share/vim/vim63/lang/menu_no.latin1.vim
+#usr/share/vim/vim63/lang/menu_no.utf-8.vim
+#usr/share/vim/vim63/lang/menu_no_no.latin1.vim
+#usr/share/vim/vim63/lang/menu_no_no.utf-8.vim
+#usr/share/vim/vim63/lang/menu_pl.cp1250.vim
+#usr/share/vim/vim63/lang/menu_pl_pl.cp1250.vim
+#usr/share/vim/vim63/lang/menu_pl_pl.iso_8859-2.vim
+#usr/share/vim/vim63/lang/menu_polish_poland.1250.vim
+#usr/share/vim/vim63/lang/menu_pt_br.latin1.vim
+#usr/share/vim/vim63/lang/menu_pt_br.utf-8.vim
+#usr/share/vim/vim63/lang/menu_pt_br.vim
+#usr/share/vim/vim63/lang/menu_pt_pt.latin1.vim
+#usr/share/vim/vim63/lang/menu_pt_pt.utf-8.vim
+#usr/share/vim/vim63/lang/menu_pt_pt.vim
+#usr/share/vim/vim63/lang/menu_ru.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ru_ru.koi8-r.vim
+#usr/share/vim/vim63/lang/menu_ru_ru.utf-8.vim
+#usr/share/vim/vim63/lang/menu_ru_ru.vim
+#usr/share/vim/vim63/lang/menu_sk.cp1250.vim
+#usr/share/vim/vim63/lang/menu_sk_sk.1250.vim
+#usr/share/vim/vim63/lang/menu_sk_sk.cp1250.vim
+#usr/share/vim/vim63/lang/menu_sk_sk.iso_8859-2.vim
+#usr/share/vim/vim63/lang/menu_sk_sk.vim
+#usr/share/vim/vim63/lang/menu_slovak_slovak_republic.1250.vim
+#usr/share/vim/vim63/lang/menu_spanish_spain.850.vim
+#usr/share/vim/vim63/lang/menu_sr.utf-8.vim
+#usr/share/vim/vim63/lang/menu_sr_yu.ascii.vim
+#usr/share/vim/vim63/lang/menu_sr_yu.iso_8859-2.vim
+#usr/share/vim/vim63/lang/menu_sr_yu.iso_8859-5.vim
+#usr/share/vim/vim63/lang/menu_sr_yu.utf-8.vim
+#usr/share/vim/vim63/lang/menu_sv.latin1.vim
+#usr/share/vim/vim63/lang/menu_sv.utf-8.vim
+#usr/share/vim/vim63/lang/menu_sv_se.latin1.vim
+#usr/share/vim/vim63/lang/menu_sv_se.utf-8.vim
+#usr/share/vim/vim63/lang/menu_uk_ua.koi8-u.vim
+#usr/share/vim/vim63/lang/menu_zh.big5.vim
+#usr/share/vim/vim63/lang/menu_zh.cp936.vim
+#usr/share/vim/vim63/lang/menu_zh.cp950.vim
+#usr/share/vim/vim63/lang/menu_zh.gb2312.vim
+#usr/share/vim/vim63/lang/menu_zh_cn.18030.vim
+#usr/share/vim/vim63/lang/menu_zh_cn.cp936.vim
+#usr/share/vim/vim63/lang/menu_zh_cn.gb2312.vim
+#usr/share/vim/vim63/lang/menu_zh_cn.gbk.vim
+#usr/share/vim/vim63/lang/menu_zh_cn.utf-8.vim
+#usr/share/vim/vim63/lang/menu_zh_tw.big5.vim
+#usr/share/vim/vim63/lang/menu_zh_tw.cp950.vim
+#usr/share/vim/vim63/lang/menu_zh_tw.utf-8.vim
+#usr/share/vim/vim63/macros
+#usr/share/vim/vim63/macros/README.txt
+#usr/share/vim/vim63/macros/dvorak
+#usr/share/vim/vim63/macros/hanoi
+#usr/share/vim/vim63/macros/hanoi/click.me
+#usr/share/vim/vim63/macros/hanoi/hanoi.vim
+#usr/share/vim/vim63/macros/hanoi/poster
+#usr/share/vim/vim63/macros/justify.vim
+#usr/share/vim/vim63/macros/less.sh
+#usr/share/vim/vim63/macros/less.vim
+#usr/share/vim/vim63/macros/life
+#usr/share/vim/vim63/macros/life/click.me
+#usr/share/vim/vim63/macros/life/life.vim
+#usr/share/vim/vim63/macros/matchit.txt
+#usr/share/vim/vim63/macros/matchit.vim
+#usr/share/vim/vim63/macros/maze
+#usr/share/vim/vim63/macros/maze/Makefile
+#usr/share/vim/vim63/macros/maze/README.txt
+#usr/share/vim/vim63/macros/maze/main.aap
+#usr/share/vim/vim63/macros/maze/maze.c
+#usr/share/vim/vim63/macros/maze/maze_5.78
+#usr/share/vim/vim63/macros/maze/maze_mac
+#usr/share/vim/vim63/macros/maze/mazeansi.c
+#usr/share/vim/vim63/macros/maze/mazeclean.c
+#usr/share/vim/vim63/macros/maze/poster
+#usr/share/vim/vim63/macros/shellmenu.vim
+#usr/share/vim/vim63/macros/swapmous.vim
+#usr/share/vim/vim63/macros/urm
+#usr/share/vim/vim63/macros/urm/README.txt
+#usr/share/vim/vim63/macros/urm/examples
+#usr/share/vim/vim63/macros/urm/urm
+#usr/share/vim/vim63/macros/urm/urm.vim
+#usr/share/vim/vim63/menu.vim
+#usr/share/vim/vim63/mswin.vim
+#usr/share/vim/vim63/optwin.vim
+#usr/share/vim/vim63/plugin
+#usr/share/vim/vim63/plugin/README.txt
+#usr/share/vim/vim63/plugin/explorer.vim
+#usr/share/vim/vim63/plugin/gzip.vim
+#usr/share/vim/vim63/plugin/netrw.vim
+#usr/share/vim/vim63/plugin/rrhelper.vim
+#usr/share/vim/vim63/plugin/tohtml.vim
+#usr/share/vim/vim63/print
+#usr/share/vim/vim63/print/cp1250.ps
+#usr/share/vim/vim63/print/cp1251.ps
+#usr/share/vim/vim63/print/cp1252.ps
+#usr/share/vim/vim63/print/cp1253.ps
+#usr/share/vim/vim63/print/cp1254.ps
+#usr/share/vim/vim63/print/cp1255.ps
+#usr/share/vim/vim63/print/cp1257.ps
+#usr/share/vim/vim63/print/dec-mcs.ps
+#usr/share/vim/vim63/print/ebcdic-uk.ps
+#usr/share/vim/vim63/print/hp-roman8.ps
+#usr/share/vim/vim63/print/iso-8859-10.ps
+#usr/share/vim/vim63/print/iso-8859-11.ps
+#usr/share/vim/vim63/print/iso-8859-13.ps
+#usr/share/vim/vim63/print/iso-8859-14.ps
+#usr/share/vim/vim63/print/iso-8859-15.ps
+#usr/share/vim/vim63/print/iso-8859-2.ps
+#usr/share/vim/vim63/print/iso-8859-3.ps
+#usr/share/vim/vim63/print/iso-8859-4.ps
+#usr/share/vim/vim63/print/iso-8859-5.ps
+#usr/share/vim/vim63/print/iso-8859-7.ps
+#usr/share/vim/vim63/print/iso-8859-8.ps
+#usr/share/vim/vim63/print/iso-8859-9.ps
+#usr/share/vim/vim63/print/koi8-r.ps
+#usr/share/vim/vim63/print/koi8-u.ps
+#usr/share/vim/vim63/print/latin1.ps
+#usr/share/vim/vim63/print/mac-roman.ps
+#usr/share/vim/vim63/print/prolog.ps
+#usr/share/vim/vim63/scripts.vim
+#usr/share/vim/vim63/synmenu.vim
+#usr/share/vim/vim63/syntax
+#usr/share/vim/vim63/syntax/2html.vim
+#usr/share/vim/vim63/syntax/README.txt
+#usr/share/vim/vim63/syntax/a65.vim
+#usr/share/vim/vim63/syntax/aap.vim
+#usr/share/vim/vim63/syntax/abaqus.vim
+#usr/share/vim/vim63/syntax/abc.vim
+#usr/share/vim/vim63/syntax/abel.vim
+#usr/share/vim/vim63/syntax/acedb.vim
+#usr/share/vim/vim63/syntax/ada.vim
+#usr/share/vim/vim63/syntax/aflex.vim
+#usr/share/vim/vim63/syntax/ahdl.vim
+#usr/share/vim/vim63/syntax/amiga.vim
+#usr/share/vim/vim63/syntax/aml.vim
+#usr/share/vim/vim63/syntax/ampl.vim
+#usr/share/vim/vim63/syntax/ant.vim
+#usr/share/vim/vim63/syntax/antlr.vim
+#usr/share/vim/vim63/syntax/apache.vim
+#usr/share/vim/vim63/syntax/apachestyle.vim
+#usr/share/vim/vim63/syntax/arch.vim
+#usr/share/vim/vim63/syntax/art.vim
+#usr/share/vim/vim63/syntax/asm.vim
+#usr/share/vim/vim63/syntax/asm68k.vim
+#usr/share/vim/vim63/syntax/asmh8300.vim
+#usr/share/vim/vim63/syntax/asn.vim
+#usr/share/vim/vim63/syntax/aspperl.vim
+#usr/share/vim/vim63/syntax/aspvbs.vim
+#usr/share/vim/vim63/syntax/atlas.vim
+#usr/share/vim/vim63/syntax/automake.vim
+#usr/share/vim/vim63/syntax/ave.vim
+#usr/share/vim/vim63/syntax/awk.vim
+#usr/share/vim/vim63/syntax/ayacc.vim
+#usr/share/vim/vim63/syntax/b.vim
+#usr/share/vim/vim63/syntax/baan.vim
+#usr/share/vim/vim63/syntax/basic.vim
+#usr/share/vim/vim63/syntax/bc.vim
+#usr/share/vim/vim63/syntax/bdf.vim
+#usr/share/vim/vim63/syntax/bib.vim
+#usr/share/vim/vim63/syntax/bindzone.vim
+#usr/share/vim/vim63/syntax/blank.vim
+#usr/share/vim/vim63/syntax/btm.vim
+#usr/share/vim/vim63/syntax/c.vim
+#usr/share/vim/vim63/syntax/calendar.vim
+#usr/share/vim/vim63/syntax/catalog.vim
+#usr/share/vim/vim63/syntax/cdl.vim
+#usr/share/vim/vim63/syntax/cf.vim
+#usr/share/vim/vim63/syntax/cfg.vim
+#usr/share/vim/vim63/syntax/ch.vim
+#usr/share/vim/vim63/syntax/change.vim
+#usr/share/vim/vim63/syntax/changelog.vim
+#usr/share/vim/vim63/syntax/chaskell.vim
+#usr/share/vim/vim63/syntax/cheetah.vim
+#usr/share/vim/vim63/syntax/chill.vim
+#usr/share/vim/vim63/syntax/cl.vim
+#usr/share/vim/vim63/syntax/clean.vim
+#usr/share/vim/vim63/syntax/clipper.vim
+#usr/share/vim/vim63/syntax/cobol.vim
+#usr/share/vim/vim63/syntax/colortest.vim
+#usr/share/vim/vim63/syntax/conf.vim
+#usr/share/vim/vim63/syntax/config.vim
+#usr/share/vim/vim63/syntax/cpp.vim
+#usr/share/vim/vim63/syntax/crm.vim
+#usr/share/vim/vim63/syntax/crontab.vim
+#usr/share/vim/vim63/syntax/cs.vim
+#usr/share/vim/vim63/syntax/csc.vim
+#usr/share/vim/vim63/syntax/csh.vim
+#usr/share/vim/vim63/syntax/csp.vim
+#usr/share/vim/vim63/syntax/css.vim
+#usr/share/vim/vim63/syntax/cterm.vim
+#usr/share/vim/vim63/syntax/ctrlh.vim
+#usr/share/vim/vim63/syntax/cupl.vim
+#usr/share/vim/vim63/syntax/cuplsim.vim
+#usr/share/vim/vim63/syntax/cvs.vim
+#usr/share/vim/vim63/syntax/cvsrc.vim
+#usr/share/vim/vim63/syntax/cweb.vim
+#usr/share/vim/vim63/syntax/cynlib.vim
+#usr/share/vim/vim63/syntax/cynpp.vim
+#usr/share/vim/vim63/syntax/d.vim
+#usr/share/vim/vim63/syntax/dcd.vim
+#usr/share/vim/vim63/syntax/dcl.vim
+#usr/share/vim/vim63/syntax/debchangelog.vim
+#usr/share/vim/vim63/syntax/debcontrol.vim
+#usr/share/vim/vim63/syntax/def.vim
+#usr/share/vim/vim63/syntax/desc.vim
+#usr/share/vim/vim63/syntax/desktop.vim
+#usr/share/vim/vim63/syntax/diff.vim
+#usr/share/vim/vim63/syntax/dircolors.vim
+#usr/share/vim/vim63/syntax/diva.vim
+#usr/share/vim/vim63/syntax/dns.vim
+#usr/share/vim/vim63/syntax/docbk.vim
+#usr/share/vim/vim63/syntax/docbksgml.vim
+#usr/share/vim/vim63/syntax/docbkxml.vim
+#usr/share/vim/vim63/syntax/dosbatch.vim
+#usr/share/vim/vim63/syntax/dosini.vim
+#usr/share/vim/vim63/syntax/dot.vim
+#usr/share/vim/vim63/syntax/dracula.vim
+#usr/share/vim/vim63/syntax/dsl.vim
+#usr/share/vim/vim63/syntax/dtd.vim
+#usr/share/vim/vim63/syntax/dtml.vim
+#usr/share/vim/vim63/syntax/dylan.vim
+#usr/share/vim/vim63/syntax/dylanintr.vim
+#usr/share/vim/vim63/syntax/dylanlid.vim
+#usr/share/vim/vim63/syntax/ecd.vim
+#usr/share/vim/vim63/syntax/edif.vim
+#usr/share/vim/vim63/syntax/eiffel.vim
+#usr/share/vim/vim63/syntax/elf.vim
+#usr/share/vim/vim63/syntax/elinks.vim
+#usr/share/vim/vim63/syntax/elmfilt.vim
+#usr/share/vim/vim63/syntax/erlang.vim
+#usr/share/vim/vim63/syntax/esqlc.vim
+#usr/share/vim/vim63/syntax/eterm.vim
+#usr/share/vim/vim63/syntax/exim.vim
+#usr/share/vim/vim63/syntax/expect.vim
+#usr/share/vim/vim63/syntax/exports.vim
+#usr/share/vim/vim63/syntax/fasm.vim
+#usr/share/vim/vim63/syntax/fdcc.vim
+#usr/share/vim/vim63/syntax/fetchmail.vim
+#usr/share/vim/vim63/syntax/fgl.vim
+#usr/share/vim/vim63/syntax/focexec.vim
+#usr/share/vim/vim63/syntax/form.vim
+#usr/share/vim/vim63/syntax/forth.vim
+#usr/share/vim/vim63/syntax/fortran.vim
+#usr/share/vim/vim63/syntax/foxpro.vim
+#usr/share/vim/vim63/syntax/fstab.vim
+#usr/share/vim/vim63/syntax/fvwm.vim
+#usr/share/vim/vim63/syntax/fvwm2m4.vim
+#usr/share/vim/vim63/syntax/gdb.vim
+#usr/share/vim/vim63/syntax/gdmo.vim
+#usr/share/vim/vim63/syntax/gedcom.vim
+#usr/share/vim/vim63/syntax/gkrellmrc.vim
+#usr/share/vim/vim63/syntax/gnuplot.vim
+#usr/share/vim/vim63/syntax/gp.vim
+#usr/share/vim/vim63/syntax/gpg.vim
+#usr/share/vim/vim63/syntax/grads.vim
+#usr/share/vim/vim63/syntax/groff.vim
+#usr/share/vim/vim63/syntax/grub.vim
+#usr/share/vim/vim63/syntax/gsp.vim
+#usr/share/vim/vim63/syntax/gtkrc.vim
+#usr/share/vim/vim63/syntax/haskell.vim
+#usr/share/vim/vim63/syntax/hb.vim
+#usr/share/vim/vim63/syntax/help.vim
+#usr/share/vim/vim63/syntax/hercules.vim
+#usr/share/vim/vim63/syntax/hex.vim
+#usr/share/vim/vim63/syntax/hitest.vim
+#usr/share/vim/vim63/syntax/hog.vim
+#usr/share/vim/vim63/syntax/html.vim
+#usr/share/vim/vim63/syntax/htmlcheetah.vim
+#usr/share/vim/vim63/syntax/htmlm4.vim
+#usr/share/vim/vim63/syntax/htmlos.vim
+#usr/share/vim/vim63/syntax/ia64.vim
+#usr/share/vim/vim63/syntax/icemenu.vim
+#usr/share/vim/vim63/syntax/icon.vim
+#usr/share/vim/vim63/syntax/idl.vim
+#usr/share/vim/vim63/syntax/idlang.vim
+#usr/share/vim/vim63/syntax/indent.vim
+#usr/share/vim/vim63/syntax/inform.vim
+#usr/share/vim/vim63/syntax/inittab.vim
+#usr/share/vim/vim63/syntax/ipfilter.vim
+#usr/share/vim/vim63/syntax/ishd.vim
+#usr/share/vim/vim63/syntax/iss.vim
+#usr/share/vim/vim63/syntax/ist.vim
+#usr/share/vim/vim63/syntax/jal.vim
+#usr/share/vim/vim63/syntax/jam.vim
+#usr/share/vim/vim63/syntax/jargon.vim
+#usr/share/vim/vim63/syntax/java.vim
+#usr/share/vim/vim63/syntax/javacc.vim
+#usr/share/vim/vim63/syntax/javascript.vim
+#usr/share/vim/vim63/syntax/jess.vim
+#usr/share/vim/vim63/syntax/jgraph.vim
+#usr/share/vim/vim63/syntax/jproperties.vim
+#usr/share/vim/vim63/syntax/jsp.vim
+#usr/share/vim/vim63/syntax/kix.vim
+#usr/share/vim/vim63/syntax/kscript.vim
+#usr/share/vim/vim63/syntax/kwt.vim
+#usr/share/vim/vim63/syntax/lace.vim
+#usr/share/vim/vim63/syntax/latte.vim
+#usr/share/vim/vim63/syntax/ldif.vim
+#usr/share/vim/vim63/syntax/lex.vim
+#usr/share/vim/vim63/syntax/lftp.vim
+#usr/share/vim/vim63/syntax/lhaskell.vim
+#usr/share/vim/vim63/syntax/libao.vim
+#usr/share/vim/vim63/syntax/lifelines.vim
+#usr/share/vim/vim63/syntax/lilo.vim
+#usr/share/vim/vim63/syntax/lisp.vim
+#usr/share/vim/vim63/syntax/lite.vim
+#usr/share/vim/vim63/syntax/logtalk.vim
+#usr/share/vim/vim63/syntax/lotos.vim
+#usr/share/vim/vim63/syntax/lout.vim
+#usr/share/vim/vim63/syntax/lpc.vim
+#usr/share/vim/vim63/syntax/lprolog.vim
+#usr/share/vim/vim63/syntax/lscript.vim
+#usr/share/vim/vim63/syntax/lss.vim
+#usr/share/vim/vim63/syntax/lua.vim
+#usr/share/vim/vim63/syntax/lynx.vim
+#usr/share/vim/vim63/syntax/m4.vim
+#usr/share/vim/vim63/syntax/mail.vim
+#usr/share/vim/vim63/syntax/mailcap.vim
+#usr/share/vim/vim63/syntax/make.vim
+#usr/share/vim/vim63/syntax/man.vim
+#usr/share/vim/vim63/syntax/manual.vim
+#usr/share/vim/vim63/syntax/maple.vim
+#usr/share/vim/vim63/syntax/masm.vim
+#usr/share/vim/vim63/syntax/mason.vim
+#usr/share/vim/vim63/syntax/master.vim
+#usr/share/vim/vim63/syntax/matlab.vim
+#usr/share/vim/vim63/syntax/mel.vim
+#usr/share/vim/vim63/syntax/mf.vim
+#usr/share/vim/vim63/syntax/mgp.vim
+#usr/share/vim/vim63/syntax/mib.vim
+#usr/share/vim/vim63/syntax/mma.vim
+#usr/share/vim/vim63/syntax/mmix.vim
+#usr/share/vim/vim63/syntax/modconf.vim
+#usr/share/vim/vim63/syntax/model.vim
+#usr/share/vim/vim63/syntax/modsim3.vim
+#usr/share/vim/vim63/syntax/modula2.vim
+#usr/share/vim/vim63/syntax/modula3.vim
+#usr/share/vim/vim63/syntax/monk.vim
+#usr/share/vim/vim63/syntax/moo.vim
+#usr/share/vim/vim63/syntax/mp.vim
+#usr/share/vim/vim63/syntax/mplayerconf.vim
+#usr/share/vim/vim63/syntax/msidl.vim
+#usr/share/vim/vim63/syntax/msql.vim
+#usr/share/vim/vim63/syntax/mush.vim
+#usr/share/vim/vim63/syntax/muttrc.vim
+#usr/share/vim/vim63/syntax/mysql.vim
+#usr/share/vim/vim63/syntax/named.vim
+#usr/share/vim/vim63/syntax/nasm.vim
+#usr/share/vim/vim63/syntax/nastran.vim
+#usr/share/vim/vim63/syntax/natural.vim
+#usr/share/vim/vim63/syntax/ncf.vim
+#usr/share/vim/vim63/syntax/nosyntax.vim
+#usr/share/vim/vim63/syntax/nqc.vim
+#usr/share/vim/vim63/syntax/nroff.vim
+#usr/share/vim/vim63/syntax/nsis.vim
+#usr/share/vim/vim63/syntax/objc.vim
+#usr/share/vim/vim63/syntax/objcpp.vim
+#usr/share/vim/vim63/syntax/ocaml.vim
+#usr/share/vim/vim63/syntax/occam.vim
+#usr/share/vim/vim63/syntax/omnimark.vim
+#usr/share/vim/vim63/syntax/openroad.vim
+#usr/share/vim/vim63/syntax/opl.vim
+#usr/share/vim/vim63/syntax/ora.vim
+#usr/share/vim/vim63/syntax/papp.vim
+#usr/share/vim/vim63/syntax/pascal.vim
+#usr/share/vim/vim63/syntax/pcap.vim
+#usr/share/vim/vim63/syntax/pccts.vim
+#usr/share/vim/vim63/syntax/perl.vim
+#usr/share/vim/vim63/syntax/pf.vim
+#usr/share/vim/vim63/syntax/pfmain.vim
+#usr/share/vim/vim63/syntax/php.vim
+#usr/share/vim/vim63/syntax/phtml.vim
+#usr/share/vim/vim63/syntax/pic.vim
+#usr/share/vim/vim63/syntax/pike.vim
+#usr/share/vim/vim63/syntax/pilrc.vim
+#usr/share/vim/vim63/syntax/pine.vim
+#usr/share/vim/vim63/syntax/pinfo.vim
+#usr/share/vim/vim63/syntax/plm.vim
+#usr/share/vim/vim63/syntax/plp.vim
+#usr/share/vim/vim63/syntax/plsql.vim
+#usr/share/vim/vim63/syntax/po.vim
+#usr/share/vim/vim63/syntax/pod.vim
+#usr/share/vim/vim63/syntax/postscr.vim
+#usr/share/vim/vim63/syntax/pov.vim
+#usr/share/vim/vim63/syntax/povini.vim
+#usr/share/vim/vim63/syntax/ppd.vim
+#usr/share/vim/vim63/syntax/ppwiz.vim
+#usr/share/vim/vim63/syntax/procmail.vim
+#usr/share/vim/vim63/syntax/progress.vim
+#usr/share/vim/vim63/syntax/prolog.vim
+#usr/share/vim/vim63/syntax/psf.vim
+#usr/share/vim/vim63/syntax/ptcap.vim
+#usr/share/vim/vim63/syntax/purifylog.vim
+#usr/share/vim/vim63/syntax/pyrex.vim
+#usr/share/vim/vim63/syntax/python.vim
+#usr/share/vim/vim63/syntax/qf.vim
+#usr/share/vim/vim63/syntax/quake.vim
+#usr/share/vim/vim63/syntax/r.vim
+#usr/share/vim/vim63/syntax/radiance.vim
+#usr/share/vim/vim63/syntax/ratpoison.vim
+#usr/share/vim/vim63/syntax/rc.vim
+#usr/share/vim/vim63/syntax/rcs.vim
+#usr/share/vim/vim63/syntax/rcslog.vim
+#usr/share/vim/vim63/syntax/readline.vim
+#usr/share/vim/vim63/syntax/rebol.vim
+#usr/share/vim/vim63/syntax/registry.vim
+#usr/share/vim/vim63/syntax/remind.vim
+#usr/share/vim/vim63/syntax/resolv.vim
+#usr/share/vim/vim63/syntax/rexx.vim
+#usr/share/vim/vim63/syntax/rib.vim
+#usr/share/vim/vim63/syntax/rnc.vim
+#usr/share/vim/vim63/syntax/robots.vim
+#usr/share/vim/vim63/syntax/rpcgen.vim
+#usr/share/vim/vim63/syntax/rpl.vim
+#usr/share/vim/vim63/syntax/rst.vim
+#usr/share/vim/vim63/syntax/rtf.vim
+#usr/share/vim/vim63/syntax/ruby.vim
+#usr/share/vim/vim63/syntax/samba.vim
+#usr/share/vim/vim63/syntax/sas.vim
+#usr/share/vim/vim63/syntax/sather.vim
+#usr/share/vim/vim63/syntax/scheme.vim
+#usr/share/vim/vim63/syntax/scilab.vim
+#usr/share/vim/vim63/syntax/screen.vim
+#usr/share/vim/vim63/syntax/sdl.vim
+#usr/share/vim/vim63/syntax/sed.vim
+#usr/share/vim/vim63/syntax/sendpr.vim
+#usr/share/vim/vim63/syntax/sgml.vim
+#usr/share/vim/vim63/syntax/sgmldecl.vim
+#usr/share/vim/vim63/syntax/sgmllnx.vim
+#usr/share/vim/vim63/syntax/sh.vim
+#usr/share/vim/vim63/syntax/sicad.vim
+#usr/share/vim/vim63/syntax/simula.vim
+#usr/share/vim/vim63/syntax/sinda.vim
+#usr/share/vim/vim63/syntax/sindacmp.vim
+#usr/share/vim/vim63/syntax/sindaout.vim
+#usr/share/vim/vim63/syntax/skill.vim
+#usr/share/vim/vim63/syntax/sl.vim
+#usr/share/vim/vim63/syntax/slang.vim
+#usr/share/vim/vim63/syntax/slice.vim
+#usr/share/vim/vim63/syntax/slrnrc.vim
+#usr/share/vim/vim63/syntax/slrnsc.vim
+#usr/share/vim/vim63/syntax/sm.vim
+#usr/share/vim/vim63/syntax/smarty.vim
+#usr/share/vim/vim63/syntax/smil.vim
+#usr/share/vim/vim63/syntax/smith.vim
+#usr/share/vim/vim63/syntax/sml.vim
+#usr/share/vim/vim63/syntax/snnsnet.vim
+#usr/share/vim/vim63/syntax/snnspat.vim
+#usr/share/vim/vim63/syntax/snnsres.vim
+#usr/share/vim/vim63/syntax/snobol4.vim
+#usr/share/vim/vim63/syntax/spec.vim
+#usr/share/vim/vim63/syntax/specman.vim
+#usr/share/vim/vim63/syntax/spice.vim
+#usr/share/vim/vim63/syntax/splint.vim
+#usr/share/vim/vim63/syntax/spup.vim
+#usr/share/vim/vim63/syntax/spyce.vim
+#usr/share/vim/vim63/syntax/sql.vim
+#usr/share/vim/vim63/syntax/sqlforms.vim
+#usr/share/vim/vim63/syntax/sqlj.vim
+#usr/share/vim/vim63/syntax/sqr.vim
+#usr/share/vim/vim63/syntax/squid.vim
+#usr/share/vim/vim63/syntax/sshconfig.vim
+#usr/share/vim/vim63/syntax/sshdconfig.vim
+#usr/share/vim/vim63/syntax/st.vim
+#usr/share/vim/vim63/syntax/stp.vim
+#usr/share/vim/vim63/syntax/strace.vim
+#usr/share/vim/vim63/syntax/svn.vim
+#usr/share/vim/vim63/syntax/syncolor.vim
+#usr/share/vim/vim63/syntax/synload.vim
+#usr/share/vim/vim63/syntax/syntax.vim
+#usr/share/vim/vim63/syntax/tads.vim
+#usr/share/vim/vim63/syntax/tags.vim
+#usr/share/vim/vim63/syntax/tak.vim
+#usr/share/vim/vim63/syntax/takcmp.vim
+#usr/share/vim/vim63/syntax/takout.vim
+#usr/share/vim/vim63/syntax/tasm.vim
+#usr/share/vim/vim63/syntax/tcl.vim
+#usr/share/vim/vim63/syntax/tcsh.vim
+#usr/share/vim/vim63/syntax/terminfo.vim
+#usr/share/vim/vim63/syntax/tex.vim
+#usr/share/vim/vim63/syntax/texinfo.vim
+#usr/share/vim/vim63/syntax/texmf.vim
+#usr/share/vim/vim63/syntax/tf.vim
+#usr/share/vim/vim63/syntax/tidy.vim
+#usr/share/vim/vim63/syntax/tilde.vim
+#usr/share/vim/vim63/syntax/tli.vim
+#usr/share/vim/vim63/syntax/trasys.vim
+#usr/share/vim/vim63/syntax/tsalt.vim
+#usr/share/vim/vim63/syntax/tsscl.vim
+#usr/share/vim/vim63/syntax/tssgm.vim
+#usr/share/vim/vim63/syntax/tssop.vim
+#usr/share/vim/vim63/syntax/uc.vim
+#usr/share/vim/vim63/syntax/uil.vim
+#usr/share/vim/vim63/syntax/valgrind.vim
+#usr/share/vim/vim63/syntax/vb.vim
+#usr/share/vim/vim63/syntax/verilog.vim
+#usr/share/vim/vim63/syntax/vgrindefs.vim
+#usr/share/vim/vim63/syntax/vhdl.vim
+#usr/share/vim/vim63/syntax/vim.vim
+#usr/share/vim/vim63/syntax/viminfo.vim
+#usr/share/vim/vim63/syntax/virata.vim
+#usr/share/vim/vim63/syntax/vmasm.vim
+#usr/share/vim/vim63/syntax/vrml.vim
+#usr/share/vim/vim63/syntax/vsejcl.vim
+#usr/share/vim/vim63/syntax/wdiff.vim
+#usr/share/vim/vim63/syntax/web.vim
+#usr/share/vim/vim63/syntax/webmacro.vim
+#usr/share/vim/vim63/syntax/wget.vim
+#usr/share/vim/vim63/syntax/whitespace.vim
+#usr/share/vim/vim63/syntax/winbatch.vim
+#usr/share/vim/vim63/syntax/wml.vim
+#usr/share/vim/vim63/syntax/wsh.vim
+#usr/share/vim/vim63/syntax/wvdial.vim
+#usr/share/vim/vim63/syntax/xdefaults.vim
+#usr/share/vim/vim63/syntax/xf86conf.vim
+#usr/share/vim/vim63/syntax/xhtml.vim
+#usr/share/vim/vim63/syntax/xkb.vim
+#usr/share/vim/vim63/syntax/xmath.vim
+#usr/share/vim/vim63/syntax/xml.vim
+#usr/share/vim/vim63/syntax/xmodmap.vim
+#usr/share/vim/vim63/syntax/xpm.vim
+#usr/share/vim/vim63/syntax/xpm2.vim
+#usr/share/vim/vim63/syntax/xs.vim
+#usr/share/vim/vim63/syntax/xsd.vim
+#usr/share/vim/vim63/syntax/xslt.vim
+#usr/share/vim/vim63/syntax/xxd.vim
+#usr/share/vim/vim63/syntax/yacc.vim
+#usr/share/vim/vim63/syntax/yaml.vim
+#usr/share/vim/vim63/syntax/z8a.vim
+#usr/share/vim/vim63/syntax/zsh.vim
+#usr/share/vim/vim63/tools
+#usr/share/vim/vim63/tools/README.txt
+#usr/share/vim/vim63/tools/blink.c
+#usr/share/vim/vim63/tools/ccfilter.1
+#usr/share/vim/vim63/tools/ccfilter.c
+#usr/share/vim/vim63/tools/ccfilter_README.txt
+#usr/share/vim/vim63/tools/efm_filter.pl
+#usr/share/vim/vim63/tools/efm_filter.txt
+#usr/share/vim/vim63/tools/efm_perl.pl
+#usr/share/vim/vim63/tools/mve.awk
+#usr/share/vim/vim63/tools/mve.txt
+#usr/share/vim/vim63/tools/pltags.pl
+#usr/share/vim/vim63/tools/ref
+#usr/share/vim/vim63/tools/shtags.1
+#usr/share/vim/vim63/tools/shtags.pl
+#usr/share/vim/vim63/tools/tcltags
+#usr/share/vim/vim63/tools/vim132
+#usr/share/vim/vim63/tools/vim_vs_net.cmd
+#usr/share/vim/vim63/tools/vimm
+#usr/share/vim/vim63/tools/vimspell.sh
+#usr/share/vim/vim63/tools/vimspell.txt
+#usr/share/vim/vim63/tools/xcmdsrv_client.c
+#usr/share/vim/vim63/tutor
+#usr/share/vim/vim63/tutor/README.gr.cp737.txt
+#usr/share/vim/vim63/tutor/README.gr.txt
+#usr/share/vim/vim63/tutor/README.txt
+#usr/share/vim/vim63/tutor/tutor
+#usr/share/vim/vim63/tutor/tutor.ca
+#usr/share/vim/vim63/tutor/tutor.de
+#usr/share/vim/vim63/tutor/tutor.es
+#usr/share/vim/vim63/tutor/tutor.fr
+#usr/share/vim/vim63/tutor/tutor.gr
+#usr/share/vim/vim63/tutor/tutor.gr.cp737
+#usr/share/vim/vim63/tutor/tutor.it
+#usr/share/vim/vim63/tutor/tutor.ja.euc
+#usr/share/vim/vim63/tutor/tutor.ja.sjis
+#usr/share/vim/vim63/tutor/tutor.ja.utf-8
+#usr/share/vim/vim63/tutor/tutor.ko.euc
+#usr/share/vim/vim63/tutor/tutor.ko.utf-8
+#usr/share/vim/vim63/tutor/tutor.no
+#usr/share/vim/vim63/tutor/tutor.pl
+#usr/share/vim/vim63/tutor/tutor.pl.cp1250
+#usr/share/vim/vim63/tutor/tutor.ru
+#usr/share/vim/vim63/tutor/tutor.ru.cp1251
+#usr/share/vim/vim63/tutor/tutor.sk
+#usr/share/vim/vim63/tutor/tutor.sv
+#usr/share/vim/vim63/tutor/tutor.vim
+#usr/share/vim/vim63/tutor/tutor.zh.big5
+#usr/share/vim/vim63/tutor/tutor.zh.euc
+#usr/share/vim/vim63/vimrc_example.vim
+##
+## m4-1.4
+##
+#usr/bin/m4
+#usr/share/info/m4.info
+#usr/share/info/m4.info-1
+#usr/share/info/m4.info-2
+#usr/share/info/m4.info-3
+##
+## bison-1.875
+##
+#usr/bin/bison
+#usr/bin/yacc
+#usr/lib/liby.a
+#usr/share/bison
+#usr/share/bison/README
+#usr/share/bison/c.m4
+#usr/share/bison/glr.c
+#usr/share/bison/lalr1.cc
+#usr/share/bison/m4sugar
+#usr/share/bison/m4sugar/m4sugar.m4
+#usr/share/bison/yacc.c
+#usr/share/info/bison.info
+#usr/share/info/bison.info-1
+#usr/share/info/bison.info-2
+#usr/share/info/bison.info-3
+#usr/share/info/bison.info-4
+#usr/share/info/bison.info-5
+#usr/share/info/bison.info-6
+#usr/share/info/bison.info-7
+#usr/share/man/man1/bison.1
+##
+## less-382
+##
+bin/less
+#bin/lessecho
+#bin/lesskey
+#usr/share/man/man1/less.1
+#usr/share/man/man1/lesskey.1
+##
+## groff-1.19
+##
+#usr/bin/addftinfo
+#usr/bin/afmtodit
+#usr/bin/eqn
+#usr/bin/eqn2graph
+#usr/bin/geqn
+#usr/bin/grn
+#usr/bin/grodvi
+#usr/bin/groff
+#usr/bin/groffer
+#usr/bin/grog
+#usr/bin/grolbp
+#usr/bin/grolj4
+#usr/bin/grops
+#usr/bin/grotty
+#usr/bin/gtbl
+#usr/bin/hpftodit
+#usr/bin/indxbib
+#usr/bin/lkbib
+#usr/bin/lookbib
+#usr/bin/mmroff
+#usr/bin/neqn
+#usr/bin/nroff
+#usr/bin/pfbtops
+#usr/bin/pic
+#usr/bin/pic2graph
+#usr/bin/post-grohtml
+#usr/bin/pre-grohtml
+#usr/bin/refer
+#usr/bin/soelim
+#usr/bin/tbl
+#usr/bin/tfmtodit
+#usr/bin/troff
+#usr/bin/zsoelim
+#usr/lib/groff
+#usr/lib/groff/site-tmac
+#usr/share/doc/groff
+#usr/share/doc/groff/1.19
+#usr/share/doc/groff/1.19/examples
+#usr/share/doc/groff/1.19/examples/README.mom
+#usr/share/doc/groff/1.19/examples/elvis_syntax
+#usr/share/doc/groff/1.19/examples/grnexmpl.g
+#usr/share/doc/groff/1.19/examples/grnexmpl.me
+#usr/share/doc/groff/1.19/examples/grnexmpl.ps
+#usr/share/doc/groff/1.19/examples/letter.mom
+#usr/share/doc/groff/1.19/examples/letter.ps
+#usr/share/doc/groff/1.19/examples/macros.mom
+#usr/share/doc/groff/1.19/examples/macros.ps
+#usr/share/doc/groff/1.19/examples/penguin.ps
+#usr/share/doc/groff/1.19/examples/typeset.mom
+#usr/share/doc/groff/1.19/examples/typeset.ps
+#usr/share/doc/groff/1.19/examples/typewrite.mom
+#usr/share/doc/groff/1.19/examples/typewrite.ps
+#usr/share/doc/groff/1.19/examples/webpage.ms
+#usr/share/doc/groff/1.19/examples/webpage.ps
+#usr/share/doc/groff/1.19/html
+#usr/share/doc/groff/1.19/html/momdoc
+#usr/share/doc/groff/1.19/html/momdoc/appendices.html
+#usr/share/doc/groff/1.19/html/momdoc/cover.html
+#usr/share/doc/groff/1.19/html/momdoc/definitions.html
+#usr/share/doc/groff/1.19/html/momdoc/docelement.html
+#usr/share/doc/groff/1.19/html/momdoc/docprocessing.html
+#usr/share/doc/groff/1.19/html/momdoc/goodies.html
+#usr/share/doc/groff/1.19/html/momdoc/headfootpage.html
+#usr/share/doc/groff/1.19/html/momdoc/inlines.html
+#usr/share/doc/groff/1.19/html/momdoc/intro.html
+#usr/share/doc/groff/1.19/html/momdoc/letters.html
+#usr/share/doc/groff/1.19/html/momdoc/rectoverso.html
+#usr/share/doc/groff/1.19/html/momdoc/reserved.html
+#usr/share/doc/groff/1.19/html/momdoc/toc.html
+#usr/share/doc/groff/1.19/html/momdoc/typemacdoc.html
+#usr/share/doc/groff/1.19/html/momdoc/typesetting.html
+#usr/share/doc/groff/1.19/html/momdoc/using.html
+#usr/share/doc/groff/1.19/meintro.me
+#usr/share/doc/groff/1.19/meintro.ps
+#usr/share/doc/groff/1.19/meref.me
+#usr/share/doc/groff/1.19/meref.ps
+#usr/share/doc/groff/1.19/pic.ms
+#usr/share/doc/groff/1.19/pic.ps
+#usr/share/groff
+#usr/share/groff/1.19
+#usr/share/groff/1.19/eign
+#usr/share/groff/1.19/font
+#usr/share/groff/1.19/font/devX100
+#usr/share/groff/1.19/font/devX100-12
+#usr/share/groff/1.19/font/devX100-12/CB
+#usr/share/groff/1.19/font/devX100-12/CBI
+#usr/share/groff/1.19/font/devX100-12/CI
+#usr/share/groff/1.19/font/devX100-12/CR
+#usr/share/groff/1.19/font/devX100-12/DESC
+#usr/share/groff/1.19/font/devX100-12/HB
+#usr/share/groff/1.19/font/devX100-12/HBI
+#usr/share/groff/1.19/font/devX100-12/HI
+#usr/share/groff/1.19/font/devX100-12/HR
+#usr/share/groff/1.19/font/devX100-12/NB
+#usr/share/groff/1.19/font/devX100-12/NBI
+#usr/share/groff/1.19/font/devX100-12/NI
+#usr/share/groff/1.19/font/devX100-12/NR
+#usr/share/groff/1.19/font/devX100-12/S
+#usr/share/groff/1.19/font/devX100-12/TB
+#usr/share/groff/1.19/font/devX100-12/TBI
+#usr/share/groff/1.19/font/devX100-12/TI
+#usr/share/groff/1.19/font/devX100-12/TR
+#usr/share/groff/1.19/font/devX100/CB
+#usr/share/groff/1.19/font/devX100/CBI
+#usr/share/groff/1.19/font/devX100/CI
+#usr/share/groff/1.19/font/devX100/CR
+#usr/share/groff/1.19/font/devX100/DESC
+#usr/share/groff/1.19/font/devX100/HB
+#usr/share/groff/1.19/font/devX100/HBI
+#usr/share/groff/1.19/font/devX100/HI
+#usr/share/groff/1.19/font/devX100/HR
+#usr/share/groff/1.19/font/devX100/NB
+#usr/share/groff/1.19/font/devX100/NBI
+#usr/share/groff/1.19/font/devX100/NI
+#usr/share/groff/1.19/font/devX100/NR
+#usr/share/groff/1.19/font/devX100/S
+#usr/share/groff/1.19/font/devX100/TB
+#usr/share/groff/1.19/font/devX100/TBI
+#usr/share/groff/1.19/font/devX100/TI
+#usr/share/groff/1.19/font/devX100/TR
+#usr/share/groff/1.19/font/devX75
+#usr/share/groff/1.19/font/devX75-12
+#usr/share/groff/1.19/font/devX75-12/CB
+#usr/share/groff/1.19/font/devX75-12/CBI
+#usr/share/groff/1.19/font/devX75-12/CI
+#usr/share/groff/1.19/font/devX75-12/CR
+#usr/share/groff/1.19/font/devX75-12/DESC
+#usr/share/groff/1.19/font/devX75-12/HB
+#usr/share/groff/1.19/font/devX75-12/HBI
+#usr/share/groff/1.19/font/devX75-12/HI
+#usr/share/groff/1.19/font/devX75-12/HR
+#usr/share/groff/1.19/font/devX75-12/NB
+#usr/share/groff/1.19/font/devX75-12/NBI
+#usr/share/groff/1.19/font/devX75-12/NI
+#usr/share/groff/1.19/font/devX75-12/NR
+#usr/share/groff/1.19/font/devX75-12/S
+#usr/share/groff/1.19/font/devX75-12/TB
+#usr/share/groff/1.19/font/devX75-12/TBI
+#usr/share/groff/1.19/font/devX75-12/TI
+#usr/share/groff/1.19/font/devX75-12/TR
+#usr/share/groff/1.19/font/devX75/CB
+#usr/share/groff/1.19/font/devX75/CBI
+#usr/share/groff/1.19/font/devX75/CI
+#usr/share/groff/1.19/font/devX75/CR
+#usr/share/groff/1.19/font/devX75/DESC
+#usr/share/groff/1.19/font/devX75/HB
+#usr/share/groff/1.19/font/devX75/HBI
+#usr/share/groff/1.19/font/devX75/HI
+#usr/share/groff/1.19/font/devX75/HR
+#usr/share/groff/1.19/font/devX75/NB
+#usr/share/groff/1.19/font/devX75/NBI
+#usr/share/groff/1.19/font/devX75/NI
+#usr/share/groff/1.19/font/devX75/NR
+#usr/share/groff/1.19/font/devX75/S
+#usr/share/groff/1.19/font/devX75/TB
+#usr/share/groff/1.19/font/devX75/TBI
+#usr/share/groff/1.19/font/devX75/TI
+#usr/share/groff/1.19/font/devX75/TR
+#usr/share/groff/1.19/font/devascii
+#usr/share/groff/1.19/font/devascii/B
+#usr/share/groff/1.19/font/devascii/BI
+#usr/share/groff/1.19/font/devascii/DESC
+#usr/share/groff/1.19/font/devascii/I
+#usr/share/groff/1.19/font/devascii/R
+#usr/share/groff/1.19/font/devdvi
+#usr/share/groff/1.19/font/devdvi/CW
+#usr/share/groff/1.19/font/devdvi/CWEC
+#usr/share/groff/1.19/font/devdvi/CWI
+#usr/share/groff/1.19/font/devdvi/CWIEC
+#usr/share/groff/1.19/font/devdvi/CWITC
+#usr/share/groff/1.19/font/devdvi/CWTC
+#usr/share/groff/1.19/font/devdvi/DESC
+#usr/share/groff/1.19/font/devdvi/EX
+#usr/share/groff/1.19/font/devdvi/HB
+#usr/share/groff/1.19/font/devdvi/HBEC
+#usr/share/groff/1.19/font/devdvi/HBI
+#usr/share/groff/1.19/font/devdvi/HBIEC
+#usr/share/groff/1.19/font/devdvi/HBITC
+#usr/share/groff/1.19/font/devdvi/HBTC
+#usr/share/groff/1.19/font/devdvi/HI
+#usr/share/groff/1.19/font/devdvi/HIEC
+#usr/share/groff/1.19/font/devdvi/HITC
+#usr/share/groff/1.19/font/devdvi/HR
+#usr/share/groff/1.19/font/devdvi/HREC
+#usr/share/groff/1.19/font/devdvi/HRTC
+#usr/share/groff/1.19/font/devdvi/MI
+#usr/share/groff/1.19/font/devdvi/S
+#usr/share/groff/1.19/font/devdvi/SA
+#usr/share/groff/1.19/font/devdvi/SB
+#usr/share/groff/1.19/font/devdvi/SC
+#usr/share/groff/1.19/font/devdvi/TB
+#usr/share/groff/1.19/font/devdvi/TBEC
+#usr/share/groff/1.19/font/devdvi/TBI
+#usr/share/groff/1.19/font/devdvi/TBIEC
+#usr/share/groff/1.19/font/devdvi/TBITC
+#usr/share/groff/1.19/font/devdvi/TBTC
+#usr/share/groff/1.19/font/devdvi/TI
+#usr/share/groff/1.19/font/devdvi/TIEC
+#usr/share/groff/1.19/font/devdvi/TITC
+#usr/share/groff/1.19/font/devdvi/TR
+#usr/share/groff/1.19/font/devdvi/TREC
+#usr/share/groff/1.19/font/devdvi/TRTC
+#usr/share/groff/1.19/font/devdvi/generate
+#usr/share/groff/1.19/font/devdvi/generate/CompileFonts
+#usr/share/groff/1.19/font/devdvi/generate/Makefile
+#usr/share/groff/1.19/font/devdvi/generate/ec.map
+#usr/share/groff/1.19/font/devdvi/generate/msam.map
+#usr/share/groff/1.19/font/devdvi/generate/msbm.map
+#usr/share/groff/1.19/font/devdvi/generate/tc.map
+#usr/share/groff/1.19/font/devdvi/generate/texb.map
+#usr/share/groff/1.19/font/devdvi/generate/texex.map
+#usr/share/groff/1.19/font/devdvi/generate/texi.map
+#usr/share/groff/1.19/font/devdvi/generate/texmi.map
+#usr/share/groff/1.19/font/devdvi/generate/texr.map
+#usr/share/groff/1.19/font/devdvi/generate/texsy.map
+#usr/share/groff/1.19/font/devdvi/generate/textex.map
+#usr/share/groff/1.19/font/devdvi/generate/textt.map
+#usr/share/groff/1.19/font/devhtml
+#usr/share/groff/1.19/font/devhtml/B
+#usr/share/groff/1.19/font/devhtml/BI
+#usr/share/groff/1.19/font/devhtml/CB
+#usr/share/groff/1.19/font/devhtml/CBI
+#usr/share/groff/1.19/font/devhtml/CI
+#usr/share/groff/1.19/font/devhtml/CR
+#usr/share/groff/1.19/font/devhtml/DESC
+#usr/share/groff/1.19/font/devhtml/I
+#usr/share/groff/1.19/font/devhtml/R
+#usr/share/groff/1.19/font/devhtml/S
+#usr/share/groff/1.19/font/devlatin1
+#usr/share/groff/1.19/font/devlatin1/B
+#usr/share/groff/1.19/font/devlatin1/BI
+#usr/share/groff/1.19/font/devlatin1/DESC
+#usr/share/groff/1.19/font/devlatin1/I
+#usr/share/groff/1.19/font/devlatin1/R
+#usr/share/groff/1.19/font/devlbp
+#usr/share/groff/1.19/font/devlbp/CB
+#usr/share/groff/1.19/font/devlbp/CI
+#usr/share/groff/1.19/font/devlbp/CR
+#usr/share/groff/1.19/font/devlbp/DESC
+#usr/share/groff/1.19/font/devlbp/EB
+#usr/share/groff/1.19/font/devlbp/EI
+#usr/share/groff/1.19/font/devlbp/ER
+#usr/share/groff/1.19/font/devlbp/HB
+#usr/share/groff/1.19/font/devlbp/HBI
+#usr/share/groff/1.19/font/devlbp/HI
+#usr/share/groff/1.19/font/devlbp/HNB
+#usr/share/groff/1.19/font/devlbp/HNBI
+#usr/share/groff/1.19/font/devlbp/HNI
+#usr/share/groff/1.19/font/devlbp/HNR
+#usr/share/groff/1.19/font/devlbp/HR
+#usr/share/groff/1.19/font/devlbp/TB
+#usr/share/groff/1.19/font/devlbp/TBI
+#usr/share/groff/1.19/font/devlbp/TI
+#usr/share/groff/1.19/font/devlbp/TR
+#usr/share/groff/1.19/font/devlj4
+#usr/share/groff/1.19/font/devlj4/ALBB
+#usr/share/groff/1.19/font/devlj4/ALBR
+#usr/share/groff/1.19/font/devlj4/AOB
+#usr/share/groff/1.19/font/devlj4/AOI
+#usr/share/groff/1.19/font/devlj4/AOR
+#usr/share/groff/1.19/font/devlj4/CB
+#usr/share/groff/1.19/font/devlj4/CBI
+#usr/share/groff/1.19/font/devlj4/CI
+#usr/share/groff/1.19/font/devlj4/CLARENDON
+#usr/share/groff/1.19/font/devlj4/CORONET
+#usr/share/groff/1.19/font/devlj4/CR
+#usr/share/groff/1.19/font/devlj4/DESC
+#usr/share/groff/1.19/font/devlj4/GB
+#usr/share/groff/1.19/font/devlj4/GBI
+#usr/share/groff/1.19/font/devlj4/GI
+#usr/share/groff/1.19/font/devlj4/GR
+#usr/share/groff/1.19/font/devlj4/LGB
+#usr/share/groff/1.19/font/devlj4/LGI
+#usr/share/groff/1.19/font/devlj4/LGR
+#usr/share/groff/1.19/font/devlj4/MARIGOLD
+#usr/share/groff/1.19/font/devlj4/OB
+#usr/share/groff/1.19/font/devlj4/OBI
+#usr/share/groff/1.19/font/devlj4/OI
+#usr/share/groff/1.19/font/devlj4/OR
+#usr/share/groff/1.19/font/devlj4/S
+#usr/share/groff/1.19/font/devlj4/TB
+#usr/share/groff/1.19/font/devlj4/TBI
+#usr/share/groff/1.19/font/devlj4/TI
+#usr/share/groff/1.19/font/devlj4/TR
+#usr/share/groff/1.19/font/devlj4/UB
+#usr/share/groff/1.19/font/devlj4/UBI
+#usr/share/groff/1.19/font/devlj4/UCB
+#usr/share/groff/1.19/font/devlj4/UCBI
+#usr/share/groff/1.19/font/devlj4/UCI
+#usr/share/groff/1.19/font/devlj4/UCR
+#usr/share/groff/1.19/font/devlj4/UI
+#usr/share/groff/1.19/font/devlj4/UR
+#usr/share/groff/1.19/font/devlj4/generate
+#usr/share/groff/1.19/font/devlj4/generate/Makefile
+#usr/share/groff/1.19/font/devlj4/generate/special.map
+#usr/share/groff/1.19/font/devlj4/generate/text.map
+#usr/share/groff/1.19/font/devps
+#usr/share/groff/1.19/font/devps/AB
+#usr/share/groff/1.19/font/devps/ABI
+#usr/share/groff/1.19/font/devps/AI
+#usr/share/groff/1.19/font/devps/AR
+#usr/share/groff/1.19/font/devps/BMB
+#usr/share/groff/1.19/font/devps/BMBI
+#usr/share/groff/1.19/font/devps/BMI
+#usr/share/groff/1.19/font/devps/BMR
+#usr/share/groff/1.19/font/devps/CB
+#usr/share/groff/1.19/font/devps/CBI
+#usr/share/groff/1.19/font/devps/CI
+#usr/share/groff/1.19/font/devps/CR
+#usr/share/groff/1.19/font/devps/DESC
+#usr/share/groff/1.19/font/devps/EURO
+#usr/share/groff/1.19/font/devps/HB
+#usr/share/groff/1.19/font/devps/HBI
+#usr/share/groff/1.19/font/devps/HI
+#usr/share/groff/1.19/font/devps/HNB
+#usr/share/groff/1.19/font/devps/HNBI
+#usr/share/groff/1.19/font/devps/HNI
+#usr/share/groff/1.19/font/devps/HNR
+#usr/share/groff/1.19/font/devps/HR
+#usr/share/groff/1.19/font/devps/NB
+#usr/share/groff/1.19/font/devps/NBI
+#usr/share/groff/1.19/font/devps/NI
+#usr/share/groff/1.19/font/devps/NR
+#usr/share/groff/1.19/font/devps/PB
+#usr/share/groff/1.19/font/devps/PBI
+#usr/share/groff/1.19/font/devps/PI
+#usr/share/groff/1.19/font/devps/PR
+#usr/share/groff/1.19/font/devps/S
+#usr/share/groff/1.19/font/devps/SS
+#usr/share/groff/1.19/font/devps/TB
+#usr/share/groff/1.19/font/devps/TBI
+#usr/share/groff/1.19/font/devps/TI
+#usr/share/groff/1.19/font/devps/TR
+#usr/share/groff/1.19/font/devps/ZCMI
+#usr/share/groff/1.19/font/devps/ZD
+#usr/share/groff/1.19/font/devps/ZDR
+#usr/share/groff/1.19/font/devps/download
+#usr/share/groff/1.19/font/devps/freeeuro.pfa
+#usr/share/groff/1.19/font/devps/generate
+#usr/share/groff/1.19/font/devps/generate/Makefile
+#usr/share/groff/1.19/font/devps/generate/afmname
+#usr/share/groff/1.19/font/devps/generate/dingbats.map
+#usr/share/groff/1.19/font/devps/generate/dingbats.rmap
+#usr/share/groff/1.19/font/devps/generate/lgreekmap
+#usr/share/groff/1.19/font/devps/generate/symbol.sed
+#usr/share/groff/1.19/font/devps/generate/symbolchars
+#usr/share/groff/1.19/font/devps/generate/symbolsl.afm
+#usr/share/groff/1.19/font/devps/generate/textmap
+#usr/share/groff/1.19/font/devps/prologue
+#usr/share/groff/1.19/font/devps/symbolsl.pfa
+#usr/share/groff/1.19/font/devps/text.enc
+#usr/share/groff/1.19/font/devps/zapfdr.pfa
+#usr/share/groff/1.19/font/devutf8
+#usr/share/groff/1.19/font/devutf8/B
+#usr/share/groff/1.19/font/devutf8/BI
+#usr/share/groff/1.19/font/devutf8/DESC
+#usr/share/groff/1.19/font/devutf8/I
+#usr/share/groff/1.19/font/devutf8/R
+#usr/share/groff/1.19/tmac
+#usr/share/groff/1.19/tmac/X.tmac
+#usr/share/groff/1.19/tmac/Xps.tmac
+#usr/share/groff/1.19/tmac/a4.tmac
+#usr/share/groff/1.19/tmac/an-old.tmac
+#usr/share/groff/1.19/tmac/an.tmac
+#usr/share/groff/1.19/tmac/andoc.tmac
+#usr/share/groff/1.19/tmac/composite.tmac
+#usr/share/groff/1.19/tmac/cp1047.tmac
+#usr/share/groff/1.19/tmac/doc-old.tmac
+#usr/share/groff/1.19/tmac/doc.tmac
+#usr/share/groff/1.19/tmac/dvi.tmac
+#usr/share/groff/1.19/tmac/e.tmac
+#usr/share/groff/1.19/tmac/ec.tmac
+#usr/share/groff/1.19/tmac/eqnrc
+#usr/share/groff/1.19/tmac/europs.tmac
+#usr/share/groff/1.19/tmac/html-end.tmac
+#usr/share/groff/1.19/tmac/html.tmac
+#usr/share/groff/1.19/tmac/hyphen.us
+#usr/share/groff/1.19/tmac/hyphenex.us
+#usr/share/groff/1.19/tmac/latin1.tmac
+#usr/share/groff/1.19/tmac/latin2.tmac
+#usr/share/groff/1.19/tmac/latin9.tmac
+#usr/share/groff/1.19/tmac/lbp.tmac
+#usr/share/groff/1.19/tmac/lj4.tmac
+#usr/share/groff/1.19/tmac/m.tmac
+#usr/share/groff/1.19/tmac/man.tmac
+#usr/share/groff/1.19/tmac/mandoc.tmac
+#usr/share/groff/1.19/tmac/mdoc
+#usr/share/groff/1.19/tmac/mdoc.tmac
+#usr/share/groff/1.19/tmac/mdoc/doc-common
+#usr/share/groff/1.19/tmac/mdoc/doc-ditroff
+#usr/share/groff/1.19/tmac/mdoc/doc-nroff
+#usr/share/groff/1.19/tmac/mdoc/doc-syms
+#usr/share/groff/1.19/tmac/me.tmac
+#usr/share/groff/1.19/tmac/mm
+#usr/share/groff/1.19/tmac/mm.tmac
+#usr/share/groff/1.19/tmac/mm/0.MT
+#usr/share/groff/1.19/tmac/mm/4.MT
+#usr/share/groff/1.19/tmac/mm/5.MT
+#usr/share/groff/1.19/tmac/mm/locale
+#usr/share/groff/1.19/tmac/mm/ms.cov
+#usr/share/groff/1.19/tmac/mm/se_locale
+#usr/share/groff/1.19/tmac/mm/se_ms.cov
+#usr/share/groff/1.19/tmac/mmse.tmac
+#usr/share/groff/1.19/tmac/mom.tmac
+#usr/share/groff/1.19/tmac/ms.tmac
+#usr/share/groff/1.19/tmac/mse.tmac
+#usr/share/groff/1.19/tmac/om.tmac
+#usr/share/groff/1.19/tmac/papersize.tmac
+#usr/share/groff/1.19/tmac/pic.tmac
+#usr/share/groff/1.19/tmac/ps.tmac
+#usr/share/groff/1.19/tmac/psatk.tmac
+#usr/share/groff/1.19/tmac/psold.tmac
+#usr/share/groff/1.19/tmac/pspic.tmac
+#usr/share/groff/1.19/tmac/s.tmac
+#usr/share/groff/1.19/tmac/safer.tmac
+#usr/share/groff/1.19/tmac/trace.tmac
+#usr/share/groff/1.19/tmac/troffrc
+#usr/share/groff/1.19/tmac/troffrc-end
+#usr/share/groff/1.19/tmac/tty-char.tmac
+#usr/share/groff/1.19/tmac/tty.tmac
+#usr/share/groff/1.19/tmac/www.tmac
+#usr/share/groff/site-tmac
+#usr/share/groff/site-tmac/man.local
+#usr/share/groff/site-tmac/mdoc.local
+#usr/share/info/groff
+#usr/share/info/groff-1
+#usr/share/info/groff-10
+#usr/share/info/groff-11
+#usr/share/info/groff-2
+#usr/share/info/groff-3
+#usr/share/info/groff-4
+#usr/share/info/groff-5
+#usr/share/info/groff-6
+#usr/share/info/groff-7
+#usr/share/info/groff-8
+#usr/share/info/groff-9
+#usr/share/man/man1/addftinfo.1
+#usr/share/man/man1/afmtodit.1
+#usr/share/man/man1/eqn.1
+#usr/share/man/man1/eqn2graph.1
+#usr/share/man/man1/grn.1
+#usr/share/man/man1/grodvi.1
+#usr/share/man/man1/groff.1
+#usr/share/man/man1/groffer.1
+#usr/share/man/man1/grog.1
+#usr/share/man/man1/grohtml.1
+#usr/share/man/man1/grolbp.1
+#usr/share/man/man1/grolj4.1
+#usr/share/man/man1/grops.1
+#usr/share/man/man1/grotty.1
+#usr/share/man/man1/hpftodit.1
+#usr/share/man/man1/indxbib.1
+#usr/share/man/man1/lkbib.1
+#usr/share/man/man1/lookbib.1
+#usr/share/man/man1/mmroff.1
+#usr/share/man/man1/neqn.1
+#usr/share/man/man1/nroff.1
+#usr/share/man/man1/pfbtops.1
+#usr/share/man/man1/pic.1
+#usr/share/man/man1/pic2graph.1
+#usr/share/man/man1/refer.1
+#usr/share/man/man1/soelim.1
+#usr/share/man/man1/tbl.1
+#usr/share/man/man1/tfmtodit.1
+#usr/share/man/man1/troff.1
+#usr/share/man/man5/groff_font.5
+#usr/share/man/man5/groff_out.5
+#usr/share/man/man5/groff_tmac.5
+#usr/share/man/man7/ditroff.7
+#usr/share/man/man7/groff.7
+#usr/share/man/man7/groff_char.7
+#usr/share/man/man7/groff_diff.7
+#usr/share/man/man7/groff_man.7
+#usr/share/man/man7/groff_mdoc.7
+#usr/share/man/man7/groff_me.7
+#usr/share/man/man7/groff_mm.7
+#usr/share/man/man7/groff_mmse.7
+#usr/share/man/man7/groff_mom.7
+#usr/share/man/man7/groff_ms.7
+#usr/share/man/man7/groff_trace.7
+#usr/share/man/man7/groff_www.7
+#usr/share/man/man7/roff.7
+##
+## sed-4.0.9
+##
+bin/sed
+#usr/share/info/sed.info
+#usr/share/info/sed.info-1
+#usr/share/info/sed.info-2
+#usr/share/man/man1/sed.1
+##
+## flex-2.5.4a
+##
+#usr/bin/flex
+#usr/bin/flex++
+#usr/bin/lex
+#usr/include/FlexLexer.h
+#usr/lib/libfl.a
+#usr/lib/libl.a
+#usr/share/man/man1/flex.1
+##
+## gettext-0.14.1
+##
+#usr/bin/autopoint
+#usr/bin/gettext
+#usr/bin/gettextize
+#usr/bin/msgattrib
+#usr/bin/msgcat
+#usr/bin/msgcmp
+#usr/bin/msgcomm
+#usr/bin/msgconv
+#usr/bin/msgen
+#usr/bin/msgexec
+#usr/bin/msgfilter
+#usr/bin/msgfmt
+#usr/bin/msggrep
+#usr/bin/msginit
+#usr/bin/msgmerge
+#usr/bin/msgunfmt
+#usr/bin/msguniq
+#usr/bin/ngettext
+#usr/bin/xgettext
+#usr/include/autosprintf.h
+#usr/include/gettext-po.h
+#usr/lib/gettext
+#usr/lib/gettext/gnu.gettext.DumpResource
+#usr/lib/gettext/gnu.gettext.GetURL
+#usr/lib/gettext/hostname
+#usr/lib/gettext/project-id
+#usr/lib/gettext/urlget
+#usr/lib/gettext/user-email
+#usr/lib/libasprintf.a
+#usr/lib/libasprintf.la
+#usr/lib/libasprintf.so
+#usr/lib/libasprintf.so.0
+#usr/lib/libasprintf.so.0.0.0
+#usr/lib/libgettextlib-0.14.1.so
+#usr/lib/libgettextlib.la
+#usr/lib/libgettextlib.so
+#usr/lib/libgettextpo.a
+#usr/lib/libgettextpo.la
+#usr/lib/libgettextpo.so
+#usr/lib/libgettextpo.so.0
+#usr/lib/libgettextpo.so.0.0.0
+#usr/lib/libgettextsrc-0.14.1.so
+#usr/lib/libgettextsrc.la
+#usr/lib/libgettextsrc.so
+#usr/lib/preloadable_libintl.so
+#usr/share/aclocal
+#usr/share/aclocal/codeset.m4
+#usr/share/aclocal/gettext.m4
+#usr/share/aclocal/glibc21.m4
+#usr/share/aclocal/iconv.m4
+#usr/share/aclocal/intdiv0.m4
+#usr/share/aclocal/inttypes-pri.m4
+#usr/share/aclocal/inttypes.m4
+#usr/share/aclocal/inttypes_h.m4
+#usr/share/aclocal/isc-posix.m4
+#usr/share/aclocal/lcmessage.m4
+#usr/share/aclocal/lib-ld.m4
+#usr/share/aclocal/lib-link.m4
+#usr/share/aclocal/lib-prefix.m4
+#usr/share/aclocal/nls.m4
+#usr/share/aclocal/po.m4
+#usr/share/aclocal/progtest.m4
+#usr/share/aclocal/stdint_h.m4
+#usr/share/aclocal/uintmax_t.m4
+#usr/share/aclocal/ulonglong.m4
+#usr/share/doc/gettext
+#usr/share/doc/gettext/autopoint.1.html
+#usr/share/doc/gettext/bind_textdomain_codeset.3.html
+#usr/share/doc/gettext/bindtextdomain.3.html
+#usr/share/doc/gettext/gettext.1.html
+#usr/share/doc/gettext/gettext.3.html
+#usr/share/doc/gettext/gettext_1.html
+#usr/share/doc/gettext/gettext_10.html
+#usr/share/doc/gettext/gettext_11.html
+#usr/share/doc/gettext/gettext_12.html
+#usr/share/doc/gettext/gettext_13.html
+#usr/share/doc/gettext/gettext_14.html
+#usr/share/doc/gettext/gettext_15.html
+#usr/share/doc/gettext/gettext_16.html
+#usr/share/doc/gettext/gettext_17.html
+#usr/share/doc/gettext/gettext_18.html
+#usr/share/doc/gettext/gettext_19.html
+#usr/share/doc/gettext/gettext_2.html
+#usr/share/doc/gettext/gettext_20.html
+#usr/share/doc/gettext/gettext_21.html
+#usr/share/doc/gettext/gettext_22.html
+#usr/share/doc/gettext/gettext_3.html
+#usr/share/doc/gettext/gettext_4.html
+#usr/share/doc/gettext/gettext_5.html
+#usr/share/doc/gettext/gettext_6.html
+#usr/share/doc/gettext/gettext_7.html
+#usr/share/doc/gettext/gettext_8.html
+#usr/share/doc/gettext/gettext_9.html
+#usr/share/doc/gettext/gettext_foot.html
+#usr/share/doc/gettext/gettext_toc.html
+#usr/share/doc/gettext/gettextize.1.html
+#usr/share/doc/gettext/javadoc1
+#usr/share/doc/gettext/javadoc1/AllNames.html
+#usr/share/doc/gettext/javadoc1/gnu.gettext.GettextResource.html
+#usr/share/doc/gettext/javadoc1/images
+#usr/share/doc/gettext/javadoc1/images/blue-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/blue-ball.gif
+#usr/share/doc/gettext/javadoc1/images/class-index.gif
+#usr/share/doc/gettext/javadoc1/images/constructor-index.gif
+#usr/share/doc/gettext/javadoc1/images/constructors.gif
+#usr/share/doc/gettext/javadoc1/images/cyan-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/cyan-ball.gif
+#usr/share/doc/gettext/javadoc1/images/error-index.gif
+#usr/share/doc/gettext/javadoc1/images/exception-index.gif
+#usr/share/doc/gettext/javadoc1/images/green-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/green-ball.gif
+#usr/share/doc/gettext/javadoc1/images/interface-index.gif
+#usr/share/doc/gettext/javadoc1/images/magenta-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/magenta-ball.gif
+#usr/share/doc/gettext/javadoc1/images/method-index.gif
+#usr/share/doc/gettext/javadoc1/images/methods.gif
+#usr/share/doc/gettext/javadoc1/images/package-index.gif
+#usr/share/doc/gettext/javadoc1/images/red-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/red-ball.gif
+#usr/share/doc/gettext/javadoc1/images/variable-index.gif
+#usr/share/doc/gettext/javadoc1/images/variables.gif
+#usr/share/doc/gettext/javadoc1/images/yellow-ball-small.gif
+#usr/share/doc/gettext/javadoc1/images/yellow-ball.gif
+#usr/share/doc/gettext/javadoc1/packages.html
+#usr/share/doc/gettext/javadoc1/tree.html
+#usr/share/doc/gettext/javadoc2
+#usr/share/doc/gettext/javadoc2/allclasses-frame.html
+#usr/share/doc/gettext/javadoc2/deprecated-list.html
+#usr/share/doc/gettext/javadoc2/gnu
+#usr/share/doc/gettext/javadoc2/gnu/gettext
+#usr/share/doc/gettext/javadoc2/gnu/gettext/GettextResource.html
+#usr/share/doc/gettext/javadoc2/gnu/gettext/package-frame.html
+#usr/share/doc/gettext/javadoc2/gnu/gettext/package-summary.html
+#usr/share/doc/gettext/javadoc2/gnu/gettext/package-tree.html
+#usr/share/doc/gettext/javadoc2/help-doc.html
+#usr/share/doc/gettext/javadoc2/index-all.html
+#usr/share/doc/gettext/javadoc2/index.html
+#usr/share/doc/gettext/javadoc2/overview-tree.html
+#usr/share/doc/gettext/javadoc2/package-list
+#usr/share/doc/gettext/javadoc2/packages.html
+#usr/share/doc/gettext/javadoc2/serialized-form.html
+#usr/share/doc/gettext/javadoc2/stylesheet.css
+#usr/share/doc/gettext/msgattrib.1.html
+#usr/share/doc/gettext/msgcat.1.html
+#usr/share/doc/gettext/msgcmp.1.html
+#usr/share/doc/gettext/msgcomm.1.html
+#usr/share/doc/gettext/msgconv.1.html
+#usr/share/doc/gettext/msgen.1.html
+#usr/share/doc/gettext/msgexec.1.html
+#usr/share/doc/gettext/msgfilter.1.html
+#usr/share/doc/gettext/msgfmt.1.html
+#usr/share/doc/gettext/msggrep.1.html
+#usr/share/doc/gettext/msginit.1.html
+#usr/share/doc/gettext/msgmerge.1.html
+#usr/share/doc/gettext/msgunfmt.1.html
+#usr/share/doc/gettext/msguniq.1.html
+#usr/share/doc/gettext/ngettext.1.html
+#usr/share/doc/gettext/ngettext.3.html
+#usr/share/doc/gettext/textdomain.3.html
+#usr/share/doc/gettext/xgettext.1.html
+#usr/share/doc/libasprintf
+#usr/share/doc/libasprintf/autosprintf.html
+#usr/share/gettext
+#usr/share/gettext/ABOUT-NLS
+#usr/share/gettext/archive.tar.gz
+#usr/share/gettext/config.rpath
+#usr/share/gettext/gettext.h
+#usr/share/gettext/intl
+#usr/share/gettext/intl/COPYING.LIB-2.0
+#usr/share/gettext/intl/COPYING.LIB-2.1
+#usr/share/gettext/intl/ChangeLog
+#usr/share/gettext/intl/Makefile.in
+#usr/share/gettext/intl/VERSION
+#usr/share/gettext/intl/bindtextdom.c
+#usr/share/gettext/intl/config.charset
+#usr/share/gettext/intl/dcgettext.c
+#usr/share/gettext/intl/dcigettext.c
+#usr/share/gettext/intl/dcngettext.c
+#usr/share/gettext/intl/dgettext.c
+#usr/share/gettext/intl/dngettext.c
+#usr/share/gettext/intl/eval-plural.h
+#usr/share/gettext/intl/explodename.c
+#usr/share/gettext/intl/finddomain.c
+#usr/share/gettext/intl/gettext.c
+#usr/share/gettext/intl/gettextP.h
+#usr/share/gettext/intl/gmo.h
+#usr/share/gettext/intl/hash-string.h
+#usr/share/gettext/intl/intl-compat.c
+#usr/share/gettext/intl/l10nflist.c
+#usr/share/gettext/intl/libgnuintl.h.in
+#usr/share/gettext/intl/loadinfo.h
+#usr/share/gettext/intl/loadmsgcat.c
+#usr/share/gettext/intl/localcharset.c
+#usr/share/gettext/intl/localcharset.h
+#usr/share/gettext/intl/locale.alias
+#usr/share/gettext/intl/localealias.c
+#usr/share/gettext/intl/localename.c
+#usr/share/gettext/intl/log.c
+#usr/share/gettext/intl/ngettext.c
+#usr/share/gettext/intl/os2compat.c
+#usr/share/gettext/intl/os2compat.h
+#usr/share/gettext/intl/osdep.c
+#usr/share/gettext/intl/plural-exp.c
+#usr/share/gettext/intl/plural-exp.h
+#usr/share/gettext/intl/plural.c
+#usr/share/gettext/intl/plural.y
+#usr/share/gettext/intl/ref-add.sin
+#usr/share/gettext/intl/ref-del.sin
+#usr/share/gettext/intl/relocatable.c
+#usr/share/gettext/intl/relocatable.h
+#usr/share/gettext/intl/textdomain.c
+#usr/share/gettext/mkinstalldirs
+#usr/share/gettext/msgunfmt.tcl
+#usr/share/gettext/po
+#usr/share/gettext/po/Makefile.in.in
+#usr/share/gettext/po/Makevars.template
+#usr/share/gettext/po/Rules-quot
+#usr/share/gettext/po/boldquot.sed
+#usr/share/gettext/po/en@boldquot.header
+#usr/share/gettext/po/en@quot.header
+#usr/share/gettext/po/insert-header.sin
+#usr/share/gettext/po/quot.sed
+#usr/share/gettext/po/remove-potcdate.sin
+#usr/share/gettext/projects
+#usr/share/gettext/projects/GNOME
+#usr/share/gettext/projects/GNOME/team-address
+#usr/share/gettext/projects/GNOME/teams.html
+#usr/share/gettext/projects/GNOME/teams.url
+#usr/share/gettext/projects/GNOME/trigger
+#usr/share/gettext/projects/KDE
+#usr/share/gettext/projects/KDE/team-address
+#usr/share/gettext/projects/KDE/teams.html
+#usr/share/gettext/projects/KDE/teams.url
+#usr/share/gettext/projects/KDE/trigger
+#usr/share/gettext/projects/TP
+#usr/share/gettext/projects/TP/team-address
+#usr/share/gettext/projects/TP/teams.html
+#usr/share/gettext/projects/TP/teams.url
+#usr/share/gettext/projects/TP/trigger
+#usr/share/gettext/projects/index
+#usr/share/gettext/projects/team-address
+#usr/share/info/autosprintf.info
+#usr/share/info/gettext.info
+#usr/share/info/gettext.info-1
+#usr/share/info/gettext.info-10
+#usr/share/info/gettext.info-2
+#usr/share/info/gettext.info-3
+#usr/share/info/gettext.info-4
+#usr/share/info/gettext.info-5
+#usr/share/info/gettext.info-6
+#usr/share/info/gettext.info-7
+#usr/share/info/gettext.info-8
+#usr/share/info/gettext.info-9
+#usr/share/man/man1/autopoint.1
+#usr/share/man/man1/gettext.1
+#usr/share/man/man1/gettextize.1
+#usr/share/man/man1/msgattrib.1
+#usr/share/man/man1/msgcat.1
+#usr/share/man/man1/msgcmp.1
+#usr/share/man/man1/msgcomm.1
+#usr/share/man/man1/msgconv.1
+#usr/share/man/man1/msgen.1
+#usr/share/man/man1/msgexec.1
+#usr/share/man/man1/msgfilter.1
+#usr/share/man/man1/msgfmt.1
+#usr/share/man/man1/msggrep.1
+#usr/share/man/man1/msginit.1
+#usr/share/man/man1/msgmerge.1
+#usr/share/man/man1/msgunfmt.1
+#usr/share/man/man1/msguniq.1
+#usr/share/man/man1/ngettext.1
+#usr/share/man/man1/xgettext.1
+#usr/share/man/man3/bind_textdomain_codeset.3
+#usr/share/man/man3/bindtextdomain.3
+#usr/share/man/man3/dcgettext.3
+#usr/share/man/man3/dcngettext.3
+#usr/share/man/man3/dgettext.3
+#usr/share/man/man3/dngettext.3
+#usr/share/man/man3/gettext.3
+#usr/share/man/man3/ngettext.3
+#usr/share/man/man3/textdomain.3
+##
+## net-tools-1.60
+##
+bin/dnsdomainname
+#bin/domainname
+bin/hostname
+bin/netstat
+#bin/nisdomainname
+#bin/ypdomainname
+sbin/arp
+sbin/ifconfig
+sbin/nameif
+#sbin/plipconfig
+sbin/rarp
+sbin/route
+sbin/slattach
+sbin/mii-tool
+#usr/share/man/man1/dnsdomainname.1
+#usr/share/man/man1/domainname.1
+#usr/share/man/man1/hostname.1
+#usr/share/man/man1/nisdomainname.1
+#usr/share/man/man1/ypdomainname.1
+#usr/share/man/man5/ethers.5
+#usr/share/man/man8/arp.8
+#usr/share/man/man8/ifconfig.8
+#usr/share/man/man8/mii-tool.8
+#usr/share/man/man8/nameif.8
+#usr/share/man/man8/netstat.8
+#usr/share/man/man8/plipconfig.8
+#usr/share/man/man8/rarp.8
+#usr/share/man/man8/route.8
+#usr/share/man/man8/slattach.8
+##
+## inetutils-1.4.2
+##
+bin/ping
+#usr/bin/ftp
+#usr/bin/rcp
+#usr/bin/rlogin
+#usr/bin/rsh
+#usr/bin/talk
+#usr/bin/telnet
+#usr/bin/tftp
+#usr/share/info/inetutils.info
+#usr/share/info/inetutils.info-1
+#usr/share/info/inetutils.info-2
+#usr/share/info/inetutils.info-3
+#usr/share/man/man1/ftp.1
+#usr/share/man/man1/logger.1
+#usr/share/man/man1/rcp.1
+#usr/share/man/man1/rlogin.1
+#usr/share/man/man1/rsh.1
+#usr/share/man/man1/talk.1
+#usr/share/man/man1/telnet.1
+#usr/share/man/man1/tftp.1
+#usr/share/man/man5/syslog.conf.5
+#usr/share/man/man8/ftpd.8
+#usr/share/man/man8/inetd.8
+#usr/share/man/man8/ping.8
+#usr/share/man/man8/rexecd.8
+#usr/share/man/man8/rlogind.8
+#usr/share/man/man8/rshd.8
+#usr/share/man/man8/syslogd.8
+#usr/share/man/man8/talkd.8
+#usr/share/man/man8/telnetd.8
+#usr/share/man/man8/tftpd.8
+##
+## perl-5.8.5
+##
+#usr/bin/a2p
+#usr/bin/c2ph
+#usr/bin/dprofpp
+#usr/bin/enc2xs
+#usr/bin/find2perl
+#usr/bin/h2ph
+#usr/bin/h2xs
+#usr/bin/libnetcfg
+usr/bin/perl
+usr/bin/perl5.8.5
+#usr/bin/perlbug
+#usr/bin/perlcc
+#usr/bin/perldoc
+#usr/bin/perlivp
+#usr/bin/piconv
+#usr/bin/pl2pm
+#usr/bin/pod2html
+#usr/bin/pod2latex
+#usr/bin/pod2man
+#usr/bin/pod2text
+#usr/bin/pod2usage
+#usr/bin/podchecker
+#usr/bin/podselect
+#usr/bin/psed
+#usr/bin/pstruct
+#usr/bin/s2p
+usr/bin/sperl5.8.5
+#usr/bin/splain
+usr/bin/suidperl
+#usr/bin/xsubpp
+#usr/lib/perl5
+#usr/lib/perl5/5.8.5
+usr/lib/perl5/5.8.5/AnyDBM_File.pm
+#usr/lib/perl5/5.8.5/Attribute
+#usr/lib/perl5/5.8.5/Attribute/Handlers
+usr/lib/perl5/5.8.5/Attribute/Handlers.pm
+#usr/lib/perl5/5.8.5/Attribute/Handlers/Changes
+#usr/lib/perl5/5.8.5/Attribute/Handlers/README
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/Demo.pm
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/Descriptions.pm
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/MyClass.pm
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo2.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo3.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo4.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_call.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_chain.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_cycle.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_hashdir.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_phases.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_range.pl
+#usr/lib/perl5/5.8.5/Attribute/Handlers/demo/demo_rawdata.pl
+usr/lib/perl5/5.8.5/AutoLoader.pm
+usr/lib/perl5/5.8.5/AutoSplit.pm
+#usr/lib/perl5/5.8.5/B
+#usr/lib/perl5/5.8.5/B/assemble
+#usr/lib/perl5/5.8.5/B/cc_harness
+#usr/lib/perl5/5.8.5/B/disassemble
+#usr/lib/perl5/5.8.5/B/makeliblinks
+#usr/lib/perl5/5.8.5/Benchmark.pm
+#usr/lib/perl5/5.8.5/CGI
+usr/lib/perl5/5.8.5/CGI.pm
+usr/lib/perl5/5.8.5/CGI/Apache.pm
+usr/lib/perl5/5.8.5/CGI/Carp.pm
+usr/lib/perl5/5.8.5/CGI/Cookie.pm
+usr/lib/perl5/5.8.5/CGI/Fast.pm
+usr/lib/perl5/5.8.5/CGI/Pretty.pm
+usr/lib/perl5/5.8.5/CGI/Push.pm
+usr/lib/perl5/5.8.5/CGI/Switch.pm
+usr/lib/perl5/5.8.5/CGI/Util.pm
+#usr/lib/perl5/5.8.5/CGI/eg
+#usr/lib/perl5/5.8.5/CGI/eg/RunMeFirst
+#usr/lib/perl5/5.8.5/CGI/eg/caution.xbm
+#usr/lib/perl5/5.8.5/CGI/eg/clickable_image.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/cookie.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/crash.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/customize.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/diff_upload.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/dna_small_gif.uu
+#usr/lib/perl5/5.8.5/CGI/eg/file_upload.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/frameset.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/index.html
+#usr/lib/perl5/5.8.5/CGI/eg/internal_links.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/javascript.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/make_links.pl
+#usr/lib/perl5/5.8.5/CGI/eg/monty.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/multiple_forms.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/nph-clock.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/nph-multipart.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/popup.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/save_state.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/tryit.cgi
+#usr/lib/perl5/5.8.5/CGI/eg/wilogo_gif.uu
+#usr/lib/perl5/5.8.5/CPAN
+#usr/lib/perl5/5.8.5/CPAN.pm
+#usr/lib/perl5/5.8.5/CPAN/FirstTime.pm
+#usr/lib/perl5/5.8.5/CPAN/Nox.pm
+#usr/lib/perl5/5.8.5/Carp
+usr/lib/perl5/5.8.5/Carp.pm
+usr/lib/perl5/5.8.5/Carp/Heavy.pm
+#usr/lib/perl5/5.8.5/Class
+#usr/lib/perl5/5.8.5/Class/ISA
+usr/lib/perl5/5.8.5/Class/ISA.pm
+#usr/lib/perl5/5.8.5/Class/ISA/test.pl
+usr/lib/perl5/5.8.5/Class/Struct.pm
+usr/lib/perl5/5.8.5/DB.pm
+#usr/lib/perl5/5.8.5/Devel
+#usr/lib/perl5/5.8.5/Devel/SelfStubber.pm
+#usr/lib/perl5/5.8.5/Digest.pm
+#usr/lib/perl5/5.8.5/DirHandle.pm
+#usr/lib/perl5/5.8.5/Dumpvalue.pm
+#usr/lib/perl5/5.8.5/Encode
+#usr/lib/perl5/5.8.5/Encode/CN
+#usr/lib/perl5/5.8.5/Encode/CN/HZ.pm
+#usr/lib/perl5/5.8.5/Encode/Changes.e2x
+#usr/lib/perl5/5.8.5/Encode/ConfigLocal_PM.e2x
+#usr/lib/perl5/5.8.5/Encode/JP
+#usr/lib/perl5/5.8.5/Encode/JP/H2Z.pm
+#usr/lib/perl5/5.8.5/Encode/JP/JIS7.pm
+#usr/lib/perl5/5.8.5/Encode/KR
+#usr/lib/perl5/5.8.5/Encode/KR/2022_KR.pm
+#usr/lib/perl5/5.8.5/Encode/MIME
+#usr/lib/perl5/5.8.5/Encode/MIME/Header.pm
+#usr/lib/perl5/5.8.5/Encode/Makefile_PL.e2x
+#usr/lib/perl5/5.8.5/Encode/PerlIO.pod
+#usr/lib/perl5/5.8.5/Encode/README.e2x
+#usr/lib/perl5/5.8.5/Encode/Supported.pod
+#usr/lib/perl5/5.8.5/Encode/_PM.e2x
+#usr/lib/perl5/5.8.5/Encode/_T.e2x
+#usr/lib/perl5/5.8.5/Encode/encode.h
+usr/lib/perl5/5.8.5/English.pm
+usr/lib/perl5/5.8.5/Env.pm
+#usr/lib/perl5/5.8.5/Exporter
+usr/lib/perl5/5.8.5/Exporter.pm
+usr/lib/perl5/5.8.5/Exporter/Heavy.pm
+#usr/lib/perl5/5.8.5/ExtUtils
+#usr/lib/perl5/5.8.5/ExtUtils/Changes
+#usr/lib/perl5/5.8.5/ExtUtils/Command
+#usr/lib/perl5/5.8.5/ExtUtils/Command.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Command/MM.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Constant.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Embed.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Install.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Installed.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Liblist
+#usr/lib/perl5/5.8.5/ExtUtils/Liblist.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Liblist/Kid.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MANIFEST.SKIP
+#usr/lib/perl5/5.8.5/ExtUtils/MM.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_Any.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_BeOS.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_Cygwin.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_DOS.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_MacOS.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_NW5.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_OS2.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_UWIN.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_Unix.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_VMS.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_Win32.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MM_Win95.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MY.pm
+#usr/lib/perl5/5.8.5/ExtUtils/MakeMaker.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Manifest.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Miniperl.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Mkbootstrap.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Mksymlists.pm
+#usr/lib/perl5/5.8.5/ExtUtils/Packlist.pm
+#usr/lib/perl5/5.8.5/ExtUtils/instmodsh
+#usr/lib/perl5/5.8.5/ExtUtils/testlib.pm
+#usr/lib/perl5/5.8.5/ExtUtils/typemap
+#usr/lib/perl5/5.8.5/ExtUtils/xsubpp
+usr/lib/perl5/5.8.5/Fatal.pm
+#usr/lib/perl5/5.8.5/File
+usr/lib/perl5/5.8.5/File/Basename.pm
+usr/lib/perl5/5.8.5/File/CheckTree.pm
+usr/lib/perl5/5.8.5/File/Compare.pm
+usr/lib/perl5/5.8.5/File/Copy.pm
+#usr/lib/perl5/5.8.5/File/DosGlob.pm
+usr/lib/perl5/5.8.5/File/Find.pm
+usr/lib/perl5/5.8.5/File/Path.pm
+#usr/lib/perl5/5.8.5/File/Spec
+usr/lib/perl5/5.8.5/File/Spec.pm
+#usr/lib/perl5/5.8.5/File/Spec/Cygwin.pm
+#usr/lib/perl5/5.8.5/File/Spec/Epoc.pm
+usr/lib/perl5/5.8.5/File/Spec/Functions.pm
+#usr/lib/perl5/5.8.5/File/Spec/Mac.pm
+#usr/lib/perl5/5.8.5/File/Spec/OS2.pm
+usr/lib/perl5/5.8.5/File/Spec/Unix.pm
+#usr/lib/perl5/5.8.5/File/Spec/VMS.pm
+#usr/lib/perl5/5.8.5/File/Spec/Win32.pm
+usr/lib/perl5/5.8.5/File/Temp.pm
+usr/lib/perl5/5.8.5/File/stat.pm
+usr/lib/perl5/5.8.5/FileCache.pm
+usr/lib/perl5/5.8.5/FileHandle.pm
+#usr/lib/perl5/5.8.5/Filter
+usr/lib/perl5/5.8.5/Filter/Simple
+usr/lib/perl5/5.8.5/Filter/Simple.pm
+#usr/lib/perl5/5.8.5/Filter/Simple/Changes
+#usr/lib/perl5/5.8.5/Filter/Simple/README
+usr/lib/perl5/5.8.5/FindBin.pm
+#usr/lib/perl5/5.8.5/Getopt
+#usr/lib/perl5/5.8.5/Getopt/Long
+usr/lib/perl5/5.8.5/Getopt/Long.pm
+#usr/lib/perl5/5.8.5/Getopt/Long/CHANGES
+#usr/lib/perl5/5.8.5/Getopt/Long/README
+usr/lib/perl5/5.8.5/Getopt/Std.pm
+#usr/lib/perl5/5.8.5/Hash
+usr/lib/perl5/5.8.5/Hash/Util.pm
+#usr/lib/perl5/5.8.5/I18N
+usr/lib/perl5/5.8.5/I18N/Collate.pm
+#usr/lib/perl5/5.8.5/I18N/LangTags
+usr/lib/perl5/5.8.5/I18N/LangTags.pm
+#usr/lib/perl5/5.8.5/I18N/LangTags/ChangeLog
+usr/lib/perl5/5.8.5/I18N/LangTags/List.pm
+#usr/lib/perl5/5.8.5/I18N/LangTags/README
+#usr/lib/perl5/5.8.5/I18N/LangTags/test.pl
+#usr/lib/perl5/5.8.5/IO
+#usr/lib/perl5/5.8.5/IO/Socket
+usr/lib/perl5/5.8.5/IO/Socket/INET.pm
+usr/lib/perl5/5.8.5/IO/Socket/UNIX.pm
+#usr/lib/perl5/5.8.5/IPC
+#usr/lib/perl5/5.8.5/IPC/Open2.pm
+#usr/lib/perl5/5.8.5/IPC/Open3.pm
+#usr/lib/perl5/5.8.5/List
+usr/lib/perl5/5.8.5/List/Util.pm
+#usr/lib/perl5/5.8.5/Locale
+#usr/lib/perl5/5.8.5/Locale/Codes
+#usr/lib/perl5/5.8.5/Locale/Codes/ChangeLog
+#usr/lib/perl5/5.8.5/Locale/Codes/README
+#usr/lib/perl5/5.8.5/Locale/Constants.pm
+#usr/lib/perl5/5.8.5/Locale/Constants.pod
+#usr/lib/perl5/5.8.5/Locale/Country.pm
+#usr/lib/perl5/5.8.5/Locale/Country.pod
+#usr/lib/perl5/5.8.5/Locale/Currency.pm
+#usr/lib/perl5/5.8.5/Locale/Currency.pod
+#usr/lib/perl5/5.8.5/Locale/Language.pm
+#usr/lib/perl5/5.8.5/Locale/Language.pod
+#usr/lib/perl5/5.8.5/Locale/Maketext
+#usr/lib/perl5/5.8.5/Locale/Maketext.pm
+#usr/lib/perl5/5.8.5/Locale/Maketext.pod
+#usr/lib/perl5/5.8.5/Locale/Maketext/ChangeLog
+#usr/lib/perl5/5.8.5/Locale/Maketext/README
+#usr/lib/perl5/5.8.5/Locale/Maketext/TPJ13.pod
+#usr/lib/perl5/5.8.5/Locale/Maketext/test.pl
+#usr/lib/perl5/5.8.5/Locale/Script.pm
+#usr/lib/perl5/5.8.5/Locale/Script.pod
+#usr/lib/perl5/5.8.5/Math
+#usr/lib/perl5/5.8.5/Math/BigFloat
+usr/lib/perl5/5.8.5/Math/BigFloat.pm
+usr/lib/perl5/5.8.5/Math/BigFloat/Trace.pm
+#usr/lib/perl5/5.8.5/Math/BigInt
+usr/lib/perl5/5.8.5/Math/BigInt.pm
+usr/lib/perl5/5.8.5/Math/BigInt/Calc.pm
+usr/lib/perl5/5.8.5/Math/BigInt/Trace.pm
+usr/lib/perl5/5.8.5/Math/BigRat.pm
+usr/lib/perl5/5.8.5/Math/Complex.pm
+usr/lib/perl5/5.8.5/Math/Trig.pm
+#usr/lib/perl5/5.8.5/Memoize
+usr/lib/perl5/5.8.5/Memoize.pm
+usr/lib/perl5/5.8.5/Memoize/AnyDBM_File.pm
+usr/lib/perl5/5.8.5/Memoize/Expire.pm
+usr/lib/perl5/5.8.5/Memoize/ExpireFile.pm
+usr/lib/perl5/5.8.5/Memoize/ExpireTest.pm
+usr/lib/perl5/5.8.5/Memoize/NDBM_File.pm
+#usr/lib/perl5/5.8.5/Memoize/README
+usr/lib/perl5/5.8.5/Memoize/SDBM_File.pm
+usr/lib/perl5/5.8.5/Memoize/Storable.pm
+#usr/lib/perl5/5.8.5/Memoize/TODO
+#usr/lib/perl5/5.8.5/NEXT
+usr/lib/perl5/5.8.5/NEXT.pm
+#usr/lib/perl5/5.8.5/NEXT/Changes
+#usr/lib/perl5/5.8.5/NEXT/README
+#usr/lib/perl5/5.8.5/Net
+#usr/lib/perl5/5.8.5/Net/ChangeLog.libnet
+usr/lib/perl5/5.8.5/Net/Cmd.pm
+#usr/lib/perl5/5.8.5/Net/Config.eg
+usr/lib/perl5/5.8.5/Net/Config.pm
+usr/lib/perl5/5.8.5/Net/Domain.pm
+#usr/lib/perl5/5.8.5/Net/FTP
+#usr/lib/perl5/5.8.5/Net/FTP.pm
+#usr/lib/perl5/5.8.5/Net/FTP/A.pm
+#usr/lib/perl5/5.8.5/Net/FTP/E.pm
+#usr/lib/perl5/5.8.5/Net/FTP/I.pm
+#usr/lib/perl5/5.8.5/Net/FTP/L.pm
+#usr/lib/perl5/5.8.5/Net/FTP/dataconn.pm
+usr/lib/perl5/5.8.5/Net/Hostname.eg
+#usr/lib/perl5/5.8.5/Net/NNTP.pm
+#usr/lib/perl5/5.8.5/Net/Netrc.pm
+#usr/lib/perl5/5.8.5/Net/POP3.pm
+#usr/lib/perl5/5.8.5/Net/Ping
+usr/lib/perl5/5.8.5/Net/Ping.pm
+#usr/lib/perl5/5.8.5/Net/Ping/Changes
+#usr/lib/perl5/5.8.5/Net/Ping/README
+#usr/lib/perl5/5.8.5/Net/README.libnet
+usr/lib/perl5/5.8.5/Net/SMTP.pm
+usr/lib/perl5/5.8.5/Net/Time.pm
+#usr/lib/perl5/5.8.5/Net/demos
+#usr/lib/perl5/5.8.5/Net/demos/ftp
+#usr/lib/perl5/5.8.5/Net/demos/inetd
+#usr/lib/perl5/5.8.5/Net/demos/nntp
+#usr/lib/perl5/5.8.5/Net/demos/nntp.mirror
+#usr/lib/perl5/5.8.5/Net/demos/pop3
+#usr/lib/perl5/5.8.5/Net/demos/smtp.self
+#usr/lib/perl5/5.8.5/Net/demos/time
+usr/lib/perl5/5.8.5/Net/hostent.pm
+#usr/lib/perl5/5.8.5/Net/libnetFAQ.pod
+usr/lib/perl5/5.8.5/Net/netent.pm
+usr/lib/perl5/5.8.5/Net/protoent.pm
+usr/lib/perl5/5.8.5/Net/servent.pm
+#usr/lib/perl5/5.8.5/PerlIO
+usr/lib/perl5/5.8.5/PerlIO.pm
+#usr/lib/perl5/5.8.5/PerlIO/via
+usr/lib/perl5/5.8.5/PerlIO/via/QuotedPrint.pm
+#usr/lib/perl5/5.8.5/Pod
+#usr/lib/perl5/5.8.5/Pod/Checker.pm
+#usr/lib/perl5/5.8.5/Pod/Find.pm
+#usr/lib/perl5/5.8.5/Pod/Functions.pm
+#usr/lib/perl5/5.8.5/Pod/Html.pm
+#usr/lib/perl5/5.8.5/Pod/InputObjects.pm
+#usr/lib/perl5/5.8.5/Pod/LaTeX.pm
+#usr/lib/perl5/5.8.5/Pod/Man.pm
+#usr/lib/perl5/5.8.5/Pod/ParseLink.pm
+#usr/lib/perl5/5.8.5/Pod/ParseUtils.pm
+#usr/lib/perl5/5.8.5/Pod/Parser.pm
+#usr/lib/perl5/5.8.5/Pod/Plainer.pm
+#usr/lib/perl5/5.8.5/Pod/Select.pm
+#usr/lib/perl5/5.8.5/Pod/Text
+#usr/lib/perl5/5.8.5/Pod/Text.pm
+#usr/lib/perl5/5.8.5/Pod/Text/Color.pm
+#usr/lib/perl5/5.8.5/Pod/Text/Overstrike.pm
+#usr/lib/perl5/5.8.5/Pod/Text/Termcap.pm
+#usr/lib/perl5/5.8.5/Pod/Usage.pm
+#usr/lib/perl5/5.8.5/Scalar
+usr/lib/perl5/5.8.5/Scalar/Util.pm
+#usr/lib/perl5/5.8.5/Search
+usr/lib/perl5/5.8.5/Search/Dict.pm
+usr/lib/perl5/5.8.5/SelectSaver.pm
+usr/lib/perl5/5.8.5/SelfLoader.pm
+usr/lib/perl5/5.8.5/Shell.pm
+#usr/lib/perl5/5.8.5/Switch
+usr/lib/perl5/5.8.5/Switch.pm
+#usr/lib/perl5/5.8.5/Switch/Changes
+#usr/lib/perl5/5.8.5/Switch/README
+usr/lib/perl5/5.8.5/Symbol.pm
+#usr/lib/perl5/5.8.5/Term
+#usr/lib/perl5/5.8.5/Term/ANSIColor
+#usr/lib/perl5/5.8.5/Term/ANSIColor.pm
+#usr/lib/perl5/5.8.5/Term/ANSIColor/ChangeLog
+#usr/lib/perl5/5.8.5/Term/ANSIColor/README
+#usr/lib/perl5/5.8.5/Term/ANSIColor/test.pl
+#usr/lib/perl5/5.8.5/Term/Cap.pm
+#usr/lib/perl5/5.8.5/Term/Complete.pm
+#usr/lib/perl5/5.8.5/Term/ReadLine.pm
+#usr/lib/perl5/5.8.5/Test
+#usr/lib/perl5/5.8.5/Test.pm
+#usr/lib/perl5/5.8.5/Test/Builder.pm
+#usr/lib/perl5/5.8.5/Test/Harness
+#usr/lib/perl5/5.8.5/Test/Harness.pm
+#usr/lib/perl5/5.8.5/Test/Harness/Assert.pm
+#usr/lib/perl5/5.8.5/Test/Harness/Changes
+#usr/lib/perl5/5.8.5/Test/Harness/Iterator.pm
+#usr/lib/perl5/5.8.5/Test/Harness/Straps.pm
+#usr/lib/perl5/5.8.5/Test/More.pm
+#usr/lib/perl5/5.8.5/Test/Simple
+#usr/lib/perl5/5.8.5/Test/Simple.pm
+#usr/lib/perl5/5.8.5/Test/Simple/Changes
+#usr/lib/perl5/5.8.5/Test/Simple/README
+#usr/lib/perl5/5.8.5/Test/Tutorial.pod
+#usr/lib/perl5/5.8.5/Text
+#usr/lib/perl5/5.8.5/Text/Abbrev.pm
+#usr/lib/perl5/5.8.5/Text/Balanced
+#usr/lib/perl5/5.8.5/Text/Balanced.pm
+#usr/lib/perl5/5.8.5/Text/Balanced/Changes
+#usr/lib/perl5/5.8.5/Text/Balanced/README
+#usr/lib/perl5/5.8.5/Text/ParseWords.pm
+#usr/lib/perl5/5.8.5/Text/Soundex.pm
+#usr/lib/perl5/5.8.5/Text/Tabs.pm
+#usr/lib/perl5/5.8.5/Text/TabsWrap
+#usr/lib/perl5/5.8.5/Text/TabsWrap/CHANGELOG
+#usr/lib/perl5/5.8.5/Text/Wrap.pm
+#usr/lib/perl5/5.8.5/Thread
+usr/lib/perl5/5.8.5/Thread.pm
+usr/lib/perl5/5.8.5/Thread/Queue.pm
+usr/lib/perl5/5.8.5/Thread/Semaphore.pm
+#usr/lib/perl5/5.8.5/Tie
+usr/lib/perl5/5.8.5/Tie/Array.pm
+usr/lib/perl5/5.8.5/Tie/File.pm
+usr/lib/perl5/5.8.5/Tie/Handle.pm
+usr/lib/perl5/5.8.5/Tie/Hash.pm
+usr/lib/perl5/5.8.5/Tie/Memoize.pm
+usr/lib/perl5/5.8.5/Tie/RefHash.pm
+usr/lib/perl5/5.8.5/Tie/Scalar.pm
+usr/lib/perl5/5.8.5/Tie/SubstrHash.pm
+#usr/lib/perl5/5.8.5/Time
+usr/lib/perl5/5.8.5/Time/Local.pm
+usr/lib/perl5/5.8.5/Time/gmtime.pm
+usr/lib/perl5/5.8.5/Time/localtime.pm
+usr/lib/perl5/5.8.5/Time/tm.pm
+usr/lib/perl5/5.8.5/UNIVERSAL.pm
+#usr/lib/perl5/5.8.5/Unicode
+#usr/lib/perl5/5.8.5/Unicode/Collate
+usr/lib/perl5/5.8.5/Unicode/Collate.pm
+#usr/lib/perl5/5.8.5/Unicode/Collate/Changes
+#usr/lib/perl5/5.8.5/Unicode/Collate/README
+#usr/lib/perl5/5.8.5/Unicode/Collate/keys.txt
+#usr/lib/perl5/5.8.5/Unicode/README
+usr/lib/perl5/5.8.5/Unicode/UCD.pm
+#usr/lib/perl5/5.8.5/User
+usr/lib/perl5/5.8.5/User/grent.pm
+usr/lib/perl5/5.8.5/User/pwent.pm
+#usr/lib/perl5/5.8.5/Win32.pod
+usr/lib/perl5/5.8.5/abbrev.pl
+usr/lib/perl5/5.8.5/assert.pl
+usr/lib/perl5/5.8.5/attributes.pm
+usr/lib/perl5/5.8.5/autouse.pm
+usr/lib/perl5/5.8.5/base.pm
+usr/lib/perl5/5.8.5/bigfloat.pl
+usr/lib/perl5/5.8.5/bigint.pl
+usr/lib/perl5/5.8.5/bigint.pm
+usr/lib/perl5/5.8.5/bignum.pm
+usr/lib/perl5/5.8.5/bigrat.pl
+usr/lib/perl5/5.8.5/bigrat.pm
+usr/lib/perl5/5.8.5/blib.pm
+usr/lib/perl5/5.8.5/bytes.pm
+usr/lib/perl5/5.8.5/bytes_heavy.pl
+usr/lib/perl5/5.8.5/cacheout.pl
+usr/lib/perl5/5.8.5/charnames.pm
+usr/lib/perl5/5.8.5/complete.pl
+usr/lib/perl5/5.8.5/constant.pm
+usr/lib/perl5/5.8.5/ctime.pl
+usr/lib/perl5/5.8.5/diagnostics.pm
+usr/lib/perl5/5.8.5/dotsh.pl
+usr/lib/perl5/5.8.5/dumpvar.pl
+usr/lib/perl5/5.8.5/exceptions.pl
+usr/lib/perl5/5.8.5/fastcwd.pl
+usr/lib/perl5/5.8.5/fields.pm
+usr/lib/perl5/5.8.5/filetest.pm
+usr/lib/perl5/5.8.5/find.pl
+usr/lib/perl5/5.8.5/finddepth.pl
+usr/lib/perl5/5.8.5/flush.pl
+usr/lib/perl5/5.8.5/getcwd.pl
+usr/lib/perl5/5.8.5/getopt.pl
+usr/lib/perl5/5.8.5/getopts.pl
+usr/lib/perl5/5.8.5/hostname.pl
+#usr/lib/perl5/5.8.5/i386-linux
+#usr/lib/perl5/5.8.5/i386-linux/.packlist
+#usr/lib/perl5/5.8.5/i386-linux/B
+#usr/lib/perl5/5.8.5/i386-linux/B.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Asmdata.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Assembler.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Bblock.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Bytecode.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/C.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/CC.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Concise.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Debug.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Deparse.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Disassembler.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Lint.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Showlex.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Stackobj.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Stash.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Terse.pm
+#usr/lib/perl5/5.8.5/i386-linux/B/Xref.pm
+usr/lib/perl5/5.8.5/i386-linux/ByteLoader.pm
+#usr/lib/perl5/5.8.5/i386-linux/CORE
+#usr/lib/perl5/5.8.5/i386-linux/CORE/EXTERN.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/INTERN.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/XSUB.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/av.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/cc_runtime.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/config.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/cop.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/cv.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/dosish.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/embed.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/embedvar.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/fakesdio.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/fakethr.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/form.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/gv.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/handy.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/hv.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/intrpvar.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/iperlsys.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/keywords.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/libperl.a
+#usr/lib/perl5/5.8.5/i386-linux/CORE/mg.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/nostdio.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/op.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/opcode.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/opnames.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/patchlevel.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/perl.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/perlapi.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/perlio.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/perliol.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/perlsdio.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/perlsfio.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/perlvars.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/perly.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/pp.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/pp_proto.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/proto.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/reentr.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/regcomp.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/regexp.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/regnodes.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/scope.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/sv.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/thrdvar.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/thread.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/uconfig.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/unixish.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/utf8.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/utfebcdic.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/util.h
+#usr/lib/perl5/5.8.5/i386-linux/CORE/warnings.h
+usr/lib/perl5/5.8.5/i386-linux/Config.pm
+usr/lib/perl5/5.8.5/i386-linux/Cwd.pm
+#usr/lib/perl5/5.8.5/i386-linux/Data
+usr/lib/perl5/5.8.5/i386-linux/Data/Dumper.pm
+#usr/lib/perl5/5.8.5/i386-linux/Devel
+#usr/lib/perl5/5.8.5/i386-linux/Devel/DProf.pm
+#usr/lib/perl5/5.8.5/i386-linux/Devel/PPPort.pm
+#usr/lib/perl5/5.8.5/i386-linux/Devel/Peek.pm
+#usr/lib/perl5/5.8.5/i386-linux/Digest
+usr/lib/perl5/5.8.5/i386-linux/Digest/MD5.pm
+usr/lib/perl5/5.8.5/i386-linux/DynaLoader.pm
+#usr/lib/perl5/5.8.5/i386-linux/Encode
+usr/lib/perl5/5.8.5/i386-linux/Encode.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/Alias.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/Byte.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/CJKConstants.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/CN.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/Config.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/EBCDIC.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/Encoder.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/Encoding.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/Guess.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/JP.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/KR.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/Symbol.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/TW.pm
+usr/lib/perl5/5.8.5/i386-linux/Encode/Unicode.pm
+usr/lib/perl5/5.8.5/i386-linux/Errno.pm
+usr/lib/perl5/5.8.5/i386-linux/Fcntl.pm
+#usr/lib/perl5/5.8.5/i386-linux/File
+usr/lib/perl5/5.8.5/i386-linux/File/Glob.pm
+#usr/lib/perl5/5.8.5/i386-linux/Filter
+#usr/lib/perl5/5.8.5/i386-linux/Filter/Util
+usr/lib/perl5/5.8.5/i386-linux/Filter/Util/Call.pm
+#usr/lib/perl5/5.8.5/i386-linux/I18N
+usr/lib/perl5/5.8.5/i386-linux/I18N/Langinfo.pm
+#usr/lib/perl5/5.8.5/i386-linux/IO
+usr/lib/perl5/5.8.5/i386-linux/IO.pm
+usr/lib/perl5/5.8.5/i386-linux/IO/Dir.pm
+usr/lib/perl5/5.8.5/i386-linux/IO/File.pm
+usr/lib/perl5/5.8.5/i386-linux/IO/Handle.pm
+usr/lib/perl5/5.8.5/i386-linux/IO/Pipe.pm
+usr/lib/perl5/5.8.5/i386-linux/IO/Poll.pm
+usr/lib/perl5/5.8.5/i386-linux/IO/Seekable.pm
+usr/lib/perl5/5.8.5/i386-linux/IO/Select.pm
+usr/lib/perl5/5.8.5/i386-linux/IO/Socket.pm
+#usr/lib/perl5/5.8.5/i386-linux/IPC
+#usr/lib/perl5/5.8.5/i386-linux/IPC/Msg.pm
+#usr/lib/perl5/5.8.5/i386-linux/IPC/Semaphore.pm
+#usr/lib/perl5/5.8.5/i386-linux/IPC/SysV.pm
+#usr/lib/perl5/5.8.5/i386-linux/MIME
+usr/lib/perl5/5.8.5/i386-linux/MIME/Base64.pm
+usr/lib/perl5/5.8.5/i386-linux/MIME/QuotedPrint.pm
+usr/lib/perl5/5.8.5/i386-linux/O.pm
+usr/lib/perl5/5.8.5/i386-linux/Opcode.pm
+usr/lib/perl5/5.8.5/i386-linux/POSIX.pm
+#usr/lib/perl5/5.8.5/i386-linux/POSIX.pod
+#usr/lib/perl5/5.8.5/i386-linux/PerlIO
+usr/lib/perl5/5.8.5/i386-linux/PerlIO/encoding.pm
+usr/lib/perl5/5.8.5/i386-linux/PerlIO/scalar.pm
+usr/lib/perl5/5.8.5/i386-linux/PerlIO/via.pm
+usr/lib/perl5/5.8.5/i386-linux/SDBM_File.pm
+usr/lib/perl5/5.8.5/i386-linux/Safe.pm
+usr/lib/perl5/5.8.5/i386-linux/Socket.pm
+usr/lib/perl5/5.8.5/i386-linux/Storable.pm
+#usr/lib/perl5/5.8.5/i386-linux/Sys
+usr/lib/perl5/5.8.5/i386-linux/Sys/Hostname.pm
+usr/lib/perl5/5.8.5/i386-linux/Sys/Syslog.pm
+#usr/lib/perl5/5.8.5/i386-linux/Time
+usr/lib/perl5/5.8.5/i386-linux/Time/HiRes.pm
+#usr/lib/perl5/5.8.5/i386-linux/Unicode
+usr/lib/perl5/5.8.5/i386-linux/Unicode/Normalize.pm
+#usr/lib/perl5/5.8.5/i386-linux/XS
+usr/lib/perl5/5.8.5/i386-linux/XS/APItest.pm
+usr/lib/perl5/5.8.5/i386-linux/XS/Typemap.pm
+usr/lib/perl5/5.8.5/i386-linux/XSLoader.pm
+usr/lib/perl5/5.8.5/i386-linux/attrs.pm
+#usr/lib/perl5/5.8.5/i386-linux/auto
+#usr/lib/perl5/5.8.5/i386-linux/auto/B
+#usr/lib/perl5/5.8.5/i386-linux/auto/B/B.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/B/B.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/B/C
+#usr/lib/perl5/5.8.5/i386-linux/auto/B/C/C.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/B/C/C.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/ByteLoader
+#usr/lib/perl5/5.8.5/i386-linux/auto/ByteLoader/ByteLoader.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/ByteLoader/ByteLoader.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Cwd
+#usr/lib/perl5/5.8.5/i386-linux/auto/Cwd/Cwd.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Cwd/Cwd.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Data
+#usr/lib/perl5/5.8.5/i386-linux/auto/Data/Dumper
+#usr/lib/perl5/5.8.5/i386-linux/auto/Data/Dumper/Dumper.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Data/Dumper/Dumper.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Devel
+#usr/lib/perl5/5.8.5/i386-linux/auto/Devel/DProf
+#usr/lib/perl5/5.8.5/i386-linux/auto/Devel/DProf/DProf.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/Devel/DProf/DProf.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Devel/PPPort
+#usr/lib/perl5/5.8.5/i386-linux/auto/Devel/PPPort/PPPort.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/Devel/PPPort/PPPort.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Devel/Peek
+#usr/lib/perl5/5.8.5/i386-linux/auto/Devel/Peek/Peek.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/Devel/Peek/Peek.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Digest
+#usr/lib/perl5/5.8.5/i386-linux/auto/Digest/MD5
+#usr/lib/perl5/5.8.5/i386-linux/auto/Digest/MD5/MD5.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Digest/MD5/MD5.so
+usr/lib/perl5/5.8.5/i386-linux/auto/DynaLoader
+#usr/lib/perl5/5.8.5/i386-linux/auto/DynaLoader/DynaLoader.a
+#usr/lib/perl5/5.8.5/i386-linux/auto/DynaLoader/autosplit.ix
+#usr/lib/perl5/5.8.5/i386-linux/auto/DynaLoader/dl_expandspec.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/DynaLoader/dl_find_symbol_anywhere.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/DynaLoader/dl_findfile.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/DynaLoader/extralibs.ld
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Byte
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Byte/Byte.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Byte/Byte.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/CN
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/CN/CN.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/CN/CN.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/EBCDIC
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/EBCDIC/EBCDIC.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/EBCDIC/EBCDIC.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Encode.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Encode.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/JP
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/JP/JP.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/JP/JP.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/KR
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/KR/KR.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/KR/KR.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Symbol
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Symbol/Symbol.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Symbol/Symbol.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/TW
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/TW/TW.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/TW/TW.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Unicode
+#usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Unicode/Unicode.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Encode/Unicode/Unicode.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Fcntl
+#usr/lib/perl5/5.8.5/i386-linux/auto/Fcntl/Fcntl.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Fcntl/Fcntl.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/File
+#usr/lib/perl5/5.8.5/i386-linux/auto/File/Glob
+#usr/lib/perl5/5.8.5/i386-linux/auto/File/Glob/Glob.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/File/Glob/Glob.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Filter
+#usr/lib/perl5/5.8.5/i386-linux/auto/Filter/Util
+#usr/lib/perl5/5.8.5/i386-linux/auto/Filter/Util/Call
+#usr/lib/perl5/5.8.5/i386-linux/auto/Filter/Util/Call/Call.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Filter/Util/Call/Call.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/I18N
+#usr/lib/perl5/5.8.5/i386-linux/auto/I18N/Langinfo
+#usr/lib/perl5/5.8.5/i386-linux/auto/I18N/Langinfo/Langinfo.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/I18N/Langinfo/Langinfo.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/I18N/Langinfo/autosplit.ix
+#usr/lib/perl5/5.8.5/i386-linux/auto/IO
+#usr/lib/perl5/5.8.5/i386-linux/auto/IO/IO.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/IO/IO.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/IPC
+#usr/lib/perl5/5.8.5/i386-linux/auto/IPC/SysV
+#usr/lib/perl5/5.8.5/i386-linux/auto/IPC/SysV/SysV.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/IPC/SysV/SysV.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/List
+#usr/lib/perl5/5.8.5/i386-linux/auto/List/Util
+#usr/lib/perl5/5.8.5/i386-linux/auto/List/Util/Util.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/List/Util/Util.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/MIME
+#usr/lib/perl5/5.8.5/i386-linux/auto/MIME/Base64
+#usr/lib/perl5/5.8.5/i386-linux/auto/MIME/Base64/Base64.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/MIME/Base64/Base64.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Opcode
+#usr/lib/perl5/5.8.5/i386-linux/auto/Opcode/Opcode.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Opcode/Opcode.so
+usr/lib/perl5/5.8.5/i386-linux/auto/POSIX
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/POSIX.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/POSIX.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/abs.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/alarm.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/assert.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/atan2.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/atexit.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/atof.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/atoi.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/atol.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/autosplit.ix
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/bsearch.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/calloc.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/chdir.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/chmod.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/chown.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/clearerr.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/closedir.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/cos.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/creat.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/div.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/errno.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/execl.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/execle.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/execlp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/execv.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/execve.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/execvp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/exit.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/exp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fabs.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fclose.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fcntl.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fdopen.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/feof.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/ferror.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fflush.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fgetc.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fgetpos.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fgets.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fileno.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fopen.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fork.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fprintf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fputc.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fputs.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fread.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/free.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/freopen.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fscanf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fseek.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fsetpos.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fstat.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/ftell.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/fwrite.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getc.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getchar.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getegid.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getenv.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/geteuid.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getgid.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getgrgid.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getgrnam.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getgroups.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getlogin.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getpgrp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getpid.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getppid.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getpwnam.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getpwuid.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/gets.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/getuid.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/gmtime.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/isatty.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/kill.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/labs.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/ldiv.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/link.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/load_imports.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/localtime.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/log.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/longjmp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/malloc.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/memchr.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/memcmp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/memcpy.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/memmove.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/memset.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/mkdir.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/offsetof.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/opendir.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/perror.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/pow.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/printf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/putc.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/putchar.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/puts.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/qsort.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/raise.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/rand.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/readdir.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/realloc.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/redef.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/remove.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/rename.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/rewind.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/rewinddir.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/rmdir.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/scanf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/setbuf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/setjmp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/setvbuf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/siglongjmp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/sigsetjmp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/sin.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/sleep.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/sprintf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/sqrt.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/srand.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/sscanf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/stat.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strcat.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strchr.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strcmp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strcpy.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strcspn.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strerror.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strlen.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strncat.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strncmp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strncpy.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strpbrk.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strrchr.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strspn.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strstr.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/strtok.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/system.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/time.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/tmpfile.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/tolower.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/toupper.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/umask.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/ungetc.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/unimpl.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/unlink.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/usage.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/utime.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/vfprintf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/vprintf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/vsprintf.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/wait.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/POSIX/waitpid.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/PerlIO
+#usr/lib/perl5/5.8.5/i386-linux/auto/PerlIO/encoding
+#usr/lib/perl5/5.8.5/i386-linux/auto/PerlIO/encoding/encoding.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/PerlIO/encoding/encoding.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/PerlIO/scalar
+#usr/lib/perl5/5.8.5/i386-linux/auto/PerlIO/scalar/scalar.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/PerlIO/scalar/scalar.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/PerlIO/via
+#usr/lib/perl5/5.8.5/i386-linux/auto/PerlIO/via/via.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/PerlIO/via/via.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/SDBM_File
+#usr/lib/perl5/5.8.5/i386-linux/auto/SDBM_File/SDBM_File.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/SDBM_File/SDBM_File.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Socket
+#usr/lib/perl5/5.8.5/i386-linux/auto/Socket/Socket.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Socket/Socket.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/CAN_FLOCK.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/Storable.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Storable/Storable.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/_freeze.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/_retrieve.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/_store.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/_store_fd.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/autosplit.ix
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/fd_retrieve.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/freeze.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/lock_nstore.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/lock_retrieve.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/lock_store.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/logcarp.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/logcroak.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/nfreeze.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/nstore.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/nstore_fd.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/read_magic.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/retrieve.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/show_file_magic.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/store.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/store_fd.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Storable/thaw.al
+#usr/lib/perl5/5.8.5/i386-linux/auto/Sys
+#usr/lib/perl5/5.8.5/i386-linux/auto/Sys/Hostname
+#usr/lib/perl5/5.8.5/i386-linux/auto/Sys/Hostname/Hostname.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Sys/Hostname/Hostname.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Sys/Hostname/autosplit.ix
+#usr/lib/perl5/5.8.5/i386-linux/auto/Sys/Syslog
+#usr/lib/perl5/5.8.5/i386-linux/auto/Sys/Syslog/Syslog.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Sys/Syslog/Syslog.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Time
+#usr/lib/perl5/5.8.5/i386-linux/auto/Time/HiRes
+#usr/lib/perl5/5.8.5/i386-linux/auto/Time/HiRes/HiRes.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Time/HiRes/HiRes.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Unicode
+#usr/lib/perl5/5.8.5/i386-linux/auto/Unicode/Normalize
+#usr/lib/perl5/5.8.5/i386-linux/auto/Unicode/Normalize/Normalize.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/Unicode/Normalize/Normalize.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/Unicode/Normalize/autosplit.ix
+#usr/lib/perl5/5.8.5/i386-linux/auto/XS
+#usr/lib/perl5/5.8.5/i386-linux/auto/XS/APItest
+#usr/lib/perl5/5.8.5/i386-linux/auto/XS/APItest/APItest.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/XS/APItest/APItest.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/XS/Typemap
+#usr/lib/perl5/5.8.5/i386-linux/auto/XS/Typemap/Typemap.bs
+#usr/lib/perl5/5.8.5/i386-linux/auto/XS/Typemap/Typemap.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/attrs
+#usr/lib/perl5/5.8.5/i386-linux/auto/attrs/attrs.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/attrs/attrs.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/re
+#usr/lib/perl5/5.8.5/i386-linux/auto/re/re.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/re/re.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/sdbm
+#usr/lib/perl5/5.8.5/i386-linux/auto/sdbm/extralibs.ld
+#usr/lib/perl5/5.8.5/i386-linux/auto/threads
+#usr/lib/perl5/5.8.5/i386-linux/auto/threads/shared
+#usr/lib/perl5/5.8.5/i386-linux/auto/threads/shared/shared.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/threads/shared/shared.so
+#usr/lib/perl5/5.8.5/i386-linux/auto/threads/threads.bs
+usr/lib/perl5/5.8.5/i386-linux/auto/threads/threads.so
+usr/lib/perl5/5.8.5/i386-linux/encoding.pm
+usr/lib/perl5/5.8.5/i386-linux/lib.pm
+usr/lib/perl5/5.8.5/i386-linux/ops.pm
+usr/lib/perl5/5.8.5/i386-linux/re.pm
+#usr/lib/perl5/5.8.5/i386-linux/threads
+usr/lib/perl5/5.8.5/i386-linux/threads.pm
+usr/lib/perl5/5.8.5/i386-linux/threads/shared.pm
+usr/lib/perl5/5.8.5/if.pm
+usr/lib/perl5/5.8.5/importenv.pl
+usr/lib/perl5/5.8.5/integer.pm
+usr/lib/perl5/5.8.5/less.pm
+usr/lib/perl5/5.8.5/locale.pm
+usr/lib/perl5/5.8.5/look.pl
+usr/lib/perl5/5.8.5/newgetopt.pl
+usr/lib/perl5/5.8.5/open.pm
+usr/lib/perl5/5.8.5/open2.pl
+usr/lib/perl5/5.8.5/open3.pl
+usr/lib/perl5/5.8.5/overload.pm
+usr/lib/perl5/5.8.5/perl5db.pl
+#usr/lib/perl5/5.8.5/pod
+#usr/lib/perl5/5.8.5/pod/perl.pod
+#usr/lib/perl5/5.8.5/pod/perl5004delta.pod
+#usr/lib/perl5/5.8.5/pod/perl5005delta.pod
+#usr/lib/perl5/5.8.5/pod/perl561delta.pod
+#usr/lib/perl5/5.8.5/pod/perl56delta.pod
+#usr/lib/perl5/5.8.5/pod/perl570delta.pod
+#usr/lib/perl5/5.8.5/pod/perl571delta.pod
+#usr/lib/perl5/5.8.5/pod/perl572delta.pod
+#usr/lib/perl5/5.8.5/pod/perlaix.pod
+#usr/lib/perl5/5.8.5/pod/perlamiga.pod
+#usr/lib/perl5/5.8.5/pod/perlapi.pod
+#usr/lib/perl5/5.8.5/pod/perlapio.pod
+#usr/lib/perl5/5.8.5/pod/perlapollo.pod
+#usr/lib/perl5/5.8.5/pod/perlbeos.pod
+#usr/lib/perl5/5.8.5/pod/perlbook.pod
+#usr/lib/perl5/5.8.5/pod/perlboot.pod
+#usr/lib/perl5/5.8.5/pod/perlbot.pod
+#usr/lib/perl5/5.8.5/pod/perlbs2000.pod
+#usr/lib/perl5/5.8.5/pod/perlcall.pod
+#usr/lib/perl5/5.8.5/pod/perlce.pod
+#usr/lib/perl5/5.8.5/pod/perlclib.pod
+#usr/lib/perl5/5.8.5/pod/perlcn.pod
+#usr/lib/perl5/5.8.5/pod/perlcompile.pod
+#usr/lib/perl5/5.8.5/pod/perlcygwin.pod
+#usr/lib/perl5/5.8.5/pod/perldata.pod
+#usr/lib/perl5/5.8.5/pod/perldbmfilter.pod
+#usr/lib/perl5/5.8.5/pod/perldebguts.pod
+#usr/lib/perl5/5.8.5/pod/perldebtut.pod
+#usr/lib/perl5/5.8.5/pod/perldebug.pod
+#usr/lib/perl5/5.8.5/pod/perldelta.pod
+#usr/lib/perl5/5.8.5/pod/perldgux.pod
+#usr/lib/perl5/5.8.5/pod/perldiag.pod
+#usr/lib/perl5/5.8.5/pod/perldos.pod
+#usr/lib/perl5/5.8.5/pod/perldsc.pod
+#usr/lib/perl5/5.8.5/pod/perlebcdic.pod
+#usr/lib/perl5/5.8.5/pod/perlembed.pod
+#usr/lib/perl5/5.8.5/pod/perlepoc.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq1.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq2.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq3.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq4.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq5.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq6.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq7.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq8.pod
+#usr/lib/perl5/5.8.5/pod/perlfaq9.pod
+#usr/lib/perl5/5.8.5/pod/perlfilter.pod
+#usr/lib/perl5/5.8.5/pod/perlfork.pod
+#usr/lib/perl5/5.8.5/pod/perlform.pod
+#usr/lib/perl5/5.8.5/pod/perlfreebsd.pod
+#usr/lib/perl5/5.8.5/pod/perlfunc.pod
+#usr/lib/perl5/5.8.5/pod/perlguts.pod
+#usr/lib/perl5/5.8.5/pod/perlhack.pod
+#usr/lib/perl5/5.8.5/pod/perlhist.pod
+#usr/lib/perl5/5.8.5/pod/perlhpux.pod
+#usr/lib/perl5/5.8.5/pod/perlhurd.pod
+#usr/lib/perl5/5.8.5/pod/perlintern.pod
+#usr/lib/perl5/5.8.5/pod/perlintro.pod
+#usr/lib/perl5/5.8.5/pod/perliol.pod
+#usr/lib/perl5/5.8.5/pod/perlipc.pod
+#usr/lib/perl5/5.8.5/pod/perlirix.pod
+#usr/lib/perl5/5.8.5/pod/perljp.pod
+#usr/lib/perl5/5.8.5/pod/perlko.pod
+#usr/lib/perl5/5.8.5/pod/perllexwarn.pod
+#usr/lib/perl5/5.8.5/pod/perllocale.pod
+#usr/lib/perl5/5.8.5/pod/perllol.pod
+#usr/lib/perl5/5.8.5/pod/perlmachten.pod
+#usr/lib/perl5/5.8.5/pod/perlmacos.pod
+#usr/lib/perl5/5.8.5/pod/perlmint.pod
+#usr/lib/perl5/5.8.5/pod/perlmod.pod
+#usr/lib/perl5/5.8.5/pod/perlmodinstall.pod
+#usr/lib/perl5/5.8.5/pod/perlmodlib.pod
+#usr/lib/perl5/5.8.5/pod/perlmodstyle.pod
+#usr/lib/perl5/5.8.5/pod/perlmpeix.pod
+#usr/lib/perl5/5.8.5/pod/perlnetware.pod
+#usr/lib/perl5/5.8.5/pod/perlnewmod.pod
+#usr/lib/perl5/5.8.5/pod/perlnumber.pod
+#usr/lib/perl5/5.8.5/pod/perlobj.pod
+#usr/lib/perl5/5.8.5/pod/perlop.pod
+#usr/lib/perl5/5.8.5/pod/perlopentut.pod
+#usr/lib/perl5/5.8.5/pod/perlos2.pod
+#usr/lib/perl5/5.8.5/pod/perlos390.pod
+#usr/lib/perl5/5.8.5/pod/perlothrtut.pod
+#usr/lib/perl5/5.8.5/pod/perlpacktut.pod
+#usr/lib/perl5/5.8.5/pod/perlplan9.pod
+#usr/lib/perl5/5.8.5/pod/perlpod.pod
+#usr/lib/perl5/5.8.5/pod/perlpodspec.pod
+#usr/lib/perl5/5.8.5/pod/perlport.pod
+#usr/lib/perl5/5.8.5/pod/perlqnx.pod
+#usr/lib/perl5/5.8.5/pod/perlre.pod
+#usr/lib/perl5/5.8.5/pod/perlref.pod
+#usr/lib/perl5/5.8.5/pod/perlreftut.pod
+#usr/lib/perl5/5.8.5/pod/perlrequick.pod
+#usr/lib/perl5/5.8.5/pod/perlretut.pod
+#usr/lib/perl5/5.8.5/pod/perlrun.pod
+#usr/lib/perl5/5.8.5/pod/perlsec.pod
+#usr/lib/perl5/5.8.5/pod/perlsolaris.pod
+#usr/lib/perl5/5.8.5/pod/perlstyle.pod
+#usr/lib/perl5/5.8.5/pod/perlsub.pod
+#usr/lib/perl5/5.8.5/pod/perlsyn.pod
+#usr/lib/perl5/5.8.5/pod/perlthrtut.pod
+#usr/lib/perl5/5.8.5/pod/perltie.pod
+#usr/lib/perl5/5.8.5/pod/perltoc.pod
+#usr/lib/perl5/5.8.5/pod/perltodo.pod
+#usr/lib/perl5/5.8.5/pod/perltooc.pod
+#usr/lib/perl5/5.8.5/pod/perltoot.pod
+#usr/lib/perl5/5.8.5/pod/perltrap.pod
+#usr/lib/perl5/5.8.5/pod/perltru64.pod
+#usr/lib/perl5/5.8.5/pod/perltw.pod
+#usr/lib/perl5/5.8.5/pod/perlunicode.pod
+#usr/lib/perl5/5.8.5/pod/perluniintro.pod
+#usr/lib/perl5/5.8.5/pod/perlutil.pod
+#usr/lib/perl5/5.8.5/pod/perluts.pod
+#usr/lib/perl5/5.8.5/pod/perlvar.pod
+#usr/lib/perl5/5.8.5/pod/perlvmesa.pod
+#usr/lib/perl5/5.8.5/pod/perlvms.pod
+#usr/lib/perl5/5.8.5/pod/perlvos.pod
+#usr/lib/perl5/5.8.5/pod/perlwin32.pod
+#usr/lib/perl5/5.8.5/pod/perlxs.pod
+#usr/lib/perl5/5.8.5/pod/perlxstut.pod
+usr/lib/perl5/5.8.5/pwd.pl
+usr/lib/perl5/5.8.5/shellwords.pl
+usr/lib/perl5/5.8.5/sigtrap.pm
+usr/lib/perl5/5.8.5/sort.pm
+usr/lib/perl5/5.8.5/stat.pl
+usr/lib/perl5/5.8.5/strict.pm
+usr/lib/perl5/5.8.5/subs.pm
+usr/lib/perl5/5.8.5/syslog.pl
+usr/lib/perl5/5.8.5/tainted.pl
+usr/lib/perl5/5.8.5/termcap.pl
+usr/lib/perl5/5.8.5/timelocal.pl
+#usr/lib/perl5/5.8.5/unicore
+#usr/lib/perl5/5.8.5/unicore/ArabLink.pl
+#usr/lib/perl5/5.8.5/unicore/ArabLnkGrp.pl
+#usr/lib/perl5/5.8.5/unicore/ArabicShaping.txt
+#usr/lib/perl5/5.8.5/unicore/BidiMirroring.txt
+#usr/lib/perl5/5.8.5/unicore/Bidirectional.pl
+#usr/lib/perl5/5.8.5/unicore/Blocks.txt
+usr/lib/perl5/5.8.5/unicore/Canonical.pl
+#usr/lib/perl5/5.8.5/unicore/CaseFolding.txt
+usr/lib/perl5/5.8.5/unicore/CombiningClass.pl
+#usr/lib/perl5/5.8.5/unicore/CompositionExclusions.txt
+usr/lib/perl5/5.8.5/unicore/Decomposition.pl
+#usr/lib/perl5/5.8.5/unicore/EastAsianWidth.txt
+usr/lib/perl5/5.8.5/unicore/Exact.pl
+#usr/lib/perl5/5.8.5/unicore/Index.txt
+#usr/lib/perl5/5.8.5/unicore/Jamo.txt
+#usr/lib/perl5/5.8.5/unicore/JamoShort.pl
+#usr/lib/perl5/5.8.5/unicore/LineBreak.txt
+#usr/lib/perl5/5.8.5/unicore/Makefile
+usr/lib/perl5/5.8.5/unicore/Name.pl
+#usr/lib/perl5/5.8.5/unicore/NamesList.txt
+#usr/lib/perl5/5.8.5/unicore/PropList.txt
+#usr/lib/perl5/5.8.5/unicore/PropValueAliases.txt
+#usr/lib/perl5/5.8.5/unicore/Properties
+#usr/lib/perl5/5.8.5/unicore/PropertyAliases.txt
+#usr/lib/perl5/5.8.5/unicore/README.perl
+#usr/lib/perl5/5.8.5/unicore/ReadMe.txt
+#usr/lib/perl5/5.8.5/unicore/Scripts.txt
+#usr/lib/perl5/5.8.5/unicore/SpecialCasing.txt
+usr/lib/perl5/5.8.5/unicore/To
+#usr/lib/perl5/5.8.5/unicore/To/Digit.pl
+#usr/lib/perl5/5.8.5/unicore/To/Fold.pl
+#usr/lib/perl5/5.8.5/unicore/To/Lower.pl
+#usr/lib/perl5/5.8.5/unicore/To/Title.pl
+#usr/lib/perl5/5.8.5/unicore/To/Upper.pl
+#usr/lib/perl5/5.8.5/unicore/UnicodeData.txt
+usr/lib/perl5/5.8.5/unicore/lib
+#usr/lib/perl5/5.8.5/unicore/lib/ASCII.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Alnum.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Alpha.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Alphabet.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Any.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Arabic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Armenian.pl
+#usr/lib/perl5/5.8.5/unicore/lib/AsciiHex.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Assigned.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Bengali.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiAL.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiAN.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiB.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiBN.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiCS.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiCont.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiEN.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiES.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiET.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiL.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiLRE.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiLRO.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiNSM.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiON.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiPDF.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiR.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiRLE.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiRLO.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiS.pl
+#usr/lib/perl5/5.8.5/unicore/lib/BidiWS.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Blank.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Bopomofo.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Buhid.pl
+#usr/lib/perl5/5.8.5/unicore/lib/C.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Canadian.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Canon.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cc.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cf.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cherokee.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cn.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cntrl.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Co.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Common.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Compat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cs.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Cyrillic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCcircle.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCcompat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCfinal.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCfont.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCfracti.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCinitia.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCisolat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCmedial.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCnarrow.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCnoBrea.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCsmall.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCsquare.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCsub.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCsuper.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCvertic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/DCwide.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Dash.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Deprecat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Deseret.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Devanaga.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Diacriti.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Digit.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Ethiopic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Extender.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Georgian.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Gothic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Graph.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Grapheme.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Greek.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Gujarati.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Gurmukhi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Han.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Hangul.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Hanunoo.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Hebrew.pl
+#usr/lib/perl5/5.8.5/unicore/lib/HexDigit.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Hiragana.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Hyphen.pl
+#usr/lib/perl5/5.8.5/unicore/lib/IdContin.pl
+#usr/lib/perl5/5.8.5/unicore/lib/IdStart.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Ideograp.pl
+#usr/lib/perl5/5.8.5/unicore/lib/IdsBinar.pl
+#usr/lib/perl5/5.8.5/unicore/lib/IdsTrina.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InAlphab.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InArabi2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InArabi3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InArabic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InArmeni.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InArrows.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBasicL.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBengal.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBlockE.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBopom2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBopomo.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBoxDra.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBraill.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InBuhid.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InByzant.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCherok.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkCo2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkCo3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkCo4.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkCom.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkRad.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkSym.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkUn2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkUn3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCjkUni.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCombi2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCombi3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCombin.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InContro.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCurren.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCyril2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InCyrill.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InDesere.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InDevana.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InDingba.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InEnclo2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InEnclos.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InEthiop.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGenera.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGeomet.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGeorgi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGothic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGreek.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGreekA.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGreekE.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGujara.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InGurmuk.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHalfwi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHangu2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHangu3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHangul.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHanuno.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHebrew.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHighPr.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHighSu.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InHiraga.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InIdeogr.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InIpaExt.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKanbun.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKangxi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKannad.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKatak2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKataka.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InKhmer.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLao.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLatin1.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLatin2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLatin3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLatinE.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLetter.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InLowSur.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMalaya.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMathe2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMathem.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMisce2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMisce3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMisce4.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMiscel.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMongol.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMusica.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InMyanma.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InNumber.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InOgham.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InOldIta.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InOptica.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InOriya.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InPrivat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InRunic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSinhal.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSmallF.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSpacin.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSpecia.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSupers.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSuppl2.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSuppl3.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSuppl4.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSuppl5.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSupple.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InSyriac.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTagalo.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTagban.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTags.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTamil.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTelugu.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InThaana.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InThai.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InTibeta.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InUnifie.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InVariat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InYiRadi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/InYiSyll.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Inherite.pl
+#usr/lib/perl5/5.8.5/unicore/lib/JoinCont.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Kannada.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Katakana.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Khmer.pl
+#usr/lib/perl5/5.8.5/unicore/lib/L.pl
+#usr/lib/perl5/5.8.5/unicore/lib/L_.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lao.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Latin.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Ll.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lm.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lo.pl
+#usr/lib/perl5/5.8.5/unicore/lib/LogicalO.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lower.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lowercas.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lt.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Lu.pl
+#usr/lib/perl5/5.8.5/unicore/lib/M.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Malayala.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Math.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Mc.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Me.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Mirrored.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Mn.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Mongolia.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Myanmar.pl
+#usr/lib/perl5/5.8.5/unicore/lib/N.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Nd.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Nl.pl
+#usr/lib/perl5/5.8.5/unicore/lib/No.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Nonchara.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Ogham.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OldItali.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Oriya.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherAlp.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherDef.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherGra.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherLow.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherMat.pl
+#usr/lib/perl5/5.8.5/unicore/lib/OtherUpp.pl
+#usr/lib/perl5/5.8.5/unicore/lib/P.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Pc.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Pd.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Pe.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Pf.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Pi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Po.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Print.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Ps.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Punct.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Quotatio.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Radical.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Runic.pl
+#usr/lib/perl5/5.8.5/unicore/lib/S.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Sc.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Sinhala.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Sk.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Sm.pl
+#usr/lib/perl5/5.8.5/unicore/lib/So.pl
+#usr/lib/perl5/5.8.5/unicore/lib/SoftDott.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Space.pl
+#usr/lib/perl5/5.8.5/unicore/lib/SpacePer.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Syriac.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Tagalog.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Tagbanwa.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Tamil.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Telugu.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Terminal.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Thaana.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Thai.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Tibetan.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Title.pl
+#usr/lib/perl5/5.8.5/unicore/lib/UnifiedI.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Upper.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Uppercas.pl
+#usr/lib/perl5/5.8.5/unicore/lib/WhiteSpa.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Word.pl
+#usr/lib/perl5/5.8.5/unicore/lib/XDigit.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Yi.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Z.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Zl.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Zp.pl
+#usr/lib/perl5/5.8.5/unicore/lib/Zs.pl
+#usr/lib/perl5/5.8.5/unicore/lib/_CanonDC.pl
+#usr/lib/perl5/5.8.5/unicore/lib/_CaseIgn.pl
+#usr/lib/perl5/5.8.5/unicore/lib/_CombAbo.pl
+#usr/lib/perl5/5.8.5/unicore/mktables
+#usr/lib/perl5/5.8.5/unicore/version
+usr/lib/perl5/5.8.5/utf8.pm
+usr/lib/perl5/5.8.5/utf8_heavy.pl
+usr/lib/perl5/5.8.5/validate.pl
+usr/lib/perl5/5.8.5/vars.pm
+usr/lib/perl5/5.8.5/vmsish.pm
+#usr/lib/perl5/5.8.5/warnings
+usr/lib/perl5/5.8.5/warnings.pm
+usr/lib/perl5/5.8.5/warnings/register.pm
+#usr/lib/perl5/site_perl
+#usr/lib/perl5/site_perl/5.8.5
+#usr/lib/perl5/site_perl/5.8.5/i386-linux
+#usr/share/man/man1/a2p.1
+#usr/share/man/man1/c2ph.1
+#usr/share/man/man1/dprofpp.1
+#usr/share/man/man1/enc2xs.1
+#usr/share/man/man1/find2perl.1
+#usr/share/man/man1/h2ph.1
+#usr/share/man/man1/h2xs.1
+#usr/share/man/man1/libnetcfg.1
+#usr/share/man/man1/perl.1
+#usr/share/man/man1/perl5004delta.1
+#usr/share/man/man1/perl5005delta.1
+#usr/share/man/man1/perl561delta.1
+#usr/share/man/man1/perl56delta.1
+#usr/share/man/man1/perl570delta.1
+#usr/share/man/man1/perl571delta.1
+#usr/share/man/man1/perl572delta.1
+#usr/share/man/man1/perlaix.1
+#usr/share/man/man1/perlamiga.1
+#usr/share/man/man1/perlapi.1
+#usr/share/man/man1/perlapio.1
+#usr/share/man/man1/perlapollo.1
+#usr/share/man/man1/perlbeos.1
+#usr/share/man/man1/perlbook.1
+#usr/share/man/man1/perlboot.1
+#usr/share/man/man1/perlbot.1
+#usr/share/man/man1/perlbs2000.1
+#usr/share/man/man1/perlbug.1
+#usr/share/man/man1/perlcall.1
+#usr/share/man/man1/perlcc.1
+#usr/share/man/man1/perlce.1
+#usr/share/man/man1/perlclib.1
+#usr/share/man/man1/perlcn.1
+#usr/share/man/man1/perlcompile.1
+#usr/share/man/man1/perlcygwin.1
+#usr/share/man/man1/perldata.1
+#usr/share/man/man1/perldbmfilter.1
+#usr/share/man/man1/perldebguts.1
+#usr/share/man/man1/perldebtut.1
+#usr/share/man/man1/perldebug.1
+#usr/share/man/man1/perldelta.1
+#usr/share/man/man1/perldgux.1
+#usr/share/man/man1/perldiag.1
+#usr/share/man/man1/perldoc.1
+#usr/share/man/man1/perldos.1
+#usr/share/man/man1/perldsc.1
+#usr/share/man/man1/perlebcdic.1
+#usr/share/man/man1/perlembed.1
+#usr/share/man/man1/perlepoc.1
+#usr/share/man/man1/perlfaq.1
+#usr/share/man/man1/perlfaq1.1
+#usr/share/man/man1/perlfaq2.1
+#usr/share/man/man1/perlfaq3.1
+#usr/share/man/man1/perlfaq4.1
+#usr/share/man/man1/perlfaq5.1
+#usr/share/man/man1/perlfaq6.1
+#usr/share/man/man1/perlfaq7.1
+#usr/share/man/man1/perlfaq8.1
+#usr/share/man/man1/perlfaq9.1
+#usr/share/man/man1/perlfilter.1
+#usr/share/man/man1/perlfork.1
+#usr/share/man/man1/perlform.1
+#usr/share/man/man1/perlfreebsd.1
+#usr/share/man/man1/perlfunc.1
+#usr/share/man/man1/perlguts.1
+#usr/share/man/man1/perlhack.1
+#usr/share/man/man1/perlhist.1
+#usr/share/man/man1/perlhpux.1
+#usr/share/man/man1/perlhurd.1
+#usr/share/man/man1/perlintern.1
+#usr/share/man/man1/perlintro.1
+#usr/share/man/man1/perliol.1
+#usr/share/man/man1/perlipc.1
+#usr/share/man/man1/perlirix.1
+#usr/share/man/man1/perlivp.1
+#usr/share/man/man1/perljp.1
+#usr/share/man/man1/perlko.1
+#usr/share/man/man1/perllexwarn.1
+#usr/share/man/man1/perllocale.1
+#usr/share/man/man1/perllol.1
+#usr/share/man/man1/perlmachten.1
+#usr/share/man/man1/perlmacos.1
+#usr/share/man/man1/perlmint.1
+#usr/share/man/man1/perlmod.1
+#usr/share/man/man1/perlmodinstall.1
+#usr/share/man/man1/perlmodlib.1
+#usr/share/man/man1/perlmodstyle.1
+#usr/share/man/man1/perlmpeix.1
+#usr/share/man/man1/perlnetware.1
+#usr/share/man/man1/perlnewmod.1
+#usr/share/man/man1/perlnumber.1
+#usr/share/man/man1/perlobj.1
+#usr/share/man/man1/perlop.1
+#usr/share/man/man1/perlopentut.1
+#usr/share/man/man1/perlos2.1
+#usr/share/man/man1/perlos390.1
+#usr/share/man/man1/perlothrtut.1
+#usr/share/man/man1/perlpacktut.1
+#usr/share/man/man1/perlplan9.1
+#usr/share/man/man1/perlpod.1
+#usr/share/man/man1/perlpodspec.1
+#usr/share/man/man1/perlport.1
+#usr/share/man/man1/perlqnx.1
+#usr/share/man/man1/perlre.1
+#usr/share/man/man1/perlref.1
+#usr/share/man/man1/perlreftut.1
+#usr/share/man/man1/perlrequick.1
+#usr/share/man/man1/perlretut.1
+#usr/share/man/man1/perlrun.1
+#usr/share/man/man1/perlsec.1
+#usr/share/man/man1/perlsolaris.1
+#usr/share/man/man1/perlstyle.1
+#usr/share/man/man1/perlsub.1
+#usr/share/man/man1/perlsyn.1
+#usr/share/man/man1/perlthrtut.1
+#usr/share/man/man1/perltie.1
+#usr/share/man/man1/perltoc.1
+#usr/share/man/man1/perltodo.1
+#usr/share/man/man1/perltooc.1
+#usr/share/man/man1/perltoot.1
+#usr/share/man/man1/perltrap.1
+#usr/share/man/man1/perltru64.1
+#usr/share/man/man1/perltw.1
+#usr/share/man/man1/perlunicode.1
+#usr/share/man/man1/perluniintro.1
+#usr/share/man/man1/perlutil.1
+#usr/share/man/man1/perluts.1
+#usr/share/man/man1/perlvar.1
+#usr/share/man/man1/perlvmesa.1
+#usr/share/man/man1/perlvms.1
+#usr/share/man/man1/perlvos.1
+#usr/share/man/man1/perlwin32.1
+#usr/share/man/man1/perlxs.1
+#usr/share/man/man1/perlxstut.1
+#usr/share/man/man1/piconv.1
+#usr/share/man/man1/pl2pm.1
+#usr/share/man/man1/pod2html.1
+#usr/share/man/man1/pod2latex.1
+#usr/share/man/man1/pod2man.1
+#usr/share/man/man1/pod2text.1
+#usr/share/man/man1/pod2usage.1
+#usr/share/man/man1/podchecker.1
+#usr/share/man/man1/podselect.1
+#usr/share/man/man1/psed.1
+#usr/share/man/man1/pstruct.1
+#usr/share/man/man1/s2p.1
+#usr/share/man/man1/splain.1
+#usr/share/man/man1/xsubpp.1
+#usr/share/man/man3/AnyDBM_File.3
+#usr/share/man/man3/Attribute::Handlers.3
+#usr/share/man/man3/Attribute::Handlers::demo::Demo.3
+#usr/share/man/man3/Attribute::Handlers::demo::Descriptions.3
+#usr/share/man/man3/Attribute::Handlers::demo::MyClass.3
+#usr/share/man/man3/AutoLoader.3
+#usr/share/man/man3/AutoSplit.3
+#usr/share/man/man3/B.3
+#usr/share/man/man3/B::Asmdata.3
+#usr/share/man/man3/B::Assembler.3
+#usr/share/man/man3/B::Bblock.3
+#usr/share/man/man3/B::Bytecode.3
+#usr/share/man/man3/B::C.3
+#usr/share/man/man3/B::CC.3
+#usr/share/man/man3/B::Concise.3
+#usr/share/man/man3/B::Debug.3
+#usr/share/man/man3/B::Deparse.3
+#usr/share/man/man3/B::Disassembler.3
+#usr/share/man/man3/B::Lint.3
+#usr/share/man/man3/B::Showlex.3
+#usr/share/man/man3/B::Stackobj.3
+#usr/share/man/man3/B::Stash.3
+#usr/share/man/man3/B::Terse.3
+#usr/share/man/man3/B::Xref.3
+#usr/share/man/man3/Benchmark.3
+#usr/share/man/man3/ByteLoader.3
+#usr/share/man/man3/CGI.3
+#usr/share/man/man3/CGI::Apache.3
+#usr/share/man/man3/CGI::Carp.3
+#usr/share/man/man3/CGI::Cookie.3
+#usr/share/man/man3/CGI::Fast.3
+#usr/share/man/man3/CGI::Pretty.3
+#usr/share/man/man3/CGI::Push.3
+#usr/share/man/man3/CGI::Switch.3
+#usr/share/man/man3/CGI::Util.3
+#usr/share/man/man3/CPAN.3
+#usr/share/man/man3/CPAN::FirstTime.3
+#usr/share/man/man3/CPAN::Nox.3
+#usr/share/man/man3/Carp.3
+#usr/share/man/man3/Carp::Heavy.3
+#usr/share/man/man3/Class::ISA.3
+#usr/share/man/man3/Class::Struct.3
+#usr/share/man/man3/Config.3
+#usr/share/man/man3/Cwd.3
+#usr/share/man/man3/DB.3
+#usr/share/man/man3/Data::Dumper.3
+#usr/share/man/man3/Devel::DProf.3
+#usr/share/man/man3/Devel::PPPort.3
+#usr/share/man/man3/Devel::Peek.3
+#usr/share/man/man3/Devel::SelfStubber.3
+#usr/share/man/man3/Digest.3
+#usr/share/man/man3/Digest::MD5.3
+#usr/share/man/man3/DirHandle.3
+#usr/share/man/man3/Dumpvalue.3
+#usr/share/man/man3/DynaLoader.3
+#usr/share/man/man3/Encode.3
+#usr/share/man/man3/Encode::Alias.3
+#usr/share/man/man3/Encode::Byte.3
+#usr/share/man/man3/Encode::CJKConstants.3
+#usr/share/man/man3/Encode::CN.3
+#usr/share/man/man3/Encode::CN::HZ.3
+#usr/share/man/man3/Encode::Config.3
+#usr/share/man/man3/Encode::EBCDIC.3
+#usr/share/man/man3/Encode::Encoder.3
+#usr/share/man/man3/Encode::Encoding.3
+#usr/share/man/man3/Encode::Guess.3
+#usr/share/man/man3/Encode::JP.3
+#usr/share/man/man3/Encode::JP::H2Z.3
+#usr/share/man/man3/Encode::JP::JIS7.3
+#usr/share/man/man3/Encode::KR.3
+#usr/share/man/man3/Encode::KR::2022_KR.3
+#usr/share/man/man3/Encode::MIME::Header.3
+#usr/share/man/man3/Encode::PerlIO.3
+#usr/share/man/man3/Encode::Supported.3
+#usr/share/man/man3/Encode::Symbol.3
+#usr/share/man/man3/Encode::TW.3
+#usr/share/man/man3/Encode::Unicode.3
+#usr/share/man/man3/English.3
+#usr/share/man/man3/Env.3
+#usr/share/man/man3/Errno.3
+#usr/share/man/man3/Exporter.3
+#usr/share/man/man3/Exporter::Heavy.3
+#usr/share/man/man3/ExtUtils::Command.3
+#usr/share/man/man3/ExtUtils::Command::MM.3
+#usr/share/man/man3/ExtUtils::Constant.3
+#usr/share/man/man3/ExtUtils::Embed.3
+#usr/share/man/man3/ExtUtils::Install.3
+#usr/share/man/man3/ExtUtils::Installed.3
+#usr/share/man/man3/ExtUtils::Liblist.3
+#usr/share/man/man3/ExtUtils::Liblist::Kid.3
+#usr/share/man/man3/ExtUtils::MM.3
+#usr/share/man/man3/ExtUtils::MM_Any.3
+#usr/share/man/man3/ExtUtils::MM_BeOS.3
+#usr/share/man/man3/ExtUtils::MM_Cygwin.3
+#usr/share/man/man3/ExtUtils::MM_DOS.3
+#usr/share/man/man3/ExtUtils::MM_MacOS.3
+#usr/share/man/man3/ExtUtils::MM_NW5.3
+#usr/share/man/man3/ExtUtils::MM_OS2.3
+#usr/share/man/man3/ExtUtils::MM_UWIN.3
+#usr/share/man/man3/ExtUtils::MM_Unix.3
+#usr/share/man/man3/ExtUtils::MM_VMS.3
+#usr/share/man/man3/ExtUtils::MM_Win32.3
+#usr/share/man/man3/ExtUtils::MM_Win95.3
+#usr/share/man/man3/ExtUtils::MY.3
+#usr/share/man/man3/ExtUtils::MakeMaker.3
+#usr/share/man/man3/ExtUtils::Manifest.3
+#usr/share/man/man3/ExtUtils::Miniperl.3
+#usr/share/man/man3/ExtUtils::Mkbootstrap.3
+#usr/share/man/man3/ExtUtils::Mksymlists.3
+#usr/share/man/man3/ExtUtils::Packlist.3
+#usr/share/man/man3/ExtUtils::testlib.3
+#usr/share/man/man3/Fatal.3
+#usr/share/man/man3/Fcntl.3
+#usr/share/man/man3/File::Basename.3
+#usr/share/man/man3/File::CheckTree.3
+#usr/share/man/man3/File::Compare.3
+#usr/share/man/man3/File::Copy.3
+#usr/share/man/man3/File::DosGlob.3
+#usr/share/man/man3/File::Find.3
+#usr/share/man/man3/File::Glob.3
+#usr/share/man/man3/File::Path.3
+#usr/share/man/man3/File::Spec.3
+#usr/share/man/man3/File::Spec::Cygwin.3
+#usr/share/man/man3/File::Spec::Epoc.3
+#usr/share/man/man3/File::Spec::Functions.3
+#usr/share/man/man3/File::Spec::Mac.3
+#usr/share/man/man3/File::Spec::OS2.3
+#usr/share/man/man3/File::Spec::Unix.3
+#usr/share/man/man3/File::Spec::VMS.3
+#usr/share/man/man3/File::Spec::Win32.3
+#usr/share/man/man3/File::Temp.3
+#usr/share/man/man3/File::stat.3
+#usr/share/man/man3/FileCache.3
+#usr/share/man/man3/FileHandle.3
+#usr/share/man/man3/Filter::Simple.3
+#usr/share/man/man3/Filter::Util::Call.3
+#usr/share/man/man3/FindBin.3
+#usr/share/man/man3/Getopt::Long.3
+#usr/share/man/man3/Getopt::Std.3
+#usr/share/man/man3/Hash::Util.3
+#usr/share/man/man3/I18N::Collate.3
+#usr/share/man/man3/I18N::LangTags.3
+#usr/share/man/man3/I18N::LangTags::List.3
+#usr/share/man/man3/I18N::Langinfo.3
+#usr/share/man/man3/IO.3
+#usr/share/man/man3/IO::Dir.3
+#usr/share/man/man3/IO::File.3
+#usr/share/man/man3/IO::Handle.3
+#usr/share/man/man3/IO::Pipe.3
+#usr/share/man/man3/IO::Poll.3
+#usr/share/man/man3/IO::Seekable.3
+#usr/share/man/man3/IO::Select.3
+#usr/share/man/man3/IO::Socket.3
+#usr/share/man/man3/IO::Socket::INET.3
+#usr/share/man/man3/IO::Socket::UNIX.3
+#usr/share/man/man3/IPC::Msg.3
+#usr/share/man/man3/IPC::Open2.3
+#usr/share/man/man3/IPC::Open3.3
+#usr/share/man/man3/IPC::Semaphore.3
+#usr/share/man/man3/IPC::SysV.3
+#usr/share/man/man3/List::Util.3
+#usr/share/man/man3/Locale::Constants.3
+#usr/share/man/man3/Locale::Country.3
+#usr/share/man/man3/Locale::Currency.3
+#usr/share/man/man3/Locale::Language.3
+#usr/share/man/man3/Locale::Maketext.3
+#usr/share/man/man3/Locale::Maketext::TPJ13.3
+#usr/share/man/man3/Locale::Script.3
+#usr/share/man/man3/MIME::Base64.3
+#usr/share/man/man3/MIME::QuotedPrint.3
+#usr/share/man/man3/Math::BigFloat.3
+#usr/share/man/man3/Math::BigFloat::Trace.3
+#usr/share/man/man3/Math::BigInt.3
+#usr/share/man/man3/Math::BigInt::Calc.3
+#usr/share/man/man3/Math::BigInt::Trace.3
+#usr/share/man/man3/Math::BigRat.3
+#usr/share/man/man3/Math::Complex.3
+#usr/share/man/man3/Math::Trig.3
+#usr/share/man/man3/Memoize.3
+#usr/share/man/man3/Memoize::AnyDBM_File.3
+#usr/share/man/man3/Memoize::Expire.3
+#usr/share/man/man3/Memoize::ExpireFile.3
+#usr/share/man/man3/Memoize::ExpireTest.3
+#usr/share/man/man3/Memoize::NDBM_File.3
+#usr/share/man/man3/Memoize::SDBM_File.3
+#usr/share/man/man3/Memoize::Storable.3
+#usr/share/man/man3/NEXT.3
+#usr/share/man/man3/Net::Cmd.3
+#usr/share/man/man3/Net::Config.3
+#usr/share/man/man3/Net::Domain.3
+#usr/share/man/man3/Net::FTP.3
+#usr/share/man/man3/Net::FTP::A.3
+#usr/share/man/man3/Net::FTP::E.3
+#usr/share/man/man3/Net::FTP::I.3
+#usr/share/man/man3/Net::FTP::L.3
+#usr/share/man/man3/Net::FTP::dataconn.3
+#usr/share/man/man3/Net::NNTP.3
+#usr/share/man/man3/Net::Netrc.3
+#usr/share/man/man3/Net::POP3.3
+#usr/share/man/man3/Net::Ping.3
+#usr/share/man/man3/Net::SMTP.3
+#usr/share/man/man3/Net::Time.3
+#usr/share/man/man3/Net::hostent.3
+#usr/share/man/man3/Net::libnetFAQ.3
+#usr/share/man/man3/Net::netent.3
+#usr/share/man/man3/Net::protoent.3
+#usr/share/man/man3/Net::servent.3
+#usr/share/man/man3/O.3
+#usr/share/man/man3/Opcode.3
+#usr/share/man/man3/POSIX.3
+#usr/share/man/man3/PerlIO.3
+#usr/share/man/man3/PerlIO::encoding.3
+#usr/share/man/man3/PerlIO::scalar.3
+#usr/share/man/man3/PerlIO::via.3
+#usr/share/man/man3/PerlIO::via::QuotedPrint.3
+#usr/share/man/man3/Pod::Checker.3
+#usr/share/man/man3/Pod::Find.3
+#usr/share/man/man3/Pod::Html.3
+#usr/share/man/man3/Pod::InputObjects.3
+#usr/share/man/man3/Pod::LaTeX.3
+#usr/share/man/man3/Pod::Man.3
+#usr/share/man/man3/Pod::ParseLink.3
+#usr/share/man/man3/Pod::ParseUtils.3
+#usr/share/man/man3/Pod::Parser.3
+#usr/share/man/man3/Pod::Plainer.3
+#usr/share/man/man3/Pod::Select.3
+#usr/share/man/man3/Pod::Text.3
+#usr/share/man/man3/Pod::Text::Color.3
+#usr/share/man/man3/Pod::Text::Overstrike.3
+#usr/share/man/man3/Pod::Text::Termcap.3
+#usr/share/man/man3/Pod::Usage.3
+#usr/share/man/man3/SDBM_File.3
+#usr/share/man/man3/Safe.3
+#usr/share/man/man3/Scalar::Util.3
+#usr/share/man/man3/Search::Dict.3
+#usr/share/man/man3/SelectSaver.3
+#usr/share/man/man3/SelfLoader.3
+#usr/share/man/man3/Shell.3
+#usr/share/man/man3/Socket.3
+#usr/share/man/man3/Storable.3
+#usr/share/man/man3/Switch.3
+#usr/share/man/man3/Symbol.3
+#usr/share/man/man3/Sys::Hostname.3
+#usr/share/man/man3/Sys::Syslog.3
+#usr/share/man/man3/Term::ANSIColor.3
+#usr/share/man/man3/Term::Cap.3
+#usr/share/man/man3/Term::Complete.3
+#usr/share/man/man3/Term::ReadLine.3
+#usr/share/man/man3/Test.3
+#usr/share/man/man3/Test::Builder.3
+#usr/share/man/man3/Test::Harness.3
+#usr/share/man/man3/Test::Harness::Assert.3
+#usr/share/man/man3/Test::Harness::Iterator.3
+#usr/share/man/man3/Test::Harness::Straps.3
+#usr/share/man/man3/Test::More.3
+#usr/share/man/man3/Test::Simple.3
+#usr/share/man/man3/Test::Tutorial.3
+#usr/share/man/man3/Text::Abbrev.3
+#usr/share/man/man3/Text::Balanced.3
+#usr/share/man/man3/Text::ParseWords.3
+#usr/share/man/man3/Text::Soundex.3
+#usr/share/man/man3/Text::Tabs.3
+#usr/share/man/man3/Text::Wrap.3
+#usr/share/man/man3/Thread.3
+#usr/share/man/man3/Thread::Queue.3
+#usr/share/man/man3/Thread::Semaphore.3
+#usr/share/man/man3/Tie::Array.3
+#usr/share/man/man3/Tie::File.3
+#usr/share/man/man3/Tie::Handle.3
+#usr/share/man/man3/Tie::Hash.3
+#usr/share/man/man3/Tie::Memoize.3
+#usr/share/man/man3/Tie::RefHash.3
+#usr/share/man/man3/Tie::Scalar.3
+#usr/share/man/man3/Tie::SubstrHash.3
+#usr/share/man/man3/Time::HiRes.3
+#usr/share/man/man3/Time::Local.3
+#usr/share/man/man3/Time::gmtime.3
+#usr/share/man/man3/Time::localtime.3
+#usr/share/man/man3/Time::tm.3
+#usr/share/man/man3/UNIVERSAL.3
+#usr/share/man/man3/Unicode::Collate.3
+#usr/share/man/man3/Unicode::Normalize.3
+#usr/share/man/man3/Unicode::UCD.3
+#usr/share/man/man3/User::grent.3
+#usr/share/man/man3/User::pwent.3
+#usr/share/man/man3/Win32.3
+#usr/share/man/man3/XS::APItest.3
+#usr/share/man/man3/XS::Typemap.3
+#usr/share/man/man3/XSLoader.3
+#usr/share/man/man3/attributes.3
+#usr/share/man/man3/attrs.3
+#usr/share/man/man3/autouse.3
+#usr/share/man/man3/base.3
+#usr/share/man/man3/bigint.3
+#usr/share/man/man3/bignum.3
+#usr/share/man/man3/bigrat.3
+#usr/share/man/man3/blib.3
+#usr/share/man/man3/bytes.3
+#usr/share/man/man3/charnames.3
+#usr/share/man/man3/constant.3
+#usr/share/man/man3/diagnostics.3
+#usr/share/man/man3/encoding.3
+#usr/share/man/man3/fields.3
+#usr/share/man/man3/filetest.3
+#usr/share/man/man3/if.3
+#usr/share/man/man3/integer.3
+#usr/share/man/man3/less.3
+#usr/share/man/man3/lib.3
+#usr/share/man/man3/locale.3
+#usr/share/man/man3/open.3
+#usr/share/man/man3/ops.3
+#usr/share/man/man3/overload.3
+#usr/share/man/man3/re.3
+#usr/share/man/man3/sigtrap.3
+#usr/share/man/man3/sort.3
+#usr/share/man/man3/strict.3
+#usr/share/man/man3/subs.3
+#usr/share/man/man3/threads.3
+#usr/share/man/man3/threads::shared.3
+#usr/share/man/man3/utf8.3
+#usr/share/man/man3/vars.3
+#usr/share/man/man3/vmsish.3
+#usr/share/man/man3/warnings.3
+#usr/share/man/man3/warnings::register.3
+##
+## texinfo-4.7
+##
+#usr/bin/info
+#usr/bin/infokey
+#usr/bin/install-info
+#usr/bin/makeinfo
+#usr/bin/texi2dvi
+#usr/bin/texindex
+#usr/share/info/info-stnd.info
+#usr/share/info/info.info
+#usr/share/info/texinfo
+#usr/share/info/texinfo-1
+#usr/share/info/texinfo-2
+#usr/share/info/texinfo-3
+#usr/share/man/man1/info.1
+#usr/share/man/man1/install-info.1
+#usr/share/man/man1/makeinfo.1
+#usr/share/man/man1/texi2dvi.1
+#usr/share/man/man1/texindex.1
+#usr/share/man/man5/info.5
+#usr/share/man/man5/texinfo.5
+#usr/share/texinfo
+#usr/share/texinfo/texinfo.dtd
+#usr/share/texinfo/texinfo.xsl
+##
+## autoconf-2.59
+##
+#usr/bin/autoconf
+#usr/bin/autoheader
+#usr/bin/autom4te
+#usr/bin/autoreconf
+#usr/bin/autoscan
+#usr/bin/autoupdate
+#usr/bin/ifnames
+#usr/share/autoconf
+#usr/share/autoconf/Autom4te
+#usr/share/autoconf/Autom4te/General.pm
+#usr/share/autoconf/Autom4te/Struct.pm
+#usr/share/autoconf/Autom4te/XFile.pm
+#usr/share/autoconf/INSTALL
+#usr/share/autoconf/autoconf
+#usr/share/autoconf/autoconf/autoconf.m4
+#usr/share/autoconf/autoconf/autoconf.m4f
+#usr/share/autoconf/autoconf/autoheader.m4
+#usr/share/autoconf/autoconf/autoscan.m4
+#usr/share/autoconf/autoconf/autotest.m4
+#usr/share/autoconf/autoconf/autoupdate.m4
+#usr/share/autoconf/autoconf/c.m4
+#usr/share/autoconf/autoconf/fortran.m4
+#usr/share/autoconf/autoconf/functions.m4
+#usr/share/autoconf/autoconf/general.m4
+#usr/share/autoconf/autoconf/headers.m4
+#usr/share/autoconf/autoconf/lang.m4
+#usr/share/autoconf/autoconf/libs.m4
+#usr/share/autoconf/autoconf/oldnames.m4
+#usr/share/autoconf/autoconf/programs.m4
+#usr/share/autoconf/autoconf/specific.m4
+#usr/share/autoconf/autoconf/status.m4
+#usr/share/autoconf/autoconf/types.m4
+#usr/share/autoconf/autom4te.cfg
+#usr/share/autoconf/autoscan
+#usr/share/autoconf/autoscan/autoscan.list
+#usr/share/autoconf/autotest
+#usr/share/autoconf/autotest/autotest.m4
+#usr/share/autoconf/autotest/autotest.m4f
+#usr/share/autoconf/autotest/general.m4
+#usr/share/autoconf/m4sugar
+#usr/share/autoconf/m4sugar/m4sh.m4
+#usr/share/autoconf/m4sugar/m4sh.m4f
+#usr/share/autoconf/m4sugar/m4sugar.m4
+#usr/share/autoconf/m4sugar/m4sugar.m4f
+#usr/share/autoconf/m4sugar/version.m4
+#usr/share/info/autoconf.info
+#usr/share/man/man1/autoconf.1
+#usr/share/man/man1/autoheader.1
+#usr/share/man/man1/autom4te.1
+#usr/share/man/man1/autoreconf.1
+#usr/share/man/man1/autoscan.1
+#usr/share/man/man1/autoupdate.1
+#usr/share/man/man1/config.guess.1
+#usr/share/man/man1/config.sub.1
+#usr/share/man/man1/ifnames.1
+##
+## automake-1.8.4
+##
+#usr/bin/aclocal
+#usr/bin/aclocal-1.8
+#usr/bin/automake
+#usr/bin/automake-1.8
+#usr/share/aclocal-1.8
+#usr/share/aclocal-1.8/amversion.m4
+#usr/share/aclocal-1.8/as.m4
+#usr/share/aclocal-1.8/auxdir.m4
+#usr/share/aclocal-1.8/ccstdc.m4
+#usr/share/aclocal-1.8/cond.m4
+#usr/share/aclocal-1.8/depend.m4
+#usr/share/aclocal-1.8/depout.m4
+#usr/share/aclocal-1.8/dmalloc.m4
+#usr/share/aclocal-1.8/gcj.m4
+#usr/share/aclocal-1.8/header.m4
+#usr/share/aclocal-1.8/init.m4
+#usr/share/aclocal-1.8/install-sh.m4
+#usr/share/aclocal-1.8/lead-dot.m4
+#usr/share/aclocal-1.8/lex.m4
+#usr/share/aclocal-1.8/lispdir.m4
+#usr/share/aclocal-1.8/maintainer.m4
+#usr/share/aclocal-1.8/make.m4
+#usr/share/aclocal-1.8/minuso.m4
+#usr/share/aclocal-1.8/missing.m4
+#usr/share/aclocal-1.8/multi.m4
+#usr/share/aclocal-1.8/obsol-gt.m4
+#usr/share/aclocal-1.8/obsol-lt.m4
+#usr/share/aclocal-1.8/obsolete.m4
+#usr/share/aclocal-1.8/options.m4
+#usr/share/aclocal-1.8/protos.m4
+#usr/share/aclocal-1.8/python.m4
+#usr/share/aclocal-1.8/regex.m4
+#usr/share/aclocal-1.8/runlog.m4
+#usr/share/aclocal-1.8/sanity.m4
+#usr/share/aclocal-1.8/strip.m4
+#usr/share/automake
+#usr/share/automake-1.8
+#usr/share/automake-1.8/Automake
+#usr/share/automake-1.8/Automake/Channels.pm
+#usr/share/automake-1.8/Automake/General.pm
+#usr/share/automake-1.8/Automake/Struct.pm
+#usr/share/automake-1.8/Automake/XFile.pm
+#usr/share/automake-1.8/COPYING
+#usr/share/automake-1.8/INSTALL
+#usr/share/automake-1.8/acinstall
+#usr/share/automake-1.8/am
+#usr/share/automake-1.8/am/ansi2knr.am
+#usr/share/automake-1.8/am/check.am
+#usr/share/automake-1.8/am/clean-hdr.am
+#usr/share/automake-1.8/am/clean.am
+#usr/share/automake-1.8/am/compile.am
+#usr/share/automake-1.8/am/configure.am
+#usr/share/automake-1.8/am/data.am
+#usr/share/automake-1.8/am/dejagnu.am
+#usr/share/automake-1.8/am/depend.am
+#usr/share/automake-1.8/am/depend2.am
+#usr/share/automake-1.8/am/distdir.am
+#usr/share/automake-1.8/am/footer.am
+#usr/share/automake-1.8/am/header-vars.am
+#usr/share/automake-1.8/am/header.am
+#usr/share/automake-1.8/am/install.am
+#usr/share/automake-1.8/am/java.am
+#usr/share/automake-1.8/am/lang-compile.am
+#usr/share/automake-1.8/am/lex.am
+#usr/share/automake-1.8/am/library.am
+#usr/share/automake-1.8/am/libs.am
+#usr/share/automake-1.8/am/libtool.am
+#usr/share/automake-1.8/am/lisp.am
+#usr/share/automake-1.8/am/ltlib.am
+#usr/share/automake-1.8/am/ltlibrary.am
+#usr/share/automake-1.8/am/mans-vars.am
+#usr/share/automake-1.8/am/mans.am
+#usr/share/automake-1.8/am/multilib.am
+#usr/share/automake-1.8/am/program.am
+#usr/share/automake-1.8/am/progs.am
+#usr/share/automake-1.8/am/python.am
+#usr/share/automake-1.8/am/remake-hdr.am
+#usr/share/automake-1.8/am/scripts.am
+#usr/share/automake-1.8/am/subdirs.am
+#usr/share/automake-1.8/am/tags.am
+#usr/share/automake-1.8/am/texi-vers.am
+#usr/share/automake-1.8/am/texibuild.am
+#usr/share/automake-1.8/am/texinfos.am
+#usr/share/automake-1.8/am/yacc.am
+#usr/share/automake-1.8/ansi2knr.1
+#usr/share/automake-1.8/ansi2knr.c
+#usr/share/automake-1.8/compile
+#usr/share/automake-1.8/config.guess
+#usr/share/automake-1.8/config.sub
+#usr/share/automake-1.8/depcomp
+#usr/share/automake-1.8/elisp-comp
+#usr/share/automake-1.8/install-sh
+#usr/share/automake-1.8/mdate-sh
+#usr/share/automake-1.8/missing
+#usr/share/automake-1.8/mkinstalldirs
+#usr/share/automake-1.8/py-compile
+#usr/share/automake-1.8/texinfo.tex
+#usr/share/automake-1.8/ylwrap
+#usr/share/info/automake.info
+##
+## bash-2.05b
+##
+bin/sh
+bin/bash
+#bin/bashbug
+#usr/share/info/bash.info
+#usr/share/man/man1/bash.1
+#usr/share/man/man1/bashbug.1
+##
+## file-4.16
+##
+#usr/bin/file
+#usr/include/magic.h
+#usr/lib/libmagic.a
+#usr/lib/libmagic.la
+#usr/lib/libmagic.so
+#usr/lib/libmagic.so.1
+#usr/lib/libmagic.so.1.0.0
+#usr/share/file
+#usr/share/file/magic
+#usr/share/file/magic.mgc
+#usr/share/file/magic.mime
+#usr/share/file/magic.mime.mgc
+#usr/share/man/man1/file.1
+#usr/share/man/man3/libmagic.3
+#usr/share/man/man4/magic.4
+##
+## libtool-1.5.6
+##
+#usr/bin/libtool
+#usr/bin/libtoolize
+#usr/include/ltdl.h
+#usr/lib/libltdl.a
+#usr/lib/libltdl.la
+#usr/lib/libltdl.so
+#usr/lib/libltdl.so.3
+#usr/lib/libltdl.so.3.1.0
+#usr/share/aclocal/libtool.m4
+#usr/share/aclocal/ltdl.m4
+#usr/share/info/libtool.info
+#usr/share/info/libtool.info-1
+#usr/share/info/libtool.info-2
+#usr/share/info/libtool.info-3
+#usr/share/info/libtool.info-4
+#usr/share/info/libtool.info-5
+#usr/share/libtool
+#usr/share/libtool/config.guess
+#usr/share/libtool/config.sub
+#usr/share/libtool/libltdl
+#usr/share/libtool/libltdl/COPYING.LIB
+#usr/share/libtool/libltdl/Makefile.am
+#usr/share/libtool/libltdl/Makefile.in
+#usr/share/libtool/libltdl/README
+#usr/share/libtool/libltdl/acinclude.m4
+#usr/share/libtool/libltdl/aclocal.m4
+#usr/share/libtool/libltdl/config-h.in
+#usr/share/libtool/libltdl/config.guess
+#usr/share/libtool/libltdl/config.sub
+#usr/share/libtool/libltdl/configure
+#usr/share/libtool/libltdl/configure.ac
+#usr/share/libtool/libltdl/install-sh
+#usr/share/libtool/libltdl/ltdl.c
+#usr/share/libtool/libltdl/ltdl.h
+#usr/share/libtool/libltdl/ltmain.sh
+#usr/share/libtool/libltdl/missing
+#usr/share/libtool/libltdl/mkinstalldirs
+#usr/share/libtool/ltmain.sh
+##
+## bzip2-1.0.3
+##
+bin/bunzip2
+bin/bzcat
+bin/bzip2
+#bin/bzip2recover
+#bin/bzless
+#bin/bzmore
+lib/libbz2.so.1.0
+lib/libbz2.so.1.0.3
+#usr/bin/bzcmp
+#usr/bin/bzdiff
+#usr/bin/bzegrep
+#usr/bin/bzfgrep
+#usr/bin/bzgrep
+#usr/include/bzlib.h
+#usr/lib/libbz2.a
+usr/lib/libbz2.so
+#usr/share/man/man1/bzcmp.1
+#usr/share/man/man1/bzdiff.1
+#usr/share/man/man1/bzegrep.1
+#usr/share/man/man1/bzfgrep.1
+#usr/share/man/man1/bzgrep.1
+#usr/share/man/man1/bzip2.1
+#usr/share/man/man1/bzless.1
+#usr/share/man/man1/bzmore.1
+##
+## diffutils-2.8.1
+##
+usr/bin/cmp
+usr/bin/diff
+#usr/bin/diff3
+#usr/bin/sdiff
+#usr/share/info/diff.info
+#usr/share/man/man1/cmp.1
+#usr/share/man/man1/diff3.1
+#usr/share/man/man1/sdiff.1
+##
+## ed-0.2
+##
+#bin/ed
+#bin/red
+#usr/share/info/ed.info
+#usr/share/man/man1/ed.1
+#usr/share/man/man1/red.1
+##
+## kbd-1.12
+##
+bin/loadkeys
+usr/bin/chvt
+usr/bin/deallocvt
+usr/bin/dumpkeys
+usr/bin/fgconsole
+usr/bin/getkeycodes
+usr/bin/getunimap
+usr/bin/kbd_mode
+#usr/bin/kbdrate
+usr/bin/loadunimap
+#usr/bin/mapscrn
+#usr/bin/openvt
+#usr/bin/psfaddtable
+#usr/bin/psfgettable
+#usr/bin/psfstriptable
+#usr/bin/psfxtable
+#usr/bin/resizecons
+usr/bin/setfont
+usr/bin/setkeycodes
+usr/bin/setleds
+usr/bin/setlogcons
+usr/bin/setmetamode
+#usr/bin/setvesablank
+usr/bin/showconsolefont
+usr/bin/showkey
+usr/bin/unicode_start
+usr/bin/unicode_stop
+#usr/share/kbd
+#usr/share/kbd/consolefonts
+#usr/share/kbd/consolefonts/161.cp.gz
+#usr/share/kbd/consolefonts/162.cp.gz
+#usr/share/kbd/consolefonts/163.cp.gz
+#usr/share/kbd/consolefonts/164.cp.gz
+#usr/share/kbd/consolefonts/165.cp.gz
+#usr/share/kbd/consolefonts/737.cp.gz
+#usr/share/kbd/consolefonts/880.cp.gz
+#usr/share/kbd/consolefonts/928.cp.gz
+#usr/share/kbd/consolefonts/972.cp.gz
+#usr/share/kbd/consolefonts/Agafari-12.psfu.gz
+#usr/share/kbd/consolefonts/Agafari-14.psfu.gz
+#usr/share/kbd/consolefonts/Agafari-16.psfu.gz
+#usr/share/kbd/consolefonts/Cyr_a8x14.psfu.gz
+#usr/share/kbd/consolefonts/Cyr_a8x16.psfu.gz
+#usr/share/kbd/consolefonts/Cyr_a8x8.psfu.gz
+#usr/share/kbd/consolefonts/ERRORS.gz
+#usr/share/kbd/consolefonts/Goha-12.psfu.gz
+#usr/share/kbd/consolefonts/Goha-14.psfu.gz
+#usr/share/kbd/consolefonts/Goha-16.psfu.gz
+#usr/share/kbd/consolefonts/GohaClassic-12.psfu.gz
+#usr/share/kbd/consolefonts/GohaClassic-14.psfu.gz
+#usr/share/kbd/consolefonts/GohaClassic-16.psfu.gz
+#usr/share/kbd/consolefonts/LatArCyrHeb-08.psfu.gz
+#usr/share/kbd/consolefonts/LatArCyrHeb-14.psfu.gz
+#usr/share/kbd/consolefonts/LatArCyrHeb-16+.psfu.gz
+#usr/share/kbd/consolefonts/LatArCyrHeb-16.psfu.gz
+#usr/share/kbd/consolefonts/LatArCyrHeb-19.psfu.gz
+#usr/share/kbd/consolefonts/Mik_8x16.gz
+#usr/share/kbd/consolefonts/README.12x22
+#usr/share/kbd/consolefonts/README.Arabic
+#usr/share/kbd/consolefonts/README.Cyrillic
+#usr/share/kbd/consolefonts/README.Ethiopic
+#usr/share/kbd/consolefonts/README.Greek
+#usr/share/kbd/consolefonts/README.Hebrew
+#usr/share/kbd/consolefonts/README.cp1250
+#usr/share/kbd/consolefonts/README.cybercafe
+#usr/share/kbd/consolefonts/README.drdos
+#usr/share/kbd/consolefonts/README.lat0
+#usr/share/kbd/consolefonts/README.lat7
+#usr/share/kbd/consolefonts/README.lat9
+#usr/share/kbd/consolefonts/README.psfu
+#usr/share/kbd/consolefonts/alt-8x14.gz
+#usr/share/kbd/consolefonts/alt-8x16.gz
+#usr/share/kbd/consolefonts/alt-8x8.gz
+#usr/share/kbd/consolefonts/altc-8x16.gz
+#usr/share/kbd/consolefonts/aply16.psf.gz
+#usr/share/kbd/consolefonts/arm8.fnt.gz
+#usr/share/kbd/consolefonts/cp1250.psfu.gz
+#usr/share/kbd/consolefonts/cp850-8x14.psfu.gz
+#usr/share/kbd/consolefonts/cp850-8x16.psfu.gz
+#usr/share/kbd/consolefonts/cp850-8x8.psfu.gz
+#usr/share/kbd/consolefonts/cp857.08.gz
+#usr/share/kbd/consolefonts/cp857.14.gz
+#usr/share/kbd/consolefonts/cp857.16.gz
+#usr/share/kbd/consolefonts/cp865-8x14.psfu.gz
+#usr/share/kbd/consolefonts/cp865-8x16.psfu.gz
+#usr/share/kbd/consolefonts/cp865-8x8.psfu.gz
+#usr/share/kbd/consolefonts/cp866-8x14.psf.gz
+#usr/share/kbd/consolefonts/cp866-8x16.psf.gz
+#usr/share/kbd/consolefonts/cp866-8x8.psf.gz
+#usr/share/kbd/consolefonts/cybercafe.fnt.gz
+#usr/share/kbd/consolefonts/cyr-sun16.psfu.gz
+#usr/share/kbd/consolefonts/default8x16.psfu.gz
+#usr/share/kbd/consolefonts/default8x9.psfu.gz
+#usr/share/kbd/consolefonts/drdos8x14.psfu.gz
+#usr/share/kbd/consolefonts/drdos8x16.psfu.gz
+#usr/share/kbd/consolefonts/drdos8x6.psfu.gz
+#usr/share/kbd/consolefonts/drdos8x8.psfu.gz
+#usr/share/kbd/consolefonts/gr737a-8x8.psfu.gz
+#usr/share/kbd/consolefonts/gr737a-9x14.psfu.gz
+#usr/share/kbd/consolefonts/gr737a-9x16.psfu.gz
+#usr/share/kbd/consolefonts/gr737b-8x11.psfu.gz
+#usr/share/kbd/consolefonts/gr737b-9x16-medieval.psfu.gz
+#usr/share/kbd/consolefonts/gr737c-8x14.psfu.gz
+#usr/share/kbd/consolefonts/gr737c-8x16.psfu.gz
+#usr/share/kbd/consolefonts/gr737c-8x6.psfu.gz
+#usr/share/kbd/consolefonts/gr737c-8x7.psfu.gz
+#usr/share/kbd/consolefonts/gr737c-8x8.psfu.gz
+#usr/share/kbd/consolefonts/gr737d-8x16.psfu.gz
+#usr/share/kbd/consolefonts/gr928-8x16-thin.psfu.gz
+#usr/share/kbd/consolefonts/gr928-9x14.psfu.gz
+#usr/share/kbd/consolefonts/gr928-9x16.psfu.gz
+#usr/share/kbd/consolefonts/gr928a-8x14.psfu.gz
+#usr/share/kbd/consolefonts/gr928a-8x16.psfu.gz
+#usr/share/kbd/consolefonts/gr928b-8x14.psfu.gz
+#usr/share/kbd/consolefonts/gr928b-8x16.psfu.gz
+#usr/share/kbd/consolefonts/iso01-12x22.psfu.gz
+#usr/share/kbd/consolefonts/iso01.08.gz
+#usr/share/kbd/consolefonts/iso01.14.gz
+#usr/share/kbd/consolefonts/iso01.16.gz
+#usr/share/kbd/consolefonts/iso02-12x22.psfu.gz
+#usr/share/kbd/consolefonts/iso02.08.gz
+#usr/share/kbd/consolefonts/iso02.14.gz
+#usr/share/kbd/consolefonts/iso02.16.gz
+#usr/share/kbd/consolefonts/iso03.08.gz
+#usr/share/kbd/consolefonts/iso03.14.gz
+#usr/share/kbd/consolefonts/iso03.16.gz
+#usr/share/kbd/consolefonts/iso04.08.gz
+#usr/share/kbd/consolefonts/iso04.14.gz
+#usr/share/kbd/consolefonts/iso04.16.gz
+#usr/share/kbd/consolefonts/iso05.08.gz
+#usr/share/kbd/consolefonts/iso05.14.gz
+#usr/share/kbd/consolefonts/iso05.16.gz
+#usr/share/kbd/consolefonts/iso06.08.gz
+#usr/share/kbd/consolefonts/iso06.14.gz
+#usr/share/kbd/consolefonts/iso06.16.gz
+#usr/share/kbd/consolefonts/iso07.14.gz
+#usr/share/kbd/consolefonts/iso07.16.gz
+usr/share/kbd/consolefonts/iso07u-16.psfu.gz
+#usr/share/kbd/consolefonts/iso08.08.gz
+#usr/share/kbd/consolefonts/iso08.14.gz
+#usr/share/kbd/consolefonts/iso08.16.gz
+#usr/share/kbd/consolefonts/iso09.08.gz
+#usr/share/kbd/consolefonts/iso09.14.gz
+#usr/share/kbd/consolefonts/iso09.16.gz
+#usr/share/kbd/consolefonts/iso10.08.gz
+#usr/share/kbd/consolefonts/iso10.14.gz
+#usr/share/kbd/consolefonts/iso10.16.gz
+#usr/share/kbd/consolefonts/koi8-14.psf.gz
+#usr/share/kbd/consolefonts/koi8c-8x16.gz
+#usr/share/kbd/consolefonts/koi8r-8x14.gz
+#usr/share/kbd/consolefonts/koi8r-8x16.gz
+#usr/share/kbd/consolefonts/koi8r-8x8.gz
+#usr/share/kbd/consolefonts/koi8r.8x8.psfu.gz
+#usr/share/kbd/consolefonts/koi8u_8x14.psfu.gz
+#usr/share/kbd/consolefonts/koi8u_8x16.psfu.gz
+#usr/share/kbd/consolefonts/koi8u_8x8.psfu.gz
+#usr/share/kbd/consolefonts/lat0-08.psfu.gz
+#usr/share/kbd/consolefonts/lat0-10.psfu.gz
+#usr/share/kbd/consolefonts/lat0-12.psfu.gz
+#usr/share/kbd/consolefonts/lat0-14.psfu.gz
+usr/share/kbd/consolefonts/lat0-16.psfu.gz
+#usr/share/kbd/consolefonts/lat1-08.psfu.gz
+#usr/share/kbd/consolefonts/lat1-10.psfu.gz
+#usr/share/kbd/consolefonts/lat1-12.psfu.gz
+#usr/share/kbd/consolefonts/lat1-14.psfu.gz
+usr/share/kbd/consolefonts/lat1-16.psfu.gz
+#usr/share/kbd/consolefonts/lat2-08.psfu.gz
+#usr/share/kbd/consolefonts/lat2-10.psfu.gz
+#usr/share/kbd/consolefonts/lat2-12.psfu.gz
+#usr/share/kbd/consolefonts/lat2-14.psfu.gz
+usr/share/kbd/consolefonts/lat2-16.psfu.gz
+#usr/share/kbd/consolefonts/lat2a-16.psfu.gz
+#usr/share/kbd/consolefonts/lat4-08.psfu.gz
+#usr/share/kbd/consolefonts/lat4-10.psfu.gz
+#usr/share/kbd/consolefonts/lat4-12.psfu.gz
+#usr/share/kbd/consolefonts/lat4-14.psfu.gz
+#usr/share/kbd/consolefonts/lat4-16+.psfu.gz
+#usr/share/kbd/consolefonts/lat4-16.psfu.gz
+#usr/share/kbd/consolefonts/lat4-19.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-08.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-10.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-12.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-14.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-16+.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-16.psfu.gz
+#usr/share/kbd/consolefonts/lat4a-19.psfu.gz
+#usr/share/kbd/consolefonts/lat5-12.psfu.gz
+#usr/share/kbd/consolefonts/lat5-14.psfu.gz
+usr/share/kbd/consolefonts/lat5-16.psfu.gz
+#usr/share/kbd/consolefonts/lat7-14.psfu.gz
+#usr/share/kbd/consolefonts/lat7a-14.psfu.gz
+#usr/share/kbd/consolefonts/lat7a-16.psf.gz
+#usr/share/kbd/consolefonts/lat9-08.psf.gz
+#usr/share/kbd/consolefonts/lat9-10.psf.gz
+#usr/share/kbd/consolefonts/lat9-12.psf.gz
+#usr/share/kbd/consolefonts/lat9-14.psf.gz
+#usr/share/kbd/consolefonts/lat9-16.psf.gz
+#usr/share/kbd/consolefonts/lat9u-08.psfu.gz
+#usr/share/kbd/consolefonts/lat9u-10.psfu.gz
+#usr/share/kbd/consolefonts/lat9u-12.psfu.gz
+#usr/share/kbd/consolefonts/lat9u-14.psfu.gz
+#usr/share/kbd/consolefonts/lat9u-16.psfu.gz
+#usr/share/kbd/consolefonts/lat9v-08.psfu.gz
+#usr/share/kbd/consolefonts/lat9v-10.psfu.gz
+#usr/share/kbd/consolefonts/lat9v-12.psfu.gz
+#usr/share/kbd/consolefonts/lat9v-14.psfu.gz
+#usr/share/kbd/consolefonts/lat9v-16.psfu.gz
+#usr/share/kbd/consolefonts/lat9w-08.psfu.gz
+#usr/share/kbd/consolefonts/lat9w-10.psfu.gz
+#usr/share/kbd/consolefonts/lat9w-12.psfu.gz
+#usr/share/kbd/consolefonts/lat9w-14.psfu.gz
+#usr/share/kbd/consolefonts/lat9w-16.psfu.gz
+#usr/share/kbd/consolefonts/partialfonts
+#usr/share/kbd/consolefonts/partialfonts/8859-1.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-1.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-1.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-10.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-10.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-10.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-2.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-2.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-2.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-3.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-3.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-3.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-4.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-4.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-4.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-5.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-5.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-5.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-6.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-6.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-6.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-7.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-7.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-7.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-8.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-8.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-8.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-9.a0-ff.08.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-9.a0-ff.14.gz
+#usr/share/kbd/consolefonts/partialfonts/8859-9.a0-ff.16.gz
+#usr/share/kbd/consolefonts/partialfonts/ascii.20-7f.08.gz
+#usr/share/kbd/consolefonts/partialfonts/ascii.20-7f.14.gz
+#usr/share/kbd/consolefonts/partialfonts/ascii.20-7f.16.gz
+#usr/share/kbd/consolefonts/partialfonts/cp437.00-1f.08.gz
+#usr/share/kbd/consolefonts/partialfonts/cp437.00-1f.14.gz
+#usr/share/kbd/consolefonts/partialfonts/cp437.00-1f.16.gz
+#usr/share/kbd/consolefonts/partialfonts/none.00-17.08.gz
+#usr/share/kbd/consolefonts/partialfonts/none.00-17.14.gz
+#usr/share/kbd/consolefonts/partialfonts/none.00-17.16.gz
+#usr/share/kbd/consolefonts/ruscii_8x16.psfu.gz
+#usr/share/kbd/consolefonts/ruscii_8x8.psfu.gz
+#usr/share/kbd/consolefonts/sun12x22.psfu.gz
+#usr/share/kbd/consolefonts/t.fnt.gz
+#usr/share/kbd/consolefonts/t850b.fnt.gz
+#usr/share/kbd/consolefonts/tcvn8x16.psf.gz
+usr/share/kbd/consolefonts/viscii10-8x16.psfu.gz
+#usr/share/kbd/consoletrans
+#usr/share/kbd/consoletrans/8859-10_to_uni.trans
+#usr/share/kbd/consoletrans/8859-13_to_uni.trans
+#usr/share/kbd/consoletrans/8859-14_to_uni.trans
+#usr/share/kbd/consoletrans/8859-15_to_uni.trans
+#usr/share/kbd/consoletrans/8859-1_to_uni.trans
+#usr/share/kbd/consoletrans/8859-2_to_uni.trans
+#usr/share/kbd/consoletrans/8859-3_to_uni.trans
+#usr/share/kbd/consoletrans/8859-4_to_uni.trans
+#usr/share/kbd/consoletrans/8859-5_to_uni.trans
+#usr/share/kbd/consoletrans/8859-6_to_uni.trans
+#usr/share/kbd/consoletrans/8859-7_to_uni.trans
+#usr/share/kbd/consoletrans/8859-8_to_uni.trans
+#usr/share/kbd/consoletrans/8859-9_to_uni.trans
+#usr/share/kbd/consoletrans/baltic.trans
+#usr/share/kbd/consoletrans/cp1250_to_uni.trans
+#usr/share/kbd/consoletrans/cp1251_to_uni.trans
+#usr/share/kbd/consoletrans/cp437_to_iso01.trans
+#usr/share/kbd/consoletrans/cp437_to_uni.trans
+#usr/share/kbd/consoletrans/cp737_to_uni.trans
+#usr/share/kbd/consoletrans/cp775_to_uni.trans
+#usr/share/kbd/consoletrans/cp850_to_iso01.trans
+#usr/share/kbd/consoletrans/cp850_to_uni.trans
+#usr/share/kbd/consoletrans/cp852_to_uni.trans
+#usr/share/kbd/consoletrans/cp853_to_uni.trans
+#usr/share/kbd/consoletrans/cp855_to_uni.trans
+#usr/share/kbd/consoletrans/cp857_to_uni.trans
+#usr/share/kbd/consoletrans/cp860_to_uni.trans
+#usr/share/kbd/consoletrans/cp861_to_uni.trans
+#usr/share/kbd/consoletrans/cp862_to_uni.trans
+#usr/share/kbd/consoletrans/cp863_to_uni.trans
+#usr/share/kbd/consoletrans/cp864_to_uni.trans
+#usr/share/kbd/consoletrans/cp865_to_uni.trans
+#usr/share/kbd/consoletrans/cp866_to_uni.trans
+#usr/share/kbd/consoletrans/cp869_to_uni.trans
+#usr/share/kbd/consoletrans/cp874_to_uni.trans
+#usr/share/kbd/consoletrans/iso02_to_cp1250.trans
+#usr/share/kbd/consoletrans/koi2alt
+#usr/share/kbd/consoletrans/koi8-r_to_uni.trans
+#usr/share/kbd/consoletrans/koi8-u_to_uni.trans
+#usr/share/kbd/consoletrans/koi8u2ruscii
+#usr/share/kbd/consoletrans/latin2u.trans
+#usr/share/kbd/consoletrans/null
+#usr/share/kbd/consoletrans/space
+#usr/share/kbd/consoletrans/trivial
+#usr/share/kbd/consoletrans/utflist
+#usr/share/kbd/consoletrans/vga2iso
+#usr/share/kbd/consoletrans/viscii1.0_to_tcvn.trans
+#usr/share/kbd/consoletrans/viscii1.0_to_viscii1.1.trans
+#usr/share/kbd/consoletrans/zero
+#usr/share/kbd/keymaps
+#usr/share/kbd/keymaps/amiga
+#usr/share/kbd/keymaps/amiga/amiga-de.map.gz
+#usr/share/kbd/keymaps/amiga/amiga-us.map.gz
+#usr/share/kbd/keymaps/atari
+#usr/share/kbd/keymaps/atari/atari-de.map.gz
+#usr/share/kbd/keymaps/atari/atari-se.map.gz
+#usr/share/kbd/keymaps/atari/atari-uk-falcon.map.gz
+#usr/share/kbd/keymaps/atari/atari-us.map.gz
+usr/share/kbd/keymaps/i386
+#usr/share/kbd/keymaps/i386/azerty
+#usr/share/kbd/keymaps/i386/azerty/azerty.map.gz
+#usr/share/kbd/keymaps/i386/azerty/be-latin1.map.gz
+#usr/share/kbd/keymaps/i386/azerty/fr-latin1.map.gz
+#usr/share/kbd/keymaps/i386/azerty/fr-latin9.map.gz
+#usr/share/kbd/keymaps/i386/azerty/fr-pc.map.gz
+#usr/share/kbd/keymaps/i386/azerty/fr.map.gz
+#usr/share/kbd/keymaps/i386/azerty/wangbe.map.gz
+#usr/share/kbd/keymaps/i386/azerty/wangbe2.map.gz
+#usr/share/kbd/keymaps/i386/dvorak
+#usr/share/kbd/keymaps/i386/dvorak/ANSI-dvorak.map.gz
+#usr/share/kbd/keymaps/i386/dvorak/dvorak-l.map.gz
+#usr/share/kbd/keymaps/i386/dvorak/dvorak-r.map.gz
+#usr/share/kbd/keymaps/i386/dvorak/dvorak.map.gz
+#usr/share/kbd/keymaps/i386/fgGIod
+#usr/share/kbd/keymaps/i386/fgGIod/tr_f-latin5.map.gz
+#usr/share/kbd/keymaps/i386/fgGIod/trf.map.gz
+#usr/share/kbd/keymaps/i386/include
+#usr/share/kbd/keymaps/i386/include/applkey.map.gz
+#usr/share/kbd/keymaps/i386/include/azerty-layout.inc
+#usr/share/kbd/keymaps/i386/include/backspace.map.gz
+#usr/share/kbd/keymaps/i386/include/ctrl.map.gz
+#usr/share/kbd/keymaps/i386/include/euro.map.gz
+#usr/share/kbd/keymaps/i386/include/euro1.map.gz
+#usr/share/kbd/keymaps/i386/include/euro2.map.gz
+#usr/share/kbd/keymaps/i386/include/keypad.map.gz
+#usr/share/kbd/keymaps/i386/include/linux-keys-bare.inc
+#usr/share/kbd/keymaps/i386/include/linux-keys-extd.inc
+#usr/share/kbd/keymaps/i386/include/linux-with-alt-and-altgr.inc
+#usr/share/kbd/keymaps/i386/include/linux-with-modeshift-altgr.inc
+#usr/share/kbd/keymaps/i386/include/linux-with-two-alt-keys.inc
+#usr/share/kbd/keymaps/i386/include/qwerty-layout.inc
+#usr/share/kbd/keymaps/i386/include/qwertz-layout.inc
+#usr/share/kbd/keymaps/i386/include/unicode.map.gz
+#usr/share/kbd/keymaps/i386/include/windowkeys.map.gz
+#usr/share/kbd/keymaps/i386/qwerty
+#usr/share/kbd/keymaps/i386/qwerty/bg-cp1251.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/bg.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/br-abnt.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/br-abnt2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/br-latin1-abnt2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/br-latin1-us.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/by.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/cf.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/cz-cp1250.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/cz-lat2-prog.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/cz-lat2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/cz.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/defkeymap.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/defkeymap_V1.0.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/dk-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/dk.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/emacs.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/emacs2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/es-cp850.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/es.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/et-nodeadkeys.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/et.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/fi-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/fi-latin9.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/fi.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/gr-pc.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/gr.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/hu101.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/hypermap.m4
+#usr/share/kbd/keymaps/i386/qwerty/il-heb.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/il-phonetic.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/il.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/is-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/it-ibm.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/it.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/it2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/jp106.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/la-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/lt.baltic.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/lt.l4.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/lt.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/mk-cp1251.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/mk-utf.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/mk.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/mk0.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/nl.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/nl2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/no-latin1.doc
+#usr/share/kbd/keymaps/i386/qwerty/no-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/no.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/pc110.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/pl.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/pl2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/pt-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/pt-latin9.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ro_win.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru-cp1251.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru-ms.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru-yawerty.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru2.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru3.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru4.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ru_win.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/se-fi-ir209.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/se-fi-lat6.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/se-ir209.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/se-lat6.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/sk-prog-qwerty.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/sk-qwerty.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/sr-cy.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/sv-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/tr_q-latin5.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/tralt.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/trq.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ua-utf-ws.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ua-utf.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ua-ws.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/ua.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/uk.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/us-acentos.map.gz
+#usr/share/kbd/keymaps/i386/qwerty/us.map.gz
+#usr/share/kbd/keymaps/i386/qwertz
+#usr/share/kbd/keymaps/i386/qwertz/croat.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/cz-us-qwertz.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/de-latin1-nodeadkeys.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/de-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/de.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/de_CH-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/fr_CH-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/fr_CH.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/hu.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/sg-latin1-lk450.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/sg-latin1.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/sg.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/sk-prog-qwertz.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/sk-qwertz.map.gz
+#usr/share/kbd/keymaps/i386/qwertz/slovene.map.gz
+usr/share/kbd/keymaps/include
+#usr/share/kbd/keymaps/include/compose.8859_7
+#usr/share/kbd/keymaps/include/compose.8859_8
+#usr/share/kbd/keymaps/include/compose.latin
+#usr/share/kbd/keymaps/include/compose.latin1
+#usr/share/kbd/keymaps/include/compose.latin2
+#usr/share/kbd/keymaps/include/compose.latin3
+#usr/share/kbd/keymaps/include/compose.latin4
+#usr/share/kbd/keymaps/include/vim-compose.latin1
+#usr/share/kbd/keymaps/mac
+#usr/share/kbd/keymaps/mac/all
+#usr/share/kbd/keymaps/mac/all/mac-be.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-de-latin1-nodeadkeys.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-de-latin1.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-de_CH.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-dk-latin1.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-dvorak.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-es.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-fi-latin1.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-fr.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-fr_CH-latin1.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-it.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-pt-latin1.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-se.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-template.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-uk.map.gz
+#usr/share/kbd/keymaps/mac/all/mac-us.map.gz
+#usr/share/kbd/keymaps/mac/include
+#usr/share/kbd/keymaps/mac/include/mac-azerty-layout.inc
+#usr/share/kbd/keymaps/mac/include/mac-euro.map.gz
+#usr/share/kbd/keymaps/mac/include/mac-linux-keys-bare.inc
+#usr/share/kbd/keymaps/mac/include/mac-qwerty-layout.inc
+#usr/share/kbd/keymaps/mac/include/mac-qwertz-layout.inc
+#usr/share/kbd/keymaps/ppc
+#usr/share/kbd/keymaps/sun
+#usr/share/kbd/keymaps/sun/sun-pl-altgraph.map.gz
+#usr/share/kbd/keymaps/sun/sun-pl.map.gz
+#usr/share/kbd/keymaps/sun/sundvorak.map.gz
+#usr/share/kbd/keymaps/sun/sunkeymap.map.gz
+#usr/share/kbd/keymaps/sun/sunt4-es.map.gz
+#usr/share/kbd/keymaps/sun/sunt4-fi-latin1.map.gz
+#usr/share/kbd/keymaps/sun/sunt4-no-latin1.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-cz-us.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-de-latin1.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-es.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-fi-latin1.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-fr-latin1.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-ru.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-uk.map.gz
+#usr/share/kbd/keymaps/sun/sunt5-us-cz.map.gz
+#usr/share/kbd/unimaps
+#usr/share/kbd/unimaps/8859-1.a0-ff.uni
+#usr/share/kbd/unimaps/8859-10.a0-ff.uni
+#usr/share/kbd/unimaps/8859-13.a0-ff.uni
+#usr/share/kbd/unimaps/8859-14.a0-ff.uni
+#usr/share/kbd/unimaps/8859-15.a0-ff.uni
+#usr/share/kbd/unimaps/8859-2.a0-ff.uni
+#usr/share/kbd/unimaps/8859-3.a0-ff.uni
+#usr/share/kbd/unimaps/8859-4.a0-ff.uni
+#usr/share/kbd/unimaps/8859-5.a0-ff.uni
+#usr/share/kbd/unimaps/8859-6.a0-ff.uni
+#usr/share/kbd/unimaps/8859-7.a0-ff.uni
+#usr/share/kbd/unimaps/8859-8.a0-ff.uni
+#usr/share/kbd/unimaps/8859-9.a0-ff.uni
+#usr/share/kbd/unimaps/ECMA144.uni
+#usr/share/kbd/unimaps/README
+#usr/share/kbd/unimaps/armscii8.uni
+#usr/share/kbd/unimaps/ascii.20-7f.uni
+#usr/share/kbd/unimaps/cp1250.uni
+#usr/share/kbd/unimaps/cp437.00-1f.uni
+#usr/share/kbd/unimaps/cp437.uni
+#usr/share/kbd/unimaps/cp737.uni
+#usr/share/kbd/unimaps/cp737a.uni
+#usr/share/kbd/unimaps/cp737b.uni
+#usr/share/kbd/unimaps/cp737c.uni
+#usr/share/kbd/unimaps/cp850.uni
+#usr/share/kbd/unimaps/cp850a.uni
+#usr/share/kbd/unimaps/cp850b.uni
+#usr/share/kbd/unimaps/cp850z.uni
+#usr/share/kbd/unimaps/cp865.uni
+#usr/share/kbd/unimaps/cp865a.uni
+#usr/share/kbd/unimaps/cp866.uni
+#usr/share/kbd/unimaps/cp866a.uni
+#usr/share/kbd/unimaps/cybercafe.uni
+#usr/share/kbd/unimaps/cyralt.uni
+#usr/share/kbd/unimaps/def.uni
+#usr/share/kbd/unimaps/empty.uni
+#usr/share/kbd/unimaps/ethiopic.uni
+#usr/share/kbd/unimaps/iso01.uni
+#usr/share/kbd/unimaps/iso02.uni
+#usr/share/kbd/unimaps/iso03.uni
+#usr/share/kbd/unimaps/iso04.uni
+#usr/share/kbd/unimaps/iso05.uni
+#usr/share/kbd/unimaps/iso06.uni
+#usr/share/kbd/unimaps/iso07.uni
+#usr/share/kbd/unimaps/iso07u.uni
+#usr/share/kbd/unimaps/iso08.uni
+#usr/share/kbd/unimaps/iso09.uni
+#usr/share/kbd/unimaps/iso10.uni
+#usr/share/kbd/unimaps/iso15.uni
+#usr/share/kbd/unimaps/koi8r.uni
+#usr/share/kbd/unimaps/koi8u.uni
+#usr/share/kbd/unimaps/lat1.uni
+#usr/share/kbd/unimaps/lat1u.uni
+#usr/share/kbd/unimaps/lat2.uni
+#usr/share/kbd/unimaps/lat2u.uni
+#usr/share/kbd/unimaps/lat4.uni
+#usr/share/kbd/unimaps/lat4u.uni
+#usr/share/kbd/unimaps/lat7.uni
+#usr/share/kbd/unimaps/lat9u.uni
+#usr/share/kbd/unimaps/lat9v.uni
+#usr/share/kbd/unimaps/lat9w.uni
+#usr/share/kbd/unimaps/ruscii.uni
+#usr/share/kbd/unimaps/tcvn.uni
+#usr/share/kbd/unimaps/viscii.uni
+#usr/share/man/man1/chvt.1
+#usr/share/man/man1/deallocvt.1
+#usr/share/man/man1/dumpkeys.1
+#usr/share/man/man1/fgconsole.1
+#usr/share/man/man1/kbd_mode.1
+#usr/share/man/man1/loadkeys.1
+#usr/share/man/man1/openvt.1
+#usr/share/man/man1/psfaddtable.1
+#usr/share/man/man1/psfgettable.1
+#usr/share/man/man1/psfstriptable.1
+#usr/share/man/man1/psfxtable.1
+#usr/share/man/man1/setleds.1
+#usr/share/man/man1/setmetamode.1
+#usr/share/man/man1/showkey.1
+#usr/share/man/man1/unicode_start.1
+#usr/share/man/man1/unicode_stop.1
+#usr/share/man/man5/keymaps.5
+#usr/share/man/man8/getkeycodes.8
+#usr/share/man/man8/kbdrate.8
+#usr/share/man/man8/loadunimap.8
+#usr/share/man/man8/mapscrn.8
+#usr/share/man/man8/resizecons.8
+#usr/share/man/man8/setfont.8
+#usr/share/man/man8/setkeycodes.8
+#usr/share/man/man8/showconsolefont.8
+##
+## e2fsprogs-1.35
+##
+lib/libblkid.so.1
+lib/libblkid.so.1.0
+lib/libcom_err.so.2
+lib/libcom_err.so.2.1
+lib/libe2p.so.2
+lib/libe2p.so.2.3
+lib/libext2fs.so.2
+lib/libext2fs.so.2.4
+lib/libss.so.2
+lib/libss.so.2.0
+lib/libuuid.so.1
+lib/libuuid.so.1.2
+sbin/badblocks
+#sbin/blkid
+#sbin/debugfs
+#sbin/dumpe2fs
+sbin/e2fsck
+#sbin/e2image
+#sbin/e2label
+#sbin/findfs
+sbin/fsck
+sbin/fsck.ext2
+sbin/fsck.ext3
+#sbin/logsave
+sbin/mke2fs
+sbin/mkfs.ext2
+sbin/mkfs.ext3
+#sbin/resize2fs
+sbin/tune2fs
+usr/bin/chattr
+#usr/bin/compile_et
+usr/bin/lsattr
+#usr/bin/mk_cmds
+#usr/bin/uuidgen
+#usr/include/blkid
+#usr/include/blkid/blkid.h
+#usr/include/blkid/blkid_types.h
+#usr/include/e2p
+#usr/include/e2p/e2p.h
+#usr/include/et
+#usr/include/et/com_err.h
+#usr/include/ext2fs
+#usr/include/ext2fs/bitops.h
+#usr/include/ext2fs/ext2_err.h
+#usr/include/ext2fs/ext2_ext_attr.h
+#usr/include/ext2fs/ext2_fs.h
+#usr/include/ext2fs/ext2_io.h
+#usr/include/ext2fs/ext2_types.h
+#usr/include/ext2fs/ext2fs.h
+#usr/include/ss
+#usr/include/ss/ss.h
+#usr/include/ss/ss_err.h
+#usr/include/uuid
+#usr/include/uuid/uuid.h
+#usr/include/uuid/uuid_types.h
+#usr/lib/libblkid.a
+usr/lib/libblkid.so
+#usr/lib/libcom_err.a
+usr/lib/libcom_err.so
+#usr/lib/libe2p.a
+usr/lib/libe2p.so
+#usr/lib/libext2fs.a
+usr/lib/libext2fs.so
+#usr/lib/libss.a
+usr/lib/libss.so
+#usr/lib/libuuid.a
+usr/lib/libuuid.so
+usr/sbin/mklost+found
+#usr/share/et
+#usr/share/et/et_c.awk
+#usr/share/et/et_h.awk
+#usr/share/info/libext2fs.info.gz
+#usr/share/man/man1/chattr.1
+#usr/share/man/man1/compile_et.1
+#usr/share/man/man1/lsattr.1
+#usr/share/man/man1/mk_cmds.1
+#usr/share/man/man1/uuidgen.1
+#usr/share/man/man3/com_err.3
+#usr/share/man/man3/libblkid.3
+#usr/share/man/man3/libuuid.3
+#usr/share/man/man3/uuid_clear.3
+#usr/share/man/man3/uuid_compare.3
+#usr/share/man/man3/uuid_copy.3
+#usr/share/man/man3/uuid_generate.3
+#usr/share/man/man3/uuid_generate_random.3
+#usr/share/man/man3/uuid_generate_time.3
+#usr/share/man/man3/uuid_is_null.3
+#usr/share/man/man3/uuid_parse.3
+#usr/share/man/man3/uuid_time.3
+#usr/share/man/man3/uuid_unparse.3
+#usr/share/man/man8/badblocks.8
+#usr/share/man/man8/blkid.8
+#usr/share/man/man8/debugfs.8
+#usr/share/man/man8/dumpe2fs.8
+#usr/share/man/man8/e2fsck.8
+#usr/share/man/man8/e2image.8
+#usr/share/man/man8/e2label.8
+#usr/share/man/man8/findfs.8
+#usr/share/man/man8/fsck.8
+#usr/share/man/man8/fsck.ext2.8
+#usr/share/man/man8/fsck.ext3.8
+#usr/share/man/man8/logsave.8
+#usr/share/man/man8/mke2fs.8
+#usr/share/man/man8/mkfs.ext2.8
+#usr/share/man/man8/mkfs.ext3.8
+#usr/share/man/man8/mklost+found.8
+#usr/share/man/man8/resize2fs.8
+#usr/share/man/man8/tune2fs.8
+#usr/share/ss
+#usr/share/ss/ct_c.awk
+#usr/share/ss/ct_c.sed
+##
+## grep-2.5.1
+##
+bin/egrep
+#bin/fgrep
+bin/grep
+#usr/share/info/grep.info
+#usr/share/man/man1/egrep.1
+#usr/share/man/man1/fgrep.1
+#usr/share/man/man1/grep.1
+##
+## gzip-1.3.5
+##
+bin/gunzip
+bin/gzip
+bin/uncompress
+bin/zcat
+#usr/bin/gzexe
+#usr/bin/zcmp
+#usr/bin/zdiff
+#usr/bin/zegrep
+#usr/bin/zfgrep
+#usr/bin/zforce
+#usr/bin/zgrep
+#usr/bin/zless
+#usr/bin/zmore
+#usr/bin/znew
+#usr/share/info/gzip.info
+#usr/share/man/man1/gunzip.1
+#usr/share/man/man1/gzexe.1
+#usr/share/man/man1/gzip.1
+#usr/share/man/man1/zcat.1
+#usr/share/man/man1/zcmp.1
+#usr/share/man/man1/zdiff.1
+#usr/share/man/man1/zforce.1
+#usr/share/man/man1/zgrep.1
+#usr/share/man/man1/zless.1
+#usr/share/man/man1/zmore.1
+#usr/share/man/man1/znew.1
+##
+## man-1.5m2
+##
+#etc/man.conf
+#usr/bin/apropos
+#usr/bin/man
+#usr/bin/man2dvi
+#usr/bin/man2html
+#usr/bin/whatis
+#usr/sbin/makewhatis
+#usr/share/man/man1/apropos.1
+#usr/share/man/man1/man.1
+#usr/share/man/man1/man2html.1
+#usr/share/man/man1/whatis.1
+#usr/share/man/man5/man.conf.5
+#usr/share/man/man8/makewhatis.8
+##
+## make-3.80
+##
+#usr/bin/make
+#usr/share/info/make.info
+#usr/share/info/make.info-1
+#usr/share/info/make.info-10
+#usr/share/info/make.info-11
+#usr/share/info/make.info-2
+#usr/share/info/make.info-3
+#usr/share/info/make.info-4
+#usr/share/info/make.info-5
+#usr/share/info/make.info-6
+#usr/share/info/make.info-7
+#usr/share/info/make.info-8
+#usr/share/info/make.info-9
+#usr/share/man/man1/make.1
+##
+## modutils-2.4.27
+##
+sbin/depmod
+#sbin/genksyms
+sbin/insmod
+sbin/insmod.static
+#sbin/insmod_ksymoops_clean
+#sbin/kallsyms
+#sbin/kernelversion
+#sbin/ksyms
+sbin/lsmod
+sbin/modinfo
+sbin/modprobe
+sbin/rmmod
+#usr/share/man/man1/kernelversion.1
+#usr/share/man/man2/create_module.2
+#usr/share/man/man2/delete_module.2
+#usr/share/man/man2/get_kernel_syms.2
+#usr/share/man/man2/init_module.2
+#usr/share/man/man2/query_module.2
+#usr/share/man/man5/modules.conf.5
+#usr/share/man/man8/depmod.8
+#usr/share/man/man8/genksyms.8
+#usr/share/man/man8/insmod.8
+#usr/share/man/man8/kallsyms.8
+#usr/share/man/man8/ksyms.8
+#usr/share/man/man8/lsmod.8
+#usr/share/man/man8/modinfo.8
+#usr/share/man/man8/modprobe.8
+#usr/share/man/man8/rmmod.8
+##
+## patch-2.5.4
+##
+usr/bin/patch
+#usr/share/man/man1/patch.1
+##
+## procinfo-18
+##
+#usr/bin/lsdev
+#usr/bin/procinfo
+#usr/bin/socklist
+#usr/share/man/man8/lsdev.8
+#usr/share/man/man8/procinfo.8
+#usr/share/man/man8/socklist.8
+##
+## procps-3.2.5
+##
+bin/kill
+bin/ps
+lib/libproc-3.2.5.so
+sbin/sysctl
+usr/bin/free
+#usr/bin/pgrep
+#usr/bin/pkill
+#usr/bin/pmap
+#usr/bin/skill
+#usr/bin/snice
+#usr/bin/tload
+usr/bin/top
+usr/bin/vmstat
+usr/bin/w
+#usr/bin/watch
+#usr/share/man/man1/free.1
+#usr/share/man/man1/kill.1
+#usr/share/man/man1/pgrep.1
+#usr/share/man/man1/pkill.1
+#usr/share/man/man1/pmap.1
+#usr/share/man/man1/ps.1
+#usr/share/man/man1/skill.1
+#usr/share/man/man1/snice.1
+#usr/share/man/man1/tload.1
+#usr/share/man/man1/top.1
+#usr/share/man/man1/w.1
+#usr/share/man/man1/watch.1
+#usr/share/man/man5/sysctl.conf.5
+#usr/share/man/man8/sysctl.8
+#usr/share/man/man8/vmstat.8
+##
+## psmisc-21.4
+##
+bin/fuser
+bin/killall
+bin/pidof
+bin/pstree
+#usr/share/man/man1/fuser.1
+#usr/share/man/man1/killall.1
+#usr/share/man/man1/pstree.1
+##
+## shadow-4.0.4.1
+##
+bin/login
+#etc/.pwd.lock
+#etc/group-
+etc/gshadow
+etc/limits
+etc/login.access
+etc/login.defs
+#etc/passwd-
+etc/shadow
+lib/libmisc.so.0
+lib/libmisc.so.0.0.0
+lib/libshadow.so.0
+lib/libshadow.so.0.0.0
+#usr/bin/chage
+#usr/bin/chfn
+#usr/bin/chsh
+#usr/bin/expiry
+#usr/bin/faillog
+#usr/bin/gpasswd
+#usr/bin/lastlog
+#usr/bin/newgrp
+usr/bin/passwd
+#usr/bin/sg
+#usr/lib/libmisc.a
+#usr/lib/libmisc.la
+usr/lib/libmisc.so
+#usr/lib/libshadow.a
+#usr/lib/libshadow.la
+usr/lib/libshadow.so
+usr/sbin/chpasswd
+#usr/sbin/dpasswd
+usr/sbin/groupadd
+usr/sbin/groupdel
+usr/sbin/groupmod
+#usr/sbin/grpck
+usr/sbin/grpconv
+#usr/sbin/grpunconv
+#usr/sbin/logoutd
+#usr/sbin/mkpasswd
+#usr/sbin/newusers
+#usr/sbin/pwck
+usr/sbin/pwconv
+#usr/sbin/pwunconv
+usr/sbin/useradd
+usr/sbin/userdel
+usr/sbin/usermod
+#usr/sbin/vigr
+#usr/sbin/vipw
+#usr/share/man/cs
+#usr/share/man/cs/man5
+#usr/share/man/cs/man5/passwd.5
+#usr/share/man/cs/man5/shadow.5
+#usr/share/man/de
+#usr/share/man/de/man1
+#usr/share/man/de/man1/chsh.1
+#usr/share/man/de/man1/passwd.1
+#usr/share/man/fr
+#usr/share/man/fr/man1
+#usr/share/man/fr/man1/chage.1
+#usr/share/man/fr/man1/chsh.1
+#usr/share/man/fr/man1/gpasswd.1
+#usr/share/man/fr/man1/newgrp.1
+#usr/share/man/fr/man1/passwd.1
+#usr/share/man/fr/man5
+#usr/share/man/fr/man5/faillog.5
+#usr/share/man/fr/man5/passwd.5
+#usr/share/man/fr/man5/shadow.5
+#usr/share/man/fr/man8
+#usr/share/man/fr/man8/adduser.8
+#usr/share/man/fr/man8/chpasswd.8
+#usr/share/man/fr/man8/useradd.8
+#usr/share/man/fr/man8/userdel.8
+#usr/share/man/fr/man8/usermod.8
+#usr/share/man/hu
+#usr/share/man/hu/man1
+#usr/share/man/hu/man1/chsh.1
+#usr/share/man/hu/man1/gpasswd.1
+#usr/share/man/hu/man1/login.1
+#usr/share/man/hu/man1/newgrp.1
+#usr/share/man/hu/man1/passwd.1
+#usr/share/man/hu/man1/sg.1
+#usr/share/man/id
+#usr/share/man/id/man1
+#usr/share/man/id/man1/chsh.1
+#usr/share/man/id/man1/login.1
+#usr/share/man/id/man8
+#usr/share/man/id/man8/adduser.8
+#usr/share/man/id/man8/useradd.8
+#usr/share/man/it
+#usr/share/man/it/man1
+#usr/share/man/it/man1/chfn.1
+#usr/share/man/it/man1/chsh.1
+#usr/share/man/it/man1/gpasswd.1
+#usr/share/man/it/man1/groups.1
+#usr/share/man/it/man1/login.1
+#usr/share/man/it/man1/newgrp.1
+#usr/share/man/it/man1/passwd.1
+#usr/share/man/it/man5
+#usr/share/man/it/man5/passwd.5
+#usr/share/man/it/man5/shadow.5
+#usr/share/man/it/man8
+#usr/share/man/it/man8/adduser.8
+#usr/share/man/it/man8/groupadd.8
+#usr/share/man/it/man8/groupdel.8
+#usr/share/man/it/man8/groupmod.8
+#usr/share/man/it/man8/grpck.8
+#usr/share/man/it/man8/grpconv.8
+#usr/share/man/it/man8/grpunconv.8
+#usr/share/man/it/man8/lastlog.8
+#usr/share/man/it/man8/pwconv.8
+#usr/share/man/it/man8/pwunconv.8
+#usr/share/man/it/man8/useradd.8
+#usr/share/man/it/man8/userdel.8
+#usr/share/man/it/man8/usermod.8
+#usr/share/man/it/man8/vigr.8
+#usr/share/man/it/man8/vipw.8
+#usr/share/man/ja
+#usr/share/man/ja/man1
+#usr/share/man/ja/man1/chage.1
+#usr/share/man/ja/man1/chfn.1
+#usr/share/man/ja/man1/chsh.1
+#usr/share/man/ja/man1/gpasswd.1
+#usr/share/man/ja/man1/login.1
+#usr/share/man/ja/man1/newgrp.1
+#usr/share/man/ja/man1/passwd.1
+#usr/share/man/ja/man1/sg.1
+#usr/share/man/ja/man1/su.1
+#usr/share/man/ja/man5
+#usr/share/man/ja/man5/faillog.5
+#usr/share/man/ja/man5/limits.5
+#usr/share/man/ja/man5/login.access.5
+#usr/share/man/ja/man5/login.defs.5
+#usr/share/man/ja/man5/passwd.5
+#usr/share/man/ja/man5/porttime.5
+#usr/share/man/ja/man5/shadow.5
+#usr/share/man/ja/man5/suauth.5
+#usr/share/man/ja/man8
+#usr/share/man/ja/man8/adduser.8
+#usr/share/man/ja/man8/chpasswd.8
+#usr/share/man/ja/man8/faillog.8
+#usr/share/man/ja/man8/groupadd.8
+#usr/share/man/ja/man8/groupdel.8
+#usr/share/man/ja/man8/groupmod.8
+#usr/share/man/ja/man8/grpck.8
+#usr/share/man/ja/man8/grpconv.8
+#usr/share/man/ja/man8/grpunconv.8
+#usr/share/man/ja/man8/lastlog.8
+#usr/share/man/ja/man8/logoutd.8
+#usr/share/man/ja/man8/mkpasswd.8
+#usr/share/man/ja/man8/newusers.8
+#usr/share/man/ja/man8/pwck.8
+#usr/share/man/ja/man8/pwconv.8
+#usr/share/man/ja/man8/pwunconv.8
+#usr/share/man/ja/man8/useradd.8
+#usr/share/man/ja/man8/userdel.8
+#usr/share/man/ja/man8/usermod.8
+#usr/share/man/ja/man8/vigr.8
+#usr/share/man/ja/man8/vipw.8
+#usr/share/man/ko
+#usr/share/man/ko/man1
+#usr/share/man/ko/man1/chfn.1
+#usr/share/man/ko/man1/chsh.1
+#usr/share/man/ko/man1/login.1
+#usr/share/man/ko/man1/newgrp.1
+#usr/share/man/ko/man5
+#usr/share/man/ko/man5/passwd.5
+#usr/share/man/man1/chage.1
+#usr/share/man/man1/chfn.1
+#usr/share/man/man1/chsh.1
+#usr/share/man/man1/expiry.1
+#usr/share/man/man1/gpasswd.1
+#usr/share/man/man1/login.1
+#usr/share/man/man1/newgrp.1
+#usr/share/man/man1/passwd.1
+#usr/share/man/man1/sg.1
+#usr/share/man/man3/getspnam.3
+#usr/share/man/man5/faillog.5
+#usr/share/man/man5/limits.5
+#usr/share/man/man5/login.access.5
+#usr/share/man/man5/login.defs.5
+#usr/share/man/man5/porttime.5
+#usr/share/man/man5/shadow.5
+#usr/share/man/man5/suauth.5
+#usr/share/man/man8/adduser.8
+#usr/share/man/man8/chpasswd.8
+#usr/share/man/man8/faillog.8
+#usr/share/man/man8/groupadd.8
+#usr/share/man/man8/groupdel.8
+#usr/share/man/man8/groupmod.8
+#usr/share/man/man8/grpck.8
+#usr/share/man/man8/grpconv.8
+#usr/share/man/man8/grpunconv.8
+#usr/share/man/man8/lastlog.8
+#usr/share/man/man8/logoutd.8
+#usr/share/man/man8/mkpasswd.8
+#usr/share/man/man8/newusers.8
+#usr/share/man/man8/pwck.8
+#usr/share/man/man8/pwconv.8
+#usr/share/man/man8/pwunconv.8
+#usr/share/man/man8/useradd.8
+#usr/share/man/man8/userdel.8
+#usr/share/man/man8/usermod.8
+#usr/share/man/man8/vigr.8
+#usr/share/man/man8/vipw.8
+#usr/share/man/pl
+#usr/share/man/pl/man1
+#usr/share/man/pl/man1/chage.1
+#usr/share/man/pl/man1/chfn.1
+#usr/share/man/pl/man1/chsh.1
+#usr/share/man/pl/man1/expiry.1
+#usr/share/man/pl/man1/gpasswd.1
+#usr/share/man/pl/man1/login.1
+#usr/share/man/pl/man1/newgrp.1
+#usr/share/man/pl/man1/passwd.1
+#usr/share/man/pl/man1/sg.1
+#usr/share/man/pl/man1/su.1
+#usr/share/man/pl/man5
+#usr/share/man/pl/man5/d_passwd.5
+#usr/share/man/pl/man5/faillog.5
+#usr/share/man/pl/man5/limits.5
+#usr/share/man/pl/man5/login.access.5
+#usr/share/man/pl/man5/login.defs.5
+#usr/share/man/pl/man5/passwd.5
+#usr/share/man/pl/man5/porttime.5
+#usr/share/man/pl/man5/shadow.5
+#usr/share/man/pl/man5/suauth.5
+#usr/share/man/pl/man8
+#usr/share/man/pl/man8/adduser.8
+#usr/share/man/pl/man8/chpasswd.8
+#usr/share/man/pl/man8/faillog.8
+#usr/share/man/pl/man8/groupadd.8
+#usr/share/man/pl/man8/groupdel.8
+#usr/share/man/pl/man8/groupmod.8
+#usr/share/man/pl/man8/grpck.8
+#usr/share/man/pl/man8/grpconv.8
+#usr/share/man/pl/man8/grpunconv.8
+#usr/share/man/pl/man8/lastlog.8
+#usr/share/man/pl/man8/logoutd.8
+#usr/share/man/pl/man8/mkpasswd.8
+#usr/share/man/pl/man8/newusers.8
+#usr/share/man/pl/man8/pwck.8
+#usr/share/man/pl/man8/pwconv.8
+#usr/share/man/pl/man8/pwunconv.8
+#usr/share/man/pl/man8/useradd.8
+#usr/share/man/pl/man8/userdel.8
+#usr/share/man/pl/man8/usermod.8
+#usr/share/man/pl/man8/vigr.8
+#usr/share/man/pl/man8/vipw.8
+#usr/share/man/pt_BR
+#usr/share/man/pt_BR/man1
+#usr/share/man/pt_BR/man1/gpasswd.1
+#usr/share/man/pt_BR/man5
+#usr/share/man/pt_BR/man5/shadow.5
+#usr/share/man/pt_BR/man8
+#usr/share/man/pt_BR/man8/groupadd.8
+#usr/share/man/pt_BR/man8/groupdel.8
+#usr/share/man/pt_BR/man8/groupmod.8
+var/log/btmp
+var/log/lastlog
+var/log/wtmp
+var/run/utmp
+##
+## sysklogd-1.4.1
+##
+usr/sbin/klogd
+usr/sbin/syslogd
+#usr/share/man/man8/klogd.8
+#usr/share/man/man8/sysklogd.8
+#var/log
+var/log/boot.log
+var/log/dhcpcd.log
+var/log/messages
+var/empty
+##
+## sysvinit-2.86
+##
+sbin/halt
+sbin/init
+sbin/killall5
+sbin/poweroff
+sbin/reboot
+sbin/runlevel
+sbin/shutdown
+sbin/sulogin
+sbin/telinit
+#sbin/bootlogd
+usr/bin/last
+usr/bin/lastb
+usr/bin/mesg
+usr/bin/utmpdump
+usr/bin/wall
+#usr/include/initreq.h
+#usr/share/man/man1/last.1
+#usr/share/man/man1/lastb.1
+#usr/share/man/man1/mesg.1
+#usr/share/man/man1/wall.1
+#usr/share/man/man5/initscript.5
+#usr/share/man/man5/inittab.5
+#usr/share/man/man8/halt.8
+#usr/share/man/man8/init.8
+#usr/share/man/man8/killall5.8
+#usr/share/man/man8/pidof.8
+#usr/share/man/man8/poweroff.8
+#usr/share/man/man8/reboot.8
+#usr/share/man/man8/runlevel.8
+#usr/share/man/man8/shutdown.8
+#usr/share/man/man8/sulogin.8
+#usr/share/man/man8/telinit.8
+##
+## tar-1.13.25
+##
+bin/tar
+#usr/bin/rmt
+#usr/share/info/tar.info
+##
+## util-linux-2.12a
+##
+#bin/arch
+bin/dmesg
+bin/more
+bin/mount
+bin/umount
+etc/fdprm
+#sbin/agetty
+sbin/blockdev
+sbin/cfdisk
+sbin/ctrlaltdel
+#sbin/elvtune
+sbin/fdisk
+#sbin/fsck.cramfs
+#sbin/fsck.minix
+sbin/hwclock
+sbin/losetup
+#sbin/mkfs
+#sbin/mkfs.bfs
+#sbin/mkfs.cramfs
+#sbin/mkfs.minix
+sbin/mkswap
+#sbin/pivot_root
+sbin/sfdisk
+sbin/swapoff
+sbin/swapon
+#usr/bin/cal
+#usr/bin/chkdupexe
+#usr/bin/col
+#usr/bin/colcrt
+#usr/bin/colrm
+#usr/bin/column
+#usr/bin/cytune
+#usr/bin/ddate
+usr/bin/fdformat
+usr/bin/getopt
+#usr/bin/hexdump
+#usr/bin/ipcrm
+#usr/bin/ipcs
+#usr/bin/isosize
+#usr/bin/line
+usr/bin/logger
+#usr/bin/look
+#usr/bin/mcookie
+#usr/bin/namei
+usr/bin/pg
+#usr/bin/raw
+usr/bin/rename
+usr/bin/renice
+#usr/bin/rev
+#usr/bin/script
+#usr/bin/setfdprm
+#usr/bin/setsid
+#usr/bin/setterm
+#usr/bin/tailf
+#usr/bin/ul
+#usr/bin/whereis
+#usr/bin/write
+#usr/sbin/ramsize
+usr/sbin/rdev
+#usr/sbin/readprofile
+#usr/sbin/rootflags
+#usr/sbin/tunelp
+#usr/sbin/vidmode
+#usr/share/info/ipc.info
+#usr/share/locale/ca/LC_MESSAGES/util-linux.mo
+#usr/share/locale/cs/LC_MESSAGES/util-linux.mo
+#usr/share/locale/da/LC_MESSAGES/util-linux.mo
+#usr/share/locale/de/LC_MESSAGES/util-linux.mo
+#usr/share/locale/es/LC_MESSAGES/util-linux.mo
+#usr/share/locale/et
+#usr/share/locale/et/LC_MESSAGES
+#usr/share/locale/et/LC_MESSAGES/util-linux.mo
+#usr/share/locale/fi/LC_MESSAGES/util-linux.mo
+#usr/share/locale/fr/LC_MESSAGES/util-linux.mo
+#usr/share/locale/it/LC_MESSAGES/util-linux.mo
+#usr/share/locale/ja/LC_MESSAGES/util-linux.mo
+#usr/share/locale/nl/LC_MESSAGES/util-linux.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/util-linux.mo
+#usr/share/locale/sl
+#usr/share/locale/sl/LC_MESSAGES
+#usr/share/locale/sl/LC_MESSAGES/util-linux.mo
+#usr/share/locale/sv/LC_MESSAGES/util-linux.mo
+#usr/share/locale/tr/LC_MESSAGES/util-linux.mo
+#usr/share/man/man1/arch.1
+#usr/share/man/man1/cal.1
+#usr/share/man/man1/chkdupexe.1
+#usr/share/man/man1/col.1
+#usr/share/man/man1/colcrt.1
+#usr/share/man/man1/colrm.1
+#usr/share/man/man1/column.1
+#usr/share/man/man1/ddate.1
+#usr/share/man/man1/getopt.1
+#usr/share/man/man1/hexdump.1
+#usr/share/man/man1/line.1
+#usr/share/man/man1/look.1
+#usr/share/man/man1/mcookie.1
+#usr/share/man/man1/more.1
+#usr/share/man/man1/namei.1
+#usr/share/man/man1/pg.1
+#usr/share/man/man1/readprofile.1
+#usr/share/man/man1/rename.1
+#usr/share/man/man1/rev.1
+#usr/share/man/man1/script.1
+#usr/share/man/man1/setterm.1
+#usr/share/man/man1/tailf.1
+#usr/share/man/man1/ul.1
+#usr/share/man/man1/whereis.1
+#usr/share/man/man1/write.1
+#usr/share/man/man5/fstab.5
+#usr/share/man/man5/nfs.5
+#usr/share/man/man8/agetty.8
+#usr/share/man/man8/blockdev.8
+#usr/share/man/man8/cfdisk.8
+#usr/share/man/man8/ctrlaltdel.8
+#usr/share/man/man8/cytune.8
+#usr/share/man/man8/dmesg.8
+#usr/share/man/man8/elvtune.8
+#usr/share/man/man8/fdformat.8
+#usr/share/man/man8/fdisk.8
+#usr/share/man/man8/fsck.minix.8
+#usr/share/man/man8/hwclock.8
+#usr/share/man/man8/ipcrm.8
+#usr/share/man/man8/ipcs.8
+#usr/share/man/man8/isosize.8
+#usr/share/man/man8/losetup.8
+#usr/share/man/man8/mkfs.8
+#usr/share/man/man8/mkfs.bfs.8
+#usr/share/man/man8/mkfs.minix.8
+#usr/share/man/man8/mkswap.8
+#usr/share/man/man8/mount.8
+#usr/share/man/man8/pivot_root.8
+#usr/share/man/man8/ramsize.8
+#usr/share/man/man8/raw.8
+#usr/share/man/man8/rdev.8
+#usr/share/man/man8/renice.8
+#usr/share/man/man8/rootflags.8
+#usr/share/man/man8/setfdprm.8
+#usr/share/man/man8/setsid.8
+#usr/share/man/man8/sfdisk.8
+#usr/share/man/man8/sln.8
+#usr/share/man/man8/swapoff.8
+#usr/share/man/man8/swapon.8
+#usr/share/man/man8/tunelp.8
+#usr/share/man/man8/umount.8
+#usr/share/man/man8/vidmode.8
+#usr/share/misc/getopt
+#usr/share/misc/getopt/getopt-parse.bash
+#usr/share/misc/getopt/getopt-parse.tcsh
+#usr/share/misc/getopt/getopt-test.bash
+#usr/share/misc/getopt/getopt-test.tcsh
+#var/lib/hwclock
+var/lib/hwclock/adjtime
+##
+## gcc-2.95.3
+##
+#opt/gcc-2.95.3
+#opt/gcc-2.95.3/bin
+#opt/gcc-2.95.3/bin/c++
+#opt/gcc-2.95.3/bin/c++filt
+#opt/gcc-2.95.3/bin/cpp
+#opt/gcc-2.95.3/bin/g++
+#opt/gcc-2.95.3/bin/gcc
+#opt/gcc-2.95.3/bin/gcov
+#opt/gcc-2.95.3/bin/i386-pc-linux-gnu-gcc
+#opt/gcc-2.95.3/bin/protoize
+#opt/gcc-2.95.3/bin/unprotoize
+#opt/gcc-2.95.3/i386-pc-linux-gnu
+#opt/gcc-2.95.3/i386-pc-linux-gnu/include
+#opt/gcc-2.95.3/include
+#opt/gcc-2.95.3/include/g++-3
+#opt/gcc-2.95.3/include/g++-3/std
+#opt/gcc-2.95.3/include/g++-3/std/bastring.h
+#opt/gcc-2.95.3/include/g++-3/std/complext.h
+#opt/gcc-2.95.3/include/g++-3/std/dcomplex.h
+#opt/gcc-2.95.3/include/g++-3/std/fcomplex.h
+#opt/gcc-2.95.3/include/g++-3/std/gslice.h
+#opt/gcc-2.95.3/include/g++-3/std/gslice_array.h
+#opt/gcc-2.95.3/include/g++-3/std/indirect_array.h
+#opt/gcc-2.95.3/include/g++-3/std/ldcomplex.h
+#opt/gcc-2.95.3/include/g++-3/std/mask_array.h
+#opt/gcc-2.95.3/include/g++-3/std/slice.h
+#opt/gcc-2.95.3/include/g++-3/std/slice_array.h
+#opt/gcc-2.95.3/include/g++-3/std/std_valarray.h
+#opt/gcc-2.95.3/include/g++-3/std/straits.h
+#opt/gcc-2.95.3/include/g++-3/std/valarray_array.h
+#opt/gcc-2.95.3/include/g++-3/std/valarray_meta.h
+#opt/gcc-2.95.3/include/g++-3/std/bastring.cc
+#opt/gcc-2.95.3/include/g++-3/std/complext.cc
+#opt/gcc-2.95.3/include/g++-3/std/valarray_array.tcc
+#opt/gcc-2.95.3/include/g++-3/PlotFile.h
+#opt/gcc-2.95.3/include/g++-3/SFile.h
+#opt/gcc-2.95.3/include/g++-3/builtinbuf.h
+#opt/gcc-2.95.3/include/g++-3/editbuf.h
+#opt/gcc-2.95.3/include/g++-3/fstream.h
+#opt/gcc-2.95.3/include/g++-3/indstream.h
+#opt/gcc-2.95.3/include/g++-3/iomanip.h
+#opt/gcc-2.95.3/include/g++-3/iostream.h
+#opt/gcc-2.95.3/include/g++-3/istream.h
+#opt/gcc-2.95.3/include/g++-3/ostream.h
+#opt/gcc-2.95.3/include/g++-3/parsestream.h
+#opt/gcc-2.95.3/include/g++-3/pfstream.h
+#opt/gcc-2.95.3/include/g++-3/procbuf.h
+#opt/gcc-2.95.3/include/g++-3/stdiostream.h
+#opt/gcc-2.95.3/include/g++-3/stream.h
+#opt/gcc-2.95.3/include/g++-3/streambuf.h
+#opt/gcc-2.95.3/include/g++-3/strfile.h
+#opt/gcc-2.95.3/include/g++-3/strstream.h
+#opt/gcc-2.95.3/include/g++-3/cassert
+#opt/gcc-2.95.3/include/g++-3/cctype
+#opt/gcc-2.95.3/include/g++-3/cerrno
+#opt/gcc-2.95.3/include/g++-3/cfloat
+#opt/gcc-2.95.3/include/g++-3/ciso646
+#opt/gcc-2.95.3/include/g++-3/climits
+#opt/gcc-2.95.3/include/g++-3/clocale
+#opt/gcc-2.95.3/include/g++-3/cmath
+#opt/gcc-2.95.3/include/g++-3/complex
+#opt/gcc-2.95.3/include/g++-3/csetjmp
+#opt/gcc-2.95.3/include/g++-3/csignal
+#opt/gcc-2.95.3/include/g++-3/cstdarg
+#opt/gcc-2.95.3/include/g++-3/cstddef
+#opt/gcc-2.95.3/include/g++-3/cstdio
+#opt/gcc-2.95.3/include/g++-3/cstdlib
+#opt/gcc-2.95.3/include/g++-3/cstring
+#opt/gcc-2.95.3/include/g++-3/ctime
+#opt/gcc-2.95.3/include/g++-3/cwchar
+#opt/gcc-2.95.3/include/g++-3/cwctype
+#opt/gcc-2.95.3/include/g++-3/string
+#opt/gcc-2.95.3/include/g++-3/stdexcept
+#opt/gcc-2.95.3/include/g++-3/algorithm
+#opt/gcc-2.95.3/include/g++-3/deque
+#opt/gcc-2.95.3/include/g++-3/functional
+#opt/gcc-2.95.3/include/g++-3/hash_map
+#opt/gcc-2.95.3/include/g++-3/hash_set
+#opt/gcc-2.95.3/include/g++-3/iterator
+#opt/gcc-2.95.3/include/g++-3/list
+#opt/gcc-2.95.3/include/g++-3/map
+#opt/gcc-2.95.3/include/g++-3/memory
+#opt/gcc-2.95.3/include/g++-3/numeric
+#opt/gcc-2.95.3/include/g++-3/pthread_alloc
+#opt/gcc-2.95.3/include/g++-3/queue
+#opt/gcc-2.95.3/include/g++-3/rope
+#opt/gcc-2.95.3/include/g++-3/set
+#opt/gcc-2.95.3/include/g++-3/slist
+#opt/gcc-2.95.3/include/g++-3/stack
+#opt/gcc-2.95.3/include/g++-3/utility
+#opt/gcc-2.95.3/include/g++-3/vector
+#opt/gcc-2.95.3/include/g++-3/fstream
+#opt/gcc-2.95.3/include/g++-3/iomanip
+#opt/gcc-2.95.3/include/g++-3/iostream
+#opt/gcc-2.95.3/include/g++-3/strstream
+#opt/gcc-2.95.3/include/g++-3/iosfwd
+#opt/gcc-2.95.3/include/g++-3/bitset
+#opt/gcc-2.95.3/include/g++-3/valarray
+#opt/gcc-2.95.3/include/g++-3/sstream
+#opt/gcc-2.95.3/include/g++-3/complex.h
+#opt/gcc-2.95.3/include/g++-3/stl.h
+#opt/gcc-2.95.3/include/g++-3/algo.h
+#opt/gcc-2.95.3/include/g++-3/algobase.h
+#opt/gcc-2.95.3/include/g++-3/alloc.h
+#opt/gcc-2.95.3/include/g++-3/bvector.h
+#opt/gcc-2.95.3/include/g++-3/defalloc.h
+#opt/gcc-2.95.3/include/g++-3/deque.h
+#opt/gcc-2.95.3/include/g++-3/function.h
+#opt/gcc-2.95.3/include/g++-3/hash_map.h
+#opt/gcc-2.95.3/include/g++-3/hash_set.h
+#opt/gcc-2.95.3/include/g++-3/hashtable.h
+#opt/gcc-2.95.3/include/g++-3/heap.h
+#opt/gcc-2.95.3/include/g++-3/iterator.h
+#opt/gcc-2.95.3/include/g++-3/list.h
+#opt/gcc-2.95.3/include/g++-3/map.h
+#opt/gcc-2.95.3/include/g++-3/multimap.h
+#opt/gcc-2.95.3/include/g++-3/multiset.h
+#opt/gcc-2.95.3/include/g++-3/pair.h
+#opt/gcc-2.95.3/include/g++-3/pthread_alloc.h
+#opt/gcc-2.95.3/include/g++-3/rope.h
+#opt/gcc-2.95.3/include/g++-3/ropeimpl.h
+#opt/gcc-2.95.3/include/g++-3/set.h
+#opt/gcc-2.95.3/include/g++-3/slist.h
+#opt/gcc-2.95.3/include/g++-3/stack.h
+#opt/gcc-2.95.3/include/g++-3/stl_algo.h
+#opt/gcc-2.95.3/include/g++-3/stl_algobase.h
+#opt/gcc-2.95.3/include/g++-3/stl_alloc.h
+#opt/gcc-2.95.3/include/g++-3/stl_bvector.h
+#opt/gcc-2.95.3/include/g++-3/stl_config.h
+#opt/gcc-2.95.3/include/g++-3/stl_construct.h
+#opt/gcc-2.95.3/include/g++-3/stl_deque.h
+#opt/gcc-2.95.3/include/g++-3/stl_function.h
+#opt/gcc-2.95.3/include/g++-3/stl_hash_fun.h
+#opt/gcc-2.95.3/include/g++-3/stl_hash_map.h
+#opt/gcc-2.95.3/include/g++-3/stl_hash_set.h
+#opt/gcc-2.95.3/include/g++-3/stl_hashtable.h
+#opt/gcc-2.95.3/include/g++-3/stl_heap.h
+#opt/gcc-2.95.3/include/g++-3/stl_iterator.h
+#opt/gcc-2.95.3/include/g++-3/stl_list.h
+#opt/gcc-2.95.3/include/g++-3/stl_map.h
+#opt/gcc-2.95.3/include/g++-3/stl_multimap.h
+#opt/gcc-2.95.3/include/g++-3/stl_multiset.h
+#opt/gcc-2.95.3/include/g++-3/stl_numeric.h
+#opt/gcc-2.95.3/include/g++-3/stl_pair.h
+#opt/gcc-2.95.3/include/g++-3/stl_queue.h
+#opt/gcc-2.95.3/include/g++-3/stl_raw_storage_iter.h
+#opt/gcc-2.95.3/include/g++-3/stl_relops.h
+#opt/gcc-2.95.3/include/g++-3/stl_rope.h
+#opt/gcc-2.95.3/include/g++-3/stl_set.h
+#opt/gcc-2.95.3/include/g++-3/stl_slist.h
+#opt/gcc-2.95.3/include/g++-3/stl_stack.h
+#opt/gcc-2.95.3/include/g++-3/stl_tempbuf.h
+#opt/gcc-2.95.3/include/g++-3/stl_tree.h
+#opt/gcc-2.95.3/include/g++-3/stl_uninitialized.h
+#opt/gcc-2.95.3/include/g++-3/stl_vector.h
+#opt/gcc-2.95.3/include/g++-3/tempbuf.h
+#opt/gcc-2.95.3/include/g++-3/tree.h
+#opt/gcc-2.95.3/include/g++-3/type_traits.h
+#opt/gcc-2.95.3/include/g++-3/vector.h
+#opt/gcc-2.95.3/info
+#opt/gcc-2.95.3/info/cpp.info
+#opt/gcc-2.95.3/info/cpp.info-1
+#opt/gcc-2.95.3/info/cpp.info-2
+#opt/gcc-2.95.3/info/cpp.info-3
+#opt/gcc-2.95.3/info/gcc.info
+#opt/gcc-2.95.3/info/gcc.info-1
+#opt/gcc-2.95.3/info/gcc.info-10
+#opt/gcc-2.95.3/info/gcc.info-11
+#opt/gcc-2.95.3/info/gcc.info-12
+#opt/gcc-2.95.3/info/gcc.info-13
+#opt/gcc-2.95.3/info/gcc.info-14
+#opt/gcc-2.95.3/info/gcc.info-15
+#opt/gcc-2.95.3/info/gcc.info-16
+#opt/gcc-2.95.3/info/gcc.info-17
+#opt/gcc-2.95.3/info/gcc.info-18
+#opt/gcc-2.95.3/info/gcc.info-19
+#opt/gcc-2.95.3/info/gcc.info-2
+#opt/gcc-2.95.3/info/gcc.info-20
+#opt/gcc-2.95.3/info/gcc.info-21
+#opt/gcc-2.95.3/info/gcc.info-22
+#opt/gcc-2.95.3/info/gcc.info-23
+#opt/gcc-2.95.3/info/gcc.info-24
+#opt/gcc-2.95.3/info/gcc.info-25
+#opt/gcc-2.95.3/info/gcc.info-26
+#opt/gcc-2.95.3/info/gcc.info-27
+#opt/gcc-2.95.3/info/gcc.info-28
+#opt/gcc-2.95.3/info/gcc.info-29
+#opt/gcc-2.95.3/info/gcc.info-3
+#opt/gcc-2.95.3/info/gcc.info-30
+#opt/gcc-2.95.3/info/gcc.info-4
+#opt/gcc-2.95.3/info/gcc.info-5
+#opt/gcc-2.95.3/info/gcc.info-6
+#opt/gcc-2.95.3/info/gcc.info-7
+#opt/gcc-2.95.3/info/gcc.info-8
+#opt/gcc-2.95.3/info/gcc.info-9
+#opt/gcc-2.95.3/lib
+#opt/gcc-2.95.3/lib/gcc-lib
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/SYSCALLS.c.X
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/cc1
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/cc1plus
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/collect2
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/cpp0
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/crtbegin.o
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/crtbeginS.o
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/crtend.o
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/crtendS.o
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/exception
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/float.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/iso646.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/limits.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/new
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/new.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/proto.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/stdarg.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/stdbool.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/stddef.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/syslimits.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/typeinfo
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-alpha.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-arc.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-c4x.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-clipper.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-h8300.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-i860.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-i960.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-m32r.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-m88k.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-mips.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-mn10200.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-mn10300.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-pa.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-ppc.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-pyr.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-sh.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-sparc.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-spur.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/va-v850.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/include/varargs.h
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/libgcc.a
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/libstdc++.a
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/libstdc++.so
+#opt/gcc-2.95.3/lib/gcc-lib/i386-pc-linux-gnu/2.95.3/specs
+#opt/gcc-2.95.3/lib/libiberty.a
+#opt/gcc-2.95.3/lib/libstdc++-3-libc6.3-2-2.10.0.a
+#opt/gcc-2.95.3/lib/libstdc++-libc6.3-2.a.3
+#opt/gcc-2.95.3/lib/libstdc++-3-libc6.3-2-2.10.0.so
+#opt/gcc-2.95.3/lib/libstdc++-libc6.3-2.so.3
+#opt/gcc-2.95.3/man
+#opt/gcc-2.95.3/man/man1
+#opt/gcc-2.95.3/man/man1/cccp.1
+#opt/gcc-2.95.3/man/man1/g++.1
+#opt/gcc-2.95.3/man/man1/gcc.1
+##
+## pcmcia-cs-3.2.8
+##
+#etc/pcmcia
+#etc/pcmcia/cis
+etc/pcmcia/cis/3CCFEM556.dat
+etc/pcmcia/cis/3CXEM556.dat
+etc/pcmcia/cis/COMpad2.dat
+etc/pcmcia/cis/COMpad4.dat
+etc/pcmcia/cis/DP83903.dat
+etc/pcmcia/cis/E-CARD.dat
+etc/pcmcia/cis/LA-PCM.dat
+etc/pcmcia/cis/MT5634ZLX.dat
+etc/pcmcia/cis/NE2K.dat
+etc/pcmcia/cis/PCMLM28.dat
+etc/pcmcia/cis/PE-200.dat
+etc/pcmcia/cis/PE520.dat
+etc/pcmcia/cis/RS-COM-2P.dat
+etc/pcmcia/cis/tamarack.dat
+etc/pcmcia/config
+etc/pcmcia/config.opts
+etc/pcmcia/ftl
+etc/pcmcia/ftl.opts
+etc/pcmcia/ide
+etc/pcmcia/ide.opts
+etc/pcmcia/ieee1394
+etc/pcmcia/ieee1394.opts
+etc/pcmcia/isdnextra.conf
+etc/pcmcia/memory
+etc/pcmcia/memory.opts
+etc/pcmcia/netextra.conf
+etc/pcmcia/network
+etc/pcmcia/network.opts
+etc/pcmcia/parport
+etc/pcmcia/parport.opts
+etc/pcmcia/scsi
+etc/pcmcia/scsi.opts
+etc/pcmcia/serial
+etc/pcmcia/serial.opts
+etc/pcmcia/shared
+etc/pcmcia/wireless
+etc/pcmcia/wireless.opts
+#etc/rc.d
+etc/rc.d/rc.pcmcia
+sbin/cardctl
+sbin/cardmgr
+sbin/dump_cis
+sbin/ftl_check
+sbin/ftl_format
+sbin/ide_info
+sbin/ifport
+sbin/ifuser
+sbin/lspnp
+sbin/pack_cis
+sbin/pcinitrd
+sbin/scsi_info
+sbin/setpnp
+#usr/share/man/man4/aha152x_cs.4
+#usr/share/man/man4/airo.4
+#usr/share/man/man4/airo_cs.4
+#usr/share/man/man4/axnet_cs.4
+#usr/share/man/man4/dummy_cb.4
+#usr/share/man/man4/dummy_cs.4
+#usr/share/man/man4/fmvj18x_cs.4
+#usr/share/man/man4/ftl_cs.4
+#usr/share/man/man4/i82365.4
+#usr/share/man/man4/ibmtr_cs.4
+#usr/share/man/man4/iflash2+_mtd.4
+#usr/share/man/man4/iflash2_mtd.4
+#usr/share/man/man4/memory_cb.4
+#usr/share/man/man4/memory_cs.4
+#usr/share/man/man4/netwave_cs.4
+#usr/share/man/man4/pcmcia_core.4
+#usr/share/man/man4/pcnet_cs.4
+#usr/share/man/man4/ray_cs.4
+#usr/share/man/man4/serial_cs.4
+#usr/share/man/man4/smc91c92_cs.4
+#usr/share/man/man4/tc574_cs.4
+#usr/share/man/man4/tc575_cb.4
+#usr/share/man/man4/tc589_cs.4
+#usr/share/man/man4/tcic.4
+#usr/share/man/man4/wavelan_cs.4
+#usr/share/man/man4/wvlan_cs.4
+#usr/share/man/man4/xirc2ps_cs.4
+#usr/share/man/man5/pcmcia.5
+#usr/share/man/man5/stab.5
+#usr/share/man/man8/cardctl.8
+#usr/share/man/man8/cardmgr.8
+#usr/share/man/man8/dump_cis.8
+#usr/share/man/man8/ftl_check.8
+#usr/share/man/man8/ftl_format.8
+#usr/share/man/man8/ide_info.8
+#usr/share/man/man8/ifport.8
+#usr/share/man/man8/ifuser.8
+#usr/share/man/man8/lspnp.8
+#usr/share/man/man8/pack_cis.8
+#usr/share/man/man8/pcic_probe.8
+#usr/share/man/man8/pcinitrd.8
+#usr/share/man/man8/scsi_info.8
+#usr/share/man/man8/setpnp.8
+usr/share/pnp.ids
+var/lib/pcmcia
+##
+## Python-2.3.4
+##
+#usr/bin/idle
+#usr/bin/pydoc
+usr/bin/python
+#usr/bin/python2.3
+#usr/include/python2.3
+#usr/include/python2.3/Python.h
+#usr/include/python2.3/abstract.h
+#usr/include/python2.3/bitset.h
+#usr/include/python2.3/boolobject.h
+#usr/include/python2.3/bufferobject.h
+#usr/include/python2.3/cStringIO.h
+#usr/include/python2.3/cellobject.h
+#usr/include/python2.3/ceval.h
+#usr/include/python2.3/classobject.h
+#usr/include/python2.3/cobject.h
+#usr/include/python2.3/codecs.h
+#usr/include/python2.3/compile.h
+#usr/include/python2.3/complexobject.h
+#usr/include/python2.3/datetime.h
+#usr/include/python2.3/descrobject.h
+#usr/include/python2.3/dictobject.h
+#usr/include/python2.3/enumobject.h
+#usr/include/python2.3/errcode.h
+#usr/include/python2.3/eval.h
+#usr/include/python2.3/fileobject.h
+#usr/include/python2.3/floatobject.h
+#usr/include/python2.3/frameobject.h
+#usr/include/python2.3/funcobject.h
+#usr/include/python2.3/graminit.h
+#usr/include/python2.3/grammar.h
+#usr/include/python2.3/import.h
+#usr/include/python2.3/intobject.h
+#usr/include/python2.3/intrcheck.h
+#usr/include/python2.3/iterobject.h
+#usr/include/python2.3/listobject.h
+#usr/include/python2.3/longintrepr.h
+#usr/include/python2.3/longobject.h
+#usr/include/python2.3/marshal.h
+#usr/include/python2.3/metagrammar.h
+#usr/include/python2.3/methodobject.h
+#usr/include/python2.3/modsupport.h
+#usr/include/python2.3/moduleobject.h
+#usr/include/python2.3/node.h
+#usr/include/python2.3/object.h
+#usr/include/python2.3/objimpl.h
+#usr/include/python2.3/opcode.h
+#usr/include/python2.3/osdefs.h
+#usr/include/python2.3/parsetok.h
+#usr/include/python2.3/patchlevel.h
+#usr/include/python2.3/pgen.h
+#usr/include/python2.3/pgenheaders.h
+#usr/include/python2.3/py_curses.h
+#usr/include/python2.3/pyconfig.h
+#usr/include/python2.3/pydebug.h
+#usr/include/python2.3/pyerrors.h
+#usr/include/python2.3/pyfpe.h
+#usr/include/python2.3/pygetopt.h
+#usr/include/python2.3/pymactoolbox.h
+#usr/include/python2.3/pymem.h
+#usr/include/python2.3/pyport.h
+#usr/include/python2.3/pystate.h
+#usr/include/python2.3/pythonrun.h
+#usr/include/python2.3/pythread.h
+#usr/include/python2.3/rangeobject.h
+#usr/include/python2.3/sliceobject.h
+#usr/include/python2.3/stringobject.h
+#usr/include/python2.3/structmember.h
+#usr/include/python2.3/structseq.h
+#usr/include/python2.3/symtable.h
+#usr/include/python2.3/sysmodule.h
+#usr/include/python2.3/token.h
+#usr/include/python2.3/traceback.h
+#usr/include/python2.3/tupleobject.h
+#usr/include/python2.3/ucnhash.h
+#usr/include/python2.3/unicodeobject.h
+#usr/include/python2.3/weakrefobject.h
+#usr/lib/python2.3
+#usr/lib/python2.3/BaseHTTPServer.py
+usr/lib/python2.3/BaseHTTPServer.pyc
+#usr/lib/python2.3/BaseHTTPServer.pyo
+#usr/lib/python2.3/Bastion.py
+#usr/lib/python2.3/Bastion.pyc
+#usr/lib/python2.3/Bastion.pyo
+#usr/lib/python2.3/CGIHTTPServer.py
+usr/lib/python2.3/CGIHTTPServer.pyc
+#usr/lib/python2.3/CGIHTTPServer.pyo
+#usr/lib/python2.3/ConfigParser.py
+usr/lib/python2.3/ConfigParser.pyc
+#usr/lib/python2.3/ConfigParser.pyo
+#usr/lib/python2.3/Cookie.py
+usr/lib/python2.3/Cookie.pyc
+#usr/lib/python2.3/Cookie.pyo
+#usr/lib/python2.3/DocXMLRPCServer.py
+usr/lib/python2.3/DocXMLRPCServer.pyc
+#usr/lib/python2.3/DocXMLRPCServer.pyo
+#usr/lib/python2.3/FCNTL.py
+usr/lib/python2.3/FCNTL.pyc
+#usr/lib/python2.3/FCNTL.pyo
+#usr/lib/python2.3/HTMLParser.py
+usr/lib/python2.3/HTMLParser.pyc
+#usr/lib/python2.3/HTMLParser.pyo
+#usr/lib/python2.3/LICENSE.txt
+#usr/lib/python2.3/MimeWriter.py
+usr/lib/python2.3/MimeWriter.pyc
+#usr/lib/python2.3/MimeWriter.pyo
+#usr/lib/python2.3/Queue.py
+usr/lib/python2.3/Queue.pyc
+#usr/lib/python2.3/Queue.pyo
+#usr/lib/python2.3/SimpleHTTPServer.py
+usr/lib/python2.3/SimpleHTTPServer.pyc
+#usr/lib/python2.3/SimpleHTTPServer.pyo
+#usr/lib/python2.3/SimpleXMLRPCServer.py
+usr/lib/python2.3/SimpleXMLRPCServer.pyc
+#usr/lib/python2.3/SimpleXMLRPCServer.pyo
+#usr/lib/python2.3/SocketServer.py
+usr/lib/python2.3/SocketServer.pyc
+#usr/lib/python2.3/SocketServer.pyo
+#usr/lib/python2.3/StringIO.py
+usr/lib/python2.3/StringIO.pyc
+#usr/lib/python2.3/StringIO.pyo
+#usr/lib/python2.3/TERMIOS.py
+usr/lib/python2.3/TERMIOS.pyc
+#usr/lib/python2.3/TERMIOS.pyo
+#usr/lib/python2.3/UserDict.py
+usr/lib/python2.3/UserDict.pyc
+#usr/lib/python2.3/UserDict.pyo
+#usr/lib/python2.3/UserList.py
+usr/lib/python2.3/UserList.pyc
+#usr/lib/python2.3/UserList.pyo
+#usr/lib/python2.3/UserString.py
+usr/lib/python2.3/UserString.pyc
+#usr/lib/python2.3/UserString.pyo
+#usr/lib/python2.3/__future__.py
+usr/lib/python2.3/__future__.pyc
+#usr/lib/python2.3/__future__.pyo
+#usr/lib/python2.3/__phello__.foo.py
+#usr/lib/python2.3/__phello__.foo.pyc
+#usr/lib/python2.3/__phello__.foo.pyo
+#usr/lib/python2.3/_strptime.py
+usr/lib/python2.3/_strptime.pyc
+#usr/lib/python2.3/_strptime.pyo
+#usr/lib/python2.3/aifc.py
+#usr/lib/python2.3/aifc.pyc
+#usr/lib/python2.3/aifc.pyo
+#usr/lib/python2.3/anydbm.py
+usr/lib/python2.3/anydbm.pyc
+#usr/lib/python2.3/anydbm.pyo
+#usr/lib/python2.3/asynchat.py
+#usr/lib/python2.3/asynchat.pyc
+#usr/lib/python2.3/asynchat.pyo
+#usr/lib/python2.3/asyncore.py
+usr/lib/python2.3/asyncore.pyc
+#usr/lib/python2.3/asyncore.pyo
+#usr/lib/python2.3/atexit.py
+usr/lib/python2.3/atexit.pyc
+#usr/lib/python2.3/atexit.pyo
+#usr/lib/python2.3/audiodev.py
+#usr/lib/python2.3/audiodev.pyc
+#usr/lib/python2.3/audiodev.pyo
+#usr/lib/python2.3/base64.py
+usr/lib/python2.3/base64.pyc
+#usr/lib/python2.3/base64.pyo
+#usr/lib/python2.3/bdb.py
+#usr/lib/python2.3/bdb.pyc
+#usr/lib/python2.3/bdb.pyo
+#usr/lib/python2.3/binhex.py
+usr/lib/python2.3/binhex.pyc
+#usr/lib/python2.3/binhex.pyo
+#usr/lib/python2.3/bisect.py
+#usr/lib/python2.3/bisect.pyc
+#usr/lib/python2.3/bisect.pyo
+#usr/lib/python2.3/bsddb
+#usr/lib/python2.3/bsddb/__init__.py
+usr/lib/python2.3/bsddb/__init__.pyc
+#usr/lib/python2.3/bsddb/__init__.pyo
+#usr/lib/python2.3/bsddb/db.py
+usr/lib/python2.3/bsddb/db.pyc
+#usr/lib/python2.3/bsddb/db.pyo
+#usr/lib/python2.3/bsddb/dbobj.py
+usr/lib/python2.3/bsddb/dbobj.pyc
+#usr/lib/python2.3/bsddb/dbobj.pyo
+#usr/lib/python2.3/bsddb/dbrecio.py
+usr/lib/python2.3/bsddb/dbrecio.pyc
+#usr/lib/python2.3/bsddb/dbrecio.pyo
+#usr/lib/python2.3/bsddb/dbshelve.py
+usr/lib/python2.3/bsddb/dbshelve.pyc
+#usr/lib/python2.3/bsddb/dbshelve.pyo
+#usr/lib/python2.3/bsddb/dbtables.py
+usr/lib/python2.3/bsddb/dbtables.pyc
+#usr/lib/python2.3/bsddb/dbtables.pyo
+#usr/lib/python2.3/bsddb/dbutils.py
+usr/lib/python2.3/bsddb/dbutils.pyc
+#usr/lib/python2.3/bsddb/dbutils.pyo
+#usr/lib/python2.3/bsddb/test
+#usr/lib/python2.3/bsddb/test/__init__.py
+#usr/lib/python2.3/bsddb/test/__init__.pyc
+#usr/lib/python2.3/bsddb/test/__init__.pyo
+#usr/lib/python2.3/bsddb/test/test_all.py
+#usr/lib/python2.3/bsddb/test/test_all.pyc
+#usr/lib/python2.3/bsddb/test/test_all.pyo
+#usr/lib/python2.3/bsddb/test/test_associate.py
+#usr/lib/python2.3/bsddb/test/test_associate.pyc
+#usr/lib/python2.3/bsddb/test/test_associate.pyo
+#usr/lib/python2.3/bsddb/test/test_basics.py
+#usr/lib/python2.3/bsddb/test/test_basics.pyc
+#usr/lib/python2.3/bsddb/test/test_basics.pyo
+#usr/lib/python2.3/bsddb/test/test_compat.py
+#usr/lib/python2.3/bsddb/test/test_compat.pyc
+#usr/lib/python2.3/bsddb/test/test_compat.pyo
+#usr/lib/python2.3/bsddb/test/test_dbobj.py
+#usr/lib/python2.3/bsddb/test/test_dbobj.pyc
+#usr/lib/python2.3/bsddb/test/test_dbobj.pyo
+#usr/lib/python2.3/bsddb/test/test_dbshelve.py
+#usr/lib/python2.3/bsddb/test/test_dbshelve.pyc
+#usr/lib/python2.3/bsddb/test/test_dbshelve.pyo
+#usr/lib/python2.3/bsddb/test/test_dbtables.py
+#usr/lib/python2.3/bsddb/test/test_dbtables.pyc
+#usr/lib/python2.3/bsddb/test/test_dbtables.pyo
+#usr/lib/python2.3/bsddb/test/test_env_close.py
+#usr/lib/python2.3/bsddb/test/test_env_close.pyc
+#usr/lib/python2.3/bsddb/test/test_env_close.pyo
+#usr/lib/python2.3/bsddb/test/test_get_none.py
+#usr/lib/python2.3/bsddb/test/test_get_none.pyc
+#usr/lib/python2.3/bsddb/test/test_get_none.pyo
+#usr/lib/python2.3/bsddb/test/test_join.py
+#usr/lib/python2.3/bsddb/test/test_join.pyc
+#usr/lib/python2.3/bsddb/test/test_join.pyo
+#usr/lib/python2.3/bsddb/test/test_lock.py
+#usr/lib/python2.3/bsddb/test/test_lock.pyc
+#usr/lib/python2.3/bsddb/test/test_lock.pyo
+#usr/lib/python2.3/bsddb/test/test_misc.py
+#usr/lib/python2.3/bsddb/test/test_misc.pyc
+#usr/lib/python2.3/bsddb/test/test_misc.pyo
+#usr/lib/python2.3/bsddb/test/test_queue.py
+#usr/lib/python2.3/bsddb/test/test_queue.pyc
+#usr/lib/python2.3/bsddb/test/test_queue.pyo
+#usr/lib/python2.3/bsddb/test/test_recno.py
+#usr/lib/python2.3/bsddb/test/test_recno.pyc
+#usr/lib/python2.3/bsddb/test/test_recno.pyo
+#usr/lib/python2.3/bsddb/test/test_thread.py
+#usr/lib/python2.3/bsddb/test/test_thread.pyc
+#usr/lib/python2.3/bsddb/test/test_thread.pyo
+#usr/lib/python2.3/calendar.py
+usr/lib/python2.3/calendar.pyc
+#usr/lib/python2.3/calendar.pyo
+#usr/lib/python2.3/cgi.py
+usr/lib/python2.3/cgi.pyc
+#usr/lib/python2.3/cgi.pyo
+#usr/lib/python2.3/cgitb.py
+usr/lib/python2.3/cgitb.pyc
+#usr/lib/python2.3/cgitb.pyo
+#usr/lib/python2.3/chunk.py
+usr/lib/python2.3/chunk.pyc
+#usr/lib/python2.3/chunk.pyo
+#usr/lib/python2.3/cmd.py
+usr/lib/python2.3/cmd.pyc
+#usr/lib/python2.3/cmd.pyo
+#usr/lib/python2.3/code.py
+usr/lib/python2.3/code.pyc
+#usr/lib/python2.3/code.pyo
+#usr/lib/python2.3/codecs.py
+usr/lib/python2.3/codecs.pyc
+#usr/lib/python2.3/codecs.pyo
+#usr/lib/python2.3/codeop.py
+usr/lib/python2.3/codeop.pyc
+#usr/lib/python2.3/codeop.pyo
+#usr/lib/python2.3/colorsys.py
+usr/lib/python2.3/colorsys.pyc
+#usr/lib/python2.3/colorsys.pyo
+#usr/lib/python2.3/commands.py
+usr/lib/python2.3/commands.pyc
+#usr/lib/python2.3/commands.pyo
+#usr/lib/python2.3/compileall.py
+usr/lib/python2.3/compileall.pyc
+#usr/lib/python2.3/compileall.pyo
+#usr/lib/python2.3/compiler
+#usr/lib/python2.3/compiler/__init__.py
+usr/lib/python2.3/compiler/__init__.pyc
+#usr/lib/python2.3/compiler/__init__.pyo
+#usr/lib/python2.3/compiler/ast.py
+usr/lib/python2.3/compiler/ast.pyc
+#usr/lib/python2.3/compiler/ast.pyo
+#usr/lib/python2.3/compiler/consts.py
+usr/lib/python2.3/compiler/consts.pyc
+#usr/lib/python2.3/compiler/consts.pyo
+#usr/lib/python2.3/compiler/future.py
+usr/lib/python2.3/compiler/future.pyc
+#usr/lib/python2.3/compiler/future.pyo
+#usr/lib/python2.3/compiler/misc.py
+usr/lib/python2.3/compiler/misc.pyc
+#usr/lib/python2.3/compiler/misc.pyo
+#usr/lib/python2.3/compiler/pyassem.py
+usr/lib/python2.3/compiler/pyassem.pyc
+#usr/lib/python2.3/compiler/pyassem.pyo
+#usr/lib/python2.3/compiler/pycodegen.py
+usr/lib/python2.3/compiler/pycodegen.pyc
+#usr/lib/python2.3/compiler/pycodegen.pyo
+#usr/lib/python2.3/compiler/symbols.py
+usr/lib/python2.3/compiler/symbols.pyc
+#usr/lib/python2.3/compiler/symbols.pyo
+#usr/lib/python2.3/compiler/syntax.py
+usr/lib/python2.3/compiler/syntax.pyc
+#usr/lib/python2.3/compiler/syntax.pyo
+#usr/lib/python2.3/compiler/transformer.py
+usr/lib/python2.3/compiler/transformer.pyc
+#usr/lib/python2.3/compiler/transformer.pyo
+#usr/lib/python2.3/compiler/visitor.py
+usr/lib/python2.3/compiler/visitor.pyc
+#usr/lib/python2.3/compiler/visitor.pyo
+#usr/lib/python2.3/config
+#usr/lib/python2.3/config/Makefile
+#usr/lib/python2.3/config/Setup
+#usr/lib/python2.3/config/Setup.config
+#usr/lib/python2.3/config/Setup.local
+#usr/lib/python2.3/config/config.c
+#usr/lib/python2.3/config/config.c.in
+#usr/lib/python2.3/config/install-sh
+#usr/lib/python2.3/config/libpython2.3.a
+#usr/lib/python2.3/config/makesetup
+#usr/lib/python2.3/config/python.o
+#usr/lib/python2.3/copy.py
+usr/lib/python2.3/copy.pyc
+#usr/lib/python2.3/copy.pyo
+#usr/lib/python2.3/copy_reg.py
+usr/lib/python2.3/copy_reg.pyc
+#usr/lib/python2.3/copy_reg.pyo
+#usr/lib/python2.3/csv.py
+usr/lib/python2.3/csv.pyc
+#usr/lib/python2.3/csv.pyo
+#usr/lib/python2.3/curses
+#usr/lib/python2.3/curses/__init__.py
+usr/lib/python2.3/curses/__init__.pyc
+#usr/lib/python2.3/curses/__init__.pyo
+#usr/lib/python2.3/curses/ascii.py
+usr/lib/python2.3/curses/ascii.pyc
+#usr/lib/python2.3/curses/ascii.pyo
+#usr/lib/python2.3/curses/has_key.py
+usr/lib/python2.3/curses/has_key.pyc
+#usr/lib/python2.3/curses/has_key.pyo
+#usr/lib/python2.3/curses/panel.py
+usr/lib/python2.3/curses/panel.pyc
+#usr/lib/python2.3/curses/panel.pyo
+#usr/lib/python2.3/curses/textpad.py
+usr/lib/python2.3/curses/textpad.pyc
+#usr/lib/python2.3/curses/textpad.pyo
+#usr/lib/python2.3/curses/wrapper.py
+usr/lib/python2.3/curses/wrapper.pyc
+#usr/lib/python2.3/curses/wrapper.pyo
+#usr/lib/python2.3/dbhash.py
+usr/lib/python2.3/dbhash.pyc
+#usr/lib/python2.3/dbhash.pyo
+#usr/lib/python2.3/difflib.py
+usr/lib/python2.3/difflib.pyc
+#usr/lib/python2.3/difflib.pyo
+#usr/lib/python2.3/dircache.py
+usr/lib/python2.3/dircache.pyc
+#usr/lib/python2.3/dircache.pyo
+#usr/lib/python2.3/dis.py
+usr/lib/python2.3/dis.pyc
+#usr/lib/python2.3/dis.pyo
+#usr/lib/python2.3/distutils
+#usr/lib/python2.3/distutils/README
+#usr/lib/python2.3/distutils/__init__.py
+#usr/lib/python2.3/distutils/__init__.pyc
+#usr/lib/python2.3/distutils/__init__.pyo
+#usr/lib/python2.3/distutils/archive_util.py
+#usr/lib/python2.3/distutils/archive_util.pyc
+#usr/lib/python2.3/distutils/archive_util.pyo
+#usr/lib/python2.3/distutils/bcppcompiler.py
+#usr/lib/python2.3/distutils/bcppcompiler.pyc
+#usr/lib/python2.3/distutils/bcppcompiler.pyo
+#usr/lib/python2.3/distutils/ccompiler.py
+#usr/lib/python2.3/distutils/ccompiler.pyc
+#usr/lib/python2.3/distutils/ccompiler.pyo
+#usr/lib/python2.3/distutils/cmd.py
+#usr/lib/python2.3/distutils/cmd.pyc
+#usr/lib/python2.3/distutils/cmd.pyo
+#usr/lib/python2.3/distutils/command
+#usr/lib/python2.3/distutils/command/__init__.py
+#usr/lib/python2.3/distutils/command/__init__.pyc
+#usr/lib/python2.3/distutils/command/__init__.pyo
+#usr/lib/python2.3/distutils/command/bdist.py
+#usr/lib/python2.3/distutils/command/bdist.pyc
+#usr/lib/python2.3/distutils/command/bdist.pyo
+#usr/lib/python2.3/distutils/command/bdist_dumb.py
+#usr/lib/python2.3/distutils/command/bdist_dumb.pyc
+#usr/lib/python2.3/distutils/command/bdist_dumb.pyo
+#usr/lib/python2.3/distutils/command/bdist_rpm.py
+#usr/lib/python2.3/distutils/command/bdist_rpm.pyc
+#usr/lib/python2.3/distutils/command/bdist_rpm.pyo
+#usr/lib/python2.3/distutils/command/bdist_wininst.py
+#usr/lib/python2.3/distutils/command/bdist_wininst.pyc
+#usr/lib/python2.3/distutils/command/bdist_wininst.pyo
+#usr/lib/python2.3/distutils/command/build.py
+#usr/lib/python2.3/distutils/command/build.pyc
+#usr/lib/python2.3/distutils/command/build.pyo
+#usr/lib/python2.3/distutils/command/build_clib.py
+#usr/lib/python2.3/distutils/command/build_clib.pyc
+#usr/lib/python2.3/distutils/command/build_clib.pyo
+#usr/lib/python2.3/distutils/command/build_ext.py
+#usr/lib/python2.3/distutils/command/build_ext.pyc
+#usr/lib/python2.3/distutils/command/build_ext.pyo
+#usr/lib/python2.3/distutils/command/build_py.py
+#usr/lib/python2.3/distutils/command/build_py.pyc
+#usr/lib/python2.3/distutils/command/build_py.pyo
+#usr/lib/python2.3/distutils/command/build_scripts.py
+#usr/lib/python2.3/distutils/command/build_scripts.pyc
+#usr/lib/python2.3/distutils/command/build_scripts.pyo
+#usr/lib/python2.3/distutils/command/clean.py
+#usr/lib/python2.3/distutils/command/clean.pyc
+#usr/lib/python2.3/distutils/command/clean.pyo
+#usr/lib/python2.3/distutils/command/command_template
+#usr/lib/python2.3/distutils/command/config.py
+#usr/lib/python2.3/distutils/command/config.pyc
+#usr/lib/python2.3/distutils/command/config.pyo
+#usr/lib/python2.3/distutils/command/install.py
+#usr/lib/python2.3/distutils/command/install.pyc
+#usr/lib/python2.3/distutils/command/install.pyo
+#usr/lib/python2.3/distutils/command/install_data.py
+#usr/lib/python2.3/distutils/command/install_data.pyc
+#usr/lib/python2.3/distutils/command/install_data.pyo
+#usr/lib/python2.3/distutils/command/install_headers.py
+#usr/lib/python2.3/distutils/command/install_headers.pyc
+#usr/lib/python2.3/distutils/command/install_headers.pyo
+#usr/lib/python2.3/distutils/command/install_lib.py
+#usr/lib/python2.3/distutils/command/install_lib.pyc
+#usr/lib/python2.3/distutils/command/install_lib.pyo
+#usr/lib/python2.3/distutils/command/install_scripts.py
+#usr/lib/python2.3/distutils/command/install_scripts.pyc
+#usr/lib/python2.3/distutils/command/install_scripts.pyo
+#usr/lib/python2.3/distutils/command/register.py
+#usr/lib/python2.3/distutils/command/register.pyc
+#usr/lib/python2.3/distutils/command/register.pyo
+#usr/lib/python2.3/distutils/command/sdist.py
+#usr/lib/python2.3/distutils/command/sdist.pyc
+#usr/lib/python2.3/distutils/command/sdist.pyo
+#usr/lib/python2.3/distutils/command/wininst.exe
+#usr/lib/python2.3/distutils/core.py
+#usr/lib/python2.3/distutils/core.pyc
+#usr/lib/python2.3/distutils/core.pyo
+#usr/lib/python2.3/distutils/cygwinccompiler.py
+#usr/lib/python2.3/distutils/cygwinccompiler.pyc
+#usr/lib/python2.3/distutils/cygwinccompiler.pyo
+#usr/lib/python2.3/distutils/debug.py
+#usr/lib/python2.3/distutils/debug.pyc
+#usr/lib/python2.3/distutils/debug.pyo
+#usr/lib/python2.3/distutils/dep_util.py
+#usr/lib/python2.3/distutils/dep_util.pyc
+#usr/lib/python2.3/distutils/dep_util.pyo
+#usr/lib/python2.3/distutils/dir_util.py
+#usr/lib/python2.3/distutils/dir_util.pyc
+#usr/lib/python2.3/distutils/dir_util.pyo
+#usr/lib/python2.3/distutils/dist.py
+#usr/lib/python2.3/distutils/dist.pyc
+#usr/lib/python2.3/distutils/dist.pyo
+#usr/lib/python2.3/distutils/emxccompiler.py
+#usr/lib/python2.3/distutils/emxccompiler.pyc
+#usr/lib/python2.3/distutils/emxccompiler.pyo
+#usr/lib/python2.3/distutils/errors.py
+#usr/lib/python2.3/distutils/errors.pyc
+#usr/lib/python2.3/distutils/errors.pyo
+#usr/lib/python2.3/distutils/extension.py
+#usr/lib/python2.3/distutils/extension.pyc
+#usr/lib/python2.3/distutils/extension.pyo
+#usr/lib/python2.3/distutils/fancy_getopt.py
+#usr/lib/python2.3/distutils/fancy_getopt.pyc
+#usr/lib/python2.3/distutils/fancy_getopt.pyo
+#usr/lib/python2.3/distutils/file_util.py
+#usr/lib/python2.3/distutils/file_util.pyc
+#usr/lib/python2.3/distutils/file_util.pyo
+#usr/lib/python2.3/distutils/filelist.py
+#usr/lib/python2.3/distutils/filelist.pyc
+#usr/lib/python2.3/distutils/filelist.pyo
+#usr/lib/python2.3/distutils/log.py
+#usr/lib/python2.3/distutils/log.pyc
+#usr/lib/python2.3/distutils/log.pyo
+#usr/lib/python2.3/distutils/msvccompiler.py
+#usr/lib/python2.3/distutils/msvccompiler.pyc
+#usr/lib/python2.3/distutils/msvccompiler.pyo
+#usr/lib/python2.3/distutils/mwerkscompiler.py
+#usr/lib/python2.3/distutils/mwerkscompiler.pyc
+#usr/lib/python2.3/distutils/mwerkscompiler.pyo
+#usr/lib/python2.3/distutils/spawn.py
+#usr/lib/python2.3/distutils/spawn.pyc
+#usr/lib/python2.3/distutils/spawn.pyo
+#usr/lib/python2.3/distutils/sysconfig.py
+#usr/lib/python2.3/distutils/sysconfig.pyc
+#usr/lib/python2.3/distutils/sysconfig.pyo
+#usr/lib/python2.3/distutils/text_file.py
+#usr/lib/python2.3/distutils/text_file.pyc
+#usr/lib/python2.3/distutils/text_file.pyo
+#usr/lib/python2.3/distutils/unixccompiler.py
+#usr/lib/python2.3/distutils/unixccompiler.pyc
+#usr/lib/python2.3/distutils/unixccompiler.pyo
+#usr/lib/python2.3/distutils/util.py
+#usr/lib/python2.3/distutils/util.pyc
+#usr/lib/python2.3/distutils/util.pyo
+#usr/lib/python2.3/distutils/version.py
+#usr/lib/python2.3/distutils/version.pyc
+#usr/lib/python2.3/distutils/version.pyo
+#usr/lib/python2.3/doctest.py
+usr/lib/python2.3/doctest.pyc
+#usr/lib/python2.3/doctest.pyo
+#usr/lib/python2.3/dumbdbm.py
+usr/lib/python2.3/dumbdbm.pyc
+#usr/lib/python2.3/dumbdbm.pyo
+#usr/lib/python2.3/dummy_thread.py
+usr/lib/python2.3/dummy_thread.pyc
+#usr/lib/python2.3/dummy_thread.pyo
+#usr/lib/python2.3/dummy_threading.py
+usr/lib/python2.3/dummy_threading.pyc
+#usr/lib/python2.3/dummy_threading.pyo
+#usr/lib/python2.3/email
+#usr/lib/python2.3/email/Charset.py
+usr/lib/python2.3/email/Charset.pyc
+#usr/lib/python2.3/email/Charset.pyo
+#usr/lib/python2.3/email/Encoders.py
+usr/lib/python2.3/email/Encoders.pyc
+#usr/lib/python2.3/email/Encoders.pyo
+#usr/lib/python2.3/email/Errors.py
+usr/lib/python2.3/email/Errors.pyc
+#usr/lib/python2.3/email/Errors.pyo
+#usr/lib/python2.3/email/Generator.py
+usr/lib/python2.3/email/Generator.pyc
+#usr/lib/python2.3/email/Generator.pyo
+#usr/lib/python2.3/email/Header.py
+usr/lib/python2.3/email/Header.pyc
+#usr/lib/python2.3/email/Header.pyo
+#usr/lib/python2.3/email/Iterators.py
+usr/lib/python2.3/email/Iterators.pyc
+#usr/lib/python2.3/email/Iterators.pyo
+#usr/lib/python2.3/email/MIMEAudio.py
+usr/lib/python2.3/email/MIMEAudio.pyc
+#usr/lib/python2.3/email/MIMEAudio.pyo
+#usr/lib/python2.3/email/MIMEBase.py
+usr/lib/python2.3/email/MIMEBase.pyc
+#usr/lib/python2.3/email/MIMEBase.pyo
+#usr/lib/python2.3/email/MIMEImage.py
+usr/lib/python2.3/email/MIMEImage.pyc
+#usr/lib/python2.3/email/MIMEImage.pyo
+#usr/lib/python2.3/email/MIMEMessage.py
+usr/lib/python2.3/email/MIMEMessage.pyc
+#usr/lib/python2.3/email/MIMEMessage.pyo
+#usr/lib/python2.3/email/MIMEMultipart.py
+usr/lib/python2.3/email/MIMEMultipart.pyc
+#usr/lib/python2.3/email/MIMEMultipart.pyo
+#usr/lib/python2.3/email/MIMENonMultipart.py
+usr/lib/python2.3/email/MIMENonMultipart.pyc
+#usr/lib/python2.3/email/MIMENonMultipart.pyo
+#usr/lib/python2.3/email/MIMEText.py
+usr/lib/python2.3/email/MIMEText.pyc
+#usr/lib/python2.3/email/MIMEText.pyo
+#usr/lib/python2.3/email/Message.py
+usr/lib/python2.3/email/Message.pyc
+#usr/lib/python2.3/email/Message.pyo
+#usr/lib/python2.3/email/Parser.py
+usr/lib/python2.3/email/Parser.pyc
+#usr/lib/python2.3/email/Parser.pyo
+#usr/lib/python2.3/email/Utils.py
+usr/lib/python2.3/email/Utils.pyc
+#usr/lib/python2.3/email/Utils.pyo
+#usr/lib/python2.3/email/__init__.py
+usr/lib/python2.3/email/__init__.pyc
+#usr/lib/python2.3/email/__init__.pyo
+#usr/lib/python2.3/email/_compat21.py
+usr/lib/python2.3/email/_compat21.pyc
+#usr/lib/python2.3/email/_compat21.pyo
+#usr/lib/python2.3/email/_compat22.py
+usr/lib/python2.3/email/_compat22.pyc
+#usr/lib/python2.3/email/_compat22.pyo
+#usr/lib/python2.3/email/_parseaddr.py
+usr/lib/python2.3/email/_parseaddr.pyc
+#usr/lib/python2.3/email/_parseaddr.pyo
+#usr/lib/python2.3/email/base64MIME.py
+usr/lib/python2.3/email/base64MIME.pyc
+#usr/lib/python2.3/email/base64MIME.pyo
+#usr/lib/python2.3/email/quopriMIME.py
+usr/lib/python2.3/email/quopriMIME.pyc
+#usr/lib/python2.3/email/quopriMIME.pyo
+#usr/lib/python2.3/email/test
+#usr/lib/python2.3/email/test/__init__.py
+#usr/lib/python2.3/email/test/__init__.pyc
+#usr/lib/python2.3/email/test/__init__.pyo
+#usr/lib/python2.3/email/test/data
+#usr/lib/python2.3/email/test/data/PyBanner048.gif
+#usr/lib/python2.3/email/test/data/audiotest.au
+#usr/lib/python2.3/email/test/data/msg_01.txt
+#usr/lib/python2.3/email/test/data/msg_02.txt
+#usr/lib/python2.3/email/test/data/msg_03.txt
+#usr/lib/python2.3/email/test/data/msg_04.txt
+#usr/lib/python2.3/email/test/data/msg_05.txt
+#usr/lib/python2.3/email/test/data/msg_06.txt
+#usr/lib/python2.3/email/test/data/msg_07.txt
+#usr/lib/python2.3/email/test/data/msg_08.txt
+#usr/lib/python2.3/email/test/data/msg_09.txt
+#usr/lib/python2.3/email/test/data/msg_10.txt
+#usr/lib/python2.3/email/test/data/msg_11.txt
+#usr/lib/python2.3/email/test/data/msg_12.txt
+#usr/lib/python2.3/email/test/data/msg_13.txt
+#usr/lib/python2.3/email/test/data/msg_14.txt
+#usr/lib/python2.3/email/test/data/msg_15.txt
+#usr/lib/python2.3/email/test/data/msg_16.txt
+#usr/lib/python2.3/email/test/data/msg_17.txt
+#usr/lib/python2.3/email/test/data/msg_18.txt
+#usr/lib/python2.3/email/test/data/msg_19.txt
+#usr/lib/python2.3/email/test/data/msg_20.txt
+#usr/lib/python2.3/email/test/data/msg_21.txt
+#usr/lib/python2.3/email/test/data/msg_22.txt
+#usr/lib/python2.3/email/test/data/msg_23.txt
+#usr/lib/python2.3/email/test/data/msg_24.txt
+#usr/lib/python2.3/email/test/data/msg_25.txt
+#usr/lib/python2.3/email/test/data/msg_26.txt
+#usr/lib/python2.3/email/test/data/msg_27.txt
+#usr/lib/python2.3/email/test/data/msg_28.txt
+#usr/lib/python2.3/email/test/data/msg_29.txt
+#usr/lib/python2.3/email/test/data/msg_30.txt
+#usr/lib/python2.3/email/test/data/msg_31.txt
+#usr/lib/python2.3/email/test/data/msg_32.txt
+#usr/lib/python2.3/email/test/data/msg_33.txt
+#usr/lib/python2.3/email/test/data/msg_34.txt
+#usr/lib/python2.3/email/test/data/msg_35.txt
+#usr/lib/python2.3/email/test/test_email.py
+#usr/lib/python2.3/email/test/test_email.pyc
+#usr/lib/python2.3/email/test/test_email.pyo
+#usr/lib/python2.3/email/test/test_email_codecs.py
+#usr/lib/python2.3/email/test/test_email_codecs.pyc
+#usr/lib/python2.3/email/test/test_email_codecs.pyo
+#usr/lib/python2.3/email/test/test_email_torture.py
+#usr/lib/python2.3/email/test/test_email_torture.pyc
+#usr/lib/python2.3/email/test/test_email_torture.pyo
+#usr/lib/python2.3/encodings
+#usr/lib/python2.3/encodings/__init__.py
+usr/lib/python2.3/encodings/__init__.pyc
+#usr/lib/python2.3/encodings/__init__.pyo
+#usr/lib/python2.3/encodings/aliases.py
+usr/lib/python2.3/encodings/aliases.pyc
+#usr/lib/python2.3/encodings/aliases.pyo
+#usr/lib/python2.3/encodings/ascii.py
+usr/lib/python2.3/encodings/ascii.pyc
+#usr/lib/python2.3/encodings/ascii.pyo
+#usr/lib/python2.3/encodings/base64_codec.py
+usr/lib/python2.3/encodings/base64_codec.pyc
+#usr/lib/python2.3/encodings/base64_codec.pyo
+#usr/lib/python2.3/encodings/charmap.py
+usr/lib/python2.3/encodings/charmap.pyc
+#usr/lib/python2.3/encodings/charmap.pyo
+#usr/lib/python2.3/encodings/cp037.py
+#usr/lib/python2.3/encodings/cp037.pyc
+#usr/lib/python2.3/encodings/cp037.pyo
+#usr/lib/python2.3/encodings/cp1006.py
+#usr/lib/python2.3/encodings/cp1006.pyc
+#usr/lib/python2.3/encodings/cp1006.pyo
+#usr/lib/python2.3/encodings/cp1026.py
+#usr/lib/python2.3/encodings/cp1026.pyc
+#usr/lib/python2.3/encodings/cp1026.pyo
+#usr/lib/python2.3/encodings/cp1140.py
+#usr/lib/python2.3/encodings/cp1140.pyc
+#usr/lib/python2.3/encodings/cp1140.pyo
+#usr/lib/python2.3/encodings/cp1250.py
+#usr/lib/python2.3/encodings/cp1250.pyc
+#usr/lib/python2.3/encodings/cp1250.pyo
+#usr/lib/python2.3/encodings/cp1251.py
+#usr/lib/python2.3/encodings/cp1251.pyc
+#usr/lib/python2.3/encodings/cp1251.pyo
+#usr/lib/python2.3/encodings/cp1252.py
+#usr/lib/python2.3/encodings/cp1252.pyc
+#usr/lib/python2.3/encodings/cp1252.pyo
+#usr/lib/python2.3/encodings/cp1253.py
+#usr/lib/python2.3/encodings/cp1253.pyc
+#usr/lib/python2.3/encodings/cp1253.pyo
+#usr/lib/python2.3/encodings/cp1254.py
+#usr/lib/python2.3/encodings/cp1254.pyc
+#usr/lib/python2.3/encodings/cp1254.pyo
+#usr/lib/python2.3/encodings/cp1255.py
+#usr/lib/python2.3/encodings/cp1255.pyc
+#usr/lib/python2.3/encodings/cp1255.pyo
+#usr/lib/python2.3/encodings/cp1256.py
+#usr/lib/python2.3/encodings/cp1256.pyc
+#usr/lib/python2.3/encodings/cp1256.pyo
+#usr/lib/python2.3/encodings/cp1257.py
+#usr/lib/python2.3/encodings/cp1257.pyc
+#usr/lib/python2.3/encodings/cp1257.pyo
+#usr/lib/python2.3/encodings/cp1258.py
+#usr/lib/python2.3/encodings/cp1258.pyc
+#usr/lib/python2.3/encodings/cp1258.pyo
+#usr/lib/python2.3/encodings/cp424.py
+#usr/lib/python2.3/encodings/cp424.pyc
+#usr/lib/python2.3/encodings/cp424.pyo
+#usr/lib/python2.3/encodings/cp437.py
+#usr/lib/python2.3/encodings/cp437.pyc
+#usr/lib/python2.3/encodings/cp437.pyo
+#usr/lib/python2.3/encodings/cp500.py
+#usr/lib/python2.3/encodings/cp500.pyc
+#usr/lib/python2.3/encodings/cp500.pyo
+#usr/lib/python2.3/encodings/cp737.py
+#usr/lib/python2.3/encodings/cp737.pyc
+#usr/lib/python2.3/encodings/cp737.pyo
+#usr/lib/python2.3/encodings/cp775.py
+#usr/lib/python2.3/encodings/cp775.pyc
+#usr/lib/python2.3/encodings/cp775.pyo
+#usr/lib/python2.3/encodings/cp850.py
+#usr/lib/python2.3/encodings/cp850.pyc
+#usr/lib/python2.3/encodings/cp850.pyo
+#usr/lib/python2.3/encodings/cp852.py
+#usr/lib/python2.3/encodings/cp852.pyc
+#usr/lib/python2.3/encodings/cp852.pyo
+#usr/lib/python2.3/encodings/cp855.py
+#usr/lib/python2.3/encodings/cp855.pyc
+#usr/lib/python2.3/encodings/cp855.pyo
+#usr/lib/python2.3/encodings/cp856.py
+#usr/lib/python2.3/encodings/cp856.pyc
+#usr/lib/python2.3/encodings/cp856.pyo
+#usr/lib/python2.3/encodings/cp857.py
+#usr/lib/python2.3/encodings/cp857.pyc
+#usr/lib/python2.3/encodings/cp857.pyo
+#usr/lib/python2.3/encodings/cp860.py
+#usr/lib/python2.3/encodings/cp860.pyc
+#usr/lib/python2.3/encodings/cp860.pyo
+#usr/lib/python2.3/encodings/cp861.py
+#usr/lib/python2.3/encodings/cp861.pyc
+#usr/lib/python2.3/encodings/cp861.pyo
+#usr/lib/python2.3/encodings/cp862.py
+#usr/lib/python2.3/encodings/cp862.pyc
+#usr/lib/python2.3/encodings/cp862.pyo
+#usr/lib/python2.3/encodings/cp863.py
+#usr/lib/python2.3/encodings/cp863.pyc
+#usr/lib/python2.3/encodings/cp863.pyo
+#usr/lib/python2.3/encodings/cp864.py
+#usr/lib/python2.3/encodings/cp864.pyc
+#usr/lib/python2.3/encodings/cp864.pyo
+#usr/lib/python2.3/encodings/cp865.py
+#usr/lib/python2.3/encodings/cp865.pyc
+#usr/lib/python2.3/encodings/cp865.pyo
+#usr/lib/python2.3/encodings/cp866.py
+#usr/lib/python2.3/encodings/cp866.pyc
+#usr/lib/python2.3/encodings/cp866.pyo
+#usr/lib/python2.3/encodings/cp869.py
+#usr/lib/python2.3/encodings/cp869.pyc
+#usr/lib/python2.3/encodings/cp869.pyo
+#usr/lib/python2.3/encodings/cp874.py
+#usr/lib/python2.3/encodings/cp874.pyc
+#usr/lib/python2.3/encodings/cp874.pyo
+#usr/lib/python2.3/encodings/cp875.py
+#usr/lib/python2.3/encodings/cp875.pyc
+#usr/lib/python2.3/encodings/cp875.pyo
+#usr/lib/python2.3/encodings/hex_codec.py
+usr/lib/python2.3/encodings/hex_codec.pyc
+#usr/lib/python2.3/encodings/hex_codec.pyo
+#usr/lib/python2.3/encodings/idna.py
+#usr/lib/python2.3/encodings/idna.pyc
+#usr/lib/python2.3/encodings/idna.pyo
+#usr/lib/python2.3/encodings/iso8859_1.py
+usr/lib/python2.3/encodings/iso8859_1.pyc
+#usr/lib/python2.3/encodings/iso8859_1.pyo
+#usr/lib/python2.3/encodings/iso8859_10.py
+usr/lib/python2.3/encodings/iso8859_10.pyc
+#usr/lib/python2.3/encodings/iso8859_10.pyo
+#usr/lib/python2.3/encodings/iso8859_13.py
+usr/lib/python2.3/encodings/iso8859_13.pyc
+#usr/lib/python2.3/encodings/iso8859_13.pyo
+#usr/lib/python2.3/encodings/iso8859_14.py
+usr/lib/python2.3/encodings/iso8859_14.pyc
+#usr/lib/python2.3/encodings/iso8859_14.pyo
+#usr/lib/python2.3/encodings/iso8859_15.py
+usr/lib/python2.3/encodings/iso8859_15.pyc
+#usr/lib/python2.3/encodings/iso8859_15.pyo
+#usr/lib/python2.3/encodings/iso8859_2.py
+usr/lib/python2.3/encodings/iso8859_2.pyc
+#usr/lib/python2.3/encodings/iso8859_2.pyo
+#usr/lib/python2.3/encodings/iso8859_3.py
+usr/lib/python2.3/encodings/iso8859_3.pyc
+#usr/lib/python2.3/encodings/iso8859_3.pyo
+#usr/lib/python2.3/encodings/iso8859_4.py
+usr/lib/python2.3/encodings/iso8859_4.pyc
+#usr/lib/python2.3/encodings/iso8859_4.pyo
+#usr/lib/python2.3/encodings/iso8859_5.py
+usr/lib/python2.3/encodings/iso8859_5.pyc
+#usr/lib/python2.3/encodings/iso8859_5.pyo
+#usr/lib/python2.3/encodings/iso8859_6.py
+usr/lib/python2.3/encodings/iso8859_6.pyc
+#usr/lib/python2.3/encodings/iso8859_6.pyo
+#usr/lib/python2.3/encodings/iso8859_7.py
+usr/lib/python2.3/encodings/iso8859_7.pyc
+#usr/lib/python2.3/encodings/iso8859_7.pyo
+#usr/lib/python2.3/encodings/iso8859_8.py
+usr/lib/python2.3/encodings/iso8859_8.pyc
+#usr/lib/python2.3/encodings/iso8859_8.pyo
+#usr/lib/python2.3/encodings/iso8859_9.py
+usr/lib/python2.3/encodings/iso8859_9.pyc
+#usr/lib/python2.3/encodings/iso8859_9.pyo
+#usr/lib/python2.3/encodings/koi8_r.py
+usr/lib/python2.3/encodings/koi8_r.pyc
+#usr/lib/python2.3/encodings/koi8_r.pyo
+#usr/lib/python2.3/encodings/koi8_u.py
+usr/lib/python2.3/encodings/koi8_u.pyc
+#usr/lib/python2.3/encodings/koi8_u.pyo
+#usr/lib/python2.3/encodings/latin_1.py
+#usr/lib/python2.3/encodings/latin_1.pyc
+#usr/lib/python2.3/encodings/latin_1.pyo
+#usr/lib/python2.3/encodings/mac_cyrillic.py
+#usr/lib/python2.3/encodings/mac_cyrillic.pyc
+#usr/lib/python2.3/encodings/mac_cyrillic.pyo
+#usr/lib/python2.3/encodings/mac_greek.py
+#usr/lib/python2.3/encodings/mac_greek.pyc
+#usr/lib/python2.3/encodings/mac_greek.pyo
+#usr/lib/python2.3/encodings/mac_iceland.py
+#usr/lib/python2.3/encodings/mac_iceland.pyc
+#usr/lib/python2.3/encodings/mac_iceland.pyo
+#usr/lib/python2.3/encodings/mac_latin2.py
+#usr/lib/python2.3/encodings/mac_latin2.pyc
+#usr/lib/python2.3/encodings/mac_latin2.pyo
+#usr/lib/python2.3/encodings/mac_roman.py
+#usr/lib/python2.3/encodings/mac_roman.pyc
+#usr/lib/python2.3/encodings/mac_roman.pyo
+#usr/lib/python2.3/encodings/mac_turkish.py
+#usr/lib/python2.3/encodings/mac_turkish.pyc
+#usr/lib/python2.3/encodings/mac_turkish.pyo
+#usr/lib/python2.3/encodings/mbcs.py
+#usr/lib/python2.3/encodings/mbcs.pyc
+#usr/lib/python2.3/encodings/mbcs.pyo
+#usr/lib/python2.3/encodings/palmos.py
+#usr/lib/python2.3/encodings/palmos.pyc
+#usr/lib/python2.3/encodings/palmos.pyo
+#usr/lib/python2.3/encodings/punycode.py
+#usr/lib/python2.3/encodings/punycode.pyc
+#usr/lib/python2.3/encodings/punycode.pyo
+#usr/lib/python2.3/encodings/quopri_codec.py
+#usr/lib/python2.3/encodings/quopri_codec.pyc
+#usr/lib/python2.3/encodings/quopri_codec.pyo
+#usr/lib/python2.3/encodings/raw_unicode_escape.py
+usr/lib/python2.3/encodings/raw_unicode_escape.pyc
+#usr/lib/python2.3/encodings/raw_unicode_escape.pyo
+#usr/lib/python2.3/encodings/rot_13.py
+#usr/lib/python2.3/encodings/rot_13.pyc
+#usr/lib/python2.3/encodings/rot_13.pyo
+#usr/lib/python2.3/encodings/string_escape.py
+usr/lib/python2.3/encodings/string_escape.pyc
+#usr/lib/python2.3/encodings/string_escape.pyo
+#usr/lib/python2.3/encodings/undefined.py
+usr/lib/python2.3/encodings/undefined.pyc
+#usr/lib/python2.3/encodings/undefined.pyo
+#usr/lib/python2.3/encodings/unicode_escape.py
+usr/lib/python2.3/encodings/unicode_escape.pyc
+#usr/lib/python2.3/encodings/unicode_escape.pyo
+#usr/lib/python2.3/encodings/unicode_internal.py
+usr/lib/python2.3/encodings/unicode_internal.pyc
+#usr/lib/python2.3/encodings/unicode_internal.pyo
+#usr/lib/python2.3/encodings/utf_16.py
+usr/lib/python2.3/encodings/utf_16.pyc
+#usr/lib/python2.3/encodings/utf_16.pyo
+#usr/lib/python2.3/encodings/utf_16_be.py
+usr/lib/python2.3/encodings/utf_16_be.pyc
+#usr/lib/python2.3/encodings/utf_16_be.pyo
+#usr/lib/python2.3/encodings/utf_16_le.py
+usr/lib/python2.3/encodings/utf_16_le.pyc
+#usr/lib/python2.3/encodings/utf_16_le.pyo
+#usr/lib/python2.3/encodings/utf_7.py
+usr/lib/python2.3/encodings/utf_7.pyc
+#usr/lib/python2.3/encodings/utf_7.pyo
+#usr/lib/python2.3/encodings/utf_8.py
+usr/lib/python2.3/encodings/utf_8.pyc
+#usr/lib/python2.3/encodings/utf_8.pyo
+#usr/lib/python2.3/encodings/uu_codec.py
+usr/lib/python2.3/encodings/uu_codec.pyc
+#usr/lib/python2.3/encodings/uu_codec.pyo
+#usr/lib/python2.3/encodings/zlib_codec.py
+usr/lib/python2.3/encodings/zlib_codec.pyc
+#usr/lib/python2.3/encodings/zlib_codec.pyo
+#usr/lib/python2.3/filecmp.py
+usr/lib/python2.3/filecmp.pyc
+#usr/lib/python2.3/filecmp.pyo
+#usr/lib/python2.3/fileinput.py
+usr/lib/python2.3/fileinput.pyc
+#usr/lib/python2.3/fileinput.pyo
+#usr/lib/python2.3/fnmatch.py
+usr/lib/python2.3/fnmatch.pyc
+#usr/lib/python2.3/fnmatch.pyo
+#usr/lib/python2.3/formatter.py
+usr/lib/python2.3/formatter.pyc
+#usr/lib/python2.3/formatter.pyo
+#usr/lib/python2.3/fpformat.py
+usr/lib/python2.3/fpformat.pyc
+#usr/lib/python2.3/fpformat.pyo
+#usr/lib/python2.3/ftplib.py
+#usr/lib/python2.3/ftplib.pyc
+#usr/lib/python2.3/ftplib.pyo
+#usr/lib/python2.3/getopt.py
+usr/lib/python2.3/getopt.pyc
+#usr/lib/python2.3/getopt.pyo
+#usr/lib/python2.3/getpass.py
+usr/lib/python2.3/getpass.pyc
+#usr/lib/python2.3/getpass.pyo
+#usr/lib/python2.3/gettext.py
+usr/lib/python2.3/gettext.pyc
+#usr/lib/python2.3/gettext.pyo
+#usr/lib/python2.3/glob.py
+usr/lib/python2.3/glob.pyc
+#usr/lib/python2.3/glob.pyo
+#usr/lib/python2.3/gopherlib.py
+#usr/lib/python2.3/gopherlib.pyc
+#usr/lib/python2.3/gopherlib.pyo
+#usr/lib/python2.3/gzip.py
+usr/lib/python2.3/gzip.pyc
+#usr/lib/python2.3/gzip.pyo
+#usr/lib/python2.3/heapq.py
+usr/lib/python2.3/heapq.pyc
+#usr/lib/python2.3/heapq.pyo
+#usr/lib/python2.3/hmac.py
+usr/lib/python2.3/hmac.pyc
+#usr/lib/python2.3/hmac.pyo
+#usr/lib/python2.3/hotshot
+#usr/lib/python2.3/hotshot/__init__.py
+#usr/lib/python2.3/hotshot/__init__.pyc
+#usr/lib/python2.3/hotshot/__init__.pyo
+#usr/lib/python2.3/hotshot/log.py
+#usr/lib/python2.3/hotshot/log.pyc
+#usr/lib/python2.3/hotshot/log.pyo
+#usr/lib/python2.3/hotshot/stats.py
+#usr/lib/python2.3/hotshot/stats.pyc
+#usr/lib/python2.3/hotshot/stats.pyo
+#usr/lib/python2.3/hotshot/stones.py
+#usr/lib/python2.3/hotshot/stones.pyc
+#usr/lib/python2.3/hotshot/stones.pyo
+#usr/lib/python2.3/htmlentitydefs.py
+#usr/lib/python2.3/htmlentitydefs.pyc
+#usr/lib/python2.3/htmlentitydefs.pyo
+#usr/lib/python2.3/htmllib.py
+#usr/lib/python2.3/htmllib.pyc
+#usr/lib/python2.3/htmllib.pyo
+#usr/lib/python2.3/httplib.py
+#usr/lib/python2.3/httplib.pyc
+#usr/lib/python2.3/httplib.pyo
+#usr/lib/python2.3/idlelib
+#usr/lib/python2.3/idlelib/AutoExpand.py
+#usr/lib/python2.3/idlelib/AutoExpand.pyc
+#usr/lib/python2.3/idlelib/AutoExpand.pyo
+#usr/lib/python2.3/idlelib/Bindings.py
+#usr/lib/python2.3/idlelib/Bindings.pyc
+#usr/lib/python2.3/idlelib/Bindings.pyo
+#usr/lib/python2.3/idlelib/CREDITS.txt
+#usr/lib/python2.3/idlelib/CallTipWindow.py
+#usr/lib/python2.3/idlelib/CallTipWindow.pyc
+#usr/lib/python2.3/idlelib/CallTipWindow.pyo
+#usr/lib/python2.3/idlelib/CallTips.py
+#usr/lib/python2.3/idlelib/CallTips.pyc
+#usr/lib/python2.3/idlelib/CallTips.pyo
+#usr/lib/python2.3/idlelib/ChangeLog
+#usr/lib/python2.3/idlelib/ClassBrowser.py
+#usr/lib/python2.3/idlelib/ClassBrowser.pyc
+#usr/lib/python2.3/idlelib/ClassBrowser.pyo
+#usr/lib/python2.3/idlelib/ColorDelegator.py
+#usr/lib/python2.3/idlelib/ColorDelegator.pyc
+#usr/lib/python2.3/idlelib/ColorDelegator.pyo
+#usr/lib/python2.3/idlelib/Debugger.py
+#usr/lib/python2.3/idlelib/Debugger.pyc
+#usr/lib/python2.3/idlelib/Debugger.pyo
+#usr/lib/python2.3/idlelib/Delegator.py
+#usr/lib/python2.3/idlelib/Delegator.pyc
+#usr/lib/python2.3/idlelib/Delegator.pyo
+#usr/lib/python2.3/idlelib/EditorWindow.py
+#usr/lib/python2.3/idlelib/EditorWindow.pyc
+#usr/lib/python2.3/idlelib/EditorWindow.pyo
+#usr/lib/python2.3/idlelib/FileList.py
+#usr/lib/python2.3/idlelib/FileList.pyc
+#usr/lib/python2.3/idlelib/FileList.pyo
+#usr/lib/python2.3/idlelib/FormatParagraph.py
+#usr/lib/python2.3/idlelib/FormatParagraph.pyc
+#usr/lib/python2.3/idlelib/FormatParagraph.pyo
+#usr/lib/python2.3/idlelib/GrepDialog.py
+#usr/lib/python2.3/idlelib/GrepDialog.pyc
+#usr/lib/python2.3/idlelib/GrepDialog.pyo
+#usr/lib/python2.3/idlelib/HISTORY.txt
+#usr/lib/python2.3/idlelib/IOBinding.py
+#usr/lib/python2.3/idlelib/IOBinding.pyc
+#usr/lib/python2.3/idlelib/IOBinding.pyo
+#usr/lib/python2.3/idlelib/Icons
+#usr/lib/python2.3/idlelib/Icons/folder.gif
+#usr/lib/python2.3/idlelib/Icons/idle.icns
+#usr/lib/python2.3/idlelib/Icons/minusnode.gif
+#usr/lib/python2.3/idlelib/Icons/openfolder.gif
+#usr/lib/python2.3/idlelib/Icons/plusnode.gif
+#usr/lib/python2.3/idlelib/Icons/python.gif
+#usr/lib/python2.3/idlelib/Icons/tk.gif
+#usr/lib/python2.3/idlelib/IdleHistory.py
+#usr/lib/python2.3/idlelib/IdleHistory.pyc
+#usr/lib/python2.3/idlelib/IdleHistory.pyo
+#usr/lib/python2.3/idlelib/MultiStatusBar.py
+#usr/lib/python2.3/idlelib/MultiStatusBar.pyc
+#usr/lib/python2.3/idlelib/MultiStatusBar.pyo
+#usr/lib/python2.3/idlelib/NEWS.txt
+#usr/lib/python2.3/idlelib/ObjectBrowser.py
+#usr/lib/python2.3/idlelib/ObjectBrowser.pyc
+#usr/lib/python2.3/idlelib/ObjectBrowser.pyo
+#usr/lib/python2.3/idlelib/OutputWindow.py
+#usr/lib/python2.3/idlelib/OutputWindow.pyc
+#usr/lib/python2.3/idlelib/OutputWindow.pyo
+#usr/lib/python2.3/idlelib/ParenMatch.py
+#usr/lib/python2.3/idlelib/ParenMatch.pyc
+#usr/lib/python2.3/idlelib/ParenMatch.pyo
+#usr/lib/python2.3/idlelib/PathBrowser.py
+#usr/lib/python2.3/idlelib/PathBrowser.pyc
+#usr/lib/python2.3/idlelib/PathBrowser.pyo
+#usr/lib/python2.3/idlelib/Percolator.py
+#usr/lib/python2.3/idlelib/Percolator.pyc
+#usr/lib/python2.3/idlelib/Percolator.pyo
+#usr/lib/python2.3/idlelib/PyParse.py
+#usr/lib/python2.3/idlelib/PyParse.pyc
+#usr/lib/python2.3/idlelib/PyParse.pyo
+#usr/lib/python2.3/idlelib/PyShell.py
+#usr/lib/python2.3/idlelib/PyShell.pyc
+#usr/lib/python2.3/idlelib/PyShell.pyo
+#usr/lib/python2.3/idlelib/README.txt
+#usr/lib/python2.3/idlelib/RemoteDebugger.py
+#usr/lib/python2.3/idlelib/RemoteDebugger.pyc
+#usr/lib/python2.3/idlelib/RemoteDebugger.pyo
+#usr/lib/python2.3/idlelib/RemoteObjectBrowser.py
+#usr/lib/python2.3/idlelib/RemoteObjectBrowser.pyc
+#usr/lib/python2.3/idlelib/RemoteObjectBrowser.pyo
+#usr/lib/python2.3/idlelib/ReplaceDialog.py
+#usr/lib/python2.3/idlelib/ReplaceDialog.pyc
+#usr/lib/python2.3/idlelib/ReplaceDialog.pyo
+#usr/lib/python2.3/idlelib/ScriptBinding.py
+#usr/lib/python2.3/idlelib/ScriptBinding.pyc
+#usr/lib/python2.3/idlelib/ScriptBinding.pyo
+#usr/lib/python2.3/idlelib/ScrolledList.py
+#usr/lib/python2.3/idlelib/ScrolledList.pyc
+#usr/lib/python2.3/idlelib/ScrolledList.pyo
+#usr/lib/python2.3/idlelib/SearchDialog.py
+#usr/lib/python2.3/idlelib/SearchDialog.pyc
+#usr/lib/python2.3/idlelib/SearchDialog.pyo
+#usr/lib/python2.3/idlelib/SearchDialogBase.py
+#usr/lib/python2.3/idlelib/SearchDialogBase.pyc
+#usr/lib/python2.3/idlelib/SearchDialogBase.pyo
+#usr/lib/python2.3/idlelib/SearchEngine.py
+#usr/lib/python2.3/idlelib/SearchEngine.pyc
+#usr/lib/python2.3/idlelib/SearchEngine.pyo
+#usr/lib/python2.3/idlelib/StackViewer.py
+#usr/lib/python2.3/idlelib/StackViewer.pyc
+#usr/lib/python2.3/idlelib/StackViewer.pyo
+#usr/lib/python2.3/idlelib/TODO.txt
+#usr/lib/python2.3/idlelib/ToolTip.py
+#usr/lib/python2.3/idlelib/ToolTip.pyc
+#usr/lib/python2.3/idlelib/ToolTip.pyo
+#usr/lib/python2.3/idlelib/TreeWidget.py
+#usr/lib/python2.3/idlelib/TreeWidget.pyc
+#usr/lib/python2.3/idlelib/TreeWidget.pyo
+#usr/lib/python2.3/idlelib/UndoDelegator.py
+#usr/lib/python2.3/idlelib/UndoDelegator.pyc
+#usr/lib/python2.3/idlelib/UndoDelegator.pyo
+#usr/lib/python2.3/idlelib/WidgetRedirector.py
+#usr/lib/python2.3/idlelib/WidgetRedirector.pyc
+#usr/lib/python2.3/idlelib/WidgetRedirector.pyo
+#usr/lib/python2.3/idlelib/WindowList.py
+#usr/lib/python2.3/idlelib/WindowList.pyc
+#usr/lib/python2.3/idlelib/WindowList.pyo
+#usr/lib/python2.3/idlelib/ZoomHeight.py
+#usr/lib/python2.3/idlelib/ZoomHeight.pyc
+#usr/lib/python2.3/idlelib/ZoomHeight.pyo
+#usr/lib/python2.3/idlelib/__init__.py
+#usr/lib/python2.3/idlelib/__init__.pyc
+#usr/lib/python2.3/idlelib/__init__.pyo
+#usr/lib/python2.3/idlelib/aboutDialog.py
+#usr/lib/python2.3/idlelib/aboutDialog.pyc
+#usr/lib/python2.3/idlelib/aboutDialog.pyo
+#usr/lib/python2.3/idlelib/buildapp.py
+#usr/lib/python2.3/idlelib/buildapp.pyc
+#usr/lib/python2.3/idlelib/buildapp.pyo
+#usr/lib/python2.3/idlelib/config-extensions.def
+#usr/lib/python2.3/idlelib/config-highlight.def
+#usr/lib/python2.3/idlelib/config-keys.def
+#usr/lib/python2.3/idlelib/config-main.def
+#usr/lib/python2.3/idlelib/configDialog.py
+#usr/lib/python2.3/idlelib/configDialog.pyc
+#usr/lib/python2.3/idlelib/configDialog.pyo
+#usr/lib/python2.3/idlelib/configHandler.py
+#usr/lib/python2.3/idlelib/configHandler.pyc
+#usr/lib/python2.3/idlelib/configHandler.pyo
+#usr/lib/python2.3/idlelib/configHelpSourceEdit.py
+#usr/lib/python2.3/idlelib/configHelpSourceEdit.pyc
+#usr/lib/python2.3/idlelib/configHelpSourceEdit.pyo
+#usr/lib/python2.3/idlelib/configSectionNameDialog.py
+#usr/lib/python2.3/idlelib/configSectionNameDialog.pyc
+#usr/lib/python2.3/idlelib/configSectionNameDialog.pyo
+#usr/lib/python2.3/idlelib/dynOptionMenuWidget.py
+#usr/lib/python2.3/idlelib/dynOptionMenuWidget.pyc
+#usr/lib/python2.3/idlelib/dynOptionMenuWidget.pyo
+#usr/lib/python2.3/idlelib/extend.txt
+#usr/lib/python2.3/idlelib/help.txt
+#usr/lib/python2.3/idlelib/idle
+#usr/lib/python2.3/idlelib/idle.bat
+#usr/lib/python2.3/idlelib/idle.py
+#usr/lib/python2.3/idlelib/idle.pyc
+#usr/lib/python2.3/idlelib/idle.pyo
+#usr/lib/python2.3/idlelib/idle.pyw
+#usr/lib/python2.3/idlelib/idlever.py
+#usr/lib/python2.3/idlelib/idlever.pyc
+#usr/lib/python2.3/idlelib/idlever.pyo
+#usr/lib/python2.3/idlelib/keybindingDialog.py
+#usr/lib/python2.3/idlelib/keybindingDialog.pyc
+#usr/lib/python2.3/idlelib/keybindingDialog.pyo
+#usr/lib/python2.3/idlelib/rpc.py
+#usr/lib/python2.3/idlelib/rpc.pyc
+#usr/lib/python2.3/idlelib/rpc.pyo
+#usr/lib/python2.3/idlelib/run.py
+#usr/lib/python2.3/idlelib/run.pyc
+#usr/lib/python2.3/idlelib/run.pyo
+#usr/lib/python2.3/idlelib/tabpage.py
+#usr/lib/python2.3/idlelib/tabpage.pyc
+#usr/lib/python2.3/idlelib/tabpage.pyo
+#usr/lib/python2.3/idlelib/testcode.py
+#usr/lib/python2.3/idlelib/testcode.pyc
+#usr/lib/python2.3/idlelib/testcode.pyo
+#usr/lib/python2.3/idlelib/textView.py
+#usr/lib/python2.3/idlelib/textView.pyc
+#usr/lib/python2.3/idlelib/textView.pyo
+#usr/lib/python2.3/ihooks.py
+usr/lib/python2.3/ihooks.pyc
+#usr/lib/python2.3/ihooks.pyo
+#usr/lib/python2.3/imaplib.py
+#usr/lib/python2.3/imaplib.pyc
+#usr/lib/python2.3/imaplib.pyo
+#usr/lib/python2.3/imghdr.py
+usr/lib/python2.3/imghdr.pyc
+#usr/lib/python2.3/imghdr.pyo
+#usr/lib/python2.3/imputil.py
+usr/lib/python2.3/imputil.pyc
+#usr/lib/python2.3/imputil.pyo
+#usr/lib/python2.3/inspect.py
+usr/lib/python2.3/inspect.pyc
+#usr/lib/python2.3/inspect.pyo
+#usr/lib/python2.3/keyword.py
+usr/lib/python2.3/keyword.pyc
+#usr/lib/python2.3/keyword.pyo
+#usr/lib/python2.3/lib-dynload
+usr/lib/python2.3/lib-dynload/_csv.so
+usr/lib/python2.3/lib-dynload/_curses.so
+usr/lib/python2.3/lib-dynload/_curses_panel.so
+#usr/lib/python2.3/lib-dynload/_hotshot.so
+usr/lib/python2.3/lib-dynload/_locale.so
+usr/lib/python2.3/lib-dynload/_random.so
+usr/lib/python2.3/lib-dynload/_socket.so
+usr/lib/python2.3/lib-dynload/_ssl.so
+#usr/lib/python2.3/lib-dynload/_testcapi.so
+usr/lib/python2.3/lib-dynload/_weakref.so
+usr/lib/python2.3/lib-dynload/array.so
+#usr/lib/python2.3/lib-dynload/audioop.so
+usr/lib/python2.3/lib-dynload/binascii.so
+usr/lib/python2.3/lib-dynload/bz2.so
+usr/lib/python2.3/lib-dynload/cPickle.so
+usr/lib/python2.3/lib-dynload/cStringIO.so
+usr/lib/python2.3/lib-dynload/cmath.so
+usr/lib/python2.3/lib-dynload/crypt.so
+usr/lib/python2.3/lib-dynload/datetime.so
+usr/lib/python2.3/lib-dynload/dl.so
+usr/lib/python2.3/lib-dynload/fcntl.so
+usr/lib/python2.3/lib-dynload/gdbm.so
+usr/lib/python2.3/lib-dynload/grp.so
+usr/lib/python2.3/lib-dynload/imageop.so
+usr/lib/python2.3/lib-dynload/itertools.so
+#usr/lib/python2.3/lib-dynload/linuxaudiodev.so
+usr/lib/python2.3/lib-dynload/math.so
+usr/lib/python2.3/lib-dynload/md5.so
+usr/lib/python2.3/lib-dynload/mmap.so
+usr/lib/python2.3/lib-dynload/mpz.so
+#usr/lib/python2.3/lib-dynload/nis.so
+usr/lib/python2.3/lib-dynload/operator.so
+#usr/lib/python2.3/lib-dynload/ossaudiodev.so
+usr/lib/python2.3/lib-dynload/parser.so
+usr/lib/python2.3/lib-dynload/pcre.so
+usr/lib/python2.3/lib-dynload/pwd.so
+usr/lib/python2.3/lib-dynload/pyexpat.so
+usr/lib/python2.3/lib-dynload/regex.so
+usr/lib/python2.3/lib-dynload/resource.so
+usr/lib/python2.3/lib-dynload/rgbimg.so
+usr/lib/python2.3/lib-dynload/rotor.so
+usr/lib/python2.3/lib-dynload/select.so
+usr/lib/python2.3/lib-dynload/sha.so
+usr/lib/python2.3/lib-dynload/strop.so
+usr/lib/python2.3/lib-dynload/struct.so
+usr/lib/python2.3/lib-dynload/syslog.so
+usr/lib/python2.3/lib-dynload/termios.so
+usr/lib/python2.3/lib-dynload/time.so
+usr/lib/python2.3/lib-dynload/timing.so
+usr/lib/python2.3/lib-dynload/unicodedata.so
+usr/lib/python2.3/lib-dynload/xreadlines.so
+usr/lib/python2.3/lib-dynload/zlib.so
+#usr/lib/python2.3/lib-old
+#usr/lib/python2.3/lib-old/Para.py
+#usr/lib/python2.3/lib-old/Para.pyc
+#usr/lib/python2.3/lib-old/Para.pyo
+#usr/lib/python2.3/lib-old/addpack.py
+#usr/lib/python2.3/lib-old/addpack.pyc
+#usr/lib/python2.3/lib-old/addpack.pyo
+#usr/lib/python2.3/lib-old/cmp.py
+#usr/lib/python2.3/lib-old/cmp.pyc
+#usr/lib/python2.3/lib-old/cmp.pyo
+#usr/lib/python2.3/lib-old/cmpcache.py
+#usr/lib/python2.3/lib-old/cmpcache.pyc
+#usr/lib/python2.3/lib-old/cmpcache.pyo
+#usr/lib/python2.3/lib-old/codehack.py
+#usr/lib/python2.3/lib-old/codehack.pyc
+#usr/lib/python2.3/lib-old/codehack.pyo
+#usr/lib/python2.3/lib-old/dircmp.py
+#usr/lib/python2.3/lib-old/dircmp.pyc
+#usr/lib/python2.3/lib-old/dircmp.pyo
+#usr/lib/python2.3/lib-old/dump.py
+#usr/lib/python2.3/lib-old/dump.pyc
+#usr/lib/python2.3/lib-old/dump.pyo
+#usr/lib/python2.3/lib-old/find.py
+#usr/lib/python2.3/lib-old/find.pyc
+#usr/lib/python2.3/lib-old/find.pyo
+#usr/lib/python2.3/lib-old/fmt.py
+#usr/lib/python2.3/lib-old/fmt.pyc
+#usr/lib/python2.3/lib-old/fmt.pyo
+#usr/lib/python2.3/lib-old/grep.py
+#usr/lib/python2.3/lib-old/grep.pyc
+#usr/lib/python2.3/lib-old/grep.pyo
+#usr/lib/python2.3/lib-old/lockfile.py
+#usr/lib/python2.3/lib-old/lockfile.pyc
+#usr/lib/python2.3/lib-old/lockfile.pyo
+#usr/lib/python2.3/lib-old/newdir.py
+#usr/lib/python2.3/lib-old/newdir.pyc
+#usr/lib/python2.3/lib-old/newdir.pyo
+#usr/lib/python2.3/lib-old/ni.py
+#usr/lib/python2.3/lib-old/ni.pyc
+#usr/lib/python2.3/lib-old/ni.pyo
+#usr/lib/python2.3/lib-old/packmail.py
+#usr/lib/python2.3/lib-old/packmail.pyc
+#usr/lib/python2.3/lib-old/packmail.pyo
+#usr/lib/python2.3/lib-old/poly.py
+#usr/lib/python2.3/lib-old/poly.pyc
+#usr/lib/python2.3/lib-old/poly.pyo
+#usr/lib/python2.3/lib-old/rand.py
+#usr/lib/python2.3/lib-old/rand.pyc
+#usr/lib/python2.3/lib-old/rand.pyo
+#usr/lib/python2.3/lib-old/tb.py
+#usr/lib/python2.3/lib-old/tb.pyc
+#usr/lib/python2.3/lib-old/tb.pyo
+#usr/lib/python2.3/lib-old/util.py
+#usr/lib/python2.3/lib-old/util.pyc
+#usr/lib/python2.3/lib-old/util.pyo
+#usr/lib/python2.3/lib-old/whatsound.py
+#usr/lib/python2.3/lib-old/whatsound.pyc
+#usr/lib/python2.3/lib-old/whatsound.pyo
+#usr/lib/python2.3/lib-old/zmod.py
+#usr/lib/python2.3/lib-old/zmod.pyc
+#usr/lib/python2.3/lib-old/zmod.pyo
+#usr/lib/python2.3/lib-tk
+#usr/lib/python2.3/lib-tk/Canvas.py
+#usr/lib/python2.3/lib-tk/Canvas.pyc
+#usr/lib/python2.3/lib-tk/Canvas.pyo
+#usr/lib/python2.3/lib-tk/Dialog.py
+#usr/lib/python2.3/lib-tk/Dialog.pyc
+#usr/lib/python2.3/lib-tk/Dialog.pyo
+#usr/lib/python2.3/lib-tk/FileDialog.py
+#usr/lib/python2.3/lib-tk/FileDialog.pyc
+#usr/lib/python2.3/lib-tk/FileDialog.pyo
+#usr/lib/python2.3/lib-tk/FixTk.py
+#usr/lib/python2.3/lib-tk/FixTk.pyc
+#usr/lib/python2.3/lib-tk/FixTk.pyo
+#usr/lib/python2.3/lib-tk/ScrolledText.py
+#usr/lib/python2.3/lib-tk/ScrolledText.pyc
+#usr/lib/python2.3/lib-tk/ScrolledText.pyo
+#usr/lib/python2.3/lib-tk/SimpleDialog.py
+#usr/lib/python2.3/lib-tk/SimpleDialog.pyc
+#usr/lib/python2.3/lib-tk/SimpleDialog.pyo
+#usr/lib/python2.3/lib-tk/Tix.py
+#usr/lib/python2.3/lib-tk/Tix.pyc
+#usr/lib/python2.3/lib-tk/Tix.pyo
+#usr/lib/python2.3/lib-tk/Tkconstants.py
+#usr/lib/python2.3/lib-tk/Tkconstants.pyc
+#usr/lib/python2.3/lib-tk/Tkconstants.pyo
+#usr/lib/python2.3/lib-tk/Tkdnd.py
+#usr/lib/python2.3/lib-tk/Tkdnd.pyc
+#usr/lib/python2.3/lib-tk/Tkdnd.pyo
+#usr/lib/python2.3/lib-tk/Tkinter.py
+#usr/lib/python2.3/lib-tk/Tkinter.pyc
+#usr/lib/python2.3/lib-tk/Tkinter.pyo
+#usr/lib/python2.3/lib-tk/tkColorChooser.py
+#usr/lib/python2.3/lib-tk/tkColorChooser.pyc
+#usr/lib/python2.3/lib-tk/tkColorChooser.pyo
+#usr/lib/python2.3/lib-tk/tkCommonDialog.py
+#usr/lib/python2.3/lib-tk/tkCommonDialog.pyc
+#usr/lib/python2.3/lib-tk/tkCommonDialog.pyo
+#usr/lib/python2.3/lib-tk/tkFileDialog.py
+#usr/lib/python2.3/lib-tk/tkFileDialog.pyc
+#usr/lib/python2.3/lib-tk/tkFileDialog.pyo
+#usr/lib/python2.3/lib-tk/tkFont.py
+#usr/lib/python2.3/lib-tk/tkFont.pyc
+#usr/lib/python2.3/lib-tk/tkFont.pyo
+#usr/lib/python2.3/lib-tk/tkMessageBox.py
+#usr/lib/python2.3/lib-tk/tkMessageBox.pyc
+#usr/lib/python2.3/lib-tk/tkMessageBox.pyo
+#usr/lib/python2.3/lib-tk/tkSimpleDialog.py
+#usr/lib/python2.3/lib-tk/tkSimpleDialog.pyc
+#usr/lib/python2.3/lib-tk/tkSimpleDialog.pyo
+#usr/lib/python2.3/lib-tk/turtle.py
+#usr/lib/python2.3/lib-tk/turtle.pyc
+#usr/lib/python2.3/lib-tk/turtle.pyo
+#usr/lib/python2.3/linecache.py
+usr/lib/python2.3/linecache.pyc
+#usr/lib/python2.3/linecache.pyo
+#usr/lib/python2.3/locale.py
+usr/lib/python2.3/locale.pyc
+#usr/lib/python2.3/locale.pyo
+#usr/lib/python2.3/logging
+#usr/lib/python2.3/logging/__init__.py
+usr/lib/python2.3/logging/__init__.pyc
+#usr/lib/python2.3/logging/__init__.pyo
+#usr/lib/python2.3/logging/config.py
+usr/lib/python2.3/logging/config.pyc
+#usr/lib/python2.3/logging/config.pyo
+#usr/lib/python2.3/logging/handlers.py
+usr/lib/python2.3/logging/handlers.pyc
+#usr/lib/python2.3/logging/handlers.pyo
+#usr/lib/python2.3/macpath.py
+#usr/lib/python2.3/macpath.pyc
+#usr/lib/python2.3/macpath.pyo
+#usr/lib/python2.3/macurl2path.py
+#usr/lib/python2.3/macurl2path.pyc
+#usr/lib/python2.3/macurl2path.pyo
+#usr/lib/python2.3/mailbox.py
+#usr/lib/python2.3/mailbox.pyc
+#usr/lib/python2.3/mailbox.pyo
+#usr/lib/python2.3/mailcap.py
+#usr/lib/python2.3/mailcap.pyc
+#usr/lib/python2.3/mailcap.pyo
+#usr/lib/python2.3/markupbase.py
+#usr/lib/python2.3/markupbase.pyc
+#usr/lib/python2.3/markupbase.pyo
+#usr/lib/python2.3/mhlib.py
+#usr/lib/python2.3/mhlib.pyc
+#usr/lib/python2.3/mhlib.pyo
+#usr/lib/python2.3/mimetools.py
+usr/lib/python2.3/mimetools.pyc
+#usr/lib/python2.3/mimetools.pyo
+#usr/lib/python2.3/mimetypes.py
+usr/lib/python2.3/mimetypes.pyc
+#usr/lib/python2.3/mimetypes.pyo
+#usr/lib/python2.3/mimify.py
+usr/lib/python2.3/mimify.pyc
+#usr/lib/python2.3/mimify.pyo
+#usr/lib/python2.3/modulefinder.py
+usr/lib/python2.3/modulefinder.pyc
+#usr/lib/python2.3/modulefinder.pyo
+#usr/lib/python2.3/multifile.py
+usr/lib/python2.3/multifile.pyc
+#usr/lib/python2.3/multifile.pyo
+#usr/lib/python2.3/mutex.py
+usr/lib/python2.3/mutex.pyc
+#usr/lib/python2.3/mutex.pyo
+#usr/lib/python2.3/netrc.py
+usr/lib/python2.3/netrc.pyc
+#usr/lib/python2.3/netrc.pyo
+#usr/lib/python2.3/new.py
+usr/lib/python2.3/new.pyc
+#usr/lib/python2.3/new.pyo
+#usr/lib/python2.3/nntplib.py
+#usr/lib/python2.3/nntplib.pyc
+#usr/lib/python2.3/nntplib.pyo
+#usr/lib/python2.3/ntpath.py
+usr/lib/python2.3/ntpath.pyc
+#usr/lib/python2.3/ntpath.pyo
+#usr/lib/python2.3/nturl2path.py
+usr/lib/python2.3/nturl2path.pyc
+#usr/lib/python2.3/nturl2path.pyo
+#usr/lib/python2.3/opcode.py
+usr/lib/python2.3/opcode.pyc
+#usr/lib/python2.3/opcode.pyo
+#usr/lib/python2.3/optparse.py
+usr/lib/python2.3/optparse.pyc
+#usr/lib/python2.3/optparse.pyo
+#usr/lib/python2.3/os.py
+usr/lib/python2.3/os.pyc
+#usr/lib/python2.3/os.pyo
+#usr/lib/python2.3/os2emxpath.py
+usr/lib/python2.3/os2emxpath.pyc
+#usr/lib/python2.3/os2emxpath.pyo
+#usr/lib/python2.3/pdb.doc
+#usr/lib/python2.3/pdb.py
+usr/lib/python2.3/pdb.pyc
+#usr/lib/python2.3/pdb.pyo
+#usr/lib/python2.3/pickle.py
+usr/lib/python2.3/pickle.pyc
+#usr/lib/python2.3/pickle.pyo
+#usr/lib/python2.3/pickletools.py
+usr/lib/python2.3/pickletools.pyc
+#usr/lib/python2.3/pickletools.pyo
+#usr/lib/python2.3/pipes.py
+usr/lib/python2.3/pipes.pyc
+#usr/lib/python2.3/pipes.pyo
+#usr/lib/python2.3/pkgutil.py
+usr/lib/python2.3/pkgutil.pyc
+#usr/lib/python2.3/pkgutil.pyo
+#usr/lib/python2.3/plat-linux2
+#usr/lib/python2.3/plat-linux2/CDROM.py
+usr/lib/python2.3/plat-linux2/CDROM.pyc
+#usr/lib/python2.3/plat-linux2/CDROM.pyo
+#usr/lib/python2.3/plat-linux2/DLFCN.py
+usr/lib/python2.3/plat-linux2/DLFCN.pyc
+#usr/lib/python2.3/plat-linux2/DLFCN.pyo
+#usr/lib/python2.3/plat-linux2/IN.py
+usr/lib/python2.3/plat-linux2/IN.pyc
+#usr/lib/python2.3/plat-linux2/IN.pyo
+#usr/lib/python2.3/plat-linux2/TYPES.py
+usr/lib/python2.3/plat-linux2/TYPES.pyc
+#usr/lib/python2.3/plat-linux2/TYPES.pyo
+#usr/lib/python2.3/plat-linux2/regen
+#usr/lib/python2.3/platform.py
+usr/lib/python2.3/platform.pyc
+#usr/lib/python2.3/platform.pyo
+#usr/lib/python2.3/popen2.py
+usr/lib/python2.3/popen2.pyc
+#usr/lib/python2.3/popen2.pyo
+#usr/lib/python2.3/poplib.py
+#usr/lib/python2.3/poplib.pyc
+#usr/lib/python2.3/poplib.pyo
+#usr/lib/python2.3/posixfile.py
+usr/lib/python2.3/posixfile.pyc
+#usr/lib/python2.3/posixfile.pyo
+#usr/lib/python2.3/posixpath.py
+usr/lib/python2.3/posixpath.pyc
+#usr/lib/python2.3/posixpath.pyo
+#usr/lib/python2.3/pprint.py
+usr/lib/python2.3/pprint.pyc
+#usr/lib/python2.3/pprint.pyo
+#usr/lib/python2.3/pre.py
+usr/lib/python2.3/pre.pyc
+#usr/lib/python2.3/pre.pyo
+#usr/lib/python2.3/profile.doc
+#usr/lib/python2.3/profile.py
+#usr/lib/python2.3/profile.pyc
+#usr/lib/python2.3/profile.pyo
+#usr/lib/python2.3/pstats.py
+usr/lib/python2.3/pstats.pyc
+#usr/lib/python2.3/pstats.pyo
+#usr/lib/python2.3/pty.py
+usr/lib/python2.3/pty.pyc
+#usr/lib/python2.3/pty.pyo
+#usr/lib/python2.3/py_compile.py
+usr/lib/python2.3/py_compile.pyc
+#usr/lib/python2.3/py_compile.pyo
+#usr/lib/python2.3/pyclbr.py
+usr/lib/python2.3/pyclbr.pyc
+#usr/lib/python2.3/pyclbr.pyo
+#usr/lib/python2.3/pydoc.py
+usr/lib/python2.3/pydoc.pyc
+#usr/lib/python2.3/pydoc.pyo
+#usr/lib/python2.3/quopri.py
+#usr/lib/python2.3/quopri.pyc
+#usr/lib/python2.3/quopri.pyo
+#usr/lib/python2.3/random.py
+usr/lib/python2.3/random.pyc
+#usr/lib/python2.3/random.pyo
+#usr/lib/python2.3/re.py
+usr/lib/python2.3/re.pyc
+#usr/lib/python2.3/re.pyo
+#usr/lib/python2.3/reconvert.py
+usr/lib/python2.3/reconvert.pyc
+#usr/lib/python2.3/reconvert.pyo
+#usr/lib/python2.3/regex_syntax.py
+usr/lib/python2.3/regex_syntax.pyc
+#usr/lib/python2.3/regex_syntax.pyo
+#usr/lib/python2.3/regsub.py
+usr/lib/python2.3/regsub.pyc
+#usr/lib/python2.3/regsub.pyo
+#usr/lib/python2.3/repr.py
+usr/lib/python2.3/repr.pyc
+#usr/lib/python2.3/repr.pyo
+#usr/lib/python2.3/rexec.py
+usr/lib/python2.3/rexec.pyc
+#usr/lib/python2.3/rexec.pyo
+#usr/lib/python2.3/rfc822.py
+usr/lib/python2.3/rfc822.pyc
+#usr/lib/python2.3/rfc822.pyo
+#usr/lib/python2.3/rlcompleter.py
+usr/lib/python2.3/rlcompleter.pyc
+#usr/lib/python2.3/rlcompleter.pyo
+#usr/lib/python2.3/robotparser.py
+#usr/lib/python2.3/robotparser.pyc
+#usr/lib/python2.3/robotparser.pyo
+#usr/lib/python2.3/sched.py
+usr/lib/python2.3/sched.pyc
+#usr/lib/python2.3/sched.pyo
+#usr/lib/python2.3/sets.py
+usr/lib/python2.3/sets.pyc
+#usr/lib/python2.3/sets.pyo
+#usr/lib/python2.3/sgmllib.py
+usr/lib/python2.3/sgmllib.pyc
+#usr/lib/python2.3/sgmllib.pyo
+#usr/lib/python2.3/shelve.py
+usr/lib/python2.3/shelve.pyc
+#usr/lib/python2.3/shelve.pyo
+#usr/lib/python2.3/shlex.py
+usr/lib/python2.3/shlex.pyc
+#usr/lib/python2.3/shlex.pyo
+#usr/lib/python2.3/shutil.py
+usr/lib/python2.3/shutil.pyc
+#usr/lib/python2.3/shutil.pyo
+#usr/lib/python2.3/site-packages
+#usr/lib/python2.3/site-packages/README
+#usr/lib/python2.3/site.py
+usr/lib/python2.3/site.pyc
+#usr/lib/python2.3/site.pyo
+#usr/lib/python2.3/smtpd.py
+#usr/lib/python2.3/smtpd.pyc
+#usr/lib/python2.3/smtpd.pyo
+#usr/lib/python2.3/smtplib.py
+#usr/lib/python2.3/smtplib.pyc
+#usr/lib/python2.3/smtplib.pyo
+#usr/lib/python2.3/sndhdr.py
+#usr/lib/python2.3/sndhdr.pyc
+#usr/lib/python2.3/sndhdr.pyo
+#usr/lib/python2.3/socket.py
+usr/lib/python2.3/socket.pyc
+#usr/lib/python2.3/socket.pyo
+#usr/lib/python2.3/sre.py
+usr/lib/python2.3/sre.pyc
+#usr/lib/python2.3/sre.pyo
+#usr/lib/python2.3/sre_compile.py
+usr/lib/python2.3/sre_compile.pyc
+#usr/lib/python2.3/sre_compile.pyo
+#usr/lib/python2.3/sre_constants.py
+usr/lib/python2.3/sre_constants.pyc
+#usr/lib/python2.3/sre_constants.pyo
+#usr/lib/python2.3/sre_parse.py
+usr/lib/python2.3/sre_parse.pyc
+#usr/lib/python2.3/sre_parse.pyo
+#usr/lib/python2.3/stat.py
+usr/lib/python2.3/stat.pyc
+#usr/lib/python2.3/stat.pyo
+#usr/lib/python2.3/statcache.py
+usr/lib/python2.3/statcache.pyc
+#usr/lib/python2.3/statcache.pyo
+#usr/lib/python2.3/statvfs.py
+usr/lib/python2.3/statvfs.pyc
+#usr/lib/python2.3/statvfs.pyo
+#usr/lib/python2.3/string.py
+usr/lib/python2.3/string.pyc
+#usr/lib/python2.3/string.pyo
+#usr/lib/python2.3/stringold.py
+usr/lib/python2.3/stringold.pyc
+#usr/lib/python2.3/stringold.pyo
+#usr/lib/python2.3/stringprep.py
+usr/lib/python2.3/stringprep.pyc
+#usr/lib/python2.3/stringprep.pyo
+#usr/lib/python2.3/sunau.py
+#usr/lib/python2.3/sunau.pyc
+#usr/lib/python2.3/sunau.pyo
+#usr/lib/python2.3/sunaudio.py
+#usr/lib/python2.3/sunaudio.pyc
+#usr/lib/python2.3/sunaudio.pyo
+#usr/lib/python2.3/symbol.py
+usr/lib/python2.3/symbol.pyc
+#usr/lib/python2.3/symbol.pyo
+#usr/lib/python2.3/symtable.py
+usr/lib/python2.3/symtable.pyc
+#usr/lib/python2.3/symtable.pyo
+#usr/lib/python2.3/tabnanny.py
+usr/lib/python2.3/tabnanny.pyc
+#usr/lib/python2.3/tabnanny.pyo
+#usr/lib/python2.3/tarfile.py
+usr/lib/python2.3/tarfile.pyc
+#usr/lib/python2.3/tarfile.pyo
+#usr/lib/python2.3/telnetlib.py
+#usr/lib/python2.3/telnetlib.pyc
+#usr/lib/python2.3/telnetlib.pyo
+#usr/lib/python2.3/tempfile.py
+usr/lib/python2.3/tempfile.pyc
+#usr/lib/python2.3/tempfile.pyo
+#usr/lib/python2.3/test
+#usr/lib/python2.3/test/185test.db
+#usr/lib/python2.3/test/README
+#usr/lib/python2.3/test/__init__.py
+#usr/lib/python2.3/test/__init__.pyc
+#usr/lib/python2.3/test/__init__.pyo
+#usr/lib/python2.3/test/audiotest.au
+#usr/lib/python2.3/test/autotest.py
+#usr/lib/python2.3/test/autotest.pyc
+#usr/lib/python2.3/test/autotest.pyo
+#usr/lib/python2.3/test/badsyntax_future3.py
+#usr/lib/python2.3/test/badsyntax_future4.py
+#usr/lib/python2.3/test/badsyntax_future5.py
+#usr/lib/python2.3/test/badsyntax_future6.py
+#usr/lib/python2.3/test/badsyntax_future7.py
+#usr/lib/python2.3/test/badsyntax_nocaret.py
+#usr/lib/python2.3/test/double_const.py
+#usr/lib/python2.3/test/double_const.pyc
+#usr/lib/python2.3/test/double_const.pyo
+#usr/lib/python2.3/test/greyrgb.uue
+#usr/lib/python2.3/test/output
+#usr/lib/python2.3/test/output/test_MimeWriter
+#usr/lib/python2.3/test/output/test_asynchat
+#usr/lib/python2.3/test/output/test_augassign
+#usr/lib/python2.3/test/output/test_binascii
+#usr/lib/python2.3/test/output/test_cgi
+#usr/lib/python2.3/test/output/test_class
+#usr/lib/python2.3/test/output/test_coercion
+#usr/lib/python2.3/test/output/test_compare
+#usr/lib/python2.3/test/output/test_cookie
+#usr/lib/python2.3/test/output/test_exceptions
+#usr/lib/python2.3/test/output/test_extcall
+#usr/lib/python2.3/test/output/test_frozen
+#usr/lib/python2.3/test/output/test_future
+#usr/lib/python2.3/test/output/test_global
+#usr/lib/python2.3/test/output/test_grammar
+#usr/lib/python2.3/test/output/test_httplib
+#usr/lib/python2.3/test/output/test_linuxaudiodev
+#usr/lib/python2.3/test/output/test_logging
+#usr/lib/python2.3/test/output/test_longexp
+#usr/lib/python2.3/test/output/test_math
+#usr/lib/python2.3/test/output/test_md5
+#usr/lib/python2.3/test/output/test_mmap
+#usr/lib/python2.3/test/output/test_new
+#usr/lib/python2.3/test/output/test_nis
+#usr/lib/python2.3/test/output/test_opcodes
+#usr/lib/python2.3/test/output/test_openpty
+#usr/lib/python2.3/test/output/test_operations
+#usr/lib/python2.3/test/output/test_ossaudiodev
+#usr/lib/python2.3/test/output/test_pep277
+#usr/lib/python2.3/test/output/test_pkg
+#usr/lib/python2.3/test/output/test_poll
+#usr/lib/python2.3/test/output/test_popen
+#usr/lib/python2.3/test/output/test_popen2
+#usr/lib/python2.3/test/output/test_profile
+#usr/lib/python2.3/test/output/test_pty
+#usr/lib/python2.3/test/output/test_pyexpat
+#usr/lib/python2.3/test/output/test_regex
+#usr/lib/python2.3/test/output/test_resource
+#usr/lib/python2.3/test/output/test_rgbimg
+#usr/lib/python2.3/test/output/test_rotor
+#usr/lib/python2.3/test/output/test_scope
+#usr/lib/python2.3/test/output/test_signal
+#usr/lib/python2.3/test/output/test_thread
+#usr/lib/python2.3/test/output/test_threadedtempfile
+#usr/lib/python2.3/test/output/test_tokenize
+#usr/lib/python2.3/test/output/test_types
+#usr/lib/python2.3/test/output/test_unicode_file
+#usr/lib/python2.3/test/output/test_winreg
+#usr/lib/python2.3/test/output/test_xreadline
+#usr/lib/python2.3/test/output/xmltests
+#usr/lib/python2.3/test/pickletester.py
+#usr/lib/python2.3/test/pickletester.pyc
+#usr/lib/python2.3/test/pickletester.pyo
+#usr/lib/python2.3/test/pydocfodder.py
+#usr/lib/python2.3/test/pydocfodder.pyc
+#usr/lib/python2.3/test/pydocfodder.pyo
+#usr/lib/python2.3/test/pystone.py
+#usr/lib/python2.3/test/pystone.pyc
+#usr/lib/python2.3/test/pystone.pyo
+#usr/lib/python2.3/test/re_tests.py
+#usr/lib/python2.3/test/re_tests.pyc
+#usr/lib/python2.3/test/re_tests.pyo
+#usr/lib/python2.3/test/regex_tests.py
+#usr/lib/python2.3/test/regex_tests.pyc
+#usr/lib/python2.3/test/regex_tests.pyo
+#usr/lib/python2.3/test/regrtest.py
+#usr/lib/python2.3/test/regrtest.pyc
+#usr/lib/python2.3/test/regrtest.pyo
+#usr/lib/python2.3/test/reperf.py
+#usr/lib/python2.3/test/reperf.pyc
+#usr/lib/python2.3/test/reperf.pyo
+#usr/lib/python2.3/test/sortperf.py
+#usr/lib/python2.3/test/sortperf.pyc
+#usr/lib/python2.3/test/sortperf.pyo
+#usr/lib/python2.3/test/string_tests.py
+#usr/lib/python2.3/test/string_tests.pyc
+#usr/lib/python2.3/test/string_tests.pyo
+#usr/lib/python2.3/test/test.xml
+#usr/lib/python2.3/test/test.xml.out
+#usr/lib/python2.3/test/test_MimeWriter.py
+#usr/lib/python2.3/test/test_MimeWriter.pyc
+#usr/lib/python2.3/test/test_MimeWriter.pyo
+#usr/lib/python2.3/test/test_StringIO.py
+#usr/lib/python2.3/test/test_StringIO.pyc
+#usr/lib/python2.3/test/test_StringIO.pyo
+#usr/lib/python2.3/test/test___all__.py
+#usr/lib/python2.3/test/test___all__.pyc
+#usr/lib/python2.3/test/test___all__.pyo
+#usr/lib/python2.3/test/test___future__.py
+#usr/lib/python2.3/test/test___future__.pyc
+#usr/lib/python2.3/test/test___future__.pyo
+#usr/lib/python2.3/test/test_aepack.py
+#usr/lib/python2.3/test/test_aepack.pyc
+#usr/lib/python2.3/test/test_aepack.pyo
+#usr/lib/python2.3/test/test_al.py
+#usr/lib/python2.3/test/test_al.pyc
+#usr/lib/python2.3/test/test_al.pyo
+#usr/lib/python2.3/test/test_anydbm.py
+#usr/lib/python2.3/test/test_anydbm.pyc
+#usr/lib/python2.3/test/test_anydbm.pyo
+#usr/lib/python2.3/test/test_array.py
+#usr/lib/python2.3/test/test_array.pyc
+#usr/lib/python2.3/test/test_array.pyo
+#usr/lib/python2.3/test/test_asynchat.py
+#usr/lib/python2.3/test/test_asynchat.pyc
+#usr/lib/python2.3/test/test_asynchat.pyo
+#usr/lib/python2.3/test/test_atexit.py
+#usr/lib/python2.3/test/test_atexit.pyc
+#usr/lib/python2.3/test/test_atexit.pyo
+#usr/lib/python2.3/test/test_audioop.py
+#usr/lib/python2.3/test/test_audioop.pyc
+#usr/lib/python2.3/test/test_audioop.pyo
+#usr/lib/python2.3/test/test_augassign.py
+#usr/lib/python2.3/test/test_augassign.pyc
+#usr/lib/python2.3/test/test_augassign.pyo
+#usr/lib/python2.3/test/test_base64.py
+#usr/lib/python2.3/test/test_base64.pyc
+#usr/lib/python2.3/test/test_base64.pyo
+#usr/lib/python2.3/test/test_bastion.py
+#usr/lib/python2.3/test/test_bastion.pyc
+#usr/lib/python2.3/test/test_bastion.pyo
+#usr/lib/python2.3/test/test_binascii.py
+#usr/lib/python2.3/test/test_binascii.pyc
+#usr/lib/python2.3/test/test_binascii.pyo
+#usr/lib/python2.3/test/test_binhex.py
+#usr/lib/python2.3/test/test_binhex.pyc
+#usr/lib/python2.3/test/test_binhex.pyo
+#usr/lib/python2.3/test/test_binop.py
+#usr/lib/python2.3/test/test_binop.pyc
+#usr/lib/python2.3/test/test_binop.pyo
+#usr/lib/python2.3/test/test_bisect.py
+#usr/lib/python2.3/test/test_bisect.pyc
+#usr/lib/python2.3/test/test_bisect.pyo
+#usr/lib/python2.3/test/test_bool.py
+#usr/lib/python2.3/test/test_bool.pyc
+#usr/lib/python2.3/test/test_bool.pyo
+#usr/lib/python2.3/test/test_bsddb.py
+#usr/lib/python2.3/test/test_bsddb.pyc
+#usr/lib/python2.3/test/test_bsddb.pyo
+#usr/lib/python2.3/test/test_bsddb185.py
+#usr/lib/python2.3/test/test_bsddb185.pyc
+#usr/lib/python2.3/test/test_bsddb185.pyo
+#usr/lib/python2.3/test/test_bsddb3.py
+#usr/lib/python2.3/test/test_bsddb3.pyc
+#usr/lib/python2.3/test/test_bsddb3.pyo
+#usr/lib/python2.3/test/test_bufio.py
+#usr/lib/python2.3/test/test_bufio.pyc
+#usr/lib/python2.3/test/test_bufio.pyo
+#usr/lib/python2.3/test/test_builtin.py
+#usr/lib/python2.3/test/test_builtin.pyc
+#usr/lib/python2.3/test/test_builtin.pyo
+#usr/lib/python2.3/test/test_bz2.py
+#usr/lib/python2.3/test/test_bz2.pyc
+#usr/lib/python2.3/test/test_bz2.pyo
+#usr/lib/python2.3/test/test_calendar.py
+#usr/lib/python2.3/test/test_calendar.pyc
+#usr/lib/python2.3/test/test_calendar.pyo
+#usr/lib/python2.3/test/test_call.py
+#usr/lib/python2.3/test/test_call.pyc
+#usr/lib/python2.3/test/test_call.pyo
+#usr/lib/python2.3/test/test_capi.py
+#usr/lib/python2.3/test/test_capi.pyc
+#usr/lib/python2.3/test/test_capi.pyo
+#usr/lib/python2.3/test/test_cd.py
+#usr/lib/python2.3/test/test_cd.pyc
+#usr/lib/python2.3/test/test_cd.pyo
+#usr/lib/python2.3/test/test_cfgparser.py
+#usr/lib/python2.3/test/test_cfgparser.pyc
+#usr/lib/python2.3/test/test_cfgparser.pyo
+#usr/lib/python2.3/test/test_cgi.py
+#usr/lib/python2.3/test/test_cgi.pyc
+#usr/lib/python2.3/test/test_cgi.pyo
+#usr/lib/python2.3/test/test_charmapcodec.py
+#usr/lib/python2.3/test/test_charmapcodec.pyc
+#usr/lib/python2.3/test/test_charmapcodec.pyo
+#usr/lib/python2.3/test/test_cl.py
+#usr/lib/python2.3/test/test_cl.pyc
+#usr/lib/python2.3/test/test_cl.pyo
+#usr/lib/python2.3/test/test_class.py
+#usr/lib/python2.3/test/test_class.pyc
+#usr/lib/python2.3/test/test_class.pyo
+#usr/lib/python2.3/test/test_cmath.py
+#usr/lib/python2.3/test/test_cmath.pyc
+#usr/lib/python2.3/test/test_cmath.pyo
+#usr/lib/python2.3/test/test_codeccallbacks.py
+#usr/lib/python2.3/test/test_codeccallbacks.pyc
+#usr/lib/python2.3/test/test_codeccallbacks.pyo
+#usr/lib/python2.3/test/test_codecs.py
+#usr/lib/python2.3/test/test_codecs.pyc
+#usr/lib/python2.3/test/test_codecs.pyo
+#usr/lib/python2.3/test/test_codeop.py
+#usr/lib/python2.3/test/test_codeop.pyc
+#usr/lib/python2.3/test/test_codeop.pyo
+#usr/lib/python2.3/test/test_coercion.py
+#usr/lib/python2.3/test/test_coercion.pyc
+#usr/lib/python2.3/test/test_coercion.pyo
+#usr/lib/python2.3/test/test_commands.py
+#usr/lib/python2.3/test/test_commands.pyc
+#usr/lib/python2.3/test/test_commands.pyo
+#usr/lib/python2.3/test/test_compare.py
+#usr/lib/python2.3/test/test_compare.pyc
+#usr/lib/python2.3/test/test_compare.pyo
+#usr/lib/python2.3/test/test_compile.py
+#usr/lib/python2.3/test/test_compile.pyc
+#usr/lib/python2.3/test/test_compile.pyo
+#usr/lib/python2.3/test/test_complex.py
+#usr/lib/python2.3/test/test_complex.pyc
+#usr/lib/python2.3/test/test_complex.pyo
+#usr/lib/python2.3/test/test_contains.py
+#usr/lib/python2.3/test/test_contains.pyc
+#usr/lib/python2.3/test/test_contains.pyo
+#usr/lib/python2.3/test/test_cookie.py
+#usr/lib/python2.3/test/test_cookie.pyc
+#usr/lib/python2.3/test/test_cookie.pyo
+#usr/lib/python2.3/test/test_copy.py
+#usr/lib/python2.3/test/test_copy.pyc
+#usr/lib/python2.3/test/test_copy.pyo
+#usr/lib/python2.3/test/test_copy_reg.py
+#usr/lib/python2.3/test/test_copy_reg.pyc
+#usr/lib/python2.3/test/test_copy_reg.pyo
+#usr/lib/python2.3/test/test_cpickle.py
+#usr/lib/python2.3/test/test_cpickle.pyc
+#usr/lib/python2.3/test/test_cpickle.pyo
+#usr/lib/python2.3/test/test_crypt.py
+#usr/lib/python2.3/test/test_crypt.pyc
+#usr/lib/python2.3/test/test_crypt.pyo
+#usr/lib/python2.3/test/test_csv.py
+#usr/lib/python2.3/test/test_csv.pyc
+#usr/lib/python2.3/test/test_csv.pyo
+#usr/lib/python2.3/test/test_curses.py
+#usr/lib/python2.3/test/test_curses.pyc
+#usr/lib/python2.3/test/test_curses.pyo
+#usr/lib/python2.3/test/test_datetime.py
+#usr/lib/python2.3/test/test_datetime.pyc
+#usr/lib/python2.3/test/test_datetime.pyo
+#usr/lib/python2.3/test/test_dbm.py
+#usr/lib/python2.3/test/test_dbm.pyc
+#usr/lib/python2.3/test/test_dbm.pyo
+#usr/lib/python2.3/test/test_descr.py
+#usr/lib/python2.3/test/test_descr.pyc
+#usr/lib/python2.3/test/test_descr.pyo
+#usr/lib/python2.3/test/test_descrtut.py
+#usr/lib/python2.3/test/test_descrtut.pyc
+#usr/lib/python2.3/test/test_descrtut.pyo
+#usr/lib/python2.3/test/test_difflib.py
+#usr/lib/python2.3/test/test_difflib.pyc
+#usr/lib/python2.3/test/test_difflib.pyo
+#usr/lib/python2.3/test/test_dircache.py
+#usr/lib/python2.3/test/test_dircache.pyc
+#usr/lib/python2.3/test/test_dircache.pyo
+#usr/lib/python2.3/test/test_dis.py
+#usr/lib/python2.3/test/test_dis.pyc
+#usr/lib/python2.3/test/test_dis.pyo
+#usr/lib/python2.3/test/test_dl.py
+#usr/lib/python2.3/test/test_dl.pyc
+#usr/lib/python2.3/test/test_dl.pyo
+#usr/lib/python2.3/test/test_doctest.py
+#usr/lib/python2.3/test/test_doctest.pyc
+#usr/lib/python2.3/test/test_doctest.pyo
+#usr/lib/python2.3/test/test_doctest2.py
+#usr/lib/python2.3/test/test_doctest2.pyc
+#usr/lib/python2.3/test/test_doctest2.pyo
+#usr/lib/python2.3/test/test_dumbdbm.py
+#usr/lib/python2.3/test/test_dumbdbm.pyc
+#usr/lib/python2.3/test/test_dumbdbm.pyo
+#usr/lib/python2.3/test/test_dummy_thread.py
+#usr/lib/python2.3/test/test_dummy_thread.pyc
+#usr/lib/python2.3/test/test_dummy_thread.pyo
+#usr/lib/python2.3/test/test_dummy_threading.py
+#usr/lib/python2.3/test/test_dummy_threading.pyc
+#usr/lib/python2.3/test/test_dummy_threading.pyo
+#usr/lib/python2.3/test/test_email.py
+#usr/lib/python2.3/test/test_email.pyc
+#usr/lib/python2.3/test/test_email.pyo
+#usr/lib/python2.3/test/test_email_codecs.py
+#usr/lib/python2.3/test/test_email_codecs.pyc
+#usr/lib/python2.3/test/test_email_codecs.pyo
+#usr/lib/python2.3/test/test_enumerate.py
+#usr/lib/python2.3/test/test_enumerate.pyc
+#usr/lib/python2.3/test/test_enumerate.pyo
+#usr/lib/python2.3/test/test_eof.py
+#usr/lib/python2.3/test/test_eof.pyc
+#usr/lib/python2.3/test/test_eof.pyo
+#usr/lib/python2.3/test/test_errno.py
+#usr/lib/python2.3/test/test_errno.pyc
+#usr/lib/python2.3/test/test_errno.pyo
+#usr/lib/python2.3/test/test_exceptions.py
+#usr/lib/python2.3/test/test_exceptions.pyc
+#usr/lib/python2.3/test/test_exceptions.pyo
+#usr/lib/python2.3/test/test_extcall.py
+#usr/lib/python2.3/test/test_extcall.pyc
+#usr/lib/python2.3/test/test_extcall.pyo
+#usr/lib/python2.3/test/test_fcntl.py
+#usr/lib/python2.3/test/test_fcntl.pyc
+#usr/lib/python2.3/test/test_fcntl.pyo
+#usr/lib/python2.3/test/test_file.py
+#usr/lib/python2.3/test/test_file.pyc
+#usr/lib/python2.3/test/test_file.pyo
+#usr/lib/python2.3/test/test_filecmp.py
+#usr/lib/python2.3/test/test_filecmp.pyc
+#usr/lib/python2.3/test/test_filecmp.pyo
+#usr/lib/python2.3/test/test_fileinput.py
+#usr/lib/python2.3/test/test_fileinput.pyc
+#usr/lib/python2.3/test/test_fileinput.pyo
+#usr/lib/python2.3/test/test_fnmatch.py
+#usr/lib/python2.3/test/test_fnmatch.pyc
+#usr/lib/python2.3/test/test_fnmatch.pyo
+#usr/lib/python2.3/test/test_fork1.py
+#usr/lib/python2.3/test/test_fork1.pyc
+#usr/lib/python2.3/test/test_fork1.pyo
+#usr/lib/python2.3/test/test_format.py
+#usr/lib/python2.3/test/test_format.pyc
+#usr/lib/python2.3/test/test_format.pyo
+#usr/lib/python2.3/test/test_fpformat.py
+#usr/lib/python2.3/test/test_fpformat.pyc
+#usr/lib/python2.3/test/test_fpformat.pyo
+#usr/lib/python2.3/test/test_frozen.py
+#usr/lib/python2.3/test/test_frozen.pyc
+#usr/lib/python2.3/test/test_frozen.pyo
+#usr/lib/python2.3/test/test_funcattrs.py
+#usr/lib/python2.3/test/test_funcattrs.pyc
+#usr/lib/python2.3/test/test_funcattrs.pyo
+#usr/lib/python2.3/test/test_future.py
+#usr/lib/python2.3/test/test_future.pyc
+#usr/lib/python2.3/test/test_future.pyo
+#usr/lib/python2.3/test/test_future1.py
+#usr/lib/python2.3/test/test_future1.pyc
+#usr/lib/python2.3/test/test_future1.pyo
+#usr/lib/python2.3/test/test_future2.py
+#usr/lib/python2.3/test/test_future2.pyc
+#usr/lib/python2.3/test/test_future2.pyo
+#usr/lib/python2.3/test/test_future3.py
+#usr/lib/python2.3/test/test_future3.pyc
+#usr/lib/python2.3/test/test_future3.pyo
+#usr/lib/python2.3/test/test_gc.py
+#usr/lib/python2.3/test/test_gc.pyc
+#usr/lib/python2.3/test/test_gc.pyo
+#usr/lib/python2.3/test/test_gdbm.py
+#usr/lib/python2.3/test/test_gdbm.pyc
+#usr/lib/python2.3/test/test_gdbm.pyo
+#usr/lib/python2.3/test/test_generators.py
+#usr/lib/python2.3/test/test_generators.pyc
+#usr/lib/python2.3/test/test_generators.pyo
+#usr/lib/python2.3/test/test_getargs.py
+#usr/lib/python2.3/test/test_getargs.pyc
+#usr/lib/python2.3/test/test_getargs.pyo
+#usr/lib/python2.3/test/test_getargs2.py
+#usr/lib/python2.3/test/test_getargs2.pyc
+#usr/lib/python2.3/test/test_getargs2.pyo
+#usr/lib/python2.3/test/test_getopt.py
+#usr/lib/python2.3/test/test_getopt.pyc
+#usr/lib/python2.3/test/test_getopt.pyo
+#usr/lib/python2.3/test/test_gettext.py
+#usr/lib/python2.3/test/test_gettext.pyc
+#usr/lib/python2.3/test/test_gettext.pyo
+#usr/lib/python2.3/test/test_gl.py
+#usr/lib/python2.3/test/test_gl.pyc
+#usr/lib/python2.3/test/test_gl.pyo
+#usr/lib/python2.3/test/test_glob.py
+#usr/lib/python2.3/test/test_glob.pyc
+#usr/lib/python2.3/test/test_glob.pyo
+#usr/lib/python2.3/test/test_global.py
+#usr/lib/python2.3/test/test_global.pyc
+#usr/lib/python2.3/test/test_global.pyo
+#usr/lib/python2.3/test/test_grammar.py
+#usr/lib/python2.3/test/test_grammar.pyc
+#usr/lib/python2.3/test/test_grammar.pyo
+#usr/lib/python2.3/test/test_grp.py
+#usr/lib/python2.3/test/test_grp.pyc
+#usr/lib/python2.3/test/test_grp.pyo
+#usr/lib/python2.3/test/test_gzip.py
+#usr/lib/python2.3/test/test_gzip.pyc
+#usr/lib/python2.3/test/test_gzip.pyo
+#usr/lib/python2.3/test/test_hash.py
+#usr/lib/python2.3/test/test_hash.pyc
+#usr/lib/python2.3/test/test_hash.pyo
+#usr/lib/python2.3/test/test_heapq.py
+#usr/lib/python2.3/test/test_heapq.pyc
+#usr/lib/python2.3/test/test_heapq.pyo
+#usr/lib/python2.3/test/test_hexoct.py
+#usr/lib/python2.3/test/test_hexoct.pyc
+#usr/lib/python2.3/test/test_hexoct.pyo
+#usr/lib/python2.3/test/test_hmac.py
+#usr/lib/python2.3/test/test_hmac.pyc
+#usr/lib/python2.3/test/test_hmac.pyo
+#usr/lib/python2.3/test/test_hotshot.py
+#usr/lib/python2.3/test/test_hotshot.pyc
+#usr/lib/python2.3/test/test_hotshot.pyo
+#usr/lib/python2.3/test/test_htmllib.py
+#usr/lib/python2.3/test/test_htmllib.pyc
+#usr/lib/python2.3/test/test_htmllib.pyo
+#usr/lib/python2.3/test/test_htmlparser.py
+#usr/lib/python2.3/test/test_htmlparser.pyc
+#usr/lib/python2.3/test/test_htmlparser.pyo
+#usr/lib/python2.3/test/test_httplib.py
+#usr/lib/python2.3/test/test_httplib.pyc
+#usr/lib/python2.3/test/test_httplib.pyo
+#usr/lib/python2.3/test/test_imageop.py
+#usr/lib/python2.3/test/test_imageop.pyc
+#usr/lib/python2.3/test/test_imageop.pyo
+#usr/lib/python2.3/test/test_imaplib.py
+#usr/lib/python2.3/test/test_imaplib.pyc
+#usr/lib/python2.3/test/test_imaplib.pyo
+#usr/lib/python2.3/test/test_imgfile.py
+#usr/lib/python2.3/test/test_imgfile.pyc
+#usr/lib/python2.3/test/test_imgfile.pyo
+#usr/lib/python2.3/test/test_imp.py
+#usr/lib/python2.3/test/test_imp.pyc
+#usr/lib/python2.3/test/test_imp.pyo
+#usr/lib/python2.3/test/test_import.py
+#usr/lib/python2.3/test/test_import.pyc
+#usr/lib/python2.3/test/test_import.pyo
+#usr/lib/python2.3/test/test_importhooks.py
+#usr/lib/python2.3/test/test_importhooks.pyc
+#usr/lib/python2.3/test/test_importhooks.pyo
+#usr/lib/python2.3/test/test_inspect.py
+#usr/lib/python2.3/test/test_inspect.pyc
+#usr/lib/python2.3/test/test_inspect.pyo
+#usr/lib/python2.3/test/test_ioctl.py
+#usr/lib/python2.3/test/test_ioctl.pyc
+#usr/lib/python2.3/test/test_ioctl.pyo
+#usr/lib/python2.3/test/test_isinstance.py
+#usr/lib/python2.3/test/test_isinstance.pyc
+#usr/lib/python2.3/test/test_isinstance.pyo
+#usr/lib/python2.3/test/test_iter.py
+#usr/lib/python2.3/test/test_iter.pyc
+#usr/lib/python2.3/test/test_iter.pyo
+#usr/lib/python2.3/test/test_itertools.py
+#usr/lib/python2.3/test/test_itertools.pyc
+#usr/lib/python2.3/test/test_itertools.pyo
+#usr/lib/python2.3/test/test_largefile.py
+#usr/lib/python2.3/test/test_largefile.pyc
+#usr/lib/python2.3/test/test_largefile.pyo
+#usr/lib/python2.3/test/test_linuxaudiodev.py
+#usr/lib/python2.3/test/test_linuxaudiodev.pyc
+#usr/lib/python2.3/test/test_linuxaudiodev.pyo
+#usr/lib/python2.3/test/test_locale.py
+#usr/lib/python2.3/test/test_locale.pyc
+#usr/lib/python2.3/test/test_locale.pyo
+#usr/lib/python2.3/test/test_logging.py
+#usr/lib/python2.3/test/test_logging.pyc
+#usr/lib/python2.3/test/test_logging.pyo
+#usr/lib/python2.3/test/test_long.py
+#usr/lib/python2.3/test/test_long.pyc
+#usr/lib/python2.3/test/test_long.pyo
+#usr/lib/python2.3/test/test_long_future.py
+#usr/lib/python2.3/test/test_long_future.pyc
+#usr/lib/python2.3/test/test_long_future.pyo
+#usr/lib/python2.3/test/test_longexp.py
+#usr/lib/python2.3/test/test_longexp.pyc
+#usr/lib/python2.3/test/test_longexp.pyo
+#usr/lib/python2.3/test/test_macfs.py
+#usr/lib/python2.3/test/test_macfs.pyc
+#usr/lib/python2.3/test/test_macfs.pyo
+#usr/lib/python2.3/test/test_macostools.py
+#usr/lib/python2.3/test/test_macostools.pyc
+#usr/lib/python2.3/test/test_macostools.pyo
+#usr/lib/python2.3/test/test_macpath.py
+#usr/lib/python2.3/test/test_macpath.pyc
+#usr/lib/python2.3/test/test_macpath.pyo
+#usr/lib/python2.3/test/test_mailbox.py
+#usr/lib/python2.3/test/test_mailbox.pyc
+#usr/lib/python2.3/test/test_mailbox.pyo
+#usr/lib/python2.3/test/test_marshal.py
+#usr/lib/python2.3/test/test_marshal.pyc
+#usr/lib/python2.3/test/test_marshal.pyo
+#usr/lib/python2.3/test/test_math.py
+#usr/lib/python2.3/test/test_math.pyc
+#usr/lib/python2.3/test/test_math.pyo
+#usr/lib/python2.3/test/test_md5.py
+#usr/lib/python2.3/test/test_md5.pyc
+#usr/lib/python2.3/test/test_md5.pyo
+#usr/lib/python2.3/test/test_mhlib.py
+#usr/lib/python2.3/test/test_mhlib.pyc
+#usr/lib/python2.3/test/test_mhlib.pyo
+#usr/lib/python2.3/test/test_mimetools.py
+#usr/lib/python2.3/test/test_mimetools.pyc
+#usr/lib/python2.3/test/test_mimetools.pyo
+#usr/lib/python2.3/test/test_mimetypes.py
+#usr/lib/python2.3/test/test_mimetypes.pyc
+#usr/lib/python2.3/test/test_mimetypes.pyo
+#usr/lib/python2.3/test/test_minidom.py
+#usr/lib/python2.3/test/test_minidom.pyc
+#usr/lib/python2.3/test/test_minidom.pyo
+#usr/lib/python2.3/test/test_mmap.py
+#usr/lib/python2.3/test/test_mmap.pyc
+#usr/lib/python2.3/test/test_mmap.pyo
+#usr/lib/python2.3/test/test_module.py
+#usr/lib/python2.3/test/test_module.pyc
+#usr/lib/python2.3/test/test_module.pyo
+#usr/lib/python2.3/test/test_mpz.py
+#usr/lib/python2.3/test/test_mpz.pyc
+#usr/lib/python2.3/test/test_mpz.pyo
+#usr/lib/python2.3/test/test_multifile.py
+#usr/lib/python2.3/test/test_multifile.pyc
+#usr/lib/python2.3/test/test_multifile.pyo
+#usr/lib/python2.3/test/test_mutants.py
+#usr/lib/python2.3/test/test_mutants.pyc
+#usr/lib/python2.3/test/test_mutants.pyo
+#usr/lib/python2.3/test/test_netrc.py
+#usr/lib/python2.3/test/test_netrc.pyc
+#usr/lib/python2.3/test/test_netrc.pyo
+#usr/lib/python2.3/test/test_new.py
+#usr/lib/python2.3/test/test_new.pyc
+#usr/lib/python2.3/test/test_new.pyo
+#usr/lib/python2.3/test/test_nis.py
+#usr/lib/python2.3/test/test_nis.pyc
+#usr/lib/python2.3/test/test_nis.pyo
+#usr/lib/python2.3/test/test_normalization.py
+#usr/lib/python2.3/test/test_normalization.pyc
+#usr/lib/python2.3/test/test_normalization.pyo
+#usr/lib/python2.3/test/test_ntpath.py
+#usr/lib/python2.3/test/test_ntpath.pyc
+#usr/lib/python2.3/test/test_ntpath.pyo
+#usr/lib/python2.3/test/test_opcodes.py
+#usr/lib/python2.3/test/test_opcodes.pyc
+#usr/lib/python2.3/test/test_opcodes.pyo
+#usr/lib/python2.3/test/test_openpty.py
+#usr/lib/python2.3/test/test_openpty.pyc
+#usr/lib/python2.3/test/test_openpty.pyo
+#usr/lib/python2.3/test/test_operations.py
+#usr/lib/python2.3/test/test_operations.pyc
+#usr/lib/python2.3/test/test_operations.pyo
+#usr/lib/python2.3/test/test_operator.py
+#usr/lib/python2.3/test/test_operator.pyc
+#usr/lib/python2.3/test/test_operator.pyo
+#usr/lib/python2.3/test/test_optparse.py
+#usr/lib/python2.3/test/test_optparse.pyc
+#usr/lib/python2.3/test/test_optparse.pyo
+#usr/lib/python2.3/test/test_os.py
+#usr/lib/python2.3/test/test_os.pyc
+#usr/lib/python2.3/test/test_os.pyo
+#usr/lib/python2.3/test/test_ossaudiodev.py
+#usr/lib/python2.3/test/test_ossaudiodev.pyc
+#usr/lib/python2.3/test/test_ossaudiodev.pyo
+#usr/lib/python2.3/test/test_parser.py
+#usr/lib/python2.3/test/test_parser.pyc
+#usr/lib/python2.3/test/test_parser.pyo
+#usr/lib/python2.3/test/test_pep247.py
+#usr/lib/python2.3/test/test_pep247.pyc
+#usr/lib/python2.3/test/test_pep247.pyo
+#usr/lib/python2.3/test/test_pep263.py
+#usr/lib/python2.3/test/test_pep263.pyc
+#usr/lib/python2.3/test/test_pep263.pyo
+#usr/lib/python2.3/test/test_pep277.py
+#usr/lib/python2.3/test/test_pep277.pyc
+#usr/lib/python2.3/test/test_pep277.pyo
+#usr/lib/python2.3/test/test_pickle.py
+#usr/lib/python2.3/test/test_pickle.pyc
+#usr/lib/python2.3/test/test_pickle.pyo
+#usr/lib/python2.3/test/test_pickletools.py
+#usr/lib/python2.3/test/test_pickletools.pyc
+#usr/lib/python2.3/test/test_pickletools.pyo
+#usr/lib/python2.3/test/test_pkg.py
+#usr/lib/python2.3/test/test_pkg.pyc
+#usr/lib/python2.3/test/test_pkg.pyo
+#usr/lib/python2.3/test/test_pkgimport.py
+#usr/lib/python2.3/test/test_pkgimport.pyc
+#usr/lib/python2.3/test/test_pkgimport.pyo
+#usr/lib/python2.3/test/test_plistlib.py
+#usr/lib/python2.3/test/test_plistlib.pyc
+#usr/lib/python2.3/test/test_plistlib.pyo
+#usr/lib/python2.3/test/test_poll.py
+#usr/lib/python2.3/test/test_poll.pyc
+#usr/lib/python2.3/test/test_poll.pyo
+#usr/lib/python2.3/test/test_popen.py
+#usr/lib/python2.3/test/test_popen.pyc
+#usr/lib/python2.3/test/test_popen.pyo
+#usr/lib/python2.3/test/test_popen2.py
+#usr/lib/python2.3/test/test_popen2.pyc
+#usr/lib/python2.3/test/test_popen2.pyo
+#usr/lib/python2.3/test/test_posix.py
+#usr/lib/python2.3/test/test_posix.pyc
+#usr/lib/python2.3/test/test_posix.pyo
+#usr/lib/python2.3/test/test_posixpath.py
+#usr/lib/python2.3/test/test_posixpath.pyc
+#usr/lib/python2.3/test/test_posixpath.pyo
+#usr/lib/python2.3/test/test_pow.py
+#usr/lib/python2.3/test/test_pow.pyc
+#usr/lib/python2.3/test/test_pow.pyo
+#usr/lib/python2.3/test/test_pprint.py
+#usr/lib/python2.3/test/test_pprint.pyc
+#usr/lib/python2.3/test/test_pprint.pyo
+#usr/lib/python2.3/test/test_profile.py
+#usr/lib/python2.3/test/test_profile.pyc
+#usr/lib/python2.3/test/test_profile.pyo
+#usr/lib/python2.3/test/test_profilehooks.py
+#usr/lib/python2.3/test/test_profilehooks.pyc
+#usr/lib/python2.3/test/test_profilehooks.pyo
+#usr/lib/python2.3/test/test_pty.py
+#usr/lib/python2.3/test/test_pty.pyc
+#usr/lib/python2.3/test/test_pty.pyo
+#usr/lib/python2.3/test/test_pwd.py
+#usr/lib/python2.3/test/test_pwd.pyc
+#usr/lib/python2.3/test/test_pwd.pyo
+#usr/lib/python2.3/test/test_pyclbr.py
+#usr/lib/python2.3/test/test_pyclbr.pyc
+#usr/lib/python2.3/test/test_pyclbr.pyo
+#usr/lib/python2.3/test/test_pyexpat.py
+#usr/lib/python2.3/test/test_pyexpat.pyc
+#usr/lib/python2.3/test/test_pyexpat.pyo
+#usr/lib/python2.3/test/test_queue.py
+#usr/lib/python2.3/test/test_queue.pyc
+#usr/lib/python2.3/test/test_queue.pyo
+#usr/lib/python2.3/test/test_quopri.py
+#usr/lib/python2.3/test/test_quopri.pyc
+#usr/lib/python2.3/test/test_quopri.pyo
+#usr/lib/python2.3/test/test_random.py
+#usr/lib/python2.3/test/test_random.pyc
+#usr/lib/python2.3/test/test_random.pyo
+#usr/lib/python2.3/test/test_re.py
+#usr/lib/python2.3/test/test_re.pyc
+#usr/lib/python2.3/test/test_re.pyo
+#usr/lib/python2.3/test/test_regex.py
+#usr/lib/python2.3/test/test_regex.pyc
+#usr/lib/python2.3/test/test_regex.pyo
+#usr/lib/python2.3/test/test_repr.py
+#usr/lib/python2.3/test/test_repr.pyc
+#usr/lib/python2.3/test/test_repr.pyo
+#usr/lib/python2.3/test/test_resource.py
+#usr/lib/python2.3/test/test_resource.pyc
+#usr/lib/python2.3/test/test_resource.pyo
+#usr/lib/python2.3/test/test_rfc822.py
+#usr/lib/python2.3/test/test_rfc822.pyc
+#usr/lib/python2.3/test/test_rfc822.pyo
+#usr/lib/python2.3/test/test_rgbimg.py
+#usr/lib/python2.3/test/test_rgbimg.pyc
+#usr/lib/python2.3/test/test_rgbimg.pyo
+#usr/lib/python2.3/test/test_richcmp.py
+#usr/lib/python2.3/test/test_richcmp.pyc
+#usr/lib/python2.3/test/test_richcmp.pyo
+#usr/lib/python2.3/test/test_robotparser.py
+#usr/lib/python2.3/test/test_robotparser.pyc
+#usr/lib/python2.3/test/test_robotparser.pyo
+#usr/lib/python2.3/test/test_rotor.py
+#usr/lib/python2.3/test/test_rotor.pyc
+#usr/lib/python2.3/test/test_rotor.pyo
+#usr/lib/python2.3/test/test_sax.py
+#usr/lib/python2.3/test/test_sax.pyc
+#usr/lib/python2.3/test/test_sax.pyo
+#usr/lib/python2.3/test/test_scope.py
+#usr/lib/python2.3/test/test_scope.pyc
+#usr/lib/python2.3/test/test_scope.pyo
+#usr/lib/python2.3/test/test_scriptpackages.py
+#usr/lib/python2.3/test/test_scriptpackages.pyc
+#usr/lib/python2.3/test/test_scriptpackages.pyo
+#usr/lib/python2.3/test/test_select.py
+#usr/lib/python2.3/test/test_select.pyc
+#usr/lib/python2.3/test/test_select.pyo
+#usr/lib/python2.3/test/test_sets.py
+#usr/lib/python2.3/test/test_sets.pyc
+#usr/lib/python2.3/test/test_sets.pyo
+#usr/lib/python2.3/test/test_sgmllib.py
+#usr/lib/python2.3/test/test_sgmllib.pyc
+#usr/lib/python2.3/test/test_sgmllib.pyo
+#usr/lib/python2.3/test/test_sha.py
+#usr/lib/python2.3/test/test_sha.pyc
+#usr/lib/python2.3/test/test_sha.pyo
+#usr/lib/python2.3/test/test_shelve.py
+#usr/lib/python2.3/test/test_shelve.pyc
+#usr/lib/python2.3/test/test_shelve.pyo
+#usr/lib/python2.3/test/test_shlex.py
+#usr/lib/python2.3/test/test_shlex.pyc
+#usr/lib/python2.3/test/test_shlex.pyo
+#usr/lib/python2.3/test/test_shutil.py
+#usr/lib/python2.3/test/test_shutil.pyc
+#usr/lib/python2.3/test/test_shutil.pyo
+#usr/lib/python2.3/test/test_signal.py
+#usr/lib/python2.3/test/test_signal.pyc
+#usr/lib/python2.3/test/test_signal.pyo
+#usr/lib/python2.3/test/test_slice.py
+#usr/lib/python2.3/test/test_slice.pyc
+#usr/lib/python2.3/test/test_slice.pyo
+#usr/lib/python2.3/test/test_socket.py
+#usr/lib/python2.3/test/test_socket.pyc
+#usr/lib/python2.3/test/test_socket.pyo
+#usr/lib/python2.3/test/test_socket_ssl.py
+#usr/lib/python2.3/test/test_socket_ssl.pyc
+#usr/lib/python2.3/test/test_socket_ssl.pyo
+#usr/lib/python2.3/test/test_socketserver.py
+#usr/lib/python2.3/test/test_socketserver.pyc
+#usr/lib/python2.3/test/test_socketserver.pyo
+#usr/lib/python2.3/test/test_softspace.py
+#usr/lib/python2.3/test/test_softspace.pyc
+#usr/lib/python2.3/test/test_softspace.pyo
+#usr/lib/python2.3/test/test_sort.py
+#usr/lib/python2.3/test/test_sort.pyc
+#usr/lib/python2.3/test/test_sort.pyo
+#usr/lib/python2.3/test/test_str.py
+#usr/lib/python2.3/test/test_str.pyc
+#usr/lib/python2.3/test/test_str.pyo
+#usr/lib/python2.3/test/test_strftime.py
+#usr/lib/python2.3/test/test_strftime.pyc
+#usr/lib/python2.3/test/test_strftime.pyo
+#usr/lib/python2.3/test/test_string.py
+#usr/lib/python2.3/test/test_string.pyc
+#usr/lib/python2.3/test/test_string.pyo
+#usr/lib/python2.3/test/test_stringprep.py
+#usr/lib/python2.3/test/test_stringprep.pyc
+#usr/lib/python2.3/test/test_stringprep.pyo
+#usr/lib/python2.3/test/test_strop.py
+#usr/lib/python2.3/test/test_strop.pyc
+#usr/lib/python2.3/test/test_strop.pyo
+#usr/lib/python2.3/test/test_strptime.py
+#usr/lib/python2.3/test/test_strptime.pyc
+#usr/lib/python2.3/test/test_strptime.pyo
+#usr/lib/python2.3/test/test_struct.py
+#usr/lib/python2.3/test/test_struct.pyc
+#usr/lib/python2.3/test/test_struct.pyo
+#usr/lib/python2.3/test/test_structseq.py
+#usr/lib/python2.3/test/test_structseq.pyc
+#usr/lib/python2.3/test/test_structseq.pyo
+#usr/lib/python2.3/test/test_sunaudiodev.py
+#usr/lib/python2.3/test/test_sunaudiodev.pyc
+#usr/lib/python2.3/test/test_sunaudiodev.pyo
+#usr/lib/python2.3/test/test_sundry.py
+#usr/lib/python2.3/test/test_sundry.pyc
+#usr/lib/python2.3/test/test_sundry.pyo
+#usr/lib/python2.3/test/test_support.py
+#usr/lib/python2.3/test/test_support.pyc
+#usr/lib/python2.3/test/test_support.pyo
+#usr/lib/python2.3/test/test_symtable.py
+#usr/lib/python2.3/test/test_symtable.pyc
+#usr/lib/python2.3/test/test_symtable.pyo
+#usr/lib/python2.3/test/test_syntax.py
+#usr/lib/python2.3/test/test_syntax.pyc
+#usr/lib/python2.3/test/test_syntax.pyo
+#usr/lib/python2.3/test/test_sys.py
+#usr/lib/python2.3/test/test_sys.pyc
+#usr/lib/python2.3/test/test_sys.pyo
+#usr/lib/python2.3/test/test_tarfile.py
+#usr/lib/python2.3/test/test_tarfile.pyc
+#usr/lib/python2.3/test/test_tarfile.pyo
+#usr/lib/python2.3/test/test_tempfile.py
+#usr/lib/python2.3/test/test_tempfile.pyc
+#usr/lib/python2.3/test/test_tempfile.pyo
+#usr/lib/python2.3/test/test_textwrap.py
+#usr/lib/python2.3/test/test_textwrap.pyc
+#usr/lib/python2.3/test/test_textwrap.pyo
+#usr/lib/python2.3/test/test_thread.py
+#usr/lib/python2.3/test/test_thread.pyc
+#usr/lib/python2.3/test/test_thread.pyo
+#usr/lib/python2.3/test/test_threaded_import.py
+#usr/lib/python2.3/test/test_threaded_import.pyc
+#usr/lib/python2.3/test/test_threaded_import.pyo
+#usr/lib/python2.3/test/test_threadedtempfile.py
+#usr/lib/python2.3/test/test_threadedtempfile.pyc
+#usr/lib/python2.3/test/test_threadedtempfile.pyo
+#usr/lib/python2.3/test/test_threading.py
+#usr/lib/python2.3/test/test_threading.pyc
+#usr/lib/python2.3/test/test_threading.pyo
+#usr/lib/python2.3/test/test_time.py
+#usr/lib/python2.3/test/test_time.pyc
+#usr/lib/python2.3/test/test_time.pyo
+#usr/lib/python2.3/test/test_timeout.py
+#usr/lib/python2.3/test/test_timeout.pyc
+#usr/lib/python2.3/test/test_timeout.pyo
+#usr/lib/python2.3/test/test_timing.py
+#usr/lib/python2.3/test/test_timing.pyc
+#usr/lib/python2.3/test/test_timing.pyo
+#usr/lib/python2.3/test/test_tokenize.py
+#usr/lib/python2.3/test/test_tokenize.pyc
+#usr/lib/python2.3/test/test_tokenize.pyo
+#usr/lib/python2.3/test/test_trace.py
+#usr/lib/python2.3/test/test_trace.pyc
+#usr/lib/python2.3/test/test_trace.pyo
+#usr/lib/python2.3/test/test_traceback.py
+#usr/lib/python2.3/test/test_traceback.pyc
+#usr/lib/python2.3/test/test_traceback.pyo
+#usr/lib/python2.3/test/test_types.py
+#usr/lib/python2.3/test/test_types.pyc
+#usr/lib/python2.3/test/test_types.pyo
+#usr/lib/python2.3/test/test_ucn.py
+#usr/lib/python2.3/test/test_ucn.pyc
+#usr/lib/python2.3/test/test_ucn.pyo
+#usr/lib/python2.3/test/test_unary.py
+#usr/lib/python2.3/test/test_unary.pyc
+#usr/lib/python2.3/test/test_unary.pyo
+#usr/lib/python2.3/test/test_unicode.py
+#usr/lib/python2.3/test/test_unicode.pyc
+#usr/lib/python2.3/test/test_unicode.pyo
+#usr/lib/python2.3/test/test_unicode_file.py
+#usr/lib/python2.3/test/test_unicode_file.pyc
+#usr/lib/python2.3/test/test_unicode_file.pyo
+#usr/lib/python2.3/test/test_unicodedata.py
+#usr/lib/python2.3/test/test_unicodedata.pyc
+#usr/lib/python2.3/test/test_unicodedata.pyo
+#usr/lib/python2.3/test/test_univnewlines.py
+#usr/lib/python2.3/test/test_univnewlines.pyc
+#usr/lib/python2.3/test/test_univnewlines.pyo
+#usr/lib/python2.3/test/test_unpack.py
+#usr/lib/python2.3/test/test_unpack.pyc
+#usr/lib/python2.3/test/test_unpack.pyo
+#usr/lib/python2.3/test/test_urllib.py
+#usr/lib/python2.3/test/test_urllib.pyc
+#usr/lib/python2.3/test/test_urllib.pyo
+#usr/lib/python2.3/test/test_urllib2.py
+#usr/lib/python2.3/test/test_urllib2.pyc
+#usr/lib/python2.3/test/test_urllib2.pyo
+#usr/lib/python2.3/test/test_urllibnet.py
+#usr/lib/python2.3/test/test_urllibnet.pyc
+#usr/lib/python2.3/test/test_urllibnet.pyo
+#usr/lib/python2.3/test/test_urlparse.py
+#usr/lib/python2.3/test/test_urlparse.pyc
+#usr/lib/python2.3/test/test_urlparse.pyo
+#usr/lib/python2.3/test/test_userdict.py
+#usr/lib/python2.3/test/test_userdict.pyc
+#usr/lib/python2.3/test/test_userdict.pyo
+#usr/lib/python2.3/test/test_userlist.py
+#usr/lib/python2.3/test/test_userlist.pyc
+#usr/lib/python2.3/test/test_userlist.pyo
+#usr/lib/python2.3/test/test_userstring.py
+#usr/lib/python2.3/test/test_userstring.pyc
+#usr/lib/python2.3/test/test_userstring.pyo
+#usr/lib/python2.3/test/test_uu.py
+#usr/lib/python2.3/test/test_uu.pyc
+#usr/lib/python2.3/test/test_uu.pyo
+#usr/lib/python2.3/test/test_warnings.py
+#usr/lib/python2.3/test/test_warnings.pyc
+#usr/lib/python2.3/test/test_warnings.pyo
+#usr/lib/python2.3/test/test_wave.py
+#usr/lib/python2.3/test/test_wave.pyc
+#usr/lib/python2.3/test/test_wave.pyo
+#usr/lib/python2.3/test/test_weakref.py
+#usr/lib/python2.3/test/test_weakref.pyc
+#usr/lib/python2.3/test/test_weakref.pyo
+#usr/lib/python2.3/test/test_whichdb.py
+#usr/lib/python2.3/test/test_whichdb.pyc
+#usr/lib/python2.3/test/test_whichdb.pyo
+#usr/lib/python2.3/test/test_winreg.py
+#usr/lib/python2.3/test/test_winreg.pyc
+#usr/lib/python2.3/test/test_winreg.pyo
+#usr/lib/python2.3/test/test_winsound.py
+#usr/lib/python2.3/test/test_winsound.pyc
+#usr/lib/python2.3/test/test_winsound.pyo
+#usr/lib/python2.3/test/test_xmllib.py
+#usr/lib/python2.3/test/test_xmllib.pyc
+#usr/lib/python2.3/test/test_xmllib.pyo
+#usr/lib/python2.3/test/test_xmlrpc.py
+#usr/lib/python2.3/test/test_xmlrpc.pyc
+#usr/lib/python2.3/test/test_xmlrpc.pyo
+#usr/lib/python2.3/test/test_xpickle.py
+#usr/lib/python2.3/test/test_xpickle.pyc
+#usr/lib/python2.3/test/test_xpickle.pyo
+#usr/lib/python2.3/test/test_xreadline.py
+#usr/lib/python2.3/test/test_xreadline.pyc
+#usr/lib/python2.3/test/test_xreadline.pyo
+#usr/lib/python2.3/test/test_zipfile.py
+#usr/lib/python2.3/test/test_zipfile.pyc
+#usr/lib/python2.3/test/test_zipfile.pyo
+#usr/lib/python2.3/test/test_zipimport.py
+#usr/lib/python2.3/test/test_zipimport.pyc
+#usr/lib/python2.3/test/test_zipimport.pyo
+#usr/lib/python2.3/test/test_zlib.py
+#usr/lib/python2.3/test/test_zlib.pyc
+#usr/lib/python2.3/test/test_zlib.pyo
+#usr/lib/python2.3/test/testall.py
+#usr/lib/python2.3/test/testall.pyc
+#usr/lib/python2.3/test/testall.pyo
+#usr/lib/python2.3/test/testcodec.py
+#usr/lib/python2.3/test/testcodec.pyc
+#usr/lib/python2.3/test/testcodec.pyo
+#usr/lib/python2.3/test/testimg.uue
+#usr/lib/python2.3/test/testimgr.uue
+#usr/lib/python2.3/test/testrgb.uue
+#usr/lib/python2.3/test/testtar.tar
+#usr/lib/python2.3/test/tf_inherit_check.py
+#usr/lib/python2.3/test/tf_inherit_check.pyc
+#usr/lib/python2.3/test/tf_inherit_check.pyo
+#usr/lib/python2.3/test/tokenize_tests.txt
+#usr/lib/python2.3/test/xmltests.py
+#usr/lib/python2.3/test/xmltests.pyc
+#usr/lib/python2.3/test/xmltests.pyo
+#usr/lib/python2.3/textwrap.py
+usr/lib/python2.3/textwrap.pyc
+#usr/lib/python2.3/textwrap.pyo
+#usr/lib/python2.3/this.py
+usr/lib/python2.3/this.pyc
+#usr/lib/python2.3/this.pyo
+#usr/lib/python2.3/threading.py
+usr/lib/python2.3/threading.pyc
+#usr/lib/python2.3/threading.pyo
+#usr/lib/python2.3/timeit.py
+usr/lib/python2.3/timeit.pyc
+#usr/lib/python2.3/timeit.pyo
+#usr/lib/python2.3/toaiff.py
+#usr/lib/python2.3/toaiff.pyc
+#usr/lib/python2.3/toaiff.pyo
+#usr/lib/python2.3/token.py
+usr/lib/python2.3/token.pyc
+#usr/lib/python2.3/token.pyo
+#usr/lib/python2.3/tokenize.py
+usr/lib/python2.3/tokenize.pyc
+#usr/lib/python2.3/tokenize.pyo
+#usr/lib/python2.3/trace.py
+usr/lib/python2.3/trace.pyc
+#usr/lib/python2.3/trace.pyo
+#usr/lib/python2.3/traceback.py
+usr/lib/python2.3/traceback.pyc
+#usr/lib/python2.3/traceback.pyo
+#usr/lib/python2.3/tty.py
+usr/lib/python2.3/tty.pyc
+#usr/lib/python2.3/tty.pyo
+#usr/lib/python2.3/types.py
+usr/lib/python2.3/types.pyc
+#usr/lib/python2.3/types.pyo
+#usr/lib/python2.3/tzparse.py
+usr/lib/python2.3/tzparse.pyc
+#usr/lib/python2.3/tzparse.pyo
+#usr/lib/python2.3/unittest.py
+usr/lib/python2.3/unittest.pyc
+#usr/lib/python2.3/unittest.pyo
+#usr/lib/python2.3/urllib.py
+usr/lib/python2.3/urllib.pyc
+#usr/lib/python2.3/urllib.pyo
+#usr/lib/python2.3/urllib2.py
+usr/lib/python2.3/urllib2.pyc
+#usr/lib/python2.3/urllib2.pyo
+#usr/lib/python2.3/urlparse.py
+usr/lib/python2.3/urlparse.pyc
+#usr/lib/python2.3/urlparse.pyo
+#usr/lib/python2.3/user.py
+usr/lib/python2.3/user.pyc
+#usr/lib/python2.3/user.pyo
+#usr/lib/python2.3/uu.py
+usr/lib/python2.3/uu.pyc
+#usr/lib/python2.3/uu.pyo
+#usr/lib/python2.3/warnings.py
+usr/lib/python2.3/warnings.pyc
+#usr/lib/python2.3/warnings.pyo
+#usr/lib/python2.3/wave.py
+#usr/lib/python2.3/wave.pyc
+#usr/lib/python2.3/wave.pyo
+#usr/lib/python2.3/weakref.py
+usr/lib/python2.3/weakref.pyc
+#usr/lib/python2.3/weakref.pyo
+#usr/lib/python2.3/webbrowser.py
+#usr/lib/python2.3/webbrowser.pyc
+#usr/lib/python2.3/webbrowser.pyo
+#usr/lib/python2.3/whichdb.py
+usr/lib/python2.3/whichdb.pyc
+#usr/lib/python2.3/whichdb.pyo
+#usr/lib/python2.3/whrandom.py
+usr/lib/python2.3/whrandom.pyc
+#usr/lib/python2.3/whrandom.pyo
+#usr/lib/python2.3/xdrlib.py
+usr/lib/python2.3/xdrlib.pyc
+#usr/lib/python2.3/xdrlib.pyo
+#usr/lib/python2.3/xml
+#usr/lib/python2.3/xml/__init__.py
+usr/lib/python2.3/xml/__init__.pyc
+#usr/lib/python2.3/xml/__init__.pyo
+#usr/lib/python2.3/xml/dom
+#usr/lib/python2.3/xml/dom/NodeFilter.py
+usr/lib/python2.3/xml/dom/NodeFilter.pyc
+#usr/lib/python2.3/xml/dom/NodeFilter.pyo
+#usr/lib/python2.3/xml/dom/__init__.py
+usr/lib/python2.3/xml/dom/__init__.pyc
+#usr/lib/python2.3/xml/dom/__init__.pyo
+#usr/lib/python2.3/xml/dom/domreg.py
+usr/lib/python2.3/xml/dom/domreg.pyc
+#usr/lib/python2.3/xml/dom/domreg.pyo
+#usr/lib/python2.3/xml/dom/expatbuilder.py
+usr/lib/python2.3/xml/dom/expatbuilder.pyc
+#usr/lib/python2.3/xml/dom/expatbuilder.pyo
+#usr/lib/python2.3/xml/dom/minicompat.py
+usr/lib/python2.3/xml/dom/minicompat.pyc
+#usr/lib/python2.3/xml/dom/minicompat.pyo
+#usr/lib/python2.3/xml/dom/minidom.py
+usr/lib/python2.3/xml/dom/minidom.pyc
+#usr/lib/python2.3/xml/dom/minidom.pyo
+#usr/lib/python2.3/xml/dom/pulldom.py
+usr/lib/python2.3/xml/dom/pulldom.pyc
+#usr/lib/python2.3/xml/dom/pulldom.pyo
+#usr/lib/python2.3/xml/dom/xmlbuilder.py
+usr/lib/python2.3/xml/dom/xmlbuilder.pyc
+#usr/lib/python2.3/xml/dom/xmlbuilder.pyo
+#usr/lib/python2.3/xml/parsers
+#usr/lib/python2.3/xml/parsers/__init__.py
+usr/lib/python2.3/xml/parsers/__init__.pyc
+#usr/lib/python2.3/xml/parsers/__init__.pyo
+#usr/lib/python2.3/xml/parsers/expat.py
+usr/lib/python2.3/xml/parsers/expat.pyc
+#usr/lib/python2.3/xml/parsers/expat.pyo
+#usr/lib/python2.3/xml/sax
+#usr/lib/python2.3/xml/sax/__init__.py
+usr/lib/python2.3/xml/sax/__init__.pyc
+#usr/lib/python2.3/xml/sax/__init__.pyo
+#usr/lib/python2.3/xml/sax/_exceptions.py
+usr/lib/python2.3/xml/sax/_exceptions.pyc
+#usr/lib/python2.3/xml/sax/_exceptions.pyo
+#usr/lib/python2.3/xml/sax/expatreader.py
+usr/lib/python2.3/xml/sax/expatreader.pyc
+#usr/lib/python2.3/xml/sax/expatreader.pyo
+#usr/lib/python2.3/xml/sax/handler.py
+usr/lib/python2.3/xml/sax/handler.pyc
+#usr/lib/python2.3/xml/sax/handler.pyo
+#usr/lib/python2.3/xml/sax/saxutils.py
+usr/lib/python2.3/xml/sax/saxutils.pyc
+#usr/lib/python2.3/xml/sax/saxutils.pyo
+#usr/lib/python2.3/xml/sax/xmlreader.py
+usr/lib/python2.3/xml/sax/xmlreader.pyc
+#usr/lib/python2.3/xml/sax/xmlreader.pyo
+#usr/lib/python2.3/xmllib.py
+usr/lib/python2.3/xmllib.pyc
+#usr/lib/python2.3/xmllib.pyo
+#usr/lib/python2.3/xmlrpclib.py
+usr/lib/python2.3/xmlrpclib.pyc
+#usr/lib/python2.3/xmlrpclib.pyo
+#usr/lib/python2.3/zipfile.py
+usr/lib/python2.3/zipfile.pyc
+#usr/lib/python2.3/zipfile.pyo
+#usr/share/man/man1/python.1
+##
+## expat-1.95.7
+##
+#usr/bin/xmlwf
+#usr/include/expat.h
+#usr/lib/libexpat.a
+#usr/lib/libexpat.la
+usr/lib/libexpat.so
+usr/lib/libexpat.so.0
+usr/lib/libexpat.so.0.5.0
+#usr/share/man/man1/xmlwf.1
+##
+## gdbm-1.8.3
+##
+#usr/include/gdbm.h
+#usr/lib/libgdbm.a
+#usr/lib/libgdbm.la
+usr/lib/libgdbm.so
+usr/lib/libgdbm.so.3
+usr/lib/libgdbm.so.3.0.0
+#usr/share/info/gdbm.info
+#usr/share/man/man3/gdbm.3
+##
+## gmp-4.1.2
+##
+#usr/include/gmp.h
+#usr/lib/libgmp.a
+#usr/lib/libgmp.la
+usr/lib/libgmp.so
+usr/lib/libgmp.so.3
+usr/lib/libgmp.so.3.3.2
+#usr/share/info/gmp.info
+#usr/share/info/gmp.info-1
+#usr/share/info/gmp.info-2
+#usr/share/info/gmp.info-3
+#usr/share/info/gmp.info-4
+#usr/share/info/gmp.info-5
+#usr/share/info/gmp.info-6
+#usr/share/info/gmp.info-7
+#usr/share/info/gmp.info-8
+#usr/share/info/gmp.info-9
+##
+## libnet-1.1.2.1
+##
+#usr/include/libnet
+#usr/include/libnet/libnet-asn1.h
+#usr/include/libnet/libnet-functions.h
+#usr/include/libnet/libnet-headers.h
+#usr/include/libnet/libnet-macros.h
+#usr/include/libnet/libnet-structures.h
+#usr/include/libnet/libnet-types.h
+#usr/include/libnet.h
+#usr/lib/libnet.a
+##
+## libpcap-0.8.3
+##
+#usr/include/net/bpf.h
+#usr/include/pcap-namedb.h
+#usr/include/pcap.h
+#usr/lib/libpcap.a
+usr/lib/libpcap.so.0.8.3
+usr/lib/libpcap.so
+usr/lib/libpcap.so.0
+usr/lib/libpcap.so.0.8
+#usr/share/man/man3/pcap.3
+##
+## libpng-1.2.8
+##
+#usr/bin/libpng-config
+#usr/bin/libpng12-config
+#usr/include/libpng
+#usr/include/libpng12
+#usr/include/libpng12/png.h
+#usr/include/libpng12/pngconf.h
+#usr/include/png.h
+#usr/include/pngconf.h
+#usr/lib/libpng.a
+usr/lib/libpng.so
+usr/lib/libpng.so.3
+usr/lib/libpng.so.3.1.2.8
+#usr/lib/libpng12.a
+#usr/lib/libpng12.so
+#usr/lib/libpng12.so.0
+#usr/lib/libpng12.so.0.1.2.8
+#usr/lib/pkgconfig
+#usr/lib/pkgconfig/libpng.pc
+#usr/lib/pkgconfig/libpng12.pc
+#usr/share/man/man3/libpng.3
+#usr/share/man/man3/libpngpf.3
+#usr/share/man/man5/png.5
+##
+## libsafe-2.0-16
+##
+etc/ld.so.preload
+lib/libsafe.so.2.0.16
+lib/libsafe.so.2
+#usr/share/man/man8/libsafe.8
+##
+## gd-2.0.20
+##
+#usr/bin/annotate
+#usr/bin/bdftogd
+#usr/bin/gd2copypal
+#usr/bin/gd2topng
+#usr/bin/gdlib-config
+#usr/bin/gdparttopng
+#usr/bin/gdtojpeg
+#usr/bin/gdtopng
+#usr/bin/pngtogd
+#usr/bin/pngtogd2
+#usr/bin/webpng
+#usr/include/gd.h
+#usr/include/gdfx.h
+#usr/include/gd_io.h
+#usr/include/gdcache.h
+#usr/include/gdfontg.h
+#usr/include/gdfontl.h
+#usr/include/gdfontmb.h
+#usr/include/gdfonts.h
+#usr/include/gdfontt.h
+#usr/lib/libgd.a
+#usr/lib/libgd.la
+usr/lib/libgd.so
+usr/lib/libgd.so.2
+usr/lib/libgd.so.2.0.0
+##
+## popt-1.7
+##
+#usr/include/popt.h
+#usr/lib/libpopt.a
+#usr/lib/libpopt.la
+usr/lib/libpopt.so
+usr/lib/libpopt.so.0
+usr/lib/libpopt.so.0.0.0
+#usr/share/man/man3/popt.3
+##
+## slang-1.4.5-mini
+##
+#usr/include/slang
+#usr/include/slang/slang.h
+#usr/include/slang/slcurses.h
+#usr/lib/libslang.a
+##
+## newt-utf8_0.50.17
+##
+#usr/include/newt.h
+usr/lib/libnewt-utf8.so.0.50.17
+usr/lib/libnewt.so
+usr/lib/libnewt.so.0.50
+usr/lib/python2.3/site-packages/_snackmodule.so
+#usr/lib/python2.3/site-packages/snack.py
+usr/lib/python2.3/site-packages/snack.pyc
+##
+## libcap-1.10
+##
+#usr/include/sys/capability.h
+#usr/share/man/man3/cap_init.3
+#usr/share/man/man3/cap_free.3
+#usr/share/man/man3/cap_dup.3
+#usr/share/man/man3/cap_clear.3
+#usr/share/man/man3/cap_get_flag.3
+#usr/share/man/man3/cap_set_flag.3
+#usr/share/man/man3/cap_get_proc.3
+#usr/share/man/man3/cap_set_proc.3
+#usr/share/man/man3/cap_copy_ext.3
+#usr/share/man/man3/cap_size.3
+#usr/share/man/man3/cap_copy_int.3
+#usr/share/man/man3/cap_from_text.3
+#usr/share/man/man3/cap_to_text.3
+#usr/share/man/man3/_cap_names.3
+#usr/share/man/man3/capsetp.3
+#usr/share/man/man3/capgetp.3
+lib/libcap.so.1.10
+lib/libcap.so.1
+lib/libcap.so
+sbin/getpcaps
+sbin/setpcaps
+sbin/execcap
+sbin/sucap
+##
+## libusb-0.1.7
+##
+#usr/bin/libusb-config
+#usr/include/usb.h
+usr/lib/libusb-0.1.so.4
+usr/lib/libusb-0.1.so.4.3.0
+#usr/lib/libusb.a
+#usr/lib/libusb.la
+usr/lib/libusb.so
+##
+## linux-atm-2.4.1
+##
+#etc/atmsigd.conf
+#etc/hosts.atm
+usr/bin/aread
+usr/bin/atmdiag
+#usr/bin/atmdump
+#usr/bin/awrite
+#usr/bin/saaldump
+#usr/bin/sonetdiag
+#usr/bin/ttcp_atm
+#usr/include/atm.h
+#usr/include/atmarp.h
+#usr/include/atmarpd.h
+#usr/include/atmd.h
+#usr/include/atmsap.h
+#usr/lib/libatm.a
+#usr/lib/libatm.la
+usr/lib/libatm.so
+usr/lib/libatm.so.1
+usr/lib/libatm.so.1.0.0
+#usr/sbin/atmaddr
+usr/sbin/atmarp
+usr/sbin/atmarpd
+usr/sbin/atmloop
+usr/sbin/atmsigd
+usr/sbin/atmtcp
+#usr/sbin/bus
+#usr/sbin/enitune
+#usr/sbin/esi
+#usr/sbin/ilmid
+#usr/sbin/lecs
+#usr/sbin/les
+#usr/sbin/mpcd
+#usr/sbin/zeppelin
+#usr/sbin/zntune
+#usr/share/man/man4/atmsigd.conf.4
+#usr/share/man/man7/qos.7
+#usr/share/man/man7/sap.7
+#usr/share/man/man8/atmaddr.8
+#usr/share/man/man8/atmarp.8
+#usr/share/man/man8/atmarpd.8
+#usr/share/man/man8/atmdiag.8
+#usr/share/man/man8/atmdump.8
+#usr/share/man/man8/atmloop.8
+#usr/share/man/man8/atmsigd.8
+#usr/share/man/man8/atmtcp.8
+#usr/share/man/man8/bus.8
+#usr/share/man/man8/esi.8
+#usr/share/man/man8/lecs.8
+#usr/share/man/man8/les.8
+#usr/share/man/man8/mpcd.8
+#usr/share/man/man8/zeppelin.8
+##
+## openssl-0.9.7i
+##
+#etc/ssl
+#etc/ssl/certs
+#etc/ssl/misc
+#etc/ssl/misc/CA.pl
+#etc/ssl/misc/CA.sh
+#etc/ssl/misc/c_hash
+#etc/ssl/misc/c_info
+#etc/ssl/misc/c_issuer
+#etc/ssl/misc/c_name
+etc/ssl/openssl.cnf
+#etc/ssl/private
+#usr/bin/c_rehash
+usr/bin/openssl
+#usr/bin/openssl_fips_fingerprint
+#usr/include/openssl
+#usr/include/openssl/aes.h
+#usr/include/openssl/asn1.h
+#usr/include/openssl/asn1_mac.h
+#usr/include/openssl/asn1t.h
+#usr/include/openssl/bio.h
+#usr/include/openssl/blowfish.h
+#usr/include/openssl/bn.h
+#usr/include/openssl/buffer.h
+#usr/include/openssl/cast.h
+#usr/include/openssl/comp.h
+#usr/include/openssl/conf.h
+#usr/include/openssl/conf_api.h
+#usr/include/openssl/crypto.h
+#usr/include/openssl/des.h
+#usr/include/openssl/des_old.h
+#usr/include/openssl/dh.h
+#usr/include/openssl/dsa.h
+#usr/include/openssl/dso.h
+#usr/include/openssl/e_os2.h
+#usr/include/openssl/ebcdic.h
+#usr/include/openssl/engine.h
+#usr/include/openssl/err.h
+#usr/include/openssl/evp.h
+#usr/include/openssl/fips.h
+#usr/include/openssl/fips_rand.h
+#usr/include/openssl/fips_sha.h
+#usr/include/openssl/hmac.h
+#usr/include/openssl/krb5_asn.h
+#usr/include/openssl/kssl.h
+#usr/include/openssl/lhash.h
+#usr/include/openssl/md2.h
+#usr/include/openssl/md4.h
+#usr/include/openssl/md5.h
+#usr/include/openssl/obj_mac.h
+#usr/include/openssl/objects.h
+#usr/include/openssl/ocsp.h
+#usr/include/openssl/opensslconf.h
+#usr/include/openssl/opensslv.h
+#usr/include/openssl/ossl_typ.h
+#usr/include/openssl/pem.h
+#usr/include/openssl/pem2.h
+#usr/include/openssl/pkcs12.h
+#usr/include/openssl/pkcs7.h
+#usr/include/openssl/rand.h
+#usr/include/openssl/rc2.h
+#usr/include/openssl/rc4.h
+#usr/include/openssl/ripemd.h
+#usr/include/openssl/rsa.h
+#usr/include/openssl/safestack.h
+#usr/include/openssl/sha.h
+#usr/include/openssl/ssl.h
+#usr/include/openssl/ssl2.h
+#usr/include/openssl/ssl23.h
+#usr/include/openssl/ssl3.h
+#usr/include/openssl/stack.h
+#usr/include/openssl/symhacks.h
+#usr/include/openssl/tls1.h
+#usr/include/openssl/tmdiff.h
+#usr/include/openssl/txt_db.h
+#usr/include/openssl/ui.h
+#usr/include/openssl/ui_compat.h
+#usr/include/openssl/x509.h
+#usr/include/openssl/x509_vfy.h
+#usr/include/openssl/x509v3.h
+#usr/lib/libcrypto.a
+#usr/lib/libcrypto.a.sha1
+usr/lib/libcrypto.so
+usr/lib/libcrypto.so.0
+usr/lib/libcrypto.so.0.9.7
+#usr/lib/libcrypto.so.0.9.7.sha1
+#usr/lib/libssl.a
+usr/lib/libssl.so
+usr/lib/libssl.so.0
+usr/lib/libssl.so.0.9.7
+#usr/lib/pkgconfig
+#usr/lib/pkgconfig/openssl.pc
+#usr/share/man/man1/CA.pl.1
+#usr/share/man/man1/asn1parse.1
+#usr/share/man/man1/ca.1
+#usr/share/man/man1/ciphers.1
+#usr/share/man/man1/crl.1
+#usr/share/man/man1/crl2pkcs7.1
+#usr/share/man/man1/dgst.1
+#usr/share/man/man1/dhparam.1
+#usr/share/man/man1/dsa.1
+#usr/share/man/man1/dsaparam.1
+#usr/share/man/man1/enc.1
+#usr/share/man/man1/errstr.1
+#usr/share/man/man1/gendsa.1
+#usr/share/man/man1/genrsa.1
+#usr/share/man/man1/md2.1
+#usr/share/man/man1/md4.1
+#usr/share/man/man1/md5.1
+#usr/share/man/man1/mdc2.1
+#usr/share/man/man1/nseq.1
+#usr/share/man/man1/ocsp.1
+#usr/share/man/man1/openssl.1
+#usr/share/man/man1/pkcs12.1
+#usr/share/man/man1/pkcs7.1
+#usr/share/man/man1/pkcs8.1
+#usr/share/man/man1/rand.1
+#usr/share/man/man1/req.1
+#usr/share/man/man1/ripemd160.1
+#usr/share/man/man1/rsa.1
+#usr/share/man/man1/rsautl.1
+#usr/share/man/man1/s_client.1
+#usr/share/man/man1/s_server.1
+#usr/share/man/man1/s_time.1
+#usr/share/man/man1/sess_id.1
+#usr/share/man/man1/sha.1
+#usr/share/man/man1/sha1.1
+#usr/share/man/man1/smime.1
+#usr/share/man/man1/speed.1
+#usr/share/man/man1/spkac.1
+#usr/share/man/man1/verify.1
+#usr/share/man/man1/version.1
+#usr/share/man/man1/x509.1
+#usr/share/man/man3/ASN1_OBJECT_free.3
+#usr/share/man/man3/ASN1_OBJECT_new.3
+#usr/share/man/man3/ASN1_STRING_cmp.3
+#usr/share/man/man3/ASN1_STRING_data.3
+#usr/share/man/man3/ASN1_STRING_dup.3
+#usr/share/man/man3/ASN1_STRING_free.3
+#usr/share/man/man3/ASN1_STRING_length.3
+#usr/share/man/man3/ASN1_STRING_length_set.3
+#usr/share/man/man3/ASN1_STRING_new.3
+#usr/share/man/man3/ASN1_STRING_print_ex.3
+#usr/share/man/man3/ASN1_STRING_print_ex_fp.3
+#usr/share/man/man3/ASN1_STRING_set.3
+#usr/share/man/man3/ASN1_STRING_type.3
+#usr/share/man/man3/ASN1_STRING_type_new.3
+#usr/share/man/man3/BF_cbc_encrypt.3
+#usr/share/man/man3/BF_cfb64_encrypt.3
+#usr/share/man/man3/BF_decrypt.3
+#usr/share/man/man3/BF_ecb_encrypt.3
+#usr/share/man/man3/BF_encrypt.3
+#usr/share/man/man3/BF_ofb64_encrypt.3
+#usr/share/man/man3/BF_options.3
+#usr/share/man/man3/BF_set_key.3
+#usr/share/man/man3/BIO_append_filename.3
+#usr/share/man/man3/BIO_callback_ctrl.3
+#usr/share/man/man3/BIO_ctrl.3
+#usr/share/man/man3/BIO_ctrl_get_read_request.3
+#usr/share/man/man3/BIO_ctrl_get_write_guarantee.3
+#usr/share/man/man3/BIO_ctrl_pending.3
+#usr/share/man/man3/BIO_ctrl_reset_read_request.3
+#usr/share/man/man3/BIO_ctrl_wpending.3
+#usr/share/man/man3/BIO_debug_callback.3
+#usr/share/man/man3/BIO_destroy_bio_pair.3
+#usr/share/man/man3/BIO_do_accept.3
+#usr/share/man/man3/BIO_do_connect.3
+#usr/share/man/man3/BIO_eof.3
+#usr/share/man/man3/BIO_f_base64.3
+#usr/share/man/man3/BIO_f_buffer.3
+#usr/share/man/man3/BIO_f_cipher.3
+#usr/share/man/man3/BIO_f_md.3
+#usr/share/man/man3/BIO_f_null.3
+#usr/share/man/man3/BIO_f_ssl.3
+#usr/share/man/man3/BIO_find_type.3
+#usr/share/man/man3/BIO_flush.3
+#usr/share/man/man3/BIO_free.3
+#usr/share/man/man3/BIO_free_all.3
+#usr/share/man/man3/BIO_get_accept_port.3
+#usr/share/man/man3/BIO_get_bind_mode.3
+#usr/share/man/man3/BIO_get_callback.3
+#usr/share/man/man3/BIO_get_callback_arg.3
+#usr/share/man/man3/BIO_get_cipher_ctx.3
+#usr/share/man/man3/BIO_get_cipher_status.3
+#usr/share/man/man3/BIO_get_close.3
+#usr/share/man/man3/BIO_get_conn_hostname.3
+#usr/share/man/man3/BIO_get_conn_int_port.3
+#usr/share/man/man3/BIO_get_conn_ip.3
+#usr/share/man/man3/BIO_get_conn_port.3
+#usr/share/man/man3/BIO_get_fd.3
+#usr/share/man/man3/BIO_get_fp.3
+#usr/share/man/man3/BIO_get_info_callback.3
+#usr/share/man/man3/BIO_get_md.3
+#usr/share/man/man3/BIO_get_md_ctx.3
+#usr/share/man/man3/BIO_get_mem_data.3
+#usr/share/man/man3/BIO_get_mem_ptr.3
+#usr/share/man/man3/BIO_get_num_renegotiates.3
+#usr/share/man/man3/BIO_get_read_request.3
+#usr/share/man/man3/BIO_get_retry_BIO.3
+#usr/share/man/man3/BIO_get_retry_reason.3
+#usr/share/man/man3/BIO_get_ssl.3
+#usr/share/man/man3/BIO_get_write_buf_size.3
+#usr/share/man/man3/BIO_get_write_guarantee.3
+#usr/share/man/man3/BIO_gets.3
+#usr/share/man/man3/BIO_int_ctrl.3
+#usr/share/man/man3/BIO_make_bio_pair.3
+#usr/share/man/man3/BIO_new.3
+#usr/share/man/man3/BIO_new_bio_pair.3
+#usr/share/man/man3/BIO_new_buffer_ssl_connect.3
+#usr/share/man/man3/BIO_new_fd.3
+#usr/share/man/man3/BIO_new_file.3
+#usr/share/man/man3/BIO_new_fp.3
+#usr/share/man/man3/BIO_new_mem_buf.3
+#usr/share/man/man3/BIO_new_socket.3
+#usr/share/man/man3/BIO_new_ssl.3
+#usr/share/man/man3/BIO_new_ssl_connect.3
+#usr/share/man/man3/BIO_next.3
+#usr/share/man/man3/BIO_pending.3
+#usr/share/man/man3/BIO_pop.3
+#usr/share/man/man3/BIO_ptr_ctrl.3
+#usr/share/man/man3/BIO_push.3
+#usr/share/man/man3/BIO_puts.3
+#usr/share/man/man3/BIO_read.3
+#usr/share/man/man3/BIO_read_filename.3
+#usr/share/man/man3/BIO_reset.3
+#usr/share/man/man3/BIO_retry_type.3
+#usr/share/man/man3/BIO_rw_filename.3
+#usr/share/man/man3/BIO_s_accept.3
+#usr/share/man/man3/BIO_s_bio.3
+#usr/share/man/man3/BIO_s_connect.3
+#usr/share/man/man3/BIO_s_fd.3
+#usr/share/man/man3/BIO_s_file.3
+#usr/share/man/man3/BIO_s_mem.3
+#usr/share/man/man3/BIO_s_null.3
+#usr/share/man/man3/BIO_s_socket.3
+#usr/share/man/man3/BIO_seek.3
+#usr/share/man/man3/BIO_set.3
+#usr/share/man/man3/BIO_set_accept_bios.3
+#usr/share/man/man3/BIO_set_accept_port.3
+#usr/share/man/man3/BIO_set_bind_mode.3
+#usr/share/man/man3/BIO_set_callback.3
+#usr/share/man/man3/BIO_set_callback_arg.3
+#usr/share/man/man3/BIO_set_cipher.3
+#usr/share/man/man3/BIO_set_close.3
+#usr/share/man/man3/BIO_set_conn_hostname.3
+#usr/share/man/man3/BIO_set_conn_int_port.3
+#usr/share/man/man3/BIO_set_conn_ip.3
+#usr/share/man/man3/BIO_set_conn_port.3
+#usr/share/man/man3/BIO_set_fd.3
+#usr/share/man/man3/BIO_set_fp.3
+#usr/share/man/man3/BIO_set_info_callback.3
+#usr/share/man/man3/BIO_set_md.3
+#usr/share/man/man3/BIO_set_mem_buf.3
+#usr/share/man/man3/BIO_set_mem_eof_return.3
+#usr/share/man/man3/BIO_set_nbio.3
+#usr/share/man/man3/BIO_set_nbio_accept.3
+#usr/share/man/man3/BIO_set_ssl.3
+#usr/share/man/man3/BIO_set_ssl_mode.3
+#usr/share/man/man3/BIO_set_ssl_renegotiate_bytes.3
+#usr/share/man/man3/BIO_set_ssl_renegotiate_timeout.3
+#usr/share/man/man3/BIO_set_write_buf_size.3
+#usr/share/man/man3/BIO_should_io_special.3
+#usr/share/man/man3/BIO_should_read.3
+#usr/share/man/man3/BIO_should_retry.3
+#usr/share/man/man3/BIO_should_write.3
+#usr/share/man/man3/BIO_shutdown_wr.3
+#usr/share/man/man3/BIO_ssl_copy_session_id.3
+#usr/share/man/man3/BIO_ssl_shutdown.3
+#usr/share/man/man3/BIO_tell.3
+#usr/share/man/man3/BIO_vfree.3
+#usr/share/man/man3/BIO_wpending.3
+#usr/share/man/man3/BIO_write.3
+#usr/share/man/man3/BIO_write_filename.3
+#usr/share/man/man3/BN_CTX_end.3
+#usr/share/man/man3/BN_CTX_free.3
+#usr/share/man/man3/BN_CTX_get.3
+#usr/share/man/man3/BN_CTX_init.3
+#usr/share/man/man3/BN_CTX_new.3
+#usr/share/man/man3/BN_CTX_start.3
+#usr/share/man/man3/BN_MONT_CTX_copy.3
+#usr/share/man/man3/BN_MONT_CTX_free.3
+#usr/share/man/man3/BN_MONT_CTX_init.3
+#usr/share/man/man3/BN_MONT_CTX_new.3
+#usr/share/man/man3/BN_MONT_CTX_set.3
+#usr/share/man/man3/BN_RECP_CTX_free.3
+#usr/share/man/man3/BN_RECP_CTX_init.3
+#usr/share/man/man3/BN_RECP_CTX_new.3
+#usr/share/man/man3/BN_RECP_CTX_set.3
+#usr/share/man/man3/BN_add.3
+#usr/share/man/man3/BN_add_word.3
+#usr/share/man/man3/BN_bin2bn.3
+#usr/share/man/man3/BN_bn2bin.3
+#usr/share/man/man3/BN_bn2dec.3
+#usr/share/man/man3/BN_bn2hex.3
+#usr/share/man/man3/BN_bn2mpi.3
+#usr/share/man/man3/BN_clear.3
+#usr/share/man/man3/BN_clear_bit.3
+#usr/share/man/man3/BN_clear_free.3
+#usr/share/man/man3/BN_cmp.3
+#usr/share/man/man3/BN_copy.3
+#usr/share/man/man3/BN_dec2bn.3
+#usr/share/man/man3/BN_div.3
+#usr/share/man/man3/BN_div_recp.3
+#usr/share/man/man3/BN_div_word.3
+#usr/share/man/man3/BN_dup.3
+#usr/share/man/man3/BN_exp.3
+#usr/share/man/man3/BN_free.3
+#usr/share/man/man3/BN_from_montgomery.3
+#usr/share/man/man3/BN_gcd.3
+#usr/share/man/man3/BN_generate_prime.3
+#usr/share/man/man3/BN_get_word.3
+#usr/share/man/man3/BN_hex2bn.3
+#usr/share/man/man3/BN_init.3
+#usr/share/man/man3/BN_is_bit_set.3
+#usr/share/man/man3/BN_is_odd.3
+#usr/share/man/man3/BN_is_one.3
+#usr/share/man/man3/BN_is_prime.3
+#usr/share/man/man3/BN_is_prime_fasttest.3
+#usr/share/man/man3/BN_is_word.3
+#usr/share/man/man3/BN_is_zero.3
+#usr/share/man/man3/BN_lshift.3
+#usr/share/man/man3/BN_lshift1.3
+#usr/share/man/man3/BN_mask_bits.3
+#usr/share/man/man3/BN_mod.3
+#usr/share/man/man3/BN_mod_add.3
+#usr/share/man/man3/BN_mod_exp.3
+#usr/share/man/man3/BN_mod_inverse.3
+#usr/share/man/man3/BN_mod_mul.3
+#usr/share/man/man3/BN_mod_mul_montgomery.3
+#usr/share/man/man3/BN_mod_mul_reciprocal.3
+#usr/share/man/man3/BN_mod_sqr.3
+#usr/share/man/man3/BN_mod_sub.3
+#usr/share/man/man3/BN_mod_word.3
+#usr/share/man/man3/BN_mpi2bn.3
+#usr/share/man/man3/BN_mul.3
+#usr/share/man/man3/BN_mul_word.3
+#usr/share/man/man3/BN_new.3
+#usr/share/man/man3/BN_nnmod.3
+#usr/share/man/man3/BN_num_bits.3
+#usr/share/man/man3/BN_num_bits_word.3
+#usr/share/man/man3/BN_num_bytes.3
+#usr/share/man/man3/BN_one.3
+#usr/share/man/man3/BN_print.3
+#usr/share/man/man3/BN_print_fp.3
+#usr/share/man/man3/BN_pseudo_rand.3
+#usr/share/man/man3/BN_rand.3
+#usr/share/man/man3/BN_rshift.3
+#usr/share/man/man3/BN_rshift1.3
+#usr/share/man/man3/BN_set_bit.3
+#usr/share/man/man3/BN_set_word.3
+#usr/share/man/man3/BN_sqr.3
+#usr/share/man/man3/BN_sub.3
+#usr/share/man/man3/BN_sub_word.3
+#usr/share/man/man3/BN_swap.3
+#usr/share/man/man3/BN_to_montgomery.3
+#usr/share/man/man3/BN_ucmp.3
+#usr/share/man/man3/BN_value_one.3
+#usr/share/man/man3/BN_zero.3
+#usr/share/man/man3/BUF_MEM_free.3
+#usr/share/man/man3/BUF_MEM_grow.3
+#usr/share/man/man3/BUF_MEM_new.3
+#usr/share/man/man3/BUF_strdup.3
+#usr/share/man/man3/CONF_modules_free.3
+#usr/share/man/man3/CONF_modules_load.3
+#usr/share/man/man3/CONF_modules_load_file.3
+#usr/share/man/man3/CONF_modules_unload.3
+#usr/share/man/man3/CRYPTO_destroy_dynlockid.3
+#usr/share/man/man3/CRYPTO_get_ex_data.3
+#usr/share/man/man3/CRYPTO_get_new_dynlockid.3
+#usr/share/man/man3/CRYPTO_lock.3
+#usr/share/man/man3/CRYPTO_num_locks.3
+#usr/share/man/man3/CRYPTO_set_dynlock_create_callback.3
+#usr/share/man/man3/CRYPTO_set_dynlock_destroy_callback.3
+#usr/share/man/man3/CRYPTO_set_dynlock_lock_callback.3
+#usr/share/man/man3/CRYPTO_set_ex_data.3
+#usr/share/man/man3/CRYPTO_set_id_callback.3
+#usr/share/man/man3/CRYPTO_set_locking_callback.3
+#usr/share/man/man3/DES_cbc_cksum.3
+#usr/share/man/man3/DES_cfb64_encrypt.3
+#usr/share/man/man3/DES_cfb_encrypt.3
+#usr/share/man/man3/DES_crypt.3
+#usr/share/man/man3/DES_ecb2_encrypt.3
+#usr/share/man/man3/DES_ecb3_encrypt.3
+#usr/share/man/man3/DES_ecb_encrypt.3
+#usr/share/man/man3/DES_ede2_cbc_encrypt.3
+#usr/share/man/man3/DES_ede2_cfb64_encrypt.3
+#usr/share/man/man3/DES_ede2_ofb64_encrypt.3
+#usr/share/man/man3/DES_ede3_cbc_encrypt.3
+#usr/share/man/man3/DES_ede3_cbcm_encrypt.3
+#usr/share/man/man3/DES_ede3_cfb64_encrypt.3
+#usr/share/man/man3/DES_ede3_ofb64_encrypt.3
+#usr/share/man/man3/DES_enc_read.3
+#usr/share/man/man3/DES_enc_write.3
+#usr/share/man/man3/DES_fcrypt.3
+#usr/share/man/man3/DES_is_weak_key.3
+#usr/share/man/man3/DES_key_sched.3
+#usr/share/man/man3/DES_ncbc_encrypt.3
+#usr/share/man/man3/DES_ofb64_encrypt.3
+#usr/share/man/man3/DES_ofb_encrypt.3
+#usr/share/man/man3/DES_pcbc_encrypt.3
+#usr/share/man/man3/DES_quad_cksum.3
+#usr/share/man/man3/DES_random_key.3
+#usr/share/man/man3/DES_set_key.3
+#usr/share/man/man3/DES_set_key_checked.3
+#usr/share/man/man3/DES_set_key_unchecked.3
+#usr/share/man/man3/DES_set_odd_parity.3
+#usr/share/man/man3/DES_string_to_2keys.3
+#usr/share/man/man3/DES_string_to_key.3
+#usr/share/man/man3/DES_xcbc_encrypt.3
+#usr/share/man/man3/DH_OpenSSL.3
+#usr/share/man/man3/DH_check.3
+#usr/share/man/man3/DH_compute_key.3
+#usr/share/man/man3/DH_free.3
+#usr/share/man/man3/DH_generate_key.3
+#usr/share/man/man3/DH_generate_parameters.3
+#usr/share/man/man3/DH_get_default_method.3
+#usr/share/man/man3/DH_get_ex_data.3
+#usr/share/man/man3/DH_get_ex_new_index.3
+#usr/share/man/man3/DH_new.3
+#usr/share/man/man3/DH_new_method.3
+#usr/share/man/man3/DH_set_default_method.3
+#usr/share/man/man3/DH_set_ex_data.3
+#usr/share/man/man3/DH_set_method.3
+#usr/share/man/man3/DH_size.3
+#usr/share/man/man3/DHparams_print.3
+#usr/share/man/man3/DHparams_print_fp.3
+#usr/share/man/man3/DSA_OpenSSL.3
+#usr/share/man/man3/DSA_SIG_free.3
+#usr/share/man/man3/DSA_SIG_new.3
+#usr/share/man/man3/DSA_do_sign.3
+#usr/share/man/man3/DSA_do_verify.3
+#usr/share/man/man3/DSA_dup_DH.3
+#usr/share/man/man3/DSA_free.3
+#usr/share/man/man3/DSA_generate_key.3
+#usr/share/man/man3/DSA_generate_parameters.3
+#usr/share/man/man3/DSA_get_default_method.3
+#usr/share/man/man3/DSA_get_ex_data.3
+#usr/share/man/man3/DSA_get_ex_new_index.3
+#usr/share/man/man3/DSA_new.3
+#usr/share/man/man3/DSA_new_method.3
+#usr/share/man/man3/DSA_print.3
+#usr/share/man/man3/DSA_print_fp.3
+#usr/share/man/man3/DSA_set_default_method.3
+#usr/share/man/man3/DSA_set_ex_data.3
+#usr/share/man/man3/DSA_set_method.3
+#usr/share/man/man3/DSA_sign.3
+#usr/share/man/man3/DSA_sign_setup.3
+#usr/share/man/man3/DSA_size.3
+#usr/share/man/man3/DSA_verify.3
+#usr/share/man/man3/DSAparams_print.3
+#usr/share/man/man3/DSAparams_print_fp.3
+#usr/share/man/man3/ERR_GET_FUNC.3
+#usr/share/man/man3/ERR_GET_LIB.3
+#usr/share/man/man3/ERR_GET_REASON.3
+#usr/share/man/man3/ERR_PACK.3
+#usr/share/man/man3/ERR_add_error_data.3
+#usr/share/man/man3/ERR_clear_error.3
+#usr/share/man/man3/ERR_error_string.3
+#usr/share/man/man3/ERR_error_string_n.3
+#usr/share/man/man3/ERR_free_strings.3
+#usr/share/man/man3/ERR_func_error_string.3
+#usr/share/man/man3/ERR_get_error.3
+#usr/share/man/man3/ERR_get_error_line.3
+#usr/share/man/man3/ERR_get_error_line_data.3
+#usr/share/man/man3/ERR_get_next_error_library.3
+#usr/share/man/man3/ERR_lib_error_string.3
+#usr/share/man/man3/ERR_load_UI_strings.3
+#usr/share/man/man3/ERR_load_crypto_strings.3
+#usr/share/man/man3/ERR_load_strings.3
+#usr/share/man/man3/ERR_peek_error.3
+#usr/share/man/man3/ERR_peek_error_line.3
+#usr/share/man/man3/ERR_peek_error_line_data.3
+#usr/share/man/man3/ERR_peek_last_error.3
+#usr/share/man/man3/ERR_peek_last_error_line.3
+#usr/share/man/man3/ERR_peek_last_error_line_data.3
+#usr/share/man/man3/ERR_print_errors.3
+#usr/share/man/man3/ERR_print_errors_fp.3
+#usr/share/man/man3/ERR_put_error.3
+#usr/share/man/man3/ERR_reason_error_string.3
+#usr/share/man/man3/ERR_remove_state.3
+#usr/share/man/man3/EVP_BytesToKey.3
+#usr/share/man/man3/EVP_CIPHER_CTX_block_size.3
+#usr/share/man/man3/EVP_CIPHER_CTX_cipher.3
+#usr/share/man/man3/EVP_CIPHER_CTX_cleanup.3
+#usr/share/man/man3/EVP_CIPHER_CTX_ctrl.3
+#usr/share/man/man3/EVP_CIPHER_CTX_flags.3
+#usr/share/man/man3/EVP_CIPHER_CTX_get_app_data.3
+#usr/share/man/man3/EVP_CIPHER_CTX_init.3
+#usr/share/man/man3/EVP_CIPHER_CTX_iv_length.3
+#usr/share/man/man3/EVP_CIPHER_CTX_key_length.3
+#usr/share/man/man3/EVP_CIPHER_CTX_mode.3
+#usr/share/man/man3/EVP_CIPHER_CTX_nid.3
+#usr/share/man/man3/EVP_CIPHER_CTX_set_app_data.3
+#usr/share/man/man3/EVP_CIPHER_CTX_set_key_length.3
+#usr/share/man/man3/EVP_CIPHER_CTX_set_padding.3
+#usr/share/man/man3/EVP_CIPHER_CTX_type.3
+#usr/share/man/man3/EVP_CIPHER_asn1_to_param.3
+#usr/share/man/man3/EVP_CIPHER_block_size.3
+#usr/share/man/man3/EVP_CIPHER_flags.3
+#usr/share/man/man3/EVP_CIPHER_iv_length.3
+#usr/share/man/man3/EVP_CIPHER_key_length.3
+#usr/share/man/man3/EVP_CIPHER_mode.3
+#usr/share/man/man3/EVP_CIPHER_nid.3
+#usr/share/man/man3/EVP_CIPHER_param_to_asn1.3
+#usr/share/man/man3/EVP_CIPHER_type.3
+#usr/share/man/man3/EVP_CipherFinal.3
+#usr/share/man/man3/EVP_CipherFinal_ex.3
+#usr/share/man/man3/EVP_CipherInit.3
+#usr/share/man/man3/EVP_CipherInit_ex.3
+#usr/share/man/man3/EVP_CipherUpdate.3
+#usr/share/man/man3/EVP_DecryptFinal.3
+#usr/share/man/man3/EVP_DecryptFinal_ex.3
+#usr/share/man/man3/EVP_DecryptInit.3
+#usr/share/man/man3/EVP_DecryptInit_ex.3
+#usr/share/man/man3/EVP_DecryptUpdate.3
+#usr/share/man/man3/EVP_DigestFinal_ex.3
+#usr/share/man/man3/EVP_DigestInit.3
+#usr/share/man/man3/EVP_DigestInit_ex.3
+#usr/share/man/man3/EVP_DigestUpdate.3
+#usr/share/man/man3/EVP_EncryptFinal.3
+#usr/share/man/man3/EVP_EncryptFinal_ex.3
+#usr/share/man/man3/EVP_EncryptInit.3
+#usr/share/man/man3/EVP_EncryptInit_ex.3
+#usr/share/man/man3/EVP_EncryptUpdate.3
+#usr/share/man/man3/EVP_MAX_MD_SIZE.3
+#usr/share/man/man3/EVP_MD_CTX_block_size.3
+#usr/share/man/man3/EVP_MD_CTX_cleanup.3
+#usr/share/man/man3/EVP_MD_CTX_copy.3
+#usr/share/man/man3/EVP_MD_CTX_copy_ex.3
+#usr/share/man/man3/EVP_MD_CTX_create.3
+#usr/share/man/man3/EVP_MD_CTX_destroy.3
+#usr/share/man/man3/EVP_MD_CTX_init.3
+#usr/share/man/man3/EVP_MD_CTX_md.3
+#usr/share/man/man3/EVP_MD_CTX_size.3
+#usr/share/man/man3/EVP_MD_CTX_type.3
+#usr/share/man/man3/EVP_MD_block_size.3
+#usr/share/man/man3/EVP_MD_pkey_type.3
+#usr/share/man/man3/EVP_MD_size.3
+#usr/share/man/man3/EVP_MD_type.3
+#usr/share/man/man3/EVP_OpenFinal.3
+#usr/share/man/man3/EVP_OpenInit.3
+#usr/share/man/man3/EVP_OpenUpdate.3
+#usr/share/man/man3/EVP_PKEY_assign_DH.3
+#usr/share/man/man3/EVP_PKEY_assign_DSA.3
+#usr/share/man/man3/EVP_PKEY_assign_EC_KEY.3
+#usr/share/man/man3/EVP_PKEY_assign_RSA.3
+#usr/share/man/man3/EVP_PKEY_free.3
+#usr/share/man/man3/EVP_PKEY_get1_DH.3
+#usr/share/man/man3/EVP_PKEY_get1_DSA.3
+#usr/share/man/man3/EVP_PKEY_get1_EC_KEY.3
+#usr/share/man/man3/EVP_PKEY_get1_RSA.3
+#usr/share/man/man3/EVP_PKEY_new.3
+#usr/share/man/man3/EVP_PKEY_set1_DH.3
+#usr/share/man/man3/EVP_PKEY_set1_DSA.3
+#usr/share/man/man3/EVP_PKEY_set1_EC_KEY.3
+#usr/share/man/man3/EVP_PKEY_set1_RSA.3
+#usr/share/man/man3/EVP_PKEY_type.3
+#usr/share/man/man3/EVP_SealFinal.3
+#usr/share/man/man3/EVP_SealInit.3
+#usr/share/man/man3/EVP_SealUpdate.3
+#usr/share/man/man3/EVP_SignFinal.3
+#usr/share/man/man3/EVP_SignInit.3
+#usr/share/man/man3/EVP_SignUpdate.3
+#usr/share/man/man3/EVP_VerifyFinal.3
+#usr/share/man/man3/EVP_VerifyInit.3
+#usr/share/man/man3/EVP_VerifyUpdate.3
+#usr/share/man/man3/EVP_dss.3
+#usr/share/man/man3/EVP_dss1.3
+#usr/share/man/man3/EVP_get_cipherbyname.3
+#usr/share/man/man3/EVP_get_cipherbynid.3
+#usr/share/man/man3/EVP_get_cipherbyobj.3
+#usr/share/man/man3/EVP_get_digestbyname.3
+#usr/share/man/man3/EVP_get_digestbynid.3
+#usr/share/man/man3/EVP_get_digestbyobj.3
+#usr/share/man/man3/EVP_md2.3
+#usr/share/man/man3/EVP_md5.3
+#usr/share/man/man3/EVP_md_null.3
+#usr/share/man/man3/EVP_mdc2.3
+#usr/share/man/man3/EVP_ripemd160.3
+#usr/share/man/man3/EVP_sha.3
+#usr/share/man/man3/EVP_sha1.3
+#usr/share/man/man3/HMAC.3
+#usr/share/man/man3/HMAC_Final.3
+#usr/share/man/man3/HMAC_Init.3
+#usr/share/man/man3/HMAC_Update.3
+#usr/share/man/man3/HMAC_cleanup.3
+#usr/share/man/man3/MD2.3
+#usr/share/man/man3/MD2_Final.3
+#usr/share/man/man3/MD2_Init.3
+#usr/share/man/man3/MD2_Update.3
+#usr/share/man/man3/MD4.3
+#usr/share/man/man3/MD4_Final.3
+#usr/share/man/man3/MD4_Init.3
+#usr/share/man/man3/MD4_Update.3
+#usr/share/man/man3/MD5.3
+#usr/share/man/man3/MD5_Final.3
+#usr/share/man/man3/MD5_Init.3
+#usr/share/man/man3/MD5_Update.3
+#usr/share/man/man3/MDC2.3
+#usr/share/man/man3/MDC2_Final.3
+#usr/share/man/man3/MDC2_Init.3
+#usr/share/man/man3/MDC2_Update.3
+#usr/share/man/man3/OBJ_cleanup.3
+#usr/share/man/man3/OBJ_cmp.3
+#usr/share/man/man3/OBJ_create.3
+#usr/share/man/man3/OBJ_dup.3
+#usr/share/man/man3/OBJ_ln2nid.3
+#usr/share/man/man3/OBJ_nid2ln.3
+#usr/share/man/man3/OBJ_nid2obj.3
+#usr/share/man/man3/OBJ_nid2sn.3
+#usr/share/man/man3/OBJ_obj2nid.3
+#usr/share/man/man3/OBJ_obj2txt.3
+#usr/share/man/man3/OBJ_sn2nid.3
+#usr/share/man/man3/OBJ_txt2nid.3
+#usr/share/man/man3/OBJ_txt2obj.3
+#usr/share/man/man3/OPENSSL_VERSION_NUMBER.3
+#usr/share/man/man3/OPENSSL_config.3
+#usr/share/man/man3/OPENSSL_load_builtin_modules.3
+#usr/share/man/man3/OPENSSL_no_config.3
+#usr/share/man/man3/OpenSSL_add_all_algorithms.3
+#usr/share/man/man3/OpenSSL_add_all_ciphers.3
+#usr/share/man/man3/OpenSSL_add_all_digests.3
+#usr/share/man/man3/OpenSSL_add_ssl_algorithms.3
+#usr/share/man/man3/PEM.3
+#usr/share/man/man3/PKCS12_create.3
+#usr/share/man/man3/PKCS12_parse.3
+#usr/share/man/man3/PKCS7_decrypt.3
+#usr/share/man/man3/PKCS7_encrypt.3
+#usr/share/man/man3/PKCS7_sign.3
+#usr/share/man/man3/PKCS7_verify.3
+#usr/share/man/man3/RAND_SSLeay.3
+#usr/share/man/man3/RAND_add.3
+#usr/share/man/man3/RAND_bytes.3
+#usr/share/man/man3/RAND_cleanup.3
+#usr/share/man/man3/RAND_egd.3
+#usr/share/man/man3/RAND_event.3
+#usr/share/man/man3/RAND_file_name.3
+#usr/share/man/man3/RAND_get_rand_method.3
+#usr/share/man/man3/RAND_load_file.3
+#usr/share/man/man3/RAND_pseudo_bytes.3
+#usr/share/man/man3/RAND_screen.3
+#usr/share/man/man3/RAND_seed.3
+#usr/share/man/man3/RAND_set_rand_method.3
+#usr/share/man/man3/RAND_status.3
+#usr/share/man/man3/RAND_write_file.3
+#usr/share/man/man3/RC4.3
+#usr/share/man/man3/RC4_set_key.3
+#usr/share/man/man3/RIPEMD160.3
+#usr/share/man/man3/RIPEMD160_Final.3
+#usr/share/man/man3/RIPEMD160_Init.3
+#usr/share/man/man3/RIPEMD160_Update.3
+#usr/share/man/man3/RSA_PKCS1_SSLeay.3
+#usr/share/man/man3/RSA_blinding_off.3
+#usr/share/man/man3/RSA_blinding_on.3
+#usr/share/man/man3/RSA_check_key.3
+#usr/share/man/man3/RSA_flags.3
+#usr/share/man/man3/RSA_free.3
+#usr/share/man/man3/RSA_generate_key.3
+#usr/share/man/man3/RSA_get_default_method.3
+#usr/share/man/man3/RSA_get_ex_data.3
+#usr/share/man/man3/RSA_get_ex_new_index.3
+#usr/share/man/man3/RSA_get_method.3
+#usr/share/man/man3/RSA_new.3
+#usr/share/man/man3/RSA_new_method.3
+#usr/share/man/man3/RSA_null_method.3
+#usr/share/man/man3/RSA_padding_add_PKCS1_OAEP.3
+#usr/share/man/man3/RSA_padding_add_PKCS1_type_1.3
+#usr/share/man/man3/RSA_padding_add_PKCS1_type_2.3
+#usr/share/man/man3/RSA_padding_add_SSLv23.3
+#usr/share/man/man3/RSA_padding_add_none.3
+#usr/share/man/man3/RSA_padding_check_PKCS1_OAEP.3
+#usr/share/man/man3/RSA_padding_check_PKCS1_type_1.3
+#usr/share/man/man3/RSA_padding_check_PKCS1_type_2.3
+#usr/share/man/man3/RSA_padding_check_SSLv23.3
+#usr/share/man/man3/RSA_padding_check_none.3
+#usr/share/man/man3/RSA_print.3
+#usr/share/man/man3/RSA_print_fp.3
+#usr/share/man/man3/RSA_private_decrypt.3
+#usr/share/man/man3/RSA_private_encrypt.3
+#usr/share/man/man3/RSA_public_decrypt.3
+#usr/share/man/man3/RSA_public_encrypt.3
+#usr/share/man/man3/RSA_set_default_method.3
+#usr/share/man/man3/RSA_set_ex_data.3
+#usr/share/man/man3/RSA_set_method.3
+#usr/share/man/man3/RSA_sign.3
+#usr/share/man/man3/RSA_sign_ASN1_OCTET_STRING.3
+#usr/share/man/man3/RSA_size.3
+#usr/share/man/man3/RSA_verify.3
+#usr/share/man/man3/RSA_verify_ASN1_OCTET_STRING.3
+#usr/share/man/man3/SHA1.3
+#usr/share/man/man3/SHA1_Final.3
+#usr/share/man/man3/SHA1_Init.3
+#usr/share/man/man3/SHA1_Update.3
+#usr/share/man/man3/SMIME_read_PKCS7.3
+#usr/share/man/man3/SMIME_write_PKCS7.3
+#usr/share/man/man3/SSL.3
+#usr/share/man/man3/SSL_CIPHER_description.3
+#usr/share/man/man3/SSL_CIPHER_get_bits.3
+#usr/share/man/man3/SSL_CIPHER_get_name.3
+#usr/share/man/man3/SSL_CIPHER_get_version.3
+#usr/share/man/man3/SSL_COMP_add_compression_method.3
+#usr/share/man/man3/SSL_CTX_add_client_CA.3
+#usr/share/man/man3/SSL_CTX_add_extra_chain_cert.3
+#usr/share/man/man3/SSL_CTX_add_session.3
+#usr/share/man/man3/SSL_CTX_callback_ctrl.3
+#usr/share/man/man3/SSL_CTX_check_private_key.3
+#usr/share/man/man3/SSL_CTX_ctrl.3
+#usr/share/man/man3/SSL_CTX_flush_sessions.3
+#usr/share/man/man3/SSL_CTX_free.3
+#usr/share/man/man3/SSL_CTX_get_cert_store.3
+#usr/share/man/man3/SSL_CTX_get_client_CA_list.3
+#usr/share/man/man3/SSL_CTX_get_client_cert_cb.3
+#usr/share/man/man3/SSL_CTX_get_ex_data.3
+#usr/share/man/man3/SSL_CTX_get_ex_new_index.3
+#usr/share/man/man3/SSL_CTX_get_info_callback.3
+#usr/share/man/man3/SSL_CTX_get_max_cert_list.3
+#usr/share/man/man3/SSL_CTX_get_mode.3
+#usr/share/man/man3/SSL_CTX_get_options.3
+#usr/share/man/man3/SSL_CTX_get_quiet_shutdown.3
+#usr/share/man/man3/SSL_CTX_get_session_cache_mode.3
+#usr/share/man/man3/SSL_CTX_get_timeout.3
+#usr/share/man/man3/SSL_CTX_get_verify_callback.3
+#usr/share/man/man3/SSL_CTX_get_verify_depth.3
+#usr/share/man/man3/SSL_CTX_get_verify_mode.3
+#usr/share/man/man3/SSL_CTX_load_verify_locations.3
+#usr/share/man/man3/SSL_CTX_need_tmp_rsa.3
+#usr/share/man/man3/SSL_CTX_new.3
+#usr/share/man/man3/SSL_CTX_remove_session.3
+#usr/share/man/man3/SSL_CTX_sess_accept.3
+#usr/share/man/man3/SSL_CTX_sess_accept_good.3
+#usr/share/man/man3/SSL_CTX_sess_accept_renegotiate.3
+#usr/share/man/man3/SSL_CTX_sess_cache_full.3
+#usr/share/man/man3/SSL_CTX_sess_cb_hits.3
+#usr/share/man/man3/SSL_CTX_sess_connect.3
+#usr/share/man/man3/SSL_CTX_sess_connect_good.3
+#usr/share/man/man3/SSL_CTX_sess_connect_renegotiate.3
+#usr/share/man/man3/SSL_CTX_sess_get_cache_size.3
+#usr/share/man/man3/SSL_CTX_sess_get_get_cb.3
+#usr/share/man/man3/SSL_CTX_sess_get_new_cb.3
+#usr/share/man/man3/SSL_CTX_sess_get_remove_cb.3
+#usr/share/man/man3/SSL_CTX_sess_hits.3
+#usr/share/man/man3/SSL_CTX_sess_misses.3
+#usr/share/man/man3/SSL_CTX_sess_number.3
+#usr/share/man/man3/SSL_CTX_sess_set_cache_size.3
+#usr/share/man/man3/SSL_CTX_sess_set_get_cb.3
+#usr/share/man/man3/SSL_CTX_sess_set_new_cb.3
+#usr/share/man/man3/SSL_CTX_sess_set_remove_cb.3
+#usr/share/man/man3/SSL_CTX_sess_timeouts.3
+#usr/share/man/man3/SSL_CTX_sessions.3
+#usr/share/man/man3/SSL_CTX_set_cert_store.3
+#usr/share/man/man3/SSL_CTX_set_cert_verify_callback.3
+#usr/share/man/man3/SSL_CTX_set_cipher_list.3
+#usr/share/man/man3/SSL_CTX_set_client_CA_list.3
+#usr/share/man/man3/SSL_CTX_set_client_cert_cb.3
+#usr/share/man/man3/SSL_CTX_set_default_passwd_cb.3
+#usr/share/man/man3/SSL_CTX_set_default_passwd_cb_userdata.3
+#usr/share/man/man3/SSL_CTX_set_ex_data.3
+#usr/share/man/man3/SSL_CTX_set_generate_session_id.3
+#usr/share/man/man3/SSL_CTX_set_info_callback.3
+#usr/share/man/man3/SSL_CTX_set_max_cert_list.3
+#usr/share/man/man3/SSL_CTX_set_mode.3
+#usr/share/man/man3/SSL_CTX_set_msg_callback.3
+#usr/share/man/man3/SSL_CTX_set_msg_callback_arg.3
+#usr/share/man/man3/SSL_CTX_set_options.3
+#usr/share/man/man3/SSL_CTX_set_quiet_shutdown.3
+#usr/share/man/man3/SSL_CTX_set_session_cache_mode.3
+#usr/share/man/man3/SSL_CTX_set_session_id_context.3
+#usr/share/man/man3/SSL_CTX_set_ssl_version.3
+#usr/share/man/man3/SSL_CTX_set_timeout.3
+#usr/share/man/man3/SSL_CTX_set_tmp_dh.3
+#usr/share/man/man3/SSL_CTX_set_tmp_dh_callback.3
+#usr/share/man/man3/SSL_CTX_set_tmp_rsa.3
+#usr/share/man/man3/SSL_CTX_set_tmp_rsa_callback.3
+#usr/share/man/man3/SSL_CTX_set_verify.3
+#usr/share/man/man3/SSL_CTX_set_verify_depth.3
+#usr/share/man/man3/SSL_CTX_use_PrivateKey.3
+#usr/share/man/man3/SSL_CTX_use_PrivateKey_ASN1.3
+#usr/share/man/man3/SSL_CTX_use_PrivateKey_file.3
+#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey.3
+#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey_ASN1.3
+#usr/share/man/man3/SSL_CTX_use_RSAPrivateKey_file.3
+#usr/share/man/man3/SSL_CTX_use_certificate.3
+#usr/share/man/man3/SSL_CTX_use_certificate_ASN1.3
+#usr/share/man/man3/SSL_CTX_use_certificate_chain_file.3
+#usr/share/man/man3/SSL_CTX_use_certificate_file.3
+#usr/share/man/man3/SSL_SESSION_free.3
+#usr/share/man/man3/SSL_SESSION_get_ex_data.3
+#usr/share/man/man3/SSL_SESSION_get_ex_new_index.3
+#usr/share/man/man3/SSL_SESSION_get_time.3
+#usr/share/man/man3/SSL_SESSION_get_timeout.3
+#usr/share/man/man3/SSL_SESSION_set_ex_data.3
+#usr/share/man/man3/SSL_SESSION_set_time.3
+#usr/share/man/man3/SSL_accept.3
+#usr/share/man/man3/SSL_add_client_CA.3
+#usr/share/man/man3/SSL_add_session.3
+#usr/share/man/man3/SSL_alert_desc_string.3
+#usr/share/man/man3/SSL_alert_desc_string_long.3
+#usr/share/man/man3/SSL_alert_type_string.3
+#usr/share/man/man3/SSL_alert_type_string_long.3
+#usr/share/man/man3/SSL_callback_ctrl.3
+#usr/share/man/man3/SSL_check_private_key.3
+#usr/share/man/man3/SSL_clear.3
+#usr/share/man/man3/SSL_connect.3
+#usr/share/man/man3/SSL_ctrl.3
+#usr/share/man/man3/SSL_do_handshake.3
+#usr/share/man/man3/SSL_flush_sessions.3
+#usr/share/man/man3/SSL_free.3
+#usr/share/man/man3/SSL_get_SSL_CTX.3
+#usr/share/man/man3/SSL_get_accept_state.3
+#usr/share/man/man3/SSL_get_cipher.3
+#usr/share/man/man3/SSL_get_cipher_bits.3
+#usr/share/man/man3/SSL_get_cipher_list.3
+#usr/share/man/man3/SSL_get_cipher_name.3
+#usr/share/man/man3/SSL_get_cipher_version.3
+#usr/share/man/man3/SSL_get_ciphers.3
+#usr/share/man/man3/SSL_get_client_CA_list.3
+#usr/share/man/man3/SSL_get_current_cipher.3
+#usr/share/man/man3/SSL_get_default_timeout.3
+#usr/share/man/man3/SSL_get_error.3
+#usr/share/man/man3/SSL_get_ex_data.3
+#usr/share/man/man3/SSL_get_ex_data_X509_STORE_CTX_idx.3
+#usr/share/man/man3/SSL_get_ex_new_index.3
+#usr/share/man/man3/SSL_get_fd.3
+#usr/share/man/man3/SSL_get_info_callback.3
+#usr/share/man/man3/SSL_get_max_cert_list.3
+#usr/share/man/man3/SSL_get_mode.3
+#usr/share/man/man3/SSL_get_msg_callback_arg.3
+#usr/share/man/man3/SSL_get_options.3
+#usr/share/man/man3/SSL_get_peer_cert_chain.3
+#usr/share/man/man3/SSL_get_peer_certificate.3
+#usr/share/man/man3/SSL_get_quiet_shutdown.3
+#usr/share/man/man3/SSL_get_rbio.3
+#usr/share/man/man3/SSL_get_session.3
+#usr/share/man/man3/SSL_get_shutdown.3
+#usr/share/man/man3/SSL_get_ssl_method.3
+#usr/share/man/man3/SSL_get_verify_callback.3
+#usr/share/man/man3/SSL_get_verify_depth.3
+#usr/share/man/man3/SSL_get_verify_mode.3
+#usr/share/man/man3/SSL_get_verify_result.3
+#usr/share/man/man3/SSL_get_version.3
+#usr/share/man/man3/SSL_has_matching_session_id.3
+#usr/share/man/man3/SSL_library_init.3
+#usr/share/man/man3/SSL_load_client_CA_file.3
+#usr/share/man/man3/SSL_load_error_strings.3
+#usr/share/man/man3/SSL_need_tmp_rsa.3
+#usr/share/man/man3/SSL_new.3
+#usr/share/man/man3/SSL_pending.3
+#usr/share/man/man3/SSL_read.3
+#usr/share/man/man3/SSL_remove_session.3
+#usr/share/man/man3/SSL_rstate_string.3
+#usr/share/man/man3/SSL_rstate_string_long.3
+#usr/share/man/man3/SSL_session_reused.3
+#usr/share/man/man3/SSL_set_bio.3
+#usr/share/man/man3/SSL_set_cipher_list.3
+#usr/share/man/man3/SSL_set_client_CA_list.3
+#usr/share/man/man3/SSL_set_connect_state.3
+#usr/share/man/man3/SSL_set_ex_data.3
+#usr/share/man/man3/SSL_set_fd.3
+#usr/share/man/man3/SSL_set_generate_session_id.3
+#usr/share/man/man3/SSL_set_info_callback.3
+#usr/share/man/man3/SSL_set_max_cert_list.3
+#usr/share/man/man3/SSL_set_mode.3
+#usr/share/man/man3/SSL_set_msg_callback.3
+#usr/share/man/man3/SSL_set_options.3
+#usr/share/man/man3/SSL_set_quiet_shutdown.3
+#usr/share/man/man3/SSL_set_session.3
+#usr/share/man/man3/SSL_set_session_id_context.3
+#usr/share/man/man3/SSL_set_shutdown.3
+#usr/share/man/man3/SSL_set_ssl_method.3
+#usr/share/man/man3/SSL_set_tmp_dh.3
+#usr/share/man/man3/SSL_set_tmp_dh_callback.3
+#usr/share/man/man3/SSL_set_tmp_rsa.3
+#usr/share/man/man3/SSL_set_tmp_rsa_callback.3
+#usr/share/man/man3/SSL_set_verify.3
+#usr/share/man/man3/SSL_set_verify_depth.3
+#usr/share/man/man3/SSL_set_verify_result.3
+#usr/share/man/man3/SSL_shutdown.3
+#usr/share/man/man3/SSL_state_string.3
+#usr/share/man/man3/SSL_state_string_long.3
+#usr/share/man/man3/SSL_use_PrivateKey.3
+#usr/share/man/man3/SSL_use_PrivateKey_ASN1.3
+#usr/share/man/man3/SSL_use_PrivateKey_file.3
+#usr/share/man/man3/SSL_use_RSAPrivateKey.3
+#usr/share/man/man3/SSL_use_RSAPrivateKey_ASN1.3
+#usr/share/man/man3/SSL_use_RSAPrivateKey_file.3
+#usr/share/man/man3/SSL_use_certificate.3
+#usr/share/man/man3/SSL_use_certificate_ASN1.3
+#usr/share/man/man3/SSL_use_certificate_file.3
+#usr/share/man/man3/SSL_want.3
+#usr/share/man/man3/SSL_want_nothing.3
+#usr/share/man/man3/SSL_want_read.3
+#usr/share/man/man3/SSL_want_write.3
+#usr/share/man/man3/SSL_want_x509_lookup.3
+#usr/share/man/man3/SSL_write.3
+#usr/share/man/man3/SSLeay.3
+#usr/share/man/man3/SSLeay_add_ssl_algorithms.3
+#usr/share/man/man3/SSLeay_version.3
+#usr/share/man/man3/UI_OpenSSL.3
+#usr/share/man/man3/UI_add_error_string.3
+#usr/share/man/man3/UI_add_info_string.3
+#usr/share/man/man3/UI_add_input_boolean.3
+#usr/share/man/man3/UI_add_input_string.3
+#usr/share/man/man3/UI_add_user_data.3
+#usr/share/man/man3/UI_add_verify_string.3
+#usr/share/man/man3/UI_construct_prompt.3
+#usr/share/man/man3/UI_ctrl.3
+#usr/share/man/man3/UI_dup_error_string.3
+#usr/share/man/man3/UI_dup_info_string.3
+#usr/share/man/man3/UI_dup_input_boolean.3
+#usr/share/man/man3/UI_dup_input_string.3
+#usr/share/man/man3/UI_dup_verify_string.3
+#usr/share/man/man3/UI_free.3
+#usr/share/man/man3/UI_get0_result.3
+#usr/share/man/man3/UI_get0_user_data.3
+#usr/share/man/man3/UI_get_default_method.3
+#usr/share/man/man3/UI_get_method.3
+#usr/share/man/man3/UI_new.3
+#usr/share/man/man3/UI_new_method.3
+#usr/share/man/man3/UI_process.3
+#usr/share/man/man3/UI_set_default_method.3
+#usr/share/man/man3/UI_set_method.3
+#usr/share/man/man3/X509_NAME_ENTRY_create_by_NID.3
+#usr/share/man/man3/X509_NAME_ENTRY_create_by_OBJ.3
+#usr/share/man/man3/X509_NAME_ENTRY_create_by_txt.3
+#usr/share/man/man3/X509_NAME_ENTRY_get_data.3
+#usr/share/man/man3/X509_NAME_ENTRY_get_object.3
+#usr/share/man/man3/X509_NAME_ENTRY_set_data.3
+#usr/share/man/man3/X509_NAME_ENTRY_set_object.3
+#usr/share/man/man3/X509_NAME_add_entry.3
+#usr/share/man/man3/X509_NAME_add_entry_by_NID.3
+#usr/share/man/man3/X509_NAME_add_entry_by_OBJ.3
+#usr/share/man/man3/X509_NAME_add_entry_by_txt.3
+#usr/share/man/man3/X509_NAME_delete_entry.3
+#usr/share/man/man3/X509_NAME_entry_count.3
+#usr/share/man/man3/X509_NAME_get_entry.3
+#usr/share/man/man3/X509_NAME_get_index_by_NID.3
+#usr/share/man/man3/X509_NAME_get_index_by_OBJ.3
+#usr/share/man/man3/X509_NAME_get_text_by_NID.3
+#usr/share/man/man3/X509_NAME_get_text_by_OBJ.3
+#usr/share/man/man3/X509_NAME_oneline.3
+#usr/share/man/man3/X509_NAME_print.3
+#usr/share/man/man3/X509_NAME_print_ex.3
+#usr/share/man/man3/X509_NAME_print_ex_fp.3
+#usr/share/man/man3/X509_free.3
+#usr/share/man/man3/X509_new.3
+#usr/share/man/man3/bio.3
+#usr/share/man/man3/blowfish.3
+#usr/share/man/man3/bn.3
+#usr/share/man/man3/bn_add_words.3
+#usr/share/man/man3/bn_check_top.3
+#usr/share/man/man3/bn_cmp_words.3
+#usr/share/man/man3/bn_div_words.3
+#usr/share/man/man3/bn_dump.3
+#usr/share/man/man3/bn_expand.3
+#usr/share/man/man3/bn_expand2.3
+#usr/share/man/man3/bn_fix_top.3
+#usr/share/man/man3/bn_internal.3
+#usr/share/man/man3/bn_mul_add_words.3
+#usr/share/man/man3/bn_mul_comba4.3
+#usr/share/man/man3/bn_mul_comba8.3
+#usr/share/man/man3/bn_mul_high.3
+#usr/share/man/man3/bn_mul_low_normal.3
+#usr/share/man/man3/bn_mul_low_recursive.3
+#usr/share/man/man3/bn_mul_normal.3
+#usr/share/man/man3/bn_mul_part_recursive.3
+#usr/share/man/man3/bn_mul_recursive.3
+#usr/share/man/man3/bn_mul_words.3
+#usr/share/man/man3/bn_print.3
+#usr/share/man/man3/bn_set_high.3
+#usr/share/man/man3/bn_set_low.3
+#usr/share/man/man3/bn_set_max.3
+#usr/share/man/man3/bn_sqr_comba4.3
+#usr/share/man/man3/bn_sqr_comba8.3
+#usr/share/man/man3/bn_sqr_normal.3
+#usr/share/man/man3/bn_sqr_recursive.3
+#usr/share/man/man3/bn_sqr_words.3
+#usr/share/man/man3/bn_sub_words.3
+#usr/share/man/man3/bn_wexpand.3
+#usr/share/man/man3/buffer.3
+#usr/share/man/man3/crypto.3
+#usr/share/man/man3/d2i_509_CRL_fp.3
+#usr/share/man/man3/d2i_ASN1_OBJECT.3
+#usr/share/man/man3/d2i_DHparams.3
+#usr/share/man/man3/d2i_DSAPrivateKey.3
+#usr/share/man/man3/d2i_DSAPublicKey.3
+#usr/share/man/man3/d2i_DSA_PUBKEY.3
+#usr/share/man/man3/d2i_DSA_SIG.3
+#usr/share/man/man3/d2i_Netscape_RSA.3
+#usr/share/man/man3/d2i_PKCS8PrivateKey.3
+#usr/share/man/man3/d2i_PKCS8PrivateKey_bio.3
+#usr/share/man/man3/d2i_PKCS8PrivateKey_fp.3
+#usr/share/man/man3/d2i_RSAPrivateKey.3
+#usr/share/man/man3/d2i_RSAPublicKey.3
+#usr/share/man/man3/d2i_RSA_PUBKEY.3
+#usr/share/man/man3/d2i_SSL_SESSION.3
+#usr/share/man/man3/d2i_X509.3
+#usr/share/man/man3/d2i_X509_ALGOR.3
+#usr/share/man/man3/d2i_X509_CRL.3
+#usr/share/man/man3/d2i_X509_CRL_bio.3
+#usr/share/man/man3/d2i_X509_NAME.3
+#usr/share/man/man3/d2i_X509_REQ.3
+#usr/share/man/man3/d2i_X509_REQ_bio.3
+#usr/share/man/man3/d2i_X509_REQ_fp.3
+#usr/share/man/man3/d2i_X509_SIG.3
+#usr/share/man/man3/d2i_X509_bio.3
+#usr/share/man/man3/d2i_X509_fp.3
+#usr/share/man/man3/des.3
+#usr/share/man/man3/des_read_2passwords.3
+#usr/share/man/man3/des_read_password.3
+#usr/share/man/man3/des_read_pw.3
+#usr/share/man/man3/des_read_pw_string.3
+#usr/share/man/man3/dh.3
+#usr/share/man/man3/dsa.3
+#usr/share/man/man3/engine.3
+#usr/share/man/man3/evp.3
+#usr/share/man/man3/hmac.3
+#usr/share/man/man3/i2d_ASN1_OBJECT.3
+#usr/share/man/man3/i2d_DHparams.3
+#usr/share/man/man3/i2d_DSAPrivateKey.3
+#usr/share/man/man3/i2d_DSAPublicKey.3
+#usr/share/man/man3/i2d_DSA_PUBKEY.3
+#usr/share/man/man3/i2d_DSA_SIG.3
+#usr/share/man/man3/i2d_Netscape_RSA.3
+#usr/share/man/man3/i2d_PKCS8PrivateKey_bio.3
+#usr/share/man/man3/i2d_PKCS8PrivateKey_fp.3
+#usr/share/man/man3/i2d_PKCS8PrivateKey_nid_bio.3
+#usr/share/man/man3/i2d_PKCS8PrivateKey_nid_fp.3
+#usr/share/man/man3/i2d_RSAPrivateKey.3
+#usr/share/man/man3/i2d_RSAPublicKey.3
+#usr/share/man/man3/i2d_RSA_PUBKEY.3
+#usr/share/man/man3/i2d_SSL_SESSION.3
+#usr/share/man/man3/i2d_X509.3
+#usr/share/man/man3/i2d_X509_ALGOR.3
+#usr/share/man/man3/i2d_X509_CRL.3
+#usr/share/man/man3/i2d_X509_CRL_bio.3
+#usr/share/man/man3/i2d_X509_CRL_fp.3
+#usr/share/man/man3/i2d_X509_NAME.3
+#usr/share/man/man3/i2d_X509_REQ.3
+#usr/share/man/man3/i2d_X509_REQ_bio.3
+#usr/share/man/man3/i2d_X509_REQ_fp.3
+#usr/share/man/man3/i2d_X509_SIG.3
+#usr/share/man/man3/i2d_X509_bio.3
+#usr/share/man/man3/i2d_X509_fp.3
+#usr/share/man/man3/lh_delete.3
+#usr/share/man/man3/lh_doall.3
+#usr/share/man/man3/lh_doall_arg.3
+#usr/share/man/man3/lh_error.3
+#usr/share/man/man3/lh_free.3
+#usr/share/man/man3/lh_insert.3
+#usr/share/man/man3/lh_new.3
+#usr/share/man/man3/lh_node_stats.3
+#usr/share/man/man3/lh_node_stats_bio.3
+#usr/share/man/man3/lh_node_usage_stats.3
+#usr/share/man/man3/lh_node_usage_stats_bio.3
+#usr/share/man/man3/lh_retrieve.3
+#usr/share/man/man3/lh_stats.3
+#usr/share/man/man3/lh_stats_bio.3
+#usr/share/man/man3/lhash.3
+#usr/share/man/man3/md5.3
+#usr/share/man/man3/mdc2.3
+#usr/share/man/man3/pem.3
+#usr/share/man/man3/rc4.3
+#usr/share/man/man3/ripemd.3
+#usr/share/man/man3/rsa.3
+#usr/share/man/man3/sha.3
+#usr/share/man/man3/ssl.3
+#usr/share/man/man3/ui.3
+#usr/share/man/man3/ui_compat.3
+#usr/share/man/man5/config.5
+#usr/share/man/man7/Modes_of_DES.7
+#usr/share/man/man7/des_modes.7
+##
+## pciutils-2.1.11
+##
+#usr/include/pci
+#usr/include/pci/config.h
+#usr/include/pci/header.h
+#usr/include/pci/pci.h
+#usr/lib/libpci.a
+usr/sbin/lspci
+usr/sbin/setpci
+#usr/sbin/update-pciids
+#usr/share/man/man8/lspci.8
+#usr/share/man/man8/setpci.8
+#usr/share/man/man8/update-pciids.8
+#usr/share/pci.ids
+##
+## pcre-4.5
+##
+#usr/bin/pcregrep
+#usr/bin/pcretest
+#usr/bin/pcre-config
+#usr/include/pcre.h
+#usr/include/pcreposix.h
+usr/lib/libpcre.so.0.0.1
+usr/lib/libpcre.so.0
+usr/lib/libpcre.so
+#usr/lib/libpcre.la
+#usr/lib/libpcreposix.so.0.0.0
+#usr/lib/libpcreposix.so.0
+#usr/lib/libpcreposix.so
+#usr/lib/libpcreposix.la
+#usr/share/man/man1/pcregrep.1
+#usr/share/man/man1/pcretest.1
+#usr/share/man/man3/pcre.3
+#usr/share/man/man3/pcreapi.3
+#usr/share/man/man3/pcrebuild.3
+#usr/share/man/man3/pcrecallout.3
+#usr/share/man/man3/pcrecompat.3
+#usr/share/man/man3/pcrepattern.3
+#usr/share/man/man3/pcreperform.3
+#usr/share/man/man3/pcreposix.3
+#usr/share/man/man3/pcresample.3
+#usr/share/man/man3/pcre_compile.3
+#usr/share/man/man3/pcre_config.3
+#usr/share/man/man3/pcre_copy_named_substring.3
+#usr/share/man/man3/pcre_copy_substring.3
+#usr/share/man/man3/pcre_exec.3
+#usr/share/man/man3/pcre_free_substring.3
+#usr/share/man/man3/pcre_free_substring_list.3
+#usr/share/man/man3/pcre_fullinfo.3
+#usr/share/man/man3/pcre_get_named_substring.3
+#usr/share/man/man3/pcre_get_stringnumber.3
+#usr/share/man/man3/pcre_get_substring.3
+#usr/share/man/man3/pcre_get_substring_list.3
+#usr/share/man/man3/pcre_info.3
+#usr/share/man/man3/pcre_maketables.3
+#usr/share/man/man3/pcre_study.3
+#usr/share/man/man3/pcre_version.3
+##
+## 3cp4218-2003-10-22
+##
+usr/sbin/3cextract
+usr/sbin/3cload
+usr/sbin/3cioctl
+usr/sbin/ez-usb.bin
+usr/sbin/3cinit.bin
+usr/sbin/3cmain.bin
+#usr/share/locale/es/LC_MESSAGES/3cioctl.mo
+#usr/share/locale/es/LC_MESSAGES/3cload.mo
+#lib/modules/2.4.31/kernel/drivers/usb/3cp4218.o.gz
+##
+## 3cp4218-2003-10-22-smp
+##
+#usr/sbin/3cextract
+#usr/sbin/3cload
+#usr/sbin/3cioctl
+#usr/sbin/ez-usb.bin
+#usr/sbin/3cinit.bin
+#usr/sbin/3cmain.bin
+#usr/share/locale/es/LC_MESSAGES/3cioctl.mo
+#usr/share/locale/es/LC_MESSAGES/3cload.mo
+#lib/modules/2.4.31-smp/kernel/drivers/usb/3cp4218.o.gz
+##
+## amedyn-2004-08-04
+##
+usr/bin/br2684ctl
+usr/sbin/amload
+usr/sbin/amioctl
+usr/sbin/fw-usb.bin
+usr/sbin/Fw-usb_A.bin
+#lib/modules/2.4.31/kernel/drivers/usb/amedyn.o.gz
+##
+## amedyn-2004-08-04-smp
+##
+#usr/sbin/amload
+#usr/sbin/amioctl
+#usr/sbin/fw-usb.bin
+#usr/sbin/Fw-usb_A.bin
+#lib/modules/2.4.31-smp/kernel/drivers/usb/amedyn.o.gz
+##
+## apache_1.3.34 mod_ssl-2.8.25-1.3.34 mm-1.4.0
+##
+#etc/httpd
+#etc/httpd/conf
+#etc/httpd/conf/access.conf
+#etc/httpd/conf/access.conf.default
+etc/httpd/conf/hostname.conf
+etc/httpd/conf/httpd.conf
+#etc/httpd/conf/httpd.conf.default
+#etc/httpd/conf/magic
+#etc/httpd/conf/magic.default
+#etc/httpd/conf/mime.types
+#etc/httpd/conf/mime.types.default
+#etc/httpd/conf/srm.conf
+#etc/httpd/conf/srm.conf.default
+#etc/httpd/conf/ssl.crl
+#etc/httpd/conf/ssl.crl/Makefile
+#etc/httpd/conf/ssl.crl/README.CRL
+#etc/httpd/conf/ssl.crt
+#etc/httpd/conf/ssl.crt/0cf14d7d.0
+#etc/httpd/conf/ssl.crt/5d8360e1.0
+#etc/httpd/conf/ssl.crt/82ab5372.0
+#etc/httpd/conf/ssl.crt/Makefile
+#etc/httpd/conf/ssl.crt/README.CRT
+#etc/httpd/conf/ssl.crt/ca-bundle.crt
+#etc/httpd/conf/ssl.crt/e52d41d0.0
+#etc/httpd/conf/ssl.crt/server.crt
+#etc/httpd/conf/ssl.crt/snakeoil-ca-dsa.crt
+#etc/httpd/conf/ssl.crt/snakeoil-ca-rsa.crt
+#etc/httpd/conf/ssl.crt/snakeoil-dsa.crt
+#etc/httpd/conf/ssl.crt/snakeoil-rsa.crt
+#etc/httpd/conf/ssl.csr
+#etc/httpd/conf/ssl.csr/README.CSR
+#etc/httpd/conf/ssl.csr/server.csr
+#etc/httpd/conf/ssl.key
+#etc/httpd/conf/ssl.key/README.KEY
+#etc/httpd/conf/ssl.key/server.key
+#etc/httpd/conf/ssl.key/snakeoil-ca-dsa.key
+#etc/httpd/conf/ssl.key/snakeoil-ca-rsa.key
+#etc/httpd/conf/ssl.key/snakeoil-dsa.key
+#etc/httpd/conf/ssl.key/snakeoil-rsa.key
+#etc/httpd/conf/ssl.prm
+#etc/httpd/conf/ssl.prm/README.PRM
+#etc/httpd/conf/ssl.prm/snakeoil-ca-dsa.prm
+#etc/httpd/conf/ssl.prm/snakeoil-dsa.prm
+#home/httpd
+#home/httpd/cgi-bin
+home/httpd/cgi-bin/aliases.cgi
+home/httpd/cgi-bin/backup.cgi
+#home/httpd/cgi-bin/base.cgi
+home/httpd/cgi-bin/changepw.cgi
+home/httpd/cgi-bin/connections.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/dial.cgi
+home/httpd/cgi-bin/dmzholes.cgi
+home/httpd/cgi-bin/graphs.cgi
+home/httpd/cgi-bin/gui.cgi
+home/httpd/cgi-bin/hosts.cgi
+home/httpd/cgi-bin/ids.cgi
+home/httpd/cgi-bin/index.cgi
+home/httpd/cgi-bin/ipinfo.cgi
+#home/httpd/cgi-bin/logs.cgi
+home/httpd/cgi-bin/logs.cgi/config.dat
+home/httpd/cgi-bin/logs.cgi/firewalllog.dat
+home/httpd/cgi-bin/logs.cgi/ids.dat
+home/httpd/cgi-bin/logs.cgi/log.dat
+home/httpd/cgi-bin/logs.cgi/proxylog.dat
+home/httpd/cgi-bin/logs.cgi/summary.dat
+home/httpd/cgi-bin/modem.cgi
+home/httpd/cgi-bin/netstatus.cgi
+#home/httpd/cgi-bin/networks.cgi
+home/httpd/cgi-bin/optionsfw.cgi
+home/httpd/cgi-bin/portfw.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+#home/httpd/cgi-bin/printenv
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/proxygraphs.cgi
+home/httpd/cgi-bin/remote.cgi
+#home/httpd/cgi-bin/services.cgi
+home/httpd/cgi-bin/shaping.cgi
+home/httpd/cgi-bin/shutdown.cgi
+home/httpd/cgi-bin/status.cgi
+#home/httpd/cgi-bin/test-cgi
+home/httpd/cgi-bin/time.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/upload.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+home/httpd/cgi-bin/wireless.cgi
+home/httpd/cgi-bin/xtaccess.cgi
+#home/httpd/htdocs
+#home/httpd/htdocs/apache_pb.gif
+#home/httpd/htdocs/index.html.ca
+#home/httpd/htdocs/index.html.cz
+#home/httpd/htdocs/index.html.de
+#home/httpd/htdocs/index.html.dk
+#home/httpd/htdocs/index.html.ee
+#home/httpd/htdocs/index.html.el
+#home/httpd/htdocs/index.html.en
+#home/httpd/htdocs/index.html.es
+#home/httpd/htdocs/index.html.fr
+#home/httpd/htdocs/index.html.he.iso8859-8
+#home/httpd/htdocs/index.html.hu
+#home/httpd/htdocs/index.html.it
+#home/httpd/htdocs/index.html.ja.jis
+#home/httpd/htdocs/index.html.kr.iso-kr
+#home/httpd/htdocs/index.html.lb.utf8
+#home/httpd/htdocs/index.html.nl
+#home/httpd/htdocs/index.html.nn
+#home/httpd/htdocs/index.html.no
+#home/httpd/htdocs/index.html.po.iso-pl
+#home/httpd/htdocs/index.html.pt
+#home/httpd/htdocs/index.html.pt-br
+#home/httpd/htdocs/index.html.ru.cp-1251
+#home/httpd/htdocs/index.html.ru.cp866
+#home/httpd/htdocs/index.html.ru.iso-ru
+#home/httpd/htdocs/index.html.ru.koi8-r
+#home/httpd/htdocs/index.html.ru.ucs2
+#home/httpd/htdocs/index.html.ru.ucs4
+#home/httpd/htdocs/index.html.ru.utf8
+#home/httpd/htdocs/index.html.se
+#home/httpd/htdocs/index.html.zh-tw.big5
+#home/httpd/htdocs/manual
+#home/httpd/htdocs/manual/LICENSE
+#home/httpd/htdocs/manual/bind.html.en
+#home/httpd/htdocs/manual/bind.html.fr
+#home/httpd/htdocs/manual/bind.html.html
+#home/httpd/htdocs/manual/bind.html.ja.jis
+#home/httpd/htdocs/manual/configuring.html.en
+#home/httpd/htdocs/manual/configuring.html.fr
+#home/httpd/htdocs/manual/configuring.html.html
+#home/httpd/htdocs/manual/configuring.html.ja.jis
+#home/httpd/htdocs/manual/content-negotiation.html.en
+#home/httpd/htdocs/manual/content-negotiation.html.html
+#home/httpd/htdocs/manual/content-negotiation.html.ja.jis
+#home/httpd/htdocs/manual/custom-error.html.en
+#home/httpd/htdocs/manual/custom-error.html.fr
+#home/httpd/htdocs/manual/custom-error.html.html
+#home/httpd/htdocs/manual/custom-error.html.ja.jis
+#home/httpd/htdocs/manual/cygwin.html
+#home/httpd/htdocs/manual/dns-caveats.html.en
+#home/httpd/htdocs/manual/dns-caveats.html.fr
+#home/httpd/htdocs/manual/dns-caveats.html.html
+#home/httpd/htdocs/manual/dns-caveats.html.ja.jis
+#home/httpd/htdocs/manual/dso.html
+#home/httpd/htdocs/manual/ebcdic.html
+#home/httpd/htdocs/manual/env.html.en
+#home/httpd/htdocs/manual/env.html.html
+#home/httpd/htdocs/manual/env.html.ja.jis
+#home/httpd/htdocs/manual/footer.html
+#home/httpd/htdocs/manual/handler.html.en
+#home/httpd/htdocs/manual/handler.html.html
+#home/httpd/htdocs/manual/handler.html.ja.jis
+#home/httpd/htdocs/manual/header.html
+#home/httpd/htdocs/manual/howto
+#home/httpd/htdocs/manual/howto/auth.html
+#home/httpd/htdocs/manual/howto/cgi.html.en
+#home/httpd/htdocs/manual/howto/cgi.html.html
+#home/httpd/htdocs/manual/howto/cgi.html.ja.jis
+#home/httpd/htdocs/manual/howto/footer.html
+#home/httpd/htdocs/manual/howto/header.html
+#home/httpd/htdocs/manual/howto/htaccess.html
+#home/httpd/htdocs/manual/howto/ssi.html.en
+#home/httpd/htdocs/manual/howto/ssi.html.html
+#home/httpd/htdocs/manual/howto/ssi.html.ja.jis
+#home/httpd/htdocs/manual/images
+#home/httpd/htdocs/manual/images/apache_header.gif
+#home/httpd/htdocs/manual/images/apache_pb.gif
+#home/httpd/htdocs/manual/images/custom_errordocs.gif
+#home/httpd/htdocs/manual/images/feather.jpg
+#home/httpd/htdocs/manual/images/home.gif
+#home/httpd/htdocs/manual/images/index.gif
+#home/httpd/htdocs/manual/images/mod_rewrite_fig1.fig
+#home/httpd/htdocs/manual/images/mod_rewrite_fig1.gif
+#home/httpd/htdocs/manual/images/mod_rewrite_fig2.fig
+#home/httpd/htdocs/manual/images/mod_rewrite_fig2.gif
+#home/httpd/htdocs/manual/images/mod_ssl_sb.gif
+#home/httpd/htdocs/manual/images/openssl_ics.gif
+#home/httpd/htdocs/manual/images/pixel.gif
+#home/httpd/htdocs/manual/images/sub.gif
+#home/httpd/htdocs/manual/index.html.en
+#home/httpd/htdocs/manual/index.html.fr
+#home/httpd/htdocs/manual/index.html.html
+#home/httpd/htdocs/manual/index.html.ja.jis
+#home/httpd/htdocs/manual/install-tpf.html
+#home/httpd/htdocs/manual/install-ztpf.html
+#home/httpd/htdocs/manual/install.html.en
+#home/httpd/htdocs/manual/install.html.es
+#home/httpd/htdocs/manual/install.html.fr
+#home/httpd/htdocs/manual/install.html.html
+#home/httpd/htdocs/manual/install.html.ja.jis
+#home/httpd/htdocs/manual/invoking.html.en
+#home/httpd/htdocs/manual/invoking.html.fr
+#home/httpd/htdocs/manual/invoking.html.html
+#home/httpd/htdocs/manual/invoking.html.ja.jis
+#home/httpd/htdocs/manual/keepalive.html.en
+#home/httpd/htdocs/manual/keepalive.html.html
+#home/httpd/htdocs/manual/keepalive.html.ja.jis
+#home/httpd/htdocs/manual/location.html.en
+#home/httpd/htdocs/manual/location.html.html
+#home/httpd/htdocs/manual/location.html.ja.jis
+#home/httpd/htdocs/manual/logs.html
+#home/httpd/htdocs/manual/man-template.html
+#home/httpd/htdocs/manual/misc
+#home/httpd/htdocs/manual/misc/API.html
+#home/httpd/htdocs/manual/misc/FAQ.html
+#home/httpd/htdocs/manual/misc/HTTP_Features.tsv
+#home/httpd/htdocs/manual/misc/client_block_api.html
+#home/httpd/htdocs/manual/misc/compat_notes.html
+#home/httpd/htdocs/manual/misc/custom_errordocs.html
+#home/httpd/htdocs/manual/misc/descriptors.html
+#home/httpd/htdocs/manual/misc/fin_wait_2.html
+#home/httpd/htdocs/manual/misc/footer.html
+#home/httpd/htdocs/manual/misc/header.html
+#home/httpd/htdocs/manual/misc/howto.html
+#home/httpd/htdocs/manual/misc/index.html
+#home/httpd/htdocs/manual/misc/known_client_problems.html
+#home/httpd/htdocs/manual/misc/nopgp.html
+#home/httpd/htdocs/manual/misc/perf-bsd44.html
+#home/httpd/htdocs/manual/misc/perf-dec.html
+#home/httpd/htdocs/manual/misc/perf-hp.html
+#home/httpd/htdocs/manual/misc/perf-tuning.html
+#home/httpd/htdocs/manual/misc/perf.html
+#home/httpd/htdocs/manual/misc/rewriteguide.html
+#home/httpd/htdocs/manual/misc/security_tips.html
+#home/httpd/htdocs/manual/misc/tutorials.html
+#home/httpd/htdocs/manual/misc/vif-info.html
+#home/httpd/htdocs/manual/misc/windoz_keepalive.html
+#home/httpd/htdocs/manual/mod
+#home/httpd/htdocs/manual/mod/core.html.en
+#home/httpd/htdocs/manual/mod/core.html.fr
+#home/httpd/htdocs/manual/mod/core.html.html
+#home/httpd/htdocs/manual/mod/core.html.ja.jis
+#home/httpd/htdocs/manual/mod/directive-dict.html.en
+#home/httpd/htdocs/manual/mod/directive-dict.html.fr
+#home/httpd/htdocs/manual/mod/directive-dict.html.html
+#home/httpd/htdocs/manual/mod/directive-dict.html.ja.jis
+#home/httpd/htdocs/manual/mod/directives.html.de
+#home/httpd/htdocs/manual/mod/directives.html.en
+#home/httpd/htdocs/manual/mod/directives.html.fr
+#home/httpd/htdocs/manual/mod/directives.html.html
+#home/httpd/htdocs/manual/mod/directives.html.ja.jis
+#home/httpd/htdocs/manual/mod/footer.html
+#home/httpd/htdocs/manual/mod/header.html
+#home/httpd/htdocs/manual/mod/index-bytype.html.en
+#home/httpd/htdocs/manual/mod/index-bytype.html.fr
+#home/httpd/htdocs/manual/mod/index-bytype.html.html
+#home/httpd/htdocs/manual/mod/index-bytype.html.ja.jis
+#home/httpd/htdocs/manual/mod/index.html.en
+#home/httpd/htdocs/manual/mod/index.html.fr
+#home/httpd/htdocs/manual/mod/index.html.html
+#home/httpd/htdocs/manual/mod/index.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_access.html.en
+#home/httpd/htdocs/manual/mod/mod_access.html.html
+#home/httpd/htdocs/manual/mod/mod_access.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_actions.html.en
+#home/httpd/htdocs/manual/mod/mod_actions.html.html
+#home/httpd/htdocs/manual/mod/mod_actions.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_alias.html.en
+#home/httpd/htdocs/manual/mod/mod_alias.html.html
+#home/httpd/htdocs/manual/mod/mod_alias.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_asis.html.en
+#home/httpd/htdocs/manual/mod/mod_asis.html.html
+#home/httpd/htdocs/manual/mod/mod_asis.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_auth.html.en
+#home/httpd/htdocs/manual/mod/mod_auth.html.html
+#home/httpd/htdocs/manual/mod/mod_auth.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_auth_anon.html
+#home/httpd/htdocs/manual/mod/mod_auth_db.html
+#home/httpd/htdocs/manual/mod/mod_auth_dbm.html
+#home/httpd/htdocs/manual/mod/mod_auth_digest.html
+#home/httpd/htdocs/manual/mod/mod_autoindex.html.en
+#home/httpd/htdocs/manual/mod/mod_autoindex.html.html
+#home/httpd/htdocs/manual/mod/mod_autoindex.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_browser.html
+#home/httpd/htdocs/manual/mod/mod_cern_meta.html
+#home/httpd/htdocs/manual/mod/mod_cgi.html.en
+#home/httpd/htdocs/manual/mod/mod_cgi.html.html
+#home/httpd/htdocs/manual/mod/mod_cgi.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_cookies.html
+#home/httpd/htdocs/manual/mod/mod_define.html
+#home/httpd/htdocs/manual/mod/mod_digest.html
+#home/httpd/htdocs/manual/mod/mod_dir.html.en
+#home/httpd/htdocs/manual/mod/mod_dir.html.html
+#home/httpd/htdocs/manual/mod/mod_dir.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_dld.html
+#home/httpd/htdocs/manual/mod/mod_env.html.en
+#home/httpd/htdocs/manual/mod/mod_env.html.html
+#home/httpd/htdocs/manual/mod/mod_env.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_example.html
+#home/httpd/htdocs/manual/mod/mod_expires.html
+#home/httpd/htdocs/manual/mod/mod_headers.html
+#home/httpd/htdocs/manual/mod/mod_imap.html
+#home/httpd/htdocs/manual/mod/mod_include.html
+#home/httpd/htdocs/manual/mod/mod_info.html.en
+#home/httpd/htdocs/manual/mod/mod_info.html.html
+#home/httpd/htdocs/manual/mod/mod_info.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_isapi.html
+#home/httpd/htdocs/manual/mod/mod_log_agent.html
+#home/httpd/htdocs/manual/mod/mod_log_common.html
+#home/httpd/htdocs/manual/mod/mod_log_config.html.en
+#home/httpd/htdocs/manual/mod/mod_log_config.html.html
+#home/httpd/htdocs/manual/mod/mod_log_config.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_log_forensic.html.en
+#home/httpd/htdocs/manual/mod/mod_log_forensic.html.html
+#home/httpd/htdocs/manual/mod/mod_log_referer.html
+#home/httpd/htdocs/manual/mod/mod_mime.html.en
+#home/httpd/htdocs/manual/mod/mod_mime.html.html
+#home/httpd/htdocs/manual/mod/mod_mime.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_mime_magic.html
+#home/httpd/htdocs/manual/mod/mod_mmap_static.html
+#home/httpd/htdocs/manual/mod/mod_negotiation.html.en
+#home/httpd/htdocs/manual/mod/mod_negotiation.html.html
+#home/httpd/htdocs/manual/mod/mod_negotiation.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_proxy.html
+#home/httpd/htdocs/manual/mod/mod_rewrite.html.en
+#home/httpd/htdocs/manual/mod/mod_rewrite.html.html
+#home/httpd/htdocs/manual/mod/mod_rewrite.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_setenvif.html.en
+#home/httpd/htdocs/manual/mod/mod_setenvif.html.html
+#home/httpd/htdocs/manual/mod/mod_setenvif.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_so.html.en
+#home/httpd/htdocs/manual/mod/mod_so.html.html
+#home/httpd/htdocs/manual/mod/mod_so.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_speling.html.en
+#home/httpd/htdocs/manual/mod/mod_speling.html.html
+#home/httpd/htdocs/manual/mod/mod_speling.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_ssl
+#home/httpd/htdocs/manual/mod/mod_ssl/index.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_compat.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_compat.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_compat.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_cover.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_cover_logo.jpg
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_cover_title.jpg
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_faq.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_faq.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_faq.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_glossary.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_glossary.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_howto.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_howto.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_howto.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro_fig1.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro_fig2.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_intro_fig3.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_overview.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_overview.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_overview.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_overview_fig1.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_reference.gfont000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_reference.html
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_reference.wml
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-chapter.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-1.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-2.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-3.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-4.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-5.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-6.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.head-num-7.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.imgdot-1x1-000000.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.imgdot-1x1-transp.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.inc
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.navbut-next-n.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.navbut-next-s.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.navbut-prev-n.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.navbut-prev-s.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-abstract.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-compat.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-faq.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-gloss.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-howto.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-intro.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-over.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-preface.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-ref.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-toc.gif
+#home/httpd/htdocs/manual/mod/mod_ssl/ssl_template.title-tutor.gif
+#home/httpd/htdocs/manual/mod/mod_status.html
+#home/httpd/htdocs/manual/mod/mod_unique_id.html.en
+#home/httpd/htdocs/manual/mod/mod_unique_id.html.html
+#home/httpd/htdocs/manual/mod/mod_unique_id.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_userdir.html.en
+#home/httpd/htdocs/manual/mod/mod_userdir.html.html
+#home/httpd/htdocs/manual/mod/mod_userdir.html.ja.jis
+#home/httpd/htdocs/manual/mod/mod_usertrack.html
+#home/httpd/htdocs/manual/mod/mod_vhost_alias.html
+#home/httpd/htdocs/manual/mod/module-dict.html.en
+#home/httpd/htdocs/manual/mod/module-dict.html.html
+#home/httpd/htdocs/manual/mod/module-dict.html.ja.jis
+#home/httpd/htdocs/manual/mpeix.html
+#home/httpd/htdocs/manual/multilogs.html
+#home/httpd/htdocs/manual/netware.html
+#home/httpd/htdocs/manual/new_features_1_0.html
+#home/httpd/htdocs/manual/new_features_1_1.html
+#home/httpd/htdocs/manual/new_features_1_2.html
+#home/httpd/htdocs/manual/new_features_1_3.html.en
+#home/httpd/htdocs/manual/new_features_1_3.html.html
+#home/httpd/htdocs/manual/new_features_1_3.html.ja.jis
+#home/httpd/htdocs/manual/process-model.html.en
+#home/httpd/htdocs/manual/process-model.html.html
+#home/httpd/htdocs/manual/process-model.html.ja.jis
+#home/httpd/htdocs/manual/programs
+#home/httpd/htdocs/manual/programs/ab.html
+#home/httpd/htdocs/manual/programs/apachectl.html.en
+#home/httpd/htdocs/manual/programs/apachectl.html.html
+#home/httpd/htdocs/manual/programs/apachectl.html.ja.jis
+#home/httpd/htdocs/manual/programs/apxs.html
+#home/httpd/htdocs/manual/programs/dbmmanage.html
+#home/httpd/htdocs/manual/programs/footer.html
+#home/httpd/htdocs/manual/programs/header.html
+#home/httpd/htdocs/manual/programs/htdigest.html
+#home/httpd/htdocs/manual/programs/htpasswd.html.en
+#home/httpd/htdocs/manual/programs/htpasswd.html.html
+#home/httpd/htdocs/manual/programs/htpasswd.html.ja.jis
+#home/httpd/htdocs/manual/programs/httpd.html.en
+#home/httpd/htdocs/manual/programs/httpd.html.html
+#home/httpd/htdocs/manual/programs/httpd.html.ja.jis
+#home/httpd/htdocs/manual/programs/index.html.en
+#home/httpd/htdocs/manual/programs/index.html.html
+#home/httpd/htdocs/manual/programs/index.html.ja.jis
+#home/httpd/htdocs/manual/programs/logresolve.html
+#home/httpd/htdocs/manual/programs/other.html
+#home/httpd/htdocs/manual/programs/rotatelogs.html
+#home/httpd/htdocs/manual/programs/suexec.html.en
+#home/httpd/htdocs/manual/programs/suexec.html.html
+#home/httpd/htdocs/manual/programs/suexec.html.ja.jis
+#home/httpd/htdocs/manual/readme-tpf.html
+#home/httpd/htdocs/manual/sections.html.en
+#home/httpd/htdocs/manual/sections.html.html
+#home/httpd/htdocs/manual/sections.html.ja.jis
+#home/httpd/htdocs/manual/server-wide.html.en
+#home/httpd/htdocs/manual/server-wide.html.fr
+#home/httpd/htdocs/manual/server-wide.html.html
+#home/httpd/htdocs/manual/server-wide.html.ja.jis
+#home/httpd/htdocs/manual/sitemap.html
+#home/httpd/htdocs/manual/sourcereorg.html
+#home/httpd/htdocs/manual/stopping.html.en
+#home/httpd/htdocs/manual/stopping.html.fr
+#home/httpd/htdocs/manual/stopping.html.html
+#home/httpd/htdocs/manual/suexec.html.en
+#home/httpd/htdocs/manual/suexec.html.html
+#home/httpd/htdocs/manual/suexec.html.ja.jis
+#home/httpd/htdocs/manual/suexec_1_2.html
+#home/httpd/htdocs/manual/unixware.html
+#home/httpd/htdocs/manual/upgrading_to_1_3.html
+#home/httpd/htdocs/manual/urlmapping.html
+#home/httpd/htdocs/manual/vhosts
+#home/httpd/htdocs/manual/vhosts/details.html
+#home/httpd/htdocs/manual/vhosts/details_1_2.html
+#home/httpd/htdocs/manual/vhosts/examples.html
+#home/httpd/htdocs/manual/vhosts/fd-limits.html.en
+#home/httpd/htdocs/manual/vhosts/fd-limits.html.html
+#home/httpd/htdocs/manual/vhosts/fd-limits.html.ja.jis
+#home/httpd/htdocs/manual/vhosts/footer.html
+#home/httpd/htdocs/manual/vhosts/header.html
+#home/httpd/htdocs/manual/vhosts/host.html
+#home/httpd/htdocs/manual/vhosts/index.html.en
+#home/httpd/htdocs/manual/vhosts/index.html.html
+#home/httpd/htdocs/manual/vhosts/index.html.ja.jis
+#home/httpd/htdocs/manual/vhosts/ip-based.html
+#home/httpd/htdocs/manual/vhosts/mass.html
+#home/httpd/htdocs/manual/vhosts/name-based.html.en
+#home/httpd/htdocs/manual/vhosts/name-based.html.html
+#home/httpd/htdocs/manual/vhosts/name-based.html.ja.jis
+#home/httpd/htdocs/manual/vhosts/vhosts-in-depth.html
+#home/httpd/htdocs/manual/vhosts/virtual-host.html
+#home/httpd/htdocs/manual/win_compiling.html.en
+#home/httpd/htdocs/manual/win_compiling.html.html
+#home/httpd/htdocs/manual/win_compiling.html.ja.jis
+#home/httpd/htdocs/manual/win_service.html.en
+#home/httpd/htdocs/manual/win_service.html.html
+#home/httpd/htdocs/manual/win_service.html.ja.jis
+#home/httpd/htdocs/manual/windows.html.en
+#home/httpd/htdocs/manual/windows.html.html
+#home/httpd/htdocs/manual/windows.html.ja.jis
+home/httpd/html
+#home/httpd/html/backup
+#home/httpd/html/blob.gif
+#home/httpd/html/favicon.ico
+#home/httpd/html/images
+#home/httpd/html/images/add.gif
+#home/httpd/html/images/addblue.gif
+#home/httpd/html/images/bounceback.png
+#home/httpd/html/images/boxbottom1.png
+#home/httpd/html/images/boxbottom2.png
+#home/httpd/html/images/boxbottom3.png
+#home/httpd/html/images/boxleft.png
+#home/httpd/html/images/boxright.png
+#home/httpd/html/images/boxtop1.png
+#home/httpd/html/images/boxtop2.png
+#home/httpd/html/images/boxtop3.png
+#home/httpd/html/images/clock.gif
+#home/httpd/html/images/delete.gif
+#home/httpd/html/images/download.png
+#home/httpd/html/images/edit.gif
+#home/httpd/html/images/floppy.gif
+#home/httpd/html/images/forward.gif
+#home/httpd/html/images/header.png
+#home/httpd/html/images/info.gif
+#home/httpd/html/images/null.gif
+#home/httpd/html/images/off.gif
+#home/httpd/html/images/on.gif
+#home/httpd/html/images/reload.gif
+#home/httpd/html/images/sflogo.png
+#home/httpd/html/images/web-support.png
+#home/httpd/html/include
+#home/httpd/html/include/domMenu.js
+#home/httpd/html/include/ipcop.css
+#home/httpd/html/index.cgi
+#home/httpd/html/ipcop_big.gif
+#home/httpd/icons
+#home/httpd/icons/README
+#home/httpd/icons/a.gif
+#home/httpd/icons/a.png
+#home/httpd/icons/alert.black.gif
+#home/httpd/icons/alert.black.png
+#home/httpd/icons/alert.red.gif
+#home/httpd/icons/alert.red.png
+#home/httpd/icons/apache_pb.gif
+#home/httpd/icons/apache_pb.png
+#home/httpd/icons/back.gif
+#home/httpd/icons/back.png
+#home/httpd/icons/ball.gray.gif
+#home/httpd/icons/ball.gray.png
+#home/httpd/icons/ball.red.gif
+#home/httpd/icons/ball.red.png
+#home/httpd/icons/binary.gif
+#home/httpd/icons/binary.png
+#home/httpd/icons/binhex.gif
+#home/httpd/icons/binhex.png
+#home/httpd/icons/blank.gif
+#home/httpd/icons/blank.png
+#home/httpd/icons/bomb.gif
+#home/httpd/icons/bomb.png
+#home/httpd/icons/box1.gif
+#home/httpd/icons/box1.png
+#home/httpd/icons/box2.gif
+#home/httpd/icons/box2.png
+#home/httpd/icons/broken.gif
+#home/httpd/icons/broken.png
+#home/httpd/icons/burst.gif
+#home/httpd/icons/burst.png
+#home/httpd/icons/c.gif
+#home/httpd/icons/c.png
+#home/httpd/icons/comp.blue.gif
+#home/httpd/icons/comp.blue.png
+#home/httpd/icons/comp.gray.gif
+#home/httpd/icons/comp.gray.png
+#home/httpd/icons/compressed.gif
+#home/httpd/icons/compressed.png
+#home/httpd/icons/continued.gif
+#home/httpd/icons/continued.png
+#home/httpd/icons/dir.gif
+#home/httpd/icons/dir.png
+#home/httpd/icons/diskimg.gif
+#home/httpd/icons/diskimg.png
+#home/httpd/icons/down.gif
+#home/httpd/icons/down.png
+#home/httpd/icons/dvi.gif
+#home/httpd/icons/dvi.png
+#home/httpd/icons/f.gif
+#home/httpd/icons/f.png
+#home/httpd/icons/folder.gif
+#home/httpd/icons/folder.open.gif
+#home/httpd/icons/folder.open.png
+#home/httpd/icons/folder.png
+#home/httpd/icons/folder.sec.gif
+#home/httpd/icons/folder.sec.png
+#home/httpd/icons/forward.gif
+#home/httpd/icons/forward.png
+#home/httpd/icons/generic.gif
+#home/httpd/icons/generic.png
+#home/httpd/icons/generic.red.gif
+#home/httpd/icons/generic.red.png
+#home/httpd/icons/generic.sec.gif
+#home/httpd/icons/generic.sec.png
+#home/httpd/icons/hand.right.gif
+#home/httpd/icons/hand.right.png
+#home/httpd/icons/hand.up.gif
+#home/httpd/icons/hand.up.png
+#home/httpd/icons/icon.sheet.gif
+#home/httpd/icons/icon.sheet.png
+#home/httpd/icons/image1.gif
+#home/httpd/icons/image1.png
+#home/httpd/icons/image2.gif
+#home/httpd/icons/image2.png
+#home/httpd/icons/image3.gif
+#home/httpd/icons/image3.png
+#home/httpd/icons/index.gif
+#home/httpd/icons/index.png
+#home/httpd/icons/layout.gif
+#home/httpd/icons/layout.png
+#home/httpd/icons/left.gif
+#home/httpd/icons/left.png
+#home/httpd/icons/link.gif
+#home/httpd/icons/link.png
+#home/httpd/icons/movie.gif
+#home/httpd/icons/movie.png
+#home/httpd/icons/p.gif
+#home/httpd/icons/p.png
+#home/httpd/icons/patch.gif
+#home/httpd/icons/patch.png
+#home/httpd/icons/pdf.gif
+#home/httpd/icons/pdf.png
+#home/httpd/icons/pie0.gif
+#home/httpd/icons/pie0.png
+#home/httpd/icons/pie1.gif
+#home/httpd/icons/pie1.png
+#home/httpd/icons/pie2.gif
+#home/httpd/icons/pie2.png
+#home/httpd/icons/pie3.gif
+#home/httpd/icons/pie3.png
+#home/httpd/icons/pie4.gif
+#home/httpd/icons/pie4.png
+#home/httpd/icons/pie5.gif
+#home/httpd/icons/pie5.png
+#home/httpd/icons/pie6.gif
+#home/httpd/icons/pie6.png
+#home/httpd/icons/pie7.gif
+#home/httpd/icons/pie7.png
+#home/httpd/icons/pie8.gif
+#home/httpd/icons/pie8.png
+#home/httpd/icons/portal.gif
+#home/httpd/icons/portal.png
+#home/httpd/icons/ps.gif
+#home/httpd/icons/ps.png
+#home/httpd/icons/quill.gif
+#home/httpd/icons/quill.png
+#home/httpd/icons/right.gif
+#home/httpd/icons/right.png
+#home/httpd/icons/screw1.gif
+#home/httpd/icons/screw1.png
+#home/httpd/icons/screw2.gif
+#home/httpd/icons/screw2.png
+#home/httpd/icons/script.gif
+#home/httpd/icons/script.png
+#home/httpd/icons/small
+#home/httpd/icons/small/README.txt
+#home/httpd/icons/small/back.gif
+#home/httpd/icons/small/back.png
+#home/httpd/icons/small/binary.gif
+#home/httpd/icons/small/binary.png
+#home/httpd/icons/small/binhex.gif
+#home/httpd/icons/small/binhex.png
+#home/httpd/icons/small/blank.gif
+#home/httpd/icons/small/blank.png
+#home/httpd/icons/small/broken.gif
+#home/httpd/icons/small/broken.png
+#home/httpd/icons/small/burst.gif
+#home/httpd/icons/small/burst.png
+#home/httpd/icons/small/comp1.gif
+#home/httpd/icons/small/comp1.png
+#home/httpd/icons/small/comp2.gif
+#home/httpd/icons/small/comp2.png
+#home/httpd/icons/small/compressed.gif
+#home/httpd/icons/small/compressed.png
+#home/httpd/icons/small/continued.gif
+#home/httpd/icons/small/continued.png
+#home/httpd/icons/small/dir.gif
+#home/httpd/icons/small/dir.png
+#home/httpd/icons/small/dir2.gif
+#home/httpd/icons/small/dir2.png
+#home/httpd/icons/small/doc.gif
+#home/httpd/icons/small/doc.png
+#home/httpd/icons/small/forward.gif
+#home/httpd/icons/small/forward.png
+#home/httpd/icons/small/generic.gif
+#home/httpd/icons/small/generic.png
+#home/httpd/icons/small/generic2.gif
+#home/httpd/icons/small/generic2.png
+#home/httpd/icons/small/generic3.gif
+#home/httpd/icons/small/generic3.png
+#home/httpd/icons/small/image.gif
+#home/httpd/icons/small/image.png
+#home/httpd/icons/small/image2.gif
+#home/httpd/icons/small/image2.png
+#home/httpd/icons/small/index.gif
+#home/httpd/icons/small/index.png
+#home/httpd/icons/small/key.gif
+#home/httpd/icons/small/key.png
+#home/httpd/icons/small/movie.gif
+#home/httpd/icons/small/movie.png
+#home/httpd/icons/small/patch.gif
+#home/httpd/icons/small/patch.png
+#home/httpd/icons/small/ps.gif
+#home/httpd/icons/small/ps.png
+#home/httpd/icons/small/rainbow.gif
+#home/httpd/icons/small/rainbow.png
+#home/httpd/icons/small/sound.gif
+#home/httpd/icons/small/sound.png
+#home/httpd/icons/small/sound2.gif
+#home/httpd/icons/small/sound2.png
+#home/httpd/icons/small/tar.gif
+#home/httpd/icons/small/tar.png
+#home/httpd/icons/small/text.gif
+#home/httpd/icons/small/text.png
+#home/httpd/icons/small/transfer.gif
+#home/httpd/icons/small/transfer.png
+#home/httpd/icons/small/unknown.gif
+#home/httpd/icons/small/unknown.png
+#home/httpd/icons/small/uu.gif
+#home/httpd/icons/small/uu.png
+#home/httpd/icons/sound1.gif
+#home/httpd/icons/sound1.png
+#home/httpd/icons/sound2.gif
+#home/httpd/icons/sound2.png
+#home/httpd/icons/sphere1.gif
+#home/httpd/icons/sphere1.png
+#home/httpd/icons/sphere2.gif
+#home/httpd/icons/sphere2.png
+#home/httpd/icons/tar.gif
+#home/httpd/icons/tar.png
+#home/httpd/icons/tex.gif
+#home/httpd/icons/tex.png
+#home/httpd/icons/text.gif
+#home/httpd/icons/text.png
+#home/httpd/icons/transfer.gif
+#home/httpd/icons/transfer.png
+#home/httpd/icons/unknown.gif
+#home/httpd/icons/unknown.png
+#home/httpd/icons/up.gif
+#home/httpd/icons/up.png
+#home/httpd/icons/uu.gif
+#home/httpd/icons/uu.png
+#home/httpd/icons/uuencoded.gif
+#home/httpd/icons/uuencoded.png
+#home/httpd/icons/world1.gif
+#home/httpd/icons/world1.png
+#home/httpd/icons/world2.gif
+#home/httpd/icons/world2.png
+#usr/bin/ab
+#usr/bin/apachectl
+#usr/bin/apxs
+#usr/bin/checkgid
+#usr/bin/dbmmanage
+#usr/bin/htdigest
+usr/bin/htpasswd
+#usr/bin/logresolve
+#usr/bin/rotatelogs
+#usr/include/apache
+#usr/include/apache/ap.h
+#usr/include/apache/ap_alloc.h
+#usr/include/apache/ap_compat.h
+#usr/include/apache/ap_config.h
+#usr/include/apache/ap_config_auto.h
+#usr/include/apache/ap_ctx.h
+#usr/include/apache/ap_ctype.h
+#usr/include/apache/ap_ebcdic.h
+#usr/include/apache/ap_hook.h
+#usr/include/apache/ap_md5.h
+#usr/include/apache/ap_mm.h
+#usr/include/apache/ap_mmn.h
+#usr/include/apache/ap_sha1.h
+#usr/include/apache/buff.h
+#usr/include/apache/compat.h
+#usr/include/apache/conf.h
+#usr/include/apache/explain.h
+#usr/include/apache/fnmatch.h
+#usr/include/apache/hsregex.h
+#usr/include/apache/http_conf_globals.h
+#usr/include/apache/http_config.h
+#usr/include/apache/http_core.h
+#usr/include/apache/http_log.h
+#usr/include/apache/http_main.h
+#usr/include/apache/http_protocol.h
+#usr/include/apache/http_request.h
+#usr/include/apache/http_vhost.h
+#usr/include/apache/httpd.h
+#usr/include/apache/multithread.h
+#usr/include/apache/os-inline.c
+#usr/include/apache/os.h
+#usr/include/apache/rfc1413.h
+#usr/include/apache/scoreboard.h
+#usr/include/apache/util_date.h
+#usr/include/apache/util_md5.h
+#usr/include/apache/util_script.h
+#usr/include/apache/util_uri.h
+#usr/include/apache/xml
+#usr/include/apache/xml/asciitab.h
+#usr/include/apache/xml/hashtable.h
+#usr/include/apache/xml/iasciitab.h
+#usr/include/apache/xml/latin1tab.h
+#usr/include/apache/xml/nametab.h
+#usr/include/apache/xml/utf8tab.h
+#usr/include/apache/xml/xmldef.h
+#usr/include/apache/xml/xmlparse.h
+#usr/include/apache/xml/xmlrole.h
+#usr/include/apache/xml/xmltok.h
+#usr/include/apache/xml/xmltok_impl.h
+#usr/libexec
+usr/sbin/httpd
+#usr/share/man/man1/dbmmanage.1
+#usr/share/man/man1/htdigest.1
+#usr/share/man/man1/htpasswd.1
+#usr/share/man/man8/ab.8
+#usr/share/man/man8/apachectl.8
+#usr/share/man/man8/apxs.8
+#usr/share/man/man8/httpd.8
+#usr/share/man/man8/logresolve.8
+#usr/share/man/man8/rotatelogs.8
+var/log/httpd
+#var/proxy
+##
+## arping-2.0.5
+##
+usr/sbin/arping
+##
+## beep-1.2.2
+##
+usr/bin/beep
+##
+## bind-9.2.5
+##
+usr/bin/host
+usr/bin/nsupdate
+##
+## capi4k-utils-2004-10-06
+##
+#etc/ppp/peers/isdn
+#etc/ppp/peers/isdn/arcor
+#etc/ppp/peers/isdn/otelo
+#etc/ppp/peers/isdn/talkline
+#etc/ppp/peers/isdn/avm
+#etc/ppp/peers/isdn/avm-ml
+#etc/ppp/peers/isdn/leased
+#etc/drdsl
+#etc/drdsl/adsl.conf
+#usr/include/capi20.h
+#usr/include/capiutils.h
+#usr/include/capicmd.h
+usr/lib/pppd/2.4.2/capiplugin.so
+usr/lib/pppd/2.4.2/userpass.so
+#usr/lib/libcapi20dyn.a
+usr/lib/libcapi20.so.2.0.9
+usr/lib/libcapi20.so.2
+usr/lib/libcapi20.so
+#usr/lib/libcapi20.la
+#usr/lib/libcapi20.a
+usr/sbin/capiinit
+#usr/share/man/man8/avmcapictrl.8
+#usr/share/man/man8/capiplugin.8
+#sbin/avmcapictrl
+##
+## cdrtools-2.01
+##
+#usr/bin/cdda2wav
+#usr/bin/cdrecord
+#usr/bin/devdump
+#usr/bin/isodebug
+#usr/bin/isodump
+#usr/bin/isoinfo
+#usr/bin/isovfy
+#usr/bin/mkhybrid
+#usr/bin/mkisofs
+#usr/bin/readcd
+#usr/bin/scgcheck
+#usr/bin/skel
+#usr/include/align.h
+#usr/include/avoffset.h
+#usr/lib/libdeflt.a
+#usr/lib/libedc_ecc.a
+#usr/lib/libfile.a
+#usr/lib/libhfs.a
+#usr/lib/libparanoia.a
+#usr/lib/librscg.a
+#usr/lib/libscg.a
+#usr/lib/libschily.a
+#usr/lib/libunls.a
+#usr/sbin/rscsi
+#usr/share/man/man1/cdda2ogg.1
+#usr/share/man/man1/cdda2wav.1
+#usr/share/man/man1/cdrecord.1
+#usr/share/man/man1/readcd.1
+#usr/share/man/man1/scgcheck.1
+#usr/share/man/man5/makefiles.5
+#usr/share/man/man5/makerules.5
+#usr/share/man/man8/isoinfo.8
+#usr/share/man/man8/mkhybrid.8
+#usr/share/man/man8/mkisofs.8
+##
+## CnxADSL-TgrATMcln-20041004
+##
+lib/modules/2.4.31/misc/CnxADSL.o.gz
+usr/sbin/cnxadslconfig
+usr/sbin/cnxadslstatus
+#usr/sbin/cnxadslautolog
+#etc/Conexant
+etc/Conexant/CnxTgF.hex
+etc/Conexant/CnxYkF.hex
+etc/Conexant/cnxadsl.conf
+etc/Conexant/cnxadslload
+etc/Conexant/cnxadslctl.conf
+##
+## CnxADSL-TgrATMcln-20041004-smp
+##
+lib/modules/2.4.31-smp/misc/CnxADSL.o.gz
+##
+## configroot
+##
+var/ipfire
+#var/ipcop/alcatelusb
+#var/ipcop/auth
+#var/ipcop/auth/users
+#var/ipcop/backup
+#var/ipcop/backup/exclude.hardware
+#var/ipcop/backup/exclude.system
+#var/ipcop/backup/exclude.user
+#var/ipcop/backup/include.system
+#var/ipcop/backup/include.user
+#var/ipcop/backup/sets
+#var/ipcop/ca
+#var/ipcop/certs
+#var/ipcop/certs/index.txt
+#var/ipcop/certs/serial
+#var/ipcop/cnx_pci
+#var/ipcop/countries.pl
+#var/ipcop/crls
+#var/ipcop/ddns
+#var/ipcop/ddns/config
+#var/ipcop/ddns/ipcache
+#var/ipcop/ddns/noipsettings
+#var/ipcop/ddns/settings
+#var/ipcop/dhcp
+#var/ipcop/dhcp/advoptions
+#var/ipcop/dhcp/advoptions-list
+#var/ipcop/dhcp/fixleases
+#var/ipcop/dhcp/settings
+#var/ipcop/dhcpc
+#var/ipcop/dhcpc/dhcpcd.exe
+#var/ipcop/dmzholes
+#var/ipcop/dmzholes/config
+#var/ipcop/eagle-usb
+#var/ipcop/eciadsl
+#var/ipcop/ethernet
+#var/ipcop/ethernet/aliases
+#var/ipcop/ethernet/settings
+#var/ipcop/general-functions.pl
+#var/ipcop/header.pl
+#var/ipcop/isdn
+#var/ipcop/isdn/settings
+#var/ipcop/key
+#var/ipcop/key/ipcop.gpg
+#var/ipcop/lang.pl
+#var/ipcop/langs
+#var/ipcop/langs/bz.pl
+#var/ipcop/langs/cs.pl
+#var/ipcop/langs/da.pl
+#var/ipcop/langs/de.pl
+#var/ipcop/langs/el.pl
+#var/ipcop/langs/en.pl
+#var/ipcop/langs/es.pl
+#var/ipcop/langs/fi.pl
+#var/ipcop/langs/fr.pl
+#var/ipcop/langs/hu.pl
+#var/ipcop/langs/it.pl
+#var/ipcop/langs/la.pl
+#var/ipcop/langs/list
+#var/ipcop/langs/lt.pl
+#var/ipcop/langs/nl.pl
+#var/ipcop/langs/no.pl
+#var/ipcop/langs/pl.pl
+#var/ipcop/langs/pt.pl
+#var/ipcop/langs/ro.pl
+#var/ipcop/langs/ru.pl
+#var/ipcop/langs/so.pl
+#var/ipcop/langs/sv.pl
+#var/ipcop/langs/th.pl
+#var/ipcop/langs/tr.pl
+#var/ipcop/langs/vi.pl
+#var/ipcop/langs/zh.pl
+#var/ipcop/logging
+#var/ipcop/logging/settings
+#var/ipcop/main
+#var/ipcop/main/hosts
+#var/ipcop/main/settings
+#var/ipcop/modem
+#var/ipcop/modem/defaults
+#var/ipcop/modem/settings
+#var/ipcop/patches
+#var/ipcop/patches/available
+#var/ipcop/patches/installed
+#var/ipcop/portfw
+#var/ipcop/portfw/config
+#var/ipcop/ppp
+#var/ipcop/ppp/fake-resolv.conf
+#var/ipcop/ppp/settings
+#var/ipcop/ppp/settings-1
+#var/ipcop/ppp/settings-2
+#var/ipcop/ppp/settings-3
+#var/ipcop/ppp/settings-4
+#var/ipcop/ppp/settings-5
+#var/ipcop/proxy
+#var/ipcop/proxy/acl-1.4
+#var/ipcop/proxy/settings
+#var/ipcop/red
+#var/ipcop/remote
+#var/ipcop/remote/settings
+#var/ipcop/shaping
+#var/ipcop/shaping/config
+#var/ipcop/shaping/settings
+#var/ipcop/snort
+#var/ipcop/snort/settings
+#var/ipcop/time
+#var/ipcop/time/settings
+#var/ipcop/vpn
+#var/ipcop/vpn/caconfig
+#var/ipcop/vpn/config
+#var/ipcop/vpn/ipsec.conf
+#var/ipcop/vpn/ipsec.secrets
+#var/ipcop/vpn/settings
+#var/ipcop/wireless
+#var/ipcop/wireless/config
+#var/ipcop/wireless/settings
+#var/ipcop/xtaccess
+#var/ipcop/xtaccess/config
+##
+## cxacru-2003-10-05
+##
+#lib/modules/2.4.31/kernel/drivers/usb/cxacru.o.gz
+usr/sbin/cxfirm1.bin
+usr/sbin/cxfirm2.bin
+usr/sbin/cxfirm3.bin
+usr/sbin/cxfirm4.bin
+usr/sbin/cxfirm5.bin
+usr/sbin/cxioctl
+usr/sbin/cxload
+##
+## cxacru-2003-10-05-smp
+##
+#lib/modules/2.4.31-smp/kernel/drivers/usb/cxacru.o.gz
+#usr/sbin/cxfirm1.bin
+#usr/sbin/cxfirm2.bin
+#usr/sbin/cxfirm3.bin
+#usr/sbin/cxfirm4.bin
+#usr/sbin/cxfirm5.bin
+#usr/sbin/cxioctl
+#usr/sbin/cxload
+##
+## dhcp-3.0.2
+##
+etc/dhcpd.conf
+#sbin/dhclient
+#sbin/dhclient-script
+#usr/bin/omshell
+#usr/local/include/dhcpctl.h
+#usr/local/include/isc-dhcp
+#usr/local/include/isc-dhcp/boolean.h
+#usr/local/include/isc-dhcp/dst.h
+#usr/local/include/isc-dhcp/int.h
+#usr/local/include/isc-dhcp/lang.h
+#usr/local/include/isc-dhcp/list.h
+#usr/local/include/isc-dhcp/result.h
+#usr/local/include/isc-dhcp/types.h
+#usr/local/include/omapip
+#usr/local/include/omapip/alloc.h
+#usr/local/include/omapip/buffer.h
+#usr/local/include/omapip/omapip.h
+#usr/local/lib/libdhcpctl.a
+#usr/local/lib/libomapi.a
+usr/sbin/dhcpd
+#usr/sbin/dhcrelay
+#usr/share/man/man1/omshell.1
+#usr/share/man/man3/dhcpctl.3
+#usr/share/man/man3/omapi.3
+#usr/share/man/man3/omshell.3
+#usr/share/man/man5/dhclient.conf.5
+#usr/share/man/man5/dhclient.leases.5
+#usr/share/man/man5/dhcp-eval.5
+#usr/share/man/man5/dhcp-options.5
+#usr/share/man/man5/dhcpd.conf.5
+#usr/share/man/man5/dhcpd.leases.5
+#usr/share/man/man8/dhclient-script.8
+#usr/share/man/man8/dhclient.8
+#usr/share/man/man8/dhcpd.8
+#usr/share/man/man8/dhcrelay.8
+#var/state
+#var/state/dhcp
+var/state/dhcp/dhcpd.leases
+##
+## dhcpcd-1.3.22-pl4
+##
+#etc/dhcpc
+usr/sbin/dhcpcd
+#usr/share/man/man8/dhcpcd.8
+##
+## dnsmasq-2.22
+##
+usr/sbin/dnsmasq
+#usr/share/man/man8/dnsmasq.8
+##
+## dosfstools-2.11
+##
+#sbin/dosfsck
+#sbin/fsck.msdos
+#sbin/fsck.vfat
+#sbin/mkdosfs
+#sbin/mkfs.msdos
+#sbin/mkfs.vfat
+#usr/share/man/man8/dosfsck.8
+#usr/share/man/man8/fsck.msdos.8
+#usr/share/man/man8/fsck.vfat.8
+#usr/share/man/man8/mkdosfs.8
+#usr/share/man/man8/mkfs.msdos.8
+#usr/share/man/man8/mkfs.vfat.8
+##
+## eagle-usb-2.3.2
+##
+#etc/eagle-usb
+etc/eagle-usb/CMVeiWO.txt
+etc/eagle-usb/CMVepES.txt
+etc/eagle-usb/CMVepES03.txt
+etc/eagle-usb/CMVepFR.txt
+etc/eagle-usb/CMVepFR04.txt
+etc/eagle-usb/CMVepFR10.txt
+etc/eagle-usb/CMVepIT.txt
+etc/eagle-usb/CMVepWO.txt
+#etc/eagle-usb/eagle-usb.conf.template
+#lib/modules/2.4.31/misc
+lib/modules/2.4.31/misc/eagle-usb.o.gz
+usr/sbin/eaglectrl
+usr/sbin/eaglestat
+usr/sbin/pppoa
+#usr/share/eagle-usb
+#usr/share/eagle-usb/dsp
+usr/share/eagle-usb/dsp/dsp_code_isdn.bin
+usr/share/eagle-usb/dsp/dsp_code_pots.bin
+##
+## eagle-usb-2.3.2-smp
+##
+#lib/modules/2.4.31-smp/misc
+lib/modules/2.4.31-smp/misc/eagle-usb.o.gz
+##
+## eciadsl-usermode-0.11
+##
+#etc/eciadsl
+etc/eciadsl/eciadsl.conf
+etc/eciadsl/firmware00.bin
+etc/eciadsl/modems.db
+usr/sbin/eciadsl-firmware
+usr/sbin/eciadsl-pppoeci
+usr/sbin/eciadsl-synch
+##
+## ethtool-3
+##
+usr/sbin/ethtool
+#usr/share/man/man8/ethtool.8
+##
+## ez-ipupdate-3.0.11b8
+##
+usr/bin/ez-ipupdate
+##
+## fcdsl-suse8.1-03.11.02
+##
+#etc/fcdsl/fcdsl.conf
+#usr/lib/isdn/fdslbase.bin
+#lib/modules/2.4.31/misc/fcdsl.o.gz
+##
+## fcdsl2-suse8.1-03.11.03
+##
+#etc/fcdsl/fcdsl2.conf
+#usr/lib/isdn/fds2base.bin
+#lib/modules/2.4.31/misc/fcdsl2.o.gz
+##
+## fcdslsl-suse8.1-03.11.02
+##
+#etc/fcdsl/fcdslsl.conf
+#usr/lib/isdn/fdssbase.bin
+#lib/modules/2.4.31/misc/fcdslsl.o.gz
+##
+## fcdslusb-suse8.1-03.11.02
+##
+#etc/fcdsl/fcdslusb.conf
+#usr/lib/isdn/fdsubase.frm
+#lib/modules/2.4.31/misc/fcdslusb.o.gz
+##
+## fcdslslusb-suse8.1-03.11.04
+##
+#etc/fcdsl/fcdslslusb.conf
+#usr/lib/isdn/fdlubase.frm
+#lib/modules/2.4.31/misc/fcdslslusb.o.gz
+##
+## fcdsl-suse8.1-03.11.02-smp
+##
+#lib/modules/2.4.31-smp/misc/fcdsl.o.gz
+##
+## fcdsl2-suse8.1-03.11.03-smp
+##
+#lib/modules/2.4.31-smp/misc/fcdsl2.o.gz
+##
+## fcdslsl-suse8.1-03.11.02-smp
+##
+#lib/modules/2.4.31-smp/misc/fcdslsl.o.gz
+##
+## fcdslusb-suse8.1-03.11.02-smp
+##
+#lib/modules/2.4.31-smp/misc/fcdslusb.o.gz
+##
+## fcdslslusb-suse8.1-03.11.04-smp
+##
+#lib/modules/2.4.31-smp/misc/fcdslslusb.o.gz
+##
+## fcron-2.0.2
+##
+etc/fcron.allow
+etc/fcron.conf
+etc/fcron.deny
+usr/bin/fcronsighup
+usr/bin/fcrontab
+usr/sbin/fcron
+#usr/share/doc/fcron-2.0.1
+#usr/share/doc/fcron-2.0.1/fcron.conf.5.html
+#usr/share/doc/fcron-2.0.1/LICENSE
+#usr/share/doc/fcron-2.0.1/README
+#usr/share/doc/fcron-2.0.1/fcron.8.html
+#usr/share/doc/fcron-2.0.1/CHANGES
+#usr/share/doc/fcron-2.0.1/fcrontab.1.html
+#usr/share/doc/fcron-2.0.1/fcrontab.5.html
+#usr/share/man/man1/fcrontab.1
+#usr/share/man/man3/bitstring.3
+#usr/share/man/man5/fcrontab.5
+#usr/share/man/man5/fcron.conf.5
+#usr/share/man/man8/fcron.8
+var/spool/cron/root.orig
+var/spool/cron/new.root
+##
+## GD-2.12
+##
+#usr/lib/perl5/5.8.5/i386-linux/perllocal.pod
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/GD
+usr/lib/perl5/site_perl/5.8.5/i386-linux/GD.pm
+usr/lib/perl5/site_perl/5.8.5/i386-linux/GD/Polyline.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/GD
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/GD/.packlist
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/GD/GD.bs
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/GD/GD.so
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/GD/autosplit.ix
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/qd.pl
+#usr/share/man/man3/GD.3
+#usr/share/man/man3/GD::Polyline.3
+##
+## gnupg-1.4.2
+##
+#root/.gnupg
+root/.gnupg/gpg.conf
+root/.gnupg/pubring.gpg
+#root/.gnupg/pubring.gpg~
+root/.gnupg/secring.gpg
+root/.gnupg/trustdb.gpg
+usr/bin/gpg
+#usr/bin/gpgsplit
+#usr/bin/gpgv
+#usr/libexec/gnupg
+#usr/share/gnupg
+#usr/share/gnupg/FAQ
+#usr/share/gnupg/faq.html
+#usr/share/gnupg/options.skel
+#usr/share/info/gpg.info
+#usr/share/info/gpgv.info
+#usr/share/man/man1/gpg.1
+#usr/share/man/man1/gpgv.1
+#usr/share/man/man7/gnupg.7
+##
+## hdparm-6.3
+##
+sbin/hdparm
+#usr/share/man/man8/hdparm.8
+##
+## ibod
+##
+etc/ppp/ibod.cf
+usr/sbin/ibod
+##
+## initscripts
+##
+#etc/rc.d
+#etc/rc.d/helper
+etc/rc.d/helper/getdnsfromdhcpc.pl
+etc/rc.d/helper/writeipac.pl
+etc/rc.d/rc.3cp4218usbadsl
+etc/rc.d/rc.alcatelusb
+etc/rc.d/rc.alcatelusbk
+etc/rc.d/rc.amedynusbadsl
+etc/rc.d/rc.bewanadsl
+etc/rc.d/rc.conexantusbadsl
+etc/rc.d/rc.conexantpciadsl
+etc/rc.d/rc.connectioncheck
+etc/rc.d/rc.eagleusbadsl
+etc/rc.d/rc.eciadsl
+etc/rc.d/rc.firewall
+etc/rc.d/rc.firewall.local
+etc/rc.d/rc.flash.down
+etc/rc.d/rc.flash.up
+etc/rc.d/rc.fritzdsl
+etc/rc.d/rc.halt
+etc/rc.d/rc.isdn
+etc/rc.d/rc.local
+etc/rc.d/rc.netaddress.down
+etc/rc.d/rc.netaddress.up
+etc/rc.d/rc.network
+etc/rc.d/rc.pulsardsl
+etc/rc.d/rc.red
+etc/rc.d/rc.sysinit
+etc/rc.d/rc.updatered
+##
+## iptables-1.3.4
+##
+#lib/iptables
+lib/iptables/libipt_CLASSIFY.so
+lib/iptables/libipt_CONNMARK.so
+lib/iptables/libipt_DNAT.so
+lib/iptables/libipt_DSCP.so
+lib/iptables/libipt_ECN.so
+lib/iptables/libipt_IPV4OPTSSTRIP.so
+lib/iptables/libipt_LOG.so
+lib/iptables/libipt_MARK.so
+lib/iptables/libipt_MASQUERADE.so
+lib/iptables/libipt_MIRROR.so
+lib/iptables/libipt_NETLINK.so
+lib/iptables/libipt_NETMAP.so
+lib/iptables/libipt_NFQUEUE.so
+lib/iptables/libipt_NOTRACK.so
+lib/iptables/libipt_POOL.so
+lib/iptables/libipt_REDIRECT.so
+lib/iptables/libipt_REJECT.so
+lib/iptables/libipt_SAME.so
+lib/iptables/libipt_SET.so
+lib/iptables/libipt_SNAT.so
+lib/iptables/libipt_TARPIT.so
+lib/iptables/libipt_TCPMSS.so
+lib/iptables/libipt_TOS.so
+lib/iptables/libipt_TRACE.so
+lib/iptables/libipt_TTL.so
+lib/iptables/libipt_ULOG.so
+lib/iptables/libipt_addrtype.so
+lib/iptables/libipt_ah.so
+lib/iptables/libipt_comment.so
+lib/iptables/libipt_connlimit.so
+lib/iptables/libipt_connmark.so
+lib/iptables/libipt_conntrack.so
+lib/iptables/libipt_dscp.so
+lib/iptables/libipt_dstlimit.so
+lib/iptables/libipt_ecn.so
+lib/iptables/libipt_esp.so
+lib/iptables/libipt_fuzzy.so
+lib/iptables/libipt_hashlimit.so
+lib/iptables/libipt_helper.so
+lib/iptables/libipt_icmp.so
+lib/iptables/libipt_iprange.so
+lib/iptables/libipt_ipv4options.so
+lib/iptables/libipt_length.so
+lib/iptables/libipt_limit.so
+lib/iptables/libipt_mac.so
+lib/iptables/libipt_mark.so
+lib/iptables/libipt_mport.so
+lib/iptables/libipt_multiport.so
+lib/iptables/libipt_nth.so
+lib/iptables/libipt_osf.so
+lib/iptables/libipt_owner.so
+lib/iptables/libipt_physdev.so
+lib/iptables/libipt_pkttype.so
+lib/iptables/libipt_pool.so
+lib/iptables/libipt_psd.so
+lib/iptables/libipt_quota.so
+lib/iptables/libipt_random.so
+lib/iptables/libipt_realm.so
+lib/iptables/libipt_recent.so
+lib/iptables/libipt_rpc.so
+lib/iptables/libipt_sctp.so
+lib/iptables/libipt_set.so
+lib/iptables/libipt_standard.so
+lib/iptables/libipt_state.so
+lib/iptables/libipt_string.so
+lib/iptables/libipt_tcp.so
+lib/iptables/libipt_tcpmss.so
+lib/iptables/libipt_time.so
+lib/iptables/libipt_tos.so
+lib/iptables/libipt_ttl.so
+lib/iptables/libipt_u32.so
+lib/iptables/libipt_udp.so
+lib/iptables/libipt_unclean.so
+sbin/iptables
+#sbin/iptables-restore
+#sbin/iptables-save
+#usr/share/man/man8/iptables-restore.8
+#usr/share/man/man8/iptables-save.8
+#usr/share/man/man8/iptables.8
+##
+## ipac-ng-1.31
+##
+bin/mail
+#etc/ipac-ng
+etc/ipac-ng/ipac.conf
+etc/ipac-ng/rules.conf
+usr/sbin/fetchipac
+#usr/sbin/ipac-convert
+usr/sbin/ipacsum
+#usr/share/man/man8/fetchipac.8
+#usr/share/man/man8/ipac-convert.8
+#usr/share/man/man8/ipacsum.8
+var/log/ip-acct
+##
+## ipaddr-1.2
+##
+#usr/lib/python2.3/ipaddr.py
+usr/lib/python2.3/ipaddr.pyc
+##
+## iproute2-2.4.7-now-ss010824
+##
+sbin/ip
+sbin/rtmon
+sbin/tc
+##
+## isapnptools-1.26
+##
+#usr/include/isapnp
+#usr/include/isapnp/callbacks.h
+#usr/include/isapnp/errcodes.h
+#usr/include/isapnp/errenum.h
+#usr/include/isapnp/iopl.h
+#usr/include/isapnp/mysnprtf.h
+#usr/include/isapnp/pnp-access.h
+#usr/include/isapnp/pnp.h
+#usr/include/isapnp/realtime.h
+#usr/include/isapnp/release.h
+#usr/include/isapnp/res-access.h
+#usr/include/isapnp/resource.h
+#usr/lib/libisapnp.a
+usr/sbin/isapnp
+#usr/sbin/pnpdump
+#usr/share/man/man5/isapnp.conf.5
+#usr/share/man/man8/isapnp.8
+#usr/share/man/man8/pnpdump.8
+##
+## isdn4k-utils.v3.2p1
+##
+#usr/lib/isdn/ISAR.BIN
+#usr/lib/isdn/dnload.bin
+#usr/lib/isdn/ds4bri.bit
+#usr/lib/isdn/dspdload.bin
+#usr/lib/isdn/loadpg.bin
+#usr/lib/isdn/pc_1t_ca.bin
+#usr/lib/isdn/pc_eu_ca.bin
+#usr/lib/isdn/prload.bin
+#usr/lib/isdn/te_dmlt.pm
+#usr/lib/isdn/te_etsi.p
+#usr/lib/isdn/te_etsi.qm0
+#usr/lib/isdn/te_etsi.qm1
+#usr/lib/isdn/te_etsi.qm2
+#usr/lib/isdn/te_etsi.qm3
+#usr/lib/isdn/te_etsi.sm
+#usr/lib/isdn/te_etsi.sq
+#usr/lib/isdn/te_etsi.sx
+#usr/lib/isdn/te_etsi.sy
+#usr/sbin/divaload
+#usr/sbin/divalog
+#usr/sbin/divalogd
+#usr/sbin/eiconctrl
+#usr/sbin/hisaxctrl
+#usr/sbin/icnctrl
+usr/sbin/ipppd
+usr/sbin/isdnctrl
+#usr/sbin/pcbitctl
+#usr/share/man/man4/isdn_audio.4
+#usr/share/man/man4/isdnctrl.4
+#usr/share/man/man4/isdninfo.4
+#usr/share/man/man4/ttyI.4
+#usr/share/man/man7/isdn_cause.7
+#usr/share/man/man8/.isdnctrl_conf.8
+#usr/share/man/man8/eiconctrl.8
+#usr/share/man/man8/hisaxctrl.8
+#usr/share/man/man8/icnctrl.8
+#usr/share/man/man8/ipppd.8
+#usr/share/man/man8/isdnctrl.8
+#usr/share/man/man8/pcbitctl.8
+##
+## kudzu-0.99.50
+##
+#etc/rc.d/init.d
+#etc/rc.d/init.d/kudzu
+#etc/sysconfig
+#etc/sysconfig/kudzu
+etc/updfstab.conf
+etc/updfstab.conf.default
+#usr/include/kudzu
+#usr/include/kudzu/ddc.h
+#usr/include/kudzu/device.h
+#usr/include/kudzu/ide.h
+#usr/include/kudzu/isapnp.h
+#usr/include/kudzu/keyboard.h
+#usr/include/kudzu/kudzu.h
+#usr/include/kudzu/misc.h
+#usr/include/kudzu/modules.h
+#usr/include/kudzu/parallel.h
+#usr/include/kudzu/pci.h
+#usr/include/kudzu/psaux.h
+#usr/include/kudzu/sbus.h
+#usr/include/kudzu/scsi.h
+#usr/include/kudzu/serial.h
+#usr/include/kudzu/usb.h
+#usr/lib/libkudzu.a
+#usr/lib/libkudzu_loader.a
+usr/lib/python2.3/site-packages/_kudzumodule.so
+#usr/lib/python2.3/site-packages/kudzu.py
+usr/lib/python2.3/site-packages/kudzu.pyc
+#usr/sbin/kudzu
+#usr/sbin/module_upgrade
+usr/sbin/updfstab
+#usr/share/locale/bs
+#usr/share/locale/bs/LC_MESSAGES
+#usr/share/locale/bs/LC_MESSAGES/kudzu.mo
+#usr/share/locale/cs/LC_MESSAGES/kudzu.mo
+#usr/share/locale/da/LC_MESSAGES/kudzu.mo
+#usr/share/locale/de/LC_MESSAGES/kudzu.mo
+#usr/share/locale/es/LC_MESSAGES/kudzu.mo
+#usr/share/locale/eu_ES
+#usr/share/locale/eu_ES/LC_MESSAGES
+#usr/share/locale/eu_ES/LC_MESSAGES/kudzu.mo
+#usr/share/locale/fi/LC_MESSAGES/kudzu.mo
+#usr/share/locale/fr/LC_MESSAGES/kudzu.mo
+#usr/share/locale/gl/LC_MESSAGES/kudzu.mo
+#usr/share/locale/hu/LC_MESSAGES/kudzu.mo
+#usr/share/locale/id
+#usr/share/locale/id/LC_MESSAGES
+#usr/share/locale/id/LC_MESSAGES/kudzu.mo
+#usr/share/locale/is
+#usr/share/locale/is/LC_MESSAGES
+#usr/share/locale/is/LC_MESSAGES/kudzu.mo
+#usr/share/locale/it/LC_MESSAGES/kudzu.mo
+#usr/share/locale/ja/LC_MESSAGES/kudzu.mo
+#usr/share/locale/ko/LC_MESSAGES/kudzu.mo
+#usr/share/locale/nn
+#usr/share/locale/nn/LC_MESSAGES
+#usr/share/locale/nn/LC_MESSAGES/kudzu.mo
+#usr/share/locale/no/LC_MESSAGES/kudzu.mo
+#usr/share/locale/pl/LC_MESSAGES/kudzu.mo
+#usr/share/locale/pt
+#usr/share/locale/pt/LC_MESSAGES
+#usr/share/locale/pt/LC_MESSAGES/kudzu.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/kudzu.mo
+#usr/share/locale/ro
+#usr/share/locale/ro/LC_MESSAGES
+#usr/share/locale/ro/LC_MESSAGES/kudzu.mo
+#usr/share/locale/ru
+#usr/share/locale/ru/LC_MESSAGES
+#usr/share/locale/ru/LC_MESSAGES/kudzu.mo
+#usr/share/locale/sk/LC_MESSAGES/kudzu.mo
+#usr/share/locale/sl/LC_MESSAGES/kudzu.mo
+#usr/share/locale/sr
+#usr/share/locale/sr/LC_MESSAGES
+#usr/share/locale/sr/LC_MESSAGES/kudzu.mo
+#usr/share/locale/sv/LC_MESSAGES/kudzu.mo
+#usr/share/locale/tr/LC_MESSAGES/kudzu.mo
+#usr/share/locale/uk
+#usr/share/locale/uk/LC_MESSAGES
+#usr/share/locale/uk/LC_MESSAGES/kudzu.mo
+#usr/share/locale/wa
+#usr/share/locale/wa/LC_MESSAGES
+#usr/share/locale/wa/LC_MESSAGES/kudzu.mo
+#usr/share/locale/zh
+#usr/share/locale/zh/LC_MESSAGES
+#usr/share/locale/zh/LC_MESSAGES/kudzu.mo
+#usr/share/locale/zh_CN.GB2312
+#usr/share/locale/zh_CN.GB2312/LC_MESSAGES
+#usr/share/locale/zh_CN.GB2312/LC_MESSAGES/kudzu.mo
+#usr/share/locale/zh_TW.Big5
+#usr/share/locale/zh_TW.Big5/LC_MESSAGES
+#usr/share/locale/zh_TW.Big5/LC_MESSAGES/kudzu.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/kudzu.mo
+#usr/share/man/man8/kudzu.8
+#usr/share/man/man8/module_upgrade.8
+#usr/share/man/man8/updfstab.8
+##
+## logrotate-3.7
+##
+usr/sbin/logrotate
+#usr/share/man/man8/logrotate.8
+var/lib/logrotate.status
+##
+## logwatch-6.1.2
+##
+#etc/log.d
+#etc/log.d/conf
+etc/log.d/conf/ignore.conf
+#etc/log.d/conf/logfiles
+etc/log.d/conf/logfiles/http.conf
+etc/log.d/conf/logfiles/messages.conf
+etc/log.d/conf/logfiles/secure.conf
+etc/log.d/conf/logwatch.conf
+#etc/log.d/conf/services
+etc/log.d/conf/services/dhcpd.conf
+etc/log.d/conf/services/http.conf
+etc/log.d/conf/services/init.conf
+etc/log.d/conf/services/kernel.conf
+etc/log.d/conf/services/modprobe.conf
+#etc/log.d/conf/services/openvpn.conf
+#etc/log.d/conf/services/pam_unix.conf
+etc/log.d/conf/services/pluto.conf
+etc/log.d/conf/services/raid.conf
+etc/log.d/conf/services/scsi.conf
+etc/log.d/conf/services/secure.conf
+etc/log.d/conf/services/sshd.conf
+#etc/log.d/conf/services/sshd2.conf
+etc/log.d/conf/services/syslogd.conf
+etc/log.d/conf/services/xntpd.conf
+etc/log.d/conf/services/zz-disk_space.conf
+#etc/log.d/conf/services/zz-network.conf
+#etc/log.d/lib
+etc/log.d/lib/Logwatch.pm
+#etc/log.d/scripts
+etc/log.d/scripts/logwatch.pl
+#etc/log.d/scripts/services
+etc/log.d/scripts/services/dhcpd
+etc/log.d/scripts/services/http
+etc/log.d/scripts/services/init
+etc/log.d/scripts/services/kernel
+etc/log.d/scripts/services/modprobe
+#etc/log.d/scripts/services/openvpn
+#etc/log.d/scripts/services/pam_unix
+etc/log.d/scripts/services/pluto
+etc/log.d/scripts/services/raid
+etc/log.d/scripts/services/scsi
+etc/log.d/scripts/services/secure
+etc/log.d/scripts/services/sshd
+#etc/log.d/scripts/services/sshd2
+etc/log.d/scripts/services/syslogd
+etc/log.d/scripts/services/xntpd
+etc/log.d/scripts/services/zz-disk_space
+#etc/log.d/scripts/services/zz-network
+#etc/log.d/scripts/shared
+etc/log.d/scripts/shared/applyhttpdate
+etc/log.d/scripts/shared/applystddate
+etc/log.d/scripts/shared/applyusdate
+etc/log.d/scripts/shared/expandrepeats
+etc/log.d/scripts/shared/hosthash
+etc/log.d/scripts/shared/hostlist
+etc/log.d/scripts/shared/multiservice
+etc/log.d/scripts/shared/onlycontains
+etc/log.d/scripts/shared/onlyhost
+etc/log.d/scripts/shared/onlyservice
+etc/log.d/scripts/shared/remove
+etc/log.d/scripts/shared/removeheaders
+etc/log.d/scripts/shared/removeservice
+#usr/share/man/man8/logwatch.8
+var/log/logwatch
+##
+## mingetty-1.06
+##
+#usr/share/man/man8/mingetty.8
+sbin/mingetty
+##
+## misc-progs
+##
+usr/local/bin/installfcdsl
+usr/local/bin/installpackage
+usr/local/bin/iowrap
+usr/local/bin/ipcopbackup
+usr/local/bin/ipcopbkcfg
+usr/local/bin/ipcopreboot
+usr/local/bin/ipcoprscfg
+usr/local/bin/ipsecctrl
+usr/local/bin/logwatch
+usr/local/bin/rebuildhosts
+usr/local/bin/restartdhcp
+usr/local/bin/restartntpd
+usr/local/bin/restartshaping
+usr/local/bin/restartsnort
+usr/local/bin/restartsquid
+usr/local/bin/restartssh
+usr/local/bin/restartsyslogd
+usr/local/bin/restartwireless
+usr/local/bin/setaliases
+usr/local/bin/setdate
+usr/local/bin/setdmzholes
+usr/local/bin/setfilters
+usr/local/bin/setportfw
+usr/local/bin/setxtaccess
+##
+## mtools-3.9.9
+##
+#usr/bin/lz
+#usr/bin/mattrib
+#usr/bin/mbadblocks
+#usr/bin/mcat
+#usr/bin/mcd
+#usr/bin/mcheck
+#usr/bin/mcomp
+#usr/bin/mcopy
+#usr/bin/mdel
+#usr/bin/mdeltree
+#usr/bin/mdir
+#usr/bin/mdu
+#usr/bin/mformat
+#usr/bin/minfo
+#usr/bin/mkmanifest
+#usr/bin/mlabel
+#usr/bin/mmd
+#usr/bin/mmount
+#usr/bin/mmove
+#usr/bin/mpartition
+#usr/bin/mrd
+#usr/bin/mren
+#usr/bin/mshowfat
+#usr/bin/mtools
+#usr/bin/mtoolstest
+#usr/bin/mtype
+#usr/bin/mxtar
+#usr/bin/mzip
+#usr/bin/tgz
+#usr/bin/uz
+#usr/share/info/mtools.info
+#usr/share/man/man1/floppyd.1
+#usr/share/man/man1/floppyd_installtest.1
+#usr/share/man/man1/mattrib.1
+#usr/share/man/man1/mbadblocks.1
+#usr/share/man/man1/mcat.1
+#usr/share/man/man1/mcd.1
+#usr/share/man/man1/mcopy.1
+#usr/share/man/man1/mdel.1
+#usr/share/man/man1/mdeltree.1
+#usr/share/man/man1/mdir.1
+#usr/share/man/man1/mdu.1
+#usr/share/man/man1/mformat.1
+#usr/share/man/man1/minfo.1
+#usr/share/man/man1/mkmanifest.1
+#usr/share/man/man1/mlabel.1
+#usr/share/man/man1/mmd.1
+#usr/share/man/man1/mmount.1
+#usr/share/man/man1/mmove.1
+#usr/share/man/man1/mpartition.1
+#usr/share/man/man1/mrd.1
+#usr/share/man/man1/mren.1
+#usr/share/man/man1/mshowfat.1
+#usr/share/man/man1/mtools.1
+#usr/share/man/man1/mtoolstest.1
+#usr/share/man/man1/mtype.1
+#usr/share/man/man1/mzip.1
+#usr/share/man/man5/mtools.5
+##
+## nano-1.2.2
+##
+usr/bin/nano
+usr/bin/pico
+#usr/share/info/nano.info
+#usr/share/man/man1/nano.1
+#usr/share/man/man5/nanorc.5
+##
+## nash
+##
+sbin/mkinitrd
+sbin/nash
+##
+## nasm-0.98.36
+##
+#usr/bin/nasm
+#usr/bin/ndisasm
+#usr/share/man/man1/nasm.1
+#usr/share/man/man1/ndisasm.1
+##
+## Net-DNS-0.47
+##
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/A.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/EID.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/NIMLOC.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/MB.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/MG.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/MR.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/MX.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/NS.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/PX.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/RP.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/RT.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/LOC.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/MINFO.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/HINFO.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/OPT.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/PTR.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/SOA.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/SRV.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/TXT.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/X25.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/DNAME.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/TKEY.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/AAAA.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/TSIG.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/NSAP.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/NULL.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/AFSDB.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/NAPTR.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/CNAME.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/Unknown.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/CERT.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR/ISDN.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Nameserver.pm
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/RR.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/FAQ.pod
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Update.pm
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Packet.pm
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Question.pm
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Resolver.pm
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Header.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Resolver
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Resolver/Base.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Resolver/Cygwin.pm
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Resolver/Recurse.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Resolver/Win32.pm
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS/Resolver/UNIX.pm
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/DNS.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/DNS
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/DNS/DNS.bs
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/DNS/DNS.so
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/DNS/.packlist
+#usr/share/man/man3/Net::DNS::Nameserver.3
+#usr/share/man/man3/Net::DNS::RR::AFSDB.3
+#usr/share/man/man3/Net::DNS::RR::HINFO.3
+#usr/share/man/man3/Net::DNS::Resolver::Cygwin.3
+#usr/share/man/man3/Net::DNS::Resolver::Win32.3
+#usr/share/man/man3/Net::DNS::Packet.3
+#usr/share/man/man3/Net::DNS::RR::NIMLOC.3
+#usr/share/man/man3/Net::DNS::RR::CNAME.3
+#usr/share/man/man3/Net::DNS::Resolver.3
+#usr/share/man/man3/Net::DNS::Update.3
+#usr/share/man/man3/Net::DNS::RR::DNAME.3
+#usr/share/man/man3/Net::DNS::Question.3
+#usr/share/man/man3/Net::DNS::RR::A.3
+#usr/share/man/man3/Net::DNS::RR::MB.3
+#usr/share/man/man3/Net::DNS::RR::MG.3
+#usr/share/man/man3/Net::DNS::RR::MR.3
+#usr/share/man/man3/Net::DNS::RR::MX.3
+#usr/share/man/man3/Net::DNS::RR::NS.3
+#usr/share/man/man3/Net::DNS::RR::PX.3
+#usr/share/man/man3/Net::DNS::RR::RP.3
+#usr/share/man/man3/Net::DNS::RR::RT.3
+#usr/share/man/man3/Net::DNS::RR::AAAA.3
+#usr/share/man/man3/Net::DNS::Resolver::Base.3
+#usr/share/man/man3/Net::DNS::RR::Unknown.3
+#usr/share/man/man3/Net::DNS::RR::CERT.3
+#usr/share/man/man3/Net::DNS::Resolver::Recurse.3
+#usr/share/man/man3/Net::DNS::RR::MINFO.3
+#usr/share/man/man3/Net::DNS::RR.3
+#usr/share/man/man3/Net::DNS::RR::NAPTR.3
+#usr/share/man/man3/Net::DNS::RR::ISDN.3
+#usr/share/man/man3/Net::DNS::RR::EID.3
+#usr/share/man/man3/Net::DNS::RR::LOC.3
+#usr/share/man/man3/Net::DNS::RR::OPT.3
+#usr/share/man/man3/Net::DNS::RR::PTR.3
+#usr/share/man/man3/Net::DNS::RR::SOA.3
+#usr/share/man/man3/Net::DNS::RR::SRV.3
+#usr/share/man/man3/Net::DNS::RR::TXT.3
+#usr/share/man/man3/Net::DNS::RR::X25.3
+#usr/share/man/man3/Net::DNS::RR::NSAP.3
+#usr/share/man/man3/Net::DNS::FAQ.3
+#usr/share/man/man3/Net::DNS::RR::NULL.3
+#usr/share/man/man3/Net::DNS.3
+#usr/share/man/man3/Net::DNS::Resolver::UNIX.3
+#usr/share/man/man3/Net::DNS::RR::TKEY.3
+#usr/share/man/man3/Net::DNS::Header.3
+#usr/share/man/man3/Net::DNS::RR::TSIG.3
+##
+## Net-IPv4Addr-0.10
+##
+#usr/bin/ipv4calc
+usr/lib/perl5/site_perl/5.8.5/Net/IPv4Addr.pm
+#usr/lib/perl5/site_perl/5.8.5/auto
+#usr/lib/perl5/site_perl/5.8.5/auto/Net
+#usr/lib/perl5/site_perl/5.8.5/auto/Net/IPv4Addr
+#usr/lib/perl5/site_perl/5.8.5/auto/Net/IPv4Addr/autosplit.ix
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/IPv4Addr
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/IPv4Addr/.packlist
+#usr/share/man/man1/ipv4calc.1
+#usr/share/man/man3/Net::IPv4Addr.3
+##
+## noip_updater_v1.6
+##
+usr/bin/noip
+##
+## ntp-4.2.0
+##
+etc/ntp
+etc/ntp.conf
+#usr/bin/ntp-keygen
+#usr/bin/ntp-wait
+usr/bin/ntpd
+usr/bin/ntpdate
+#usr/bin/ntpdc
+#usr/bin/ntpq
+#usr/bin/ntptime
+#usr/bin/ntptrace
+#usr/bin/tickadj
+##
+## oinkmaster-1.2
+##
+usr/local/bin/oinkmaster.pl
+var/ipfire/snort/oinkmaster.conf
+##
+## openssh-3.9.p1
+##
+#etc/ssh
+etc/ssh/ssh_config
+etc/ssh/sshd_config
+etc/ssh/moduli
+#etc/ssh/ssh_host_key
+#etc/ssh/ssh_host_key.pub
+#etc/ssh/ssh_host_dsa_key
+#etc/ssh/ssh_host_dsa_key.pub
+#etc/ssh/ssh_host_rsa_key
+#etc/ssh/ssh_host_rsa_key.pub
+#usr/bin/ssh
+usr/bin/scp
+#usr/bin/ssh-add
+#usr/bin/ssh-agent
+usr/bin/ssh-keygen
+#usr/bin/ssh-keyscan
+#usr/bin/sftp
+#usr/bin/slogin
+usr/sbin/sshd
+#usr/share/man/man1/ssh.1
+#usr/share/man/man1/scp.1
+#usr/share/man/man1/ssh-add.1
+#usr/share/man/man1/ssh-agent.1
+#usr/share/man/man1/ssh-keygen.1
+#usr/share/man/man1/ssh-keyscan.1
+#usr/share/man/man1/sftp.1
+#usr/share/man/man1/slogin.1
+#usr/share/man/man5/sshd_config.5
+#usr/share/man/man5/ssh_config.5
+#usr/share/man/man8/sshd.8
+#usr/share/man/man8/sftp-server.8
+#usr/share/man/man8/ssh-keysign.8
+#usr/share/Ssh.bin
+#usr/libexec/ssh-keysign
+usr/libexec/sftp-server
+var/empty
+##
+## openswan-1.0.10rc2
+##
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.d
+#etc/ipsec.d/cacerts
+#etc/ipsec.d/certs
+#etc/ipsec.d/crls
+#etc/ipsec.d/private
+etc/rc.d/ipsec
+#etc/rc.d/rc0.d/K68ipsec
+#etc/rc.d/rc1.d/K68ipsec
+#etc/rc.d/rc2.d/S47ipsec
+#etc/rc.d/rc3.d/S47ipsec
+#etc/rc.d/rc4.d/S47ipsec
+#etc/rc.d/rc5.d/S47ipsec
+#etc/rc.d/rc6.d/K68ipsec
+usr/lib/ipsec
+#usr/lib/ipsec/_confread
+#usr/lib/ipsec/_copyright
+#usr/lib/ipsec/_include
+#usr/lib/ipsec/_keycensor
+#usr/lib/ipsec/_pluto_adns
+#usr/lib/ipsec/_plutoload
+#usr/lib/ipsec/_plutorun
+#usr/lib/ipsec/_realsetup
+#usr/lib/ipsec/_secretcensor
+#usr/lib/ipsec/_startklips
+#usr/lib/ipsec/_updown
+#usr/lib/ipsec/_updown.x509
+#usr/lib/ipsec/auto
+#usr/lib/ipsec/barf
+#usr/lib/ipsec/calcgoo
+#usr/lib/ipsec/eroute
+#usr/lib/ipsec/ikeping
+#usr/lib/ipsec/ipsec
+#usr/lib/ipsec/ipsec_pr.template
+#usr/lib/ipsec/klipsdebug
+#usr/lib/ipsec/look
+#usr/lib/ipsec/manual
+#usr/lib/ipsec/newhostkey
+#usr/lib/ipsec/pf_key
+#usr/lib/ipsec/pluto
+#usr/lib/ipsec/ranbits
+#usr/lib/ipsec/rsasigkey
+#usr/lib/ipsec/send-pr
+#usr/lib/ipsec/setup
+#usr/lib/ipsec/showdefaults
+#usr/lib/ipsec/showhostkey
+#usr/lib/ipsec/spi
+#usr/lib/ipsec/spigrp
+#usr/lib/ipsec/tncfg
+#usr/lib/ipsec/uml_netjig
+#usr/lib/ipsec/verify
+#usr/lib/ipsec/whack
+#usr/local/include/des.h
+#usr/local/lib/libdes.a
+#usr/local/man/man3
+#usr/local/man/man3/des_crypt.3
+usr/sbin/ipsec
+#usr/share/man/man3/ipsec_addrbytesof.3
+#usr/share/man/man3/ipsec_addrbytesptr.3
+#usr/share/man/man3/ipsec_addrcmp.3
+#usr/share/man/man3/ipsec_addrinsubnet.3
+#usr/share/man/man3/ipsec_addrlenof.3
+#usr/share/man/man3/ipsec_addrtoa.3
+#usr/share/man/man3/ipsec_addrtosubnet.3
+#usr/share/man/man3/ipsec_addrtot.3
+#usr/share/man/man3/ipsec_addrtypeof.3
+#usr/share/man/man3/ipsec_anyaddr.3
+#usr/share/man/man3/ipsec_atoaddr.3
+#usr/share/man/man3/ipsec_atoasr.3
+#usr/share/man/man3/ipsec_atosa.3
+#usr/share/man/man3/ipsec_atosubnet.3
+#usr/share/man/man3/ipsec_atoul.3
+#usr/share/man/man3/ipsec_bitstomask.3
+#usr/share/man/man3/ipsec_broadcastof.3
+#usr/share/man/man3/ipsec_copyright_notice.3
+#usr/share/man/man3/ipsec_datatot.3
+#usr/share/man/man3/ipsec_goodmask.3
+#usr/share/man/man3/ipsec_hostof.3
+#usr/share/man/man3/ipsec_initaddr.3
+#usr/share/man/man3/ipsec_initsaid.3
+#usr/share/man/man3/ipsec_initsubnet.3
+#usr/share/man/man3/ipsec_isanyaddr.3
+#usr/share/man/man3/ipsec_isloopbackaddr.3
+#usr/share/man/man3/ipsec_isunspecaddr.3
+#usr/share/man/man3/ipsec_keyblobtoid.3
+#usr/share/man/man3/ipsec_loopbackaddr.3
+#usr/share/man/man3/ipsec_maskof.3
+#usr/share/man/man3/ipsec_masktobits.3
+#usr/share/man/man3/ipsec_masktocount.3
+#usr/share/man/man3/ipsec_networkof.3
+#usr/share/man/man3/ipsec_optionsfrom.3
+#usr/share/man/man3/ipsec_portof.3
+#usr/share/man/man3/ipsec_prng.3
+#usr/share/man/man3/ipsec_prng_bytes.3
+#usr/share/man/man3/ipsec_prng_final.3
+#usr/share/man/man3/ipsec_prng_init.3
+#usr/share/man/man3/ipsec_rangetoa.3
+#usr/share/man/man3/ipsec_rangetosubnet.3
+#usr/share/man/man3/ipsec_sameaddr.3
+#usr/share/man/man3/ipsec_sameaddrtype.3
+#usr/share/man/man3/ipsec_samesaid.3
+#usr/share/man/man3/ipsec_samesubnet.3
+#usr/share/man/man3/ipsec_samesubnettype.3
+#usr/share/man/man3/ipsec_satoa.3
+#usr/share/man/man3/ipsec_satot.3
+#usr/share/man/man3/ipsec_setportof.3
+#usr/share/man/man3/ipsec_sockaddrlenof.3
+#usr/share/man/man3/ipsec_sockaddrof.3
+#usr/share/man/man3/ipsec_splitkeytoid.3
+#usr/share/man/man3/ipsec_subnetinsubnet.3
+#usr/share/man/man3/ipsec_subnetishost.3
+#usr/share/man/man3/ipsec_subnetof.3
+#usr/share/man/man3/ipsec_subnettoa.3
+#usr/share/man/man3/ipsec_subnettot.3
+#usr/share/man/man3/ipsec_subnettypeof.3
+#usr/share/man/man3/ipsec_tnatoaddr.3
+#usr/share/man/man3/ipsec_ttoaddr.3
+#usr/share/man/man3/ipsec_ttodata.3
+#usr/share/man/man3/ipsec_ttosa.3
+#usr/share/man/man3/ipsec_ttosubnet.3
+#usr/share/man/man3/ipsec_ttoul.3
+#usr/share/man/man3/ipsec_ultoa.3
+#usr/share/man/man3/ipsec_ultot.3
+#usr/share/man/man3/ipsec_unspecaddr.3
+#usr/share/man/man3/ipsec_version.3
+#usr/share/man/man3/ipsec_version_code.3
+#usr/share/man/man3/ipsec_version_string.3
+#usr/share/man/man5/ipsec.conf.5
+#usr/share/man/man5/ipsec.secrets.5
+#usr/share/man/man5/ipsec_eroute.5
+#usr/share/man/man5/ipsec_klipsdebug.5
+#usr/share/man/man5/ipsec_pf_key.5
+#usr/share/man/man5/ipsec_spi.5
+#usr/share/man/man5/ipsec_spigrp.5
+#usr/share/man/man5/ipsec_tncfg.5
+#usr/share/man/man5/ipsec_version.5
+#usr/share/man/man8/ipsec.8
+#usr/share/man/man8/ipsec_auto.8
+#usr/share/man/man8/ipsec_barf.8
+#usr/share/man/man8/ipsec_calcgoo.8
+#usr/share/man/man8/ipsec_eroute.8
+#usr/share/man/man8/ipsec_ikeping.8
+#usr/share/man/man8/ipsec_klipsdebug.8
+#usr/share/man/man8/ipsec_look.8
+#usr/share/man/man8/ipsec_manual.8
+#usr/share/man/man8/ipsec_newhostkey.8
+#usr/share/man/man8/ipsec_pf_key.8
+#usr/share/man/man8/ipsec_pluto.8
+#usr/share/man/man8/ipsec_ranbits.8
+#usr/share/man/man8/ipsec_rsasigkey.8
+#usr/share/man/man8/ipsec_send-pr.8
+#usr/share/man/man8/ipsec_setup.8
+#usr/share/man/man8/ipsec_showdefaults.8
+#usr/share/man/man8/ipsec_showhostkey.8
+#usr/share/man/man8/ipsec_spi.8
+#usr/share/man/man8/ipsec_spigrp.8
+#usr/share/man/man8/ipsec_tncfg.8
+#usr/share/man/man8/ipsec_verify.8
+#usr/share/man/man8/ipsec_whack.8
+##
+## ppp-2.4.2
+##
+etc/ppp/options
+etc/ppp/pap-secrets
+etc/ppp/chap-secrets
+etc/ppp/demonloginscript
+etc/ppp/dialer
+etc/ppp/ioptions
+etc/ppp/ip-down
+etc/ppp/ip-up
+etc/ppp/standardloginscript
+#usr/include/pppd
+#usr/include/pppd/ccp.h
+#usr/include/pppd/chap-new.h
+#usr/include/pppd/ecp.h
+#usr/include/pppd/fsm.h
+#usr/include/pppd/ipcp.h
+#usr/include/pppd/ipxcp.h
+#usr/include/pppd/lcp.h
+#usr/include/pppd/magic.h
+#usr/include/pppd/md5.h
+#usr/include/pppd/patchlevel.h
+#usr/include/pppd/pathnames.h
+#usr/include/pppd/pppd.h
+#usr/include/pppd/upap.h
+#usr/include/pppd/eap.h
+#usr/include/pppd/md4.h
+#usr/include/pppd/chap_ms.h
+#usr/include/pppd/sha1.h
+#usr/include/pppd/pppcrypt.h
+#usr/include/pppd/tdb.h
+usr/lib/pppd/2.4.2/minconn.so
+usr/lib/pppd/2.4.2/passprompt.so
+usr/lib/pppd/2.4.2/passwordfd.so
+usr/lib/pppd/2.4.2/pppoatm.so
+usr/lib/pppd/2.4.2/rp-pppoe.so
+usr/sbin/chat
+usr/sbin/pppd
+#usr/sbin/pppdump
+usr/sbin/pppstats
+#usr/share/man/man8/chat.8
+#usr/share/man/man8/pppd.8
+#usr/share/man/man8/pppstats.8
+#usr/share/man/man8/pppdump.8
+var/log/connect-errors
+##
+## pptp-1.6.0
+##
+#etc/ppp/options.pptp
+usr/sbin/pptp
+#usr/share/man/man8/pptp.8
+##
+## pulsar-4.0.19
+##
+lib/modules/2.4.31/misc/pulsar.o.gz
+##
+## pulsar-4.0.19-smp
+##
+lib/modules/2.4.31-smp/misc/pulsar.o.gz
+##
+## rp-pppoe-3.5
+##
+#etc/ppp/firewall-masq
+#etc/ppp/firewall-standalone
+#etc/ppp/plugins
+#etc/ppp/plugins/README
+#etc/ppp/pppoe-server-options
+#etc/ppp/pppoe.conf
+#usr/sbin/adsl-connect
+#usr/sbin/adsl-setup
+#usr/sbin/adsl-start
+#usr/sbin/adsl-status
+#usr/sbin/adsl-stop
+usr/sbin/pppoe
+#usr/sbin/pppoe-relay
+#usr/sbin/pppoe-server
+#usr/sbin/pppoe-sniff
+#usr/share/doc/rp-pppoe-3.5
+#usr/share/doc/rp-pppoe-3.5/CHANGES
+#usr/share/doc/rp-pppoe-3.5/HOW-TO-CONNECT
+#usr/share/doc/rp-pppoe-3.5/KERNEL-MODE-PPPOE
+#usr/share/doc/rp-pppoe-3.5/LICENSE
+#usr/share/doc/rp-pppoe-3.5/README
+#usr/share/doc/rp-pppoe-3.5/SERVPOET
+#usr/share/doc/rp-pppoe-3.5/pap-secrets
+#usr/share/man/man5/pppoe.conf.5
+#usr/share/man/man8/adsl-connect.8
+#usr/share/man/man8/adsl-setup.8
+#usr/share/man/man8/adsl-start.8
+#usr/share/man/man8/adsl-status.8
+#usr/share/man/man8/adsl-stop.8
+#usr/share/man/man8/pppoe-relay.8
+#usr/share/man/man8/pppoe-server.8
+#usr/share/man/man8/pppoe-sniff.8
+#usr/share/man/man8/pppoe.8
+##
+## rrdtool-1.0.49
+##
+home/httpd/html/graphs
+#usr/bin/rrdcgi
+#usr/bin/rrdtool
+#usr/bin/rrdupdate
+#usr/bin/trytime
+#usr/lib/librrd.la
+#usr/lib/librrd.a
+#usr/share/rrdtool-1.0.49
+#usr/share/rrdtool-1.0.49/include
+#usr/share/rrdtool-1.0.49/include/rrd.h
+#usr/share/rrdtool-1.0.49/doc
+#usr/share/rrdtool-1.0.49/doc/rrdtool.pod
+#usr/share/rrdtool-1.0.49/doc/rrdlast.pod
+#usr/share/rrdtool-1.0.49/doc/rrdcreate.pod
+#usr/share/rrdtool-1.0.49/doc/rrdupdate.pod
+#usr/share/rrdtool-1.0.49/doc/rrdtutorial.es.pod
+#usr/share/rrdtool-1.0.49/doc/cdeftutorial.pod
+#usr/share/rrdtool-1.0.49/doc/rpntutorial.pod
+#usr/share/rrdtool-1.0.49/doc/rrdgraph.pod
+#usr/share/rrdtool-1.0.49/doc/bin_dec_hex.pod
+#usr/share/rrdtool-1.0.49/doc/rrdfetch.pod
+#usr/share/rrdtool-1.0.49/doc/rrdrestore.pod
+#usr/share/rrdtool-1.0.49/doc/rrddump.pod
+#usr/share/rrdtool-1.0.49/doc/rrdtune.pod
+#usr/share/rrdtool-1.0.49/doc/rrdresize.pod
+#usr/share/rrdtool-1.0.49/doc/rrdcgi.pod
+#usr/share/rrdtool-1.0.49/doc/rrdtutorial.pod
+#usr/share/rrdtool-1.0.49/doc/rrdinfo.pod
+#usr/share/rrdtool-1.0.49/doc/rrdxport.pod
+#usr/share/rrdtool-1.0.49/doc/rrd-beginners.pod
+#usr/share/rrdtool-1.0.49/doc/rrdtool.txt
+#usr/share/rrdtool-1.0.49/doc/rrdlast.txt
+#usr/share/rrdtool-1.0.49/doc/rrdcreate.txt
+#usr/share/rrdtool-1.0.49/doc/rrdupdate.txt
+#usr/share/rrdtool-1.0.49/doc/rrdtutorial.es.txt
+#usr/share/rrdtool-1.0.49/doc/cdeftutorial.txt
+#usr/share/rrdtool-1.0.49/doc/rpntutorial.txt
+#usr/share/rrdtool-1.0.49/doc/rrdgraph.txt
+#usr/share/rrdtool-1.0.49/doc/bin_dec_hex.txt
+#usr/share/rrdtool-1.0.49/doc/rrdfetch.txt
+#usr/share/rrdtool-1.0.49/doc/rrdrestore.txt
+#usr/share/rrdtool-1.0.49/doc/rrddump.txt
+#usr/share/rrdtool-1.0.49/doc/rrdtune.txt
+#usr/share/rrdtool-1.0.49/doc/rrdresize.txt
+#usr/share/rrdtool-1.0.49/doc/rrdcgi.txt
+#usr/share/rrdtool-1.0.49/doc/rrdtutorial.txt
+#usr/share/rrdtool-1.0.49/doc/rrdinfo.txt
+#usr/share/rrdtool-1.0.49/doc/rrdxport.txt
+#usr/share/rrdtool-1.0.49/doc/rrd-beginners.txt
+#usr/share/rrdtool-1.0.49/doc/RRDs.txt
+#usr/share/rrdtool-1.0.49/doc/RRDp.txt
+#usr/share/rrdtool-1.0.49/html
+#usr/share/rrdtool-1.0.49/html/rrdtool.html
+#usr/share/rrdtool-1.0.49/html/rrdlast.html
+#usr/share/rrdtool-1.0.49/html/rrdcreate.html
+#usr/share/rrdtool-1.0.49/html/rrdupdate.html
+#usr/share/rrdtool-1.0.49/html/rrdtutorial.es.html
+#usr/share/rrdtool-1.0.49/html/cdeftutorial.html
+#usr/share/rrdtool-1.0.49/html/rpntutorial.html
+#usr/share/rrdtool-1.0.49/html/rrdgraph.html
+#usr/share/rrdtool-1.0.49/html/bin_dec_hex.html
+#usr/share/rrdtool-1.0.49/html/rrdfetch.html
+#usr/share/rrdtool-1.0.49/html/rrdrestore.html
+#usr/share/rrdtool-1.0.49/html/rrddump.html
+#usr/share/rrdtool-1.0.49/html/rrdtune.html
+#usr/share/rrdtool-1.0.49/html/rrdresize.html
+#usr/share/rrdtool-1.0.49/html/rrdcgi.html
+#usr/share/rrdtool-1.0.49/html/rrdtutorial.html
+#usr/share/rrdtool-1.0.49/html/rrdinfo.html
+#usr/share/rrdtool-1.0.49/html/rrdxport.html
+#usr/share/rrdtool-1.0.49/html/rrd-beginners.html
+#usr/share/rrdtool-1.0.49/html/RRDs.html
+#usr/share/rrdtool-1.0.49/html/RRDp.html
+#usr/share/rrdtool-1.0.49/man
+#usr/share/rrdtool-1.0.49/man/man1
+#usr/share/rrdtool-1.0.49/man/man1/rrdtool.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdlast.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdcreate.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdupdate.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdtutorial.es.1
+#usr/share/rrdtool-1.0.49/man/man1/cdeftutorial.1
+#usr/share/rrdtool-1.0.49/man/man1/rpntutorial.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdgraph.1
+#usr/share/rrdtool-1.0.49/man/man1/bin_dec_hex.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdfetch.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdrestore.1
+#usr/share/rrdtool-1.0.49/man/man1/rrddump.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdtune.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdresize.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdcgi.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdtutorial.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdinfo.1
+#usr/share/rrdtool-1.0.49/man/man1/rrdxport.1
+#usr/share/rrdtool-1.0.49/man/man1/rrd-beginners.1
+#usr/share/rrdtool-1.0.49/man/man1/RRDs.1
+#usr/share/rrdtool-1.0.49/man/man1/RRDp.1
+#usr/share/rrdtool-1.0.49/examples
+#usr/share/rrdtool-1.0.49/examples/cgi-demo.cgi
+#usr/share/rrdtool-1.0.49/examples/piped-demo.pl
+#usr/share/rrdtool-1.0.49/examples/shared-demo.pl
+#usr/share/rrdtool-1.0.49/examples/stripes.pl
+#usr/share/rrdtool-1.0.49/examples/bigtops.pl
+#usr/share/rrdtool-1.0.49/examples/minmax.pl
+#usr/share/rrdtool-1.0.49/contrib
+#usr/share/rrdtool-1.0.49/contrib/trytime
+#usr/share/rrdtool-1.0.49/contrib/trytime/README
+#usr/share/rrdtool-1.0.49/contrib/trytime/trytime.c
+#usr/share/rrdtool-1.0.49/contrib/README
+#usr/share/rrdtool-1.0.49/lib
+#usr/share/rrdtool-1.0.49/lib/perl
+#usr/share/rrdtool-1.0.49/lib/perl/auto
+#usr/share/rrdtool-1.0.49/lib/perl/auto/RRDs
+#usr/share/rrdtool-1.0.49/lib/perl/auto/RRDs/RRDs.bs
+#usr/share/rrdtool-1.0.49/lib/perl/auto/RRDs/RRDs.so
+#usr/share/rrdtool-1.0.49/lib/perl/RRDp.pm
+#usr/share/rrdtool-1.0.49/lib/perl/RRDs.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/RRDp
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/RRDp/.packlist
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/RRDs
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/RRDs/RRDs.so
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/RRDs/RRDs.bs
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/RRDs/.packlist
+usr/lib/perl5/site_perl/5.8.5/i386-linux/RRDs.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/ntmake.pl
+usr/lib/perl5/site_perl/5.8.5/RRDp.pm
+#usr/share/man/man3/RRDp.3
+#usr/share/man/man3/RRDs.3
+var/log/rrd
+##
+## setserial-2.17
+##
+bin/setserial
+#usr/share/man/man8/setserial.8
+##
+## setup
+##
+usr/local/sbin/setup
+##
+## snort-2.3.3
+##
+etc/snort
+#etc/snort/attack-responses.rules
+#etc/snort/backdoor.rules
+#etc/snort/bad-traffic.rules
+#etc/snort/chat.rules
+#etc/snort/classification.config
+#etc/snort/ddos.rules
+#etc/snort/deleted.rules
+#etc/snort/dns.rules
+#etc/snort/dos.rules
+#etc/snort/experimental.rules
+#etc/snort/exploit.rules
+#etc/snort/finger.rules
+#etc/snort/ftp.rules
+#etc/snort/icmp-info.rules
+#etc/snort/icmp.rules
+#etc/snort/imap.rules
+#etc/snort/info.rules
+#etc/snort/local.rules
+#etc/snort/misc.rules
+#etc/snort/multimedia.rules
+#etc/snort/mysql.rules
+#etc/snort/netbios.rules
+#etc/snort/nntp.rules
+#etc/snort/oracle.rules
+#etc/snort/other-ids.rules
+#etc/snort/p2p.rules
+#etc/snort/policy.rules
+#etc/snort/pop2.rules
+#etc/snort/pop3.rules
+#etc/snort/porn.rules
+#etc/snort/reference.config
+#etc/snort/rpc.rules
+#etc/snort/rservices.rules
+#etc/snort/scan.rules
+#etc/snort/shellcode.rules
+#etc/snort/smtp.rules
+#etc/snort/snmp.rules
+#etc/snort/snort.conf
+#etc/snort/sql.rules
+#etc/snort/telnet.rules
+#etc/snort/tftp.rules
+#etc/snort/virus.rules
+#etc/snort/unicode.map
+#etc/snort/web-attacks.rules
+#etc/snort/web-cgi.rules
+#etc/snort/web-client.rules
+#etc/snort/web-coldfusion.rules
+#etc/snort/web-frontpage.rules
+#etc/snort/web-iis.rules
+#etc/snort/web-misc.rules
+#etc/snort/web-php.rules
+#etc/snort/x11.rules
+usr/sbin/snort
+#usr/share/man/man8/snort.8
+var/log/snort
+##
+## speedtouch-1.2
+##
+#etc/speedtouch
+#usr/bin/speedtouch-setup
+#usr/bin/speedtouch-start
+#usr/bin/speedtouch-stop
+usr/sbin/modem_run
+#usr/sbin/pppoa2
+usr/sbin/pppoa3
+#usr/share/doc/speedtouch
+#usr/share/doc/speedtouch/FAQ
+#usr/share/doc/speedtouch/BUGS
+#usr/share/doc/speedtouch/howto
+#usr/share/doc/speedtouch/howto/SpeedTouch-HOWTO-en.html
+#usr/share/doc/speedtouch/howto/SpeedTouch-HOWTO-fr.html
+#usr/share/doc/speedtouch/howto/SpeedTouch-HOWTO-it.html
+#usr/share/doc/speedtouch/howto/SpeedTouch-HOWTO-de.html
+#usr/share/doc/speedtouch/speedtouch.sh
+#usr/share/doc/speedtouch/speedtouch.conf
+#usr/share/doc/speedtouch/HDLC_BUG
+#usr/share/doc/speedtouch/results.txt
+#usr/share/doc/speedtouch/pppoax-doc-en.txt
+#usr/share/doc/speedtouch/adsl.ppp-peersample
+#usr/share/doc/speedtouch/pppoax-doc-fr.txt
+#usr/share/man/man1/speedtouch-setup.1
+#usr/share/man/man1/speedtouch-stop.1
+#usr/share/man/man1/speedtouch-start.1
+#usr/share/man/man8/modem_run.8
+#usr/share/man/man8/pppoa2.8
+#usr/share/man/man8/pppoa3.8
+#usr/share/speedtouch
+#usr/share/speedtouch/boot.v123.bin
+##
+## CGI-SpeedyCGI-2.22 (scripts not ready)
+##
+#usr/bin/speedy_backend
+#usr/bin/speedy
+##usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/CGI/SpeedyCGI/.packlist
+#usr/lib/perl5/site_perl/5.8.5/CGI/SpeedyCGI.pm
+##
+## squid-2.5.STABLE12
+##
+#etc/squid
+#etc/squid/cachemgr.conf
+etc/squid/errors
+etc/squid/mime.conf
+#etc/squid/mime.conf.default
+etc/squid/msntauth.conf
+#etc/squid/msntauth.conf.default
+etc/squid/squid.conf
+#etc/squid/squid.conf.default
+#usr/bin/RunAccel
+#usr/bin/RunCache
+#usr/bin/squidclient
+#usr/lib/squid
+#usr/lib/squid/cachemgr.cgi
+#usr/lib/squid/diskd
+#usr/lib/squid/errors
+#usr/lib/squid/errors/Bulgarian
+#usr/lib/squid/errors/Bulgarian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Bulgarian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Bulgarian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Bulgarian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Bulgarian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Bulgarian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Bulgarian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Bulgarian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Bulgarian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Bulgarian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Bulgarian/ERR_INVALID_URL
+#usr/lib/squid/errors/Bulgarian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Bulgarian/ERR_NO_RELAY
+#usr/lib/squid/errors/Bulgarian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Bulgarian/ERR_READ_ERROR
+#usr/lib/squid/errors/Bulgarian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Bulgarian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Bulgarian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Bulgarian/ERR_TOO_BIG
+#usr/lib/squid/errors/Bulgarian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Bulgarian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Bulgarian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Bulgarian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Catalan
+#usr/lib/squid/errors/Catalan/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Catalan/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Catalan/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Catalan/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Catalan/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Catalan/ERR_DNS_FAIL
+#usr/lib/squid/errors/Catalan/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Catalan/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Catalan/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Catalan/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Catalan/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Catalan/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Catalan/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Catalan/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Catalan/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Catalan/ERR_INVALID_REQ
+#usr/lib/squid/errors/Catalan/ERR_INVALID_RESP
+#usr/lib/squid/errors/Catalan/ERR_INVALID_URL
+#usr/lib/squid/errors/Catalan/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Catalan/ERR_NO_RELAY
+#usr/lib/squid/errors/Catalan/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Catalan/ERR_READ_ERROR
+#usr/lib/squid/errors/Catalan/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Catalan/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Catalan/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Catalan/ERR_TOO_BIG
+#usr/lib/squid/errors/Catalan/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Catalan/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Catalan/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Catalan/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Czech
+#usr/lib/squid/errors/Czech/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Czech/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Czech/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Czech/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Czech/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Czech/ERR_DNS_FAIL
+#usr/lib/squid/errors/Czech/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Czech/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Czech/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Czech/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Czech/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Czech/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Czech/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Czech/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Czech/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Czech/ERR_INVALID_REQ
+#usr/lib/squid/errors/Czech/ERR_INVALID_RESP
+#usr/lib/squid/errors/Czech/ERR_INVALID_URL
+#usr/lib/squid/errors/Czech/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Czech/ERR_NO_RELAY
+#usr/lib/squid/errors/Czech/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Czech/ERR_READ_ERROR
+#usr/lib/squid/errors/Czech/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Czech/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Czech/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Czech/ERR_TOO_BIG
+#usr/lib/squid/errors/Czech/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Czech/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Czech/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Czech/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Danish
+#usr/lib/squid/errors/Danish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Danish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Danish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Danish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Danish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Danish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Danish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Danish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Danish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Danish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Danish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Danish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Danish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Danish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Danish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Danish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Danish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Danish/ERR_INVALID_URL
+#usr/lib/squid/errors/Danish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Danish/ERR_NO_RELAY
+#usr/lib/squid/errors/Danish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Danish/ERR_READ_ERROR
+#usr/lib/squid/errors/Danish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Danish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Danish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Danish/ERR_TOO_BIG
+#usr/lib/squid/errors/Danish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Danish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Danish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Danish/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Dutch
+#usr/lib/squid/errors/Dutch/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Dutch/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Dutch/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Dutch/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Dutch/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Dutch/ERR_DNS_FAIL
+#usr/lib/squid/errors/Dutch/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Dutch/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Dutch/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Dutch/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Dutch/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Dutch/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Dutch/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Dutch/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Dutch/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Dutch/ERR_INVALID_REQ
+#usr/lib/squid/errors/Dutch/ERR_INVALID_RESP
+#usr/lib/squid/errors/Dutch/ERR_INVALID_URL
+#usr/lib/squid/errors/Dutch/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Dutch/ERR_NO_RELAY
+#usr/lib/squid/errors/Dutch/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Dutch/ERR_READ_ERROR
+#usr/lib/squid/errors/Dutch/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Dutch/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Dutch/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Dutch/ERR_TOO_BIG
+#usr/lib/squid/errors/Dutch/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Dutch/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Dutch/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Dutch/ERR_ZERO_SIZE_OBJECT
+usr/lib/squid/errors/English
+#usr/lib/squid/errors/English/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/English/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/English/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/English/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/English/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/English/ERR_DNS_FAIL
+#usr/lib/squid/errors/English/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/English/ERR_FTP_DISABLED
+#usr/lib/squid/errors/English/ERR_FTP_FAILURE
+#usr/lib/squid/errors/English/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/English/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/English/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/English/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/English/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/English/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/English/ERR_INVALID_REQ
+#usr/lib/squid/errors/English/ERR_INVALID_RESP
+#usr/lib/squid/errors/English/ERR_INVALID_URL
+#usr/lib/squid/errors/English/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/English/ERR_NO_RELAY
+#usr/lib/squid/errors/English/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/English/ERR_READ_ERROR
+#usr/lib/squid/errors/English/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/English/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/English/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/English/ERR_TOO_BIG
+#usr/lib/squid/errors/English/ERR_UNSUP_REQ
+#usr/lib/squid/errors/English/ERR_URN_RESOLVE
+#usr/lib/squid/errors/English/ERR_WRITE_ERROR
+#usr/lib/squid/errors/English/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Estonian
+#usr/lib/squid/errors/Estonian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Estonian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Estonian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Estonian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Estonian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Estonian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Estonian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Estonian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Estonian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Estonian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Estonian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Estonian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Estonian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Estonian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Estonian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Estonian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Estonian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Estonian/ERR_INVALID_URL
+#usr/lib/squid/errors/Estonian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Estonian/ERR_NO_RELAY
+#usr/lib/squid/errors/Estonian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Estonian/ERR_READ_ERROR
+#usr/lib/squid/errors/Estonian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Estonian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Estonian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Estonian/ERR_TOO_BIG
+#usr/lib/squid/errors/Estonian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Estonian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Estonian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Estonian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Finnish
+#usr/lib/squid/errors/Finnish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Finnish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Finnish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Finnish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Finnish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Finnish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Finnish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Finnish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Finnish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Finnish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Finnish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Finnish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Finnish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Finnish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Finnish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Finnish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Finnish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Finnish/ERR_INVALID_URL
+#usr/lib/squid/errors/Finnish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Finnish/ERR_NO_RELAY
+#usr/lib/squid/errors/Finnish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Finnish/ERR_READ_ERROR
+#usr/lib/squid/errors/Finnish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Finnish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Finnish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Finnish/ERR_TOO_BIG
+#usr/lib/squid/errors/Finnish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Finnish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Finnish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Finnish/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/French
+#usr/lib/squid/errors/French/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/French/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/French/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/French/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/French/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/French/ERR_DNS_FAIL
+#usr/lib/squid/errors/French/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/French/ERR_FTP_DISABLED
+#usr/lib/squid/errors/French/ERR_FTP_FAILURE
+#usr/lib/squid/errors/French/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/French/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/French/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/French/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/French/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/French/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/French/ERR_INVALID_REQ
+#usr/lib/squid/errors/French/ERR_INVALID_RESP
+#usr/lib/squid/errors/French/ERR_INVALID_URL
+#usr/lib/squid/errors/French/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/French/ERR_NO_RELAY
+#usr/lib/squid/errors/French/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/French/ERR_READ_ERROR
+#usr/lib/squid/errors/French/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/French/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/French/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/French/ERR_TOO_BIG
+#usr/lib/squid/errors/French/ERR_UNSUP_REQ
+#usr/lib/squid/errors/French/ERR_URN_RESOLVE
+#usr/lib/squid/errors/French/ERR_WRITE_ERROR
+#usr/lib/squid/errors/French/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/German
+#usr/lib/squid/errors/German/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/German/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/German/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/German/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/German/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/German/ERR_DNS_FAIL
+#usr/lib/squid/errors/German/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/German/ERR_FTP_DISABLED
+#usr/lib/squid/errors/German/ERR_FTP_FAILURE
+#usr/lib/squid/errors/German/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/German/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/German/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/German/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/German/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/German/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/German/ERR_INVALID_REQ
+#usr/lib/squid/errors/German/ERR_INVALID_RESP
+#usr/lib/squid/errors/German/ERR_INVALID_URL
+#usr/lib/squid/errors/German/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/German/ERR_NO_RELAY
+#usr/lib/squid/errors/German/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/German/ERR_READ_ERROR
+#usr/lib/squid/errors/German/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/German/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/German/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/German/ERR_TOO_BIG
+#usr/lib/squid/errors/German/ERR_UNSUP_REQ
+#usr/lib/squid/errors/German/ERR_URN_RESOLVE
+#usr/lib/squid/errors/German/ERR_WRITE_ERROR
+#usr/lib/squid/errors/German/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Greek
+#usr/lib/squid/errors/Greek/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Greek/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Greek/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Greek/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Greek/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Greek/ERR_DNS_FAIL
+#usr/lib/squid/errors/Greek/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Greek/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Greek/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Greek/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Greek/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Greek/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Greek/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Greek/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Greek/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Greek/ERR_INVALID_REQ
+#usr/lib/squid/errors/Greek/ERR_INVALID_RESP
+#usr/lib/squid/errors/Greek/ERR_INVALID_URL
+#usr/lib/squid/errors/Greek/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Greek/ERR_NO_RELAY
+#usr/lib/squid/errors/Greek/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Greek/ERR_READ_ERROR
+#usr/lib/squid/errors/Greek/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Greek/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Greek/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Greek/ERR_TOO_BIG
+#usr/lib/squid/errors/Greek/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Greek/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Greek/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Greek/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Hebrew
+#usr/lib/squid/errors/Hebrew/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Hebrew/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Hebrew/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Hebrew/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Hebrew/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Hebrew/ERR_DNS_FAIL
+#usr/lib/squid/errors/Hebrew/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Hebrew/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Hebrew/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Hebrew/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Hebrew/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Hebrew/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Hebrew/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Hebrew/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Hebrew/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Hebrew/ERR_INVALID_REQ
+#usr/lib/squid/errors/Hebrew/ERR_INVALID_RESP
+#usr/lib/squid/errors/Hebrew/ERR_INVALID_URL
+#usr/lib/squid/errors/Hebrew/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Hebrew/ERR_NO_RELAY
+#usr/lib/squid/errors/Hebrew/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Hebrew/ERR_READ_ERROR
+#usr/lib/squid/errors/Hebrew/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Hebrew/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Hebrew/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Hebrew/ERR_TOO_BIG
+#usr/lib/squid/errors/Hebrew/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Hebrew/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Hebrew/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Hebrew/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Hungarian
+#usr/lib/squid/errors/Hungarian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Hungarian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Hungarian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Hungarian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Hungarian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Hungarian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Hungarian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Hungarian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Hungarian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Hungarian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Hungarian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Hungarian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Hungarian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Hungarian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Hungarian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Hungarian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Hungarian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Hungarian/ERR_INVALID_URL
+#usr/lib/squid/errors/Hungarian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Hungarian/ERR_NO_RELAY
+#usr/lib/squid/errors/Hungarian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Hungarian/ERR_READ_ERROR
+#usr/lib/squid/errors/Hungarian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Hungarian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Hungarian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Hungarian/ERR_TOO_BIG
+#usr/lib/squid/errors/Hungarian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Hungarian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Hungarian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Hungarian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Italian
+#usr/lib/squid/errors/Italian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Italian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Italian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Italian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Italian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Italian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Italian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Italian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Italian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Italian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Italian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Italian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Italian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Italian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Italian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Italian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Italian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Italian/ERR_INVALID_URL
+#usr/lib/squid/errors/Italian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Italian/ERR_NO_RELAY
+#usr/lib/squid/errors/Italian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Italian/ERR_READ_ERROR
+#usr/lib/squid/errors/Italian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Italian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Italian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Italian/ERR_TOO_BIG
+#usr/lib/squid/errors/Italian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Italian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Italian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Italian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Japanese
+#usr/lib/squid/errors/Japanese/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Japanese/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Japanese/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Japanese/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Japanese/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Japanese/ERR_DNS_FAIL
+#usr/lib/squid/errors/Japanese/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Japanese/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Japanese/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Japanese/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Japanese/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Japanese/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Japanese/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Japanese/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Japanese/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Japanese/ERR_INVALID_REQ
+#usr/lib/squid/errors/Japanese/ERR_INVALID_RESP
+#usr/lib/squid/errors/Japanese/ERR_INVALID_URL
+#usr/lib/squid/errors/Japanese/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Japanese/ERR_NO_RELAY
+#usr/lib/squid/errors/Japanese/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Japanese/ERR_READ_ERROR
+#usr/lib/squid/errors/Japanese/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Japanese/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Japanese/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Japanese/ERR_TOO_BIG
+#usr/lib/squid/errors/Japanese/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Japanese/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Japanese/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Japanese/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Korean
+#usr/lib/squid/errors/Korean/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Korean/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Korean/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Korean/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Korean/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Korean/ERR_DNS_FAIL
+#usr/lib/squid/errors/Korean/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Korean/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Korean/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Korean/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Korean/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Korean/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Korean/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Korean/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Korean/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Korean/ERR_INVALID_REQ
+#usr/lib/squid/errors/Korean/ERR_INVALID_RESP
+#usr/lib/squid/errors/Korean/ERR_INVALID_URL
+#usr/lib/squid/errors/Korean/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Korean/ERR_NO_RELAY
+#usr/lib/squid/errors/Korean/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Korean/ERR_READ_ERROR
+#usr/lib/squid/errors/Korean/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Korean/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Korean/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Korean/ERR_TOO_BIG
+#usr/lib/squid/errors/Korean/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Korean/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Korean/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Korean/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Lithuanian
+#usr/lib/squid/errors/Lithuanian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Lithuanian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Lithuanian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Lithuanian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Lithuanian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Lithuanian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Lithuanian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Lithuanian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Lithuanian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Lithuanian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Lithuanian/ERR_INVALID_URL
+#usr/lib/squid/errors/Lithuanian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Lithuanian/ERR_NO_RELAY
+#usr/lib/squid/errors/Lithuanian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Lithuanian/ERR_READ_ERROR
+#usr/lib/squid/errors/Lithuanian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Lithuanian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Lithuanian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Lithuanian/ERR_TOO_BIG
+#usr/lib/squid/errors/Lithuanian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Lithuanian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Lithuanian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Lithuanian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Polish
+#usr/lib/squid/errors/Polish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Polish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Polish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Polish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Polish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Polish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Polish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Polish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Polish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Polish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Polish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Polish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Polish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Polish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Polish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Polish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Polish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Polish/ERR_INVALID_URL
+#usr/lib/squid/errors/Polish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Polish/ERR_NO_RELAY
+#usr/lib/squid/errors/Polish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Polish/ERR_READ_ERROR
+#usr/lib/squid/errors/Polish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Polish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Polish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Polish/ERR_TOO_BIG
+#usr/lib/squid/errors/Polish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Polish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Polish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Polish/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Portuguese
+#usr/lib/squid/errors/Portuguese/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Portuguese/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Portuguese/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Portuguese/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Portuguese/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Portuguese/ERR_DNS_FAIL
+#usr/lib/squid/errors/Portuguese/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Portuguese/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Portuguese/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Portuguese/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Portuguese/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Portuguese/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Portuguese/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Portuguese/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Portuguese/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Portuguese/ERR_INVALID_REQ
+#usr/lib/squid/errors/Portuguese/ERR_INVALID_RESP
+#usr/lib/squid/errors/Portuguese/ERR_INVALID_URL
+#usr/lib/squid/errors/Portuguese/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Portuguese/ERR_NO_RELAY
+#usr/lib/squid/errors/Portuguese/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Portuguese/ERR_READ_ERROR
+#usr/lib/squid/errors/Portuguese/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Portuguese/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Portuguese/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Portuguese/ERR_TOO_BIG
+#usr/lib/squid/errors/Portuguese/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Portuguese/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Portuguese/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Portuguese/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Romanian
+#usr/lib/squid/errors/Romanian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Romanian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Romanian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Romanian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Romanian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Romanian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Romanian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Romanian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Romanian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Romanian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Romanian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Romanian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Romanian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Romanian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Romanian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Romanian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Romanian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Romanian/ERR_INVALID_URL
+#usr/lib/squid/errors/Romanian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Romanian/ERR_NO_RELAY
+#usr/lib/squid/errors/Romanian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Romanian/ERR_READ_ERROR
+#usr/lib/squid/errors/Romanian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Romanian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Romanian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Romanian/ERR_TOO_BIG
+#usr/lib/squid/errors/Romanian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Romanian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Romanian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Romanian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Russian-1251
+#usr/lib/squid/errors/Russian-1251/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-1251/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-1251/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-1251/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Russian-1251/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Russian-1251/ERR_DNS_FAIL
+#usr/lib/squid/errors/Russian-1251/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Russian-1251/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Russian-1251/ERR_INVALID_REQ
+#usr/lib/squid/errors/Russian-1251/ERR_INVALID_RESP
+#usr/lib/squid/errors/Russian-1251/ERR_INVALID_URL
+#usr/lib/squid/errors/Russian-1251/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Russian-1251/ERR_NO_RELAY
+#usr/lib/squid/errors/Russian-1251/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Russian-1251/ERR_READ_ERROR
+#usr/lib/squid/errors/Russian-1251/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Russian-1251/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Russian-1251/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Russian-1251/ERR_TOO_BIG
+#usr/lib/squid/errors/Russian-1251/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Russian-1251/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Russian-1251/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Russian-1251/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Russian-koi8-r
+#usr/lib/squid/errors/Russian-koi8-r/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Russian-koi8-r/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Russian-koi8-r/ERR_DNS_FAIL
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Russian-koi8-r/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Russian-koi8-r/ERR_INVALID_REQ
+#usr/lib/squid/errors/Russian-koi8-r/ERR_INVALID_RESP
+#usr/lib/squid/errors/Russian-koi8-r/ERR_INVALID_URL
+#usr/lib/squid/errors/Russian-koi8-r/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Russian-koi8-r/ERR_NO_RELAY
+#usr/lib/squid/errors/Russian-koi8-r/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Russian-koi8-r/ERR_READ_ERROR
+#usr/lib/squid/errors/Russian-koi8-r/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Russian-koi8-r/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Russian-koi8-r/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Russian-koi8-r/ERR_TOO_BIG
+#usr/lib/squid/errors/Russian-koi8-r/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Russian-koi8-r/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Russian-koi8-r/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Russian-koi8-r/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Serbian
+#usr/lib/squid/errors/Serbian/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Serbian/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Serbian/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Serbian/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Serbian/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Serbian/ERR_DNS_FAIL
+#usr/lib/squid/errors/Serbian/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Serbian/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Serbian/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Serbian/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Serbian/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Serbian/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Serbian/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Serbian/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Serbian/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Serbian/ERR_INVALID_REQ
+#usr/lib/squid/errors/Serbian/ERR_INVALID_RESP
+#usr/lib/squid/errors/Serbian/ERR_INVALID_URL
+#usr/lib/squid/errors/Serbian/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Serbian/ERR_NO_RELAY
+#usr/lib/squid/errors/Serbian/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Serbian/ERR_READ_ERROR
+#usr/lib/squid/errors/Serbian/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Serbian/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Serbian/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Serbian/ERR_TOO_BIG
+#usr/lib/squid/errors/Serbian/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Serbian/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Serbian/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Serbian/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Simplify_Chinese
+#usr/lib/squid/errors/Simplify_Chinese/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Simplify_Chinese/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Simplify_Chinese/ERR_DNS_FAIL
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Simplify_Chinese/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Simplify_Chinese/ERR_INVALID_REQ
+#usr/lib/squid/errors/Simplify_Chinese/ERR_INVALID_RESP
+#usr/lib/squid/errors/Simplify_Chinese/ERR_INVALID_URL
+#usr/lib/squid/errors/Simplify_Chinese/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Simplify_Chinese/ERR_NO_RELAY
+#usr/lib/squid/errors/Simplify_Chinese/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Simplify_Chinese/ERR_READ_ERROR
+#usr/lib/squid/errors/Simplify_Chinese/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Simplify_Chinese/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Simplify_Chinese/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Simplify_Chinese/ERR_TOO_BIG
+#usr/lib/squid/errors/Simplify_Chinese/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Simplify_Chinese/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Simplify_Chinese/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Simplify_Chinese/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Slovak
+#usr/lib/squid/errors/Slovak/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Slovak/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Slovak/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Slovak/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Slovak/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Slovak/ERR_DNS_FAIL
+#usr/lib/squid/errors/Slovak/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Slovak/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Slovak/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Slovak/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Slovak/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Slovak/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Slovak/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Slovak/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Slovak/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Slovak/ERR_INVALID_REQ
+#usr/lib/squid/errors/Slovak/ERR_INVALID_RESP
+#usr/lib/squid/errors/Slovak/ERR_INVALID_URL
+#usr/lib/squid/errors/Slovak/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Slovak/ERR_NO_RELAY
+#usr/lib/squid/errors/Slovak/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Slovak/ERR_READ_ERROR
+#usr/lib/squid/errors/Slovak/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Slovak/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Slovak/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Slovak/ERR_TOO_BIG
+#usr/lib/squid/errors/Slovak/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Slovak/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Slovak/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Slovak/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Spanish
+#usr/lib/squid/errors/Spanish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Spanish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Spanish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Spanish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Spanish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Spanish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Spanish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Spanish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Spanish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Spanish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Spanish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Spanish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Spanish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Spanish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Spanish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Spanish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Spanish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Spanish/ERR_INVALID_URL
+#usr/lib/squid/errors/Spanish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Spanish/ERR_NO_RELAY
+#usr/lib/squid/errors/Spanish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Spanish/ERR_READ_ERROR
+#usr/lib/squid/errors/Spanish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Spanish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Spanish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Spanish/ERR_TOO_BIG
+#usr/lib/squid/errors/Spanish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Spanish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Spanish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Spanish/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Swedish
+#usr/lib/squid/errors/Swedish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Swedish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Swedish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Swedish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Swedish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Swedish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Swedish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Swedish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Swedish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Swedish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Swedish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Swedish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Swedish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Swedish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Swedish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Swedish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Swedish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Swedish/ERR_INVALID_URL
+#usr/lib/squid/errors/Swedish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Swedish/ERR_NO_RELAY
+#usr/lib/squid/errors/Swedish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Swedish/ERR_READ_ERROR
+#usr/lib/squid/errors/Swedish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Swedish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Swedish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Swedish/ERR_TOO_BIG
+#usr/lib/squid/errors/Swedish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Swedish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Swedish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Swedish/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Traditional_Chinese
+#usr/lib/squid/errors/Traditional_Chinese/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Traditional_Chinese/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Traditional_Chinese/ERR_DNS_FAIL
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Traditional_Chinese/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Traditional_Chinese/ERR_INVALID_REQ
+#usr/lib/squid/errors/Traditional_Chinese/ERR_INVALID_RESP
+#usr/lib/squid/errors/Traditional_Chinese/ERR_INVALID_URL
+#usr/lib/squid/errors/Traditional_Chinese/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Traditional_Chinese/ERR_NO_RELAY
+#usr/lib/squid/errors/Traditional_Chinese/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Traditional_Chinese/ERR_READ_ERROR
+#usr/lib/squid/errors/Traditional_Chinese/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Traditional_Chinese/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Traditional_Chinese/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Traditional_Chinese/ERR_TOO_BIG
+#usr/lib/squid/errors/Traditional_Chinese/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Traditional_Chinese/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Traditional_Chinese/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Traditional_Chinese/ERR_ZERO_SIZE_OBJECT
+#usr/lib/squid/errors/Turkish
+#usr/lib/squid/errors/Turkish/ERR_ACCESS_DENIED
+#usr/lib/squid/errors/Turkish/ERR_CACHE_ACCESS_DENIED
+#usr/lib/squid/errors/Turkish/ERR_CACHE_MGR_ACCESS_DENIED
+#usr/lib/squid/errors/Turkish/ERR_CANNOT_FORWARD
+#usr/lib/squid/errors/Turkish/ERR_CONNECT_FAIL
+#usr/lib/squid/errors/Turkish/ERR_DNS_FAIL
+#usr/lib/squid/errors/Turkish/ERR_FORWARDING_DENIED
+#usr/lib/squid/errors/Turkish/ERR_FTP_DISABLED
+#usr/lib/squid/errors/Turkish/ERR_FTP_FAILURE
+#usr/lib/squid/errors/Turkish/ERR_FTP_FORBIDDEN
+#usr/lib/squid/errors/Turkish/ERR_FTP_NOT_FOUND
+#usr/lib/squid/errors/Turkish/ERR_FTP_PUT_CREATED
+#usr/lib/squid/errors/Turkish/ERR_FTP_PUT_ERROR
+#usr/lib/squid/errors/Turkish/ERR_FTP_PUT_MODIFIED
+#usr/lib/squid/errors/Turkish/ERR_FTP_UNAVAILABLE
+#usr/lib/squid/errors/Turkish/ERR_INVALID_REQ
+#usr/lib/squid/errors/Turkish/ERR_INVALID_RESP
+#usr/lib/squid/errors/Turkish/ERR_INVALID_URL
+#usr/lib/squid/errors/Turkish/ERR_LIFETIME_EXP
+#usr/lib/squid/errors/Turkish/ERR_NO_RELAY
+#usr/lib/squid/errors/Turkish/ERR_ONLY_IF_CACHED_MISS
+#usr/lib/squid/errors/Turkish/ERR_READ_ERROR
+#usr/lib/squid/errors/Turkish/ERR_READ_TIMEOUT
+#usr/lib/squid/errors/Turkish/ERR_SHUTTING_DOWN
+#usr/lib/squid/errors/Turkish/ERR_SOCKET_FAILURE
+#usr/lib/squid/errors/Turkish/ERR_TOO_BIG
+#usr/lib/squid/errors/Turkish/ERR_UNSUP_REQ
+#usr/lib/squid/errors/Turkish/ERR_URN_RESOLVE
+#usr/lib/squid/errors/Turkish/ERR_WRITE_ERROR
+#usr/lib/squid/errors/Turkish/ERR_ZERO_SIZE_OBJECT
+usr/lib/squid/icons
+#usr/lib/squid/icons/anthony-binhex.gif
+#usr/lib/squid/icons/anthony-bomb.gif
+#usr/lib/squid/icons/anthony-box.gif
+#usr/lib/squid/icons/anthony-box2.gif
+#usr/lib/squid/icons/anthony-c.gif
+#usr/lib/squid/icons/anthony-compressed.gif
+#usr/lib/squid/icons/anthony-dir.gif
+#usr/lib/squid/icons/anthony-dirup.gif
+#usr/lib/squid/icons/anthony-dvi.gif
+#usr/lib/squid/icons/anthony-f.gif
+#usr/lib/squid/icons/anthony-image.gif
+#usr/lib/squid/icons/anthony-image2.gif
+#usr/lib/squid/icons/anthony-layout.gif
+#usr/lib/squid/icons/anthony-link.gif
+#usr/lib/squid/icons/anthony-movie.gif
+#usr/lib/squid/icons/anthony-pdf.gif
+#usr/lib/squid/icons/anthony-portal.gif
+#usr/lib/squid/icons/anthony-ps.gif
+#usr/lib/squid/icons/anthony-quill.gif
+#usr/lib/squid/icons/anthony-script.gif
+#usr/lib/squid/icons/anthony-sound.gif
+#usr/lib/squid/icons/anthony-tar.gif
+#usr/lib/squid/icons/anthony-tex.gif
+#usr/lib/squid/icons/anthony-text.gif
+#usr/lib/squid/icons/anthony-unknown.gif
+#usr/lib/squid/icons/anthony-xbm.gif
+#usr/lib/squid/icons/anthony-xpm.gif
+#usr/lib/squid/mib.txt
+usr/lib/squid/msnt_auth
+usr/lib/squid/ncsa_auth
+usr/lib/squid/ntlm_auth
+usr/lib/squid/smb_auth
+usr/lib/squid/smb_auth.sh
+usr/lib/squid/unlinkd
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
+#usr/share/man/man8/cachemgr.cgi.8
+#usr/share/man/man8/squid.8
+var/log/cache
+var/log/squid
+var/log/squid/access.log
+#var/logs
+##
+## squid-graph-3.1
+##
+home/httpd/html/sgraph
+usr/bin/squid-graph
+##
+## syslinux-2.11
+##
+#usr/bin/gethostip
+#usr/bin/lss16toppm
+#usr/bin/ppmtolss16
+#usr/bin/syslinux
+#usr/lib/syslinux
+#usr/lib/syslinux/copybs.com
+#usr/lib/syslinux/isolinux-debug.bin
+#usr/lib/syslinux/isolinux.bin
+#usr/lib/syslinux/memdisk
+#usr/lib/syslinux/pxelinux.0
+#usr/lib/syslinux/syslinux.com
+#usr/lib/syslinux/syslinux.exe
+##
+## tcpdump-3.8.3
+##
+usr/sbin/tcpdump
+#usr/share/man/man1/tcpdump.1
+##
+## traceroute-1.4a12
+##
+usr/sbin/traceroute
+#usr/share/man/man8/traceroute.8
+##
+## bast-0.9.0
+##
+usr/bin/unicorn_status
+usr/bin/oam_ping
+#lib/modules/2.4.31/extra
+lib/modules/2.4.31/extra/unicorn_pci_atm.o.gz
+#lib/modules/2.4.31/extra/unicorn_pci_eth.o.gz
+lib/modules/2.4.31/extra/unicorn_usb_atm.o.gz
+#lib/modules/2.4.31/extra/unicorn_usb_eth.o.gz
+##
+## bast-0.9.0-smp
+##
+#usr/bin/unicorn_status
+#usr/bin/oam_ping
+#lib/modules/2.4.31-smp/extra
+#lib/modules/2.4.31-smp/extra/unicorn_pci_eth.o.gz
+lib/modules/2.4.31-smp/extra/unicorn_usb_atm.o.gz
+#lib/modules/2.4.31-smp/extra/unicorn_usb_eth.o.gz
+lib/modules/2.4.31-smp/extra/unicorn_pci_atm.o.gz
+##
+## unzip552
+##
+#usr/bin/funzip
+#usr/bin/unzip
+#usr/bin/unzipsfx
+#usr/bin/zipgrep
+#usr/bin/zipinfo
+#usr/share/man/man1/funzip.1
+#usr/share/man/man1/unzip.1
+#usr/share/man/man1/unzipsfx.1
+#usr/share/man/man1/zipgrep.1
+#usr/share/man/man1/zipinfo.1
+##
+## wireless_tools.27
+##
+#usr/include/iwlib.h
+#usr/include/wireless.h
+usr/lib/libiw.so
+usr/lib/libiw.so.27
+usr/sbin/ifrename
+usr/sbin/iwconfig
+usr/sbin/iwevent
+usr/sbin/iwgetid
+usr/sbin/iwlist
+usr/sbin/iwpriv
+usr/sbin/iwspy
+#usr/share/man/man5/iftab.5
+#usr/share/man/man7/wireless.7
+#usr/share/man/man8/ifrename.8
+#usr/share/man/man8/iwconfig.8
+#usr/share/man/man8/iwevent.8
+#usr/share/man/man8/iwgetid.8
+#usr/share/man/man8/iwlist.8
+#usr/share/man/man8/iwpriv.8
+#usr/share/man/man8/iwspy.8
+##
+## HTML-Tagset-3.04
+##
+#usr/lib/perl5/site_perl/5.8.5/HTML
+#usr/lib/perl5/site_perl/5.8.5/HTML/Tagset.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/HTML
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/HTML/Tagset
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/HTML/Tagset/.packlist
+#usr/share/man/man3/HTML::Tagset.3
+##
+## HTML-Parser-3.45
+##
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/HTML
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/HTML/Entities.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/HTML/Filter.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/HTML/HeadParser.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/HTML/LinkExtor.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/HTML/Parser.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/HTML/PullParser.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/HTML/TokeParser.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/HTML/Parser
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/HTML/Parser/.packlist
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/HTML/Parser/Parser.bs
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/HTML/Parser/Parser.so
+#usr/share/man/man3/HTML::Entities.3
+#usr/share/man/man3/HTML::Filter.3
+#usr/share/man/man3/HTML::HeadParser.3
+#usr/share/man/man3/HTML::LinkExtor.3
+#usr/share/man/man3/HTML::Parser.3
+#usr/share/man/man3/HTML::PullParser.3
+#usr/share/man/man3/HTML::TokeParser.3
+##
+## Compress-Zlib-1.35
+##
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Compress
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Compress/Zlib.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Compress
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Compress/Zlib
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Compress/Zlib/.packlist
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Compress/Zlib/Zlib.bs
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Compress/Zlib/Zlib.so
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Compress/Zlib/autosplit.ix
+#usr/share/man/man3/Compress::Zlib.3
+##
+## URI-1.35
+##
+#usr/lib/perl5/site_perl/5.8.5/URI
+usr/lib/perl5/site_perl/5.8.5/URI.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Escape.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Heuristic.pm
+usr/lib/perl5/site_perl/5.8.5/URI/QueryParam.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Split.pm
+usr/lib/perl5/site_perl/5.8.5/URI/URL.pm
+usr/lib/perl5/site_perl/5.8.5/URI/WithBase.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_foreign.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_generic.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/_ldap.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_login.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_query.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_segment.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_server.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_userpass.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/data.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file
+#usr/lib/perl5/site_perl/5.8.5/URI/file.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/Base.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/FAT.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/Mac.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/OS2.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/QNX.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/Unix.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/file/Win32.pm
+usr/lib/perl5/site_perl/5.8.5/URI/ftp.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/gopher.pm
+usr/lib/perl5/site_perl/5.8.5/URI/http.pm
+usr/lib/perl5/site_perl/5.8.5/URI/https.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/ldap.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/ldapi.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/ldaps.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/mailto.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/mms.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/news.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/nntp.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/pop.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/rlogin.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/rsync.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/rtsp.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/rtspu.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/sip.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/sips.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/snews.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/ssh.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/telnet.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/tn3270.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/urn
+#usr/lib/perl5/site_perl/5.8.5/URI/urn.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/urn/isbn.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/urn/oid.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/URI
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/URI/.packlist
+#usr/share/man/man3/URI.3
+#usr/share/man/man3/URI::Escape.3
+#usr/share/man/man3/URI::Heuristic.3
+#usr/share/man/man3/URI::QueryParam.3
+#usr/share/man/man3/URI::Split.3
+#usr/share/man/man3/URI::URL.3
+#usr/share/man/man3/URI::WithBase.3
+#usr/share/man/man3/URI::data.3
+#usr/share/man/man3/URI::file.3
+#usr/share/man/man3/URI::ldap.3
+##
+## libwww-perl-5.803
+##
+usr/lib/perl5/site_perl/5.8.5/LWP.pm
+#usr/lib/perl5/site_perl/5.8.5/lwpcook.pod
+#usr/lib/perl5/site_perl/5.8.5/lwptut.pod
+usr/lib/perl5/site_perl/5.8.5/LWP/MediaTypes.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Debug.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/ConnCache.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/RobotUA.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Simple.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/UserAgent.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/media.types
+usr/lib/perl5/site_perl/5.8.5/LWP/MemberMixin.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/ldap.pm
+#usr/lib/perl5/site_perl/5.8.5/URI/rlogin.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/DebugFile.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Ntlm.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Basic.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Digest.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/data.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/cpan.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/http10.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/https.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/file.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/ftp.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/GHTTP.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/nogo.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/nntp.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/https10.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/gopher.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/loopback.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/http.pm
+#usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/mailto.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTPS.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP/NB.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP/Methods.pm
+#usr/lib/perl5/site_perl/5.8.5/WWW/RobotRules.pm
+#usr/lib/perl5/site_perl/5.8.5/WWW/RobotRules/AnyDBM_File.pm
+#usr/lib/perl5/site_perl/5.8.5/HTML/Form.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Date.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Status.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Request.pm
+#usr/lib/perl5/site_perl/5.8.5/HTTP/Cookies.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Negotiate.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Response.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers.pm
+#usr/lib/perl5/site_perl/5.8.5/HTTP/Daemon.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Message.pm
+#usr/lib/perl5/site_perl/5.8.5/HTTP/Cookies/Netscape.pm
+#usr/lib/perl5/site_perl/5.8.5/HTTP/Cookies/Microsoft.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Request/Common.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/Util.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/Auth.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/ETag.pm
+usr/lib/perl5/site_perl/5.8.5/File/Listing.pm
+#usr/lib/perl5/site_perl/5.8.5/Bundle/LWP.pm
+##
+## Digest-1.08
+##
+#usr/lib/perl5/5.8.5/Digest
+usr/lib/perl5/5.8.5/Digest/base.pm
+#usr/lib/perl5/5.8.5/i386-linux/auto/Digest/.packlist
+#usr/share/man/man3/Digest::base.3
+##
+## Digest-SHA1-2.10
+##
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Digest
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Digest/SHA1
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Digest/SHA1/SHA1.bs
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Digest/SHA1/SHA1.so
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Digest/SHA1/.packlist
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Digest
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Digest/SHA1.pm
+#usr/share/man/man3/Digest::SHA1.3
+##
+## Digest-HMAC-1.01
+##
+#usr/lib/perl5/site_perl/5.8.5/Digest
+usr/lib/perl5/site_perl/5.8.5/Digest/HMAC_SHA1.pm
+usr/lib/perl5/site_perl/5.8.5/Digest/HMAC.pm
+usr/lib/perl5/site_perl/5.8.5/Digest/HMAC_MD5.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Digest/HMAC
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Digest/HMAC/.packlist
+#usr/share/man/man3/Digest::HMAC.3
+#usr/share/man/man3/Digest::HMAC_MD5.3
+#usr/share/man/man3/Digest::HMAC_SHA1.3
+##
+## 3c5x9setup-1.00
+##
+usr/sbin/3c5x9setup
+##
+## iputils-ss020927
+##
+usr/bin/ping
+##
+## iptstate-1.4
+##
+usr/sbin/iptstate
+#usr/share/man/man1/iptstate.1
+##
+## Net_SSLeay-1.2.5
+##
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/SSLeay
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/SSLeay.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/SSLeay/Handle.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/ptrtstrun.pl
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/.packlist
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/SSLeay.bs
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/SSLeay.so
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/autosplit.ix
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/debug_read.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_https2.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_httpx2.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/dump_peer_certificate.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/http_cat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/https_cat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/httpx_cat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/make_form.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/make_headers.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/new_x_ctx.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/open_proxy_tcp_connection.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/open_tcp_connection.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/randomize.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/set_cert_and_key.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/set_proxy.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/set_server_cert_and_key.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/ssl_read_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/ssl_read_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/ssl_read_until.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/ssl_write_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/ssl_write_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/sslcat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcp_read_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcp_read_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcp_read_until.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcp_write_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcp_write_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcpcat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcpxcat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/want_X509_lookup.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/want_nothing.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/want_read.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/want_write.al
+#usr/share/man/man3/Net::SSLeay.3
+#usr/share/man/man3/Net::SSLeay::Handle.3
+##
+## vlan.1.9
+##
+sbin/vconfig
+##
+## installer extension
+##
+usr/local/bin/install2
+##
+## stun-server
+##
+usr/bin/stund
+##
+## XAMPP
+##
+opt/lampp
+##
+## PARPORT & PRINTER modules
+##
+lib/modules/2.4.31/kernel/drivers/char/lp.o.gz
+lib/modules/2.4.31/kernel/drivers/char/parport_serial.o.gz
+lib/modules/2.4.31/kernel/drivers/char/ppdev.o.gz
+lib/modules/2.4.31/kernel/drivers/char/tipar.o.gz
+lib/modules/2.4.31/kernel/drivers/parport
+lib/modules/2.4.31/kernel/drivers/parport/parport.o.gz
+lib/modules/2.4.31/kernel/drivers/parport/parport_pc.o.gz
+lib/modules/2.4.31/kernel/drivers/scsi/imm.o.gz
+lib/modules/2.4.31/kernel/drivers/scsi/ppa.o.gz
+lib/modules/2.4.31/kernel/drivers/usb/printer.o.gz
\ No newline at end of file
diff --git a/src/ibod/CVS/Entries b/src/ibod/CVS/Entries
new file mode 100644 (file)
index 0000000..7dc932e
--- /dev/null
@@ -0,0 +1,4 @@
+/ibod.c/1.1.1.1.8.1/Sat May  7 12:46:16 2005//TIPCOP_v1_4_0
+/ibod.cf/1.1.1.1/Tue Nov 27 08:08:03 2001//TIPCOP_v1_4_0
+/ibod.h/1.1.1.1/Tue Nov 27 08:08:03 2001//TIPCOP_v1_4_0
+D
diff --git a/src/ibod/CVS/Repository b/src/ibod/CVS/Repository
new file mode 100644 (file)
index 0000000..d2fd7a0
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/ibod
diff --git a/src/ibod/CVS/Root b/src/ibod/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/ibod/CVS/Tag b/src/ibod/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/ibod/ibod.c b/src/ibod/ibod.c
new file mode 100644 (file)
index 0000000..6c8e0e0
--- /dev/null
@@ -0,0 +1,367 @@
+/* Customised version of ibod - GUI code removed by Mark Wormgoor\r
+ *                              Buffer overflow fixes by Robert Kerr\r
+ *\r
+ * ibod originally by Bjoern Smith\r
+ */\r
+\r
+static char *rcsId = "$Id: ibod.c,v 1.1.1.1.8.1 2005/05/07 12:46:16 rkerr Exp $";\r
+static char *rcsSymbol = "$Symbol$";\r
+\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <stdio.h>\r
+#include <signal.h>\r
+#include <sys/time.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <fcntl.h>\r
+#include <sys/socket.h>\r
+#include <netinet/in.h>\r
+#include <linux/isdn.h>\r
+#include <syslog.h>\r
+#include <errno.h>\r
+#include "ibod.h"\r
+\r
+static int setattr();\r
+static void reread(int sig);\r
+static void pipehndl(int sig);\r
+static void setinterval();\r
+static void get_if_state();\r
+static int bring_up_slave();\r
+static int bring_down_slave();\r
+static Conf cf;\r
+static struct timeval timeout, tv_last, tv_up;\r
+static int usageflags[ISDN_MAX_CHANNELS];\r
+static char phone[ISDN_MAX_CHANNELS][20];\r
+static Siobytes iobytes[ISDN_MAX_CHANNELS];\r
+static unsigned long in_bytes_last, out_bytes_last;\r
+static unsigned long in_bytes_per_sec, out_bytes_per_sec;\r
+static unsigned long channels_last;\r
+static int  channels_now;\r
+\r
+main(int argc, char *argv[])\r
+{\r
+    openlog("ibod", LOG_PID, LOG_DAEMON);\r
+\r
+    channels_last = -1;\r
+\r
+    /* Setup initial attributes */\r
+    if (setattr() == -1) {\r
+        closelog();\r
+        exit(1);\r
+    }\r
+\r
+    setinterval();\r
+\r
+    /* Setup handlig of signal SIGHUP and SIGPIPE */\r
+    signal(SIGHUP, reread);\r
+    signal(SIGPIPE, pipehndl);\r
+\r
+    do {\r
+        setinterval();\r
+\r
+       usleep(timeout.tv_usec);\r
+\r
+        /* Gate state of interface */\r
+        get_if_state();\r
+\r
+    } while (1);\r
+}\r
+\r
+\r
+static int setattr()\r
+{\r
+    FILE *fd;\r
+    char config_filename[MAX_STR_LEN] = IBOD_DEFAULT_DIR "/ibod.cf";\r
+    char linebuf[MAX_STR_LEN];\r
+    char *key, *value;\r
+    int  val;\r
+\r
+    strcpy(cf.dev, DEVICE);\r
+    cf.enable      = ENABLE;\r
+    cf.interval    = INTERVAL;\r
+    cf.filter      = FILTER;\r
+    cf.limit       = LIMIT;\r
+    cf.stayup      = STAYUP;\r
+    cf.stayup_time = STAYUP_TIME;\r
+\r
+    /* Open config file */\r
+    if ((fd = fopen(config_filename, "r")) == NULL) {\r
+        syslog(LOG_ERR, "%s: %s\n", config_filename, strerror(errno));\r
+        return -1;\r
+    }\r
+\r
+    /* Loop over the config file to setup attributes */\r
+    while (fgets(linebuf, MAX_STR_LEN, fd) != NULL) {\r
+\r
+        if (*linebuf == '#')           /* Ignore comments */\r
+            continue;\r
+\r
+        key = strtok(linebuf, " \t");\r
+        value = strtok(NULL, " \t\n");\r
+\r
+        if (strcmp(key, "DEVICE") == 0) {\r
+            if (strcmp(cf.dev, value) != 0)\r
+                syslog(LOG_NOTICE,\r
+                       "Parameter DEVICE reconfigured to %s\n", value);\r
+            snprintf(cf.dev, 32,"%s", value);\r
+        }\r
+\r
+        if (strcmp(key, "ENABLE") == 0) {\r
+            val = atoi(value);\r
+            if (cf.enable != val)\r
+                syslog(LOG_NOTICE,\r
+                       "Parameter ENABLE reconfigured to %d\n", val);\r
+            cf.enable = val;\r
+        }\r
+\r
+        if (strcmp(key, "INTERVAL") == 0) {\r
+            val = atoi(value);\r
+            if (cf.interval != val)\r
+                syslog(LOG_NOTICE,\r
+                       "Parameter INTERVAL reconfigured to %d\n", val);\r
+            cf.interval = atoi(value);\r
+        }\r
+\r
+        if (strcmp(key, "FILTER") == 0) {\r
+            val = atoi(value);\r
+            if (cf.filter != val)\r
+                syslog(LOG_NOTICE,\r
+                       "Parameter FILTER reconfigured to %d\n", val);\r
+            cf.filter = atoi(value);\r
+        }\r
+\r
+        if (strcmp(key, "LIMIT") == 0) {\r
+            val = atoi(value);\r
+            if (cf.limit != val)\r
+                syslog(LOG_NOTICE,\r
+                       "Parameter LIMIT reconfigured to %d\n", val);\r
+            cf.limit = atoi(value);\r
+        }\r
+\r
+        if (strcmp(key, "STAYUP") == 0) {\r
+            val = atoi(value);\r
+            if (cf.stayup != val)\r
+                syslog(LOG_NOTICE,\r
+                       "Parameter STAYUP reconfigured to %d\n", val);\r
+            cf.stayup = atoi(value);\r
+        }\r
+\r
+        if (strcmp(key, "STAYUP_TIME") == 0) {\r
+            val = atoi(value);\r
+            if (cf.stayup_time != val)\r
+                syslog(LOG_NOTICE,\r
+                       "Parameter STAYUP_TIME reconfigured to %d\n", val);\r
+            cf.stayup_time = atoi(value);\r
+        }\r
+    }\r
+\r
+    fclose(fd);\r
+    return 0;\r
+}\r
+\r
+\r
+\r
+static void setinterval()\r
+{\r
+    timeout.tv_sec = cf.interval / 1000;\r
+    timeout.tv_usec = (cf.interval % 1000) * 1000;\r
+}\r
+\r
+\r
+static void reread(int sig)\r
+{\r
+    (void) setattr();\r
+\r
+    setinterval();\r
+\r
+    signal(SIGHUP, reread);\r
+}\r
+\r
+\r
+static void pipehndl(int sig)\r
+{\r
+    syslog(LOG_ERR, "caught SIGPIPE: %s\n", sys_errlist[errno]);\r
+\r
+    signal(SIGPIPE, pipehndl);\r
+}\r
+\r
+\r
+static void get_if_state()\r
+{\r
+    static char buf[4096];\r
+    struct timeval tv_now;\r
+    int    ms_delta;\r
+    int    in_bytes_now, out_bytes_now;\r
+    int  fd;\r
+    int  i;\r
+\r
+    /* Open the info device */\r
+    if ((fd = open(ISDN_INFO_DEV, O_RDONLY | O_NDELAY)) < 0) {\r
+        syslog(LOG_ERR, "%s: %s\n", ISDN_INFO_DEV, sys_errlist[errno]);\r
+        closelog();\r
+        exit(1);\r
+    }\r
+\r
+    /* Whats the time now */\r
+    gettimeofday(&tv_now, NULL);\r
+    ms_delta = (tv_now.tv_sec * 1000 + tv_now.tv_usec / 1000) -\r
+               (tv_last.tv_sec * 1000 + tv_last.tv_usec / 1000);\r
+    tv_last = tv_now;\r
+\r
+    /* Get info from interface */\r
+    if (read(fd, buf, sizeof(buf))> 0) {\r
+        sscanf(strstr(buf, "usage:"),\r
+            "usage: %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",\r
+            &usageflags[0], &usageflags[1], &usageflags[2], &usageflags[3],\r
+            &usageflags[4], &usageflags[5], &usageflags[6], &usageflags[7],\r
+            &usageflags[8], &usageflags[9], &usageflags[10], &usageflags[11],\r
+            &usageflags[12], &usageflags[13], &usageflags[14], &usageflags[15]);\r
+        sscanf(strstr(buf, "phone:"),\r
+            "phone: %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s",\r
+            phone[0], phone[1], phone[2], phone[3],\r
+            phone[4], phone[5], phone[6], phone[7],\r
+            phone[8], phone[8], phone[10], phone[11],\r
+            phone[12], phone[13], phone[14], phone[15]);\r
+    }\r
+\r
+    in_bytes_now = 0;\r
+    out_bytes_now = 0;\r
+    channels_now = 0;\r
+\r
+    /* Get byte in/out for all channels */\r
+    if (ioctl(fd, IIOCGETCPS, &iobytes)) {\r
+        syslog(LOG_ERR, "%s: %s\n", IIOCGETCPS, sys_errlist[errno]);\r
+        closelog();\r
+        exit(1);\r
+    }\r
+    close(fd);\r
+          \r
+    /* Count number of open channes and total in/out bytes */\r
+    for (i = 0; i < ISDN_MAX_CHANNELS; i++) {\r
+        if (usageflags[i]) {\r
+            channels_now++;\r
+            in_bytes_now += iobytes[i].ibytes;\r
+            out_bytes_now += iobytes[i].obytes;\r
+        }\r
+    }\r
+\r
+    if (channels_last == -1 || channels_now < channels_last) {\r
+        channels_last = channels_now;\r
+        in_bytes_last = in_bytes_now;\r
+        out_bytes_last = out_bytes_now;\r
+        return;\r
+    }\r
+\r
+    /* Calculate the total through put in bytes/sec */\r
+    if (cf.filter < 1) {\r
+        in_bytes_per_sec =\r
+            (in_bytes_now - in_bytes_last) * 1000 / ms_delta;\r
+        out_bytes_per_sec =\r
+            (out_bytes_now - out_bytes_last) * 1000 / ms_delta;\r
+    }\r
+    else {\r
+        in_bytes_per_sec = (in_bytes_per_sec * (cf.filter - 1) +\r
+            (in_bytes_now - in_bytes_last) * 1000 / ms_delta) / cf.filter;\r
+        out_bytes_per_sec = (out_bytes_per_sec * (cf.filter - 1) +\r
+            (out_bytes_now - out_bytes_last) * 1000 / ms_delta) / cf.filter;\r
+    }\r
+\r
+    in_bytes_last = in_bytes_now;\r
+    out_bytes_last = out_bytes_now;\r
+\r
+    if (channels_now == 0) {\r
+        channels_last = channels_now;\r
+        return;\r
+    }\r
+\r
+    /* Take up or down slave channel */\r
+\r
+    if (cf.enable == 0) {\r
+        channels_last = channels_now;\r
+        return;\r
+    }\r
+\r
+    if (channels_now == 1 &&\r
+        (in_bytes_per_sec > cf.limit || out_bytes_per_sec >  cf.limit)) {\r
+\r
+        /* Bring up slave interface */\r
+        if (bring_up_slave() == -1)\r
+            exit(1);\r
+\r
+        /* Start stay up timer */\r
+        gettimeofday(&tv_up, NULL);\r
+    }\r
+\r
+    if ((channels_now > 1) &&\r
+        (in_bytes_per_sec <= cf.limit) &&\r
+        (out_bytes_per_sec <= cf.limit) &&\r
+        (cf.stayup == 0)) {\r
+\r
+        /* Check that the min stay up timer has expired */\r
+        gettimeofday(&tv_now, NULL);\r
+        if (tv_now.tv_sec - tv_up.tv_sec > cf.stayup_time) {\r
+\r
+            /* Bring down slave interface */\r
+            if (bring_down_slave() == -1)\r
+                exit(1);\r
+        }\r
+    }\r
+\r
+    channels_last = channels_now;\r
+}\r
+\r
+\r
+static int bring_up_slave()\r
+{\r
+    int  fd, rc;\r
+\r
+    if ((fd = open(ISDN_CTLR_DEV, O_RDWR)) < 0) {\r
+        syslog(LOG_ERR, "%s: %s\n", ISDN_CTLR_DEV, sys_errlist[errno]);\r
+        closelog();\r
+        return -1;\r
+    }\r
+\r
+    if ((rc = ioctl(fd, IIOCNETALN, cf.dev)) < 0) {\r
+        syslog(LOG_ERR, "%s: %s\n", cf.dev, sys_errlist[errno]);\r
+        closelog();\r
+        return -1;\r
+    }\r
+\r
+    close(fd);\r
+\r
+    if (! rc) {\r
+        syslog(LOG_NOTICE, "added new link\n");\r
+        channels_now = 2;\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+\r
+static int bring_down_slave()\r
+{\r
+    int  fd, rc;\r
+\r
+    if ((fd = open(ISDN_CTLR_DEV, O_RDWR)) < 0) {\r
+        syslog(LOG_ERR, "%s: %s\n", ISDN_CTLR_DEV, sys_errlist[errno]);\r
+        closelog();\r
+        return -1;\r
+    }\r
+\r
+    if ((rc = ioctl(fd, IIOCNETDLN, cf.dev)) < 0) {\r
+        syslog(LOG_ERR, "%s: %s\n", cf.dev, sys_errlist[errno]);\r
+        closelog();\r
+        return -1;\r
+    }\r
+\r
+    close(fd);\r
+\r
+    if (rc)\r
+        syslog(LOG_ERR, "unable to remove additional link: %d\n", rc);\r
+    else {\r
+        syslog(LOG_NOTICE, "removed link\n");\r
+    }\r
+\r
+    return 0;\r
+}\r
diff --git a/src/ibod/ibod.cf b/src/ibod/ibod.cf
new file mode 100644 (file)
index 0000000..8a49598
--- /dev/null
@@ -0,0 +1,58 @@
+# $Id: ibod.cf,v 1.1.1.1 2001/11/27 08:08:03 riddles Exp $
+# $Symbol$
+#
+#
+#
+# Configuration file for ibod (ISDN Bandwidth On Demand)
+#
+# This file contain the initial configuration values for the
+# ibod daemon. Each line contain a keyword and a value.
+#
+# Boolean attributes are set with 0 or 1 which corresponds to
+# false and true respectively. A boolean attribute not specified
+# at all is allways false.
+#
+# Lines beginning with # are treated as comments and are ignored.
+#
+# IMPORTANT RULES!
+#
+#      1. Keywords are case sensitive.
+#      2. Kewords must begin at first column.
+#      3. Keyword and value must be separated by exctly one (1)
+#         space ot tab chracter.
+#
+# This file is re-read every time ibod receives SIGHUP (1) signal.
+#
+# DEVICE       <name>  Name of ISDN PPP device.
+#                      Default is ippp0.
+#
+# ENABLE       1|0     Enable/disable bandwidth-on-demand.
+#                      Default is enable (1).
+#
+# INTERVAL     <n>     Specify the sample time interval in ms.
+#                      Default is 500 ms.
+#
+# FILTER       <n>     Defines "filtering factor". A value of 10 means
+#                      that the average bytes/sec value measured over 10
+#                      intervals must pass the limit defined by LIMIT
+#                      to bring up or down the slave link.
+#                      Default is 5.
+#
+# LIMIT                <n>     Transfer rate limit in bytes/sec for bringing
+#                      up or down isdn slave channel.
+#                      Default is 5000.
+#
+# STAYUP       0|1     Enable/disable slave channel stay up function.
+#                      If enabled the 2:nd cannel (slave link) will stay
+#                      up even if the average bytes/sec decrease the value
+#                      defined by LIMIT. In this case the slave link will
+#                      stay up until hangup time is reached.
+#                      (Example: isdnctrl huptimeout ippp1 60)
+#                      If disabled the slave link will be brought down in
+#                      the same way it is brought up.
+#                      Default is 0.
+#
+# STAYUP_TIME  <n>     Defines the minimum time in seconds the 2:nd
+#                      channel will unconditionally stay up after it has
+#                      been brought up. Default value is 30.
+#
diff --git a/src/ibod/ibod.h b/src/ibod/ibod.h
new file mode 100644 (file)
index 0000000..eba1922
--- /dev/null
@@ -0,0 +1,39 @@
+/* $Id: ibod.h,v 1.1.1.1 2001/11/27 08:08:03 riddles Exp $\r
+ * $Symbol$\r
+ */\r
+\r
+#define DEVICE                 "ippp0"\r
+#define ENABLE                 1\r
+#define INTERVAL                       500\r
+#define FILTER                 5\r
+#define LIMIT                  7000\r
+#define STAYUP                 0\r
+#define STAYUP_TIME            30\r
+\r
+#define IBOD_DEFAULT_DIR       "/etc/ppp"\r
+#define MAX_STR_LEN            512\r
+#define ISDN_INFO_DEV          "/dev/isdninfo"\r
+#define ISDN_CTLR_DEV          "/dev/isdnctrl"\r
+#define IBOD_PORT                      6050\r
+\r
+#define CMD_OPEN                       0\r
+#define CMD_CLOSE                      1\r
+#define CMD_ENABLE             2\r
+#define CMD_DISABLE            3\r
+#define CMD_UP2                        4\r
+#define CMD_DOWN2                      5\r
+\r
+typedef struct {\r
+       char    dev[32];\r
+       int     enable;\r
+       int     interval;\r
+       int     limit;\r
+       int     filter;\r
+       int     stayup;\r
+       int     stayup_time;\r
+} Conf;\r
+\r
+typedef struct {\r
+       unsigned long ibytes;\r
+       unsigned long obytes;\r
+} Siobytes;\r
diff --git a/src/install+setup/CVS/Entries b/src/install+setup/CVS/Entries
new file mode 100644 (file)
index 0000000..7669b44
--- /dev/null
@@ -0,0 +1,3 @@
+D/install////
+D/libsmooth////
+D/setup////
diff --git a/src/install+setup/CVS/Repository b/src/install+setup/CVS/Repository
new file mode 100644 (file)
index 0000000..49f67d4
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/install+setup
diff --git a/src/install+setup/CVS/Root b/src/install+setup/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/install+setup/CVS/Tag b/src/install+setup/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/install+setup/install/CVS/Entries b/src/install+setup/install/CVS/Entries
new file mode 100644 (file)
index 0000000..f9c5b55
--- /dev/null
@@ -0,0 +1,18 @@
+/Makefile/1.6.2.2/Wed Jan 11 01:01:38 2006//TIPCOP_v1_4_0
+/cdrom.c/1.6.2.1/Wed Apr 14 22:05:39 2004//TIPCOP_v1_4_0
+/config.c/1.6.2.3/Wed Dec  7 20:42:48 2005//TIPCOP_v1_4_0
+/grubbatch/1.1.2.5/Mon Sep 13 17:00:53 2004//TIPCOP_v1_4_0
+/ide.c/1.4/Thu Dec 11 11:25:53 2003//TIPCOP_v1_4_0
+/install.h/1.10.2.4/Wed Jan 11 01:01:38 2006//TIPCOP_v1_4_0
+/install2.c/1.1.2.3/Tue Jan 31 00:51:50 2006//TIPCOP_v1_4_0
+/main.c/1.63.2.64/Wed Jan 11 01:01:38 2006//TIPCOP_v1_4_0
+/net.c/1.8.2.2/Wed Apr 14 22:05:40 2004//TIPCOP_v1_4_0
+/nic.c/1.8.2.2/Sat Dec 24 09:08:26 2005//TIPCOP_v1_4_0
+/pcmcia.c/1.6.2.4/Thu Dec  8 02:12:28 2005//TIPCOP_v1_4_0
+/pcmcia.h/1.1/Sun Jan 25 09:34:59 2004//TIPCOP_v1_4_0
+/probescsi.sh/1.8.2.4/Mon Sep 20 19:42:32 2004//TIPCOP_v1_4_0
+/scsi.c/1.2.2.1/Tue Dec  6 18:26:36 2005//TIPCOP_v1_4_0
+/upgrade-v12-v13.c/1.2.2.3/Thu Nov 11 09:39:25 2004//TIPCOP_v1_4_0
+/upgrade-v130-v140.c/1.12.2.35/Thu Nov 11 09:40:03 2004//TIPCOP_v1_4_0
+/usb.c/1.9.2.8/Sat Dec 10 00:18:23 2005//TIPCOP_v1_4_0
+D
diff --git a/src/install+setup/install/CVS/Repository b/src/install+setup/install/CVS/Repository
new file mode 100644 (file)
index 0000000..8936f38
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/install+setup/install
diff --git a/src/install+setup/install/CVS/Root b/src/install+setup/install/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/install+setup/install/CVS/Tag b/src/install+setup/install/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/install+setup/install/Makefile b/src/install+setup/install/Makefile
new file mode 100644 (file)
index 0000000..4136e76
--- /dev/null
@@ -0,0 +1,72 @@
+#
+# $Id: Makefile,v 1.6.2.2 2006/01/11 01:01:38 franck78 Exp $
+#
+
+CC      = gcc 
+CFLAGS  = -Os -Wall
+INCLUDE = -I/install/include
+
+LD      = gcc
+LDFLAGS = -L/install/lib
+LIBS    = -lnewt -lslang -lpci
+
+COMPILE = $(CC) -c $(INCLUDE) $(CFLAGS)
+
+LINK = $(LD) $(LDFLAGS)
+
+all : programs
+
+programs : install install2
+
+clean :
+       -rm -f *.o install core
+
+######
+# Macro to extract from the full set of translations only what is really used
+# into the installer (install&install2). Each needed entry have a "comment
+# inside the main source file"
+define lang_install
+       rm $(OBJS3); \
+       for i in /usr/src/langs/*/install/lang_*.c ; do \
+           path=$${i%/*}/; \
+           file=../libsmooth/$${i/$$path/}; \
+           echo "#include \"libsmooth.h\"" > $$file; \
+           grep "^char \*" $$i >> $$file; \
+           echo "#include \"libsmooth.h\"" > $$file; \
+           grep "^char \*" $$i >> $$file; \
+           grep "^/\* TR_*" ../install/$$SELECT|xargs -i% grep -FA1 % $$i >> $$file; \
+           echo "};">>$$file; \
+       done
+       #build the tr_strings include file
+       awk 'BEGIN{ print"enum trstrings{" } \
+           $$0 ~/\/\* (TR_[A-Z0-9_]*)/ {print $$2"," }\
+           END{ print "};"  }' ../libsmooth/lang_en.c > ../libsmooth/langs.h
+endef
+
+lang_install:
+       SELECT=main.c; \
+       $(lang_install)
+       cp ../libsmooth/langs.h main_langs.h
+
+lang_install2:
+       SELECT=install2.c; \
+       $(lang_install)
+       cp ../libsmooth/langs.h install_langs.h
+
+OBJS1=main.o ide.o cdrom.o nic.o net.o config.o pcmcia.o usb.o scsi.o
+OBJS2=install2.o upgrade-v12-v13.o upgrade-v130-v140.o
+OBJS3=../libsmooth/main.o ../libsmooth/netstuff.o ../libsmooth/varval.o
+
+install: lang_install $(OBJS1) $(OBJS3) install.h ../libsmooth/langs.h ../libsmooth/libsmooth.h /install/include/newt.h
+       $(LINK) $(OBJS1) $(OBJS3) -o $@ $(LIBS)
+
+install2: lang_install2 $(OBJS2) $(OBJS3)
+       #strange 'make': even if files $OBJS3 are deleted, they are not recompiled,
+       #so I explicitly recompile them (needed because langs.h have changed).
+       $(foreach I, $(OBJS3), $(COMPILE) $(patsubst %.o,%.c,$(I)) -o $(I);)
+       $(LINK) $(OBJS2) $(OBJS3) -o $@ $(LIBS)
+
+%.o : %.c
+       $(COMPILE) $< -o $@
+
+.PHONY : lang_install lang_install2 clean
diff --git a/src/install+setup/install/cdrom.c b/src/install+setup/install/cdrom.c
new file mode 100644 (file)
index 0000000..eb21c86
--- /dev/null
@@ -0,0 +1,36 @@
+/* SmoothWall install program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * CDROM menu. Get "misc" driver name etc. \r
+ *\r
+ * $Id: cdrom.c,v 1.6.2.1 2004/04/14 22:05:39 gespinasse Exp $\r
+ *\r
+ */\r
+\r
+#include "install.h"\r
+\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+/* Ejects the CDROM.  returns 0 for failure, 1 for success. */\r
+int ejectcdrom(char *dev)\r
+{\r
+       int fd;\r
+\r
+       if ((fd = open(dev, O_RDONLY|O_NONBLOCK)) == -1)\r
+               return 0;\r
+       \r
+       if (ioctl(fd, CDROMEJECT) == -1)\r
+       {\r
+               close(fd);\r
+               return 0;\r
+       }\r
+       close(fd);\r
+       \r
+       return 1;\r
+}\r
diff --git a/src/install+setup/install/config.c b/src/install+setup/install/config.c
new file mode 100644 (file)
index 0000000..bd9bea2
--- /dev/null
@@ -0,0 +1,125 @@
+/* SmoothWall install program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Write the config and get password stuff.\r
+ * \r
+ * $Id: config.c,v 1.6.2.3 2005/12/07 20:42:48 franck78 Exp $\r
+ * \r
+ */\r
+\r
+#include "install.h"\r
+extern char **ctr;     // text translation table\r
+\r
+/* called to write out all config files using the keyvalue interface. */\r
+int write_disk_configs(struct devparams *dp)\r
+{\r
+       char devnode[STRING_SIZE];\r
+       char partition[STRING_SIZE];\r
+       char *messages[5] = {   NULL,\r
+                               ctr[TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1],\r
+                               ctr[TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2],\r
+                               ctr[TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3],\r
+                               ctr[TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4] \r
+                       };\r
+       /* dev node links. */\r
+       sprintf(devnode, "%s", dp->devnode_disk_run);\r
+       if (symlink(devnode, "/harddisk/dev/harddisk"))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK]);\r
+               return 0;\r
+       }\r
+       \r
+       int j;\r
+       for (j=1; j<5; j++) {\r
+               sprintf(devnode, "%s%d", dp->devnode_part_run,j);\r
+               sprintf(partition,"/harddisk/dev/harddisk%d",j);\r
+               if (symlink(devnode, partition))\r
+               {\r
+                       errorbox( messages[j] );\r
+                       return 0;\r
+               }\r
+       }\r
+\r
+       /* Add /dev/root symlink linking to the root filesystem to \r
+        * keep updfstab happy */\r
+       sprintf(devnode, "%s4", dp->devnode_part_run);\r
+       if (symlink(devnode, "/harddisk/dev/root"))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT]);\r
+               return 0;\r
+       }\r
+\r
+       return 1;\r
+}\r
+\r
+int write_lang_configs( char *lang)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       \r
+       /* default stuff for main/settings. */\r
+       replacekeyvalue(kv, "LANGUAGE", lang);\r
+       replacekeyvalue(kv, "HOSTNAME", SNAME);\r
+       writekeyvalues(kv, "/harddisk" CONFIG_ROOT "/main/settings");\r
+       freekeyvalues(kv);\r
+       \r
+       return 1;\r
+}\r
+\r
+int write_ethernet_configs(struct keyvalue *ethernetkv)\r
+{\r
+       /* Write out the network settings we got from a few mins ago. */\r
+       writekeyvalues(ethernetkv, "/harddisk" CONFIG_ROOT "/ethernet/settings");\r
+       return 1;\r
+}\r
+\r
+/* Taken from the cdrom one. */\r
+int getpassword(char *password, char *text)\r
+{\r
+       char *values[] = {      NULL, NULL, NULL };     /* pointers for the values. */\r
+       struct newtWinEntry entries[] =\r
+       { \r
+               { ctr[TR_PASSWORD_PROMPT], &values[0], 2 },\r
+               { ctr[TR_AGAIN_PROMPT], &values[1], 2 },\r
+               { NULL, NULL, 0 }\r
+       };\r
+       char title[STRING_SIZE];\r
+       int rc;\r
+       int done;\r
+       \r
+       do\r
+       {\r
+               done = 1;\r
+               sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+               rc = newtWinEntries(title, text,\r
+                       50, 5, 5, 20, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+               \r
+               if (rc != 2)\r
+               {\r
+                       if (strlen(values[0]) == 0 || strlen(values[1]) == 0)\r
+                       {\r
+                               errorbox(ctr[TR_PASSWORD_CANNOT_BE_BLANK]);\r
+                               done = 0;\r
+                               strcpy(values[0], "");\r
+                               strcpy(values[1], "");                          \r
+                       }\r
+                       else if (strcmp(values[0], values[1]) != 0)\r
+                       {\r
+                               errorbox(ctr[TR_PASSWORDS_DO_NOT_MATCH]);\r
+                               done = 0;\r
+                               strcpy(values[0], "");\r
+                               strcpy(values[1], "");                                  \r
+                       }\r
+               }\r
+       }\r
+       while (!done);\r
+\r
+       strncpy(password, values[0], STRING_SIZE);\r
+\r
+       if (values[0]) free(values[0]);\r
+       if (values[1]) free(values[1]);\r
+\r
+       return rc;\r
+}\r
diff --git a/src/install+setup/install/grubbatch b/src/install+setup/install/grubbatch
new file mode 100644 (file)
index 0000000..405baf2
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+/bin/cp -f /usr/share/grub/i386-pc/* /boot/grub
+/usr/sbin/grub --no-floppy --batch <<EOT > /dev/null 2> /dev/null
+device (hd0) DEVICE
+root (hd0,0)
+setup (hd0,0)
+setup (hd0)
+quit
+EOT
diff --git a/src/install+setup/install/ide.c b/src/install+setup/install/ide.c
new file mode 100644 (file)
index 0000000..05e4ee7
--- /dev/null
@@ -0,0 +1,61 @@
+/* SmoothWall install program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Contains some functs for scanning /proc for ide info on CDROMS and\r
+ * harddisks.\r
+ * \r
+ * $Id: ide.c,v 1.4 2003/12/11 11:25:53 riddles Exp $\r
+ * \r
+ */\r
+\r
+#include "install.h"\r
+\r
+/* checkide().  Scans the named drive letter and returns the IDE_??? type. */\r
+int checkide(char letter)\r
+{\r
+       FILE *f = NULL;\r
+       char filename[STRING_SIZE];\r
+       char buffer[STRING_SIZE];\r
+       \r
+       sprintf(filename, "/proc/ide/hd%c/media", letter);\r
+       \r
+       if (!(f = fopen(filename, "r")))\r
+               return IDE_EMPTY;\r
+               \r
+       if (!(fgets(buffer, STRING_SIZE, f)))\r
+       {\r
+               printf("Couldn't read from %s\n", filename);\r
+               fclose(f);\r
+               return IDE_EMPTY;\r
+       }\r
+               \r
+       fclose(f);\r
+       \r
+       stripnl(buffer);\r
+       \r
+       if (strcmp(buffer, "cdrom") == 0)\r
+               return IDE_CDROM;\r
+       else if (strcmp(buffer, "disk") == 0)\r
+               return IDE_HD;\r
+       else\r
+               return IDE_UNKNOWN;\r
+}\r
+\r
+/* findidetype().  Finds the first ide deveice of the given IDE_?? type. */\r
+char findidetype(int type)\r
+{\r
+       char letter;\r
+       \r
+       for (letter = 'a'; letter <= 'z'; letter++)\r
+       {\r
+               if ((checkide(letter)) == type)\r
+               {\r
+                       return letter;\r
+               }\r
+       }\r
+       return '\0';\r
+}\r
+\r
diff --git a/src/install+setup/install/install.h b/src/install+setup/install/install.h
new file mode 100644 (file)
index 0000000..a583049
--- /dev/null
@@ -0,0 +1,92 @@
+/* SmoothWall install program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Main include file.\r
+ * \r
+ * $Id: install.h,v 1.10.2.4 2006/01/11 01:01:38 franck78 Exp $\r
+ * \r
+ */\r
+\r
+#include "../libsmooth/libsmooth.h"\r
+\r
+#define IDE_EMPTY 0\r
+#define IDE_CDROM 1\r
+#define IDE_HD 2\r
+#define IDE_UNKNOWN 3\r
+\r
+/* CDROMS and harddisks. */\r
+struct devparams\r
+{\r
+       char devnode_disk[30];          // when single partition is addressed\r
+       char devnode_part[30];          // when the RAID partition is addressed\r
+       char devnode_disk_run[30];      // the same dev but after installation \r
+       char devnode_part_run[30];\r
+       char modulename[STRING_SIZE];\r
+       char options[STRING_SIZE];\r
+//     int module;\r
+};\r
+\r
+/* ide.c */\r
+int checkide(char letter);\r
+char findidetype(int type);\r
+\r
+/* cdrom.c */\r
+int ejectcdrom(char *dev);\r
+\r
+/* nic.c */\r
+int networkmenu(struct keyvalue *ethernetkv);\r
+\r
+/* net.c */\r
+int checktarball(char *);\r
+\r
+/* config.c */\r
+int write_disk_configs(struct devparams *dp);\r
+int write_lang_configs( char *lang);\r
+int write_ethernet_configs(struct keyvalue *ethernetkv);\r
+\r
+/* pcmcia.c */\r
+char * initialize_pcmcia (void);\r
+\r
+/* upgrade_v12_v13.c */\r
+int upgrade_v12_v13();\r
+\r
+/* upgrade_v130_v131.c */\r
+int upgrade_v130_v140();\r
+\r
+/* usb.c */\r
+int initialize_usb();\r
+int write_usb_modules_conf();\r
+int checkusb (char *partition);\r
+\r
+/* scsi.c */\r
+int try_scsi(char *dev);\r
+int get_boot(char *dev);\r
+\r
+/*main.c */\r
+int modprobe (char *mod);\r
+int rmmod (char *mod);\r
+\r
+extern char *bz_tr[];\r
+extern char *cs_tr[];\r
+extern char *da_tr[];\r
+extern char *en_tr[];\r
+extern char *es_tr[];\r
+extern char *fi_tr[];\r
+extern char *fr_tr[];\r
+extern char *hu_tr[];\r
+extern char *la_tr[];\r
+extern char *nl_tr[];\r
+extern char *de_tr[];\r
+extern char *tr_tr[];\r
+extern char *it_tr[];\r
+extern char *el_tr[];\r
+extern char *pl_tr[];\r
+extern char *pt_tr[];\r
+extern char *sk_tr[];\r
+extern char *so_tr[];\r
+extern char *sv_tr[];\r
+extern char *no_tr[];\r
+extern char *vi_tr[];\r
diff --git a/src/install+setup/install/install2.c b/src/install+setup/install/install2.c
new file mode 100644 (file)
index 0000000..18ffc97
--- /dev/null
@@ -0,0 +1,424 @@
+/* IPCop install2 program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * (c) Franck Bourdonnec, 2006\r
+ * Contains update/restore code\r
+ * \r
+ * $Id: install2.c,v 1.1.2.3 2006/01/31 00:51:50 franck78 Exp $\r
+ * \r
+ */\r
+#include "install.h"\r
+\r
+FILE *flog = NULL;\r
+char *mylog;\r
+char **ctr;\r
+\r
+/* \r
+    To include a translated string in the final installer, you must reference\r
+    it here with a simplr comment. This save a lot a space in the installer\r
+*/\r
+\r
+/* TR_BUILDING_INITRD */\r
+/* TR_HELPLINE */\r
+/* TR_SKIP */\r
+/* TR_RESTORE_CONFIGURATION */\r
+/* TR_RESTORE */\r
+/* TR_OK */\r
+/* TR_CANCEL */\r
+/* TR_ERROR */\r
+/* TR_INSTALLING_FILES */\r
+/* TR_FAILED_TO_FIND */\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+/* TR_LOADING_PCMCIA */\r
+\r
+//libsmooth\r
+/* TR_INTERFACE */\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+/* TR_STATIC */\r
+/* TR_DHCP_HOSTNAME */\r
+/* TR_IP_ADDRESS_PROMPT */\r
+/* TR_NETMASK_PROMPT */\r
+/* TR_INVALID_FIELDS */\r
+/* TR_IP_ADDRESS_CR */\r
+/* TR_NETWORK_MASK_CR */\r
+/* TR_DHCP_HOSTNAME_CR */\r
+/* TR_LOOKING_FOR_NIC */\r
+/* TR_MANUAL */\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+/* TR_MODULE_PARAMETERS */\r
+/* TR_LOADING_MODULE */\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+\r
+//upgrade 120\r
+/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */\r
+/* TR_DOMAINNAME */\r
+/* TR_ENTER_DOMAINNAME */\r
+/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */\r
+/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */\r
+/* TR_UNABLE_TO_WRITE_ETC_FSTAB */\r
+\r
+// dir to find files, chrooted or not...\r
+#define TMP_EXTRACT_CH "/tmp/ipcop"\r
+#define TMP_EXTRACT "/harddisk" TMP_EXTRACT_CH\r
+#define MOUNT_BACKUP_CH "/mnt/usb"\r
+#define MOUNT_BACKUP "/harddisk" MOUNT_BACKUP_CH\r
+/*\r
+    return 0 when dev contains a backup set\r
+    leave dev mounted\r
+*/\r
+int try_mount (char *dev, char *testfile) {\r
+       char commandstring[STRING_SIZE];\r
+       mysystem("/bin/umount " MOUNT_BACKUP);\r
+       sprintf(commandstring, "/bin/mount -t vfat -o ro %s " MOUNT_BACKUP, dev);\r
+       mysystem(commandstring);\r
+\r
+       /*verify it's what we want */\r
+       sprintf(commandstring, MOUNT_BACKUP "/%s.dat", testfile);\r
+       FILE *handle = fopen(commandstring, "r");\r
+       if (handle == NULL) {\r
+               return 1;   /* bad disk ! */\r
+       }\r
+       fclose(handle);\r
+       \r
+       handle = fopen(MOUNT_BACKUP "/backup.key", "r");\r
+       if (handle == NULL) {\r
+               return 1;   /* bad disk ! */\r
+       }\r
+       fclose(handle);\r
+       return 0; //success\r
+}\r
+\r
+/* try to mount usb device until backup.tgz is found except the \r
+    destination device (scsi names are identical with usb key)\r
+    check "sda sdb sdc sdd"\r
+*/\r
+int mountbackup (char *testfile, char *destination_device) {\r
+       char sourcedev[30];\r
+       char i,j;\r
+       for (i = 'a'; i < 'e'; i++) {\r
+               sprintf (sourcedev,"/dev/sd%c ",i);\r
+               if (strcmp (destination_device, sourcedev) != 0) {\r
+                       if (!try_mount (sourcedev, testfile)) return 0;\r
+               }\r
+               for (j = '1'; j < '5'; j++) {\r
+                       sourcedev[8] = j;\r
+                       if (strcmp (destination_device, sourcedev) != 0) {\r
+                               if (!try_mount (sourcedev, testfile)) return 0;\r
+                       }\r
+               }\r
+       }\r
+       return 1;\r
+}\r
+\r
+int floppy_locate() {\r
+       /* Temporarily mount /proc under /harddisk/proc,\r
+           run updfstab to locate the floppy, and unmount /harddisk/proc\r
+           again.  This should be run each time the user tries to restore\r
+           so it can properly detect removable devices */\r
+       if (mysystem("/bin/mount -n -t proc /proc /harddisk/proc")) {\r
+               errorbox(ctr[TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM]);\r
+               return 1;\r
+       }\r
+       if (mysystem("/bin/chroot /harddisk /usr/sbin/updfstab")) {\r
+               errorbox(ctr[TR_UNABLE_TO_WRITE_ETC_FSTAB]);\r
+               return 1;\r
+       }\r
+       mysystem("/bin/umount /harddisk/proc");\r
+       return 0;\r
+}\r
+\r
+/* Check the SQUID acl file exists, if not use our 1.4 copy */\r
+void fixup_squidacl() {\r
+       FILE *aclreadfile;\r
+       if ((aclreadfile = fopen ("/harddisk" CONFIG_ROOT "/proxy/acl", "r"))) {\r
+               unlink ("/harddisk" CONFIG_ROOT "/proxy/acl-1.4");\r
+               fclose(aclreadfile);\r
+       } else {\r
+               rename ("/harddisk" CONFIG_ROOT "/proxy/acl-1.4",\r
+                       "/harddisk" CONFIG_ROOT "/proxy/acl");\r
+       }\r
+       chown  ("/harddisk" CONFIG_ROOT "/proxy/acl", 99, 99);\r
+}\r
+/* if we detected SCSI then fixup */\r
+void fixup_initrd() {\r
+       FILE *handle;\r
+       char line[STRING_SIZE];\r
+       char commandstring[STRING_SIZE];\r
+       \r
+        if (!(handle = fopen("/scsidriver", "r"))) \r
+           return;\r
+\r
+       char *driver;\r
+               fgets(line, STRING_SIZE-1, handle);\r
+       fclose(handle);\r
+       line[strlen(line) - 1] = 0;\r
+       driver = strtok(line, ".");\r
+       fprintf(flog, "Detected SCSI driver %s\n", driver);\r
+       if (!strlen(driver) > 1) \r
+               return;\r
+               \r
+       fprintf(flog, "Fixing up ipcoprd.img\n");\r
+       mysystem("/bin/chroot /harddisk /sbin/modprobe loop");\r
+       mkdir("/harddisk/initrd", S_IRWXU|S_IRWXG|S_IRWXO);\r
+       sprintf(commandstring, "/bin/chroot /harddisk /sbin/mkinitrd"\r
+                               " --with=scsi_mod --with=%s --with=sd_mod"\r
+                               " --with=sr_mod --with=libata"\r
+                               " --with=ataraid /boot/ipcoprd.img "KERNEL_VERSION,\r
+                               driver );\r
+       runcommandwithstatus(commandstring, ctr[TR_BUILDING_INITRD]);\r
+#ifdef __i386__\r
+       sprintf(commandstring, "/bin/chroot /harddisk /sbin/mkinitrd"\r
+                               " --with=scsi_mod --with=%s --with=sd_mod"\r
+                               " --with=sr_mod --with=libata"\r
+                               " --with=ataraid /boot/ipcoprd-smp.img "KERNEL_VERSION"-smp",\r
+                               driver );\r
+       runcommandwithstatus(commandstring, ctr[TR_BUILDING_INITRD]);\r
+       mysystem("/bin/chroot /harddisk /bin/mv /boot/grub/scsigrub.conf /boot/grub/grub.conf");\r
+#endif\r
+#ifdef __alpha__\r
+       runcommandwithstatus("/bin/chroot /harddisk /bin/mv /boot/etc/scsiaboot.conf /boot/etc/aboot.conf", ctr[TR_BUILDING_INITRD]);\r
+#endif\r
+}\r
+/* when backup is ready in tmpdir, move files to definitive location */\r
+void do_copy_files(int upgrade_level) {\r
+       mysystem("/bin/chroot /harddisk /bin/cp -af "TMP_EXTRACT_CH"/. /");\r
+       /* Upgrade necessary files from v1.2 to v1.3 to v1.4 */\r
+       switch (upgrade_level) {\r
+       case 1:\r
+               upgrade_v12_v13();\r
+               upgrade_v130_v140();\r
+       case 2: //some 1.4 files format changed\r
+               //between 1.4.0 & 1.4.11  If possible de determine backup/version\r
+               //the update code should go here\r
+       }\r
+}\r
+\r
+int main(int argc, char *argv[]) {\r
+#define LANG argv[1]\r
+#define DEST_DEV argv[2]\r
+#define WGET argv[3]\r
+\r
+#ifdef LANG_EN_ONLY\r
+        char **langtrs[] = { en_tr, NULL };\r
+#else\r
+       char **langtrs[] = { bz_tr, cs_tr, da_tr, de_tr, en_tr, es_tr, fr_tr, el_tr, it_tr, la_tr, hu_tr, nl_tr, no_tr, pl_tr, pt_tr, sk_tr, so_tr, fi_tr, sv_tr, tr_tr, vi_tr, NULL };\r
+#endif\r
+       char message[1000];\r
+       char title[STRING_SIZE];\r
+       char commandstring[STRING_SIZE];\r
+\r
+       setlocale (LC_ALL, ""); \r
+       /* Log file/terminal stuff. */\r
+       mylog = "/dev/tty2";\r
+       ctr = langtrs[ atoi(LANG) ];\r
+\r
+       if (!(flog = fopen(mylog, "w+")))\r
+       {\r
+               printf("Couldn't open log terminal\n");\r
+               return 0;\r
+       }\r
+       fprintf(flog, "Install2 program started.\n");\r
+       newtInit();\r
+       newtCls();\r
+       strcpy (title, NAME " v" VERSION " - " SLOGAN);\r
+       newtDrawRootText(14, 0, title);\r
+       newtPushHelpLine(ctr[TR_HELPLINE]);\r
+/*\r
+       // build now the device node\r
+       runcommandwithstatus("echo 'cd /dev; ./make_devices'>/harddisk/X;" \r
+                                   "chroot /harddisk chmod +x /X;"\r
+                                   "chroot /harddisk /X;"\r
+                                   "chroot /harddisk rm /X"                                \r
+                                   , ctr[TR_INSTALLING_FILES]);\r
+*/\r
+       /* working dirs... */\r
+       mkdir(MOUNT_BACKUP, S_IRWXU|S_IRWXG|S_IRWXO);\r
+\r
+       //create the GUI screen and objects\r
+       newtComponent form, header, labelfile, labelkey, file, key, radio0, radio1, radio2, radio3, radio4, ok;\r
+\r
+       newtCenteredWindow (55,20,ctr[TR_RESTORE]);\r
+       form = newtForm (NULL, NULL,0);\r
+\r
+       sprintf(message, ctr[TR_RESTORE_CONFIGURATION], NAME);\r
+       header = newtTextboxReflowed (2,1,message,51,0,0,0);\r
+       newtFormAddComponent(form, header);\r
+\r
+        // The four method of restauration\r
+        int start1=1, start2=0, start3=0, start4=0;\r
+        radio1 = newtRadiobutton (17, 5, ctr[TR_SKIP], start1, NULL);\r
+        radio2 = newtRadiobutton (17, 6, "Floppy (legacy)", start2, radio1);\r
+        radio3 = newtRadiobutton (17, 7, "Usb-storage/CDROM", start3, radio2);\r
+        if (strcmp(WGET,"none"))\r
+            radio4 = newtRadiobutton (17, 8, "HTTP/FTP", start4, radio3);\r
+       else\r
+            radio4 = NULL;\r
+        newtFormAddComponents(form, radio1, radio2, radio3, radio4, NULL);\r
+\r
+        // The optionnal filename for 'backup'\r
+        labelfile=newtTextbox(12, 10, 35, 1, 0);\r
+        newtTextboxSetText (labelfile, "Filename");\r
+       newtFormAddComponent(form, labelfile);\r
+        char *filevalue;\r
+        char fileinit[STRING_SIZE] = "backup";\r
+        file = newtEntry (17, 11, fileinit, 20, &filevalue, 0);\r
+       newtFormAddComponent(form, file);\r
+\r
+        // The optionnal password for the key\r
+        labelkey=newtTextbox(12, 13, 35, 1, 0);\r
+        newtTextboxSetText (labelkey, "Backup key password");\r
+       newtFormAddComponent(form, labelkey);\r
+        char *keyvalue;\r
+        char keyinit[STRING_SIZE] = "";\r
+        key = newtEntry (17, 14, keyinit, 20, &keyvalue, 0);\r
+       newtFormAddComponent(form, key);\r
+\r
+        // The OK button\r
+       ok=newtButton (23, 16, ctr[TR_OK]);\r
+       newtFormAddComponent(form, ok);\r
+\r
+       /* loop until succeeds or user skips out */\r
+       int retcode = -1;\r
+       while ( retcode<0 ) {\r
+\r
+           // run the windows\r
+           struct newtExitStruct reponse;\r
+           newtFormRun (form, &reponse);\r
+           radio0 = newtRadioGetCurrent(radio1);\r
+            int radio;\r
+            radio = radio0 == radio1 ? 1 : radio0 == radio2 ? 2 :  radio0 == radio3 ? 3 : radio0 == radio4 ? 4 : 0;\r
+            strcpy(keyinit,keyvalue);  //reuse actual value\r
+            strcpy(fileinit,filevalue);\r
+\r
+           if (radio==1) {\r
+                   retcode = 1;        // no restore: nothing special\r
+                   break;              // out of the while loop\r
+           }\r
+\r
+           mkdir(TMP_EXTRACT, S_IRWXU|S_IRWXG|S_IRWXO);\r
+           statuswindow(45, 4, title, ctr[TR_INSTALLING_FILES]);\r
+           switch (radio) {\r
+           case 4:     // network\r
+                   sprintf(commandstring,"/bin/wget -P " TMP_EXTRACT " %s/%s.dat", WGET, filevalue);\r
+                   mysystem (commandstring);\r
+                   sprintf(commandstring,"/bin/wget -P " TMP_EXTRACT " %s/%s.key", WGET, filevalue);\r
+                   if (mysystem (commandstring)) {\r
+                           errorbox(ctr[TR_FAILED_TO_FIND]);\r
+                           break;\r
+                   };\r
+                   goto COMMON;\r
+           case 3:     // normal backup\r
+                   if (mountbackup( filevalue, DEST_DEV )) {\r
+                           errorbox(ctr[TR_UNABLE_TO_INSTALL_FILES]);//mess=no device with backup found\r
+                           break;\r
+                   };\r
+                   // link files to a COMMON location\r
+                   sprintf (commandstring, "chroot /harddisk ln -s "MOUNT_BACKUP_CH"/%s.dat " TMP_EXTRACT_CH "/%s.dat", filevalue, filevalue);\r
+                   mysystem (commandstring);\r
+                   sprintf (commandstring, "chroot /harddisk ln -s "MOUNT_BACKUP_CH"/%s.key " TMP_EXTRACT_CH "/%s.key", filevalue, filevalue);\r
+                   mysystem (commandstring);\r
+\r
+       COMMON:     // DECRYPT THE TARBALL\r
+                   // Copy the key to a new location because we decrypt it!    \r
+                   if (strcmp(keyvalue, "")) { // password provided: decrypt the key\r
+                           sprintf(commandstring,   "/bin/chroot /harddisk /usr/bin/openssl enc"\r
+                                                   " -a -d -aes256 -salt"\r
+                                                   " -pass pass:%s"\r
+                                                   " -in " TMP_EXTRACT_CH "/%s.key"\r
+                                                   " -out " TMP_EXTRACT_CH "/__tmp.key",\r
+                                                   keyvalue, filevalue);\r
+                   } else {                    //just copy to new name\r
+                           sprintf(commandstring,  "/bin/chroot /harddisk cp"\r
+                                                   " " TMP_EXTRACT_CH "/%s.key"\r
+                                                   " " TMP_EXTRACT_CH "/__tmp.key",\r
+                                                   filevalue);\r
+                   }\r
+                   mysystem (commandstring);\r
+\r
+                   sprintf(commandstring,  "/bin/chroot /harddisk /usr/bin/openssl des3"\r
+                                           " -d -salt"\r
+                                           " -in " TMP_EXTRACT_CH "/%s.dat"\r
+                                           " -out " TMP_EXTRACT_CH "/backup.tgz"\r
+                                           " -kfile " TMP_EXTRACT_CH "/__tmp.key",\r
+                                           filevalue);\r
+\r
+                   if (mysystem (commandstring)) {\r
+                           errorbox(ctr[TR_UNABLE_TO_INSTALL_FILES]);//mess=decrypt error:invalid key?\r
+                           break;\r
+                   }\r
+                   strcpy(commandstring,   "/bin/chroot /harddisk /bin/tar"\r
+                                           " -X " CONFIG_ROOT "/backup/exclude.system"\r
+                                           " -C " TMP_EXTRACT_CH\r
+                                           " -xzf " TMP_EXTRACT_CH "/backup.tgz");\r
+\r
+                   if (mysystem(commandstring)) {\r
+                           errorbox(ctr[TR_UNABLE_TO_INSTALL_FILES]);\r
+                           break;\r
+                   }\r
+                   sprintf(commandstring, TMP_EXTRACT "/%s.dat", filevalue);\r
+                   unlink(commandstring ); //dont need them anymore\r
+                   unlink( TMP_EXTRACT "/backup.tgz");\r
+                   sprintf(commandstring, TMP_EXTRACT "/%s.key", filevalue);\r
+                   unlink(commandstring );\r
+                   unlink( TMP_EXTRACT "/__tmp.key");\r
+\r
+                   /* Now copy to correct location */\r
+                   do_copy_files(0);\r
+                   retcode = 0; /* successfully restored */\r
+                   break;\r
+           case 2:\r
+                   // diskette change\r
+                   if (floppy_locate()) {\r
+                           retcode = 2; // this an error!\r
+                           break;\r
+                   }\r
+\r
+                   /* Always extract to /tmp/ipcop for temporary extraction\r
+                      just in case floppy fails.\r
+                      try a compressed backup first because it's quicker to fail.\r
+                      In exclude.system, files name must be without leading / or \r
+                      on extraction, name will never match\r
+                   */\r
+                   sprintf(commandstring,\r
+                    "/bin/chroot /harddisk /bin/tar -X " CONFIG_ROOT "/backup/exclude.system -C "TMP_EXTRACT_CH" -xvzf /dev/floppy > %s 2> /dev/null", mylog);\r
+                   if (system(commandstring)) {\r
+                   /* if it's not compressed, try uncompressed first before failing*/\r
+                       sprintf(commandstring,\r
+                    "/bin/chroot /harddisk /bin/tar -X " CONFIG_ROOT "/backup/exclude.system -C "TMP_EXTRACT_CH" -xvf /dev/floppy > %s 2> /dev/null", mylog);\r
+                       if (system(commandstring)) {\r
+                           /* command failed trying to read from floppy */\r
+                           errorbox(ctr[TR_UNABLE_TO_INSTALL_FILES]);\r
+                           break;\r
+                       } \r
+                   }\r
+                   /* Now copy to correct location */\r
+                   do_copy_files(1);\r
+                   retcode = 0; /* successfully restored */\r
+           }//switch\r
+           /* remove possible badly restored files */\r
+           mysystem("/bin/chroot /harddisk /bin/rm -rf " TMP_EXTRACT_CH );\r
+           newtPopWindow(); // close windows\r
+       }//while\r
+        newtFormDestroy(form);\r
+\r
+       /* cleanup */\r
+       mysystem("/bin/umount " MOUNT_BACKUP);\r
+       mysystem("/bin/chroot /harddisk /bin/rmdir " MOUNT_BACKUP_CH);\r
+\r
+       /* others operations moved from install to install2 */\r
+       fixup_squidacl();\r
+       fixup_initrd();\r
+\r
+       fprintf(flog, "Install2 program ended.\n");\r
+       fflush(flog);\r
+       fclose(flog);\r
+       newtFinished();\r
+       return retcode;\r
+}\r
+\r
diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c
new file mode 100644 (file)
index 0000000..e3d9772
--- /dev/null
@@ -0,0 +1,1051 @@
+/* SmoothWall install program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Contains main entry point, and misc functions.\r
+ * \r
+ * $Id: main.c,v 1.63.2.64 2006/01/11 01:01:38 franck78 Exp $\r
+ * \r
+ */\r
+#include "install.h"\r
+\r
+#define CDROM_INSTALL 0\r
+#define URL_INSTALL 1\r
+\r
+int raid_disk = 0;\r
+FILE *flog = NULL;\r
+char *mylog;\r
+char **ctr;\r
+\r
+char *pcmcia = NULL;\r
+extern char url[STRING_SIZE];\r
+\r
+/* \r
+    To include a translated string in the final installer, you must reference\r
+    it here with a simplr comment. This save a lot a space in the installer\r
+*/\r
+/* TR_WELCOME */\r
+/* TR_HELPLINE */\r
+/* TR_OK */\r
+/* TR_ERROR */\r
+/* TR_SELECT_INSTALLATION_MEDIA_LONG */\r
+/* TR_SELECT_INSTALLATION_MEDIA */\r
+/* TR_CANCEL */\r
+/* TR_INSERT_FLOPPY */\r
+/* TR_INSTALLATION_CANCELED */\r
+/* TR_EXTRACTING_MODULES */\r
+/* TR_UNABLE_TO_EXTRACT_MODULES */\r
+/* TR_LOADING_PCMCIA */\r
+/* TR_PROBING_SCSI */\r
+/* TR_NO_CDROM */\r
+/* TR_INSERT_CDROM */\r
+/* TR_USB_KEY_VFAT_ERR */\r
+/* TR_NETWORK_SETUP_FAILED */\r
+/* TR_NO_IPCOP_TARBALL_FOUND */\r
+/* TR_NO_SCSI_IMAGE_FOUND */\r
+/* TR_INSTALLING_FILES */\r
+/* TR_UNABLE_TO_INSTALL_FILES */\r
+/* TR_NO_HARDDISK */\r
+/* TR_PREPARE_HARDDISK */\r
+/* TR_DISK_TOO_SMALL */\r
+/* TR_CONTINUE_NO_SWAP */\r
+/* TR_PARTITIONING_DISK */\r
+/* TR_UNABLE_TO_PARTITION */\r
+/* TR_MAKING_BOOT_FILESYSTEM */\r
+/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */\r
+/* TR_MAKING_LOG_FILESYSTEM */\r
+/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */\r
+/* TR_MAKING_ROOT_FILESYSTEM */\r
+/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */\r
+/* TR_MOUNTING_ROOT_FILESYSTEM */\r
+/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */\r
+/* TR_MAKING_SWAPSPACE */\r
+/* TR_UNABLE_TO_MAKE_SWAPSPACE */\r
+/* TR_MOUNTING_SWAP_PARTITION */\r
+/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */\r
+/* TR_MOUNTING_BOOT_FILESYSTEM */\r
+/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */\r
+/* TR_MOUNTING_LOG_FILESYSTEM */\r
+/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */\r
+/* TR_ERROR_WRITING_CONFIG */\r
+/* TR_INSTALLING_GRUB */\r
+/* TR_UNABLE_TO_INSTALL_GRUB */\r
+/* TR_UNABLE_TO_UNMOUNT_CDROM */\r
+/* TR_UNABLE_TO_EJECT_CDROM */\r
+/* TR_CONGRATULATIONS_LONG */\r
+/* TR_CONGRATULATIONS */\r
+/* TR_PRESS_OK_TO_REBOOT */\r
+\r
+// in nic.c\r
+/* TR_CONFIGURE_NETWORKING */\r
+/* TR_PROBE */\r
+/* TR_SELECT */\r
+/* TR_CONFIGURE_NETWORKING_LONG */\r
+/* TR_PROBE_FAILED */\r
+/* TR_FOUND_NIC */\r
+/* TR_INTERFACE_FAILED_TO_COME_UP */\r
+\r
+//netc.c\r
+/* TR_CHECKING */\r
+/* TR_FAILED_TO_FIND */\r
+/* TR_ENTER_URL */\r
+\r
+//setup.c\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */\r
+/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */\r
+/* TR_PASSWORD_PROMPT */\r
+/* TR_AGAIN_PROMPT */\r
+/* TR_PASSWORD_CANNOT_BE_BLANK */\r
+/* TR_PASSWORDS_DO_NOT_MATCH */\r
+\r
+//libsmooth\r
+/* TR_INTERFACE */\r
+/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */\r
+/* TR_STATIC */\r
+/* TR_DHCP_HOSTNAME */\r
+/* TR_IP_ADDRESS_PROMPT */\r
+/* TR_NETMASK_PROMPT */\r
+/* TR_INVALID_FIELDS */\r
+/* TR_IP_ADDRESS_CR */\r
+/* TR_NETWORK_MASK_CR */\r
+/* TR_DHCP_HOSTNAME_CR */\r
+/* TR_LOOKING_FOR_NIC */\r
+/* TR_MANUAL */\r
+/* TR_SELECT_NETWORK_DRIVER */\r
+/* TR_SELECT_NETWORK_DRIVER_LONG */\r
+/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */\r
+/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */\r
+/* TR_MODULE_PARAMETERS */\r
+/* TR_LOADING_MODULE */\r
+/* TR_MODULE_NAME_CANNOT_BE_BLANK */\r
+\r
+\r
+int main(int argc, char *argv[])\r
+{\r
+#ifdef LANG_EN_ONLY\r
+        char *langnames[] = { "English", NULL };\r
+        char *shortlangnames[] = { "en", NULL };\r
+        char **langtrs[] = { en_tr, NULL };\r
+#else\r
+       char *langnames[] = { "Brasil", "Cestina", "Dansk", "Deutsch", "English", "Español", "Français", "Hellenic", "Italiano", "Spanish Latino", "Magyar", "Nederlands", "Norsk", "Polski", "Português", "Slovak", "Soomali", "Suomi", "Svenska", "Türkçe", "Tieng Viet", NULL };\r
+       char *shortlangnames[] = { "bz", "cs", "da", "de", "en", "es", "fr", "el", "it", "la", "hu", "nl", "no", "pl", "pt", "sk", "so", "fi", "sv", "tr", "vi", NULL };\r
+       char **langtrs[] = { bz_tr, cs_tr, da_tr, de_tr, en_tr, es_tr, fr_tr, el_tr, it_tr, la_tr, hu_tr, nl_tr, no_tr, pl_tr, pt_tr, sk_tr, so_tr, fi_tr, sv_tr, tr_tr, vi_tr, NULL };\r
+#endif\r
+       char hdletter, cdletter;\r
+       char harddrive[5], cdromdrive[5];       /* Device holder. */\r
+       struct devparams hdparams, cdromparams; /* Params for CDROM and HD */\r
+       int cdmounted = 0;              /* Loop flag for inserting a cd. */ \r
+       int rc;\r
+       char commandstring[STRING_SIZE];\r
+       char *installtypes[] = { "CDROM/USB-KEY", "HTTP/FTP", NULL };\r
+       int installtype = CDROM_INSTALL; \r
+       char insertmessage[STRING_SIZE];\r
+       char insertdevnode[STRING_SIZE];\r
+       int choice;\r
+       char shortlangname[10];\r
+       char message[1000];\r
+       char title[STRING_SIZE];\r
+       int allok = 0;\r
+       int no_restore=0;\r
+       int unmount_before=0;\r
+       struct keyvalue *ethernetkv = initkeyvalues();\r
+       FILE *handle, *cmdfile;\r
+       char line[STRING_SIZE];\r
+       char string[STRING_SIZE];\r
+       int maximum_free = 0, current_free;\r
+       int memory = 0;\r
+       int log_partition, boot_partition, root_partition, swap_file;\r
+       int scsi_disk = 0;\r
+       int pcmcia_disk = 0;\r
+       int pcmcia_cdrom = 0;\r
+       int scsi_cdrom = 0;\r
+       int ide_cdrom = 0;\r
+       int fdisk = 0;\r
+       int usb_cdrom = 0;\r
+\r
+       setlocale (LC_ALL, "");\r
+       sethostname(SNAME, 10);\r
+       \r
+       memset(&hdparams, 0, sizeof(struct devparams));\r
+       memset(&cdromparams, 0, sizeof(struct devparams));\r
+\r
+       /* Log file/terminal stuff. */\r
+       if (argc >= 2)\r
+       {               \r
+               if (!(flog = fopen(argv[1], "w+")))\r
+                       return 0;\r
+       }\r
+       else\r
+               return 0;\r
+       \r
+       mylog = argv[1];\r
+       \r
+       fprintf(flog, "Install program started.\n");\r
+               \r
+       newtInit();\r
+       newtCls();\r
+\r
+       /* Do usb detection first for usb keyboard */\r
+       if (! (cmdfile = fopen("/proc/cmdline", "r")))\r
+       {\r
+               fprintf(flog, "Couldn't open commandline: /proc/cmdline\n");\r
+       } else {\r
+               fgets(line, STRING_SIZE, cmdfile);\r
+               if (strstr (line, "fdisk") != NULL) {\r
+                       fprintf(flog, "Manual FDISK selected.\n");\r
+                       fdisk = 1;\r
+               }\r
+               if (strstr (line, "nopcmcia") == NULL) {\r
+                       fprintf(flog, "Initializing PCMCIA controllers.\n");\r
+                       pcmcia = initialize_pcmcia();\r
+                       if (pcmcia) {\r
+                               fprintf (flog, "Detected PCMCIA Controller: %s.\n", pcmcia);\r
+                               sprintf(commandstring, "/sbin/modprobe %s", pcmcia);\r
+                               mysystem("/sbin/modprobe pcmcia_core");\r
+                               mysystem(commandstring);\r
+                               mysystem("/sbin/modprobe ds");\r
+                               /* pcmcia netcard drivers are not available from Boot floppy,\r
+                                * they will be loaded from Drivers floppy later */\r
+                       } else {\r
+                               fprintf (flog, "Detected No PCMCIA Controller.\n");\r
+                       }\r
+               } else {\r
+                       fprintf(flog, "Skipping PCMCIA detection.\n");\r
+               }\r
+               if (strstr (line, "nousb") == NULL) {\r
+                       fprintf(flog, "Initializing USB controllers.\n");\r
+                       initialize_usb();\r
+               } else {\r
+                       fprintf(flog, "Skipping USB detection.\n");\r
+               }\r
+       }\r
+       \r
+       /* English is the default */\r
+       for (choice = 0; langnames[choice]; choice++)\r
+       {\r
+               if (strcmp(langnames[choice], "English") == 0)\r
+                       break;\r
+       }\r
+       if (!langnames[choice])\r
+               goto EXIT;\r
+\r
+#ifdef LANG_EN_ONLY\r
+       /* No need to ask.  "choice" already has the index for English */\r
+#else\r
+       rc = newtWinMenu("Language selection",\r
+               "Select the language you wish to use for the " NAME ".", 50, 5, 5, 8,\r
+               langnames, &choice, "Ok", NULL);\r
+#endif\r
+       ctr = langtrs[choice];\r
+       strcpy(shortlangname, shortlangnames[choice]);\r
+       if (strcmp(shortlangname, "el") == 0)\r
+               mysystem("/bin/setfont iso07u-16");\r
+       else if (strcmp(shortlangname, "pt") == 0)\r
+               mysystem("/bin/setfont lat1-16");\r
+       else if (strcmp(shortlangname, "bz") == 0)\r
+               mysystem("/bin/setfont lat1-16");\r
+       else if (strcmp(shortlangname, "cs") == 0)\r
+               mysystem("/bin/setfont lat2-16");\r
+       else if (strcmp(shortlangname, "hu") == 0)\r
+               mysystem("/bin/setfont lat2-16");\r
+       else if (strcmp(shortlangname, "pl") == 0)\r
+               mysystem("/bin/setfont lat2-16");\r
+       else if (strcmp(shortlangname, "sk") == 0)\r
+               mysystem("/bin/setfont lat2-16");\r
+       else if (strcmp(shortlangname, "tr") == 0)\r
+               mysystem("/bin/setfont lat5-16");\r
+       else if (strcmp(shortlangname, "vi") == 0)\r
+               mysystem("/bin/setfont viscii10-8x16");\r
+       else\r
+               mysystem("/bin/setfont lat0-16");\r
+\r
+       /* need this for reading from formatted device */\r
+       modprobe("vfat");\r
+\r
+       newtDrawRootText(14, 0, NAME " v" VERSION " - " SLOGAN );\r
+       newtPushHelpLine(ctr[TR_HELPLINE]);\r
+\r
+       snprintf(message, STRING_SIZE, ctr[TR_WELCOME], NAME);\r
+       snprintf (title, STRING_SIZE, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+       newtWinMessage(title, ctr[TR_OK], message);\r
+\r
+       snprintf(message,STRING_SIZE, ctr[TR_SELECT_INSTALLATION_MEDIA_LONG], NAME);\r
+       rc = newtWinMenu(ctr[TR_SELECT_INSTALLATION_MEDIA], message,\r
+               50, 5, 5, 6, installtypes, &installtype, ctr[TR_OK],\r
+               ctr[TR_CANCEL], NULL);\r
+\r
+       if (rc == 2)\r
+               goto EXIT;\r
+\r
+       if (installtype == CDROM_INSTALL)  // CD or USB-key\r
+       {\r
+\r
+               /* try usb key in superfloppy format only */\r
+               if (checkusb("sda")) {\r
+                       sprintf(cdromdrive, "sda");\r
+                       usb_cdrom = 1;\r
+                       goto FOUND_SOURCE;\r
+               }\r
+               if (checkusb("sdb")) {\r
+                       sprintf(cdromdrive, "sdb");\r
+                       usb_cdrom = 1;\r
+                       goto FOUND_SOURCE;\r
+               }\r
+\r
+               /* look for an IDE CDROM. */\r
+               if ((cdletter = findidetype(IDE_CDROM)))\r
+               {\r
+                       sprintf(cdromdrive, "hd%c", cdletter);\r
+                       ide_cdrom = 1;\r
+                       goto FOUND_SOURCE;\r
+               }\r
+\r
+               /* If we have a USB attached CDROM then it will\r
+                * have already appeared at /dev/scd0, so we\r
+                * try to access it first, before asking for the\r
+                * SCSI drivers disk.\r
+                */\r
+               if (try_scsi("scd0")) {\r
+                       sprintf(cdromdrive, "scd0");\r
+                       scsi_cdrom = 1;\r
+                       goto FOUND_SOURCE;\r
+               }\r
+\r
+               /* ask for supplemental  SCSI driver */\r
+               snprintf(insertmessage, STRING_SIZE, ctr[TR_INSERT_FLOPPY], NAME" SCSI");\r
+               if (newtWinChoice(title, ctr[TR_OK], ctr[TR_CANCEL], insertmessage) != 1)\r
+               {\r
+                       errorbox(ctr[TR_INSTALLATION_CANCELED]);\r
+                       goto EXIT;\r
+               }\r
+\r
+               /* extract new modules */\r
+               if (runcommandwithstatus("/bin/tar -C / -xvzf /dev/floppy", ctr[TR_EXTRACTING_MODULES]))\r
+               {\r
+                       errorbox(ctr[TR_UNABLE_TO_EXTRACT_MODULES]);\r
+                       goto EXIT;\r
+               }\r
+               /* and load PCMCIA */\r
+               if (pcmcia)\r
+               {\r
+                       /* trying to support SCSI pcmcia :-) */\r
+                       runcommandwithstatus("cardmgr -o -c /etc/pcmcia/scsi",\r
+                               ctr[TR_LOADING_PCMCIA]);\r
+                       if (try_scsi("scd0")) {\r
+                               sprintf(cdromdrive, "scd0");\r
+                               pcmcia_cdrom = 1;\r
+                               goto FOUND_SOURCE;\r
+                       }\r
+               }\r
+\r
+               /* try loading all SCSI modules with default options */\r
+               /* Should expand this to allow options later though */\r
+               runcommandwithstatus("/bin/probescsi.sh", ctr[TR_PROBING_SCSI]);\r
+\r
+               /* If it fails, give up. */\r
+               if (try_scsi("scd0")) {\r
+                       sprintf(cdromdrive, "scd0");\r
+                       scsi_cdrom = 1;\r
+                       goto FOUND_SOURCE;\r
+               }\r
+\r
+               /* Unable to find a valid source, give up */\r
+               errorbox(ctr[TR_NO_CDROM]);\r
+               goto EXIT;\r
+\r
+               FOUND_SOURCE:\r
+               sprintf(cdromparams.devnode_disk, "/dev/%s", cdromdrive);\r
+//             cdromparams.module = 0;\r
+\r
+               snprintf(insertmessage,STRING_SIZE ,ctr[TR_INSERT_CDROM], NAME);\r
+               strcpy (insertdevnode, cdromparams.devnode_disk);\r
+       }\r
+       else    /* don't understand why this follows... */\r
+       {\r
+               /* If we've done a PXE boot, we can skip the Drivers floppy,\r
+                * as we've already got the modules in our instroot.gz */\r
+               if (!(handle = fopen("/CDROMBOOT", "r"))) {\r
+                       snprintf(insertmessage, STRING_SIZE-12, ctr[TR_INSERT_FLOPPY], NAME);\r
+                       strcpy (insertdevnode , "/dev/floppy");\r
+               } else {\r
+                       fclose(handle);\r
+                       cdmounted = 1;\r
+                       unmount_before = 1;\r
+               }\r
+       }\r
+\r
+       /* Try to mount /cdrom with the device discovered */\r
+       if (scsi_cdrom || ide_cdrom || usb_cdrom) {\r
+               snprintf(commandstring, STRING_SIZE, "/bin/mount -o ro %s /cdrom", insertdevnode);\r
+               int skip_dialog = 1;\r
+               int sd_test = 0;\r
+               while (!cdmounted)\r
+               {\r
+                       /* for usb-key, we have to try sda then sda1. The key cannot be unpluged */\r
+                       if (sd_test == 1) { //change to sda1\r
+                               sprintf(commandstring, "/bin/mount -o ro %s1 /cdrom", insertdevnode);\r
+                       }\r
+                       if (sd_test == 2) { //the key do not contains a vfat file system\r
+                               errorbox(ctr[TR_USB_KEY_VFAT_ERR]);\r
+                               goto EXIT;\r
+                       }\r
+                       if (usb_cdrom) sd_test++;       // next USB test\r
+                       \r
+                       if (!skip_dialog && !usb_cdrom) {\r
+                           rc = newtWinChoice(title, ctr[TR_OK], ctr[TR_CANCEL], insertmessage);\r
+                           if (rc != 1)\r
+                           {\r
+                               errorbox(ctr[TR_INSTALLATION_CANCELED]);\r
+                               goto EXIT;\r
+                           }\r
+                       }\r
+                       skip_dialog = 0;\r
+                       if (mysystem(commandstring))\r
+                           continue; //mount failed, try again\r
+\r
+                       /*verify it's what we want */\r
+                       handle = fopen ("/cdrom/" SNAME "-" VERSION ".tgz", "r");\r
+                       if (handle == NULL) {\r
+                               mysystem ("/bin/umount /cdrom");\r
+                               continue;   /* bad disk ! */\r
+                       }\r
+\r
+                       fclose (handle);\r
+                               cdmounted = 1;\r
+                       /* If we've booted from CDROM, then\r
+                        * we've already got the drivers,\r
+                        * so we can skip this unpack. */\r
+                       if ((handle = fopen("/CDROMBOOT", "r"))) {\r
+                               fclose(handle);\r
+                               break;  /* ok we go everything */\r
+                       }\r
+                       /* unpack drivers */\r
+                       if (runcommandwithprogress(60, 4, title,\r
+                                               "/bin/tar -C / -xvzf /cdrom/images/drivers-"VERSION".img",\r
+                                               175, ctr[TR_EXTRACTING_MODULES]))\r
+                       {\r
+                               errorbox(ctr[TR_UNABLE_TO_EXTRACT_MODULES]);\r
+                               goto EXIT;\r
+                       }\r
+               }\r
+       } else { /* no cd device were discovered,  ask second diskette */\r
+               sprintf(commandstring, "/bin/tar -C / -xvzf /dev/floppy");\r
+               while (!cdmounted)\r
+               {\r
+                       rc = newtWinChoice(title, ctr[TR_OK], ctr[TR_CANCEL], insertmessage);\r
+                       if (rc != 1)\r
+                       {\r
+                               errorbox(ctr[TR_INSTALLATION_CANCELED]);\r
+                               goto EXIT;\r
+                       }\r
+                       if (runcommandwithprogress(60, 4, title, \r
+                               commandstring,\r
+                               175, ctr[TR_EXTRACTING_MODULES]))\r
+                       {\r
+#if 0 /* disable this, so we allow for people putting in the wrong disk */\r
+                               errorbox(ctr[TR_UNABLE_TO_EXTRACT_MODULES]);\r
+                               goto EXIT;\r
+#endif\r
+                       }\r
+                       else\r
+                       {\r
+                               handle = fopen ("/bin/mke2fs", "r");\r
+                               if (handle != NULL) {\r
+                                       fclose (handle);\r
+                                               cdmounted = 1;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
+       /* PCMCIA controller is already detected\r
+        * On Boot floppy, we didn't have the PCMCIA drivers\r
+        * so load them now because they are installed from Drivers. */\r
+       if (!(handle = fopen("/CDROMBOOT", "r"))) {\r
+               if (strstr (line, "nopcmcia") == NULL) {\r
+                       fprintf(flog,"Floppy boot detected, loading PCMCIA drivers.\n");\r
+                       if (pcmcia) {\r
+                               fprintf (flog, "Detected PCMCIA Controller: %s.\n", pcmcia);\r
+                               sprintf(commandstring, "/sbin/modprobe %s", pcmcia);\r
+                               mysystem("/sbin/modprobe pcmcia_core");\r
+                               mysystem(commandstring);\r
+                               mysystem("/sbin/modprobe ds");\r
+                       } else {\r
+                               fprintf (flog, "Detected No PCMCIA Controller.\n");\r
+                       }\r
+               } else {\r
+                       fprintf(flog, "Skipping PCMCIA detection.\n");\r
+               }\r
+               if (strstr (line, "nousb") == NULL) {\r
+                       fprintf(flog, "Initializing USB controllers.\n");\r
+                       initialize_usb();\r
+               } else {\r
+                       fprintf(flog, "Skipping USB detection.\n");\r
+               }\r
+       } else\r
+               fclose(handle);\r
+\r
+       /* Configure the network now! */\r
+       if (installtype == URL_INSTALL)\r
+       {\r
+               /* Network driver and params. */\r
+               if (!(networkmenu(ethernetkv)))\r
+               {\r
+                       errorbox(ctr[TR_NETWORK_SETUP_FAILED]);\r
+                       goto EXIT;\r
+               }\r
+\r
+               /* Check for ipcop-<VERSION>.tgz */\r
+               if (!(checktarball(SNAME "-" VERSION ".tgz")))\r
+               {\r
+                       errorbox(ctr[TR_NO_IPCOP_TARBALL_FOUND]);\r
+                       goto EXIT;\r
+               }\r
+       }\r
+\r
+       /* Get device for the HD.  This has to succeed. */\r
+       /* first try an IDE disk */\r
+       if ((hdletter = findidetype(IDE_HD)))\r
+       {\r
+               sprintf(harddrive, "hd%c", hdletter);\r
+               goto FOUND_DESTINATION;\r
+       }\r
+       /* unpack SCSI driver if not done during CD detection */\r
+       if (installtype == URL_INSTALL)\r
+       {\r
+               /* If we've done a PXE boot, we can skip the SCSI\r
+                * floppy as we've already got the modules in our \r
+                * instroot.gz */\r
+               if (!(handle = fopen("/CDROMBOOT", "r"))) \r
+               {\r
+                       /* search img where it is on a mounted loop iso */\r
+                       if (!(checktarball("images/scsidrv-"VERSION".img")))\r
+                       {\r
+                               /* Couldn't find the SCSI drivers on the URL page,\r
+                                * so after 3 failed attempts, ask the user for the\r
+                                * SCSI drivers floppy disk. */\r
+                               errorbox(ctr[TR_NO_SCSI_IMAGE_FOUND]);\r
+                               snprintf(insertmessage, STRING_SIZE, ctr[TR_INSERT_FLOPPY], NAME" SCSI");\r
+                               rc = newtWinChoice(title, ctr[TR_OK], ctr[TR_CANCEL], insertmessage);\r
+                               if (rc != 1)\r
+                               {\r
+                                       errorbox(ctr[TR_INSTALLATION_CANCELED]);\r
+                                       goto EXIT;\r
+                               }\r
+\r
+                               if (runcommandwithstatus("/bin/tar -C / -xvzf /dev/floppy", ctr[TR_EXTRACTING_MODULES]))\r
+                               {\r
+                                       errorbox(ctr[TR_UNABLE_TO_EXTRACT_MODULES]);\r
+                                       goto EXIT;\r
+                               }\r
+                       } else {\r
+                               /* unpack... THIS DO NOT WORK BECAUSE var "string" is empty*/\r
+                               snprintf(commandstring, STRING_SIZE,\r
+                                       "/bin/wget -O - %s/%s | /bin/tar -C / -xvzf -",\r
+                                       url, string);\r
+                               if (runcommandwithprogress(60, 4, title, commandstring,\r
+                                       4500, ctr[TR_INSTALLING_FILES]))\r
+                               {\r
+                                       errorbox(ctr[TR_UNABLE_TO_INSTALL_FILES]);\r
+                                       goto EXIT;\r
+                               }\r
+                       }\r
+               } else\r
+                       fclose(handle);\r
+       } else {  /* cdrom/usb install, install SCSI id not done */\r
+               if (ide_cdrom) {\r
+                       if (runcommandwithstatus("/bin/tar -C / -xvzf /cdrom/images/scsidrv-"VERSION".img", ctr[TR_EXTRACTING_MODULES]))\r
+                       {\r
+                               errorbox(ctr[TR_UNABLE_TO_EXTRACT_MODULES]);\r
+                               goto EXIT;\r
+                       }\r
+               }\r
+       }\r
+\r
+       /* load SCSI/pcmcia drivers if not done during CD detection */\r
+       if (!scsi_cdrom) {\r
+#if 0 /* not yet */\r
+               if (pcmcia)\r
+               {\r
+                       /* trying to support SCSI pcmcia :-) */\r
+                       runcommandwithstatus("cardmgr -o -c /etc/pcmcia/scsi", \r
+                               ctr[TR_LOADING_PCMCIA]);\r
+                       if (try_scsi(usb_cdrom ? "sdb":"sda")) {\r
+                               scsi_disk = 1;\r
+                               pcmcia_disk = 1;\r
+                       }\r
+                       if (checkusb("sdb") && try_scsi("sdc")) {\r
+                               scsi_disk = 1;\r
+                               pcmcia_disk = 1;\r
+                       }\r
+               }\r
+#endif\r
+               /* try loading all SCSI modules with default options */\r
+               /* Should expand this to allow options later though */\r
+               if (!pcmcia_disk)\r
+                       runcommandwithstatus("/bin/probescsi.sh",\r
+                               ctr[TR_PROBING_SCSI]);\r
+       }\r
+       /* Now try to find destination device...        \r
+          Need to clean this up at some point\r
+          scsi disk is sdb/sdc when sda/sdb is used for usb-key\r
+          if scsi-disk is is sdd or more, it is not discovered\r
+       */\r
+       if (try_scsi(usb_cdrom ? "sdb":"sda")) {\r
+               scsi_disk = 1;\r
+               sprintf(harddrive, usb_cdrom ? "sdb":"sda");\r
+               goto FOUND_DESTINATION;\r
+       }\r
+       if (checkusb("sdb") && try_scsi("sdc")) {\r
+               scsi_disk = 1;\r
+               sprintf(harddrive, "sdc");\r
+               goto FOUND_DESTINATION;\r
+       }\r
+       if (try_scsi("ida/c0d0")) {\r
+               raid_disk = 1;\r
+               sprintf(harddrive, "ida/c0d0");\r
+               goto FOUND_DESTINATION;\r
+       }\r
+       if (try_scsi("cciss/c0d0")) {\r
+               raid_disk = 1;\r
+               sprintf(harddrive, "cciss/c0d0");\r
+               goto FOUND_DESTINATION;\r
+       }\r
+       if (try_scsi("rd/c0d0")) {\r
+               raid_disk = 1;\r
+               sprintf(harddrive, "rd/c0d0");\r
+               goto FOUND_DESTINATION;\r
+       }\r
+       if (try_scsi("ataraid/d0")) {\r
+               raid_disk = 1;\r
+               sprintf(harddrive, "ataraid/d0");\r
+               goto FOUND_DESTINATION;\r
+       }\r
+       /* nothing worked, give up */\r
+       errorbox(ctr[TR_NO_HARDDISK]);\r
+       goto EXIT;\r
+\r
+       FOUND_DESTINATION:\r
+       /* Make the hdparms struct and print the contents.\r
+          With USB-KEY install and SCSI disk, while installing, the disk\r
+          is named 'sdb,sdc,...' (following keys)\r
+          On reboot, it will become 'sda'\r
+          To avoid many test, all names are built in the struct.\r
+       */\r
+       sprintf(hdparams.devnode_disk, "/dev/%s", harddrive);\r
+       /* Address the partition or raid partition (eg dev/sda or /dev/sdap1 */\r
+       sprintf(hdparams.devnode_part, "/dev/%s%s", harddrive,raid_disk ? "p" : "");\r
+       /* now the names after the machine is booted. Today only scsi is affected \r
+           and we only install on the first scsi disk.\r
+       */\r
+       {   char tmp[30];\r
+           strcpy(tmp, scsi_disk ? "sda" : harddrive);\r
+           sprintf(hdparams.devnode_disk_run, "/dev/%s", tmp);\r
+           sprintf(hdparams.devnode_part_run, "/dev/%s%s", tmp, raid_disk ? "p" : "");\r
+       }\r
+\r
+       rc = newtWinChoice(title, ctr[TR_OK], ctr[TR_CANCEL],\r
+               ctr[TR_PREPARE_HARDDISK], hdparams.devnode_disk_run);\r
+       if (rc != 1)\r
+               goto EXIT;\r
+\r
+       /* Calculate amount of memory in machine */\r
+        if ((handle = fopen("/proc/meminfo", "r")))\r
+        {\r
+            while (fgets(line, STRING_SIZE-1, handle)) {\r
+                if (sscanf (line, "MemTotal: %s kB", string)) {\r
+                    memory = atoi(string) / 1024 ;\r
+                }\r
+            }\r
+            fclose(handle);\r
+        }\r
+\r
+       /* Partition, mkswp, mkfs.\r
+        * before partitioning, first determine the sizes of each\r
+        * partition.  In order to do that we need to know the size of\r
+        * the disk. \r
+        */\r
+       /* Don't use mysystem here so we can redirect output */\r
+       sprintf(commandstring, "/bin/sfdisk -s /dev/%s > /disksize 2> /dev/null", harddrive);\r
+       system(commandstring);\r
+\r
+       /* Calculate amount of disk space */\r
+        if ((handle = fopen("/disksize", "r")))\r
+        {\r
+               fgets(line, STRING_SIZE-1, handle);\r
+               if (sscanf (line, "%s", string)) {\r
+                       maximum_free = atoi(string) / 1024;\r
+               }\r
+               fclose(handle);\r
+        }\r
+       \r
+       fprintf(flog, "maximum_free = %d, memory = %d", maximum_free, memory);\r
+       \r
+       /* If you need more than this, you should really add physical memory */\r
+       /* Minimum: 192 = 64 real + 128 swap */\r
+       swap_file = memory < 64 ? 2 * memory : 192 - memory ;\r
+       swap_file = swap_file < 32 ? 32 : swap_file ;\r
+\r
+       if (maximum_free < 135 + swap_file )\r
+       {\r
+               if (maximum_free < 135) {\r
+                       errorbox(ctr[TR_DISK_TOO_SMALL]);\r
+                       goto EXIT;\r
+               }\r
+\r
+               rc = newtWinChoice(title, ctr[TR_OK], ctr[TR_CANCEL], ctr[TR_CONTINUE_NO_SWAP]);\r
+               if (rc != 1)\r
+                       goto EXIT;\r
+               swap_file = 0;\r
+       }\r
+\r
+       boot_partition = 8; /* in MB */\r
+       current_free = maximum_free - boot_partition - swap_file;\r
+\r
+       /* Give more place for add-on, extend root to 25% of current_free, upper limit to 8 gigas */\r
+       root_partition = current_free / 4 ;\r
+       root_partition = root_partition > 8192 ? 8192 : root_partition ;\r
+       root_partition = current_free < 860 ? 235 : root_partition;\r
+       root_partition = current_free < 380 ? 110 : root_partition;\r
+\r
+       current_free = current_free - root_partition;\r
+       root_partition = root_partition + swap_file;\r
+\r
+       log_partition = current_free;\r
+\r
+       fprintf(flog, "boot = %d, swap = %d, mylog = %d, root = %d\n",\r
+               boot_partition, swap_file, log_partition, root_partition);\r
+\r
+#ifdef __alpha__\r
+       fdisk = 1;\r
+#endif\r
+\r
+       if (fdisk) {\r
+               rc = newtWinChoice(title, ctr[TR_OK], ctr[TR_CANCEL], "NOW FDISK");\r
+               if (rc != 1)\r
+                       goto EXIT;\r
+       } else {\r
+#ifdef __i386__\r
+               handle = fopen("/tmp/partitiontable", "w");\r
+\r
+               fprintf(handle, ",%d,83,*\n,%d,83,\n,0,0,\n,,83,\n",\r
+                       boot_partition, log_partition);\r
+\r
+               fclose(handle);         \r
+\r
+               sprintf(commandstring, "/bin/sfdisk -uM %s < /tmp/partitiontable", hdparams.devnode_disk);\r
+               if (runcommandwithstatus(commandstring, ctr[TR_PARTITIONING_DISK]))\r
+               {\r
+                       errorbox(ctr[TR_UNABLE_TO_PARTITION]);\r
+                       goto EXIT;\r
+               }\r
+#endif\r
+       }\r
+       /* create filesystem boot partition 1 */\r
+       sprintf(commandstring, "/bin/mke2fs -m 0 -j %s1", hdparams.devnode_part);\r
+       if (runcommandwithstatus(commandstring, ctr[TR_MAKING_BOOT_FILESYSTEM]))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM]);\r
+               goto EXIT;\r
+       }\r
+\r
+       /* create filesystem log partition 2 */\r
+       sprintf(commandstring, "/bin/mke2fs -j %s2", hdparams.devnode_part);\r
+       if (runcommandwithstatus(commandstring, ctr[TR_MAKING_LOG_FILESYSTEM]))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_MAKE_LOG_FILESYSTEM]);\r
+               goto EXIT;\r
+       }\r
+\r
+       /* create filesystem root partition 4 */\r
+       sprintf(commandstring, "/bin/mke2fs -m 1 -j %s4", hdparams.devnode_part);\r
+       if (runcommandwithstatus(commandstring, ctr[TR_MAKING_ROOT_FILESYSTEM]))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM]);\r
+               goto EXIT;\r
+       }\r
+\r
+       /* Mount root on partition 4 */\r
+       sprintf(commandstring, "/sbin/mount -t ext2 %s4 /harddisk", hdparams.devnode_part);\r
+       if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_ROOT_FILESYSTEM]))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM]);\r
+               goto EXIT;\r
+       }\r
+       mkdir("/harddisk/boot", S_IRWXU|S_IRWXG|S_IRWXO);\r
+       mkdir("/harddisk/var", S_IRWXU|S_IRWXG|S_IRWXO);        \r
+       mkdir("/harddisk/var/log", S_IRWXU|S_IRWXG|S_IRWXO);\r
+\r
+       /* Make,mount swapfile */\r
+       if (swap_file) {\r
+               sprintf(commandstring, "/bin/dd if=/dev/zero of=/harddisk/swapfile bs=1024k count=%d", swap_file);\r
+               if (runcommandwithstatus(commandstring, ctr[TR_MAKING_SWAPSPACE]))\r
+               {\r
+                       errorbox(ctr[TR_UNABLE_TO_MAKE_SWAPSPACE]);\r
+                       goto EXIT;\r
+               }\r
+               if (runcommandwithstatus("/bin/mkswap /harddisk/swapfile", ctr[TR_MAKING_SWAPSPACE]))\r
+               {\r
+                       errorbox(ctr[TR_UNABLE_TO_MAKE_SWAPSPACE]);\r
+                       goto EXIT;\r
+               }\r
+               if (runcommandwithstatus("/bin/swapon /harddisk/swapfile", ctr[TR_MOUNTING_SWAP_PARTITION]))\r
+               {\r
+                       errorbox(ctr[TR_UNABLE_TO_MOUNT_SWAP_PARTITION]);\r
+                       goto EXIT;\r
+               }\r
+       }\r
+\r
+       /* Mount boot on partition 1 */\r
+       sprintf(commandstring, "/sbin/mount -t ext2 %s1 /harddisk/boot", hdparams.devnode_part);\r
+       if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_BOOT_FILESYSTEM]))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM]);\r
+               goto EXIT;\r
+       }\r
+\r
+       /* Mount log on partition 2 */\r
+       sprintf(commandstring, "/sbin/mount -t ext2 %s2 /harddisk/var/log", hdparams.devnode_part);\r
+       if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_LOG_FILESYSTEM]))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM]);\r
+               goto EXIT;\r
+       }\r
+       \r
+       /* Either use tarball from cdrom or download. */\r
+       if (installtype == CDROM_INSTALL)\r
+               snprintf(commandstring, STRING_SIZE, \r
+                       "/bin/tar -C /harddisk -xvzf /cdrom/" SNAME "-" VERSION ".tgz");\r
+       else\r
+               snprintf(commandstring, STRING_SIZE, \r
+                       "/bin/wget -O - %s/" SNAME "-" VERSION ".tgz | /bin/tar -C /harddisk -xvzf -", url);\r
+       \r
+       if (runcommandwithprogress(60, 4, title, commandstring, 4600,\r
+               ctr[TR_INSTALLING_FILES]))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_INSTALL_FILES]);\r
+               goto EXIT;\r
+       }\r
+       \r
+       /* Save USB controller type to modules.conf */\r
+       write_usb_modules_conf();\r
+\r
+       /* touch the modules.dep files */\r
+       mysystem("/bin/chroot /harddisk /bin/touch /lib/modules/"KERNEL_VERSION"/modules.dep");\r
+#ifdef __i386__\r
+       mysystem("/bin/chroot /harddisk /bin/touch /lib/modules/"KERNEL_VERSION"-smp/modules.dep");\r
+#endif\r
+\r
+       /* Rename uname */\r
+       rename ("/harddisk/bin/uname.bak", "/harddisk/bin/uname");\r
+\r
+       /* Write PCMCIA Config */\r
+       if (pcmcia) {\r
+               handle = fopen("/harddisk/etc/modules.conf", "a");\r
+               if (handle != NULL) {\r
+                       fprintf (handle, "# PCMCIA Settings\n");\r
+                       fprintf (handle, "alias pcmcia-controller %s\n", pcmcia);\r
+                       fclose(handle);\r
+               }\r
+       }\r
+\r
+       handle = fopen("/harddisk/etc/pcmcia.conf", "w");\r
+       if (handle != NULL) {\r
+               if (pcmcia) {\r
+                       fprintf (handle, "PCMCIA=yes\n");\r
+                       fprintf (handle, "PCIC=%s\n", pcmcia);\r
+               } else {\r
+                       fprintf (handle, "PCMCIA=no\n");\r
+                       fprintf (handle, "PCIC=\n");\r
+               }\r
+               fprintf (handle, "CARDMGR_OPTS=\n");\r
+               fprintf (handle, "SCHEME=\n");\r
+               fclose(handle);\r
+       }\r
+\r
+       /* *always* write disk configuration */\r
+       if (!(write_disk_configs(&hdparams))){\r
+               errorbox(ctr[TR_ERROR_WRITING_CONFIG]);\r
+               goto EXIT;\r
+       }\r
+\r
+       /*  \r
+         Allow the user to restore their configuration from a floppy.\r
+         It uses tar.  If the tar fails for any reason, show user an\r
+         error and go back to the restore/skip question. This gives\r
+         the user the chance to have another go. */\r
+         \r
+       /* Program is outside install to save space on floppy \r
+       */\r
+       fprintf(flog, "Passing control to install2.\n");        \r
+       fflush(flog);\r
+       //newtSuspend();\r
+       /* pass needed parameter for install 2 by position\r
+           choice: index of langage selected\r
+           devnode_disk: to prevent unmounting of it\r
+           url: if network, allow restaure from it\r
+       */\r
+       sprintf(commandstring, "/harddisk/usr/local/bin/install2 %d %s %s",\r
+               choice,\r
+               strlen(cdromparams.devnode_disk ) ? cdromparams.devnode_disk : "none",\r
+               strlen(url) ? url : "none"\r
+              );\r
+       no_restore = system(commandstring);\r
+       //newtResume();\r
+       \r
+       /*  if we installed from CD ROM then we didn't set up the\r
+           network interface yet.  Therefore, set up Network\r
+           driver and params just before we need them.\r
+       */\r
+       if (no_restore && (installtype == CDROM_INSTALL)) {  \r
+               if (!(networkmenu(ethernetkv))){\r
+                       errorbox(ctr[TR_NETWORK_SETUP_FAILED]);\r
+                       goto EXIT;\r
+               }\r
+       }\r
+\r
+       /* Build cache lang file */\r
+       mysystem("/bin/chroot /harddisk /usr/bin/perl -e \"require '" CONFIG_ROOT "/lang.pl'; &Lang::BuildCacheLang\"");\r
+       \r
+       /* write ethernet and lang configs only if they have not\r
+           been restored from floppy already. */\r
+       if (no_restore) {\r
+               if (!write_ethernet_configs(ethernetkv)||\r
+                   !write_lang_configs(shortlangname))  {\r
+                       errorbox(ctr[TR_ERROR_WRITING_CONFIG]);\r
+                       goto EXIT;\r
+               }\r
+       }\r
+\r
+\r
+#if 0 /* not yet */\r
+       if (pcmcia_disk)\r
+       {\r
+               fprintf(flog, "Detected SCSI driver PCMCIA\n");\r
+               fprintf(flog, "Fixing up ipcoprd.img\n");\r
+               mysystem("/bin/chroot /harddisk /sbin/modprobe loop");\r
+               mkdir("/harddisk/initrd", S_IRWXU|S_IRWXG|S_IRWXO);\r
+               mysystem("/bin/chroot /harddisk /sbin/pcinitrd -r "KERNEL_VERSION" /boot/ipcoprd.img");\r
+#ifdef __i386__\r
+               mysystem("/bin/chroot /harddisk /bin/mv /boot/grub/scsigrub.conf /boot/grub/grub.conf");\r
+#endif\r
+#ifdef __alpha__\r
+               mysystem("/bin/chroot /harddisk /bin/mv /boot/etc/scsiaboot.conf /boot/etc/aboot.conf");\r
+#endif\r
+       }\r
+#endif\r
+\r
+#ifdef __i386__\r
+       // to verify: with USB-key grubbatch install on sdb and boot sda....\r
+       replace( "/harddisk/boot/grub/grubbatch", "DEVICE", hdparams.devnode_disk);\r
+       /* restore permissions */\r
+       chmod("/harddisk/boot/grub/grubbatch", S_IXUSR | S_IRUSR | S_IXGRP | S_IRGRP | S_IXOTH | S_IROTH);\r
+\r
+       sprintf(string, "root=%s4", hdparams.devnode_part_run);\r
+       replace( "/harddisk/boot/grub/grub.conf", "root=ROOT", string);\r
+\r
+       mysystem("/bin/chroot /harddisk /bin/mount -n -t proc none /proc");\r
+\r
+       if (runcommandwithstatus("/bin/chroot /harddisk /boot/grub/grubbatch", ctr[TR_INSTALLING_GRUB]))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_INSTALL_GRUB]);\r
+               goto EXIT;\r
+       }\r
+       mysystem("/bin/chroot /harddisk /bin/umount -n /proc");\r
+#endif\r
+#ifdef __alpha__\r
+       sprintf(commandstring, "/bin/chroot /harddisk /sbin/swriteboot -f3 %s /boot/bootlx", hdparams.devnode_disk);\r
+       mysystem(commandstring);\r
+       sprintf(commandstring, "/bin/chroot /harddisk /sbin/abootconf %s 1", hdparams.devnode_disk_run);\r
+       mysystem(commandstring);\r
+       sprintf(string, "root=%s4", hdparams.devnode_part_run);\r
+       replace( "/harddisk/boot/etc/aboot.conf", "root=ROOT", string);\r
+#endif\r
+\r
+       /* unmounting happens everywhere because there are places\r
+          which require device is to be unmounted under certain\r
+          circumstances.  This is the last place we can unmount\r
+          anything and still succeed.\r
+       */\r
+\r
+       if (!unmount_before && !usb_cdrom && installtype == CDROM_INSTALL){\r
+               if (mysystem("/sbin/umount /cdrom"))\r
+               {\r
+                       errorbox(ctr[TR_UNABLE_TO_UNMOUNT_CDROM]);\r
+                       goto EXIT;\r
+               }\r
+       }\r
+\r
+       if ((installtype == CDROM_INSTALL) && !usb_cdrom)\r
+       {\r
+               if (!(ejectcdrom(cdromparams.devnode_disk)))\r
+               {\r
+                       errorbox(ctr[TR_UNABLE_TO_EJECT_CDROM]);\r
+                       // goto EXIT;\r
+               }\r
+       }\r
+\r
+       snprintf(message, STRING_SIZE, ctr[TR_CONGRATULATIONS_LONG],\r
+               NAME, SNAME, SNAME, NAME, NAME, NAME);\r
+       newtWinMessage(ctr[TR_CONGRATULATIONS], ctr[TR_OK], message);\r
+       \r
+       allok = 1;\r
+\r
+EXIT:\r
+       fprintf(flog, "Install program ended.\n");\r
+       fflush(flog);\r
+       fclose(flog);\r
+\r
+       if (!allok)\r
+               newtWinMessage(title, ctr[TR_OK], ctr[TR_PRESS_OK_TO_REBOOT]);  \r
+\r
+       newtFinished();\r
+\r
+       freekeyvalues(ethernetkv);\r
+       //no more needed\r
+       mysystem("/bin/chroot /harddisk /bin/rm /usr/local/bin/install2");\r
+\r
+       /* run setup only if config not restored from floppy already. */\r
+       if (allok && no_restore)\r
+       {\r
+               /* /proc is needed by the module checker.  We have to mount it\r
+                * so it can be seen by setup, which is run chrooted. */\r
+               if (system("/sbin/mount proc -t proc /harddisk/proc"))\r
+                       printf("Unable to mount proc in /harddisk.");\r
+               else\r
+               {\r
+                       if (system("/bin/chroot /harddisk /usr/local/sbin/setup /dev/tty2 INSTALL"))\r
+                               printf("Unable to run setup.\n");\r
+                       if (system("/sbin/umount /harddisk/proc"))\r
+                               printf("Unable to umount /harddisk/proc.\n");\r
+               }\r
+       }\r
+\r
+       fcloseall();\r
+\r
+       system("/bin/swapoff /harddisk/swapfile");\r
+       system("/sbin/umount /harddisk/var/log");\r
+       system("/sbin/umount /harddisk/boot");\r
+       system("/sbin/umount /harddisk");\r
+       system("/etc/halt");\r
+\r
+       return 0;\r
+}\r
+\r
+int modprobe (char *mod) {\r
+    char commandstring[STRING_SIZE];\r
+    sprintf (commandstring,"/sbin/modprobe %s", mod);\r
+    return mysystem (commandstring);    \r
+}\r
+\r
+int rmmod (char *mod) {\r
+    char commandstring[STRING_SIZE];\r
+    sprintf (commandstring,"/sbin/rmmod %s", mod);\r
+    return mysystem (commandstring);    \r
+}\r
diff --git a/src/install+setup/install/net.c b/src/install+setup/install/net.c
new file mode 100644 (file)
index 0000000..296b0fe
--- /dev/null
@@ -0,0 +1,77 @@
+/* SmoothWall install program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Stuff for downloading the smoothwall tarball using wget.\r
+ * \r
+ * $Id: net.c,v 1.8.2.2 2004/04/14 22:05:40 gespinasse Exp $\r
+ * \r
+ */\r
\r
+#include "install.h"\r
+\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+static int got_url = 0;\r
+\r
+char url[STRING_SIZE];\r
+\r
+static int gettarballurl();\r
+\r
+int checktarball(char *file)\r
+{\r
+       int done;\r
+       int tries = 0;\r
+       char commandstring[STRING_SIZE];\r
+\r
+       done = 0;\r
+       while (!done)\r
+       {\r
+               if (!got_url && gettarballurl() != 1)\r
+                       return 0;\r
+\r
+               /* remove any successive /'s */\r
+               while (url[strlen(url)-1] == '/') { url[strlen(url)-1] = '\0'; }\r
+\r
+               snprintf(commandstring, STRING_SIZE, "/bin/wget -s -O /dev/null %s/%s", url, file);\r
+               if (!(runcommandwithstatus(commandstring, ctr[TR_CHECKING])))\r
+               {\r
+                       done = 1;\r
+                       got_url = 1;\r
+               } \r
+               else \r
+               {\r
+                       errorbox(ctr[TR_FAILED_TO_FIND]);\r
+                       got_url = 0;\r
+                       if (tries == 3)\r
+                               return 0;\r
+               }\r
+               tries++;\r
+       }\r
+\r
+       return 1;\r
+}\r
+\r
+static int gettarballurl()\r
+{\r
+       char *values[] = {      NULL, NULL };   /* pointers for the values. */\r
+       struct newtWinEntry entries[] =\r
+               { { "", &values[0], 0,}, { NULL, NULL, 0 } };\r
+       char title[STRING_SIZE];\r
+       char message[1000];\r
+       int rc;\r
+\r
+       sprintf(message, ctr[TR_ENTER_URL]);\r
+       sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+       rc = newtWinEntries(title, message,\r
+               60, 5, 5, 50, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+               \r
+       strncpy(url, values[0], STRING_SIZE);\r
+\r
+       return rc;\r
+}\r
diff --git a/src/install+setup/install/nic.c b/src/install+setup/install/nic.c
new file mode 100644 (file)
index 0000000..5ae74e5
--- /dev/null
@@ -0,0 +1,98 @@
+/* SmoothWall install program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Contains stuff related to firing up the network card, including a crude\r
+ * autodector.\r
+ * \r
+ * $Id: nic.c,v 1.8.2.2 2005/12/24 09:08:26 franck78 Exp $\r
+ * \r
+ */\r
+\r
+#include "install.h"\r
+\r
+#include <sys/socket.h>\r
+#include <netinet/in.h>\r
+#include <arpa/inet.h>\r
+\r
+extern FILE *flog;\r
+extern char *mylog;\r
+extern char **ctr;\r
+extern struct nic nics[];\r
+\r
+int networkmenu(struct keyvalue *ethernetkv)\r
+{\r
+       int rc;\r
+       char driver[STRING_SIZE] = "";\r
+       char driveroptions[STRING_SIZE] = "";\r
+       int result = 0;\r
+       char commandstring[STRING_SIZE];\r
+       char address[STRING_SIZE], netmask[STRING_SIZE];\r
+       int done;\r
+       char description[1000];\r
+       char message[1000];\r
+       char title[STRING_SIZE];\r
+       done = 0;\r
+\r
+       while (!done)\r
+       {\r
+               rc = newtWinTernary(ctr[TR_CONFIGURE_NETWORKING], ctr[TR_PROBE], \r
+                       ctr[TR_SELECT], ctr[TR_CANCEL], ctr[TR_CONFIGURE_NETWORKING_LONG]);\r
+               \r
+               if (rc == 0 || rc == 1)\r
+               {\r
+                       probecards(driver, driveroptions);\r
+                       if (!strlen(driver))\r
+                               errorbox(ctr[TR_PROBE_FAILED]);\r
+                       else\r
+                       {\r
+                               findnicdescription(driver, description);\r
+                               sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+                               sprintf(message, ctr[TR_FOUND_NIC], NAME, description);\r
+                               newtWinMessage(title, ctr[TR_OK], message);\r
+                       }               \r
+               }                       \r
+               else if (rc == 2)\r
+                       choosecards(driver, driveroptions);\r
+               else\r
+                       done = 1;       \r
+                       \r
+               if (strlen(driver))\r
+                       done = 1;\r
+       }\r
+       \r
+       if (!strlen(driver))\r
+               goto EXIT;\r
+\r
+       /* Default is a GREEN nic only. */\r
+       /* Smoothie is not untarred yet, so we have to delay actually writing the\r
+        * settings till later. */\r
+       replacekeyvalue(ethernetkv, "CONFIG_TYPE", "0");\r
+       replacekeyvalue(ethernetkv, "GREEN_DRIVER", driver);\r
+       replacekeyvalue(ethernetkv, "GREEN_DRIVER_OPTIONS", driveroptions);\r
+       replacekeyvalue(ethernetkv, "GREEN_DEV", "eth0");\r
+       replacekeyvalue(ethernetkv, "GREEN_DISPLAYDRIVER", driver);\r
+       \r
+       if (!(changeaddress(ethernetkv, "GREEN", 0, "")))\r
+               goto EXIT;\r
+       \r
+       strcpy(address, ""); findkey(ethernetkv, "GREEN_ADDRESS", address);\r
+       strcpy(netmask, ""); findkey(ethernetkv, "GREEN_NETMASK", netmask);\r
+\r
+       snprintf(commandstring, STRING_SIZE, "/bin/ifconfig eth0 %s netmask %s up", \r
+               address, netmask);\r
+       if (mysystem(commandstring))\r
+       {\r
+               errorbox(ctr[TR_INTERFACE_FAILED_TO_COME_UP]);\r
+               goto EXIT;\r
+       }\r
+\r
+       result = 1;\r
+       \r
+EXIT:\r
+       \r
+       return result;\r
+}\r
+\r
diff --git a/src/install+setup/install/pcmcia.c b/src/install+setup/install/pcmcia.c
new file mode 100644 (file)
index 0000000..4bf5432
--- /dev/null
@@ -0,0 +1,332 @@
+/*\r
+ * PCMCIA bridge device probe\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * The initial developer of the original code is David A. Hinds\r
+ * <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds\r
+ * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.\r
+ *\r
+ * $Id: pcmcia.c,v 1.6.2.4 2005/12/08 02:12:28 franck78 Exp $\r
+ *\r
+ */\r
+\r
+#include "install.h"\r
+#include "pcmcia.h"\r
+\r
+#ifdef __GLIBC__\r
+#include <sys/io.h>\r
+#else\r
+#include <asm/io.h>\r
+#endif\r
+\r
+extern FILE *flog;\r
+extern int modprobe(char *);\r
+\r
+/*====================================================================*/\r
+\r
+typedef struct {\r
+    u_short    vendor, device;\r
+    char       *modname;\r
+    char       *name;\r
+} pci_id_t;\r
+\r
+pci_id_t pci_id[] = {\r
+    { 0x1013, 0x1100, "i82365", "Cirrus Logic CL 6729" },\r
+    { 0x1013, 0x1110, "yenta_socket", "Cirrus Logic PD 6832" },\r
+    { 0x10b3, 0xb106, "yenta_socket", "SMC 34C90" },\r
+    { 0x1180, 0x0465, "yenta_socket", "Ricoh RL5C465" },\r
+    { 0x1180, 0x0466, "yenta_socket", "Ricoh RL5C466" },\r
+    { 0x1180, 0x0475, "yenta_socket", "Ricoh RL5C475" },\r
+    { 0x1180, 0x0476, "yenta_socket", "Ricoh RL5C476" },\r
+    { 0x1180, 0x0477, "yenta_socket", "Ricoh RL5C477" },\r
+    { 0x1180, 0x0478, "yenta_socket", "Ricoh RL5C478" },\r
+    { 0x104c, 0xac12, "yenta_socket", "Texas Instruments PCI1130" }, \r
+    { 0x104c, 0xac13, "yenta_socket", "Texas Instruments PCI1031" }, \r
+    { 0x104c, 0xac15, "yenta_socket", "Texas Instruments PCI1131" }, \r
+    { 0x104c, 0xac1a, "yenta_socket", "Texas Instruments PCI1210" }, \r
+    { 0x104c, 0xac1e, "yenta_socket", "Texas Instruments PCI1211" }, \r
+    { 0x104c, 0xac17, "yenta_socket", "Texas Instruments PCI1220" }, \r
+    { 0x104c, 0xac19, "yenta_socket", "Texas Instruments PCI1221" }, \r
+    { 0x104c, 0xac1c, "yenta_socket", "Texas Instruments PCI1225" }, \r
+    { 0x104c, 0xac16, "yenta_socket", "Texas Instruments PCI1250" }, \r
+    { 0x104c, 0xac1d, "yenta_socket", "Texas Instruments PCI1251A" }, \r
+    { 0x104c, 0xac1f, "yenta_socket", "Texas Instruments PCI1251B" }, \r
+    { 0x104c, 0xac50, "yenta_socket", "Texas Instruments PCI1410" }, \r
+    { 0x104c, 0xac51, "yenta_socket", "Texas Instruments PCI1420" }, \r
+    { 0x104c, 0xac1b, "yenta_socket", "Texas Instruments PCI1450" }, \r
+    { 0x104c, 0xac52, "yenta_socket", "Texas Instruments PCI1451" }, \r
+    { 0x104c, 0xac56, "yenta_socket", "Texas Instruments PCI1510" }, \r
+    { 0x104c, 0xac55, "yenta_socket", "Texas Instruments PCI1520" }, \r
+    { 0x104c, 0xac54, "yenta_socket", "Texas Instruments PCI1620" }, \r
+    { 0x104c, 0xac41, "yenta_socket", "Texas Instruments PCI4410" }, \r
+    { 0x104c, 0xac40, "yenta_socket", "Texas Instruments PCI4450" }, \r
+    { 0x104c, 0xac42, "yenta_socket", "Texas Instruments PCI4451" }, \r
+    { 0x104c, 0xac44, "yenta_socket", "Texas Instruments PCI4510" }, \r
+    { 0x104c, 0xac46, "yenta_socket", "Texas Instruments PCI4520" }, \r
+    { 0x104c, 0xac49, "yenta_socket", "Texas Instruments PCI7410" }, \r
+    { 0x104c, 0xac47, "yenta_socket", "Texas Instruments PCI7510" }, \r
+    { 0x104c, 0xac48, "yenta_socket", "Texas Instruments PCI7610" }, \r
+    { 0x1217, 0x6729, "i82365", "O2 Micro 6729" }, \r
+    { 0x1217, 0x673a, "i82365", "O2 Micro 6730" }, \r
+    { 0x1217, 0x6832, "yenta_socket", "O2 Micro 6832/6833" }, \r
+    { 0x1217, 0x6836, "yenta_socket", "O2 Micro 6836/6860" }, \r
+    { 0x1217, 0x6872, "yenta_socket", "O2 Micro 6812" }, \r
+    { 0x1217, 0x6925, "yenta_socket", "O2 Micro 6922" }, \r
+    { 0x1217, 0x6933, "yenta_socket", "O2 Micro 6933" }, \r
+    { 0x1217, 0x6972, "yenta_socket", "O2 Micro 6912" }, \r
+    { 0x1179, 0x0603, "i82365", "Toshiba ToPIC95-A" }, \r
+    { 0x1179, 0x060a, "yenta_socket", "Toshiba ToPIC95-B" }, \r
+    { 0x1179, 0x060f, "yenta_socket", "Toshiba ToPIC97" }, \r
+    { 0x1179, 0x0617, "yenta_socket", "Toshiba ToPIC100" }, \r
+    { 0x119b, 0x1221, "i82365", "Omega Micro 82C092G" }, \r
+    { 0x8086, 0x1221, "i82092", "Intel 82092AA_0" }, \r
+    { 0x8086, 0x1222, "i82092", "Intel 82092AA_1" }, \r
+    { 0x1524, 0x1211, "yenta_socket", "ENE 1211" },\r
+    { 0x1524, 0x1225, "yenta_socket", "ENE 1225" },\r
+    { 0x1524, 0x1410, "yenta_socket", "ENE 1410" },\r
+    { 0x1524, 0x1420, "yenta_socket", "ENE 1420" },\r
+};\r
+#define PCI_COUNT (sizeof(pci_id)/sizeof(pci_id_t))\r
+\r
+static char * pci_probe()\r
+{\r
+    char s[256], *modname = NULL;\r
+    u_int device, vendor, i;\r
+    FILE *f;\r
+    \r
+    if ((f = fopen("/proc/bus/pci/devices", "r")) != NULL) {\r
+       while (fgets(s, 256, f) != NULL) {\r
+           u_int n = strtoul(s+5, NULL, 16);\r
+           vendor = (n >> 16); device = (n & 0xffff);\r
+           for (i = 0; i < PCI_COUNT; i++)\r
+               if ((vendor == pci_id[i].vendor) &&\r
+                   (device == pci_id[i].device)) break;\r
+\r
+           if (i < PCI_COUNT) {\r
+               modname = pci_id[i].modname;\r
+               break;\r
+           }\r
+       }\r
+    }\r
+    \r
+    return modname;\r
+}\r
+\r
+/*====================================================================*/\r
+\r
+#ifndef __alpha__\r
+typedef u_short ioaddr_t;\r
+\r
+static ioaddr_t i365_base = 0x03e0;\r
+\r
+static u_char i365_get(u_short sock, u_short reg)\r
+{\r
+    u_char val = I365_REG(sock, reg);\r
+    outb(val, i365_base); val = inb(i365_base+1);\r
+    return val;\r
+}\r
+\r
+#if 0    // the following code do nothing usefull, it ends with return 0 anyway\r
+\r
+static void i365_set(u_short sock, u_short reg, u_char data)\r
+{\r
+    u_char val = I365_REG(sock, reg);\r
+    outb(val, i365_base); outb(data, i365_base+1);\r
+}\r
+\r
+static void i365_bset(u_short sock, u_short reg, u_char mask)\r
+{\r
+    u_char d = i365_get(sock, reg);\r
+    d |= mask;\r
+    i365_set(sock, reg, d);\r
+}\r
+\r
+static void i365_bclr(u_short sock, u_short reg, u_char mask)\r
+{\r
+    u_char d = i365_get(sock, reg);\r
+    d &= ~mask;\r
+    i365_set(sock, reg, d);\r
+}\r
+#endif\r
+\r
+int i365_probe()\r
+{\r
+    int val, slot, sock, done;\r
+//   char *name = "i82365sl";\r
+\r
+    ioperm(i365_base, 4, 1);\r
+    ioperm(0x80, 1, 1);\r
+    for (slot = 0; slot < 2; slot++) {\r
+       for (sock = done = 0; sock < 2; sock++) {\r
+           val = i365_get(sock, I365_IDENT);\r
+           switch (val) {\r
+           case 0x82:\r
+//             name = "i82365sl A step";\r
+//             break;\r
+           case 0x83:\r
+//             name = "i82365sl B step";\r
+//         break;\r
+           case 0x84:\r
+//             name = "VLSI 82C146";\r
+//             break;\r
+           case 0x88: case 0x89: case 0x8a:\r
+//             name = "IBM Clone";\r
+//         break;\r
+           case 0x8b: case 0x8c:\r
+               break;\r
+           default:\r
+               done = 1;\r
+           }\r
+           if (done) break;\r
+       }\r
+       if (done && sock) break;\r
+       i365_base += 2;\r
+    }\r
+\r
+    if (sock == 0) {\r
+       return -1;\r
+    }\r
+\r
+#if 0    // the following code do nothing usefull, it ends with return 0 anyway\r
+    if ((sock == 2) && (strcmp(name, "VLSI 82C146") == 0))\r
+       name = "i82365sl DF";\r
+\r
+    /* Check for Vadem chips */\r
+    outb(0x0e, i365_base);\r
+    outb(0x37, i365_base);\r
+    i365_bset(0, VG468_MISC, VG468_MISC_VADEMREV);\r
+    val = i365_get(0, I365_IDENT);\r
+    if (val & I365_IDENT_VADEM) {\r
+       if ((val & 7) < 4)\r
+           name = "Vadem VG-468";\r
+       else\r
+           name = "Vadem VG-469";\r
+       i365_bclr(0, VG468_MISC, VG468_MISC_VADEMREV);\r
+    }\r
+    \r
+    /* Check for Cirrus CL-PD67xx chips */\r
+    i365_set(0, PD67_CHIP_INFO, 0);\r
+    val = i365_get(0, PD67_CHIP_INFO);\r
+    if ((val & PD67_INFO_CHIP_ID) == PD67_INFO_CHIP_ID) {\r
+       val = i365_get(0, PD67_CHIP_INFO);\r
+       if ((val & PD67_INFO_CHIP_ID) == 0) {\r
+           if (val & PD67_INFO_SLOTS)\r
+               name = "Cirrus CL-PD672x";\r
+           else {\r
+               name = "Cirrus CL-PD6710";\r
+               sock = 1;\r
+           }\r
+           i365_set(0, PD67_EXT_INDEX, 0xe5);\r
+           if (i365_get(0, PD67_EXT_INDEX) != 0xe5)\r
+               name = "VIA VT83C469";\r
+       }\r
+    }\r
+#endif\r
+    return 0;\r
+    \r
+} /* i365_probe */\r
+#endif\r
+\r
+/*====================================================================*/\r
+\r
+#ifndef __alpha__\r
+static u_short tcic_getw(ioaddr_t base, u_char reg)\r
+{\r
+    u_short val = inw(base+reg);\r
+    return val;\r
+}\r
+\r
+static void tcic_setw(ioaddr_t base, u_char reg, u_short data)\r
+{\r
+    outw(data, base+reg);\r
+}\r
+\r
+int tcic_probe_at(ioaddr_t base)\r
+{\r
+    int i;\r
+    u_short old;\r
+    \r
+    /* Anything there?? */\r
+    for (i = 0; i < 0x10; i += 2)\r
+       if (tcic_getw(base, i) == 0xffff)\r
+           return -1;\r
+\r
+    /* Try to reset the chip */\r
+    tcic_setw(base, TCIC_SCTRL, TCIC_SCTRL_RESET);\r
+    tcic_setw(base, TCIC_SCTRL, 0);\r
+    \r
+    /* Can we set the addr register? */\r
+    old = tcic_getw(base, TCIC_ADDR);\r
+    tcic_setw(base, TCIC_ADDR, 0);\r
+    if (tcic_getw(base, TCIC_ADDR) != 0) {\r
+       tcic_setw(base, TCIC_ADDR, old);\r
+       return -2;\r
+    }\r
+    \r
+    tcic_setw(base, TCIC_ADDR, 0xc3a5);\r
+    if (tcic_getw(base, TCIC_ADDR) != 0xc3a5)\r
+       return -3;\r
+\r
+    return 2;\r
+}\r
+\r
+int tcic_probe(ioaddr_t base)\r
+{\r
+    int sock;\r
+\r
+    ioperm(base, 16, 1);\r
+    ioperm(0x80, 1, 1);\r
+    sock = tcic_probe_at(base);\r
+    \r
+    if (sock <= 0) {\r
+       return -1;\r
+    }\r
+\r
+    return 0;\r
+    \r
+} /* tcic_probe */\r
+#endif\r
+\r
+/*====================================================================*/\r
+char * initialize_pcmcia (void)\r
+{\r
+#ifndef __alpha__\r
+    ioaddr_t tcic_base = TCIC_BASE;\r
+#endif\r
+    char* pcmcia;\r
+    \r
+    if ((pcmcia = pci_probe()))\r
+       return pcmcia; /* we're all done */\r
+#ifndef __alpha__\r
+    else if (i365_probe() == 0)\r
+       return "i82365";\r
+    else if (tcic_probe(tcic_base) == 0)\r
+       return "tcic";\r
+#endif\r
+    else {\r
+       /* Detect ISAPNP based i82365 controllers */\r
+       FILE *f;\r
+        modprobe("i82365");\r
+       if ((f = fopen("/proc/bus/pccard/00/info", "r"))) {\r
+               fclose(f);\r
+               return "i82365";\r
+       }\r
+    }\r
+\r
+    return NULL;\r
+}\r
diff --git a/src/install+setup/install/pcmcia.h b/src/install+setup/install/pcmcia.h
new file mode 100644 (file)
index 0000000..7b81dc4
--- /dev/null
@@ -0,0 +1,614 @@
+/*\r
+ * PCMCIA bridge device probe\r
+ *\r
+ * This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * The initial developer of the original code is David A. Hinds\r
+ * <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds\r
+ * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.\r
+ *\r
+ * $Id: pcmcia.h,v 1.1 2004/01/25 09:34:59 riddles Exp $\r
+ *\r
+ */\r
+\r
+#define TCIC_BASE              0x240\r
+\r
+/* offsets of registers from TCIC_BASE */\r
+#define TCIC_DATA              0x00\r
+#define TCIC_ADDR              0x02\r
+#define TCIC_SCTRL             0x06\r
+#define TCIC_SSTAT             0x07\r
+#define TCIC_MODE              0x08\r
+#define TCIC_PWR               0x09\r
+#define TCIC_EDC               0x0A\r
+#define TCIC_ICSR              0x0C\r
+#define TCIC_IENA              0x0D\r
+#define TCIC_AUX               0x0E\r
+\r
+#define TCIC_SS_SHFT           12\r
+#define TCIC_SS_MASK           0x7000\r
+\r
+/* Flags for TCIC_ADDR */\r
+#define TCIC_ADR2_REG          0x8000\r
+#define TCIC_ADR2_INDREG       0x0800\r
+\r
+#define TCIC_ADDR_REG          0x80000000\r
+#define TCIC_ADDR_SS_SHFT      (TCIC_SS_SHFT+16)\r
+#define TCIC_ADDR_SS_MASK      (TCIC_SS_MASK<<16)\r
+#define TCIC_ADDR_INDREG       0x08000000\r
+#define TCIC_ADDR_IO           0x04000000\r
+#define TCIC_ADDR_MASK         0x03ffffff\r
+\r
+/* Flags for TCIC_SCTRL */\r
+#define TCIC_SCTRL_ENA         0x01\r
+#define TCIC_SCTRL_INCMODE     0x18\r
+#define TCIC_SCTRL_INCMODE_HOLD        0x00\r
+#define TCIC_SCTRL_INCMODE_WORD        0x08\r
+#define TCIC_SCTRL_INCMODE_REG 0x10\r
+#define TCIC_SCTRL_INCMODE_AUTO        0x18\r
+#define TCIC_SCTRL_EDCSUM      0x20\r
+#define TCIC_SCTRL_RESET       0x80\r
+\r
+/* Flags for TCIC_SSTAT */\r
+#define TCIC_SSTAT_6US         0x01\r
+#define TCIC_SSTAT_10US                0x02\r
+#define TCIC_SSTAT_PROGTIME    0x04\r
+#define TCIC_SSTAT_LBAT1       0x08\r
+#define TCIC_SSTAT_LBAT2       0x10\r
+#define TCIC_SSTAT_RDY         0x20    /* Inverted */\r
+#define TCIC_SSTAT_WP          0x40\r
+#define TCIC_SSTAT_CD          0x80    /* Card detect */\r
+\r
+/* Flags for TCIC_MODE */\r
+#define TCIC_MODE_PGMMASK      0x1f\r
+#define TCIC_MODE_NORMAL       0x00\r
+#define TCIC_MODE_PGMWR                0x01\r
+#define TCIC_MODE_PGMRD                0x02\r
+#define TCIC_MODE_PGMCE                0x04\r
+#define TCIC_MODE_PGMDBW       0x08\r
+#define TCIC_MODE_PGMWORD      0x10\r
+#define TCIC_MODE_AUXSEL_MASK  0xe0\r
+\r
+/* Registers accessed through TCIC_AUX, by setting TCIC_MODE */\r
+#define TCIC_AUX_TCTL          (0<<5)\r
+#define TCIC_AUX_PCTL          (1<<5)\r
+#define TCIC_AUX_WCTL          (2<<5)\r
+#define TCIC_AUX_EXTERN                (3<<5)\r
+#define TCIC_AUX_PDATA         (4<<5)\r
+#define TCIC_AUX_SYSCFG                (5<<5)\r
+#define TCIC_AUX_ILOCK         (6<<5)\r
+#define TCIC_AUX_TEST          (7<<5)\r
+\r
+/* Flags for TCIC_PWR */\r
+#define TCIC_PWR_VCC(sock)     (0x01<<(sock))\r
+#define TCIC_PWR_VCC_MASK      0x03\r
+#define TCIC_PWR_VPP(sock)     (0x08<<(sock))\r
+#define TCIC_PWR_VPP_MASK      0x18\r
+#define TCIC_PWR_CLIMENA       0x40\r
+#define TCIC_PWR_CLIMSTAT      0x80\r
+\r
+/* Flags for TCIC_ICSR */\r
+#define TCIC_ICSR_CLEAR                0x01\r
+#define TCIC_ICSR_SET          0x02\r
+#define TCIC_ICSR_JAM          (TCIC_ICSR_CLEAR|TCIC_ICSR_SET)\r
+#define TCIC_ICSR_STOPCPU      0x04\r
+#define TCIC_ICSR_ILOCK                0x08\r
+#define TCIC_ICSR_PROGTIME     0x10\r
+#define TCIC_ICSR_ERR          0x20\r
+#define TCIC_ICSR_CDCHG                0x40\r
+#define TCIC_ICSR_IOCHK                0x80\r
+\r
+/* Flags for TCIC_IENA */\r
+#define TCIC_IENA_CFG_MASK     0x03\r
+#define TCIC_IENA_CFG_OFF      0x00    /* disabled */\r
+#define TCIC_IENA_CFG_OD       0x01    /* active low, open drain */\r
+#define TCIC_IENA_CFG_LOW      0x02    /* active low, totem pole */\r
+#define TCIC_IENA_CFG_HIGH     0x03    /* active high, totem pole */\r
+#define TCIC_IENA_ILOCK                0x08\r
+#define TCIC_IENA_PROGTIME     0x10\r
+#define TCIC_IENA_ERR          0x20    /* overcurrent or iochk */\r
+#define TCIC_IENA_CDCHG                0x40\r
+\r
+/* Flags for TCIC_AUX_WCTL */\r
+#define TCIC_WAIT_COUNT_MASK   0x001f\r
+#define TCIC_WAIT_ASYNC                0x0020\r
+#define TCIC_WAIT_SENSE                0x0040\r
+#define TCIC_WAIT_SRC          0x0080\r
+#define TCIC_WCTL_WR           0x0100\r
+#define TCIC_WCTL_RD           0x0200\r
+#define TCIC_WCTL_CE           0x0400\r
+#define TCIC_WCTL_LLBAT1       0x0800\r
+#define TCIC_WCTL_LLBAT2       0x1000\r
+#define TCIC_WCTL_LRDY         0x2000\r
+#define TCIC_WCTL_LWP          0x4000\r
+#define TCIC_WCTL_LCD          0x8000\r
+\r
+/* Flags for TCIC_AUX_SYSCFG */\r
+#define TCIC_SYSCFG_IRQ_MASK   0x000f\r
+#define TCIC_SYSCFG_MCSFULL    0x0010\r
+#define TCIC_SYSCFG_IO1723     0x0020\r
+#define TCIC_SYSCFG_MCSXB      0x0040\r
+#define TCIC_SYSCFG_ICSXB      0x0080\r
+#define TCIC_SYSCFG_NOPDN      0x0100\r
+#define TCIC_SYSCFG_MPSEL_SHFT 9\r
+#define TCIC_SYSCFG_MPSEL_MASK 0x0e00\r
+#define TCIC_SYSCFG_MPSENSE    0x2000\r
+#define TCIC_SYSCFG_AUTOBUSY   0x4000\r
+#define TCIC_SYSCFG_ACC                0x8000\r
+\r
+#define TCIC_ILOCK_OUT         0x01\r
+#define TCIC_ILOCK_SENSE       0x02\r
+#define TCIC_ILOCK_CRESET      0x04\r
+#define TCIC_ILOCK_CRESENA     0x08\r
+#define TCIC_ILOCK_CWAIT       0x10\r
+#define TCIC_ILOCK_CWAITSNS    0x20\r
+#define TCIC_ILOCK_HOLD_MASK   0xc0\r
+#define TCIC_ILOCK_HOLD_CCLK   0xc0\r
+\r
+#define TCIC_ILOCKTEST_ID_SH   8\r
+#define TCIC_ILOCKTEST_ID_MASK 0x7f00\r
+#define TCIC_ILOCKTEST_MCIC_1  0x8000\r
+\r
+#define TCIC_ID_DB86082                0x02\r
+#define TCIC_ID_DB86082A       0x03\r
+#define TCIC_ID_DB86084                0x04\r
+#define TCIC_ID_DB86084A       0x08\r
+#define TCIC_ID_DB86072                0x15\r
+#define TCIC_ID_DB86184                0x14\r
+#define TCIC_ID_DB86082B       0x17\r
+\r
+#define TCIC_TEST_DIAG         0x8000\r
+\r
+/*\r
+ * Indirectly addressed registers\r
+ */\r
+\r
+#define TCIC_SCF1(sock)        ((sock)<<3)\r
+#define TCIC_SCF2(sock) (((sock)<<3)+2)\r
+\r
+/* Flags for SCF1 */\r
+#define TCIC_SCF1_IRQ_MASK     0x000f\r
+#define TCIC_SCF1_IRQ_OFF      0x0000\r
+#define TCIC_SCF1_IRQOC                0x0010\r
+#define TCIC_SCF1_PCVT         0x0020\r
+#define TCIC_SCF1_IRDY         0x0040\r
+#define TCIC_SCF1_ATA          0x0080\r
+#define TCIC_SCF1_DMA_SHIFT    8\r
+#define TCIC_SCF1_DMA_MASK     0x0700\r
+#define TCIC_SCF1_DMA_OFF      0\r
+#define TCIC_SCF1_DREQ2                2\r
+#define TCIC_SCF1_IOSTS                0x0800\r
+#define TCIC_SCF1_SPKR         0x1000\r
+#define TCIC_SCF1_FINPACK      0x2000\r
+#define TCIC_SCF1_DELWR                0x4000\r
+#define TCIC_SCF1_HD7IDE       0x8000\r
+\r
+/* Flags for SCF2 */\r
+#define TCIC_SCF2_RI           0x0001\r
+#define TCIC_SCF2_IDBR         0x0002\r
+#define TCIC_SCF2_MDBR         0x0004\r
+#define TCIC_SCF2_MLBAT1       0x0008\r
+#define TCIC_SCF2_MLBAT2       0x0010\r
+#define TCIC_SCF2_MRDY         0x0020\r
+#define TCIC_SCF2_MWP          0x0040\r
+#define TCIC_SCF2_MCD          0x0080\r
+#define TCIC_SCF2_MALL         0x00f8\r
+\r
+/* Indirect addresses for memory window registers */\r
+#define TCIC_MWIN(sock,map)    (0x100+(((map)+((sock)<<2))<<3))\r
+#define TCIC_MBASE_X           2\r
+#define TCIC_MMAP_X            4\r
+#define TCIC_MCTL_X            6\r
+\r
+#define TCIC_MBASE_4K_BIT      0x4000\r
+#define TCIC_MBASE_HA_SHFT     12\r
+#define TCIC_MBASE_HA_MASK     0x0fff\r
+\r
+#define TCIC_MMAP_REG          0x8000\r
+#define TCIC_MMAP_CA_SHFT      12\r
+#define TCIC_MMAP_CA_MASK      0x3fff\r
+\r
+#define TCIC_MCTL_WSCNT_MASK   0x001f\r
+#define TCIC_MCTL_WCLK         0x0020\r
+#define TCIC_MCTL_WCLK_CCLK    0x0000\r
+#define TCIC_MCTL_WCLK_BCLK    0x0020\r
+#define TCIC_MCTL_QUIET                0x0040\r
+#define TCIC_MCTL_WP           0x0080\r
+#define TCIC_MCTL_ACC          0x0100\r
+#define TCIC_MCTL_KE           0x0200\r
+#define TCIC_MCTL_EDC          0x0400\r
+#define TCIC_MCTL_B8           0x0800\r
+#define TCIC_MCTL_SS_SHFT      TCIC_SS_SHFT\r
+#define TCIC_MCTL_SS_MASK      TCIC_SS_MASK\r
+#define TCIC_MCTL_ENA          0x8000\r
+\r
+/* Indirect addresses for I/O window registers */\r
+#define TCIC_IWIN(sock,map)    (0x200+(((map)+((sock)<<1))<<2))\r
+#define TCIC_IBASE_X           0\r
+#define TCIC_ICTL_X            2\r
+\r
+#define TCIC_ICTL_WSCNT_MASK   TCIC_MCTL_WSCNT_MASK\r
+#define TCIC_ICTL_QUIET                TCIC_MCTL_QUIET\r
+#define TCIC_ICTL_1K           0x0080\r
+#define TCIC_ICTL_PASS16       0x0100\r
+#define TCIC_ICTL_ACC          TCIC_MCTL_ACC\r
+#define TCIC_ICTL_TINY         0x0200\r
+#define TCIC_ICTL_B16          0x0400\r
+#define TCIC_ICTL_B8           TCIC_MCTL_B8\r
+#define TCIC_ICTL_BW_MASK      (TCIC_ICTL_B16|TCIC_ICTL_B8)\r
+#define TCIC_ICTL_BW_DYN       0\r
+#define TCIC_ICTL_BW_8         TCIC_ICTL_B8\r
+#define TCIC_ICTL_BW_16                TCIC_ICTL_B16\r
+#define TCIC_ICTL_BW_ATA       (TCIC_ICTL_B16|TCIC_ICTL_B8)\r
+#define TCIC_ICTL_SS_SHFT      TCIC_SS_SHFT\r
+#define TCIC_ICTL_SS_MASK      TCIC_SS_MASK\r
+#define TCIC_ICTL_ENA          TCIC_MCTL_ENA\r
+\r
+/* register definitions for the Intel 82365SL PCMCIA controller */\r
+\r
+/* Offsets for PCIC registers */\r
+#define I365_IDENT     0x00    /* Identification and revision */\r
+#define I365_STATUS    0x01    /* Interface status */\r
+#define I365_POWER     0x02    /* Power and RESETDRV control */\r
+#define I365_INTCTL    0x03    /* Interrupt and general control */\r
+#define I365_CSC       0x04    /* Card status change */\r
+#define I365_CSCINT    0x05    /* Card status change interrupt control */\r
+#define I365_ADDRWIN   0x06    /* Address window enable */\r
+#define I365_IOCTL     0x07    /* I/O control */\r
+#define I365_GENCTL    0x16    /* Card detect and general control */\r
+#define I365_GBLCTL    0x1E    /* Global control register */\r
+\r
+/* Offsets for I/O and memory window registers */\r
+#define I365_IO(map)   (0x08+((map)<<2))\r
+#define I365_MEM(map)  (0x10+((map)<<3))\r
+#define I365_W_START   0\r
+#define I365_W_STOP    2\r
+#define I365_W_OFF     4\r
+\r
+/* Flags for I365_STATUS */\r
+#define I365_CS_BVD1   0x01\r
+#define I365_CS_STSCHG 0x01\r
+#define I365_CS_BVD2   0x02\r
+#define I365_CS_SPKR   0x02\r
+#define I365_CS_DETECT 0x0C\r
+#define I365_CS_WRPROT 0x10\r
+#define I365_CS_READY  0x20    /* Inverted */\r
+#define I365_CS_POWERON        0x40\r
+#define I365_CS_GPI    0x80\r
+\r
+/* Flags for I365_POWER */\r
+#define I365_PWR_OFF   0x00    /* Turn off the socket */\r
+#define I365_PWR_OUT   0x80    /* Output enable */\r
+#define I365_PWR_NORESET 0x40  /* Disable RESETDRV on resume */\r
+#define I365_PWR_AUTO  0x20    /* Auto pwr switch enable */\r
+#define I365_VCC_MASK  0x18    /* Mask for turning off Vcc */\r
+/* There are different layouts for B-step and DF-step chips: the B\r
+   step has independent Vpp1/Vpp2 control, and the DF step has only\r
+   Vpp1 control, plus 3V control */\r
+#define I365_VCC_5V    0x10    /* Vcc = 5.0v */\r
+#define I365_VCC_3V    0x18    /* Vcc = 3.3v */\r
+#define I365_VPP2_MASK 0x0c    /* Mask for turning off Vpp2 */\r
+#define I365_VPP2_5V   0x04    /* Vpp2 = 5.0v */\r
+#define I365_VPP2_12V  0x08    /* Vpp2 = 12.0v */\r
+#define I365_VPP1_MASK 0x03    /* Mask for turning off Vpp1 */\r
+#define I365_VPP1_5V   0x01    /* Vpp2 = 5.0v */\r
+#define I365_VPP1_12V  0x02    /* Vpp2 = 12.0v */\r
+\r
+/* Flags for I365_INTCTL */\r
+#define I365_RING_ENA  0x80\r
+#define I365_PC_RESET  0x40\r
+#define I365_PC_IOCARD 0x20\r
+#define I365_INTR_ENA  0x10\r
+#define I365_IRQ_MASK  0x0F\r
+\r
+/* Flags for I365_CSC and I365_CSCINT*/\r
+#define I365_CSC_BVD1  0x01\r
+#define I365_CSC_STSCHG        0x01\r
+#define I365_CSC_BVD2  0x02\r
+#define I365_CSC_READY 0x04\r
+#define I365_CSC_DETECT        0x08\r
+#define I365_CSC_ANY   0x0F\r
+#define I365_CSC_GPI   0x10\r
+\r
+/* Flags for I365_ADDRWIN */\r
+#define I365_ADDR_MEMCS16      0x20\r
+#define I365_ENA_IO(map)       (0x40 << (map))\r
+#define I365_ENA_MEM(map)      (0x01 << (map))\r
+\r
+/* Flags for I365_IOCTL */\r
+#define I365_IOCTL_MASK(map)   (0x0F << (map<<2))\r
+#define I365_IOCTL_WAIT(map)   (0x08 << (map<<2))\r
+#define I365_IOCTL_0WS(map)    (0x04 << (map<<2))\r
+#define I365_IOCTL_IOCS16(map) (0x02 << (map<<2))\r
+#define I365_IOCTL_16BIT(map)  (0x01 << (map<<2))\r
+\r
+/* Flags for I365_GENCTL */\r
+#define I365_CTL_16DELAY       0x01\r
+#define I365_CTL_RESET         0x02\r
+#define I365_CTL_GPI_ENA       0x04\r
+#define I365_CTL_GPI_CTL       0x08\r
+#define I365_CTL_RESUME                0x10\r
+#define I365_CTL_SW_IRQ                0x20\r
+\r
+/* Flags for I365_GBLCTL */\r
+#define I365_GBL_PWRDOWN       0x01\r
+#define I365_GBL_CSC_LEV       0x02\r
+#define I365_GBL_WRBACK                0x04\r
+#define I365_GBL_IRQ_0_LEV     0x08\r
+#define I365_GBL_IRQ_1_LEV     0x10\r
+\r
+/* Flags for memory window registers */\r
+#define I365_MEM_16BIT 0x8000  /* In memory start high byte */\r
+#define I365_MEM_0WS   0x4000\r
+#define I365_MEM_WS1   0x8000  /* In memory stop high byte */\r
+#define I365_MEM_WS0   0x4000\r
+#define I365_MEM_WRPROT        0x8000  /* In offset high byte */\r
+#define I365_MEM_REG   0x4000\r
+\r
+#define I365_REG(slot, reg)    (((slot) << 6) | (reg))\r
+\r
+/* Default ISA interrupt mask */\r
+#define I365_ISA_IRQ_MASK      0xdeb8  /* irq's 3-5,7,9-12,14,15 */\r
+\r
+/* Device ID's for PCI-to-PCMCIA bridges */\r
+\r
+#ifndef PCI_VENDOR_ID_INTEL\r
+#define PCI_VENDOR_ID_INTEL            0x8086\r
+#endif\r
+#ifndef PCI_DEVICE_ID_INTEL_82092AA_0\r
+#define PCI_DEVICE_ID_INTEL_82092AA_0  0x1221\r
+#endif\r
+#ifndef PCI_VENDOR_ID_OMEGA\r
+#define PCI_VENDOR_ID_OMEGA            0x119b\r
+#endif\r
+#ifndef PCI_DEVICE_ID_OMEGA_82C092G\r
+#define PCI_DEVICE_ID_OMEGA_82C092G    0x1221\r
+#endif\r
+\r
+#ifndef PCI_VENDOR_ID_CIRRUS\r
+#define PCI_VENDOR_ID_CIRRUS           0x1013\r
+#endif\r
+#ifndef PCI_DEVICE_ID_CIRRUS_6729\r
+#define PCI_DEVICE_ID_CIRRUS_6729      0x1100\r
+#endif\r
+#ifndef PCI_DEVICE_ID_CIRRUS_6832\r
+#define PCI_DEVICE_ID_CIRRUS_6832      0x1110\r
+#endif\r
+\r
+#define PD67_MISC_CTL_1                0x16    /* Misc control 1 */\r
+#define PD67_FIFO_CTL          0x17    /* FIFO control */\r
+#define PD67_MISC_CTL_2                0x1E    /* Misc control 2 */\r
+#define PD67_CHIP_INFO         0x1f    /* Chip information */\r
+#define PD67_ATA_CTL           0x026   /* 6730: ATA control */\r
+#define PD67_EXT_INDEX         0x2e    /* Extension index */\r
+#define PD67_EXT_DATA          0x2f    /* Extension data */\r
+\r
+#define pd67_ext_get(s, r) \\r
+    (i365_set(s, PD67_EXT_INDEX, r), i365_get(s, PD67_EXT_DATA))\r
+#define pd67_ext_set(s, r, v) \\r
+    (i365_set(s, PD67_EXT_INDEX, r), i365_set(s, PD67_EXT_DATA, v))\r
+\r
+/* PD6722 extension registers -- indexed in PD67_EXT_INDEX */\r
+#define PD67_DATA_MASK0                0x01    /* Data mask 0 */\r
+#define PD67_DATA_MASK1                0x02    /* Data mask 1 */\r
+#define PD67_DMA_CTL           0x03    /* DMA control */\r
+\r
+/* PD6730 extension registers -- indexed in PD67_EXT_INDEX */\r
+#define PD67_EXT_CTL_1         0x03    /* Extension control 1 */\r
+#define PD67_MEM_PAGE(n)       ((n)+5) /* PCI window bits 31:24 */\r
+#define PD67_EXTERN_DATA       0x0a\r
+#define PD67_EXT_CTL_2         0x0b\r
+#define PD67_MISC_CTL_3                0x25\r
+#define PD67_SMB_PWR_CTL       0x26\r
+\r
+/* I/O window address offset */\r
+#define PD67_IO_OFF(w)         (0x36+((w)<<1))\r
+\r
+/* Timing register sets */\r
+#define PD67_TIME_SETUP(n)     (0x3a + 3*(n))\r
+#define PD67_TIME_CMD(n)       (0x3b + 3*(n))\r
+#define PD67_TIME_RECOV(n)     (0x3c + 3*(n))\r
+\r
+/* Flags for PD67_MISC_CTL_1 */\r
+#define PD67_MC1_5V_DET                0x01    /* 5v detect */\r
+#define PD67_MC1_MEDIA_ENA     0x01    /* 6730: Multimedia enable */\r
+#define PD67_MC1_VCC_3V                0x02    /* 3.3v Vcc */\r
+#define PD67_MC1_PULSE_MGMT    0x04\r
+#define PD67_MC1_PULSE_IRQ     0x08\r
+#define PD67_MC1_SPKR_ENA      0x10\r
+#define PD67_MC1_INPACK_ENA    0x80\r
+\r
+/* Flags for PD67_FIFO_CTL */\r
+#define PD67_FIFO_EMPTY                0x80\r
+\r
+/* Flags for PD67_MISC_CTL_2 */\r
+#define PD67_MC2_FREQ_BYPASS   0x01\r
+#define PD67_MC2_DYNAMIC_MODE  0x02\r
+#define PD67_MC2_SUSPEND       0x04\r
+#define PD67_MC2_5V_CORE       0x08\r
+#define PD67_MC2_LED_ENA       0x10    /* IRQ 12 is LED enable */\r
+#define PD67_MC2_FAST_PCI      0x10    /* 6729: PCI bus > 25 MHz */\r
+#define PD67_MC2_3STATE_BIT7   0x20    /* Floppy change bit */\r
+#define PD67_MC2_DMA_MODE      0x40\r
+#define PD67_MC2_IRQ15_RI      0x80    /* IRQ 15 is ring enable */\r
+\r
+/* Flags for PD67_CHIP_INFO */\r
+#define PD67_INFO_SLOTS                0x20    /* 0 = 1 slot, 1 = 2 slots */\r
+#define PD67_INFO_CHIP_ID      0xc0\r
+#define PD67_INFO_REV          0x1c\r
+\r
+/* Fields in PD67_TIME_* registers */\r
+#define PD67_TIME_SCALE                0xc0\r
+#define PD67_TIME_SCALE_1      0x00\r
+#define PD67_TIME_SCALE_16     0x40\r
+#define PD67_TIME_SCALE_256    0x80\r
+#define PD67_TIME_SCALE_4096   0xc0\r
+#define PD67_TIME_MULT         0x3f\r
+\r
+/* Fields in PD67_DMA_CTL */\r
+#define PD67_DMA_MODE          0xc0\r
+#define PD67_DMA_OFF           0x00\r
+#define PD67_DMA_DREQ_INPACK   0x40\r
+#define PD67_DMA_DREQ_WP       0x80\r
+#define PD67_DMA_DREQ_BVD2     0xc0\r
+#define PD67_DMA_PULLUP                0x20    /* Disable socket pullups? */\r
+\r
+/* Fields in PD67_EXT_CTL_1 */\r
+#define PD67_EC1_VCC_PWR_LOCK  0x01\r
+#define PD67_EC1_AUTO_PWR_CLEAR        0x02\r
+#define PD67_EC1_LED_ENA       0x04\r
+#define PD67_EC1_INV_CARD_IRQ  0x08\r
+#define PD67_EC1_INV_MGMT_IRQ  0x10\r
+#define PD67_EC1_PULLUP_CTL    0x20\r
+\r
+/* Fields in PD67_EXTERN_DATA */\r
+#define PD67_EXD_VS1(s)                (0x01 << ((s)<<1))\r
+#define PD67_EXD_VS2(s)                (0x02 << ((s)<<1))\r
+\r
+/* Fields in PD67_EXT_CTL_2 */\r
+#define PD67_EC2_GPSTB_TOTEM   0x04\r
+#define PD67_EC2_GPSTB_IOR     0x08\r
+#define PD67_EC2_GPSTB_IOW     0x10\r
+#define PD67_EC2_GPSTB_HIGH    0x20\r
+\r
+/* Fields in PD67_MISC_CTL_3 */\r
+#define PD67_MC3_IRQ_MASK      0x03\r
+#define PD67_MC3_IRQ_PCPCI     0x00\r
+#define PD67_MC3_IRQ_EXTERN    0x01\r
+#define PD67_MC3_IRQ_PCIWAY    0x02\r
+#define PD67_MC3_IRQ_PCI       0x03\r
+#define PD67_MC3_PWR_MASK      0x0c\r
+#define PD67_MC3_PWR_SERIAL    0x00\r
+#define PD67_MC3_PWR_TI2202    0x08\r
+#define PD67_MC3_PWR_SMB       0x0c\r
+\r
+/* Register definitions for Cirrus PD6832 PCI-to-CardBus bridge */\r
+\r
+/* PD6832 extension registers -- indexed in PD67_EXT_INDEX */\r
+#define PD68_PCI_SPACE                 0x22\r
+#define PD68_PCCARD_SPACE              0x23\r
+#define PD68_WINDOW_TYPE               0x24\r
+#define PD68_EXT_CSC                   0x2e\r
+#define PD68_MISC_CTL_4                        0x2f\r
+#define PD68_MISC_CTL_5                        0x30\r
+#define PD68_MISC_CTL_6                        0x31\r
+\r
+/* Extra flags in PD67_MISC_CTL_3 */\r
+#define PD68_MC3_HW_SUSP               0x10\r
+#define PD68_MC3_MM_EXPAND             0x40\r
+#define PD68_MC3_MM_ARM                        0x80\r
+\r
+/* Bridge Control Register */\r
+#define  PD6832_BCR_MGMT_IRQ_ENA       0x0800\r
+\r
+/* Socket Number Register */\r
+#define PD6832_SOCKET_NUMBER           0x004c  /* 8 bit */\r
+\r
+/* Data structure for tracking vendor-specific state */\r
+typedef struct cirrus_state_t {\r
+    u_char             misc1;          /* PD67_MISC_CTL_1 */\r
+    u_char             misc2;          /* PD67_MISC_CTL_2 */\r
+    u_char             ectl1;          /* PD67_EXT_CTL_1 */\r
+    u_char             timer[6];       /* PD67_TIME_* */\r
+} cirrus_state_t;\r
+\r
+#define CIRRUS_PCIC_ID \\r
+    IS_PD6729, IS_PD6730, IS_PD6832\r
+\r
+#define CIRRUS_PCIC_INFO \\r
+    { "Cirrus PD6729", IS_CIRRUS|IS_PCI, ID(CIRRUS, 6729) },           \\r
+    { "Cirrus PD6730", IS_CIRRUS|IS_PCI, PCI_VENDOR_ID_CIRRUS, -1 },   \\r
+    { "Cirrus PD6832", IS_CIRRUS|IS_CARDBUS, ID(CIRRUS, 6832) }\r
+\r
+/* Special bit in I365_IDENT used for Vadem chip detection */\r
+#define I365_IDENT_VADEM       0x08\r
+\r
+/* Special definitions in I365_POWER */\r
+#define VG468_VPP2_MASK                0x0c\r
+#define VG468_VPP2_5V          0x04\r
+#define VG468_VPP2_12V         0x08\r
+\r
+/* Unique Vadem registers */\r
+#define VG469_VSENSE           0x1f    /* Card voltage sense */\r
+#define VG469_VSELECT          0x2f    /* Card voltage select */\r
+#define VG468_CTL              0x38    /* Control register */\r
+#define VG468_TIMER            0x39    /* Timer control */\r
+#define VG468_MISC             0x3a    /* Miscellaneous */\r
+#define VG468_GPIO_CFG         0x3b    /* GPIO configuration */\r
+#define VG469_EXT_MODE         0x3c    /* Extended mode register */\r
+#define VG468_SELECT           0x3d    /* Programmable chip select */\r
+#define VG468_SELECT_CFG       0x3e    /* Chip select configuration */\r
+#define VG468_ATA              0x3f    /* ATA control */\r
+\r
+/* Flags for VG469_VSENSE */\r
+#define VG469_VSENSE_A_VS1     0x01\r
+#define VG469_VSENSE_A_VS2     0x02\r
+#define VG469_VSENSE_B_VS1     0x04\r
+#define VG469_VSENSE_B_VS2     0x08\r
+\r
+/* Flags for VG469_VSELECT */\r
+#define VG469_VSEL_VCC         0x03\r
+#define VG469_VSEL_5V          0x00\r
+#define VG469_VSEL_3V          0x03\r
+#define VG469_VSEL_MAX         0x0c\r
+#define VG469_VSEL_EXT_STAT    0x10\r
+#define VG469_VSEL_EXT_BUS     0x20\r
+#define VG469_VSEL_MIXED       0x40\r
+#define VG469_VSEL_ISA         0x80\r
+\r
+/* Flags for VG468_CTL */\r
+#define VG468_CTL_SLOW         0x01    /* 600ns memory timing */\r
+#define VG468_CTL_ASYNC                0x02    /* Asynchronous bus clocking */\r
+#define VG468_CTL_TSSI         0x08    /* Tri-state some outputs */\r
+#define VG468_CTL_DELAY                0x10    /* Card detect debounce */\r
+#define VG468_CTL_INPACK       0x20    /* Obey INPACK signal? */\r
+#define VG468_CTL_POLARITY     0x40    /* VCCEN polarity */\r
+#define VG468_CTL_COMPAT       0x80    /* Compatibility stuff */\r
+\r
+#define VG469_CTL_WS_COMPAT    0x04    /* Wait state compatibility */\r
+#define VG469_CTL_STRETCH      0x10    /* LED stretch */\r
+\r
+/* Flags for VG468_TIMER */\r
+#define VG468_TIMER_ZEROPWR    0x10    /* Zero power control */\r
+#define VG468_TIMER_SIGEN      0x20    /* Power up */\r
+#define VG468_TIMER_STATUS     0x40    /* Activity timer status */\r
+#define VG468_TIMER_RES                0x80    /* Timer resolution */\r
+#define VG468_TIMER_MASK       0x0f    /* Activity timer timeout */\r
+\r
+/* Flags for VG468_MISC */\r
+#define VG468_MISC_GPIO                0x04    /* General-purpose IO */\r
+#define VG468_MISC_DMAWSB      0x08    /* DMA wait state control */\r
+#define VG469_MISC_LEDENA      0x10    /* LED enable */\r
+#define VG468_MISC_VADEMREV    0x40    /* Vadem revision control */\r
+#define VG468_MISC_UNLOCK      0x80    /* Unique register lock */\r
+\r
+/* Flags for VG469_EXT_MODE_A */\r
+#define VG469_MODE_VPPST       0x03    /* Vpp steering control */\r
+#define VG469_MODE_INT_SENSE   0x04    /* Internal voltage sense */\r
+#define VG469_MODE_CABLE       0x08\r
+#define VG469_MODE_COMPAT      0x10    /* i82365sl B or DF step */\r
+#define VG469_MODE_TEST                0x20\r
+#define VG469_MODE_RIO         0x40    /* Steer RIO to INTR? */\r
+\r
+/* Flags for VG469_EXT_MODE_B */\r
+#define VG469_MODE_B_3V                0x01    /* 3.3v for socket B */\r
+\r
+/* Data structure for tracking vendor-specific state */\r
+typedef struct vg46x_state_t {\r
+    u_char             ctl;            /* VG468_CTL */\r
+    u_char             ema;            /* VG468_EXT_MODE_A */\r
+} vg46x_state_t;\r
diff --git a/src/install+setup/install/probescsi.sh b/src/install+setup/install/probescsi.sh
new file mode 100644 (file)
index 0000000..6b1cd59
--- /dev/null
@@ -0,0 +1,64 @@
+#!/bin/sh\r
+OLDDIR=`pwd`\r
+cd /lib/modules/*/kernel/drivers/scsi\r
+/bin/modprobe scsi_mod.o.gz > /dev/null 2>&1\r
+/bin/modprobe sd_mod.o.gz > /dev/null 2>&1\r
+/bin/modprobe sr_mod.o.gz > /dev/null 2>&1\r
+/bin/modprobe sg.o.gz > /dev/null 2>&1\r
+/bin/modprobe libata.o.gz > /dev/null 2>&1\r
+echo "Trying cpqarray"; \r
+if /bin/modprobe cpqarray > /dev/null 2>&1; then\r
+       echo "cpqarray.o.gz" > /scsidriver;\r
+       exit 0;\r
+fi\r
+echo "Trying cciss";\r
+if /bin/modprobe cciss > /dev/null 2>&1; then\r
+       echo "cciss.o.gz" > /scsidriver;\r
+       exit 0;\r
+fi\r
+echo "Trying DAC960";\r
+if /bin/modprobe DAC960 > /dev/null 2>&1; then\r
+       echo "DAC960.o.gz" > /scsidriver;\r
+       exit 0;\r
+fi\r
+/bin/modprobe ataraid.o.gz > /dev/null 2>&1\r
+echo "Trying medley";\r
+if /bin/modprobe medley > /dev/null 2>&1; then\r
+       echo "medley.o.gz" > /scsidriver;\r
+       exit 0;\r
+fi\r
+echo "Trying hptraid";\r
+if /bin/modprobe hptraid > /dev/null 2>&1; then\r
+       echo "hptraid.o.gz" > /scsidriver;\r
+       exit 0;\r
+fi\r
+echo "Trying pdcraid";\r
+if /bin/modprobe pdcraid > /dev/null 2>&1; then\r
+       echo "pdcraid.o.gz" > /scsidriver;\r
+       exit 0;\r
+fi\r
+echo "Trying silraid";\r
+if /bin/modprobe silraid > /dev/null 2>&1; then\r
+       echo "silraid.o.gz" > /scsidriver;\r
+       exit 0;\r
+fi\r
+for i in * message/fusion/mptscsih.o.gz ; \r
+do \r
+# Skip the generic scsi modules and ancillary support modules\r
+# Added eata_dma to skip list because it crashes some machines. Probe last.\r
+if [ $i != "scsi_mod.o.gz" -a $i != "sd_mod.o.gz" -a $i != "sg.o.gz" -a $i != "sr_mod.o.gz" -a $i != "53c700.o.gz" -a $i != "NCR53C9x.o.gz" -a $i != "eata_dma.o.gz" -a $i != "libata.o.gz" ]; then\r
+       DRIVER=`echo $i | sed 's/.o.gz//'`\r
+       echo "Trying $DRIVER"; \r
+       if /bin/modprobe $DRIVER > /dev/null 2>&1; then\r
+               echo $i > /scsidriver;\r
+               /bin/cat /proc/scsi/scsi;\r
+               exit 0;\r
+       fi;\r
+fi;\r
+done\r
+echo "Trying eata_dma";\r
+if /bin/modprobe eata_dma > /dev/null 2>&1; then\r
+       echo "eata_dma.o.gz" > /scsidriver;\r
+       exit 0;\r
+fi\r
+cd $OLDDIR\r
diff --git a/src/install+setup/install/scsi.c b/src/install+setup/install/scsi.c
new file mode 100644 (file)
index 0000000..495030a
--- /dev/null
@@ -0,0 +1,28 @@
+/* IPCop install program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Alan Hourihane, 2003 <alanh@fairlite.demon.co.uk>\r
+ * \r
+ * $Id: scsi.c\r
+ * \r
+ */\r
+\r
+#include "install.h"\r
+\r
+int\r
+try_scsi(char *disk_device)\r
+{\r
+       int fd;\r
+       char dev[10];\r
+\r
+       sprintf(dev, "/dev/%s", disk_device);\r
+\r
+       if ((fd = open(dev, O_RDONLY)) < 0)\r
+               return 0;\r
+\r
+       close(fd);\r
+       // remove usb scsi\r
+       return ( checkusb(disk_device) ? 0:1 );\r
+}\r
diff --git a/src/install+setup/install/upgrade-v12-v13.c b/src/install+setup/install/upgrade-v12-v13.c
new file mode 100644 (file)
index 0000000..b8e838e
--- /dev/null
@@ -0,0 +1,340 @@
+/*\r
+ * This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * Copyright 2002: Mark Wormgoor <mark@wormgoor.com>\r
+ * \r
+ * $Id: upgrade-v12-v13.c,v 1.2.2.3 2004/11/11 09:39:25 alanh Exp $\r
+ * \r
+ */\r
+\r
+#include "install.h"\r
+\r
+void _convert_ppp_settings() {\r
+       DIR *dirp;\r
+       struct dirent *dp;\r
+       char filename[STRING_SIZE];\r
+       \r
+       dirp = opendir( "/harddisk/var/ipcop/ppp" );\r
+       while ( (dp = readdir( dirp )) != NULL ) {\r
+               if ( strstr( dp->d_name, "settings" ) == dp->d_name ) {\r
+                       snprintf (filename, STRING_SIZE-1, "%s/%s", \r
+                               "/harddisk/var/ipcop/ppp", dp->d_name);\r
+\r
+                       /* reduce furthur replacements from commands below */\r
+                       replace (filename, "TYPE=modem", "");\r
+                       replace (filename, "COMPORT=ttyS0", "TYPE=modem\nCOMPORT=ttyS0");\r
+                       replace (filename, "COMPORT=ttyS1", "TYPE=modem\nCOMPORT=ttyS1");\r
+                       replace (filename, "COMPORT=ttyS2", "TYPE=modem\nCOMPORT=ttyS2");\r
+                       replace (filename, "COMPORT=ttyS3", "TYPE=modem\nCOMPORT=ttyS3");\r
+                       /* reduce furthur replacements from commands below */\r
+                       replace (filename, "TYPE=isdn", "");\r
+                       replace (filename, "COMPORT=isdn1", "TYPE=isdn\nCOMPORT=isdn1");\r
+                       replace (filename, "COMPORT=isdn2", "TYPE=isdn\nCOMPORT=isdn2");\r
+                       replace (filename, "COMPORT=pppoe", "TYPE=pppoe");\r
+                       replace (filename, "COMPORT=pptp", "TYPE=pptp");\r
+                       replace (filename, "COMPORT=usbadsl", "TYPE=alcatelusb");\r
+                       replace (filename, "COMPORT=pppoa", "TYPE=pulsardsl");\r
+\r
+                       chown (filename, 99, 99);\r
+               }       \r
+       }\r
+       (void) closedir( dirp );\r
+}\r
+\r
+int _convert_xtaccess() {\r
+       int count=1, count2=0;\r
+        FILE *portfw1, *portfw2;\r
+        char portsrctemp[STRING_SIZE], portdsttemp[STRING_SIZE];\r
+       char *portproto, *portsrcip, *portsrcport, *portdstip, *portdstport, *portenabled, *portremip;\r
+\r
+        FILE *xtaccess1, *xtaccess2;\r
+       char xtsrctemp[STRING_SIZE], xtdsttemp[STRING_SIZE];\r
+       char *xtproto, *xtsrcip, *xtdstip, *xtdstport, *xtenabled;\r
+        \r
+       if (!(portfw1 = fopen ("/harddisk/var/ipcop/portfw/config", "r"))) return 1;\r
+       if (!(portfw2 = fopen ("/harddisk/var/ipcop/portfw/config.new", "w"))) \r
+       {\r
+               fclose(portfw1);\r
+               return 1;\r
+       }\r
+\r
+        while (fgets (portsrctemp, STRING_SIZE, portfw1) != NULL) {\r
+               count2 = 0;\r
+               portproto   = NULL;\r
+               portsrcip   = NULL;\r
+               portsrcport = NULL;\r
+               portdstip   = NULL;\r
+               portdstport = NULL;\r
+               portremip   = NULL;\r
+               portenabled = NULL;\r
+               \r
+               if (!(xtaccess1 = fopen ("/harddisk/var/ipcop/xtaccess/config", "r"))) \r
+               {\r
+                       fclose(portfw1);\r
+                       fclose(portfw2);\r
+                       return 1;\r
+               }\r
+               if (!(xtaccess2 = fopen ("/harddisk/var/ipcop/xtaccess/config.new", "w"))) \r
+               {\r
+                       fclose(portfw1);\r
+                       fclose(portfw2);\r
+                       fclose(xtaccess1);\r
+                       return 1;\r
+               }\r
+\r
+               if (isdigit (portsrctemp[0])) {\r
+                       /* Already converted to new format */\r
+                       fputs(portsrctemp, portfw2);\r
+                       continue;\r
+               }\r
+\r
+               if (portsrctemp[strlen(portsrctemp) - 1] == '\n')\r
+                       portsrctemp[strlen(portsrctemp) - 1] = '\0';\r
+               portproto   = strtok (portsrctemp, ",");\r
+               portsrcport = strtok (NULL, ",");\r
+               portdstip   = strtok (NULL, ",");\r
+               portdstport = strtok (NULL, ",");\r
+               portenabled = strtok (NULL, ",");\r
+               portsrcip   = strtok (NULL, ",");\r
+               portremip   = strtok (NULL, ",");\r
+               if (!(portproto && portsrcport && portdstip && \r
+                       portdstport && portenabled ))\r
+                       continue;\r
+\r
+               if (portsrcip == NULL) portsrcip = strdup ("0.0.0.0");\r
+\r
+               while (fgets (xtsrctemp, STRING_SIZE, xtaccess1)) {\r
+                       xtproto   = NULL;\r
+                       xtsrcip   = NULL;\r
+                       xtdstip   = NULL;\r
+                       xtdstport = NULL;\r
+                       xtenabled = NULL;\r
+\r
+                       if (xtsrctemp[strlen(xtsrctemp) - 1] == '\n')\r
+                               xtsrctemp[strlen(xtsrctemp) - 1] = '\0';\r
+                       xtproto   = strtok (xtsrctemp, ",");\r
+                       xtsrcip   = strtok (NULL, ",");\r
+                       xtdstport = strtok (NULL, ",");\r
+                       xtenabled = strtok (NULL, ",");\r
+                       xtdstip   = strtok (NULL, ",");\r
+                       if (!(xtproto && xtsrcip && xtdstport && xtenabled)) continue;\r
+\r
+                       if (xtdstip == NULL) xtdstip = strdup ("0.0.0.0");\r
+\r
+                       if (strcmp (portproto, xtproto) == 0 &&\r
+                                       strcmp (portsrcport, xtdstport) == 0 &&\r
+                                       strcmp (portsrcip, xtdstip) == 0) {\r
+                               portremip = strdup (xtsrcip);\r
+                               if ((strcmp (portremip, "0.0.0.0/0") == 0) && (count2 == 0)) {\r
+                                       sprintf (portdsttemp, "%d,%d,%s,%s,%s,%s,%s,%s,%s\n",\r
+                                               count, count2, portproto, portsrcport, portdstip,\r
+                                               portdstport, portenabled, portsrcip, portremip);\r
+                                       fputs(portdsttemp, portfw2);\r
+                               } else {\r
+                                       if (count2 == 0) {\r
+                                               sprintf (portdsttemp, "%d,%d,%s,%s,%s,%s,%s,%s,%d\n",\r
+                                                       count,count2,portproto, portsrcport, portdstip,\r
+                                                       portdstport, portenabled, portsrcip, 0);\r
+                                               fputs(portdsttemp, portfw2);\r
+                                               count2++;\r
+                                       }\r
+                                       sprintf (portdsttemp, "%d,%d,%s,%d,%s,%s,%s,%d,%s\n",\r
+                                               count,count2,portproto, 0, portdstip,\r
+                                               portdstport, portenabled, 0, portremip);\r
+                                       fputs(portdsttemp, portfw2);\r
+                               }\r
+                               count2++;\r
+                       } else {\r
+                               sprintf (xtdsttemp, "%s,%s,%s,%s,%s\n",\r
+                                       xtproto, xtsrcip, xtdstport, xtenabled, xtdstip);\r
+                               fputs(xtdsttemp, xtaccess2);\r
+                       }\r
+                }\r
+\r
+               /* Close source and destination xtaccess files */\r
+               fclose (xtaccess1);\r
+               fclose (xtaccess2);\r
+\r
+               /* Move the new xtaccess file */\r
+               rename ("/harddisk/var/ipcop/xtaccess/config.new",\r
+                       "/harddisk/var/ipcop/xtaccess/config");\r
+\r
+               /* If no external access line existed, add a no access line */\r
+               if (count2 == 0) {\r
+                       if (portremip == NULL) portremip = strdup ("127.0.0.1/32");\r
+\r
+                       /* Print new port forwarding line to file */\r
+                       sprintf (portdsttemp, "%d,%d,%s,%s,%s,%s,%s,%s,%s\n",\r
+                               count, count2, portproto, portsrcport, portdstip, \r
+                               portdstport, portenabled, portsrcip, portremip);\r
+                       fputs(portdsttemp, portfw2);\r
+               }\r
+               count++;\r
+       }\r
+\r
+       /* Close source and destination portfw files */\r
+       fclose (portfw1);\r
+       fclose (portfw2);\r
+\r
+       /* Move the new portfw file */\r
+       rename ("/harddisk/var/ipcop/portfw/config.new",\r
+               "/harddisk/var/ipcop/portfw/config");\r
+       chown  ("/harddisk/var/ipcop/xtaccess/config", 99, 99);\r
+       chown  ("/harddisk/var/ipcop/portfw/config", 99, 99);\r
+\r
+       return 0;\r
+}\r
+\r
+int _convert_pulsardsl() {\r
+       DIR *dirp;\r
+       struct dirent *dp;\r
+       char filename[STRING_SIZE];\r
+       FILE *settings, *pulsardsl;\r
+       char line[STRING_SIZE];\r
+       \r
+       if (!(pulsardsl = fopen ("/harddisk/var/ipcop/pciadsl/settings", "r"))) return 1;\r
+       \r
+       dirp = opendir( "/harddisk/var/ipcop/ppp" );\r
+       while ( (dp = readdir( dirp )) != NULL ) {\r
+               if ( strstr( dp->d_name, "settings" ) == dp->d_name ) {\r
+                       snprintf (filename, STRING_SIZE-1, "%s/%s", \r
+                               "/harddisk/var/ipcop/ppp", dp->d_name);\r
+                       if (!(settings = fopen (filename, "r+"))) {\r
+                               closedir(dirp);\r
+                               fclose(pulsardsl);\r
+                               return 1;\r
+                       }\r
+                       while (fgets (line, STRING_SIZE, settings) != NULL) {\r
+                               if (strstr (line, "TYPE=pulsardsl") == line) {\r
+                                       fseek(settings,0,SEEK_END);\r
+                                       rewind(pulsardsl);\r
+                                       while (fgets(line, STRING_SIZE, pulsardsl) != NULL) {\r
+                                               fputs (line, settings);\r
+                                       }\r
+                                       fclose (settings);\r
+                                       chown (filename, 99, 99);\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+       fclose(pulsardsl);\r
+       (void) closedir( dirp );\r
+\r
+\r
+       return 0;\r
+}\r
+\r
+int _convert_pulsardsl_ethernet() {\r
+       DIR *dirp;\r
+       struct dirent *dp;\r
+       FILE *ethernet, *settings;\r
+       char line[STRING_SIZE];\r
+       char type[STRING_SIZE];\r
+       char ip[STRING_SIZE];\r
+       char filename[STRING_SIZE];\r
+       \r
+       if (!(ethernet = fopen ("/harddisk/var/ipcop/ethernet/settings", "r"))) return 1;\r
+\r
+       while (fgets (line, STRING_SIZE, ethernet) != NULL) {\r
+               if (strstr (line, "RED_DRIVER=pciadsl") == line) {\r
+                       rewind (ethernet);\r
+                       while (fgets (line, STRING_SIZE, ethernet) != NULL) {\r
+                               if (strstr (line, "RED_TYPE") == line) {\r
+                                       strcpy (type, line + 9*sizeof(char));\r
+                                       if (type[strlen(type) - 1] == '\n')\r
+                                               type[strlen(type) - 1] = '\0';\r
+                               }\r
+                               if (strstr (line, "RED_ADDRESS") == line) {\r
+                                       strcpy (ip, line + 12*sizeof(char));\r
+                                       if (ip[strlen(ip) - 1] == '\n')\r
+                                               type[strlen(ip) - 1] = '\0';\r
+                               }\r
+                               fclose (ethernet);\r
+\r
+                               replace ("/harddisk/var/ipcop/ethernet/settings", "RED_DEV=eth1", "RED_DEV=");\r
+                               replace ("/harddisk/var/ipcop/ethernet/settings", "CONFIG_TYPE=2", "CONFIG_TYPE=0");\r
+                               replace ("/harddisk/var/ipcop/ethernet/settings", "CONFIG_TYPE=3", "CONFIG_TYPE=1");\r
+                               replace ("/harddisk/var/ipcop/ethernet/settings", "RED_DEV=eth2", "RED_DEV=");\r
+                               chown ("/harddisk/var/ipcop/ethernet/settings", 99, 99);\r
+                               \r
+                               dirp = opendir( "/harddisk/var/ipcop/ppp" );\r
+                               while ( (dp = readdir( dirp )) != NULL ) {\r
+                                       if ( strstr( dp->d_name, "settings-" ) == dp->d_name ) {\r
+                                               snprintf (filename, STRING_SIZE-1, "%s/%s", \r
+                                                       "/harddisk/var/ipcop/ppp", dp->d_name);\r
+                                               if (!(settings = fopen (filename, "r+"))) \r
+                                               {\r
+                                                       closedir(dirp);\r
+                                                       return 1;\r
+                                               }\r
+                                               while (fgets (line, STRING_SIZE, settings) != NULL) {\r
+                                                       if (strstr (line, "TYPE=pulsardsl") == line) {\r
+                                                               fseek(settings,0,SEEK_END);\r
+                                                               fprintf (settings, "METHOD=%s\n", type);\r
+                                                               fprintf (settings, "IP=%s\n", ip);\r
+                                                               fclose (settings);\r
+                                                               chown (filename, 99, 99);\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               (void) closedir( dirp );\r
+                       }\r
+               }\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
+int upgrade_v12_v13() {\r
+       struct stat s;\r
+       replace ("/harddisk/var/ipcop/ethernet/settings", "rtl8139", "8139too");\r
+       replace ("/harddisk/var/ipcop/vpn/ipsec.conf", "auto=add", "auto=start");\r
+       chown ("/harddisk/var/ipcop/vpn/ipsec.conf", 99, 99);\r
+       chown ("/harddisk/var/ipcop/ethernet/settings", 99, 99);\r
+       chown ("/harddisk/var/ipcop/main/settings", 99, 99);\r
+       _convert_ppp_settings();\r
+       _convert_xtaccess();\r
+       _convert_pulsardsl();\r
+       _convert_pulsardsl_ethernet();\r
+\r
+       /* Rename usbadsl directory */\r
+       stat ("/harddisk/var/ipcop/usbadsl", &s);\r
+       if (S_ISDIR(s.st_mode)) {\r
+               remove ("/harddisk/var/ipcop/usbadsl/settings");\r
+               if (! system("/bin/chroot /harddisk /bin/rm -rf /var/ipcop/alcatelusb"))\r
+                       rename ("/harddisk/var/ipcop/usbadsl", "/harddisk/var/ipcop/alcatelusb");\r
+       }\r
+       \r
+       /* Rename pciadsl module and directory */\r
+       remove ("/harddisk/var/ipcop/pulsar/settings");\r
+       rename ("/harddisk/var/ipcop/pciadsl/pciadsl.o", "/harddisk/var/ipcop/pciadsl/pulsar.o");\r
+       stat ("/harddisk/var/ipcop/pciadsl", &s);\r
+       if (S_ISDIR(s.st_mode)) {\r
+               if (! system("/bin/chroot /harddisk /bin/rm -rf /var/ipcop/pulsardsl"))\r
+                       rename ("/harddisk/var/ipcop/pciadsl", "/harddisk/var/ipcop/pulsardsl");\r
+       }\r
+\r
+       /* Change squid cache directory */\r
+       replace ("/harddisk/var/ipcop/proxy/squid.conf", "/var/spool/squid", "/var/log/cache");\r
+       chown ("/harddisk/var/ipcop/proxy/squid.conf", 99, 99);\r
+       \r
+       /* Change setup user shell */\r
+       replace ("/harddisk/etc/passwd", ":/usr/local/sbin/setup", ":/bin/bash -c /usr/local/sbin/setup");\r
+       \r
+       return 0;\r
+}\r
diff --git a/src/install+setup/install/upgrade-v130-v140.c b/src/install+setup/install/upgrade-v130-v140.c
new file mode 100644 (file)
index 0000000..adcd236
--- /dev/null
@@ -0,0 +1,577 @@
+/*\r
+ * This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * Copyright 2002: Mark Wormgoor <mark@wormgoor.com>\r
+ * \r
+ * $Id: upgrade-v130-v140.c,v 1.12.2.35 2004/11/11 09:40:03 alanh Exp $\r
+ * \r
+ */\r
+\r
+#include "install.h"\r
+\r
+extern char **ctr;\r
\r
+int _handledomainname(void)\r
+{\r
+       char domainname[STRING_SIZE] = "localdomain";\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char *values[] = { domainname, NULL };  /* pointers for the values. */\r
+       struct newtWinEntry entries[] =\r
+               { { "", &values[0], 0,}, { NULL, NULL, 0 } };\r
+       int rc;\r
+       int result;\r
+       \r
+       if (!(readkeyvalues(kv, "/harddisk" CONFIG_ROOT "/main/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }       \r
+       \r
+       findkey(kv, "DOMAINNAME", domainname);\r
+\r
+       /* already have a domainname */\r
+       if (strlen(domainname))\r
+               return 0;\r
+       \r
+       for (;;)\r
+       {       \r
+               rc = newtWinEntries(ctr[TR_DOMAINNAME], ctr[TR_ENTER_DOMAINNAME],\r
+                       50, 5, 5, 40, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);       \r
+               \r
+               if (rc == 1)\r
+               {\r
+                       strcpy(domainname, values[0]);\r
+                       if (strchr(domainname, ' '))\r
+                               errorbox(ctr[TR_DOMAINNAME_CANNOT_CONTAIN_SPACES]);\r
+                       else\r
+                       {                       \r
+                               replacekeyvalue(kv, "DOMAINNAME", domainname);\r
+                               writekeyvalues(kv, "/harddisk" CONFIG_ROOT "/main/settings");\r
+                               result = 1;\r
+                               break;\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       result = 0;\r
+                       break;\r
+               }\r
+       }\r
+       free(values[0]);\r
+       freekeyvalues(kv);\r
+       \r
+       return result;\r
+}      \r
+\r
+int _add_logwatch_user() {\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel logwatch");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupdel logwatch");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupadd -g 102 logwatch");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/useradd  -u 102 -g logwatch -d /var/log/logwatch -s /bin/false logwatch");\r
+    \r
+       return 0;\r
+}\r
+\r
+int _fixsquid() {\r
+       FILE *squidreadfile;\r
+       FILE *squidwritefile;\r
+       FILE *aclreadfile;\r
+       char hostname[STRING_SIZE] = "";\r
+       char domainname[STRING_SIZE] = "";\r
+       char squidtemp[STRING_SIZE];\r
+       struct keyvalue *kv = initkeyvalues();\r
+       int already_upgraded = 0;\r
+       int updated = 0;\r
+\r
+       if (!(squidreadfile = fopen ("/harddisk" CONFIG_ROOT "/proxy/squid.conf", "r"))) return 1;\r
+       if (!(squidwritefile = fopen ("/harddisk" CONFIG_ROOT "/proxy/squid.conf.new", "w"))) \r
+       {\r
+               fclose(squidreadfile);\r
+               return 1;\r
+       }\r
+\r
+       if (!(readkeyvalues(kv, "/harddisk" CONFIG_ROOT "/main/settings")))\r
+       {\r
+               fclose (squidwritefile);\r
+               fclose (squidreadfile);\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 1;\r
+       }\r
+\r
+       findkey(kv, "HOSTNAME", hostname);\r
+       findkey(kv, "DOMAINNAME", domainname);\r
+       freekeyvalues(kv);\r
+\r
+        while (fgets (squidtemp, STRING_SIZE, squidreadfile) != NULL) {\r
+               /* this will fail if we've already been upgraded, which is ok */\r
+               if (!strncmp(squidtemp, "reply_body_max_size 0 KB", 24)) {\r
+                       sprintf(squidtemp, "reply_body_max_size 0 allow all\n");\r
+               }\r
+               if (!strncmp(squidtemp, "cache_store_log /var/log/squid/store.log", 40)) {\r
+                       sprintf(squidtemp, "cache_store_log none\n");\r
+               }\r
+               fputs(squidtemp, squidwritefile);\r
+\r
+               /* so for us developers we skip already upgraded squiddies */\r
+               if (!strncmp(squidtemp, "visible_hostname", 16)) {\r
+                       already_upgraded = 1;\r
+               }\r
+\r
+               /* Check for the new acl's */\r
+               if (!strncmp(squidtemp, "__GREEN_IP__", 12)) {\r
+                       updated = 1;\r
+               }\r
+       }\r
+       if (!already_upgraded) {\r
+               sprintf(squidtemp, "visible_hostname %s.%s\n", hostname, domainname);\r
+               fputs(squidtemp, squidwritefile);\r
+       }\r
+\r
+       fclose (squidwritefile);\r
+       fclose (squidreadfile);\r
+\r
+       rename ("/harddisk" CONFIG_ROOT "/proxy/squid.conf.new",\r
+               "/harddisk" CONFIG_ROOT "/proxy/squid.conf");\r
+\r
+       replace("/harddisk" CONFIG_ROOT "/proxy/squid.conf", "cache_dir ufs", "cache_dir aufs");\r
+\r
+       if (!updated) {\r
+               rename ("/harddisk" CONFIG_ROOT "/proxy/acl",\r
+                       "/harddisk" CONFIG_ROOT "/proxy/acl.old");\r
+               rename ("/harddisk" CONFIG_ROOT "/proxy/acl-1.4",\r
+                       "/harddisk" CONFIG_ROOT "/proxy/acl");\r
+       } else {\r
+               if (!(aclreadfile = fopen ("/harddisk" CONFIG_ROOT "/proxy/acl", "r"))) {\r
+                       rename ("/harddisk" CONFIG_ROOT "/proxy/acl-1.4",\r
+                               "/harddisk" CONFIG_ROOT "/proxy/acl");\r
+               } else {\r
+                       unlink ("/harddisk" CONFIG_ROOT "/proxy/acl-1.4");\r
+                       fclose(aclreadfile);\r
+               }\r
+       }\r
+\r
+       chown  ("/harddisk" CONFIG_ROOT "/proxy/squid.conf", 99, 99);\r
+       chown  ("/harddisk" CONFIG_ROOT "/proxy/acl", 99, 99);\r
+       return 0;\r
+}\r
+\r
+int _fixeagleusb() {\r
+       FILE *eaglereadfile;\r
+       FILE *eaglewritefile;\r
+       char eagletemp[STRING_SIZE];\r
+       int already_upgraded = 0;\r
+\r
+       if (!(eaglereadfile  = fopen ("/harddisk" CONFIG_ROOT "/eagle-usb/eagle-usb.conf", "r"))) return 1;\r
+       if (!(eaglewritefile = fopen ("/harddisk" CONFIG_ROOT "/eagle-usb/eagle-usb.conf.new", "w"))) \r
+       {\r
+               fclose(eaglereadfile);\r
+               return 1;\r
+       }\r
+\r
+        while (fgets (eagletemp, STRING_SIZE, eaglereadfile) != NULL) {\r
+               /* so for us developers we skip already upgraded configs */\r
+               if (!strncmp(eagletemp, "<eaglectrl>", 11)) {\r
+                       already_upgraded = 1;\r
+               }\r
+       }\r
+\r
+       rewind(eaglereadfile);\r
+       if (!already_upgraded)\r
+               fprintf(eaglewritefile, "<eaglectrl>\n");\r
+       while (fgets (eagletemp, STRING_SIZE, eaglereadfile) != NULL)\r
+               fputs(eagletemp, eaglewritefile);\r
+       if (!already_upgraded)\r
+               fprintf(eaglewritefile, "</eaglectrl>\n");\r
+\r
+       fclose (eaglewritefile);\r
+       fclose (eaglereadfile);\r
+\r
+       rename ("/harddisk" CONFIG_ROOT "/eagle-usb/eagle-usb.conf.new",\r
+               "/harddisk" CONFIG_ROOT "/eagle-usb/eagle-usb.conf");\r
+\r
+       replace("/harddisk" CONFIG_ROOT "/eagle-usb/eagle-usb.conf", "Linetype=00000001", "Linetype=0A");\r
+\r
+       chown  ("/harddisk" CONFIG_ROOT "/eagle-usb/eagle-usb.conf", 99, 99);\r
+       unlink("/harddisk" CONFIG_ROOT "/eagle-usb/dsp_code_pots.bin");\r
+       unlink("/harddisk" CONFIG_ROOT "/eagle-usb/dsp_code_isdn.bin");\r
+       return 0;\r
+}\r
+\r
+int _fixdhcp_30() {\r
+       FILE *dhcpreadfile;\r
+       FILE *dhcpwritefile;\r
+       char dhcptemp[STRING_SIZE];\r
+\r
+       if (!(dhcpreadfile = fopen ("/harddisk" CONFIG_ROOT "/dhcp/dhcpd.conf", "r"))) return 1;\r
+       if (!(dhcpwritefile = fopen ("/harddisk" CONFIG_ROOT "/dhcp/dhcpd.conf.new", "w"))) \r
+       {\r
+               fclose(dhcpreadfile);\r
+               return 1;\r
+       }\r
+       fprintf (dhcpwritefile, "authoritative;\n");\r
+       fprintf (dhcpwritefile, "deny bootp;\n");\r
+       fprintf (dhcpwritefile, "ddns-update-style none;\n");\r
+       while (fgets (dhcptemp, STRING_SIZE, dhcpreadfile) != NULL) {\r
+               int write = 1;\r
+\r
+               /* so for us developers we skip already upgraded dhcp files */\r
+               if (!strncmp(dhcptemp, "authoritative", 13)) {\r
+                       write = 0;\r
+               }\r
+               /* so for us developers we skip already upgraded dhcp files */\r
+               if (!strncmp(dhcptemp, "ddns-update-style", 17)) {\r
+                       write = 0;\r
+               }\r
+               /* so for us developers we skip already upgraded dhcp files */\r
+               if (!strncmp(dhcptemp, "deny bootp", 10)) {\r
+                       write = 0;\r
+               }\r
+\r
+               if (write)\r
+                       fputs(dhcptemp, dhcpwritefile);\r
+       }\r
+\r
+       fclose(dhcpreadfile);\r
+       fclose(dhcpwritefile);\r
+\r
+       rename ("/harddisk" CONFIG_ROOT "/dhcp/dhcpd.conf.new",\r
+               "/harddisk" CONFIG_ROOT "/dhcp/dhcpd.conf");\r
+       chown  ("/harddisk" CONFIG_ROOT "/dhcp/dhcpd.conf", 99, 99);\r
+\r
+       /* This one will get converted again furthur down */\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "WINS=", "WINS1=");\r
+\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "START_ADDR=", "START_ADDR_GREEN=");\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "END_ADDR=", "END_ADDR_GREEN=");\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "DOMAIN_NAME=", "DOMAIN_NAME_GREEN=");\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "DEFAULT_LEASE_TIME=", "DEFAULT_LEASE_TIME_GREEN=");\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "MAX_LEASE_TIME=", "MAX_LEASE_TIME_GREEN=");\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "DNS1=", "DNS1_GREEN=");\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "DNS2=", "DNS2_GREEN=");\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "WINS1=", "WINS1_GREEN=");\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "WINS2=", "WINS2_GREEN=");\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "ENABLE=", "ENABLE_GREEN=");\r
+       replace("/harddisk" CONFIG_ROOT "/dhcp/settings", "range dynamic-bootp", "range");\r
+       chown  ("/harddisk" CONFIG_ROOT "/dhcp/settings", 99, 99);\r
+\r
+       if ((dhcpreadfile = fopen ("/harddisk" CONFIG_ROOT "/dhcp/enable", "r")))\r
+       {\r
+               fclose(dhcpreadfile);\r
+               rename ("/harddisk" CONFIG_ROOT "/dhcp/enable",\r
+                       "/harddisk" CONFIG_ROOT "/dhcp/enable_green");\r
+               chown  ("/harddisk" CONFIG_ROOT "/dhcp/enable_green", 99, 99);\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
+int _add_sshd_user() {\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel sshd");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupdel sshd");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupadd -g 74 sshd");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/useradd  -u 74 -g sshd -d /var/empty/sshd -s /bin/false -M sshd");\r
+    \r
+       return 0;\r
+}\r
+\r
+int _add_dnsmasq_user() {\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel dnsmasq");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupdel dnsmasq");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupadd -g 103 dnsmasq");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/useradd  -u 103 -g dnsmasq -d / -s /bin/false -M dnsmasq");\r
+    \r
+       return 0;\r
+}\r
+\r
+int _add_cron_user() {\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel cron");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupdel cron");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupadd -g 104 cron");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/useradd  -u 104 -g cron -d / -s /bin/false -M cron");\r
+    \r
+       return 0;\r
+}\r
+\r
+int _add_sysklogd_user() {\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel syslogd");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupdel syslogd");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupadd -g 105 syslogd");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/useradd  -u 105 -g syslogd -d / -s /bin/false -M syslogd");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel klogd");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupdel klogd");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupadd -g 106 klogd");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/useradd  -u 106 -g klogd -d / -s /bin/false -M klogd");\r
+    \r
+       return 0;\r
+}\r
+\r
+int _del_setup_user() {\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel setup");\r
+    \r
+       return 0;\r
+}\r
+\r
+int _create_nobody_dir(){\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/usermod -d /home/nobody nobody");\r
+\r
+       return 0;\r
+}\r
+\r
+int _del_useless_user_group()\r
+{\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel games");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupdel games");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel news");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupdel news");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel ftp");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel gopher");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel lp");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel uucp");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel adm");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupdel adm");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel operator");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel sync");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel shutdown");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/userdel halt");\r
+       mysystem("/bin/chroot /harddisk /usr/sbin/groupdel man");\r
+       return 0;\r
+}\r
+\r
+void _del_pulsardsl_dir()\r
+{\r
+       mysystem("/bin/chroot /harddisk /bin/rm -rf " CONFIG_ROOT "/pulsardsl");\r
+}\r
+\r
+void _del_fritzdsl_dir()\r
+{\r
+       mysystem("/bin/chroot /harddisk /bin/rm -rf " CONFIG_ROOT "/fritzdsl");\r
+}\r
+\r
+int _convert_vpn() {\r
+       int count=1;\r
+       FILE *vpn1, *vpn2;\r
+       char vpnip[STRING_SIZE] = "";\r
+       char greennetaddr[STRING_SIZE] = "";\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char vpnsrctemp[STRING_SIZE], vpndsttemp[STRING_SIZE];\r
+       char *name, *left, *left_nexthop, *left_subnet, *right, *right_nexthop, *right_subnet, *secret, *enabled, *compression;\r
+\r
+       if (!(vpn1 = fopen ("/harddisk" CONFIG_ROOT "/vpn/config", "r"))) return 1;\r
+       if (!(vpn2 = fopen ("/harddisk" CONFIG_ROOT "/vpn/config.new", "w"))) \r
+       {\r
+               fclose(vpn1);\r
+               return 1;\r
+       }\r
+\r
+       if (!(readkeyvalues(kv, "/harddisk" CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               fclose (vpn1);\r
+               fclose (vpn2);\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+\r
+       findkey(kv, "GREEN_NETADDRESS", greennetaddr);\r
+       freekeyvalues(kv);\r
+\r
+       kv = initkeyvalues();\r
+       if (!(readkeyvalues(kv, "/harddisk" CONFIG_ROOT "/vpn/settings")))\r
+       {\r
+               fclose (vpn1);\r
+               fclose (vpn2);\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }       \r
+       \r
+       /* if no VPN_IP is defined, we must turn it off to force the user\r
+        * to enter a value once upgraded */\r
+       findkey(kv, "VPN_IP", vpnip);\r
+       if (strlen(vpnip) == 0) {\r
+               replacekeyvalue(kv, "ENABLED", "off");\r
+               writekeyvalues(kv, "/harddisk" CONFIG_ROOT "/vpn/settings");\r
+       }\r
+       freekeyvalues(kv);\r
+\r
+        while (fgets (vpnsrctemp, STRING_SIZE, vpn1) != NULL) {\r
+               if (isdigit (vpnsrctemp[0])) {\r
+                       /* Already converted to new format */\r
+                       fputs(vpnsrctemp, vpn2);\r
+                       continue;\r
+               }\r
+\r
+               name          = NULL;\r
+               left          = NULL;\r
+               left_nexthop  = NULL;\r
+               left_subnet   = NULL;\r
+               right         = NULL;\r
+               right_nexthop = NULL;\r
+               right_subnet  = NULL;\r
+               secret        = NULL;\r
+               enabled       = NULL;\r
+               compression   = NULL;\r
+               \r
+               if (vpnsrctemp[strlen(vpnsrctemp) - 1] == '\n')\r
+                       vpnsrctemp[strlen(vpnsrctemp) - 1] = '\0';\r
+               name          = strtok (vpnsrctemp, ",");\r
+               left          = strtok (NULL, ",");\r
+               left_nexthop  = strtok (NULL, ",");\r
+               left_subnet   = strtok (NULL, ",");\r
+               right         = strtok (NULL, ",");\r
+               right_nexthop = strtok (NULL, ",");\r
+               right_subnet  = strtok (NULL, ",");\r
+               secret        = strtok (NULL, ",");\r
+               enabled       = strtok (NULL, ",");\r
+               compression   = strtok (NULL, ",");\r
+               if (!(name && left && left_subnet &&\r
+                       right && right_subnet &&\r
+                       secret && enabled && compression ))\r
+                       continue;\r
+\r
+               /* Try and guess what side IPCop is on; defaults to left */\r
+               if (strstr(greennetaddr, right_subnet)) {\r
+                       sprintf (vpndsttemp, "%d,%s,%s,,net,psk,%s,right,,%s,,%s,%s,,%s,,,,,,,,,,,,,RED\n",\r
+                                                       count, enabled, name, secret, right_subnet,\r
+                                                       left, left_subnet, compression);\r
+               } else {\r
+                       sprintf (vpndsttemp, "%d,%s,%s,,net,psk,%s,left,,%s,,%s,%s,,%s,,,,,,,,,,,,,RED\n",\r
+                                                       count, enabled, name, secret, left_subnet,\r
+                                                       right, right_subnet, compression);\r
+               }\r
+               fputs(vpndsttemp, vpn2);\r
+\r
+               count++;\r
+       }\r
+\r
+       /* Close source and destination vpn files */\r
+       fclose (vpn1);\r
+       fclose (vpn2);\r
+\r
+       /* Move the new vpn file */\r
+       rename ("/harddisk" CONFIG_ROOT "/vpn/config.new",\r
+               "/harddisk" CONFIG_ROOT "/vpn/config");\r
+       chown  ("/harddisk" CONFIG_ROOT "/vpn/config", 99, 99);\r
+\r
+       return 0;\r
+}\r
+\r
+void _convert_ppp_settings_V140() {\r
+       DIR *dirp;\r
+       struct dirent *dp;\r
+       char filename[STRING_SIZE];\r
+       \r
+       dirp = opendir( "/harddisk" CONFIG_ROOT "/ppp" );\r
+       while ( (dp = readdir( dirp )) != NULL ) {\r
+               if ( strstr( dp->d_name, "settings" ) == dp->d_name ) {\r
+                       snprintf (filename, STRING_SIZE-1, "%s/%s", \r
+                               "/harddisk" CONFIG_ROOT "/ppp", dp->d_name);\r
+                       replace (filename, "PERSISTENT=on", "RECONNECTION=persistent");\r
+                       replace (filename, "DIALONDEMAND=on", "RECONNECTION=dialondemand");\r
+                       replace (filename, "MODULATION=GDTM", "MODULATION=GDMT");\r
+                       chown (filename, 99, 99);\r
+               }       \r
+       }\r
+       (void) closedir( dirp );\r
+}\r
+\r
+void _convert_net_settings_V140(){\r
+       replace ("/harddisk" CONFIG_ROOT "/ethernet/settings", "eepro100", "e100");\r
+       chown   ("/harddisk" CONFIG_ROOT "/ethernet/settings", 99, 99);\r
+}\r
+\r
+void _convert_keymap() {\r
+       replace("/harddisk" CONFIG_ROOT "/main/settings", "KEYMAP=/lib/kbd", "KEYMAP=/usr/share/kbd");\r
+       replace("/harddisk" CONFIG_ROOT "/main/settings", ".kmap.gz", ".map.gz");\r
+       chown  ("/harddisk" CONFIG_ROOT "/main/settings", 99, 99);\r
+}\r
+\r
+void _convert_speedtouch() {\r
+       FILE *speedtchbootfile;\r
+       FILE *speedtchfirmfile;\r
+\r
+       if (( speedtchfirmfile = fopen ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v4.bin", "r")))\r
+       {\r
+               fclose (speedtchfirmfile);\r
+               if  ((speedtchbootfile = fopen ("/harddisk" CONFIG_ROOT "/alcatelusb/boot.v4.bin", "r")))  {\r
+                       fclose (speedtchbootfile);\r
+                       system("/bin/cat /harddisk" CONFIG_ROOT "/alcatelusb/boot.v4.bin "\r
+                               "/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v4.bin"\r
+                               "> /harddisk" CONFIG_ROOT "/alcatelusb/firmware.v4_b.bin");\r
+                       remove ("/harddisk" CONFIG_ROOT "/alcatelusb/boot.v4.bin");\r
+                       remove ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v4.bin");\r
+                       chown ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v4_b.bin", 99, 99);\r
+               }\r
+       }\r
+\r
+       if (( speedtchfirmfile = fopen ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v123.bin", "r"))) {\r
+               fclose (speedtchfirmfile);\r
+               system("/bin/cat /harddisk" CONFIG_ROOT "/alcatelusb/boot.v123.bin "\r
+                       "/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v123.bin"\r
+                       "> /harddisk" CONFIG_ROOT "/alcatelusb/firmware.v0123.bin");\r
+               remove ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v123.bin");\r
+       }\r
+\r
+       remove ("/harddisk" CONFIG_ROOT "/alcatelusb/boot.v123.bin");\r
+\r
+       rename ("/harddisk" CONFIG_ROOT "/alcatelusb/mgmt.o", "/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v0123.bin");\r
+       chown ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v0123.bin", 99, 99);\r
+}\r
+\r
+void _convert_isapnp() {\r
+       FILE *isapnpfile;\r
+\r
+       mkdir ("/harddisk" CONFIG_ROOT "/isapnp", S_IRWXU|S_IRWXG|S_IRWXO );\r
+       if (( isapnpfile = fopen ("/harddisk/etc/isapnp.conf", "r"))) {\r
+               fclose (isapnpfile);\r
+               rename ("/harddisk/etc/isapnp.conf", "/harddisk" CONFIG_ROOT "/isapnp/isapnp.conf");\r
+       } else {\r
+               if (( isapnpfile = fopen ("/harddisk" CONFIG_ROOT "/isapnp/isapnp.conf", "r"))) {\r
+                       fclose(isapnpfile);\r
+               } else {\r
+                       isapnpfile = fopen ("/harddisk" CONFIG_ROOT "/isapnp/isapnp.conf", "w");\r
+                       fclose(isapnpfile);\r
+               }\r
+       }\r
+}\r
+\r
+int upgrade_v130_v140() {\r
+       _del_setup_user();\r
+       _del_useless_user_group();\r
+       _add_logwatch_user();\r
+       _add_sshd_user();\r
+       _add_dnsmasq_user();\r
+       _add_cron_user();\r
+       _add_sysklogd_user();\r
+       _del_pulsardsl_dir();\r
+       _del_fritzdsl_dir();\r
+       _convert_vpn();\r
+       _handledomainname();\r
+       _fixsquid();\r
+       _fixeagleusb();\r
+       _create_nobody_dir();\r
+       _convert_ppp_settings_V140();\r
+       _convert_net_settings_V140();\r
+       _fixdhcp_30();\r
+       _convert_keymap();\r
+       _convert_speedtouch();\r
+       _convert_isapnp();\r
+\r
+       return 0;\r
+}\r
diff --git a/src/install+setup/install/usb.c b/src/install+setup/install/usb.c
new file mode 100644 (file)
index 0000000..61bf4b7
--- /dev/null
@@ -0,0 +1,141 @@
+/*\r
+ * This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * Copyright 2002: Mark Wormgoor <mark@wormgoor.com>\r
+ * \r
+ * $Id: usb.c,v 1.9.2.8 2005/12/10 00:18:23 franck78 Exp $\r
+ * \r
+ */\r
+\r
+#include "install.h"\r
+\r
+int usbuhci = 0;\r
+int usbohci = 0;\r
+int ehcihcd = 0;\r
+\r
+int initialize_usb() {\r
+    modprobe("sd_mod");\r
+    modprobe("sr_mod");\r
+    modprobe("usb-storage");\r
+\r
+    if (ehcihcd) {\r
+       rmmod("ehci-hcd");\r
+       ehcihcd = 0;\r
+    }\r
+    if (usbohci) {\r
+       rmmod("usb-ohci");\r
+       usbohci = 0;\r
+    }\r
+    if (usbuhci) {\r
+       rmmod("usb-uhci");\r
+       usbuhci = 0;\r
+    }\r
+\r
+    if (modprobe("ehci-hcd") == 0) ehcihcd = 1;\r
+    if (modprobe("usb-ohci") == 0) usbohci = 1;\r
+    if (modprobe("usb-uhci") == 0) usbuhci = 1;\r
+\r
+    modprobe("hid");\r
+    modprobe("keybdev");\r
+    return 0;\r
+}\r
+\r
+int write_usb_modules_conf() {\r
+    int index = 0;\r
+    FILE *handle;\r
+\r
+    if (!(handle = fopen("/harddisk/etc/modules.conf", "a")))\r
+       return 0;\r
+\r
+#if 0 /* we don't do this yet, because one of the drivers has a problem \r
+       * with it */\r
+    if (ehcihcd) {\r
+       fprintf(handle,"alias usb-controller");\r
+       if (index)\r
+               fprintf(handle,"%d",index);\r
+       fprintf(handle," ehci-hcd\n");\r
+       index++;\r
+    }\r
+#endif\r
+\r
+    if (usbohci) {\r
+       fprintf(handle,"alias usb-controller");\r
+       if (index)\r
+               fprintf(handle,"%d",index);\r
+       fprintf(handle," usb-ohci\n");\r
+       index++;\r
+    }\r
+\r
+    if (usbuhci) {\r
+       fprintf(handle,"alias usb-controller");\r
+       if (index)\r
+               fprintf(handle,"%d",index);\r
+       fprintf(handle," usb-uhci\n");\r
+       index++;\r
+    }\r
+    fclose(handle);\r
+    \r
+    return 0;\r
+}\r
+\r
+/* checkusb().\r
+    Scans the named partitions and returns true if USB-removable.\r
+    a bug? in "cat /proc/partitions" with superfloppy scheme device\r
+    make them appearing always with four 'false' partitions:\r
+    sda and sda1 sda2 sda3 sda4.\r
+    No easy way to decide if /dev/sda1 exists or not.\r
+*/\r
+int checkusb(char *partition)\r
+{\r
+       FILE *f = NULL;\r
+       char filename[STRING_SIZE];\r
+       char buffer[STRING_SIZE];\r
+       char *pchar = &buffer[0];\r
+       if (!(f = fopen("/proc/partitions", "r")))\r
+               return 0;\r
+\r
+       short int major = 0, minor = 0;                 \r
+       while (fgets(buffer, STRING_SIZE, f))   {\r
+           /* look for partition*/     \r
+           if (strstr (buffer, partition)) {\r
+               major = atoi (buffer);\r
+               if (major != 8) break ; /* not scsi */\r
+               //get minor\r
+               while (*pchar != '8') pchar++;\r
+               minor = atoi (++pchar);\r
+               break;\r
+           }\r
+       }\r
+       fclose(f);\r
+       if (major != 8) return 0; /* nothing found */\r
+       \r
+       //now check for usb-storage-MINOR\r
+       minor >>= 4; // get index from minor\r
+       sprintf (filename, "/proc/scsi/usb-storage-%d/%d", minor,minor);\r
+\r
+       if (!(f = fopen(filename, "r")))\r
+               return 0;\r
+       int count = 0;\r
+       while (fgets(buffer, STRING_SIZE, f))   {\r
+           if (strstr(buffer,"usb-storage")) count++;\r
+           if (strstr(buffer,"SCSI")) count++;\r
+           if (strstr(buffer,"Attached: Yes")) count++;\r
+       }\r
+       fclose(f);\r
+       \r
+       return (count==3 ? 1 : 0);\r
+}\r
diff --git a/src/install+setup/libsmooth/CVS/Entries b/src/install+setup/libsmooth/CVS/Entries
new file mode 100644 (file)
index 0000000..114f222
--- /dev/null
@@ -0,0 +1,8 @@
+/Makefile/1.4.2.1/Wed Jan 11 01:01:38 2006//TIPCOP_v1_4_0
+/langs.h.temp/1.4/Thu Dec 11 11:25:53 2003//TIPCOP_v1_4_0
+/libsmooth.h/1.4.2.3/Sun Oct 30 23:25:35 2005//TIPCOP_v1_4_0
+/main.c/1.6.2.9/Fri Dec  9 22:31:41 2005//TIPCOP_v1_4_0
+/makelangs.pl/1.4/Thu Dec 11 11:25:53 2003//TIPCOP_v1_4_0
+/netstuff.c/1.19.2.7/Fri Nov  5 23:40:17 2004//TIPCOP_v1_4_0
+/varval.c/1.4/Thu Dec 11 11:25:53 2003//TIPCOP_v1_4_0
+D
diff --git a/src/install+setup/libsmooth/CVS/Repository b/src/install+setup/libsmooth/CVS/Repository
new file mode 100644 (file)
index 0000000..119478e
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/install+setup/libsmooth
diff --git a/src/install+setup/libsmooth/CVS/Root b/src/install+setup/libsmooth/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/install+setup/libsmooth/CVS/Tag b/src/install+setup/libsmooth/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/install+setup/libsmooth/Makefile b/src/install+setup/libsmooth/Makefile
new file mode 100644 (file)
index 0000000..234f9b7
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# $Id: Makefile,v 1.4.2.1 2006/01/11 01:01:38 franck78 Exp $
+#
+
+CC      = gcc
+CFLAGS  = -O2 -Wall
+INCLUDE = -I/install/include
+
+LD      = ld
+LDFLAGS = -i
+
+COMPILE = $(CC) -c $(INCLUDE) $(CFLAGS)
+
+LINK = $(LD) $(LIBRARY) $(LDFLAGS)
+
+all : programs
+
+programs : lang_smooth libsmooth.o
+
+clean :
+       -rm -f *.o core langs.h
+
+lang_smooth :
+       for i in /usr/src/langs/*/install/lang_*.c ; do \
+           cp $$i ../libsmooth/; \
+       done
+       #build the tr_strings include file
+       awk 'BEGIN{ print"enum trstrings{" } $$0 ~/\/\* (TR_[A-Z0-9_]*)/ {print $$2"," }\
+           END{ print "};"  }'\
+           ../libsmooth/lang_en.c > ../libsmooth/langs.h
+
+######
+
+# Language modules are directly included in main.c
+OBJS=main.o netstuff.o varval.o
+
+libsmooth.o: $(OBJS)
+       $(LINK) $(OBJS) -o $@ $(LIBS)
+
+%.o : %.c
+       $(COMPILE) $< -o $@
diff --git a/src/install+setup/libsmooth/langs.h.temp b/src/install+setup/libsmooth/langs.h.temp
new file mode 100644 (file)
index 0000000..16d45d0
--- /dev/null
@@ -0,0 +1,15 @@
+/* SmoothWall libsmooth.
+ *
+ * This program is distributed under the terms of the GNU General Public
+ * Licence.  See the file COPYING for details.
+ *
+ * (c) Lawrence Manning, 2001
+ * This is a template (basically just a header). langs.h is generated via
+ * the Makefile, from lang_en.c.
+ * 
+ * $Id: langs.h.temp,v 1.4 2003/12/11 11:25:53 riddles Exp $
+ * 
+ */
+
+enum trstrings
+{
diff --git a/src/install+setup/libsmooth/libsmooth.h b/src/install+setup/libsmooth/libsmooth.h
new file mode 100644 (file)
index 0000000..5ed2dfc
--- /dev/null
@@ -0,0 +1,99 @@
+/* SmoothWall libsmooth.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Contains prototypes for library functions.\r
+ * \r
+ * $Id: libsmooth.h,v 1.4.2.3 2005/10/30 23:25:35 franck78 Exp $\r
+ * \r
+ */\r
+\r
+#ifndef ___LIBSMOOTH_H\r
+#define ___LIBSMOOTH_H\r
+\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <ctype.h>\r
+#include <wchar.h>\r
+#include <locale.h>\r
+#include <unistd.h>\r
+#include <sys/file.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <fcntl.h>\r
+#include <newt.h>\r
+#include <dirent.h>\r
+#include <sys/mount.h>\r
+\r
+#include <sys/socket.h>\r
+#include <netinet/in.h>\r
+#include <arpa/inet.h>\r
+\r
+#include <linux/cdrom.h>\r
+#include <sys/ioctl.h>\r
+\r
+#include "langs.h"\r
+\r
+#define STRING_SIZE 1023\r
+\r
+#define ADDRESS 0\r
+#define NETADDRESS 1\r
+#define NETMASK 2\r
+#define DHCP 3\r
+#define NETCHANGE_TOTAL 4\r
+\r
+struct keyvalue\r
+{\r
+       char key[STRING_SIZE];\r
+       char value[STRING_SIZE];\r
+       struct keyvalue *next;  \r
+};\r
+\r
+/* for stuff in net.c */\r
+struct nic\r
+{\r
+       char *description;\r
+       char *modulename;\r
+};\r
+\r
+/* libsmooth.c */\r
+void reboot(void);\r
+void stripnl(char *s);\r
+int mysystem(char *command);\r
+void errorbox(char *message);\r
+void statuswindow(int width, int height, char *title, char *text, ...);\r
+int runcommandwithprogress(int width, int height, char *title, char *command,\r
+       int lines, char *text, ...);\r
+int runcommandwithstatus(char *command, char *message);\r
+int runhiddencommandwithstatus(char *command, char *message);\r
+int checkformodule(char *module); \r
+int replace(char filename1[], char *from, char *to);\r
+char* get_version(void);\r
+                                \r
+/* netstuff.c */\r
+int changeaddress(struct keyvalue *kv, char *colour, int typeflag,\r
+       char *defaultdhcphostname);\r
+int gettype(char *type);\r
+int setnetaddress(struct keyvalue *kv, char *colour);\r
+void networkdialogcallbacktype(newtComponent cm, void *data);\r
+int interfacecheck(struct keyvalue *kv, char *colour);\r
+int probecards(char *driver, char *driveroptions);\r
+int choosecards(char *driver, char *driveroptions);\r
+int manualdriver(char *driver, char *driveroptions);\r
+int countcards(void);\r
+int findnicdescription(char *modulename, char *description);\r
+         \r
+/* data.c */\r
+struct keyvalue *initkeyvalues(void);\r
+void freekeyvalues(struct keyvalue *head);\r
+int readkeyvalues(struct keyvalue *head, char *filename);\r
+int writekeyvalues(struct keyvalue *head, char *filename);\r
+int findkey(struct keyvalue *head, char *key, char *value);\r
+void appendkeyvalue(struct keyvalue *head, char *key, char *value);\r
+void replacekeyvalue(struct keyvalue *head, char *key, char *value);\r
+\r
+#endif\r
+\r
diff --git a/src/install+setup/libsmooth/main.c b/src/install+setup/libsmooth/main.c
new file mode 100644 (file)
index 0000000..4d7eaab
--- /dev/null
@@ -0,0 +1,324 @@
+/* SmoothWall libsmooth.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Contains library functions.\r
+ * \r
+ * $Id: main.c,v 1.6.2.9 2005/12/09 22:31:41 franck78 Exp $\r
+ * \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+  \r
+/* reboot().  reboots. */\r
+void reboot(void)\r
+{\r
+       mysystem("/etc/halt");\r
+}\r
+\r
+/* stripnl().  Replaces \n with \0 */\r
+void stripnl(char *s)\r
+{\r
+       char *t = strchr(s, '\n');\r
+       if (t) *t = '\0';\r
+}\r
+\r
+/* Little wrapper. */\r
+int mysystem(char *command)\r
+{\r
+       char mycommand[STRING_SIZE];\r
+       \r
+       snprintf(mycommand, STRING_SIZE, "%s >>%s 2>>%s", command, mylog, mylog);\r
+       fprintf(flog, "Running command: %s\n", command);\r
+       return system(mycommand);\r
+}\r
+\r
+void errorbox(char *message)\r
+{\r
+       newtWinMessage(ctr[TR_ERROR], ctr[TR_OK], message);\r
+}\r
+\r
+void statuswindow(int width, int height, char *title, char *text, ...)\r
+{\r
+       newtComponent t, f;\r
+       char *buf = NULL;\r
+       int size = 0;\r
+       int i = 0;\r
+       va_list args;\r
+\r
+       va_start(args, text);\r
+\r
+       do {\r
+               size += 1000;\r
+               if (buf) free(buf);\r
+               buf = malloc(size);\r
+               i = vsnprintf(buf, size, text, args);\r
+       } while (i == size);\r
+\r
+       va_end(args);\r
+\r
+       newtCenteredWindow(width, height, title);\r
+\r
+       t = newtTextbox(1, 1, width - 2, height - 2, NEWT_TEXTBOX_WRAP);\r
+       newtTextboxSetText(t, buf);\r
+       f = newtForm(NULL, NULL, 0);\r
+\r
+       free(buf);\r
+\r
+       newtFormAddComponent(f, t);\r
+\r
+       newtDrawForm(f);\r
+       newtRefresh();\r
+       newtFormDestroy(f);\r
+}\r
+\r
+int runcommandwithstatus(char *command, char *message)\r
+{\r
+       int rc;\r
+       char title[STRING_SIZE];\r
+       \r
+       sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+       statuswindow(60, 4, title, message);\r
+       rc = mysystem(command);\r
+       newtPopWindow();\r
+       \r
+       return rc;\r
+}\r
+\r
+int runhiddencommandwithstatus(char *command, char *message)\r
+{\r
+       int rc;\r
+       char title[STRING_SIZE];\r
+       char mycommand[STRING_SIZE];\r
+       \r
+       sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+       statuswindow(60, 4, title, message);\r
+       snprintf(mycommand, STRING_SIZE, "%s >>%s 2>>%s", command, mylog, mylog);\r
+       fprintf(flog, "Running command: ***** HIDDEN *****\n");\r
+       rc = system(mycommand);\r
+       newtPopWindow();\r
+       \r
+       return rc;\r
+}\r
+\r
+/* This one borrowed from redhat installer. */\r
+int runcommandwithprogress(int width, int height, char *title, char *command,\r
+       int lines, char *text, ...)\r
+{\r
+       newtComponent t, f, s;\r
+       char *buf = NULL;\r
+       int size = 0;\r
+       int i = 0;\r
+       va_list args;\r
+       int rc = 0;\r
+       FILE *p;\r
+       char buffer[STRING_SIZE];\r
+       int progress = 0;\r
+       char mycommand[STRING_SIZE];\r
+\r
+       va_start(args, text);\r
+\r
+       do {\r
+               size += 1000;\r
+               if (buf) free(buf);\r
+               buf = malloc(size);\r
+               i = vsnprintf(buf, size, text, args);\r
+       } while (i == size);\r
+\r
+       va_end(args);\r
+\r
+       newtCenteredWindow(width, height, title);\r
+\r
+       t = newtTextbox(1, 1, width - 2, height - 2, NEWT_TEXTBOX_WRAP);\r
+       newtTextboxSetText(t, buf);\r
+       f = newtForm(NULL, NULL, 0);\r
+\r
+       free(buf);\r
+\r
+       newtFormAddComponent(f, t);\r
+       \r
+       s = newtScale(1, 3, width - 2, lines);\r
+       newtScaleSet(s, progress);\r
+       \r
+       newtFormAddComponent(f, s);\r
+\r
+       newtDrawForm(f);\r
+       newtRefresh();\r
+       \r
+       snprintf(mycommand, STRING_SIZE, "%s 2>>%s", command, mylog);\r
+       fprintf(flog, "Running command: %s\n", command);\r
+       \r
+       if (!(p = popen(command, "r")))\r
+       {\r
+               rc = 1;\r
+               goto EXIT;\r
+       }\r
+       setvbuf(p, NULL, _IOLBF, 255);\r
+       \r
+       while (fgets(buffer, STRING_SIZE, p))\r
+       {\r
+               newtScaleSet(s, ++progress);\r
+               newtRefresh();  \r
+               fprintf(flog, "%s", buffer);\r
+       }\r
+               \r
+       rc = pclose(p);\r
+       \r
+EXIT:\r
+       newtFormDestroy(f);\r
+       newtPopWindow();\r
+               \r
+       return rc;\r
+}\r
+\r
+int checkformodule(char *module)\r
+{\r
+       FILE *file;\r
+       char buffer[STRING_SIZE];\r
+       int result = 0;\r
+       \r
+       if (!(file = fopen("/proc/modules", "r")))\r
+       {\r
+               fprintf(flog, "Unable to open /proc/modules in checkformodule()\n");\r
+               return 0;\r
+       }\r
+       \r
+       while (fgets(buffer, STRING_SIZE, file))\r
+       {\r
+               if (strncmp(buffer, module, strlen(module)) == 0)\r
+               {\r
+                       if (buffer[strlen(module)] == ' ')\r
+                       {\r
+                               result = 1;\r
+                               goto EXIT;\r
+                       }\r
+               }\r
+       }\r
+       \r
+EXIT:\r
+       fclose(file);\r
+       \r
+       return result;\r
+}      \r
+               \r
+int _replace_string(char string[], char *from, char *to)\r
+{\r
+       int fromlen = strlen(from);\r
+       int tolen = strlen(to);\r
+       char *start, *p1, *p2;\r
+       for(start = string; *start != '\0'; start++)\r
+       {\r
+               p1 = from;\r
+               p2 = start;\r
+               while(*p1 != '\0')\r
+               {\r
+                       if(*p1 != *p2)\r
+                               break;\r
+                       p1++;\r
+                       p2++;\r
+               }\r
+               if(*p1 == '\0')\r
+               {\r
+                       if(fromlen != tolen)\r
+                       {\r
+                               memmove(start + tolen, start + fromlen,\r
+                                       strlen(start + fromlen) + 1);\r
+                       }\r
+                       for(p1 = to; *p1 != '\0'; p1++)\r
+                               *start++ = *p1;\r
+                       return 1;\r
+               }\r
+       }\r
+       return 0;\r
+}\r
+\r
+int replace(char filename1[], char *from, char *to)\r
+{\r
+       FILE *file1, *file2;\r
+       char filename2[1000];\r
+       char temp[1000];\r
+       int ret = 0;\r
+\r
+       /* Open the source and destination files */\r
+       strcpy (filename2, filename1);\r
+       strcat (filename2, ".new");\r
+       if (!(file1 = fopen (filename1, "r"))) return 1;\r
+       if (!(file2 = fopen (filename2, "w"))) {\r
+               fclose(file1);\r
+               return -1;\r
+       }\r
+\r
+       /* Start reading in lines */\r
+       while (fgets (temp, 1000, file1) != NULL) {\r
+\r
+               if (strlen(to) > 0) {\r
+                       /* Replace string */\r
+                       ret = _replace_string (temp, from, to);\r
+               \r
+                       /* Write string to new file */\r
+                       fputs(temp, file2);\r
+               } else {\r
+                       /* Remove string when to is NULL */\r
+                       if (!strstr(temp, from)) \r
+                               fputs(temp, file2);\r
+               }\r
+       }\r
+\r
+       /* Close source and destination */\r
+       fclose (file1);\r
+       fclose (file2);\r
+\r
+       /* Move the file */\r
+       rename (filename2, filename1);\r
+       \r
+       return (ret);\r
+}\r
+\r
+/* Include enabled languages */\r
+#ifdef  LANG_EN_ONLY\r
+        #include "lang_en.c"\r
+#else\r
+       #include "lang_bz.c"\r
+       #include "lang_cs.c"\r
+       #include "lang_da.c"\r
+       #include "lang_de.c"\r
+       #include "lang_en.c"\r
+       #include "lang_es.c"\r
+       #include "lang_fi.c"\r
+       #include "lang_fr.c"\r
+       #include "lang_el.c"\r
+       #include "lang_it.c"\r
+       #include "lang_hu.c"\r
+       #include "lang_la.c"\r
+       #include "lang_nl.c"\r
+       #include "lang_no.c"\r
+       #include "lang_pl.c"\r
+       #include "lang_pt.c"\r
+       #include "lang_sk.c"\r
+       #include "lang_so.c"\r
+       #include "lang_sv.c"\r
+       #include "lang_tr.c"\r
+       #include "lang_vi.c"\r
+\r
+#endif\r
+// returns a pointer to the actual running version number of IPCop.\r
+// Successive updates increase effective version but not VERSION !\r
+char g_title[STRING_SIZE] = "";\r
+char* get_version(void) {\r
+       FILE *f_title;\r
+       if ((f_title = fopen ("/etc/issue", "r"))) {\r
+               fgets (g_title, STRING_SIZE, f_title);\r
+               fclose (f_title);\r
+               if (g_title[strlen(g_title) - 1] == '\n') g_title[strlen(g_title) - 1] = '\0';\r
+       } else {\r
+               sprintf (g_title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+       }\r
+       return g_title;\r
+}\r
diff --git a/src/install+setup/libsmooth/makelangs.pl b/src/install+setup/libsmooth/makelangs.pl
new file mode 100644 (file)
index 0000000..4f6b31d
--- /dev/null
@@ -0,0 +1,13 @@
+#!/usr/bin/perl\r
+#\r
+# $Id: makelangs.pl,v 1.4 2003/12/11 11:25:53 riddles Exp $\r
+#\r
+# Used to process lang_en.c and build the enum type from comments embeded \r
+# within said source file.\r
+\r
+while (<>)\r
+{\r
+       if (/\/\* (TR_[A-Z0-9_]*)/) {\r
+               print "\t$1,\n"; }\r
+} \r
+print "};\n";\r
diff --git a/src/install+setup/libsmooth/netstuff.c b/src/install+setup/libsmooth/netstuff.c
new file mode 100644 (file)
index 0000000..090d025
--- /dev/null
@@ -0,0 +1,638 @@
+/* SmoothWall libsmooth.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Contains network library functions.\r
+ * \r
+ * $Id: netstuff.c,v 1.19.2.7 2004/11/05 23:40:17 alanh Exp $\r
+ * \r
+ */\r
+\r
+#include "libsmooth.h"\r
+#include <signal.h>\r
+\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+newtComponent networkform;\r
+newtComponent addressentry;\r
+newtComponent netmaskentry;\r
+newtComponent statictyperadio;\r
+newtComponent dhcptyperadio;\r
+newtComponent pppoetyperadio;\r
+newtComponent pptptyperadio;\r
+newtComponent dhcphostnameentry;\r
+\r
+/* acceptable character filter for IP and netmaks entry boxes */\r
+static int ip_input_filter(newtComponent entry, void * data, int ch, int cursor)\r
+{\r
+       if ((ch >= '0' && ch <= '9') || ch == '.' || ch == '\r' || ch >= NEWT_KEY_EXTRA_BASE)\r
+               return ch;\r
+       return 0;\r
+}\r
+\r
+/* This is a groovie dialog for showing network info.  Takes a keyvalue list,\r
+ * a colour and a dhcp flag.  Shows the current settings, and rewrites them\r
+ * if necessary.  DHCP flag sets wether to show the dhcp checkbox. */\r
+int changeaddress(struct keyvalue *kv, char *colour, int typeflag,\r
+       char *defaultdhcphostname)\r
+{\r
+       char *addressresult;\r
+       char *netmaskresult;\r
+       char *dhcphostnameresult;\r
+       struct newtExitStruct es;\r
+       newtComponent header;\r
+       newtComponent addresslabel;\r
+       newtComponent netmasklabel;\r
+       newtComponent dhcphostnamelabel;\r
+       newtComponent ok, cancel;       \r
+       char message[1000];\r
+       char temp[STRING_SIZE];\r
+       char addressfield[STRING_SIZE];\r
+       char netmaskfield[STRING_SIZE];\r
+       char typefield[STRING_SIZE];\r
+       char dhcphostnamefield[STRING_SIZE];\r
+       int error;\r
+       int result = 0;\r
+       char type[STRING_SIZE];\r
+       int startstatictype = 0;\r
+       int startdhcptype = 0;\r
+       int startpppoetype = 0;\r
+       int startpptptype = 0;\r
+               \r
+       /* Build some key strings. */\r
+       sprintf(addressfield, "%s_ADDRESS", colour);\r
+       sprintf(netmaskfield, "%s_NETMASK", colour);\r
+       sprintf(typefield, "%s_TYPE", colour);\r
+       sprintf(dhcphostnamefield, "%s_DHCP_HOSTNAME", colour);\r
+               \r
+       sprintf(message, ctr[TR_INTERFACE], colour);\r
+       newtCenteredWindow(44, (typeflag ? 18 : 12), message);\r
+       \r
+       networkform = newtForm(NULL, NULL, 0);\r
+\r
+       sprintf(message, ctr[TR_ENTER_THE_IP_ADDRESS_INFORMATION], colour);\r
+       header = newtTextboxReflowed(1, 1, message, 42, 0, 0, 0);\r
+       newtFormAddComponent(networkform, header);\r
+\r
+       /* See if we need a dhcp checkbox.  If we do, then we shift the contents\r
+        * of the window down two rows to make room. */\r
+       if (typeflag)\r
+       {\r
+               strcpy(temp, "STATIC"); findkey(kv, typefield, temp);\r
+               if (strcmp(temp, "STATIC") == 0) startstatictype = 1;\r
+               if (strcmp(temp, "DHCP") == 0) startdhcptype = 1;\r
+               if (strcmp(temp, "PPPOE") == 0) startpppoetype = 1;\r
+               if (strcmp(temp, "PPTP") == 0) startpptptype = 1;\r
+               statictyperadio = newtRadiobutton(2, 4, ctr[TR_STATIC], startstatictype, NULL);\r
+               dhcptyperadio = newtRadiobutton(2, 5, "DHCP", startdhcptype, statictyperadio);\r
+               pppoetyperadio = newtRadiobutton(2, 6, "PPPOE", startpppoetype, dhcptyperadio);\r
+               pptptyperadio = newtRadiobutton(2, 7, "PPTP", startpptptype, pppoetyperadio);\r
+               newtFormAddComponents(networkform, statictyperadio, dhcptyperadio, \r
+                       pppoetyperadio, pptptyperadio, NULL);\r
+               newtComponentAddCallback(statictyperadio, networkdialogcallbacktype, NULL);\r
+               newtComponentAddCallback(dhcptyperadio, networkdialogcallbacktype, NULL);\r
+               newtComponentAddCallback(pppoetyperadio, networkdialogcallbacktype, NULL);\r
+               newtComponentAddCallback(pptptyperadio, networkdialogcallbacktype, NULL);\r
+               dhcphostnamelabel = newtTextbox(2, 9, 18, 1, 0);\r
+               newtTextboxSetText(dhcphostnamelabel, ctr[TR_DHCP_HOSTNAME]);\r
+               strcpy(temp, defaultdhcphostname);\r
+               findkey(kv, dhcphostnamefield, temp);\r
+               dhcphostnameentry = newtEntry(20, 9, temp, 20, &dhcphostnameresult, 0);\r
+               newtFormAddComponent(networkform, dhcphostnamelabel);           \r
+               newtFormAddComponent(networkform, dhcphostnameentry);   \r
+               if (startdhcptype == 0)\r
+                       newtEntrySetFlags(dhcphostnameentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET);\r
+       }\r
+       /* Address */\r
+       addresslabel = newtTextbox(2, (typeflag ? 11 : 4) + 0, 18, 1, 0);\r
+       newtTextboxSetText(addresslabel, ctr[TR_IP_ADDRESS_PROMPT]);\r
+       strcpy(temp, "");\r
+       findkey(kv, addressfield, temp);\r
+       addressentry = newtEntry(20, (typeflag ? 11 : 4) + 0, temp, 20, &addressresult, 0);\r
+       newtEntrySetFilter(addressentry, ip_input_filter, NULL);\r
+       if (typeflag == 1 && startstatictype == 0 && startpptptype == 0 )\r
+               newtEntrySetFlags(addressentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET);\r
+       newtFormAddComponent(networkform, addresslabel);\r
+       newtFormAddComponent(networkform, addressentry);\r
+       \r
+       /* Netmask */\r
+       netmasklabel = newtTextbox(2, (typeflag ? 11 : 4) + 1, 18, 1, 0);\r
+       newtTextboxSetText(netmasklabel, ctr[TR_NETMASK_PROMPT]);\r
+       strcpy(temp, "255.255.255.0"); findkey(kv, netmaskfield, temp);\r
+       netmaskentry = newtEntry(20, (typeflag ? 11 : 4) + 1, temp, 20, &netmaskresult, 0);\r
+       newtEntrySetFilter(netmaskentry, ip_input_filter, NULL);\r
+       if (typeflag == 1 && startstatictype == 0 && startpptptype == 0 ) \r
+               newtEntrySetFlags(netmaskentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET);\r
+\r
+       newtFormAddComponent(networkform, netmasklabel);\r
+       newtFormAddComponent(networkform, netmaskentry);\r
+\r
+       /* Buttons. */\r
+       ok = newtButton(8, (typeflag ? 14 : 7), ctr[TR_OK]);\r
+       cancel = newtButton(26, (typeflag ? 14 : 7), ctr[TR_CANCEL]);\r
+\r
+       newtFormAddComponents(networkform, ok, cancel, NULL);\r
+\r
+       newtRefresh();\r
+       newtDrawForm(networkform);\r
+\r
+       do\r
+       {\r
+               error = 0;\r
+               newtFormRun(networkform, &es);\r
+       \r
+               if (es.u.co == ok)\r
+               {\r
+                       /* OK was pressed; verify the contents of each entry. */\r
+                       strcpy(message, ctr[TR_INVALID_FIELDS]);\r
+                       \r
+                       strcpy(type, "STATIC");\r
+                       if (typeflag)\r
+                               gettype(type);\r
+                       if (strcmp(type, "STATIC") == 0 || strcmp(type, "PPTP") == 0 )\r
+                       {               \r
+                               if (inet_addr(addressresult) == INADDR_NONE)\r
+                               {\r
+                                       strcat(message, ctr[TR_IP_ADDRESS_CR]);\r
+                                       error = 1;\r
+                               }\r
+                               if (inet_addr(netmaskresult) == INADDR_NONE)\r
+                               {\r
+                                       strcat(message, ctr[TR_NETWORK_MASK_CR]);\r
+                                       error = 1;\r
+                               }\r
+                       }\r
+                       if (strcmp(type, "DHCP") == 0)\r
+                       {\r
+                               if (!strlen(dhcphostnameresult))\r
+                               {\r
+                                       strcat(message, ctr[TR_DHCP_HOSTNAME_CR]);\r
+                                       error = 1;\r
+                               }\r
+                       }\r
+                       if (error)\r
+                               errorbox(message);\r
+                       else\r
+                       {\r
+                               /* No errors!  Set new values, depending on dhcp flag etc. */\r
+                               if (typeflag)\r
+                               {\r
+                                       replacekeyvalue(kv, dhcphostnamefield, dhcphostnameresult);\r
+                                       if (strcmp(type, "STATIC") != 0 && strcmp(type, "PPTP") != 0)\r
+                                       {\r
+                                               replacekeyvalue(kv, addressfield, "0.0.0.0");\r
+                                               replacekeyvalue(kv, netmaskfield, "0.0.0.0");\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               replacekeyvalue(kv, addressfield, addressresult);\r
+                                               replacekeyvalue(kv, netmaskfield, netmaskresult);\r
+                                       }\r
+                                       replacekeyvalue(kv, typefield, type);                                   \r
+                               }\r
+                               else\r
+                               {\r
+                                       replacekeyvalue(kv, addressfield, addressresult);\r
+                                       replacekeyvalue(kv, netmaskfield, netmaskresult);\r
+                               }\r
+                               \r
+                               setnetaddress(kv, colour);\r
+                               result = 1;\r
+                       }\r
+               }                       \r
+       }\r
+       while (error);\r
+\r
+       newtFormDestroy(networkform);\r
+       newtPopWindow();\r
+               \r
+       return result;\r
+}\r
+\r
+/* for pppoe: return string thats type STATIC, DHCP or PPPOE */\r
+int gettype(char *type)\r
+{\r
+       newtComponent selected = newtRadioGetCurrent(statictyperadio);\r
+       \r
+       if (selected == statictyperadio)\r
+               strcpy(type, "STATIC");\r
+       else if (selected == dhcptyperadio)\r
+               strcpy(type, "DHCP");\r
+       else if (selected == pppoetyperadio)\r
+               strcpy(type, "PPPOE");\r
+       else if (selected == pptptyperadio)\r
+               strcpy(type, "PPTP");\r
+       else\r
+               strcpy(type, "ERROR");\r
+       \r
+       return 0;\r
+}\r
+\r
+/* 0.9.9: calculates broadcast too. */\r
+int setnetaddress(struct keyvalue *kv, char *colour)\r
+{\r
+       char addressfield[STRING_SIZE];\r
+       char netaddressfield[STRING_SIZE];              \r
+       char netmaskfield[STRING_SIZE];\r
+       char broadcastfield[STRING_SIZE];\r
+       char address[STRING_SIZE];\r
+       char netmask[STRING_SIZE];\r
+       unsigned long int intaddress;\r
+       unsigned long int intnetaddress;\r
+       unsigned long int intnetmask;\r
+       unsigned long int intbroadcast;\r
+       struct in_addr temp;\r
+       char *netaddress;\r
+       char *broadcast;\r
+               \r
+       /* Build some key strings. */\r
+       sprintf(addressfield, "%s_ADDRESS", colour);\r
+       sprintf(netaddressfield, "%s_NETADDRESS", colour);\r
+       sprintf(netmaskfield, "%s_NETMASK", colour);\r
+       sprintf(broadcastfield, "%s_BROADCAST", colour);\r
+\r
+       strcpy(address, ""); findkey(kv, addressfield, address);        \r
+       strcpy(netmask, ""); findkey(kv, netmaskfield, netmask);                \r
+\r
+       /* Calculate netaddress. Messy.. */\r
+       intaddress = inet_addr(address);\r
+       intnetmask = inet_addr(netmask);\r
+       \r
+       intnetaddress = intaddress & intnetmask;\r
+       temp.s_addr = intnetaddress;    \r
+       netaddress = inet_ntoa(temp);\r
+       \r
+       replacekeyvalue(kv, netaddressfield, netaddress);\r
+       \r
+       intbroadcast = intnetaddress | ~intnetmask;\r
+       temp.s_addr = intbroadcast;\r
+       broadcast = inet_ntoa(temp);    \r
+       \r
+       replacekeyvalue(kv, broadcastfield, broadcast);\r
+       \r
+       return 1;\r
+}      \r
+\r
+/* Called when dhcp flag is toggled.  Toggle disabled state of other 3\r
+ * controls. */\r
+void networkdialogcallbacktype(newtComponent cm, void *data)\r
+{\r
+       char type[STRING_SIZE];\r
+       \r
+       gettype(type);\r
+\r
+       if (strcmp(type, "STATIC") != 0  && strcmp(type, "PPTP") != 0 )\r
+       {\r
+               newtEntrySetFlags(addressentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET);\r
+               newtEntrySetFlags(netmaskentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET);\r
+       }\r
+       else\r
+       {\r
+               newtEntrySetFlags(addressentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_RESET);\r
+               newtEntrySetFlags(netmaskentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_RESET);\r
+       }\r
+       if (strcmp(type, "DHCP") == 0)\r
+               newtEntrySetFlags(dhcphostnameentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_RESET);\r
+       else\r
+               newtEntrySetFlags(dhcphostnameentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET);               \r
+               \r
+       newtRefresh();\r
+       newtDrawForm(networkform);      \r
+}\r
+\r
+int interfacecheck(struct keyvalue *kv, char *colour)\r
+{\r
+       char temp[STRING_SIZE];\r
+       char colourfields[NETCHANGE_TOTAL][STRING_SIZE];\r
+       int c;\r
+\r
+       sprintf(colourfields[ADDRESS], "%s_ADDRESS", colour);\r
+       sprintf(colourfields[NETADDRESS], "%s_NETADDRESS", colour);\r
+       sprintf(colourfields[NETMASK], "%s_NETMASK", colour);\r
+\r
+       for (c = 0; c < 3; c++)\r
+       {\r
+               strcpy(temp, ""); findkey(kv, colourfields[c], temp);\r
+               if (!(strlen(temp))) return 0;\r
+       }\r
+       return 1;\r
+}\r
+       \r
+/* Network probing! */\r
+struct nic nics[] = {\r
+       { "100VG-AnyLan Network Adapters, HP J2585B, J2585A, etc", "hp100" },\r
+       { "3Com EtherLink III", "3c509" },\r
+       { "3Com 3c501", "3c501" },\r
+       { "3Com ISA EtherLink XL", "3c515" },\r
+       { "3Com 3c503 and 3c503/16", "3c503" },\r
+       { "3Com EtherLink MC (3c523)", "3c523" },\r
+       { "3Com EtherLink MC/32 (3c527)", "3c527" },\r
+       { "3Com EtherLink Plus (3c505)", "3c505" },\r
+       { "3Com EtherLink 16", "3c507" },\r
+       { "3Com \"Corkscrew\" EtherLink PCI III/XL, etc.", "3c59x" },\r
+       { "3Com Typhoon Family (3C990, 3CR990, and variants)", "typhoon" },\r
+       { "Adaptec Starfire/DuraLAN", "starfire" },\r
+       { "Alteon AceNIC/3Com 3C985/Netgear GA620 Gigabit", "acenic" },\r
+       { "AMD8111 based 10/100 Ethernet Controller", "amd8111e" },\r
+       { "AMD LANCE/PCnetAllied Telesis AT1500,  J2405A, etc", "lance" },\r
+       { "AMD PCnet32 and AMD PCnetPCI", "pcnet32" },\r
+       { "Ansel Communications EISA 3200", "ac3200" },\r
+       { "Apricot 680x0 VME, 82596 chipset", "82596" },\r
+       { "AT1700/1720", "at1700" },\r
+       { "Broadcom 4400", "b44" },\r
+       { "Broadcom Tigon3", "tg3" },\r
+       { "Cabletron E2100 series ethercards", "e2100" },\r
+       { "CATC USB NetMate-based Ethernet", "catc" },\r
+       { "CDC USB Ethernet", "CDCEther" },\r
+       { "Crystal LAN CS8900/CS8920", "cs89x0" },\r
+       { "Compaq Netelligent 10/100 TX PCI UTP, etc", "tlan" },\r
+       { "D-Link DL2000-based Gigabit Ethernet", "dl2k" },\r
+       { "Digi Intl. RightSwitch SE-X EISA and PCI", "dgrs" },\r
+       { "Digital 21x4x Tulip PCI ethernet cards, etc.", "tulip" },\r
+       { "Digital DEPCA & EtherWORKS,DEPCA, DE100, etc", "depca" },\r
+       { "DM9102 PCI Fast Ethernet Adapter", "dmfe", },\r
+       { "Dummy Network Card (testing)", "dummy", },\r
+       { "EtherWORKS DE425 TP/COAX EISA, DE434 TP PCI, etc.", "de4x5" },\r
+       { "EtherWORKS 3 (DE203, DE204 and DE205)", "ewrk3" },\r
+       { "HP PCLAN/plus", "hp-plus" },\r
+       { "HP LAN ethernet", "hp" },\r
+       { "IBM LANA", "ibmlana" },\r
+       { "ICL EtherTeam 16i/32" ,"eth16i" },\r
+       { "Intel i82557/i82558 PCI EtherExpressPro", "e100" },\r
+       { "Intel EtherExpress Cardbus Ethernet", "eepro100_cb" },\r
+       { "Intel i82595 ISA EtherExpressPro10/10+ driver" ,"eepro" },\r
+       { "Intel EtherExpress 16 (i82586)", "eexpress" },\r
+       { "Intel Panther onboard i82596 driver", "lp486e" },\r
+       { "Intel PRO/1000 Gigabit Ethernet", "e1000" },\r
+       { "KLSI USB KL5USB101-based", "kaweth" },\r
+       { "MiCom-Interlan NI5010 ethercard", "ni5010" },\r
+       { "Mylex EISA LNE390A/B", "lne390", },\r
+       { "Myson MTD-8xx PCI Ethernet", "fealnx" },\r
+       { "National Semiconductor DP8381x" , "natsemi" },\r
+       { "National Semiconductor DP83820" , "ns83820" },\r
+       { "NE/2 MCA", "ne2" },\r
+       { "NE2000 PCI cards, RealTEk RTL-8029, etc", "ne2k-pci" },\r
+       { "NE1000 / NE2000 (non-pci)", "ne" },\r
+       { "NI50 card (i82586 Ethernet chip)", "ni52" },\r
+       { "NI6510, ni6510 EtherBlaster", "ni65" },\r
+       { "Novell/Eagle/Microdyne NE3210 EISA", "ne3210" },\r
+       { "NVidia Nforce2 Driver", "forcedeth" },\r
+       { "Packet Engines Hamachi GNIC-II", "hamachi" },\r
+       { "Packet Engines Yellowfin Gigabit-NIC", "yellowfin" },\r
+       { "Pegasus/Pegasus-II USB ethernet", "pegasus" },\r
+       { "PureData PDUC8028,WD8003 and WD8013 compatibles", "wd" },\r
+       { "Racal-Interlan EISA ES3210", "es3210" },\r
+       { "RealTek RTL-8139 Fast Ethernet", "8139too" },\r
+       { "RealTek RTL-8139C+ series 10/100 PCI Ethernet", "8139cp" },\r
+       { "RealTek RTL-8150 USB ethernet", "rtl8150" },\r
+       { "RealTek RTL-8169 Gigabit Ethernet", "r8169" },\r
+       { "SiS 900 PCI", "sis900" },\r
+       { "SKnet MCA", "sk_mca" },\r
+       { "SMC 9000 series of ethernet cards", "smc9194" },\r
+       { "SMC EtherPower II", "epic100" },\r
+       { "SMC Ultra/EtherEZ ISA/PnP Ethernet", "smc-ultra" },\r
+       { "SMC Ultra32 EISA Ethernet", "smc-ultra32" },\r
+       { "SMC Ultra MCA Ethernet", "smc-mca" },\r
+       { "Sundance Alta", "sundance" },\r
+       { "SysKonnect SK-98xx", "sk98lin" },\r
+       { "Toshiba TC35815 Ethernet", "tc35815" },\r
+       { "Tulip chipset Cardbus Ethernet", "tulip_cb" },\r
+       { "USB Ethernet", "usbnet" },\r
+       { "VIA Rhine PCI Fast Ethernet, etc", "via-rhine" },\r
+       { "Winbond W89c840 Ethernet", "winbond-840" },\r
+       { "Xircom Cardbus Ethernet", "xircom_cb" },\r
+       { "Xircom (tulip-like) Cardbus Ethernet", "xircom_tulip_cb" },\r
+       { NULL, NULL }\r
+};\r
+\r
+/* Funky routine for loading all drivers (cept those are already loaded.). */\r
+int probecards(char *driver, char *driveroptions)\r
+{\r
+       int c = 0;\r
+       int n = 0;\r
+       char message[1000];\r
+       char commandstring[STRING_SIZE];\r
+\r
+       n = countcards();\r
+\r
+       /* PCMCIA Detection */\r
+       runcommandwithstatus("cardmgr -o", \r
+               ctr[TR_LOADING_PCMCIA]);\r
+\r
+       if (countcards() > n) \r
+       {\r
+               strcpy(driver, "pcmcia");\r
+               strcpy(driveroptions,"");\r
+               return 1;\r
+       }\r
+\r
+       /* Regular module detection */\r
+       while (nics[c].modulename)\r
+       {\r
+               /* Skip dummy driver during autoprobe as it always succeeds */\r
+               if (strncmp(nics[c].modulename, "dummy", strlen("dummy")))\r
+               {\r
+                       if (!checkformodule(nics[c].modulename)) {\r
+                               sprintf(commandstring, "/sbin/modprobe %s", nics[c].modulename);\r
+                               sprintf(message, ctr[TR_LOOKING_FOR_NIC], nics[c].description);\r
+                               if (runcommandwithstatus(commandstring, message) == 0)\r
+                               {\r
+                                       if (countcards() > n) {\r
+                                               strcpy(driver, nics[c].modulename);\r
+                                               strcpy(driveroptions, "");\r
+                                               return 1;\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+               c++;\r
+       }\r
+       strcpy(driver, "");\r
+       strcpy(driveroptions, "");\r
+       \r
+       return 0;\r
+}\r
+\r
+/* A listbox for selected the card... with a * MANUAL * entry at top for\r
+ * manual module names. */\r
+int choosecards(char *driver, char *driveroptions)\r
+{\r
+       int c;\r
+       char **sections;\r
+       int drivercount;\r
+       int rc;\r
+       int choice;\r
+       char commandstring[STRING_SIZE];\r
+       char message[STRING_SIZE];\r
+       int done = 0;\r
+       \r
+       /* Count 'em */\r
+       c = 0; drivercount = 0;\r
+       while (nics[c].modulename)\r
+       {\r
+               drivercount++;\r
+               c++;\r
+       }\r
+       drivercount++;\r
+       sections = malloc((drivercount + 1) * sizeof(char *));\r
+       \r
+       /* Copy 'em. */\r
+       c = 0;\r
+       sections[c] = ctr[TR_MANUAL];\r
+       c++;\r
+       while (nics[c - 1].modulename)\r
+       {\r
+               sections[c] = nics[c - 1].description;\r
+               c++;\r
+       }\r
+       sections[c] = NULL;\r
+       \r
+       strcpy(driver, "");\r
+       strcpy(driveroptions, "");\r
+       \r
+       done = 0; choice = 1;\r
+       while (!done)\r
+       {\r
+               rc = newtWinMenu(ctr[TR_SELECT_NETWORK_DRIVER],\r
+                       ctr[TR_SELECT_NETWORK_DRIVER_LONG], 50, 5, 5, 6,\r
+                       sections, &choice, ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+               if (rc == 0 || rc == 1)\r
+               {\r
+                       if (choice > 0)\r
+                       {\r
+                               /* Find module number, load module. */\r
+                               c = choice - 1; \r
+               \r
+                               if (!checkformodule(nics[c].modulename))\r
+                               {\r
+                                       sprintf(commandstring, "/sbin/modprobe %s", nics[c].modulename);\r
+                                       sprintf(message, ctr[TR_LOOKING_FOR_NIC], nics[c].description);\r
+                                       if (runcommandwithstatus(commandstring, message) == 0)\r
+                                       {\r
+                                               strcpy(driver, nics[c].modulename);\r
+                                               strcpy(driveroptions, "");\r
+                                               done = 1;\r
+                                       }\r
+                                       else\r
+                                               errorbox(ctr[TR_UNABLE_TO_LOAD_DRIVER_MODULE]);\r
+                               }\r
+                               else\r
+                                       errorbox(ctr[TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED]);\r
+                       }\r
+                       else\r
+                       {\r
+                               manualdriver(driver, driveroptions);\r
+                               if (strlen(driver))\r
+                                       done = 1;\r
+                       }\r
+               }\r
+               else\r
+                       done = 1;       \r
+       }\r
+\r
+       return 1;\r
+}\r
+\r
+/* Manual entry for gurus. */\r
+int manualdriver(char *driver, char *driveroptions)\r
+{\r
+       char *values[] = { NULL, NULL };        /* pointers for the values. */\r
+       struct newtWinEntry entries[] =\r
+               { { "", &values[0], 0,}, { NULL, NULL, 0 } };\r
+       int rc;\r
+       char commandstring[STRING_SIZE];\r
+       char *driverend;\r
+\r
+       strcpy(driver, "");\r
+       strcpy(driveroptions, "");\r
+       \r
+       rc = newtWinEntries(ctr[TR_SELECT_NETWORK_DRIVER], \r
+               ctr[TR_MODULE_PARAMETERS], 50, 5, 5, 40, entries, \r
+               ctr[TR_OK], ctr[TR_CANCEL], NULL);      \r
+       if (rc == 0 || rc == 1)\r
+       {\r
+               if (strlen(values[0]))\r
+               {\r
+                       sprintf(commandstring, "/sbin/modprobe %s", values[0]);\r
+                       if (runcommandwithstatus(commandstring, ctr[TR_LOADING_MODULE]) == 0)\r
+                       {\r
+                               if ((driverend = strchr(values[0], ' ')))\r
+                               {\r
+                                       *driverend = '\0';\r
+                                       strcpy(driver, values[0]);\r
+                                       strcpy(driveroptions, driverend + 1);\r
+                               }                               \r
+                               else\r
+                               {\r
+                                       strcpy(driver, values[0]);\r
+                                       strcpy(driveroptions, "");\r
+                               }\r
+                       }\r
+                       else\r
+                               errorbox(ctr[TR_UNABLE_TO_LOAD_DRIVER_MODULE]);\r
+               }\r
+               else\r
+                       errorbox(ctr[TR_MODULE_NAME_CANNOT_BE_BLANK]);\r
+       }\r
+       free(values[0]);\r
+\r
+       return 1;\r
+}\r
+\r
+/* Returns the total number of nics current available as ethX devices. */\r
+int countcards(void)\r
+{\r
+       FILE *file;\r
+       char buffer[STRING_SIZE];\r
+       char *start;\r
+       int niccount = 0;\r
+       \r
+       if (!(file = fopen("/proc/net/dev", "r")))\r
+       {\r
+               fprintf(flog, "Unable to open /proc/net/dev in countnics()\n");\r
+               return 0;\r
+       }\r
+       \r
+       while (fgets(buffer, STRING_SIZE, file))\r
+       {\r
+               start = buffer;\r
+               while (*start == ' ') start++;\r
+               if (strncmp(start, "eth", strlen("eth")) == 0)\r
+                       niccount++;\r
+               if (strncmp(start, "dummy", strlen("dummy")) == 0)\r
+                       niccount++;\r
+       }\r
+       \r
+       fclose(file);\r
+       \r
+       return niccount;\r
+}\r
+\r
+/* Finds the listed module name and copies the card description back. */\r
+int findnicdescription(char *modulename, char *description)\r
+{\r
+       int c = 0;\r
+       \r
+       if (strcmp(modulename, "pcmcia") == 0) {\r
+               strcpy(description, "PCMCIA Ethernet card");\r
+               return 0;\r
+       }\r
+\r
+       while (nics[c].description)\r
+       {\r
+               if (strcmp(nics[c].modulename, modulename) == 0)\r
+               {\r
+                       strcpy(description, nics[c].description);\r
+                       return 1;\r
+               }\r
+               c++;\r
+       }\r
+       \r
+       strcpy(description, "UNKNOWN");\r
+       return 0;\r
+}\r
diff --git a/src/install+setup/libsmooth/varval.c b/src/install+setup/libsmooth/varval.c
new file mode 100644 (file)
index 0000000..be3441f
--- /dev/null
@@ -0,0 +1,199 @@
+/* SmoothWall libsmooth.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Contains functions for manipulation files full of VAR=VAL pairs.\r
+ * \r
+ * 2003-07-27 Robert Kerr - Added cooperative file locking to prevent any\r
+ * clashes between setuid programs reading configuration and cgi scripts\r
+ * trying to write it\r
+ *\r
+ * $Id: varval.c,v 1.4 2003/12/11 11:25:53 riddles Exp $\r
+ * \r
+ */\r
\r
+#include "libsmooth.h"\r
+\r
+/* Sets up the list.  First entry is a dummy one to avoid having to special\r
+ * case empty lists. */\r
+struct keyvalue *initkeyvalues(void)\r
+{\r
+       struct keyvalue *head = malloc(sizeof(struct keyvalue));\r
+       \r
+       strcpy(head->key, "KEY");\r
+       strcpy(head->value, "VALUE");\r
+       head->next = NULL;\r
+       \r
+       return head;\r
+}\r
+\r
+/* Splats all the entries in a list. */\r
+void freekeyvalues(struct keyvalue *head)\r
+{\r
+       struct keyvalue *cur = head->next;\r
+       struct keyvalue *next;\r
+       \r
+       while (cur)\r
+       {\r
+               next = cur->next;\r
+               free(cur);\r
+               cur = next;\r
+       }\r
+}\r
+\r
+/* Reads from a file into a new list.  Uses appendkeyvalue to add entries.\r
+ * Will bomb out on a error (eg bad format line). */\r
+int readkeyvalues(struct keyvalue *head, char *filename)\r
+{\r
+       FILE *file;\r
+       char buffer[STRING_SIZE];\r
+       char *temp;\r
+       char *key, *value;\r
+       \r
+       if (!(file = fopen(filename, "r")))\r
+               return 0;\r
+               \r
+       if (flock(fileno(file), LOCK_SH))\r
+       {\r
+               fclose(file);\r
+               return 0;\r
+       }\r
+       \r
+       while (fgets(buffer, STRING_SIZE, file))\r
+       {\r
+               temp = buffer;\r
+               while (*temp)\r
+               {\r
+                       if (*temp =='\n') *temp = '\0';\r
+                       temp++;\r
+               }\r
+               if (!strlen(buffer))\r
+                       continue;\r
+               if (!(temp = strchr(buffer, '=')))\r
+               {\r
+                       flock(fileno(file), LOCK_UN);\r
+                       fclose(file);\r
+                       return 0;\r
+               }\r
+               *temp = '\0';\r
+               key = buffer; value = temp + 1;\r
+               /* See if string is quoted.  If so, skip first quote, and\r
+                * nuke the one at the end. */\r
+               if (value[0] == '\'')\r
+               {\r
+                       value++;\r
+                       if ((temp = strrchr(value, '\'')))\r
+                               *temp = '\0';\r
+                       else\r
+                       {\r
+                               flock(fileno(file), LOCK_UN);\r
+                               fclose(file);\r
+                               return 0;\r
+                       }\r
+               }\r
+               if (strlen(key))\r
+                       appendkeyvalue(head, key, value);\r
+       }\r
+       \r
+       flock(fileno(file), LOCK_UN);\r
+       fclose(file);\r
+\r
+       return 1;\r
+}\r
+\r
+/* Writes out a list to a file.  Easy. */\r
+int writekeyvalues(struct keyvalue *head, char *filename)\r
+{\r
+       FILE *file;\r
+       struct keyvalue *cur = head->next;\r
+       \r
+       if (!(file = fopen(filename, "w")))\r
+               return 0;\r
+               \r
+       if (flock(fileno(file), LOCK_EX))\r
+       {\r
+               fclose(file);\r
+               return 0;\r
+       }\r
+       \r
+               \r
+       while (cur)\r
+       {\r
+               /* No space in value?  If there is, we need to quote the value\r
+                * so the shell can read it. */\r
+               if (!strchr(cur->value, ' '))\r
+                       fprintf(file, "%s=%s\n", cur->key, cur->value);\r
+               else\r
+                       fprintf(file, "%s=\'%s\'\n", cur->key, cur->value);\r
+               cur = cur->next;\r
+       }\r
+       flock(fileno(file), LOCK_UN);\r
+       fclose(file);\r
+       \r
+       return 1;\r
+}\r
+\r
+/* Finds a key and copies the value back.  value must be at least STRING_SIZE\r
+ * long. Would be nice to have a func that just returns a pointer to the value?\r
+ */\r
+int findkey(struct keyvalue *head, char *key, char *value)\r
+{\r
+       struct keyvalue *cur = head->next;\r
+\r
+       while (cur)\r
+       {\r
+               if (strcmp(key, cur->key) == 0)\r
+               {\r
+                       strncpy(value, cur->value, STRING_SIZE);\r
+                       value[STRING_SIZE-1] = '\0';\r
+                       return 1;\r
+               }\r
+               cur = cur->next;\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
+/* Appends a entry.  Not very efficent because it rescans the list looking\r
+ * for the end.  Maybe fix this later. */\r
+void appendkeyvalue(struct keyvalue *head, char *key, char *value)\r
+{\r
+       struct keyvalue *new = malloc(sizeof(struct keyvalue));\r
+       struct keyvalue *cur = head->next;\r
+       struct keyvalue *tail = head;\r
+\r
+       strncpy(new->key, key, STRING_SIZE);\r
+       strncpy(new->value, value, STRING_SIZE);\r
+       new->key[STRING_SIZE-1] = '\0';\r
+       new->value[STRING_SIZE-1] = '\0';\r
+       new->next = NULL;\r
+\r
+       while (cur)\r
+       {\r
+               tail = cur;\r
+               cur = cur->next;\r
+       }\r
+       tail->next = new;\r
+}\r
+\r
+/* Otherwrites a key with a new value, or if it dosn't exist, appends it\r
+ * on the end. */\r
+void replacekeyvalue(struct keyvalue *head, char *key, char *value)\r
+{\r
+       struct keyvalue *cur = head->next;\r
+\r
+       while (cur)\r
+       {\r
+               if (strcmp(cur->key, key) == 0)\r
+               {\r
+                       strncpy(cur->value, value, STRING_SIZE);\r
+                       cur->value[STRING_SIZE-1] = '\0';\r
+                       return;\r
+               }\r
+               cur = cur->next;\r
+       }\r
+\r
+       appendkeyvalue(head, key, value);\r
+}\r
diff --git a/src/install+setup/setup/CVS/Entries b/src/install+setup/setup/CVS/Entries
new file mode 100644 (file)
index 0000000..c4e6b7c
--- /dev/null
@@ -0,0 +1,13 @@
+/Makefile/1.3/Thu Dec 11 11:25:54 2003//TIPCOP_v1_4_0
+/dhcp.c/1.9.2.3/Fri Dec  3 06:46:50 2004//TIPCOP_v1_4_0
+/domainname.c/1.7.2.1/Wed Apr 14 22:05:41 2004//TIPCOP_v1_4_0
+/hostname.c/1.6.2.1/Wed Apr 14 22:05:41 2004//TIPCOP_v1_4_0
+/isdn.c/1.6.2.1/Wed Apr 14 22:05:41 2004//TIPCOP_v1_4_0
+/keymap.c/1.9.2.1/Wed Apr 14 22:05:41 2004//TIPCOP_v1_4_0
+/main.c/1.4.2.7/Thu Dec  1 20:13:08 2005//TIPCOP_v1_4_0
+/misc.c/1.5.2.3/Thu Aug 25 17:51:42 2005//TIPCOP_v1_4_0
+/networking.c/1.5.2.6/Mon Feb  6 22:00:13 2006//TIPCOP_v1_4_0
+/passwords.c/1.5.2.1/Wed Apr 14 22:05:41 2004//TIPCOP_v1_4_0
+/setup.h/1.4/Thu Dec 11 11:25:54 2003//TIPCOP_v1_4_0
+/timezone.c/1.4.2.1/Wed Apr 14 22:05:41 2004//TIPCOP_v1_4_0
+D
diff --git a/src/install+setup/setup/CVS/Repository b/src/install+setup/setup/CVS/Repository
new file mode 100644 (file)
index 0000000..a7fc216
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/install+setup/setup
diff --git a/src/install+setup/setup/CVS/Root b/src/install+setup/setup/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/install+setup/setup/CVS/Tag b/src/install+setup/setup/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/install+setup/setup/Makefile b/src/install+setup/setup/Makefile
new file mode 100644 (file)
index 0000000..33a61e0
--- /dev/null
@@ -0,0 +1,33 @@
+#
+# $Id: Makefile,v 1.3 2003/12/11 11:25:54 riddles Exp $
+#
+
+CC      = gcc
+CFLAGS  = -O2 -Wall
+INCLUDE = 
+
+LD      = gcc
+LDFLAGS = 
+LIBS    = -lnewt -lslang
+
+COMPILE = $(CC) -c $(INCLUDE) $(CFLAGS)
+
+LINK = $(LD) $(LDFLAGS)
+
+all : programs
+
+programs : setup
+
+clean :
+       -rm -f *.o setup core
+
+######
+
+OBJS=main.o hostname.o domainname.o passwords.o isdn.o networking.o misc.o \
+       dhcp.o keymap.o timezone.o ../libsmooth/libsmooth.o
+
+setup: $(OBJS)
+       $(LINK) $(OBJS) -o $@ $(LIBS)
+
+%.o : %.c
+       $(COMPILE) $< -o $@
diff --git a/src/install+setup/setup/dhcp.c b/src/install+setup/setup/dhcp.c
new file mode 100644 (file)
index 0000000..8f7438e
--- /dev/null
@@ -0,0 +1,262 @@
+/* SmoothWall setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Stuff for setting up the DHCP server from the setup prog.\r
+ * \r
+ * $Id: dhcp.c,v 1.9.2.3 2004/12/03 06:46:50 eoberlander Exp $\r
+ * \r
+ */\r
\r
+#include "setup.h"\r
+\r
+#define TOP 4\r
+\r
+#define START_ADDRESS 0\r
+#define END_ADDRESS 1\r
+#define PRIMARY_DNS 2\r
+#define SECONDARY_DNS 3\r
+#define DEFAULT_LEASE_TIME 4\r
+#define MAX_LEASE_TIME 5\r
+#define DOMAIN_NAME_SUFFIX 6\r
+#define MAX_BOXES 7\r
+\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+extern int automode;\r
+\r
+newtComponent dhcpform;\r
+newtComponent entries[MAX_BOXES];\r
+newtComponent enabledcheckbox;\r
+\r
+void dhcpdialogcallbackdhcp(newtComponent cm, void *data);\r
+\r
+int handledhcp(void)\r
+{\r
+       char *results[MAX_BOXES];\r
+       char enabledresult;\r
+       char startenabled;\r
+       struct newtExitStruct es;\r
+       newtComponent header;\r
+       newtComponent labels[MAX_BOXES];\r
+       newtComponent ok, cancel;       \r
+       char message[1000];\r
+       char *labeltexts[MAX_BOXES] = { ctr[TR_START_ADDRESS], ctr[TR_END_ADDRESS],\r
+               ctr[TR_PRIMARY_DNS], ctr[TR_SECONDARY_DNS], ctr[TR_DEFAULT_LEASE],\r
+               ctr[TR_MAX_LEASE], ctr[TR_DOMAIN_NAME_SUFFIX] };\r
+       char *varnames[MAX_BOXES] = { "START_ADDR_GREEN", "END_ADDR_GREEN", \r
+               "DNS1_GREEN", "DNS2_GREEN",\r
+               "DEFAULT_LEASE_TIME_GREEN", "MAX_LEASE_TIME_GREEN", \r
+               "DOMAIN_NAME_GREEN"};\r
+       char defaults[MAX_BOXES][STRING_SIZE]; \r
+       int result;\r
+       int c;\r
+       char temp[STRING_SIZE];\r
+       struct keyvalue *mainkv = initkeyvalues();\r
+       struct keyvalue *dhcpkv = initkeyvalues();\r
+       struct keyvalue *ethernetkv = initkeyvalues();\r
+       int error;\r
+       FILE *file;\r
+       char greenaddress[STRING_SIZE]; \r
+       char greennetaddress[STRING_SIZE];\r
+       char greennetmask[STRING_SIZE];\r
+       \r
+       memset(defaults, 0, sizeof(char) * STRING_SIZE * MAX_BOXES);\r
+       \r
+       if (!(readkeyvalues(dhcpkv, CONFIG_ROOT "/dhcp/settings")))\r
+       {\r
+               freekeyvalues(dhcpkv);\r
+               freekeyvalues(ethernetkv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+       if (!(readkeyvalues(ethernetkv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               freekeyvalues(dhcpkv);\r
+               freekeyvalues(ethernetkv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+       if (!(readkeyvalues(mainkv, CONFIG_ROOT "/main/settings")))\r
+       {\r
+               freekeyvalues(dhcpkv);\r
+               freekeyvalues(ethernetkv);\r
+               freekeyvalues(mainkv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+\r
+       /* Set default values. */       \r
+       findkey(ethernetkv, "GREEN_ADDRESS", defaults[PRIMARY_DNS]);\r
+       findkey(mainkv, "DOMAINNAME", defaults[DOMAIN_NAME_SUFFIX]);\r
+       strcpy(defaults[DEFAULT_LEASE_TIME], "60");\r
+       strcpy(defaults[MAX_LEASE_TIME], "120");\r
+\r
+       sprintf(message, ctr[TR_DHCP_SERVER_CONFIGURATION]);\r
+       newtCenteredWindow(55, 18, message);\r
+\r
+       dhcpform = newtForm(NULL, NULL, 0);\r
+       \r
+       sprintf(message, ctr[TR_CONFIGURE_DHCP]);\r
+       header = newtTextboxReflowed(1, 1, message, 52, 0, 0, 0);\r
+       newtFormAddComponent(dhcpform, header);\r
+\r
+       strcpy(temp, ""); findkey(dhcpkv, "ENABLE_GREEN", temp);\r
+       if (strcmp(temp, "on") == 0)\r
+               startenabled = '*';\r
+       else\r
+               startenabled = ' ';\r
+       enabledcheckbox = newtCheckbox(2, TOP + 0, ctr[TR_ENABLED], startenabled, " *", &enabledresult);\r
+       newtFormAddComponent(dhcpform, enabledcheckbox);\r
+       newtComponentAddCallback(enabledcheckbox, dhcpdialogcallbackdhcp, NULL);                \r
+\r
+       for (c = 0; c < MAX_BOXES; c++)\r
+       {\r
+               labels[c] = newtTextbox(2, TOP + 2 + c, 33, 1, 0);\r
+               newtTextboxSetText(labels[c], labeltexts[c]);\r
+               newtFormAddComponent(dhcpform, labels[c]);                              \r
+               strcpy(temp, defaults[c]); findkey(dhcpkv, varnames[c], temp);\r
+               entries[c] = newtEntry(34, TOP + 2 + c, temp, 18, &results[c], 0);\r
+               newtFormAddComponent(dhcpform, entries[c]);             \r
+               if (startenabled == ' ')\r
+                       newtEntrySetFlags(entries[c], NEWT_FLAG_DISABLED, NEWT_FLAGS_SET);                      \r
+               \r
+       }\r
+       \r
+       ok = newtButton(10, c + 7, ctr[TR_OK]);\r
+       cancel = newtButton(34, c + 7, ctr[TR_CANCEL]);\r
+\r
+       newtFormAddComponents(dhcpform, ok, cancel, NULL);\r
+       \r
+       do\r
+       {\r
+               error = 0;\r
+               newtFormRun(dhcpform, &es);\r
+       \r
+               if (es.u.co == ok)\r
+               {\r
+                       /* OK was pressed; verify the contents of each entry. */                \r
+                       if (enabledresult == '*')\r
+                       {\r
+                               strcpy(message, ctr[TR_INVALID_FIELDS]);                        \r
+                               if (inet_addr(results[START_ADDRESS]) == INADDR_NONE)\r
+                               {\r
+                                       strcat(message, ctr[TR_START_ADDRESS_CR]);\r
+                                       error = 1;\r
+                               }\r
+                               if (inet_addr(results[END_ADDRESS]) == INADDR_NONE)\r
+                               {\r
+                                       strcat(message, ctr[TR_END_ADDRESS_CR]);\r
+                                       error = 1;\r
+                               }\r
+                               if (strlen(results[SECONDARY_DNS]))\r
+                               {\r
+                                       if (inet_addr(results[PRIMARY_DNS]) == INADDR_NONE)\r
+                                       {\r
+                                               strcat(message, ctr[TR_PRIMARY_DNS_CR]);\r
+                                               error = 1;\r
+                                       }\r
+                               }\r
+                               if (strlen(results[SECONDARY_DNS]))\r
+                               {\r
+                                       if (inet_addr(results[SECONDARY_DNS]) == INADDR_NONE)\r
+                                       {\r
+                                               strcat(message, ctr[TR_SECONDARY_DNS_CR]);\r
+                                               error = 1;\r
+                                       }\r
+                               }\r
+                               if (!(atol(results[DEFAULT_LEASE_TIME])))\r
+                               {\r
+                                       strcat(message, ctr[TR_DEFAULT_LEASE_CR]);\r
+                                       error = 1;\r
+                               }\r
+                               if (!(atol(results[MAX_LEASE_TIME])))\r
+                               {\r
+                                       strcat(message, ctr[TR_MAX_LEASE_CR]);\r
+                                       error = 1;\r
+                               }\r
+                       }                               \r
+                       \r
+                       if (error)\r
+                               errorbox(message);\r
+                       else\r
+                       {\r
+                               for (c = 0; c < MAX_BOXES; c++)\r
+                                       replacekeyvalue(dhcpkv, varnames[c], results[c]);\r
+                               if (enabledresult == '*')\r
+                               {\r
+                                       replacekeyvalue(dhcpkv, "ENABLE_GREEN", "on");\r
+                                       fclose(fopen(CONFIG_ROOT "/dhcp/enable_green", "w"));\r
+                                       chown(CONFIG_ROOT "/dhcp/enable_green", 99, 99);\r
+                               }\r
+                               else\r
+                               {\r
+                                       replacekeyvalue(dhcpkv, "ENABLE_GREEN", "off");\r
+                                       unlink(CONFIG_ROOT "/dhcp/enable_green");\r
+                               }\r
+                               replacekeyvalue(dhcpkv, "VALID", "yes");\r
+                               writekeyvalues(dhcpkv, CONFIG_ROOT "/dhcp/settings");\r
+                               \r
+                               findkey(ethernetkv, "GREEN_ADDRESS", greenaddress);                             \r
+                               findkey(ethernetkv, "GREEN_NETADDRESS", greennetaddress);\r
+                               findkey(ethernetkv, "GREEN_NETMASK", greennetmask);\r
+                       \r
+                               file = fopen(CONFIG_ROOT "/dhcp/dhcpd.conf", "w");\r
+                               fprintf(file, "ddns-update-style none;\n");\r
+                               fprintf(file, "subnet %s netmask %s\n", greennetaddress, greennetmask);\r
+                               fprintf(file, "{\n");\r
+                               fprintf(file, "\toption subnet-mask %s;\n", greennetmask);\r
+                               fprintf(file, "\toption domain-name \"%s\";\n", results[DOMAIN_NAME_SUFFIX]);           \r
+                               fprintf(file, "\toption routers %s;\n", greenaddress);\r
+                               if (strlen(results[PRIMARY_DNS]))\r
+                               {\r
+                                       fprintf(file, "\toption domain-name-servers ");\r
+                                       fprintf(file, "%s", results[PRIMARY_DNS]);\r
+                                       if (strlen(results[SECONDARY_DNS]))\r
+                                               fprintf(file, ", %s", results[SECONDARY_DNS]);\r
+                                       fprintf(file, ";\n");\r
+                               }\r
+                               \r
+                               fprintf(file, "\trange %s %s;\n",       results[START_ADDRESS], results[END_ADDRESS]);\r
+                               fprintf(file, "\tdefault-lease-time %d;\n", (int) atol(results[DEFAULT_LEASE_TIME]) * 60);\r
+                               fprintf(file, "\tmax-lease-time %d;\n", (int) atol(results[MAX_LEASE_TIME]) * 60);\r
+                               fprintf(file, "}\n");\r
+                               fclose(file);\r
+                               chown(CONFIG_ROOT "/dhcp/dhcpd.conf", 99, 99);\r
+                               if (automode == 0)\r
+                                       mysystem("/usr/local/bin/restartdhcp");\r
+                       }\r
+                       result = 1;\r
+               }\r
+               else\r
+                       result = 0;\r
+       }               \r
+       while (error);\r
+       \r
+       newtFormDestroy(dhcpform);\r
+       newtPopWindow();\r
+       \r
+       freekeyvalues(dhcpkv);\r
+       freekeyvalues(ethernetkv);\r
+       freekeyvalues(mainkv);\r
+       \r
+       return result;\r
+}\r
+\r
+/* Called when enabled flag is toggled.  Toggle disabled state of other 3\r
+ * controls. */\r
+void dhcpdialogcallbackdhcp(newtComponent cm, void *data)\r
+{\r
+       int c;\r
+       \r
+       for (c = 0; c < MAX_BOXES; c++)\r
+               newtEntrySetFlags(entries[c], NEWT_FLAG_DISABLED, NEWT_FLAGS_TOGGLE);\r
+               \r
+       newtRefresh();\r
+       newtDrawForm(dhcpform); \r
+}\r
diff --git a/src/install+setup/setup/domainname.c b/src/install+setup/setup/domainname.c
new file mode 100644 (file)
index 0000000..7ecce87
--- /dev/null
@@ -0,0 +1,72 @@
+/* IPCop setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * $Id: domainname.c\r
+ * \r
+ */\r
\r
+#include "setup.h"\r
\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+extern int automode;\r
+\r
+int handledomainname(void)\r
+{\r
+       char domainname[STRING_SIZE] = "localdomain";\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char *values[] = { domainname, NULL };  /* pointers for the values. */\r
+       struct newtWinEntry entries[] =\r
+               { { "", &values[0], 0,}, { NULL, NULL, 0 } };\r
+       int rc;\r
+       int result;\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }       \r
+       \r
+       findkey(kv, "DOMAINNAME", domainname);\r
+       \r
+       for (;;)\r
+       {       \r
+               rc = newtWinEntries(ctr[TR_DOMAINNAME], ctr[TR_ENTER_DOMAINNAME],\r
+                       50, 5, 5, 40, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);       \r
+               \r
+               if (rc == 1)\r
+               {\r
+                       strcpy(domainname, values[0]);\r
+                       if (!(strlen(domainname)))\r
+                               errorbox(ctr[TR_DOMAINNAME_CANNOT_BE_EMPTY]);\r
+                       else if (strchr(domainname, ' '))\r
+                               errorbox(ctr[TR_DOMAINNAME_CANNOT_CONTAIN_SPACES]);\r
+                       else if (strlen(domainname) != strspn(domainname,\r
+                               "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-."))\r
+                               errorbox(ctr[TR_DOMAINNAME_NOT_VALID_CHARS]);\r
+                       else\r
+                       {\r
+                               replacekeyvalue(kv, "DOMAINNAME", domainname);\r
+                               writekeyvalues(kv, CONFIG_ROOT "/main/settings");\r
+                               writehostsfiles();\r
+                               result = 1;\r
+                               break;\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       result = 0;\r
+                       break;\r
+               }\r
+       }\r
+       free(values[0]);\r
+       freekeyvalues(kv);\r
+       \r
+       return result;\r
+}      \r
diff --git a/src/install+setup/setup/hostname.c b/src/install+setup/setup/hostname.c
new file mode 100644 (file)
index 0000000..97dc2de
--- /dev/null
@@ -0,0 +1,76 @@
+/* SmoothWall setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Stuff for setting the hostname.\r
+ * \r
+ * $Id: hostname.c,v 1.6.2.1 2004/04/14 22:05:41 gespinasse Exp $\r
+ * \r
+ */\r
\r
+#include "setup.h"\r
\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+extern int automode;\r
+\r
+int handlehostname(void)\r
+{\r
+       char hostname[STRING_SIZE] = "";\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char *values[] = { hostname, NULL };    /* pointers for the values. */\r
+       struct newtWinEntry entries[] =\r
+               { { "", &values[0], 0,}, { NULL, NULL, 0 } };\r
+       int rc;\r
+       int result;\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }       \r
+       \r
+       strcpy(hostname, SNAME);\r
+       findkey(kv, "HOSTNAME", hostname);\r
+       \r
+       for (;;)\r
+       {\r
+               rc = newtWinEntries(ctr[TR_HOSTNAME], ctr[TR_ENTER_HOSTNAME],\r
+                       50, 5, 5, 40, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+               \r
+               if (rc == 1)\r
+               {\r
+                       strcpy(hostname, values[0]);\r
+                       if (!(strlen(hostname)))\r
+                               errorbox(ctr[TR_HOSTNAME_CANNOT_BE_EMPTY]);\r
+                       else if (strchr(hostname, ' '))\r
+                               errorbox(ctr[TR_HOSTNAME_CANNOT_CONTAIN_SPACES]);\r
+                       else if (strlen(hostname) != strspn(hostname,\r
+                               "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-"))\r
+                               errorbox(ctr[TR_HOSTNAME_NOT_VALID_CHARS]);\r
+                       else\r
+                       {\r
+                               replacekeyvalue(kv, "HOSTNAME", hostname);\r
+                               writekeyvalues(kv, CONFIG_ROOT "/main/settings");\r
+                               writehostsfiles();\r
+                               result = 1;\r
+                               break;\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       result = 0;\r
+                       break;\r
+               }\r
+       }\r
+       free(values[0]);\r
+       freekeyvalues(kv);\r
+       \r
+       return result;\r
+}      \r
diff --git a/src/install+setup/setup/isdn.c b/src/install+setup/setup/isdn.c
new file mode 100644 (file)
index 0000000..d702129
--- /dev/null
@@ -0,0 +1,581 @@
+/* SmoothWall setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * ISDN probing.\r
+ * \r
+ * $Id: isdn.c,v 1.6.2.1 2004/04/14 22:05:41 gespinasse Exp $\r
+ * \r
+ */\r
\r
+#include "setup.h"\r
\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+extern int automode;\r
+\r
+struct card\r
+{\r
+       char *name;\r
+       int type;\r
+};\r
+\r
+struct card cards[] = {\r
+       { "", 0 },\r
+       { "Teles 16.0", 1 },\r
+       { "Teles 8.0", 2 },\r
+       { "Teles 16.3 (non PnP)", 3 },\r
+       { "Teles 16.3c", 14 },  \r
+       { "Teles PCI", 21 },    \r
+       { "Creatix/Teles PnP", 4 },\r
+       { "AVM A1 (Fritz)", 5 },\r
+       { "AVM ISA/PCI", 27 },  \r
+       { "AVM PCI/PNP (EXPERIMENTAL driver)", 999 },\r
+       { "ELSA PCC/PCF cards", 6 },\r
+       { "ELSA Quickstep 1000", 7 },\r
+       { "ELSA Quickstep 1000PCI", 18 },\r
+       { "Eicon Diva ISA Pnp and PCI", 11 },\r
+       { "ASUS COM ISDNLink", 12 },\r
+       { "HFC-2BS0 based cards", 13 },\r
+       { "HFC 2BDS0 PCI", 35 },        \r
+       { "Sedlbauer cards", 15 },\r
+       { "USR Sportster internal", 16 },\r
+       { "MIC Card", 17 },\r
+       { "Compaq ISDN S00 ISA", 19 },\r
+       { "NETjet PCI card", 20 },\r
+       { "Dr. Neuhauss Niccy ISA/PCI", 24 },\r
+       { "Teles S0Box", 25 },\r
+       { "Sedlbauer Speed Fax+", 28 },\r
+       { "Siemens I-Surf 1.0", 29 },\r
+       { "ACER P10", 30 },\r
+       { "HST Saphir", 31 },\r
+       { "Telekom A4T", 32 },\r
+       { "Scitel Quadro", 33 },\r
+       { "Gazel ISA/PCI", 34 },\r
+       { "W6692 based PCI cards", 36 },\r
+       { "ITK ix1-micro Rev.2", 9 },   \r
+       { "NETspider U PCI card", 38 },\r
+       { "USB ST5481", 998 },\r
+       { NULL, 0 }\r
+};\r
+\r
+void handleisdnprotocol(char **protocolnames);\r
+int isdnenabledpressed(void);\r
+int isdndisabledpressed(void);\r
+void handleisdncard(void);\r
+void handlemoduleparams(void);\r
+int probeisdncard(void);\r
+int probeusbisdncard(char *s);\r
+void handleisdnmsn(void);\r
+\r
+int handleisdn(void)\r
+{\r
+       char *protocolnames[] = { ctr[TR_GERMAN_1TR6], ctr[TR_EURO_EDSS1],\r
+               ctr[TR_LEASED_LINE], ctr[TR_US_NI1], NULL };\r
+       struct keyvalue *kv;\r
+       int rc;\r
+       char protocolname[STRING_SIZE] = "";\r
+       char cardname[STRING_SIZE] = "";\r
+       char msn[STRING_SIZE] = "";\r
+       char temps[STRING_SIZE];\r
+       int tempd;\r
+       char message[1000];\r
+       int c;\r
+       char *sections[] = { ctr[TR_PROTOCOL_COUNTRY],\r
+               ctr[TR_SET_ADDITIONAL_MODULE_PARAMETERS], ctr[TR_ISDN_CARD],\r
+                ctr[TR_MSN_CONFIGURATION], NULL };\r
+       int choice;\r
+       char enableddisabled[STRING_SIZE];\r
+       FILE *f;\r
+       \r
+       if ((f = fopen(CONFIG_ROOT "/red/active", "r")))\r
+       {\r
+               fclose(f);\r
+               errorbox(ctr[TR_RED_IN_USE]);\r
+               return 1;\r
+       }\r
+       \r
+       /* rc.isdn is a small script to bring down ippp0 and kill ipppd\r
+        * and removes the ISDN modules. */\r
+       mysystem("/etc/rc.d/rc.isdn stop");\r
+\r
+       choice = 0;     \r
+       for (;;)\r
+       {\r
+               kv = initkeyvalues();\r
+               if (!(readkeyvalues(kv, CONFIG_ROOT "/isdn/settings")))\r
+               {\r
+                       freekeyvalues(kv);\r
+                       errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+                       return 0;\r
+               }\r
+\r
+               strcpy(enableddisabled, ctr[TR_DISABLED]);\r
+               findkey(kv, "ENABLED", temps);\r
+               if (strcmp(temps, "on") == 0)\r
+                       strcpy(enableddisabled, ctr[TR_ENABLED]);\r
+               \r
+               strcpy(temps, "-1");\r
+               findkey(kv, "PROTOCOL", temps);\r
+               tempd = atol(temps);\r
+               if (tempd < 1 || tempd > 4)\r
+                       strcpy(protocolname, ctr[TR_UNSET]);\r
+               else\r
+                       strcpy(protocolname, protocolnames[tempd - 1]);\r
+                               \r
+               strcpy(temps, "-1");\r
+               findkey(kv, "TYPE", temps);\r
+               tempd = atol(temps);\r
+               c = 0;\r
+               while (cards[c].name)\r
+               {\r
+                       if (cards[c].type == tempd)\r
+                       {\r
+                               strcpy(cardname, cards[c].name);\r
+                               break;\r
+                       }\r
+                       c++;\r
+               }\r
+               if (!strlen(cardname))\r
+                       strcpy(cardname, ctr[TR_UNSET]);                \r
+\r
+               strcpy(temps, "");              \r
+               findkey(kv, "MSN", temps);\r
+               if (strlen(temps))\r
+                       strcpy(msn, temps);\r
+               else\r
+                       strcpy(msn, ctr[TR_UNSET]);\r
+               sprintf(message, ctr[TR_ISDN_STATUS], enableddisabled, protocolname,\r
+                       cardname, msn);\r
+               \r
+               freekeyvalues(kv);\r
+               \r
+               rc = newtWinMenu(ctr[TR_ISDN_CONFIGURATION_MENU], message, 50, 5, 5, 6,\r
+                       sections, &choice, ctr[TR_OK], ctr[TR_ENABLE_ISDN],\r
+                       ctr[TR_DISABLE_ISDN], NULL);\r
+               \r
+               if (rc == 1 || rc == 0)\r
+               {\r
+                       switch (choice)\r
+                       {\r
+                               case 0:\r
+                                       handleisdnprotocol(protocolnames);\r
+                                       break;\r
+                                       \r
+                               case 1:\r
+                                       handlemoduleparams();\r
+                                       break;\r
+                                                       \r
+                               case 2:\r
+                                       handleisdncard();\r
+                                       break;\r
+               \r
+                               case 3:\r
+                                       handleisdnmsn();\r
+                                       break;\r
+                               \r
+                               default:\r
+                                       break;\r
+                       }\r
+               }\r
+\r
+               else if (rc == 2)\r
+               {\r
+                       if (!isdnenabledpressed())\r
+                               break;\r
+               }\r
+               else\r
+               {\r
+                       if (!(isdndisabledpressed()))\r
+                               break;\r
+               }       \r
+       }\r
+       \r
+       return 1;\r
+}\r
+\r
+/* Returns 0 if main ISDN setup loop should exit. */\r
+int isdndisabledpressed(void)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/isdn/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+\r
+       replacekeyvalue(kv, "ENABLED", "off");\r
+       writekeyvalues(kv, CONFIG_ROOT "/isdn/settings");\r
+\r
+       freekeyvalues(kv);\r
+       \r
+       return 0;\r
+}\r
+\r
+/* Returns 0 if main ISDN setup loop should exit. */\r
+int isdnenabledpressed(void)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char protocol[STRING_SIZE] = "";\r
+       char type[STRING_SIZE] = "";\r
+       char msn[STRING_SIZE] = "";\r
+       char moduleparams[STRING_SIZE] = "";\r
+       char commandstring[STRING_SIZE];\r
+       int result = 0;\r
+\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/isdn/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+\r
+       findkey(kv, "PROTOCOL", protocol);\r
+       findkey(kv, "TYPE", type);\r
+       findkey(kv, "MSN", msn);\r
+       findkey(kv, "MODULE_PARAMS", moduleparams);\r
+                               \r
+       if (strlen(protocol) && strlen(type) && strlen(msn))\r
+       {\r
+               if (atol(type) == 998)\r
+               {\r
+                        sprintf(commandstring, "/sbin/modprobe hisax_st5481 protocol=%s %s",\r
+                               protocol, moduleparams);\r
+               }\r
+               else if (atol(type) == 999)\r
+                {\r
+                        sprintf(commandstring, "/sbin/modprobe hisax_fcpcipnp protocol=%s %s",\r
+                               protocol, moduleparams);\r
+               }\r
+                else\r
+                {\r
+                        sprintf(commandstring, "/sbin/modprobe hisax protocol=%s type=%s %s",\r
+                               protocol, type, moduleparams);\r
+               }\r
+                if (runcommandwithstatus(commandstring, ctr[TR_INITIALISING_ISDN]) != 0)\r
+               {\r
+                       errorbox(ctr[TR_UNABLE_TO_INITIALISE_ISDN]);\r
+                       replacekeyvalue(kv, "ENABLED", "off");\r
+                       result = 1;\r
+               }\r
+               else\r
+                       replacekeyvalue(kv, "ENABLED", "on");\r
+       }\r
+       else\r
+       {\r
+               errorbox(ctr[TR_ISDN_NOT_SETUP]);\r
+               replacekeyvalue(kv, "ENABLED", "off");\r
+               result = 1;\r
+       }\r
+       writekeyvalues(kv, CONFIG_ROOT "/isdn/settings");\r
+\r
+       freekeyvalues(kv);\r
+       \r
+       return result;\r
+}\r
+\r
+void handleisdnprotocol(char **protocolnames)\r
+{\r
+       int rc;\r
+       int choice;\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char temp[STRING_SIZE] = "1";\r
+\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/isdn/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return;\r
+       }\r
+       findkey(kv, "PROTOCOL", temp);\r
+       choice = atol(temp) - 1;\r
+       \r
+       rc = newtWinMenu(ctr[TR_ISDN_PROTOCOL_SELECTION], ctr[TR_CHOOSE_THE_ISDN_PROTOCOL],\r
+               50, 5, 5, 6, protocolnames, &choice, ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+               \r
+       if (rc == 2)\r
+               return;\r
+\r
+       sprintf(temp, "%d", choice + 1);\r
+       replacekeyvalue(kv, "PROTOCOL", temp);\r
+       writekeyvalues(kv, CONFIG_ROOT "/isdn/settings");\r
+       freekeyvalues(kv);\r
+}\r
+               \r
+void handlemoduleparams(void)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char moduleparams[STRING_SIZE] = "";\r
+       char *values[] = { moduleparams, NULL };        /* pointers for the values. */\r
+       struct newtWinEntry entries[] =\r
+               { { "", &values[0], 0,}, { NULL, NULL, 0 } };\r
+       char title[STRING_SIZE];\r
+       int rc;\r
+\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/isdn/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return;\r
+       }\r
+\r
+       findkey(kv, "MODULE_PARAMS", moduleparams);\r
+\r
+       for (;;)\r
+       {       \r
+               sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+               rc = newtWinEntries(title, ctr[TR_ENTER_ADDITIONAL_MODULE_PARAMS],\r
+                       50, 5, 5, 40, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);       \r
+               \r
+               if (rc == 1)\r
+               {\r
+                       replacekeyvalue(kv, "MODULE_PARAMS", values[0]);\r
+                       writekeyvalues(kv, CONFIG_ROOT "/isdn/settings");\r
+                       free(values[0]);\r
+                       break;\r
+               }\r
+               else\r
+                       break;\r
+       }\r
+       freekeyvalues(kv);\r
+}\r
+\r
+void handleisdncard(void)\r
+{\r
+       char **selection;\r
+       int c;\r
+       int rc;\r
+       int choice;\r
+       int type;\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char temp[STRING_SIZE] = "0";\r
+       int card;\r
+       char message[STRING_SIZE];\r
+       char commandstring[STRING_SIZE];\r
+       char moduleparams[STRING_SIZE] = "";\r
+       int done = 0;\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/isdn/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return;\r
+       }\r
+       \r
+       findkey(kv, "TYPE", temp);\r
+       type = atol(temp);\r
+       findkey(kv, "MODULE_PARAMS", moduleparams);\r
+       \r
+       /* Count cards. */\r
+       c = 0;\r
+       while (cards[c].name) c++;\r
+       selection = malloc((c + 1) * sizeof(char *));\r
+       \r
+       /* Fill out section. */\r
+       c = 0;\r
+       selection[c] = ctr[TR_AUTODETECT];\r
+       c++;\r
+       while (cards[c].name)\r
+       {\r
+               selection[c] = cards[c].name;\r
+               c++;\r
+       }\r
+       selection[c] = NULL;\r
+       \r
+       /* Determine inital value for choice. */\r
+       c = 0; choice = 0;\r
+       while (cards[c].name)\r
+       {\r
+               if (cards[c].type == type)\r
+               {\r
+                       choice = c;\r
+                       break;\r
+               }\r
+               c++;\r
+       }\r
+       \r
+       while (!done)\r
+       {\r
+               rc = newtWinMenu(ctr[TR_ISDN_CARD_SELECTION], ctr[TR_CHOOSE_THE_ISDN_CARD_INSTALLED],\r
+                       50, 5, 5, 10, selection, &choice, ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+       \r
+               if (rc == 2)\r
+                       done = 1;\r
+               else\r
+               {       \r
+                       if (choice == 0)\r
+                               card = probeisdncard();\r
+                       else\r
+                       {\r
+                               sprintf(message, ctr[TR_CHECKING_FOR], cards[choice].name);\r
+                               if (cards[choice].type == 998)\r
+                               {\r
+                                        sprintf(commandstring, "/sbin/modprobe hisax_st5481 protocol=1 %s",\r
+                                               moduleparams);\r
+                               }\r
+                               else if (cards[choice].type == 999)\r
+                               {\r
+                                        sprintf(commandstring, "/sbin/modprobe hisax_fcpcipnp protocol=1 %s",\r
+                                               moduleparams);\r
+                               }\r
+                                else\r
+                               {\r
+                                        sprintf(commandstring, "/sbin/modprobe hisax type=%d protocol=1 %s",\r
+                                               cards[choice].type, moduleparams);\r
+                                }\r
+                                if (runcommandwithstatus(commandstring, message) == 0)\r
+                                       card = cards[choice].type;\r
+                               else\r
+                               {\r
+                                       errorbox(ctr[TR_ISDN_CARD_NOT_DETECTED]);\r
+                                       card = -1;\r
+                               }\r
+                               mysystem("/etc/rc.d/rc.isdn stop");\r
+                       }\r
+\r
+                       if (card != -1)\r
+                       {\r
+                               sprintf(temp, "%d", card);\r
+                               replacekeyvalue(kv, "TYPE", temp);\r
+                               writekeyvalues(kv, CONFIG_ROOT "/isdn/settings");\r
+                               done = 1;\r
+                       }\r
+               }\r
+       }\r
+\r
+       free(selection);        \r
+       freekeyvalues(kv);\r
+}\r
+\r
+int probeusbisdncard(char *s)\r
+{\r
+       FILE *file;\r
+       char buf[STRING_SIZE]; \r
+       int found = 0;\r
+\r
+       if (!(file = fopen("/proc/bus/usb/devices", "r")))\r
+       {\r
+               fprintf(flog, "Unable to open /proc/bus/usb/devices in probeusbisdncard()\n");\r
+               return 0;\r
+       }\r
+\r
+       while (fgets(buf, STRING_SIZE, file)) {\r
+               if (strstr(buf, s)) {\r
+                       found = 1;\r
+               }\r
+       }\r
+\r
+       fclose(file);\r
+\r
+       return found;\r
+}\r
+\r
+int probeisdncard(void)\r
+{\r
+       int c;\r
+       char message[STRING_SIZE];\r
+       char commandstring[STRING_SIZE];\r
+       char moduleparams[STRING_SIZE] = "";\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char title[STRING_SIZE];\r
+       int result = -1;\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/isdn/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return  -1;\r
+       }\r
+       findkey(kv, "MODULE_PARAMS", moduleparams);\r
+               \r
+       c = 1;\r
+       while (cards[c].name)\r
+       {\r
+               sprintf(message, ctr[TR_CHECKING_FOR], cards[c].name);\r
+               if (cards[c].type == 998)\r
+               {\r
+                       /* Try to find if it exists, but should generalize\r
+                        * probeusbisdncard to pass Vendor and ProdID\r
+                        * independently, rather than a string\r
+                        */\r
+                       if (probeusbisdncard("Vendor=0483 ProdID=481"))\r
+                               sprintf(commandstring, "/sbin/modprobe hisax_st5481 protocol=1 %s", moduleparams);\r
+               }\r
+               else if (cards[c].type == 999)\r
+               {\r
+                        sprintf(commandstring, "/sbin/modprobe hisax_fcpcipnp protocol=1 %s", \r
+                               moduleparams);\r
+               }\r
+                else\r
+               {\r
+                        sprintf(commandstring, "/sbin/modprobe hisax type=%d protocol=1 %s", \r
+                               cards[c].type, moduleparams);\r
+               }\r
+               if (runcommandwithstatus(commandstring, message) == 0)\r
+               {\r
+                       mysystem("/etc/rc.d/rc.isdn stop");\r
+                       sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+                       sprintf(message, ctr[TR_DETECTED], cards[c].name);\r
+                       newtWinMessage(title, ctr[TR_OK], message);\r
+                       result = cards[c].type;\r
+                       goto EXIT;\r
+               }\r
+               c++;\r
+       }\r
+\r
+       errorbox(ctr[TR_UNABLE_TO_FIND_AN_ISDN_CARD]);\r
+       \r
+EXIT:\r
+       freekeyvalues(kv);\r
+       \r
+       return result;\r
+}\r
+\r
+void handleisdnmsn(void)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char msn[STRING_SIZE] = "";\r
+       char *values[] = { msn, NULL }; /* pointers for the values. */\r
+       struct newtWinEntry entries[] =\r
+               { { "", &values[0], 0,}, { NULL, NULL, 0 } };\r
+       char title[STRING_SIZE];\r
+       int rc;\r
+\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/isdn/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return;\r
+       }\r
+       findkey(kv, "MSN", msn);\r
+\r
+       for (;;)\r
+       {       \r
+               sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+               rc = newtWinEntries(title, ctr[TR_ENTER_THE_LOCAL_MSN],\r
+                       50, 5, 5, 40, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);       \r
+               \r
+               if (rc == 1)\r
+               {\r
+                       if (!(strlen(values[0])))\r
+                               errorbox(ctr[TR_PHONENUMBER_CANNOT_BE_EMPTY]);\r
+                       else\r
+                       {                       \r
+                               replacekeyvalue(kv, "MSN", values[0]);\r
+                               writekeyvalues(kv, CONFIG_ROOT "/isdn/settings");\r
+                               free(values[0]);\r
+                               break;\r
+                       }\r
+               }\r
+               else\r
+                       break;\r
+       }\r
+       freekeyvalues(kv);\r
+}\r
diff --git a/src/install+setup/setup/keymap.c b/src/install+setup/setup/keymap.c
new file mode 100644 (file)
index 0000000..ddfc7de
--- /dev/null
@@ -0,0 +1,167 @@
+/* SmoothWall setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Stuff for setting the keymap.\r
+ * \r
+ * $Id: keymap.c,v 1.9.2.1 2004/04/14 22:05:41 gespinasse Exp $\r
+ * \r
+ */\r
+   \r
+#include "setup.h"\r
\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+extern int automode;\r
+\r
+#define MAX_FILENAMES 5000\r
+#define KEYMAPROOT "/usr/share/kbd/keymaps/i386/"\r
+\r
+static int filenamecount;\r
+static char *filenames[MAX_FILENAMES];\r
+static char *displaynames[MAX_FILENAMES];\r
+\r
+static int process(char *prefix, char *path);\r
+static int cmp(const void *s1, const void *s2);\r
+\r
+int handlekeymap(void)\r
+{\r
+       int c;\r
+       int choice;\r
+       char *temp;\r
+       struct keyvalue *kv = initkeyvalues();  \r
+       int rc;\r
+       int result;\r
+       char keymap[STRING_SIZE];\r
+       char commandstring[STRING_SIZE];\r
+\r
+       filenamecount = 0;      \r
+\r
+       process(KEYMAPROOT "azerty", "");               \r
+       process(KEYMAPROOT "dvorak", "");\r
+       process(KEYMAPROOT "fgGIod", "");       \r
+       process(KEYMAPROOT "qwerty", "");\r
+       process(KEYMAPROOT "qwertz", "");\r
+       filenames[filenamecount] = NULL;\r
+       qsort(filenames, filenamecount, sizeof(char *), cmp);\r
+       \r
+       for (c = 0; filenames[c]; c++)\r
+       {\r
+               displaynames[c] = malloc(STRING_SIZE);\r
+               if ((temp = strrchr(filenames[c], '/')))\r
+                       strcpy(displaynames[c], temp + 1);\r
+               else\r
+                       strcpy(displaynames[c], filenames[c]);\r
+               if ((temp = strstr(displaynames[c], ".map.gz")))\r
+                       *temp = '\0';\r
+       }\r
+       displaynames[c] = NULL;\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }       \r
+       \r
+       strcpy(keymap, "/usr/share/kbd/keymaps/i386/qwerty/us.map.gz");\r
+       findkey(kv, "KEYMAP", keymap);\r
+       \r
+       choice = 0;\r
+       for (c = 0; filenames[c]; c++)\r
+       {\r
+               if (strcmp(keymap, filenames[c]) == 0)\r
+                       choice = c;\r
+       }\r
+       \r
+       rc = newtWinMenu(ctr[TR_KEYBOARD_MAPPING], ctr[TR_KEYBOARD_MAPPING_LONG], 50, 5, 5, 6, displaynames, &choice,\r
+               ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+\r
+       strcpy(keymap, filenames[choice]);\r
+       \r
+       if (rc != 2)\r
+       {\r
+               replacekeyvalue(kv, "KEYMAP", keymap);\r
+               writekeyvalues(kv, CONFIG_ROOT "/main/settings");\r
+               sprintf(commandstring, "/bin/loadkeys %s", keymap);\r
+               mysystem(commandstring);\r
+               result = 1;\r
+       }\r
+       else\r
+               result = 0;     \r
+       \r
+       for (c = 0; filenames[c]; c++)\r
+       {\r
+               free(filenames[c]);\r
+               free(displaynames[c]);\r
+       }\r
+       freekeyvalues(kv);      \r
+       \r
+       return result;\r
+}\r
+\r
+static int process(char *prefix, char *path)\r
+{\r
+       DIR *dir;\r
+       struct dirent *de;\r
+       char newpath[PATH_MAX];\r
+       \r
+       snprintf(newpath, PATH_MAX, "%s%s", prefix, path);\r
+       \r
+       if (!(dir = opendir(newpath)))\r
+       {\r
+               if (filenamecount > MAX_FILENAMES)\r
+                       return 1;\r
+               \r
+               filenames[filenamecount] = (char *) strdup(newpath);\r
+               filenamecount++;\r
+               return 0;\r
+       }\r
+                       \r
+       while ((de = readdir(dir)))\r
+       {\r
+               if (de->d_name[0] == '.') continue;\r
+               snprintf(newpath, PATH_MAX, "%s/%s", path, de->d_name);\r
+               process(prefix, newpath);\r
+       }\r
+       closedir(dir);\r
+       \r
+       return 1;\r
+}\r
+\r
+/* Small wrapper for use with qsort() to sort filename part. */                \r
+static int cmp(const void *s1, const void *s2)\r
+{\r
+       /* c1 and c2 are copies. */\r
+       char *c1 = strdup(* (char **) s1);\r
+       char *c2 = strdup(* (char **) s2);\r
+       /* point to somewhere in cN. */\r
+       char *f1, *f2;\r
+       char *temp;\r
+       int res;\r
+       \r
+       if ((temp = strrchr(c1, '/')))\r
+               f1 = temp + 1;\r
+       else\r
+               f1 = c1;\r
+       if ((temp = strrchr(c2, '/')))\r
+               f2 = temp + 1;\r
+       else\r
+               f2 = c2;\r
+       /* bang off the . */\r
+       if ((temp = strchr(f1, '.')))\r
+               *temp = '\0';\r
+       if ((temp = strchr(f2, '.')))\r
+               *temp = '\0';\r
+       \r
+       res = strcmp(f1, f2);\r
+       \r
+       free(c1); free(c2);\r
+       \r
+       return res;\r
+}\r
diff --git a/src/install+setup/setup/main.c b/src/install+setup/setup/main.c
new file mode 100644 (file)
index 0000000..4da9659
--- /dev/null
@@ -0,0 +1,229 @@
+/* SmoothWall setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Contains main entry point, and misc functions.\r
+ * \r
+ * modified 16/11/2002 eoberlander - French language added\r
+ *\r
+ * $Id: main.c,v 1.4.2.7 2005/12/01 20:13:08 eoberlander Exp $\r
+ * \r
+ */\r
+\r
+#include "setup.h"\r
+\r
+FILE *flog = NULL;\r
+char *mylog;\r
+\r
+char **ctr = NULL;\r
+\r
+int automode = 0;\r
+\r
+extern char *bz_tr[];\r
+extern char *cs_tr[];\r
+extern char *da_tr[];\r
+extern char *en_tr[];\r
+extern char *es_tr[];\r
+extern char *fi_tr[];\r
+extern char *fr_tr[];\r
+extern char *hu_tr[];\r
+extern char *la_tr[];\r
+extern char *nl_tr[];\r
+extern char *de_tr[];\r
+extern char *tr_tr[];\r
+extern char *it_tr[];\r
+extern char *el_tr[];\r
+extern char *sk_tr[];\r
+extern char *so_tr[];\r
+extern char *sv_tr[];\r
+extern char *no_tr[];\r
+extern char *pl_tr[];\r
+extern char *pt_tr[];\r
+extern char *vi_tr[];\r
+\r
+int main(int argc, char *argv[])\r
+{\r
+#ifdef  LANG_EN_ONLY\r
+       char *shortlangnames[] = { "en", NULL };\r
+       char **langtrs[] = { en_tr, NULL };\r
+#else\r
+       char *shortlangnames[] = { "bz", "cs", "da", "de", "en", "es", "fr", "el", "it", "la", "hu", "nl", "no", "pl", "pt", "sk", "so", "fi", "sv", "tr", "vi", NULL };\r
+       char **langtrs[] = { bz_tr, cs_tr, da_tr, de_tr, en_tr, es_tr, fr_tr, el_tr, it_tr, la_tr, hu_tr, nl_tr, no_tr, pl_tr, pt_tr, sk_tr, so_tr, fi_tr, sv_tr, tr_tr, vi_tr, NULL };\r
+#endif\r
+       int choice;\r
+       char *sections[11]; /* need to fill this out AFTER knowning lang */\r
+       int rc;\r
+       struct keyvalue *kv;\r
+       char selectedshortlang[STRING_SIZE] = "en";\r
+       char title[STRING_SIZE];\r
+       int langcounter;\r
+       int autook = 0;\r
+       \r
+       /* Log file/terminal stuff. */\r
+       if (argc >= 2)\r
+               mylog = argv[1];        \r
+       else\r
+               mylog = strdup("/root/setup.log");\r
+\r
+       if (!(flog = fopen(mylog, "w+")))\r
+       {\r
+               printf("Couldn't open log terminal\n");\r
+               return 1;\r
+       }\r
+       \r
+       if (argc >= 3)\r
+               automode = 1;\r
+       \r
+       fprintf(flog, "Setup program started.\n");\r
+               \r
+       kv = initkeyvalues();\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))\r
+       {\r
+               printf("%s is not properly installed.\n", NAME);\r
+               return 1;\r
+       }\r
+       findkey(kv, "LANGUAGE", selectedshortlang);\r
+       \r
+       for (langcounter = 0; langtrs[langcounter]; langcounter++)\r
+       {\r
+               if (strcmp(selectedshortlang, shortlangnames[langcounter]) == 0)\r
+               {\r
+                       ctr = langtrs[langcounter];\r
+                       break;\r
+               }\r
+       }\r
+\r
+       if (!ctr)\r
+       {\r
+               /* zh,lt,ro,ru,th languages not available in setup, so use English */\r
+               for (choice = 0; shortlangnames[choice]; choice++)\r
+               {\r
+                       if (strcmp(shortlangnames[choice], "en") == 0)\r
+                               break;\r
+               }\r
+               if (!shortlangnames[choice])\r
+                       goto EXIT;\r
+               ctr = langtrs[choice];\r
+       }\r
+\r
+       sections[0] = ctr[TR_KEYBOARD_MAPPING];\r
+       sections[1] = ctr[TR_TIMEZONE];\r
+       sections[2] = ctr[TR_HOSTNAME];\r
+       sections[3] = ctr[TR_DOMAINNAME];\r
+       sections[4] = ctr[TR_ISDN_CONFIGURATION];\r
+       sections[5] = ctr[TR_NETWORKING];       \r
+       sections[6] = ctr[TR_ROOT_PASSWORD];\r
+       sections[7] = ctr[TR_ADMIN_PASSWORD];\r
+       sections[8] = NULL;\r
+       \r
+       newtInit();\r
+       newtCls();\r
+       FILE *f_title;\r
+       if ((f_title = fopen ("/etc/issue", "r"))) \r
+       {\r
+           fgets (title, STRING_SIZE, f_title);\r
+           if (title[strlen(title) - 1] == '\n')\r
+               title[strlen(title) - 1] = '\0';\r
+           fclose (f_title);   \r
+       } else {\r
+           sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+       }\r
+       newtDrawRootText(14, 0, title);\r
+       newtPushHelpLine(ctr[TR_HELPLINE]);             \r
+\r
+       if (automode == 0)\r
+       {\r
+               choice = 0;\r
+               for (;;)\r
+               {\r
+                       rc = newtWinMenu(ctr[TR_SECTION_MENU],\r
+                               ctr[TR_SELECT_THE_ITEM], 50, 5, 5, 11,\r
+                               sections, &choice, ctr[TR_OK], ctr[TR_QUIT], NULL);\r
+                       \r
+                       if (rc == 2)\r
+                               break;\r
+                       \r
+                       switch (choice)\r
+                       {\r
+                               case 0:\r
+                                       handlekeymap();\r
+                                       break;\r
+                               \r
+                               case 1:\r
+                                       handletimezone();\r
+                                       break;\r
+                                       \r
+                               case 2:\r
+                                       handlehostname();\r
+                                       break;\r
+                               \r
+                               case 3:\r
+                                       handledomainname();\r
+                                       break;\r
+\r
+                               case 4:\r
+                                       handleisdn();\r
+                                       break;\r
+\r
+                               case 5:\r
+                                       handlenetworking();\r
+                                       break;\r
+                                                                       \r
+                               case 6:\r
+                                       handlerootpassword();\r
+                                       break;\r
+                                       \r
+                               case 7:\r
+                                       handleadminpassword();\r
+                                       break;\r
+               \r
+                               default:\r
+                                       break;\r
+                       }\r
+               }\r
+       }\r
+       else\r
+       {\r
+               if (!(handlekeymap()))\r
+                       goto EXIT;\r
+               if (!(handletimezone()))\r
+                       goto EXIT;      \r
+               if (!(handlehostname()))\r
+                       goto EXIT;\r
+               if (!(handledomainname()))\r
+                       goto EXIT;\r
+               if (!(handleisdn()))\r
+                       goto EXIT;\r
+               if (!(handlenetworking()))\r
+                       goto EXIT;\r
+               if (!(handledhcp()))\r
+                       goto EXIT;\r
+               if (!(handlerootpassword()))\r
+                       goto EXIT;\r
+               if (!(handleadminpassword()))\r
+                       goto EXIT;\r
+\r
+               autook = 1;\r
+       }\r
+\r
+EXIT:  \r
+       if (automode != 0)\r
+       {\r
+               sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+               if (autook)\r
+                       newtWinMessage(title, ctr[TR_OK], ctr[TR_SETUP_FINISHED]);\r
+               else\r
+                       newtWinMessage(ctr[TR_WARNING], ctr[TR_OK], ctr[TR_SETUP_NOT_COMPLETE]);\r
+       }\r
+       \r
+       fprintf(flog, "Setup program ended.\n");\r
+       fflush(flog);\r
+       fclose(flog);\r
+               \r
+       newtFinished();\r
+\r
+       return 0;\r
+}\r
+\r
diff --git a/src/install+setup/setup/misc.c b/src/install+setup/setup/misc.c
new file mode 100644 (file)
index 0000000..3d645d3
--- /dev/null
@@ -0,0 +1,141 @@
+/* SmoothWall setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Misc. stuff for the lib.\r
+ * \r
+ * $Id: misc.c,v 1.5.2.3 2005/08/25 17:51:42 gespinasse Exp $\r
+ * \r
+ */\r
\r
+#include "setup.h"\r
+\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
\r
+extern int automode;\r
+\r
+/* This will rewrite /etc/hosts, /etc/hosts.*, and the apache ServerName file. */\r
+int writehostsfiles(void)\r
+{      \r
+       char address[STRING_SIZE] = "";\r
+       char netaddress[STRING_SIZE] = "";\r
+       char netmask[STRING_SIZE] = "";\r
+       char message[1000];\r
+       FILE *file, *hosts;\r
+       struct keyvalue *kv;\r
+       char hostname[STRING_SIZE];\r
+       char domainname[STRING_SIZE] = "";\r
+       char commandstring[STRING_SIZE];\r
+       char buffer[STRING_SIZE];\r
+       \r
+       kv = initkeyvalues();\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+       findkey(kv, "GREEN_ADDRESS", address);\r
+       findkey(kv, "GREEN_NETADDRESS", netaddress);\r
+       findkey(kv, "GREEN_NETMASK", netmask);  \r
+       freekeyvalues(kv);\r
+       \r
+       kv = initkeyvalues();\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+       strcpy(hostname, SNAME );\r
+       findkey(kv, "HOSTNAME", hostname);\r
+       findkey(kv, "DOMAINNAME", domainname);\r
+       freekeyvalues(kv);\r
+               \r
+       if (!(file = fopen(CONFIG_ROOT "/main/hostname.conf", "w")))\r
+       {\r
+               sprintf (message, ctr[TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF], CONFIG_ROOT);\r
+               errorbox(message);\r
+               return 0;\r
+       }\r
+       fprintf(file, "ServerName %s.%s\n", hostname,domainname);\r
+       fclose(file);\r
+       \r
+       if (!(file = fopen(CONFIG_ROOT "/main/hosts", "r")))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_HOSTS_FILE]);\r
+               return 0;\r
+       }\r
+       if (!(hosts = fopen("/etc/hosts", "w")))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_WRITE_ETC_HOSTS]);\r
+               return 0;\r
+       }\r
+       fprintf(hosts, "127.0.0.1\tlocalhost\n");\r
+       if (strlen(domainname))\r
+               fprintf(hosts, "%s\t%s.%s\t%s\n",address,hostname,domainname,hostname);\r
+       else\r
+               fprintf(hosts, "%s\t%s\n",address,hostname);\r
+       while (fgets(buffer, STRING_SIZE, file))\r
+       {\r
+               char *token, *ip, *host, *domain;\r
+\r
+               buffer[strlen(buffer) - 1] = 0;\r
+\r
+               token = strtok(buffer, ",");\r
+\r
+               ip = strtok(NULL, ",");\r
+               host = strtok(NULL, ",");\r
+               domain = strtok(NULL, ",");\r
+\r
+               if (!(ip && host))\r
+                       break;\r
+\r
+               if (strlen(ip) < 7 || strlen(ip) > 15\r
+                || strspn(ip, "0123456789.") != strlen(ip))\r
+                       break;\r
+\r
+               if (strspn(host, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-") != strlen(host))\r
+                       break;\r
+\r
+               if (domain)\r
+                       fprintf(hosts, "%s\t%s.%s\t%s\n",ip,host,domain,host);\r
+               else\r
+                       fprintf(hosts, "%s\t%s\n",ip,host);\r
+       }\r
+       fclose(file);\r
+       fclose(hosts);\r
+       \r
+       /* TCP wrappers stuff. */\r
+       if (!(file = fopen("/etc/hosts.deny", "w")))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY]);\r
+               return 0;\r
+       }\r
+       fprintf(file, "ALL : ALL\n");\r
+       fclose(file);\r
+       \r
+       if (!(file = fopen("/etc/hosts.allow", "w")))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW]);\r
+               return 0;\r
+       }\r
+       fprintf(file, "sshd : ALL\n");\r
+       fprintf(file, "ALL  : localhost\n");\r
+       fprintf(file, "ALL  : %s/%s\n", netaddress, netmask);\r
+       fclose(file);\r
+       \r
+       sprintf(commandstring, "/bin/hostname %s.%s", hostname, domainname);\r
+       if (mysystem(commandstring))\r
+       {\r
+               errorbox(ctr[TR_UNABLE_TO_SET_HOSTNAME]);\r
+               return 0;\r
+       }\r
+       \r
+       return 1;\r
+}      \r
diff --git a/src/install+setup/setup/networking.c b/src/install+setup/setup/networking.c
new file mode 100644 (file)
index 0000000..72f92d3
--- /dev/null
@@ -0,0 +1,806 @@
+/* SmoothWall setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * The big one: networking. \r
+ * \r
+ * $Id: networking.c,v 1.5.2.6 2006/02/06 22:00:13 gespinasse Exp $\r
+ * \r
+ */\r
\r
+#include "setup.h"\r
+\r
+#define DNS1 0\r
+#define DNS2 1\r
+#define DEFAULT_GATEWAY 2\r
+#define DNSGATEWAY_TOTAL 3\r
+\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+extern int automode;\r
+\r
+#define HAS_ORANGE (configtype == 1 || configtype == 3 || configtype == 5 || configtype == 7)\r
+#define HAS_RED (configtype == 2 || configtype == 3 || configtype == 6 || configtype == 7)\r
+#define HAS_BLUE (configtype == 4 || configtype == 5 || configtype == 6 || configtype == 7)\r
+#define RED_IS_NOT_ETH (configtype == 0 || configtype == 1 || configtype == 4 || configtype == 5)\r
+\r
+extern struct nic nics[];\r
+\r
+char *configtypenames[] = { \r
+       "GREEN (RED is modem/ISDN)", \r
+       "GREEN + ORANGE (RED is modem/ISDN)", \r
+       "GREEN + RED",\r
+       "GREEN + ORANGE + RED", \r
+       "GREEN + BLUE (RED is modem/ISDN) ",\r
+       "GREEN + ORANGE + BLUE (RED is modem/ISDN)",\r
+       "GREEN + BLUE + RED",\r
+       "GREEN + ORANGE + BLUE + RED",\r
+       NULL };\r
+int netaddresschange;\r
+\r
+int oktoleave(char *errormessage);\r
+int firstmenu(void);\r
+int configtypemenu(void);\r
+int drivermenu(void);\r
+int changedrivers(void);\r
+int greenaddressmenu(void);\r
+int addressesmenu(void);\r
+int dnsgatewaymenu(void);\r
+\r
+int handlenetworking(void)\r
+{\r
+       int done;\r
+       int choice;\r
+       char errormessage[STRING_SIZE];\r
+       \r
+       netaddresschange = 0;\r
+\r
+       done = 0;\r
+       while (!done)\r
+       {\r
+               choice = firstmenu();\r
+                       \r
+               switch (choice)\r
+               {\r
+                       case 1:\r
+                               configtypemenu();\r
+                               break;\r
+\r
+                       case 2:\r
+                               drivermenu();\r
+                               break;\r
+                                                       \r
+                       case 3:\r
+                               addressesmenu();\r
+                               break;\r
+                       \r
+                       case 4:\r
+                               dnsgatewaymenu();\r
+                               break;\r
+                               \r
+                       case 0:\r
+                               if (oktoleave(errormessage))\r
+                                       done = 1;\r
+                               else\r
+                                       errorbox(errormessage);\r
+                               break;\r
+                               \r
+                       default:\r
+                               break;\r
+               }                               \r
+       }\r
+\r
+       if (automode == 0)\r
+       {\r
+               /* Restart networking! */       \r
+               if (netaddresschange)\r
+               {\r
+                       runcommandwithstatus("/etc/rc.d/rc.netaddress.down",\r
+                               ctr[TR_PUSHING_NETWORK_DOWN]);\r
+                       runcommandwithstatus("/etc/rc.d/rc.netaddress.up",\r
+                               ctr[TR_PULLING_NETWORK_UP]);\r
+                       mysystem("/etc/rc.d/rc.pcmcia start");\r
+               }\r
+       }\r
+       \r
+       return 1;\r
+}\r
+\r
+int oktoleave(char *errormessage)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char temp[STRING_SIZE];\r
+       int configtype;\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }       \r
+\r
+       strcpy(temp, "0"); findkey(kv, "CONFIG_TYPE", temp); configtype = atol(temp);\r
+       if (configtype < 0 || configtype > 7) configtype = 0;\r
+\r
+       if (HAS_BLUE)\r
+       {\r
+               strcpy(temp, ""); findkey(kv, "BLUE_DEV", temp);\r
+               if (!(strlen(temp)))\r
+               {\r
+                       strcpy(errormessage, ctr[TR_NO_BLUE_INTERFACE]);\r
+                       goto EXIT;\r
+               }\r
+               if (!(interfacecheck(kv, "BLUE")))\r
+               {\r
+                       strcpy(errormessage, ctr[TR_MISSING_BLUE_IP]);\r
+                       goto EXIT;\r
+               }\r
+       }\r
+       if (HAS_ORANGE)\r
+       {\r
+               strcpy(temp, ""); findkey(kv, "ORANGE_DEV", temp);\r
+               if (!(strlen(temp)))\r
+               {\r
+                       strcpy(errormessage, ctr[TR_NO_ORANGE_INTERFACE]);\r
+                       goto EXIT;\r
+               }\r
+               if (!(interfacecheck(kv, "ORANGE")))\r
+               {\r
+                       strcpy(errormessage, ctr[TR_MISSING_ORANGE_IP]);\r
+                       goto EXIT;\r
+               }\r
+       }\r
+       if (HAS_RED)\r
+       {\r
+               strcpy(temp, ""); findkey(kv, "RED_DEV", temp);\r
+               if (!(strlen(temp)))\r
+               {\r
+                       strcpy(errormessage, ctr[TR_NO_RED_INTERFACE]);\r
+                       goto EXIT;\r
+               }\r
+               if (!(interfacecheck(kv, "RED")))\r
+               {\r
+                       strcpy(errormessage, ctr[TR_MISSING_RED_IP]);\r
+                       goto EXIT;\r
+               }\r
+       }\r
+       strcpy(errormessage, "");\r
+EXIT:\r
+       freekeyvalues(kv);\r
+       \r
+       if (strlen(errormessage))\r
+               return 0;\r
+       else\r
+               return 1;\r
+}\r
+\r
+       \r
+/* Shows the main menu and a summary of the current settings. */\r
+int firstmenu(void)\r
+{\r
+       char *sections[] = { ctr[TR_NETWORK_CONFIGURATION_TYPE],\r
+               ctr[TR_DRIVERS_AND_CARD_ASSIGNMENTS],\r
+               ctr[TR_ADDRESS_SETTINGS],\r
+               ctr[TR_DNS_AND_GATEWAY_SETTINGS], NULL };\r
+       int rc;\r
+       static int choice = 0;\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char message[1000];\r
+       char temp[STRING_SIZE];\r
+       int x;\r
+       int result;\r
+       char networkrestart[STRING_SIZE] = "";\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }       \r
+\r
+       if (netaddresschange) \r
+               strcpy(networkrestart, ctr[TR_RESTART_REQUIRED]);\r
+\r
+       strcpy(temp, ""); findkey(kv, "CONFIG_TYPE", temp); x = atol(temp);\r
+       if (x < 0 || x > 7) x = 0;\r
+       /* Format heading bit. */\r
+       snprintf(message, 1000, ctr[TR_CURRENT_CONFIG], configtypenames[x],\r
+               networkrestart);\r
+       rc = newtWinMenu(ctr[TR_NETWORK_CONFIGURATION_MENU], message, 50, 5, 5, 6,\r
+                       sections, &choice, ctr[TR_OK], ctr[TR_DONE], NULL);\r
+\r
+       if (rc == 0 || rc == 1)\r
+               result = choice + 1;\r
+       else\r
+               result = 0;\r
+\r
+       return result;\r
+}\r
+\r
+/* Here they choose general network config, number of nics etc. */\r
+int configtypemenu(void)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char temp[STRING_SIZE] = "0";\r
+       char message[1000];\r
+       int choice;\r
+       int rc;\r
+\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+       \r
+       findkey(kv, "CONFIG_TYPE", temp); choice = atol(temp);\r
+       sprintf(message, ctr[TR_NETWORK_CONFIGURATION_TYPE_LONG], NAME);\r
+       rc = newtWinMenu(ctr[TR_NETWORK_CONFIGURATION_TYPE], message, 50, 5, 5,\r
+               6, configtypenames, &choice, ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+\r
+       if (rc == 0 || rc == 1)\r
+       {\r
+               runcommandwithstatus("/etc/rc.d/rc.netaddress.down NOTGREEN",\r
+                       ctr[TR_PUSHING_NON_LOCAL_NETWORK_DOWN]);\r
+       \r
+               sprintf(temp, "%d", choice);\r
+               replacekeyvalue(kv, "CONFIG_TYPE", temp);\r
+               replacekeyvalue(kv, "ORANGE_DEV", "");\r
+               replacekeyvalue(kv, "BLUE_DEV", "");\r
+               replacekeyvalue(kv, "RED_DEV", "");\r
+               writekeyvalues(kv, CONFIG_ROOT "/ethernet/settings");\r
+               netaddresschange = 1;\r
+       }\r
+       \r
+       freekeyvalues(kv);\r
+       \r
+       return 0;\r
+}\r
+\r
+/* Driver menu.  Choose drivers.. */\r
+int drivermenu(void)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char message[1000];\r
+       char temp[STRING_SIZE], temp1[STRING_SIZE];\r
+       char driver[STRING_SIZE], dev[STRING_SIZE];\r
+       int configtype;\r
+       int rc;\r
+\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+\r
+       strcpy(temp, "0"); findkey(kv, "CONFIG_TYPE", temp);\r
+       configtype = atol(temp);\r
+       \r
+       if (configtype == 0)\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER]);\r
+               return 0;\r
+       }\r
+\r
+       strcpy(message, ctr[TR_CONFIGURE_NETWORK_DRIVERS]);\r
+       \r
+       /* This horrible big formats the heading :( */\r
+       strcpy(driver, ""); findkey(kv, "GREEN_DISPLAYDRIVER", driver);\r
+       findnicdescription(driver, temp);\r
+       strcpy(dev, ctr[TR_UNSET]); findkey(kv, "GREEN_DEV", dev);\r
+       if (!strlen(dev)) strcpy(dev, ctr[TR_UNSET]);\r
+       sprintf(temp1, "GREEN: %s (%s)\n", temp, dev);\r
+       strcat(message, temp1);\r
+       if (HAS_BLUE)\r
+       {\r
+               strcpy(driver, ""); findkey(kv, "BLUE_DISPLAYDRIVER", driver);\r
+               findnicdescription(driver, temp);\r
+               strcpy(dev, ctr[TR_UNSET]); findkey(kv, "BLUE_DEV", dev);\r
+               if (!strlen(dev)) strcpy(dev, ctr[TR_UNSET]);\r
+               sprintf(temp1, "BLUE: %s (%s)\n", temp, dev);\r
+               strcat(message, temp1);\r
+       }\r
+       if (HAS_ORANGE)\r
+       {\r
+               strcpy(driver, ""); findkey(kv, "ORANGE_DISPLAYDRIVER", driver);\r
+               findnicdescription(driver, temp);\r
+               strcpy(dev, ctr[TR_UNSET]); findkey(kv, "ORANGE_DEV", dev);\r
+               if (!strlen(dev)) strcpy(dev, ctr[TR_UNSET]);\r
+               sprintf(temp1, "ORANGE: %s (%s)\n", temp, dev);\r
+               strcat(message, temp1);\r
+       }\r
+       if (HAS_RED)\r
+       {\r
+               strcpy(driver, ""); findkey(kv, "RED_DISPLAYDRIVER", driver);\r
+               findnicdescription(driver, temp);\r
+               strcpy(dev, ctr[TR_UNSET]); findkey(kv, "RED_DEV", dev);\r
+               if (!strlen(dev)) strcpy(dev, ctr[TR_UNSET]);\r
+               sprintf(temp1, "RED: %s (%s)\n", temp, dev);\r
+               strcat(message, temp1);\r
+       }\r
+       strcat(message, ctr[TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS]);\r
+       rc = newtWinChoice(ctr[TR_DRIVERS_AND_CARD_ASSIGNMENTS], ctr[TR_OK],\r
+               ctr[TR_CANCEL], message);\r
+       if (rc == 0 || rc == 1)\r
+       {\r
+               /* Shit, got to do something.. */\r
+               changedrivers();\r
+       }\r
+       \r
+       freekeyvalues(kv);\r
+\r
+       return 1;\r
+}\r
+\r
+int changedrivers(void)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char message[1000];\r
+       char temp[STRING_SIZE];\r
+       char driver[STRING_SIZE];\r
+       int configtype;\r
+       int rc;\r
+       int c;\r
+       int needcards, sofarallocated, countofcards, toallocate;\r
+       char *orange = "ORANGE";\r
+       char *blue = "BLUE";\r
+       char *red = "RED";\r
+       char *sections[4];\r
+       int choice;\r
+       char nexteth[STRING_SIZE];\r
+       int abort;\r
+       char currentdriver[STRING_SIZE], currentdriveroptions[STRING_SIZE];\r
+       char displaydriver[STRING_SIZE];\r
+       struct stat st;\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+\r
+       strcpy(temp, "0"); findkey(kv, "CONFIG_TYPE", temp);\r
+       configtype = atol(temp);\r
+\r
+       runcommandwithstatus("/etc/rc.d/rc.netaddress.down NOTGREEN",\r
+               ctr[TR_PUSHING_NON_LOCAL_NETWORK_DOWN]);\r
+       \r
+       /* Remove all modules not needed for green networking. */\r
+       c = 0;\r
+       strcpy(driver, ""); findkey(kv, "GREEN_DRIVER", driver);\r
+       if (strcmp(driver, "pcmcia") != 0) {\r
+               stat("/proc/bus/pccard", &st);\r
+               mysystem("/etc/rc.d/rc.pcmcia stop");\r
+               if (S_ISDIR(st.st_mode)) {\r
+                       mysystem("/sbin/modprobe pcmcia_core");\r
+                       mysystem("/sbin/modprobe pcmcia-controller");\r
+                       mysystem("/sbin/modprobe ds");\r
+               }\r
+       }\r
+       while (nics[c].modulename)\r
+       {\r
+               if (strcmp(nics[c].modulename, driver) != 0)\r
+               {\r
+                       if (checkformodule(nics[c].modulename))\r
+                       {\r
+                               sprintf(temp, "/sbin/rmmod %s", nics[c].modulename);\r
+                               mysystem(temp);\r
+                       }\r
+               }\r
+               c++;\r
+       }\r
+       \r
+       /* Blank them so the rc.netaddress.up does not get confused. */\r
+       replacekeyvalue(kv, "ORANGE_DEV", "");\r
+       replacekeyvalue(kv, "BLUE_DEV", "");\r
+       replacekeyvalue(kv, "RED_DEV", "");\r
+       \r
+       if (configtype == 0)\r
+               needcards = 1;\r
+       else if (configtype == 1 || configtype == 2 || configtype == 4)\r
+               needcards = 2;\r
+       else if (configtype == 7)\r
+               needcards = 4;\r
+       else\r
+               needcards = 3;\r
+\r
+       /* This is the green card. */           \r
+       sofarallocated = 1;\r
+\r
+       findkey(kv, "GREEN_DRIVER", currentdriver);\r
+       findkey(kv, "GREEN_DRIVER_OPTIONS", currentdriveroptions);\r
+       strcpy(displaydriver, currentdriver);\r
+       \r
+       if (countcards() > 1)\r
+               strcpy(currentdriver, "");\r
+               \r
+       abort = 0;\r
+       /* Keep going till all cards are got, or they give up. */\r
+       while (sofarallocated < needcards && !abort)\r
+       {\r
+               countofcards = countcards();\r
+\r
+               /* This is how many cards were added by the last module. */\r
+               toallocate = countofcards - sofarallocated;\r
+               while (toallocate > 0 && sofarallocated < needcards)\r
+               {\r
+                       findnicdescription(displaydriver, temp);\r
+                       sprintf(message, ctr[TR_UNCLAIMED_DRIVER], temp);\r
+                       c = 0; choice = 0;\r
+                       strcpy(temp, ""); findkey(kv, "BLUE_DEV", temp);\r
+                       if (HAS_BLUE && !strlen(temp))\r
+                       {\r
+                               sections[c] = blue;\r
+                               c++;\r
+                       }\r
+                       strcpy(temp, ""); findkey(kv, "ORANGE_DEV", temp);\r
+                       if (HAS_ORANGE && !strlen(temp))\r
+                       {\r
+                               sections[c] = orange;\r
+                               c++;\r
+                       }\r
+                       strcpy(temp, ""); findkey(kv, "RED_DEV", temp);                 \r
+                       if (HAS_RED && !strlen(temp))\r
+                       {\r
+                               sections[c] = red;\r
+                               c++;\r
+                       }\r
+                       sections[c] = NULL;\r
+                       rc = newtWinMenu(ctr[TR_CARD_ASSIGNMENT],\r
+                               message, 50, 5, 5, 6, sections, &choice, ctr[TR_OK],\r
+                               ctr[TR_CANCEL], NULL);  \r
+                       if (rc == 0 || rc == 1)\r
+                       {\r
+                               /* Now we see which iface needs its settings changed. */\r
+                               sprintf(nexteth, "eth%d", sofarallocated);\r
+                               if (strcmp(sections[choice], blue) == 0)\r
+                               {\r
+                                       replacekeyvalue(kv, "BLUE_DEV", nexteth);\r
+                                       replacekeyvalue(kv, "BLUE_DRIVER", currentdriver);\r
+                                       replacekeyvalue(kv, "BLUE_DRIVER_OPTIONS", currentdriveroptions);\r
+                                       replacekeyvalue(kv, "BLUE_DISPLAYDRIVER", displaydriver);\r
+                                       sofarallocated++;\r
+                                       toallocate--;\r
+                                       strcpy(currentdriver, "");\r
+                                       strcpy(currentdriveroptions, "");\r
+                               }\r
+                               if (strcmp(sections[choice], orange) == 0)\r
+                               {\r
+                                       replacekeyvalue(kv, "ORANGE_DEV", nexteth);\r
+                                       replacekeyvalue(kv, "ORANGE_DRIVER", currentdriver);\r
+                                       replacekeyvalue(kv, "ORANGE_DRIVER_OPTIONS", currentdriveroptions);\r
+                                       replacekeyvalue(kv, "ORANGE_DISPLAYDRIVER", displaydriver);\r
+                                       sofarallocated++;\r
+                                       toallocate--;\r
+                                       strcpy(currentdriver, "");\r
+                                       strcpy(currentdriveroptions, "");\r
+                               }\r
+                               if (strcmp(sections[choice], red) == 0)\r
+                               {\r
+                                       replacekeyvalue(kv, "RED_DEV", nexteth);\r
+                                       replacekeyvalue(kv, "RED_DRIVER", currentdriver);\r
+                                       replacekeyvalue(kv, "RED_DRIVER_OPTIONS", currentdriveroptions);\r
+                                       replacekeyvalue(kv, "RED_DISPLAYDRIVER", displaydriver);\r
+                                       sofarallocated++;\r
+                                       toallocate--;\r
+                                       strcpy(currentdriver, "");\r
+                                       strcpy(currentdriveroptions, "");\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               break;\r
+                       }\r
+               }\r
+               \r
+               /* Need another module!  The nitty gritty code is in libsmooth. */\r
+               if (sofarallocated < needcards)\r
+               {\r
+                       rc = newtWinTernary(ctr[TR_CARD_ASSIGNMENT], ctr[TR_PROBE], \r
+                               ctr[TR_SELECT], ctr[TR_CANCEL], ctr[TR_NO_UNALLOCATED_CARDS]);\r
+                               \r
+                       if (rc == 0 || rc == 1)\r
+                       {\r
+                               probecards(currentdriver, currentdriveroptions);\r
+                               if (!strlen(currentdriver))\r
+                                       errorbox(ctr[TR_PROBE_FAILED]);\r
+                       }                               \r
+                       else if (rc == 2)\r
+                               choosecards(currentdriver, currentdriveroptions);\r
+                       else\r
+                               abort = 1;\r
+                               \r
+                       strcpy(displaydriver, currentdriver);\r
+               }\r
+       }\r
+       \r
+       countofcards = countcards();\r
+\r
+       if (countofcards >= needcards)\r
+       {\r
+               newtWinMessage(ctr[TR_CARD_ASSIGNMENT], ctr[TR_OK],\r
+                       ctr[TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED]);\r
+       }\r
+       else\r
+               errorbox(ctr[TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED]);\r
+               \r
+       writekeyvalues(kv, CONFIG_ROOT "/ethernet/settings");\r
+\r
+       freekeyvalues(kv);\r
+\r
+       netaddresschange = 1;\r
+       \r
+       return 1;\r
+}\r
+\r
+/* Let user change GREEN address. */\r
+int greenaddressmenu(void)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char message[1000];\r
+       int rc;\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+\r
+       sprintf(message, ctr[TR_WARNING_LONG], NAME);\r
+       rc = newtWinChoice(ctr[TR_WARNING], ctr[TR_OK], ctr[TR_CANCEL], message);\r
+       \r
+       if (rc == 0 || rc == 1)\r
+       {\r
+               if (changeaddress(kv, "GREEN", 0, ""))\r
+               {\r
+                       netaddresschange = 1;\r
+                       writekeyvalues(kv, CONFIG_ROOT "/ethernet/settings");                   \r
+                       writehostsfiles();                      \r
+               }\r
+       }\r
+       \r
+       freekeyvalues(kv);\r
+\r
+       return 0;\r
+}\r
+\r
+/* They can change BLUE, ORANGE and GREEN too :) */\r
+int addressesmenu(void)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       struct keyvalue *mainkv = initkeyvalues();\r
+       int rc = 0;\r
+       char *sections[5];\r
+       char *green = "GREEN";\r
+       char *orange = "ORANGE";\r
+       char *blue = "BLUE";\r
+       char *red = "RED";\r
+       int c = 0;\r
+       char greenaddress[STRING_SIZE];\r
+       char oldgreenaddress[STRING_SIZE];\r
+       char temp[STRING_SIZE];\r
+       char temp2[STRING_SIZE];\r
+       char message[1000];\r
+       int configtype;\r
+       int done;\r
+       int choice;\r
+       char hostname[STRING_SIZE];\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               freekeyvalues(mainkv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+       if (!(readkeyvalues(mainkv, CONFIG_ROOT "/main/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               freekeyvalues(mainkv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+\r
+       strcpy(temp, "0"); findkey(kv, "CONFIG_TYPE", temp);\r
+       configtype = atol(temp);\r
+       \r
+       sections[c] = green;\r
+       c++;\r
+       if (HAS_BLUE)\r
+       {\r
+               sections[c] = blue;\r
+               c++;\r
+       }\r
+       if (HAS_ORANGE)\r
+       {\r
+               sections[c] = orange;\r
+               c++;\r
+       }\r
+       if (HAS_RED)\r
+       {\r
+               sections[c] = red;\r
+               c++;\r
+       }\r
+       sections[c] = NULL;\r
+\r
+       choice = 0;     \r
+       done = 0;       \r
+       while (!done)\r
+       {\r
+               rc = newtWinMenu(ctr[TR_ADDRESS_SETTINGS],\r
+                       ctr[TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE], 50, 5,\r
+                       5, 6, sections, &choice, ctr[TR_OK], ctr[TR_DONE], NULL);       \r
+\r
+               if (rc == 0 || rc == 1)\r
+               {\r
+                       if (strcmp(sections[choice], "GREEN") == 0)\r
+                       {\r
+                               findkey(kv, "GREEN_ADDRESS", oldgreenaddress);\r
+                               sprintf(message, ctr[TR_WARNING_LONG], NAME);\r
+                               rc = newtWinChoice(ctr[TR_WARNING], ctr[TR_OK], ctr[TR_CANCEL],\r
+                                       message);\r
+                               if (rc == 0 || rc == 1)\r
+                               {\r
+                                       if (changeaddress(kv, "GREEN", 0, ""))\r
+                                       {\r
+                                               netaddresschange = 1;\r
+                                               writekeyvalues(kv, CONFIG_ROOT "/ethernet/settings");\r
+                                               writehostsfiles();\r
+                                               findkey(kv, "GREEN_ADDRESS", greenaddress);\r
+                                               snprintf(temp, STRING_SIZE-1, "option routers %s", oldgreenaddress);\r
+                                               snprintf(temp2, STRING_SIZE-1, "option routers %s", greenaddress);\r
+                                               replace (CONFIG_ROOT "/dhcp/dhcpd.conf", temp, temp2);\r
+                                               chown  (CONFIG_ROOT "/dhcp/dhcpd.conf", 99, 99);\r
+                                       }\r
+                               }\r
+                       }\r
+                       if (strcmp(sections[choice], "BLUE") == 0)\r
+                       {\r
+                               if (changeaddress(kv, "BLUE", 0, ""))\r
+                                       netaddresschange = 1;\r
+                       }\r
+                       if (strcmp(sections[choice], "ORANGE") == 0)\r
+                       {\r
+                               if (changeaddress(kv, "ORANGE", 0, ""))\r
+                                       netaddresschange = 1;\r
+                       }\r
+                       if (strcmp(sections[choice], "RED") == 0)\r
+                       {\r
+                               strcpy(hostname, "");\r
+                               findkey(mainkv, "HOSTNAME", hostname);\r
+                               if (changeaddress(kv, "RED", 1, hostname))\r
+                                       netaddresschange = 1;\r
+                       }\r
+               }\r
+               else\r
+                       done = 1;\r
+       }\r
+       \r
+       writekeyvalues(kv, CONFIG_ROOT "/ethernet/settings");\r
+       freekeyvalues(kv);\r
+       freekeyvalues(mainkv);\r
+       \r
+       return 0;\r
+}\r
+\r
+/* DNS and default gateway.... */\r
+int dnsgatewaymenu(void)\r
+{\r
+       struct keyvalue *kv = initkeyvalues();\r
+       char message[1000];\r
+       char temp[STRING_SIZE] = "0";\r
+       struct newtWinEntry entries[DNSGATEWAY_TOTAL+1];\r
+       char *values[DNSGATEWAY_TOTAL];         /* pointers for the values. */\r
+       int error;\r
+       int configtype;\r
+       int rc;\r
+\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }\r
+\r
+       strcpy(temp, "0"); findkey(kv, "CONFIG_TYPE", temp);\r
+       configtype = atol(temp);\r
+       \r
+       if (RED_IS_NOT_ETH)\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_DNS_GATEWAY_WITH_GREEN]);\r
+               return 0;\r
+       }\r
+\r
+       entries[DNS1].text = ctr[TR_PRIMARY_DNS];\r
+       strcpy(temp, ""); findkey(kv, "DNS1", temp);\r
+       values[DNS1] = strdup(temp);\r
+       entries[DNS1].value = &values[DNS1];\r
+       entries[DNS1].flags = 0;\r
+       \r
+       entries[DNS2].text = ctr[TR_SECONDARY_DNS];\r
+       strcpy(temp, ""); findkey(kv, "DNS2", temp);\r
+       values[DNS2] = strdup(temp);\r
+       entries[DNS2].value = &values[DNS2];\r
+       entries[DNS2].flags = 0;\r
+       \r
+       entries[DEFAULT_GATEWAY].text = ctr[TR_DEFAULT_GATEWAY];\r
+       strcpy(temp, ""); findkey(kv, "DEFAULT_GATEWAY", temp);\r
+       values[DEFAULT_GATEWAY] = strdup(temp);\r
+       entries[DEFAULT_GATEWAY].value = &values[DEFAULT_GATEWAY];\r
+       entries[DEFAULT_GATEWAY].flags = 0;\r
+       \r
+       entries[DNSGATEWAY_TOTAL].text = NULL;\r
+       entries[DNSGATEWAY_TOTAL].value = NULL;\r
+       entries[DNSGATEWAY_TOTAL].flags = 0;\r
+       \r
+       do\r
+       {\r
+               error = 0;\r
+               \r
+               rc = newtWinEntries(ctr[TR_DNS_AND_GATEWAY_SETTINGS], \r
+                       ctr[TR_DNS_AND_GATEWAY_SETTINGS_LONG], 50, 5, 5, 18, entries,\r
+                       ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+               if (rc == 0 || rc == 1)\r
+               {\r
+                       strcpy(message, ctr[TR_INVALID_FIELDS]);\r
+                       if (strlen(values[DNS1]))\r
+                       {\r
+                               if (inet_addr(values[DNS1]) == INADDR_NONE)\r
+                               {\r
+                                       strcat(message, ctr[TR_PRIMARY_DNS_CR]);\r
+                                       error = 1;\r
+                               }\r
+                       }\r
+                       if (strlen(values[DNS2]))\r
+                       {\r
+                               if (inet_addr(values[DNS2]) == INADDR_NONE)\r
+                               {\r
+                                       strcat(message, ctr[TR_SECONDARY_DNS_CR]);\r
+                                       error = 1;\r
+                               }\r
+                       }\r
+                       if (strlen(values[DEFAULT_GATEWAY]))\r
+                       {\r
+                               if (inet_addr(values[DEFAULT_GATEWAY]) == INADDR_NONE)\r
+                               {\r
+                                       strcat(message, ctr[TR_DEFAULT_GATEWAY_CR]);\r
+                                       error = 1;\r
+                               }\r
+                       }\r
+                       if (!strlen(values[DNS1]) && strlen(values[DNS2]))\r
+                       {\r
+                               strcpy(message, ctr[TR_SECONDARY_WITHOUT_PRIMARY_DNS]);\r
+                               error = 1;\r
+                       }\r
+\r
+                       if (error)\r
+                               errorbox(message);\r
+                       else\r
+                       {\r
+                               replacekeyvalue(kv, "DNS1", values[DNS1]);\r
+                               replacekeyvalue(kv, "DNS2", values[DNS2]);\r
+                               replacekeyvalue(kv, "DEFAULT_GATEWAY", values[DEFAULT_GATEWAY]);\r
+                               netaddresschange = 1;\r
+                               free(values[DNS1]);\r
+                               free(values[DNS2]);\r
+                               free(values[DEFAULT_GATEWAY]);\r
+                               writekeyvalues(kv, CONFIG_ROOT "/ethernet/settings");\r
+                       }\r
+               }\r
+       }\r
+       while (error);\r
+       \r
+       freekeyvalues(kv);\r
+       \r
+       return 1;\r
+}                      \r
diff --git a/src/install+setup/setup/passwords.c b/src/install+setup/setup/passwords.c
new file mode 100644 (file)
index 0000000..37e855c
--- /dev/null
@@ -0,0 +1,123 @@
+/* SmoothWall setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Password stuff.\r
+ * \r
+ * $Id: passwords.c,v 1.5.2.1 2004/04/14 22:05:41 gespinasse Exp $\r
+ * \r
+ */\r
+\r
+#include "setup.h"\r
+\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+extern int automode;\r
+\r
+int getpassword(char *password, char *text);\r
+\r
+/* Root password. */\r
+int handlerootpassword(void)\r
+{\r
+       char password[STRING_SIZE];\r
+       char commandstring[STRING_SIZE];\r
+               \r
+       /* Root password. */\r
+       if (getpassword(password, ctr[TR_ENTER_ROOT_PASSWORD]) == 2)\r
+               return 0;\r
+       \r
+       snprintf(commandstring, STRING_SIZE,\r
+               "/bin/echo 'root:%s' | /usr/sbin/chpasswd",     password);\r
+       if (runhiddencommandwithstatus(commandstring, ctr[TR_SETTING_ROOT_PASSWORD]))\r
+       {\r
+               errorbox(ctr[TR_PROBLEM_SETTING_ROOT_PASSWORD]);\r
+               return 0;\r
+       }\r
+       \r
+       return 1;\r
+}\r
+\r
+int handleadminpassword(void)\r
+{\r
+       char password[STRING_SIZE];\r
+       char commandstring[STRING_SIZE];\r
+       char message[1000];\r
+               \r
+       /* web interface admin password. */\r
+       sprintf(message, ctr[TR_ENTER_ADMIN_PASSWORD], NAME, NAME);\r
+       if (getpassword(password, message) == 2)\r
+               return 0;\r
+       \r
+       snprintf(commandstring, STRING_SIZE,\r
+               "/usr/bin/htpasswd -c -m -b " CONFIG_ROOT "/auth/users admin '%s'", password);\r
+       sprintf(message, ctr[TR_SETTING_ADMIN_PASSWORD], NAME);\r
+       if (runhiddencommandwithstatus(commandstring, message))\r
+       {\r
+               sprintf(message, ctr[TR_PROBLEM_SETTING_ADMIN_PASSWORD], NAME);\r
+               errorbox(message);\r
+               return 0;\r
+       }\r
+\r
+       return 1;\r
+}\r
+\r
+/* Taken from the cdrom one. */\r
+int getpassword(char *password, char *text)\r
+{\r
+       char *values[] = {      NULL, NULL, NULL };     /* pointers for the values. */\r
+       struct newtWinEntry entries[] =\r
+       { \r
+               { ctr[TR_PASSWORD_PROMPT], &values[0], 2 },\r
+               { ctr[TR_AGAIN_PROMPT], &values[1], 2 },\r
+               { NULL, NULL, 0 }\r
+       };\r
+       char title[STRING_SIZE];\r
+       int rc;\r
+       int done;\r
+       \r
+       do\r
+       {\r
+               done = 1;\r
+               sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);\r
+               rc = newtWinEntries(title, text,\r
+                       50, 5, 5, 20, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+\r
+               if (rc != 2)\r
+               {\r
+                       if (strlen(values[0]) == 0 || strlen(values[1]) == 0)\r
+                       {\r
+                               errorbox(ctr[TR_PASSWORD_CANNOT_BE_BLANK]);\r
+                               done = 0;\r
+                               strcpy(values[0], "");\r
+                               strcpy(values[1], "");\r
+                       }\r
+                       else if (strcmp(values[0], values[1]) != 0)\r
+                       {\r
+                               errorbox(ctr[TR_PASSWORDS_DO_NOT_MATCH]);\r
+                               done = 0;\r
+                               strcpy(values[0], "");\r
+                               strcpy(values[1], "");\r
+                       }\r
+                       else if (strchr(values[0], ' '))\r
+                       {\r
+                               errorbox(ctr[TR_PASSWORD_CANNOT_CONTAIN_SPACES]);\r
+                               done = 0;\r
+                               strcpy(values[0], "");\r
+                               strcpy(values[1], "");\r
+                       }\r
+               }\r
+       }\r
+       while (!done);\r
+\r
+       strncpy(password, values[0], STRING_SIZE);\r
+\r
+       if (values[0]) free(values[0]);\r
+       if (values[1]) free(values[1]);\r
+\r
+       return rc;\r
+}\r
diff --git a/src/install+setup/setup/setup.h b/src/install+setup/setup/setup.h
new file mode 100644 (file)
index 0000000..92e56b1
--- /dev/null
@@ -0,0 +1,42 @@
+/* SmoothWall setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Main include file.\r
+ * \r
+ * $Id: setup.h,v 1.4 2003/12/11 11:25:54 riddles Exp $\r
+ * \r
+ */\r
+\r
+#include "../libsmooth/libsmooth.h"\r
+\r
+/* hostname.c */\r
+int handlehostname(void);\r
+\r
+/* domainname.c */\r
+int handledomainname(void);\r
+\r
+/* isdn.c */\r
+int handleisdn(void);\r
+\r
+/* networking.c */\r
+int handlenetworking(void);\r
+\r
+/* dhcp.c */\r
+int handledhcp(void);\r
+\r
+/* passwords.c */\r
+int handlerootpassword(void);\r
+int handlesetuppassword(void);\r
+int handleadminpassword(void);\r
+\r
+/* misc.c */\r
+int writehostsfiles(void);\r
+\r
+/* keymap.c */\r
+int handlekeymap(void);\r
+\r
+/* timezone.c */\r
+int handletimezone(void);\r
diff --git a/src/install+setup/setup/timezone.c b/src/install+setup/setup/timezone.c
new file mode 100644 (file)
index 0000000..05ce3ab
--- /dev/null
@@ -0,0 +1,134 @@
+/* SmoothWall setup program.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Stuff for setting the timezone.\r
+ * \r
+ * $Id: timezone.c,v 1.4.2.1 2004/04/14 22:05:41 gespinasse Exp $\r
+ * \r
+ */\r
+\r
+#include "setup.h"\r
\r
+extern FILE *flog;\r
+extern char *mylog;\r
+\r
+extern char **ctr;\r
+\r
+extern int automode;\r
+\r
+#define MAX_FILENAMES 5000\r
+#define ZONEFILES "/usr/share/zoneinfo/posix"\r
+\r
+static int filenamecount;\r
+static char *filenames[MAX_FILENAMES];\r
+static char *displaynames[MAX_FILENAMES];\r
+\r
+static int process(char *prefix, char *path);\r
+static int cmp(const void *s1, const void *s2);\r
+\r
+int handletimezone(void)\r
+{\r
+       int c;\r
+       int choice;\r
+       char *temp;\r
+       struct keyvalue *kv = initkeyvalues();  \r
+       int rc;\r
+       int result;\r
+       char timezone[STRING_SIZE];\r
+\r
+       filenamecount = 0;      \r
+\r
+       process(ZONEFILES, "");\r
+       filenames[filenamecount] = NULL;\r
+       qsort(filenames, filenamecount, sizeof(char *), cmp);\r
+       \r
+       for (c = 0; filenames[c]; c++)\r
+       {\r
+               displaynames[c] = malloc(STRING_SIZE);\r
+               if ((temp = strstr(filenames[c], ZONEFILES)))\r
+                       strcpy(displaynames[c], temp + strlen(ZONEFILES) + 1);\r
+               else\r
+                       strcpy(displaynames[c], filenames[c]);\r
+       }\r
+       displaynames[c] = NULL;\r
+       \r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))\r
+       {\r
+               freekeyvalues(kv);\r
+               errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);\r
+               return 0;\r
+       }       \r
+       \r
+       strcpy(timezone, ZONEFILES "/CET");\r
+       findkey(kv, "TIMEZONE", timezone);\r
+       \r
+       choice = 0;\r
+       for (c = 0; filenames[c]; c++)\r
+       {\r
+               if (strcmp(timezone, filenames[c]) == 0)\r
+                       choice = c;\r
+       }\r
+       \r
+       rc = newtWinMenu(ctr[TR_TIMEZONE], ctr[TR_TIMEZONE_LONG], 50, 5, 5, 6, displaynames, &choice,\r
+               ctr[TR_OK], ctr[TR_CANCEL], NULL);\r
+\r
+       strcpy(timezone, filenames[choice]);\r
+       \r
+       if (rc != 2)\r
+       {\r
+               replacekeyvalue(kv, "TIMEZONE", timezone);\r
+               writekeyvalues(kv, CONFIG_ROOT "/main/settings");\r
+               unlink("/etc/localtime");\r
+               link(timezone, "/etc/localtime");\r
+               result = 1;\r
+       }\r
+       else\r
+               result = 0;     \r
+       \r
+       for (c = 0; filenames[c]; c++)\r
+       {\r
+               free(filenames[c]);\r
+               free(displaynames[c]);\r
+       }\r
+       freekeyvalues(kv);      \r
+       \r
+       return result;\r
+}\r
+\r
+static int process(char *prefix, char *path)\r
+{\r
+       DIR *dir;\r
+       struct dirent *de;\r
+       char newpath[PATH_MAX];\r
+       \r
+       snprintf(newpath, PATH_MAX, "%s%s", prefix, path);\r
+       \r
+       if (!(dir = opendir(newpath)))\r
+       {\r
+               if (filenamecount > MAX_FILENAMES)\r
+                       return 1;\r
+               \r
+               filenames[filenamecount] = (char *) strdup(newpath);\r
+               filenamecount++;\r
+               return 0;\r
+       }\r
+                       \r
+       while ((de = readdir(dir)))\r
+       {\r
+               if (de->d_name[0] == '.') continue;\r
+               snprintf(newpath, PATH_MAX, "%s/%s", path, de->d_name);\r
+               process(prefix, newpath);\r
+       }\r
+       closedir(dir);\r
+       \r
+       return 1;\r
+}\r
+\r
+/* Small wrapper for use with qsort(). */              \r
+static int cmp(const void *s1, const void *s2)\r
+{\r
+       return (strcmp(* (char **) s1, * (char **) s2));\r
+}\r
diff --git a/src/misc-progs/CVS/Entries b/src/misc-progs/CVS/Entries
new file mode 100644 (file)
index 0000000..322dabf
--- /dev/null
@@ -0,0 +1,30 @@
+/Makefile/1.5.2.7/Sun Nov 20 23:20:13 2005//TIPCOP_v1_4_0
+/installfcdsl.c/1.1.2.4/Sat Dec 11 08:55:37 2004//TIPCOP_v1_4_0
+/installpackage.c/1.3.2.6/Mon Aug 22 20:51:38 2005//TIPCOP_v1_4_0
+/iowrap.c/1.2/Tue Nov 27 15:20:50 2001//TIPCOP_v1_4_0
+/ipcopbackup.c/1.8.2.6/Fri Jan 20 13:30:42 2006//TIPCOP_v1_4_0
+/ipcopbkcfg.c/1.2.2.6/Sun Nov 20 23:20:13 2005//TIPCOP_v1_4_0
+/ipcopdeath.c/1.2/Thu Dec 11 10:57:34 2003//TIPCOP_v1_4_0
+/ipcoprebirth.c/1.2/Thu Dec 11 10:57:34 2003//TIPCOP_v1_4_0
+/ipcopreboot.c/1.1.2.2/Mon Oct 24 23:05:50 2005//TIPCOP_v1_4_0
+/ipcoprscfg.c/1.2.2.6/Mon Nov 21 00:11:39 2005//TIPCOP_v1_4_0
+/ipsecctrl.c/1.5.2.14/Sun May 15 12:58:28 2005//TIPCOP_v1_4_0
+/logwatch.c/1.2/Thu Dec 11 11:25:54 2003//TIPCOP_v1_4_0
+/rebuildhosts.c/1.3.2.6/Mon Jul 11 10:56:47 2005//TIPCOP_v1_4_0
+/restartdhcp.c/1.5.2.1/Wed Nov  3 13:50:26 2004//TIPCOP_v1_4_0
+/restartntpd.c/1.5/Fri Dec 19 14:29:09 2003//TIPCOP_v1_4_0
+/restartshaping.c/1.2.2.5/Fri Jan 28 13:11:40 2005//TIPCOP_v1_4_0
+/restartsnort.c/1.8.2.3/Sun Oct 16 12:36:14 2005//TIPCOP_v1_4_0
+/restartsquid.c/1.7.2.8/Fri Apr 22 18:44:37 2005//TIPCOP_v1_4_0
+/restartssh.c/1.3/Thu Dec 11 10:57:34 2003//TIPCOP_v1_4_0
+/restartsyslogd.c/1.2.2.3/Tue Dec 14 17:56:37 2004//TIPCOP_v1_4_0
+/restartwireless.c/1.2.2.5/Mon Jul 11 10:56:47 2005//TIPCOP_v1_4_0
+/setaliases.c/1.2.2.4/Sun Aug 22 22:01:44 2004//TIPCOP_v1_4_0
+/setdate.c/1.2/Thu Dec 11 11:25:54 2003//TIPCOP_v1_4_0
+/setdmzholes.c/1.5.2.3/Tue Oct 18 17:05:27 2005//TIPCOP_v1_4_0
+/setfilters.c/1.1.2.2/Tue Feb  7 20:54:16 2006//TIPCOP_v1_4_0
+/setportfw.c/1.3.2.6/Wed Aug 24 18:44:19 2005//TIPCOP_v1_4_0
+/setuid.c/1.2.2.1/Fri Nov 18 14:51:43 2005//TIPCOP_v1_4_0
+/setuid.h/1.4.2.4/Sun Nov 20 23:20:13 2005//TIPCOP_v1_4_0
+/setxtaccess.c/1.3.2.1/Tue Jan  4 17:21:40 2005//TIPCOP_v1_4_0
+D
diff --git a/src/misc-progs/CVS/Repository b/src/misc-progs/CVS/Repository
new file mode 100644 (file)
index 0000000..fbfd5a1
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/misc-progs
diff --git a/src/misc-progs/CVS/Root b/src/misc-progs/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/misc-progs/CVS/Tag b/src/misc-progs/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile
new file mode 100644 (file)
index 0000000..566d334
--- /dev/null
@@ -0,0 +1,82 @@
+#
+# $Id: Makefile,v 1.5.2.7 2005/11/20 23:20:13 franck78 Exp $
+#
+
+CC=gcc 
+CFLAGS=-O2 -Wall
+
+COMPILE=$(CC) $(CFLAGS)
+
+PROGS = iowrap
+SUID_PROGS = setdmzholes setportfw setfilters setxtaccess restartdhcp restartsnort \
+       restartsquid restartssh ipcopreboot \
+       ipcopbkcfg ipcoprscfg installpackage installfcdsl ipsecctrl \
+       setaliases ipcopbackup restartshaping restartntpd \
+       restartwireless setdate rebuildhosts \
+       restartsyslogd logwatch
+
+install : all
+       install -m 755  $(PROGS) /usr/local/bin
+       install -m 4750 -g nobody $(SUID_PROGS) /usr/local/bin
+
+all : $(PROGS) $(SUID_PROGS)
+
+clean : 
+       -rm -f $(PROGS) $(SUID_PROGS) *.o core
+
+######
+
+% : %.c
+       $(COMPILE) $< setuid.o -o $@
+
+setuid.o: setuid.c setuid.h
+       $(COMPILE) $< -c -o $@
+
+$(SUID_PROGS): setuid.o
+
+$(PROGS): setuid.o
+
+logwatch: logwatch.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ logwatch.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+setaliases: setaliases.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ setaliases.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+setdmzholes: setdmzholes.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ setdmzholes.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+setportfw: setportfw.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ setportfw.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+setfilters: setfilters.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ setfilters.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+rebuildhosts: rebuildhosts.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ rebuildhosts.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+restartdhcp: restartdhcp.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ restartdhcp.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+restartshaping: restartshaping.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ restartshaping.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+restartssh: restartssh.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ restartssh.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+restartsquid: restartsquid.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ restartsquid.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+restartsnort: restartsnort.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ restartsnort.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+restartsyslogd: restartsyslogd.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ restartsyslogd.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+restartwireless: restartwireless.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ restartwireless.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+ipsecctrl: ipsecctrl.c setuid.o ../install+setup/libsmooth/varval.o
+       $(COMPILE) -I../install+setup/libsmooth/ ipsecctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+
+ipcopbackup: ipcopbackup.c setuid.o 
+       $(COMPILE) -lcrypt ipcopbackup.c setuid.o -o $@
diff --git a/src/misc-progs/installfcdsl.c b/src/misc-progs/installfcdsl.c
new file mode 100644 (file)
index 0000000..e3e8a6a
--- /dev/null
@@ -0,0 +1,88 @@
+/*\r
+ * This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * Copyright (C) 2004-10-14 Gilles Espinasse <g.esp.ipcop@free.fr>\r
+ *\r
+ * $Id: installfcdsl.c,v 1.1.2.4 2004/12/11 08:55:37 gespinasse Exp $\r
+ *\r
+ */\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <sys/types.h>\r
+#include <fcntl.h>\r
+#include <grp.h>\r
+#include "setuid.h"\r
+\r
+#define FCDSL_TGZ_PATH "/var/patches/fcdsl-x.tgz"\r
+\r
+char   command[STRING_SIZE],tmpdir[] = "/tmp/fcdsl_XXXXXX";\r
+\r
+void exithandler(void)\r
+{\r
+       if(strcmp(tmpdir,"/tmp/fcdsl_XXXXXX"))\r
+       {\r
+               chdir("/tmp");\r
+               snprintf(command, STRING_SIZE - 1, "/bin/rm -rf %s", tmpdir);\r
+               if(safe_system(command))\r
+                       perror("Couldn't remove temp dir");\r
+       }\r
+       /* remove loaded package */\r
+       snprintf (command, STRING_SIZE-1, FCDSL_TGZ_PATH);\r
+       unlink (command);\r
+}\r
+\r
+int main(void)\r
+{\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       atexit(exithandler);\r
+\r
+\r
+       if (close(0)) { fprintf(stderr, "Couldn't close 0\n"); exit(1); }\r
+       if (open("/dev/zero", O_RDONLY) != 0) {fprintf(stderr, "Couldn't reopen stdin from /dev/zero\n"); exit(1); }\r
+       if (close(2)) { fprintf(stderr, "Couldn't close 2\n"); exit(1); }\r
+       if (! dup(1)) { fprintf(stderr, "Couldnt redirect stderr to stdout\n"); exit(1); }\r
+\r
+       /* create temporary directory for testing untar */\r
+       if (mkdtemp (tmpdir)==NULL) {\r
+           exit(1);\r
+       }\r
+\r
+       /* Test untarring files from compressed archive */\r
+       snprintf (command, STRING_SIZE-1, "/bin/tar -C %s -xzf %s lib/modules/*/misc/fcdsl*.o.gz "\r
+               "usr/lib/isdn/{fds?base.bin,fd?ubase.frm} etc/fcdsl/fcdsl*.conf etc/drdsl/drdsl* "\r
+               "var/run/need-depmod-* > /dev/null 2> /dev/null", tmpdir, FCDSL_TGZ_PATH);\r
+       if (safe_system (command)) {\r
+           fprintf (stderr, "Invalid archive\n");\r
+           exit(1);\r
+       }\r
+\r
+       /* Start (real) untarring files from compressed archive */\r
+       snprintf (command, STRING_SIZE-1, "/bin/tar -C / -xzvf %s lib/modules/*/misc/fcdsl*.o.gz "\r
+               "usr/lib/isdn/{fds?base.bin,fd?ubase.frm} etc/fcdsl/fcdsl*.conf etc/drdsl/drdsl* "\r
+               "var/run/need-depmod-* ", FCDSL_TGZ_PATH);\r
+       if (safe_system (command)) {\r
+           fprintf (stderr, "Error installing modules\n");\r
+           exit(1);\r
+       }\r
+\r
+       exit(0);\r
+}\r
diff --git a/src/misc-progs/installpackage.c b/src/misc-progs/installpackage.c
new file mode 100644 (file)
index 0000000..dab9864
--- /dev/null
@@ -0,0 +1,218 @@
+/* This file is part of the IPCop Firewall.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * Copyright (C) 2004-05-31 Robert Kerr <rkerr@go.to>\r
+ *\r
+ * Loosely based on the smoothwall helper program by the same name,\r
+ * portions are (c) Lawrence Manning, 2001\r
+ *\r
+ * $Id: installpackage.c,v 1.3.2.6 2005/08/22 20:51:38 eoberlander Exp $\r
+ * \r
+ */\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <errno.h>\r
+#include <sys/file.h>\r
+#include <fcntl.h>\r
+#include <syslog.h>\r
+#include <time.h>\r
+#include "setuid.h"\r
+\r
+#define ERR_ANY 1\r
+#define ERR_TMPDIR 2\r
+#define ERR_SIG 3\r
+#define ERR_TAR 4\r
+#define ERR_INFO 5\r
+#define ERR_PACKLIST 6\r
+#define ERR_INSTALLED 7\r
+#define ERR_POPEN 8\r
+#define ERR_SETUP 9\r
+#define ERR_MISSING_PREVIOUS 10\r
+#define ERR_DISK 11\r
+\r
+/* The lines in the package information file and the patches/installed list\r
+ * are often longer than STRING_SIZE so we use a larger buffer */\r
+#define BUFFER_SIZE 4096\r
+\r
+char *info = NULL;\r
+FILE *infofile = NULL;\r
+char command[STRING_SIZE], tmpdir[] = "/var/log/pat_install_XXXXXX";\r
+void exithandler(void)\r
+{\r
+       if(info) free(info);\r
+       if(infofile)\r
+       {\r
+               flock(fileno(infofile), LOCK_UN);\r
+               fclose(infofile);\r
+       }\r
+       /* Cleanup tmpdir */\r
+       chdir("/var/patches"); /* get out of it before erasing */\r
+       snprintf(command, STRING_SIZE - 1, "/bin/rm -rf %s", tmpdir);\r
+       if(safe_system(command))\r
+           perror("Couldn't remove temp dir");\r
+}\r
+\r
+int main(int argc, char *argv[])\r
+{\r
+       char buffer[BUFFER_SIZE];\r
+       int ret;\r
+       FILE *p;\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       /* Sanitize arguments */\r
+       if (argc < 2)\r
+       {\r
+               fprintf(stderr, "Missing arg\n");\r
+               exit(1);\r
+       }\r
+       if (strspn(argv[1], NUMBERS) != strlen(argv[1]))\r
+       {\r
+               fprintf(stderr, "Bad arg\n");\r
+               exit(1);\r
+       }\r
+\r
+       if(!mkdtemp(tmpdir))\r
+       {\r
+               perror("Unable to create secure temp dir");\r
+               exit(ERR_TMPDIR);\r
+       }\r
+       \r
+       /* now exithandler will have something to erase */ \r
+       atexit(exithandler);\r
+\r
+       /* verify and extract package */\r
+       memset(command, 0, STRING_SIZE);\r
+       snprintf(command, STRING_SIZE-1, "/usr/bin/gpg --batch --homedir /root/.gnupg -o %s/patch.tar.gz --decrypt /var/patches/patch-%s.tar.gz.gpg", tmpdir, argv[1]);\r
+       ret = safe_system(command) >> 8;\r
+       if(ret==1)  /* 1=> gpg-key error */\r
+       {\r
+               fprintf(stderr, "Invalid package: signature check failed\n");\r
+               exit(ERR_SIG);\r
+       }\r
+       if(ret==2)  /* 2=> gpg pub key not found */\r
+       {\r
+               fprintf(stderr, "Public signature not found (who signed package?) !\n");\r
+               exit(ERR_SIG);\r
+       }\r
+       if(ret) /* retry extraction on other partition */\r
+       {   \r
+           rmdir(tmpdir);\r
+           strcpy (tmpdir,"/var/patches/install_XXXXXX");\r
+           if(!mkdtemp(tmpdir))\r
+           {\r
+                   perror("Unable to create secure temp dir");\r
+                   _exit(ERR_TMPDIR); /* no need exit handler */\r
+           }\r
+           memset(command, 0, STRING_SIZE);\r
+           snprintf(command, STRING_SIZE-1, "/usr/bin/gpg --batch --homedir /root/.gnupg -o %s/patch.tar.gz --decrypt /var/patches/patch-%s.tar.gz.gpg", tmpdir, argv[1]);\r
+           ret = safe_system(command);\r
+           if(ret)\r
+           {\r
+                   fprintf(stderr, "Not enough disk space or gpg error %d !\n",ret);\r
+                   exit(ERR_DISK);\r
+           }   \r
+       }\r
+       /* no more needed gpg-package & make room */\r
+       snprintf(command, STRING_SIZE-1, "/var/patches/patch-%s.tar.gz.gpg", argv[1]);\r
+       unlink ( command );\r
+       \r
+       /* unzip the package */\r
+       chdir (tmpdir);\r
+       if(safe_system("/bin/tar xzf patch.tar.gz"))\r
+       {\r
+               fprintf(stderr, "Invalid package: untar failed\n");\r
+               exit(ERR_TAR);\r
+       }\r
+       /* And read 'information' to check validity */\r
+       snprintf(buffer, STRING_SIZE-1, "%s/information", tmpdir);\r
+       if(!(infofile = fopen(buffer,"r")))\r
+       {\r
+               if(errno == ENOENT)\r
+                       fprintf(stderr, "Invalid package: contains no information file\n");\r
+               else\r
+                       perror("Unable to open package information file");\r
+               exit(ERR_INFO);\r
+       }\r
+       if(!fgets(buffer, BUFFER_SIZE, infofile))\r
+       {\r
+               perror("Couldn't read package information");\r
+               exit(ERR_INFO);\r
+       }\r
+       fclose(infofile);\r
+       if(buffer[strlen(buffer)-1] == '\n')\r
+               buffer[strlen(buffer)-1] = '\0';\r
+       if(!strchr(buffer,'|'))\r
+       {\r
+               fprintf(stderr, "Invalid package: malformed information string.\n");\r
+               exit(ERR_INFO);\r
+       }\r
+       info = strdup(buffer);\r
+\r
+       /* check if package is already installed */\r
+       if(!(infofile = fopen(CONFIG_ROOT "/patches/installed","r+")))\r
+       {\r
+               perror("Unable to open installed package list");\r
+               exit(ERR_PACKLIST);\r
+       }\r
+       /* get exclusive lock to prevent a mess if 2 copies run at once, and set\r
+        * close-on-exec flag so the FD doesn't leak to the setup script */\r
+       flock(fileno(infofile), LOCK_EX);\r
+       fcntl(fileno(infofile), F_SETFD, FD_CLOEXEC);\r
+\r
+       while(fgets(buffer, BUFFER_SIZE, infofile))\r
+       {\r
+               if(!strncmp(buffer, info, strlen(info)))\r
+               {\r
+                       fprintf(stderr,"This package is already installed\n");\r
+                       exit(ERR_INSTALLED);\r
+               }\r
+       }\r
+\r
+       /* install package */\r
+       openlog("installpackage", LOG_PID, LOG_USER);\r
+       snprintf(command, STRING_SIZE - 1, "%s/setup", tmpdir);\r
+       /* FIXME: popen suffers from the same environment problems as system() */\r
+       if (!(p = popen(command, "r")))\r
+       {\r
+               fprintf(stderr,"popen() failed\n");\r
+               closelog();\r
+               exit(ERR_POPEN);\r
+       }\r
+       setvbuf(p, NULL, _IOLBF, 255);\r
+       while (fgets(buffer, STRING_SIZE, p))\r
+       {\r
+               syslog(LOG_INFO, "%s", buffer);\r
+       }\r
+       ret = pclose(p);\r
+       closelog();\r
+\r
+       if(ret)\r
+       {\r
+               fprintf(stderr, "setup script returned exit code %d\n", ret>>8);\r
+               exit(ERR_SETUP);\r
+       }\r
+\r
+       /* write to package db */\r
+       if(strncmp(info, "000|", 4))\r
+       {\r
+               time_t curtime = time(NULL);\r
+               strftime(buffer, STRING_SIZE, "%Y-%m-%d", gmtime(&curtime));\r
+               fprintf(infofile, "%s|%s\n", info, buffer);\r
+               flock(fileno(infofile), LOCK_UN);\r
+               fclose(infofile);\r
+       } else { /* Full system upgrade to new version */\r
+               flock(fileno(infofile), LOCK_UN);\r
+               fclose(infofile);\r
+               unlink(CONFIG_ROOT "/patches/available");\r
+               unlink(CONFIG_ROOT "/patches/installed");\r
+       }\r
+       free(info);\r
+       exit(0);\r
+}\r
diff --git a/src/misc-progs/iowrap.c b/src/misc-progs/iowrap.c
new file mode 100644 (file)
index 0000000..e56203e
--- /dev/null
@@ -0,0 +1,44 @@
+/* SmoothWall helper program - iowrap.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Installer helper for redirecting stdout/stderr to a file/terminal.\r
+ * init calls ash through this program to shove it on a tty.\r
+ * \r
+ * $Id: iowrap.c,v 1.2 2001/11/27 15:20:50 riddles Exp $\r
+ * \r
+ */\r
+\r
+#include <stdio.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <fcntl.h>\r
+#include <unistd.h>\r
+\r
+int main(int argc, char *argv[])\r
+{\r
+       /* Prog takes one argument.  A device to run on (like a getty) */\r
+       if (argc >= 2)\r
+       {\r
+               int fd;\r
+               \r
+               if ((fd = open(argv[1], O_RDWR)) == -1)\r
+               {\r
+                       printf("Couldn't open device\n");\r
+                       return 0;\r
+               }\r
+               dup2(fd, 0);\r
+               dup2(fd, 1);\r
+               dup2(fd, 2);\r
+               /* Now its sending/reading on that device. */\r
+       }\r
+       \r
+       if (argc >= 3)  \r
+               execvp(argv[2], &argv[2]);\r
+       else\r
+               printf("No command\n");\r
+\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/ipcopbackup.c b/src/misc-progs/ipcopbackup.c
new file mode 100644 (file)
index 0000000..d3f1efa
--- /dev/null
@@ -0,0 +1,290 @@
+/*\r
+ * This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * Copyright (C) 2002-06-02 Mark Wormgoor <mark@wormgoor.com>\r
+ *\r
+ * $Id: ipcopbackup.c,v 1.8.2.6 2006/01/20 13:30:42 franck78 Exp $\r
+ *\r
+ */\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <fcntl.h>\r
+#include <pwd.h>\r
+#include <shadow.h>\r
+#include <crypt.h>\r
+#include <glob.h>\r
+#include "setuid.h"\r
+\r
+// want a bigger buffer to concatenate a possibly long string\r
+#define COMMAND_SIZE 4000\r
+//Append lines contained in 'inputfile' to 'string'\r
+int catlist(char* inputfile,\r
+           char* string ) {\r
+\r
+    struct stat s;             // input file stats\r
+    char buffer[STRING_SIZE];  // read buffer\r
+\r
+    if (stat(inputfile,&s) != 0) return 1;\r
+    if (s.st_size+strlen(string)>COMMAND_SIZE) return 1;       // too big!\r
+    int f = open(inputfile, O_RDONLY);\r
+    if (!f) return 1;                                                  // cannot open file\r
+\r
+    int count;\r
+    while ((count = read(f, buffer, STRING_SIZE - 1))) {\r
+       int j;\r
+       for (j=0; j<count; j++) {       //replace newlines with spaces\r
+           if (buffer[j] == '\n') buffer[j] = ' ';  \r
+       }\r
+       buffer[j] = '\0';\r
+       strcat (string,buffer); // append to string\r
+    }\r
+    close (f);\r
+    return 0;  //success\r
+}\r
+\r
+// make a raw backup to floppy_dev (no partitioning)\r
+int savecfg_floppy(char* floppy_dev) {\r
+       char command[COMMAND_SIZE];  // because copy each filename here\r
+\r
+       // want special output...\r
+        if (close(0)) { fprintf(stderr, "Couldn't close 0\n"); exit(1); }\r
+        if (open("/dev/zero", O_RDONLY) != 0) {fprintf(stderr, "Couldn't reopen stdin from /dev/zero\n"); exit(1); }\r
+        if (close(2)) { fprintf(stderr, "Couldn't close 2\n"); exit(1); }\r
+       if (! dup(1)) { fprintf(stderr, "Couldnt redirect stderr to stdout\n"); exit(1); }\r
+\r
+       /* Make sure floppy device name is up to date */\r
+       safe_system ("/usr/sbin/updfstab");\r
+\r
+       /* Darren Critchley - check for floppy disk in disk drive before continuing */\r
+       snprintf (command, STRING_SIZE-1, "dd if=%s of=/dev/null bs=1k count=1 2> /dev/null", floppy_dev);\r
+       if (safe_system(command)) {\r
+               perror( "Error: No floppy in drive or bad floppy in drive" );\r
+               exit(1);\r
+       }\r
+\r
+       /* Clearing disk */\r
+       snprintf (command, STRING_SIZE-1, "/bin/dd if=/dev/zero of=%s bs=1k 2> /dev/null", floppy_dev);\r
+       safe_system (command);\r
+\r
+       /* Start tarring files to floppy */\r
+       snprintf (command, COMMAND_SIZE-1, "/bin/tar -X " CONFIG_ROOT"/backup/exclude.system "\r
+                                                   "-X " CONFIG_ROOT"/backup/exclude.user "\r
+                                                   "-C / -cvzf %s "\r
+                                                   "-T " CONFIG_ROOT"/backup/include.user ",\r
+                                                   floppy_dev);\r
+       /* add include.system file content to 'command' */\r
+        if (catlist(CONFIG_ROOT "/backup/include.system", command))  {\r
+                fprintf(stderr, "Couldn't open backup system include file\n");\r
+               exit (1);\r
+        }\r
+       safe_system (command);\r
+\r
+       /* Now check it */\r
+       snprintf (command, STRING_SIZE-1,"/bin/echo '<b>Checking</b>'; /bin/tar -tzf %s" , floppy_dev);\r
+       safe_system (command);\r
+\r
+       exit(0);\r
+}\r
+\r
+\r
+// Just verify that root password is ok\r
+int  checkrootpass (char* passwd) {\r
+\r
+    struct passwd *pw;\r
+    struct spwd *spwd;\r
+\r
+    if ((pw = getpwnam("root")) == NULL) {\r
+        return (0); // root unknown....!\r
+    }\r
+\r
+    // get shadowed password                       \r
+    spwd = getspnam("root");\r
+\r
+    //and use it in right place\r
+    if (spwd)\r
+        pw->pw_passwd = spwd->sp_pwdp;\r
+\r
+    return (strcmp ( crypt(passwd, pw->pw_passwd),     //encrypt cleartext\r
+                       pw->pw_passwd) == 0             //compare to encrypted version\r
+          ) ?  1 : 0;  // true or false\r
+}\r
+\r
+\r
+int main (int argc, char *argv[]) {\r
+       char command[STRING_SIZE];\r
+\r
+       if (argc < 3) {         // at least two args always needed, avoid some testing.\r
+           fprintf (stderr, "Err %s: used from cgi only !\n", argv[0]);\r
+           exit (1);\r
+       }\r
+\r
+       if (!initsetuid()){\r
+           fprintf (stderr, "Err %s: cannot setuid !\n", argv[0]);\r
+           exit (1);\r
+       }\r
+\r
+       // save on normal floppy for use during reinstall ONLY\r
+       if ( (strcmp(argv[1],"-savecfg" ) == 0) &&\r
+            (strcmp(argv[2],"floppy") == 0) ) \r
+            savecfg_floppy("/dev/floppy");     // to do: mount usb floppy....\r
+\r
+       if ( (strcmp(argv[1],"-proc" ) == 0) &&\r
+            (strcmp(argv[2],"partitions") == 0) ) { //  issue cat /proc/partitions\r
+\r
+           int fi;\r
+           if ( (fi = open("/proc/partitions", O_RDONLY))==-1) exit (1); // cannot open file\r
+           char string[STRING_SIZE];\r
+            int count;\r
+           while ((count = read(fi, string, STRING_SIZE))) {\r
+               write (1, string, count);\r
+           }\r
+           close (fi);\r
+           exit (0);\r
+       }\r
+\r
+       // output result of 'glob' function\r
+       if ( (strcmp(argv[1],"-glob" ) == 0)) {\r
+           glob_t g;\r
+           if (glob (argv[2],0,NULL,&g) == 0) {\r
+               char** pstr = g.gl_pathv;       // base array\r
+               while (*pstr) {                 // while not NULL\r
+                   printf ("%s\n", *pstr);     // pstr is a pointer to array of char*\r
+                   pstr++;                     // next pointer\r
+               }\r
+               globfree (&g);\r
+           }\r
+           exit (0);\r
+       }\r
+\r
+       // tell if the backup.key is present\r
+       if ( (strcmp(argv[1],"-key" ) == 0) &&\r
+            (strcmp(argv[2],"exist") == 0) ) { //  check key existence\r
+           if ( !(file_exists(BACKUP_KEY)) ) {\r
+               fprintf (stderr, "Err %s: backup key "BACKUP_KEY" does not exist !\n", argv[0]);\r
+               exit (ERR_KEY);\r
+           }\r
+           exit (0);\r
+       }\r
+\r
+       // cat the backup.key, for saving it\r
+       if ( strcmp(argv[1],"-keycat" ) == 0) {\r
+           if (! checkrootpass (argv[2])) exit (1); // but only if root pw provided\r
+           int fi;\r
+           if ( (fi = open(BACKUP_KEY, O_RDONLY))==-1) exit (1); // cannot open file\r
+           char string[STRING_SIZE];\r
+            int count;\r
+           while ((count = read(fi, string, STRING_SIZE))) {\r
+               write (1, string, count);\r
+           }\r
+           close (fi);\r
+           exit (0);\r
+       }\r
+       \r
+       //  generate a new backup.key ONLY if inexistant\r
+       if ( (strcmp(argv[1],"-key" ) == 0) &&\r
+            (strcmp(argv[2],"new") == 0) ) { \r
+           if ( (file_exists(BACKUP_KEY)) ) {\r
+               fprintf (stderr, "Err %s: backup key "BACKUP_KEY" already exists !\n", argv[0]);\r
+               exit (ERR_KEY);\r
+           }\r
+           //ok we can generate it\r
+           if (safe_system ("/usr/sbin/ipsec ranbits 256 > " BACKUP_KEY)) {\r
+               fprintf (stderr, "Err %s: couldn't create key !\n", argv[0]);\r
+               exit (ERR_KEY);\r
+           }\r
+           chmod(BACKUP_KEY, S_IRUSR); // protect it\r
+           exit (0);\r
+       }\r
+       \r
+       //  import a backup.key only if non existent\r
+       if ( (strcmp(argv[1],"-key" ) == 0) &&\r
+            (strcmp(argv[2],"import") == 0) ) {\r
+           if ( (file_exists(BACKUP_KEY)) ) {\r
+               unlink (MOUNTPOINT"/key");      // clean anyway\r
+               fprintf (stderr, "Err %s: backup key "BACKUP_KEY" already exists !\n", argv[0]);\r
+               exit (ERR_KEY);\r
+           }\r
+\r
+           int fi, fo;\r
+           if ( (fi = open(MOUNTPOINT"/key", O_RDONLY))==-1) {\r
+               fprintf (stderr, "Err %s: no backup key "MOUNTPOINT"/key to import !\n", argv[0]);\r
+               exit (ERR_KEY); // cannot open file\r
+           }   \r
+\r
+           if ( (fo = open(BACKUP_KEY, O_WRONLY | O_CREAT ))==-1) {\r
+               close (fi);\r
+               unlink (MOUNTPOINT"/key");      // clean anyway\r
+               fprintf (stderr, "Err %s: backup key "BACKUP_KEY" creation error !\n", argv[0]);\r
+               exit (ERR_KEY);\r
+           }\r
+\r
+           char buffer[STRING_SIZE];\r
+            int count;\r
+           while ((count = read(fi, buffer, STRING_SIZE))) {\r
+               write (fo, buffer, count);\r
+           }\r
+           close (fo);\r
+           close (fi);\r
+           unlink (MOUNTPOINT"/key");\r
+           exit (0);\r
+       }\r
+\r
+       // disk functions like mount umount,...\r
+       if ((strspn(argv[2], LETTERS_NUMBERS ) == strlen(argv[2])) &&\r
+           (strlen(argv[2]) >2) && (strlen(argv[2]) <6)) {\r
+               if (strcmp(argv[1],"-M") == 0) { //  M  sda1 => mount /dev/sda1 /mountpoint\r
+                       //safe_system("/bin/sync");\r
+                       snprintf(command, STRING_SIZE - 1,"/bin/mount -t vfat -o,uid=99,gid=99 /dev/%s "MOUNTPOINT, argv[2]);\r
+                       safe_system(command);\r
+                       //safe_system("/bin/sync");\r
+               }else\r
+               if (strcmp(argv[1],"-U") == 0) { // U sda1 => umount /dev/sda1\r
+                       //safe_system("/bin/sync");\r
+                       snprintf(command, STRING_SIZE - 1,"/bin/umount /dev/%s", argv[2]);\r
+                       safe_system(command);\r
+                       safe_system("/bin/sync");\r
+               }else\r
+               if (strcmp(argv[1],"-f") == 0) { // f sda1 => mke2fs /dev/sda1\r
+                       snprintf(command, STRING_SIZE - 1,"/sbin/mke2fs -q /dev/%s", argv[2]);\r
+                       //safe_system(command);\r
+                       //safe_system("/bin/sync");\r
+               }else\r
+               if (strcmp(argv[1],"-F") == 0) { // F sda => fdisk /dev/sda\r
+                       //safe_system("/bin/sync");\r
+                       snprintf(command, STRING_SIZE - 1,"/bin/dd if=/dev/zero of=/dev/%s count=2 bs=512", argv[2]);\r
+                       //safe_system(command);\r
+                       snprintf(command, STRING_SIZE - 1,"/bin/echo \"n\np\n1\n1\n\nw\nq\n\"|/sbin/fdisk /dev/%s", argv[2]);\r
+                       //safe_system(command);\r
+                       snprintf(command, STRING_SIZE - 1,"/sbin/mke2fs -q /dev/%s1", argv[2]);  // beware of %s1\r
+                       //safe_system(command);\r
+                       //safe_system("/bin/sync");\r
+               }else {\r
+                   fprintf (stderr, "Err %s: bad command !\n", argv[0]);\r
+                   exit (1);\r
+               }\r
+               exit (0);\r
+       }else {\r
+               fprintf (stderr, "Err %s: bad arg !\n", argv[0]);\r
+               exit (1);\r
+       }\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/ipcopbkcfg.c b/src/misc-progs/ipcopbkcfg.c
new file mode 100644 (file)
index 0000000..c12f7f5
--- /dev/null
@@ -0,0 +1,239 @@
+/*\r
+ * This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * Copyright (C) 2003-06-25 Tim Butterfield <timbutterfield@mindspring.com>\r
+ *\r
+ * $Id: ipcopbkcfg.c,v 1.2.2.6 2005/11/20 23:20:13 franck78 Exp $\r
+ *\r
+ */\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <fcntl.h>\r
+#include <grp.h>\r
+#include <dirent.h>\r
+#include "setuid.h"\r
+\r
+\r
+#define EXCLUDE_HARDWARE "exclude.hardware"  // exclude file not used on backup but only optionally on restore\r
+#define TMP_TAR        "/tmp/backup.tar"\r
+\r
+char tempincfilename[STRING_SIZE] = "";  /* temp include file name */\r
+char tempexcfilename[STRING_SIZE] = "";  /* temp exclude file name */\r
+char temptarfilename[STRING_SIZE] = "";\r
+\r
+/* add fname contents to outfile */\r
+void add_file(int outfile, const char *fname, int verbose)\r
+{\r
+       FILE *freadfile;\r
+       char fbuff[STRING_SIZE];\r
+\r
+       if (!(freadfile = fopen(fname, "r"))) {\r
+               /* skip this file */\r
+               return;\r
+       }\r
+\r
+       while (fgets(fbuff, STRING_SIZE-1, freadfile) != NULL) {\r
+               int offset=0;\r
+               char *ch;\r
+               char chk_space=1;\r
+\r
+               /* trim string in place - don't remove spaces in middle */\r
+               ch = fbuff;\r
+               while (*ch) {\r
+                       if (*ch == '\r' || *ch == '\n') {\r
+                               *ch = '\0';\r
+                       }\r
+\r
+                       if (offset) {\r
+                               *(ch-offset) = *ch;\r
+                       }\r
+\r
+                       if (*ch == '\t' || *ch == ' ') {\r
+                               if (chk_space) {\r
+                                       offset++;\r
+                               }\r
+                       } else {\r
+                               chk_space=0;\r
+                       }\r
\r
+                       ch++;\r
+               }\r
+\r
+               /* remove trailing spaces */\r
+               ch = fbuff + strlen(fbuff) - 1;\r
+               while (*ch) {\r
+                       if (*ch == '\t' || *ch == ' ') {\r
+                               *ch = '\0';\r
+                               --ch;\r
+                       } else {\r
+                               break;\r
+                       }\r
+               }\r
+\r
+               /* validate name and add it */\r
+               chdir ("/"); /* support both absolute and relative path */\r
+               if (*fbuff) {\r
+                       if (file_exists_w(fbuff)) {\r
+                               strcat(fbuff, "\n");\r
+                               write(outfile, fbuff, strlen(fbuff));\r
+                               if (verbose)\r
+                                       fprintf(stdout, " %s", fbuff);\r
+                       }\r
+               }\r
+       }\r
+       fclose(freadfile);\r
+}\r
+\r
+\r
+/* combine files starting with fnamebase into outfile */\r
+int cmb_files(int outfile, const char *fnamebase, int verbose)\r
+{\r
+       /* scan the directory and add matching files */\r
+       struct dirent **namelist;\r
+       int namecount;\r
+       char addfilename[STRING_SIZE];\r
+\r
+       /* scan the directory and get a count of the files */\r
+       if ((namecount=scandir(CONFIG_ROOT"/backup", &namelist, 0, alphasort))<0) {\r
+               fprintf(stderr, "No files found\n");\r
+               exit(1);\r
+       }\r
+\r
+       /* process the scanned names */\r
+       while (namecount--) {\r
+               /* check names - compare beginning of name, ignoring case, ignore EXCLUDE_HARDWARE */\r
+               if ((strncasecmp(fnamebase,   namelist[namecount]->d_name, strlen(fnamebase))==0) &&\r
+                   (strncmp(EXCLUDE_HARDWARE,namelist[namecount]->d_name, strlen(EXCLUDE_HARDWARE)))) {\r
+                       /* add the contents for this name to output file */\r
+                       sprintf(addfilename, CONFIG_ROOT"/backup/%s", namelist[namecount]->d_name);\r
+                       if (verbose)\r
+                               fprintf(stdout, "%s\n",  namelist[namecount]->d_name);\r
+                       add_file(outfile, addfilename, verbose);\r
+                       free(namelist[namecount]);\r
+                       if (verbose)\r
+                               fprintf(stdout, "\n");\r
+               }\r
+       }\r
+       free(namelist);\r
+       return 0;\r
+}\r
+\r
+void exithandler(void)\r
+{\r
+       /* clean up temporary files */\r
+       if (temptarfilename)\r
+               unlink (temptarfilename);\r
+       if (tempincfilename)\r
+               unlink (tempincfilename);\r
+       if (tempexcfilename)\r
+               unlink (tempexcfilename);\r
+}\r
+\r
+int main(int argc, char**argv)\r
+{\r
+       int  verbose=0;\r
+       char command[STRING_SIZE];\r
+       char hostname[STRING_SIZE];\r
+       int  includefile, excludefile;\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       if (argc==2 && strcmp(argv[1],"--verbose")==0)\r
+               verbose=1; // display to stdout wich (ex|in)clude files are used\r
+\r
+       gethostname(hostname, STRING_SIZE-1);\r
+\r
+       if (!file_exists(BACKUP_KEY)) {\r
+               fprintf (stderr, "Couldn't locate encryption key\n");\r
+               exit (ERR_KEY);\r
+       }\r
+\r
+       /* now exithandler will have something to erase */ \r
+       atexit(exithandler);\r
+\r
+       /* combine every include and exclude files in backup directory into two temp file\r
+        * at the exception of exclude.hardware only used optionally on restore */\r
+       /* create/open temp output file */\r
+       // Todo: use -X exclude.files and for include.files, build the list on command line\r
+       // to avoid unneccesary files manipulations\r
+       strcpy (tempincfilename, "/tmp/backup-inclusion.XXXXXX");\r
+       strcpy (tempexcfilename, "/tmp/backup-exclusion.XXXXXX");\r
+       if ( (!(includefile = mkstemp (tempincfilename)) > 0) ||\r
+            (!(excludefile = mkstemp (tempexcfilename)) > 0) ){\r
+               fprintf(stderr, "Couldn't create temporary file.\n");\r
+               exit(1);\r
+       }\r
+       cmb_files(includefile, "include.", verbose);\r
+       close(includefile);\r
+       cmb_files(excludefile, "exclude.", verbose);\r
+       close(excludefile);\r
+\r
+       /* Create temporary tarfile */\r
+       strcpy (temptarfilename, TMP_TAR);\r
+\r
+       /* Start tarring files to temp archive\r
+        W (verify) and z (compress) tar options can't be used together, so separate tar from gzip */\r
+       snprintf (command, STRING_SIZE-1, "/bin/tar -T %s -X %s -C / -cWf %s > /dev/null 2> /dev/null",\r
+                                           tempincfilename, tempexcfilename, temptarfilename);\r
+       if (safe_system (command)) {\r
+               fprintf (stderr, "Couldn't create %s file\n", temptarfilename);\r
+               exit (ERR_TAR);\r
+       }\r
+       unlink (tempincfilename);\r
+       strcpy (tempincfilename,"");\r
+       unlink (tempexcfilename);\r
+       strcpy (tempincfilename,"");\r
+\r
+       /* Compress archive */\r
+       snprintf (command, STRING_SIZE-1, "/bin/gzip -c < %s > "MOUNTPOINT"/%s.tar.gz", temptarfilename, hostname);\r
+       if (safe_system (command)) {\r
+               fprintf (stderr, "Couldn't create "MOUNTPOINT"%s.tar.gz file\n", hostname);\r
+               exit (ERR_GZ);\r
+       }\r
+       unlink (temptarfilename);\r
+       strcpy (temptarfilename,"");\r
+       \r
+       /* Display to stdout include files names */\r
+       snprintf (command, STRING_SIZE-1, "/bin/tar -ztf "MOUNTPOINT"/%s.tar.gz", hostname);\r
+       if (safe_system (command)) {\r
+               fprintf (stderr, "Couldn't read %s.tar.gz file\n", hostname);\r
+               exit (ERR_TAR);\r
+       }\r
+\r
+       /* Encrypt archive */\r
+       snprintf (command, STRING_SIZE-1,\r
+               "/usr/bin/openssl des3 -e -salt -in "MOUNTPOINT"/%s.tar.gz "\r
+               "-out "MOUNTPOINT"/%s.dat -kfile " BACKUP_KEY, hostname, hostname);\r
+       if (safe_system (command)) {\r
+               fprintf (stderr, "Couldn't encrypt archive\n");\r
+               exit (ERR_ENCRYPT);\r
+       }\r
+       snprintf (command, STRING_SIZE-1, MOUNTPOINT"/%s.tar.gz", hostname);\r
+       unlink (command);\r
+       \r
+       /* Make sure web can overwrite */\r
+       snprintf (command, STRING_SIZE-1, MOUNTPOINT"/%s.dat", hostname);\r
+       chown (command, 99, 99);\r
+\r
+       exit(0);\r
+}\r
diff --git a/src/misc-progs/ipcopdeath.c b/src/misc-progs/ipcopdeath.c
new file mode 100644 (file)
index 0000000..9115b4f
--- /dev/null
@@ -0,0 +1,25 @@
+/* SmoothWall helper program - smoothiedeath\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Simple program intended to be installed setuid(0) that can be used for\r
+ * starting shutdown.\r
+ * \r
+ * $Id: ipcopdeath.c,v 1.2 2003/12/11 10:57:34 riddles Exp $\r
+ * \r
+ */\r
+         \r
+#include <stdlib.h>\r
+#include "setuid.h"\r
+\r
+int main(void)\r
+{\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+       \r
+       safe_system("/sbin/shutdown -h now");\r
+       \r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/ipcoprebirth.c b/src/misc-progs/ipcoprebirth.c
new file mode 100644 (file)
index 0000000..dd7988e
--- /dev/null
@@ -0,0 +1,25 @@
+/* SmoothWall helper program - smoothierebirth\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Simple program intended to be installed setuid(0) that can be used for\r
+ * starting reboot.\r
+ * \r
+ * $Id: ipcoprebirth.c,v 1.2 2003/12/11 10:57:34 riddles Exp $\r
+ * \r
+ */\r
+         \r
+#include <stdlib.h>\r
+#include "setuid.h"\r
+\r
+int main(void)\r
+{\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+                       \r
+       safe_system("/sbin/shutdown -r now");\r
+       \r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/ipcopreboot.c b/src/misc-progs/ipcopreboot.c
new file mode 100644 (file)
index 0000000..05dddaf
--- /dev/null
@@ -0,0 +1,117 @@
+/*\r
+ * This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * Copyright (C) 2005-10-25 Franck Bourdonnec\r
+ *\r
+ * $Id: ipcopreboot.c,v 1.1.2.2 2005/10/24 23:05:50 franck78 Exp $\r
+ *\r
+ */\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+#include "setuid.h"\r
+\r
+\r
+/* define operations */\r
+#define OP_REBOOT        "boot"\r
+#define OP_REBOOT_FS     "bootfs" // add filesystem check option (not yet in GUI)\r
+#define OP_SHUTDOWN      "down"\r
+#define OP_SCHEDULE_ADD   "cron+"\r
+#define OP_SCHEDULE_REM   "cron-"\r
+#define OP_SCHEDULE_GET   "cron?"\r
+\r
+int main(int argc, char**argv)\r
+{\r
+\r
+       if (!(initsetuid()))\r
+           return 1;\r
+\r
+       // Check what command is asked\r
+       if (argc==1)\r
+       {           \r
+           fprintf (stderr, "Missing reboot command!\n");\r
+           return 1;\r
+       }\r
+\r
+       if (argc==2 && strcmp(argv[1], OP_SHUTDOWN)==0)\r
+       {\r
+           safe_system("/sbin/shutdown -h now");\r
+           return 0;\r
+       }\r
+\r
+       if (argc==2 && strcmp(argv[1], OP_REBOOT)==0)\r
+       {\r
+           safe_system("/sbin/shutdown -r now");\r
+           return 0;\r
+       }\r
+\r
+       if (argc==2 && strcmp(argv[1], OP_REBOOT_FS)==0)\r
+       {\r
+           safe_system("/sbin/shutdown -F -r now");\r
+           return 0;\r
+       }\r
+\r
+       // output schedule to stdout\r
+       if (argc==2 && strcmp(argv[1], OP_SCHEDULE_GET)==0)\r
+       {\r
+           safe_system("/bin/grep /sbin/shutdown /var/spool/cron/root.orig");\r
+           return 0;\r
+       }\r
+\r
+       if (argc==2 && strcmp(argv[1], OP_SCHEDULE_REM)==0)\r
+       {\r
+           safe_system("/usr/bin/perl -i -p -e 's/^.*\\/sbin\\/shutdown.*$//s' /var/spool/cron/root.orig");\r
+           safe_system("/usr/bin/fcrontab -u root -z");\r
+           return 0;\r
+       }\r
+\r
+       if (argc==6 && strcmp(argv[1], OP_SCHEDULE_ADD)==0)\r
+       {\r
+           // check args\r
+           if (!(  strlen(argv[2])<3 &&\r
+                   strspn(argv[2], "0123456789") == strlen (argv[2]) &&\r
+                   strlen(argv[3])<3 &&\r
+                   strspn(argv[3], "0123456789") == strlen (argv[3]) &&\r
+                   strlen(argv[4])<14 &&\r
+                   strspn(argv[4], "1234567,*") == strlen (argv[4])  &&\r
+                   ((strcmp(argv[5], "-r")==0) ||      //reboot\r
+                    (strcmp(argv[5], "-h")==0))  )     //hangup\r
+               ) {\r
+                       fprintf (stderr, "Bad cron+ parameters!\n");\r
+                       return 1;\r
+           }\r
+           \r
+           // remove old entry                               \r
+           safe_system("/usr/bin/perl -i -p -e 's/^.*\\/sbin\\/shutdown.*$//s' /var/spool/cron/root.orig");\r
+\r
+           // add new entry\r
+           FILE *fd = NULL;\r
+           if ((fd = fopen("/var/spool/cron/root.orig", "a")))\r
+           {\r
+               fprintf (fd,"%s %s * * %s /sbin/shutdown %s 1\n",argv[2],argv[3],argv[4],argv[5]);\r
+               fclose (fd);\r
+           }\r
+           \r
+           // inform cron\r
+           safe_system("/usr/bin/fcrontab -u root -z");\r
+           return 0;\r
+       }\r
+\r
+       fprintf (stderr, "Bad reboot command!\n");\r
+       return 1;\r
+}\r
diff --git a/src/misc-progs/ipcoprscfg.c b/src/misc-progs/ipcoprscfg.c
new file mode 100644 (file)
index 0000000..2e98395
--- /dev/null
@@ -0,0 +1,116 @@
+/*\r
+ * This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * Copyright (C) 2003-06-25 Tim Butterfield <timbutterfield@mindspring.com>\r
+ *\r
+ * $Id: ipcoprscfg.c,v 1.2.2.6 2005/11/21 00:11:39 franck78 Exp $\r
+ *\r
+ */\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <fcntl.h>\r
+#include <grp.h>\r
+#include <dirent.h>\r
+#include "setuid.h"\r
+\r
+#define TMP_FILEZ      "/tmp/TMPFILE.tar.gz"\r
+#define TMP_FILE       "/tmp/TMPFILE.tar"\r
+\r
+/* check existence of a data file */\r
+int data_exists(const char *hostname) {\r
+    char fname[STRING_SIZE];\r
+    snprintf (fname, STRING_SIZE-1, MOUNTPOINT"/%s.dat", hostname);\r
+    return file_exists(fname);\r
+}\r
+\r
+\r
+int main(int argc, char**argv) {\r
+       int rshardware=0;\r
+       char command[STRING_SIZE];\r
+       char hostname[STRING_SIZE];\r
+\r
+       if (argc==2 && strcmp(argv[1],"--hardware")==0)\r
+           rshardware=1; // restore hardware settings\r
+\r
+       gethostname(hostname, STRING_SIZE-1);\r
+\r
+       /* Init setuid */\r
+       if (!initsetuid())\r
+           exit(1);\r
+\r
+       /* if  a key file exists, an encrypted .dat is required */\r
+       if (!file_exists(BACKUP_KEY)) {\r
+           fprintf (stderr, "Missing encryption key\n");\r
+           exit (ERR_DECRYPT);\r
+       }\r
+       \r
+       \r
+       if (!data_exists(hostname)) {\r
+           fprintf (stderr, "Missing encrypted archive "MOUNTPOINT"/%s.dat archive\n", hostname);\r
+           exit (ERR_DAT);\r
+       }\r
+\r
+       /* decrypt .dat file to tmp file */\r
+       snprintf (command, STRING_SIZE-1, "/usr/bin/openssl des3 -d -salt -in "MOUNTPOINT"/%s.dat -out "TMP_FILEZ" -kfile "BACKUP_KEY" > /dev/null 2> /dev/null", hostname);\r
+       if (safe_system (command)) {\r
+           fprintf (stderr, "Couldn't decrypt "MOUNTPOINT"/%s.dat archive\n", hostname);\r
+           exit (ERR_DECRYPT);\r
+       }\r
+\r
+       /* create temporary directory for testing untar */\r
+       char tmp_dir[STRING_SIZE];\r
+\r
+       strcpy (tmp_dir,"cfg_XXXXXXX");\r
+       if (mkdtemp (tmp_dir)==NULL) {\r
+           unlink (TMP_FILEZ);\r
+           exit (ERR_ANY);\r
+       }\r
+\r
+       /* Start (test) untarring files from compressed archive */\r
+       snprintf (command, STRING_SIZE-1, "/bin/tar -C %s -xzvf "TMP_FILEZ" > /dev/null 2> /dev/null",tmp_dir);\r
+       if (safe_system (command)) {\r
+           fprintf (stderr, "Archive have errors!\n");\r
+           unlink (TMP_FILEZ);\r
+           exit (ERR_UNTARTST);\r
+       }\r
+\r
+       /* remove temporary directory */\r
+       snprintf (command, STRING_SIZE-1, "/bin/rm -rf %s > /dev/null 2> /dev/null",tmp_dir);\r
+       safe_system (command);\r
+       \r
+       /* Start (real) untarring files from compressed archive */\r
+       char extraX[STRING_SIZE] = "";\r
+       int retcode = 0;\r
+       if (rshardware==0) { /* extra eXclusion from restore  */\r
+           strcpy (extraX, "-X "CONFIG_ROOT"/backup/exclude.hardware ");\r
+       }\r
+       snprintf (command, STRING_SIZE-1, "/bin/tar -C / -xzvf "TMP_FILEZ" -X "CONFIG_ROOT"/backup/exclude.system %s > /dev/null 2> /dev/null", extraX);\r
+       if (safe_system (command)) {\r
+           fprintf (stderr, "Error restoring archive\n");\r
+           retcode = ERR_UNTAR;\r
+       }\r
+\r
+       /* remove temporary archive copy */\r
+       unlink (TMP_FILEZ);\r
+\r
+       exit(retcode);\r
+}\r
diff --git a/src/misc-progs/ipsecctrl.c b/src/misc-progs/ipsecctrl.c
new file mode 100644 (file)
index 0000000..7413612
--- /dev/null
@@ -0,0 +1,332 @@
+/*\r
+ *\r
+ * File originally from the Smoothwall project\r
+ * (c) 2001 Smoothwall Team\r
+ *\r
+ * $Id: ipsecctrl.c,v 1.5.2.14 2005/05/15 12:58:28 rkerr Exp $\r
+ *\r
+ */\r
+\r
+#include "libsmooth.h"\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <unistd.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <signal.h>\r
+#include "setuid.h"\r
+\r
+void usage() {\r
+       fprintf (stderr, "Usage:\n");\r
+       fprintf (stderr, "\tipsecctrl S [connectionkey]\n");\r
+       fprintf (stderr, "\tipsecctrl D [connectionkey]\n");\r
+       fprintf (stderr, "\tipsecctrl R\n");\r
+       fprintf (stderr, "\t\tS : Start/Restart Connection\n");\r
+       fprintf (stderr, "\t\tD : Stop Connection\n");\r
+       fprintf (stderr, "\t\tR : Reload Certificates and Secrets\n");\r
+}\r
+\r
+void loadalgmodules() {\r
+       safe_system("/sbin/modprobe ipsec_3des");\r
+       safe_system("/sbin/modprobe ipsec_aes");\r
+       safe_system("/sbin/modprobe ipsec_blowfish");\r
+       safe_system("/sbin/modprobe ipsec_md5");\r
+       safe_system("/sbin/modprobe ipsec_serpent");\r
+       safe_system("/sbin/modprobe ipsec_sha1");\r
+       safe_system("/sbin/modprobe ipsec_sha2");\r
+       safe_system("/sbin/modprobe ipsec_twofish");\r
+}\r
+\r
+void ipsecrules(char *chain, char *interface)\r
+{\r
+       char str[STRING_SIZE];\r
+\r
+       sprintf(str, "/sbin/iptables -A %s -p 47  -i %s -j ACCEPT", chain, interface);\r
+       safe_system(str);\r
+       sprintf(str, "/sbin/iptables -A %s -p 50  -i %s -j ACCEPT", chain, interface);\r
+       safe_system(str);\r
+       sprintf(str, "/sbin/iptables -A %s -p 51  -i %s -j ACCEPT", chain, interface);\r
+       safe_system(str);\r
+       sprintf(str, "/sbin/iptables -A %s -p udp -i %s --sport 500 --dport 500 -j ACCEPT", chain, interface);\r
+       safe_system(str);\r
+       sprintf(str, "/sbin/iptables -A %s -p udp -i %s --dport 4500 -j ACCEPT", chain, interface);\r
+       safe_system(str);\r
+}\r
+\r
+void addaliasinterfaces(char *configtype, char *redtype, char *redif, char *enablered, char*enableblue)\r
+{\r
+       FILE *file = NULL;\r
+       char s[STRING_SIZE];\r
+       char *sptr;\r
+       char *aliasip=NULL;\r
+       char *enabled=NULL;\r
+       char *comment=NULL;\r
+       int count=0;\r
+       int alias=0;\r
+       int add=0;\r
+\r
+       if ( strcmp(enablered, "on") == 0 ) \r
+               add += 1;\r
+       if ( strcmp(enableblue, "on") == 0 )\r
+               add += 1;\r
+       \r
+       /* Check for CONFIG_TYPE=2 or 3 i.e. RED ethernet present. If not,\r
+       * exit gracefully.  This is not an error... */\r
+       if (!((strcmp(configtype, "2")==0) || (strcmp(configtype, "3")==0) || (strcmp(configtype, "6")==0) || (strcmp(configtype, "7")==0)))\r
+               return;\r
+\r
+        /* Now check the RED_TYPE - aliases only work with STATIC. */\r
+       if (!(strcmp(redtype, "STATIC")==0))\r
+               return;\r
+\r
+       /* Now set up the new aliases from the config file */\r
+       if (!(file = fopen(CONFIG_ROOT "/ethernet/aliases", "r")))\r
+       {\r
+               fprintf(stderr, "Unable to open aliases configuration file\n");\r
+               return;\r
+       }\r
+\r
+       while (fgets(s, STRING_SIZE, file) != NULL && (add+alias) < 16)\r
+       {\r
+               if (s[strlen(s) - 1] == '\n')\r
+                       s[strlen(s) - 1] = '\0';\r
+               sptr = strtok(s, ",");\r
+               count = 0;\r
+               aliasip = NULL;\r
+               enabled = NULL;\r
+               comment = NULL;\r
+               while (sptr)\r
+               {\r
+                       if (count == 0)\r
+                               aliasip = sptr;\r
+                       if (count == 1)\r
+                               enabled = sptr;\r
+                       else\r
+                               comment = sptr;\r
+                       count++;\r
+                       sptr = strtok(NULL, ",");\r
+               }\r
+\r
+               if (!(aliasip && enabled))\r
+                       continue;\r
+\r
+               if (!VALID_IP(aliasip))\r
+               {\r
+                       fprintf(stderr, "Bad alias : %s\n", aliasip);\r
+                       return;\r
+               }\r
+\r
+               if (strcmp(enabled, "on") == 0)\r
+               {\r
+                       memset(s, 0, STRING_SIZE);\r
+                       snprintf(s, STRING_SIZE-1, "/usr/sbin/ipsec tncfg --attach --virtual ipsec%d --physical %s:%d >/dev/null", alias+add, redif, alias);\r
+                       safe_system(s);\r
+                       alias++;\r
+               }\r
+       }\r
+}\r
+\r
+int main(int argc, char *argv[]) {\r
+       int count;\r
+       char s[STRING_SIZE];\r
+       char configtype[STRING_SIZE];\r
+       char redtype[STRING_SIZE] = "";\r
+       char command[STRING_SIZE];\r
+       char *result;\r
+       char *key;\r
+       char *enabled;\r
+       char *name;\r
+       char *type;\r
+       char *running;\r
+       FILE *file = NULL;\r
+       struct keyvalue *kv = NULL;\r
+       char enablered[STRING_SIZE] = "off";\r
+       char enableblue[STRING_SIZE] = "off";\r
+       char redif[STRING_SIZE] = "";;\r
+       char blueif[STRING_SIZE] = "";\r
+       FILE *ifacefile = NULL;\r
+                       \r
+       if (!(initsetuid()))\r
+               exit(1);\r
+       \r
+       if (argc < 2) {\r
+               usage();\r
+               exit(1);\r
+       }\r
+\r
+       /* FIXME: workaround for pclose() issue - still no real idea why\r
+        * this is happening */\r
+       signal(SIGCHLD, SIG_DFL);\r
+\r
+       /* Init the keyvalue structure */\r
+       kv=initkeyvalues();\r
+\r
+       /* Read in the current values */\r
+       if (!readkeyvalues(kv, CONFIG_ROOT "/vpn/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read vpn settings\n");\r
+               exit(1);\r
+       }\r
+\r
+       findkey(kv, "ENABLED", enablered);\r
+       findkey(kv, "ENABLED_BLUE", enableblue);\r
+\r
+       freekeyvalues(kv);\r
+       kv=initkeyvalues();\r
+\r
+       if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read ethernet settings\n");\r
+               exit(1);\r
+       }\r
+\r
+       if (!findkey(kv, "CONFIG_TYPE", configtype))\r
+       {\r
+               fprintf(stderr, "Cannot read CONFIG_TYPE\n");\r
+               exit(1);\r
+       }\r
+\r
+       findkey(kv, "RED_TYPE", redtype);\r
+       findkey(kv, "BLUE_DEV", blueif);\r
+       freekeyvalues(kv);\r
+       memset(redif, 0, STRING_SIZE);\r
+\r
+       if ((ifacefile = fopen(CONFIG_ROOT "/red/iface", "r")))\r
+       {\r
+               if (fgets(redif, STRING_SIZE, ifacefile))\r
+               {\r
+                       if (redif[strlen(redif) - 1] == '\n')\r
+                               redif[strlen(redif) - 1] = '\0';\r
+               }\r
+               fclose (ifacefile);\r
+               ifacefile = NULL;\r
+\r
+               if (!VALID_DEVICE(redif))\r
+               {\r
+                       memset(redif, 0, STRING_SIZE);\r
+               }\r
+       }\r
+\r
+       safe_system("/sbin/iptables -F IPSECRED");\r
+       if (!strcmp(enablered, "on") && strlen(redif)) {\r
+               ipsecrules("IPSECRED", redif);\r
+       }\r
+\r
+       safe_system("/sbin/iptables -F IPSECBLUE");\r
+       if (!strcmp(enableblue, "on")) {\r
+               if (VALID_DEVICE(blueif))\r
+                       ipsecrules("IPSECBLUE", blueif);\r
+               else\r
+               {\r
+                       fprintf(stderr, "IPSec enabled on blue but blue interface is invalid or not found\n");\r
+                       exit(1);\r
+               }\r
+       }\r
+\r
+       /* Only shutdown pluto if it really is running */\r
+       if (argc == 2) {\r
+               if (strcmp(argv[1], "D") == 0) {\r
+                       int fd;\r
+                       /* Get pluto pid */\r
+                       if ((fd = open("/var/run/pluto.pid", O_RDONLY)) != -1) {\r
+                               safe_system("/etc/rc.d/ipsec stop 2> /dev/null >/dev/null");\r
+                               close(fd);\r
+                       }\r
+               }\r
+       }\r
+\r
+       if ((strcmp(enablered, "on") || !strlen(redif)) && strcmp(enableblue, "on"))\r
+               exit(0);\r
+\r
+       if (argc == 2) {\r
+               if (strcmp(argv[1], "S") == 0) {\r
+                       loadalgmodules();\r
+                       safe_system("/usr/sbin/ipsec tncfg --clear >/dev/null");\r
+                       safe_system("/etc/rc.d/ipsec restart >/dev/null");\r
+                       addaliasinterfaces(configtype, redtype, redif, enablered, enableblue);\r
+               } else if (strcmp(argv[1], "R") == 0) {\r
+                       safe_system("/usr/sbin/ipsec auto --rereadall");\r
+               } else {\r
+                       fprintf(stderr, "Bad arg\n");\r
+                       usage();\r
+                       exit(1);\r
+               }\r
+       } else if (strspn(argv[2], NUMBERS) == strlen(argv[2])) {\r
+               if (!(file = fopen(CONFIG_ROOT "/vpn/config", "r"))) {\r
+                       fprintf(stderr, "Couldn't open vpn settings file");\r
+                       exit(1);\r
+               }\r
+               while (fgets(s, STRING_SIZE, file) != NULL) {\r
+                       if (s[strlen(s) - 1] == '\n')\r
+                               s[strlen(s) - 1] = '\0';\r
+                       running = strdup (s);\r
+                       result = strsep(&running, ",");\r
+                       count = 0;\r
+                       key = NULL;\r
+                       name = NULL;\r
+                       enabled = NULL;\r
+                       type = NULL;\r
+                       while (result) {\r
+                               if (count == 0)\r
+                                       key = result;\r
+                               if (count == 1)\r
+                                       enabled = result;       \r
+                               if (count == 2)\r
+                                       name = result;\r
+                               if (count == 4)\r
+                                       type = result;\r
+                               count++;\r
+                               result = strsep(&running, ",");\r
+                       }\r
+                       if (strcmp(key, argv[2]) != 0)\r
+                               continue;\r
+                       \r
+                       if (!(name && enabled))\r
+                               continue;\r
+                       \r
+                       if (strspn(name, LETTERS_NUMBERS) != strlen(name)) {\r
+                               fprintf(stderr, "Bad connection name: %s\n", name);\r
+                               goto EXIT;\r
+                       }\r
+\r
+                       if (! (strcmp(type, "host") == 0 || strcmp(type, "net") == 0)) {\r
+                               fprintf(stderr, "Bad connection type: %s\n", type);\r
+                               goto EXIT;\r
+                       }\r
+                       \r
+                       if (strcmp(argv[1], "S") == 0 && strcmp(enabled, "on") == 0) {\r
+                               safe_system("/usr/sbin/ipsec auto --rereadsecrets >/dev/null");\r
+                               memset(command, 0, STRING_SIZE);\r
+                               snprintf(command, STRING_SIZE - 1, \r
+                                       "/usr/sbin/ipsec auto --replace %s >/dev/null", name);\r
+                               safe_system(command);\r
+                               if (strcmp(type, "net") == 0) {\r
+                                       memset(command, 0, STRING_SIZE);\r
+                                       snprintf(command, STRING_SIZE - 1, \r
+                                               "/usr/sbin/ipsec auto --asynchronous --up %s >/dev/null", name);\r
+                                       safe_system(command);\r
+                               }\r
+                       } else if (strcmp(argv[1], "D") == 0) {\r
+                               safe_system("/usr/sbin/ipsec auto --rereadsecrets >/dev/null");\r
+                               memset(command, 0, STRING_SIZE);\r
+                               snprintf(command, STRING_SIZE - 1, \r
+                                       "/usr/sbin/ipsec auto --down %s >/dev/null", name);\r
+                               safe_system(command);\r
+                               memset(command, 0, STRING_SIZE);\r
+                               snprintf(command, STRING_SIZE - 1, \r
+                                       "/usr/sbin/ipsec auto --delete %s >/dev/null", name);\r
+                               safe_system(command);\r
+                       }\r
+               }\r
+       } else {\r
+               fprintf(stderr, "Bad arg\n");\r
+               usage();\r
+               exit(1);\r
+       }\r
+\r
+EXIT:\r
+       if (file)\r
+               fclose(file);\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/logwatch.c b/src/misc-progs/logwatch.c
new file mode 100644 (file)
index 0000000..8b78a68
--- /dev/null
@@ -0,0 +1,112 @@
+/* This file is part of the IPCop Firewall.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * Copyright (C) 2003-07-12 Robert Kerr <rkerr@go.to>\r
+ *\r
+ * $Id: logwatch.c,v 1.2 2003/12/11 11:25:54 riddles Exp $\r
+ *\r
+ */\r
+\r
+#include <stdio.h>\r
+#include <unistd.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <grp.h>\r
+#include <pwd.h>\r
+#include <sys/types.h>\r
+#include "libsmooth.h"\r
+#include "setuid.h"\r
+\r
+/* Lots of distros just run logwatch as root from cron, but logwatch doesn't\r
+ * need any root privs, just the ability to access it's filter scripts\r
+ * (/etc/log.d/) and the log files (under /var/log/). By creating a logwatch\r
+ * user and group and ensuring it has read access to the logs we can run\r
+ * logwatch unprivileged. Apart from the principle of least privilege running\r
+ * logwatch as root turns out to be doubly a bad idea because a flaw in the way\r
+ * it works:\r
+ *\r
+ *   http://www.securityfocus.com/archive/1/327833/2003-07-01/2003-07-07/0\r
+ *\r
+ * This wrapper program should be run as root, but not installed setuid root,\r
+ * it's basic aim is to allow a root cron job to safely run logcheck; as such\r
+ * it will drop privileges, becoming the locheck user & group then run\r
+ * logcheck. In many ways this is much the same as getting cron to run\r
+ *    su -s /etc/log.d/scripts/logwatch.pl\r
+ * the wrapper however is able to read configuration info from /var/ipcop and\r
+ * pass the correct args to logwatch\r
+ */\r
+\r
+int main(void)\r
+{\r
+   char buffer[STRING_SIZE];\r
+   struct keyvalue *kv = NULL;\r
+   struct passwd *pw;\r
+   gid_t groups[2];\r
+   char * argv[4];\r
+\r
+   if(getuid())\r
+   {\r
+      fprintf(stderr, "logwatch should be ran by root\n");\r
+      exit(1);\r
+   }\r
+\r
+   /* Read in and verify config */\r
+   kv=initkeyvalues();\r
+\r
+   if (!readkeyvalues(kv, CONFIG_ROOT "/logging/settings"))\r
+   {\r
+      fprintf(stderr, "Cannot read syslog settings\n");\r
+      exit(1);\r
+   }\r
+\r
+   if (!findkey(kv, "LOGWATCH_LEVEL", buffer))\r
+   {\r
+      fprintf(stderr, "Cannot read LOGWATCH_LEVEL\n");\r
+      exit(1);\r
+   }\r
+\r
+   if (strcmp(buffer,"Low") && strcmp(buffer,"Med") && strcmp(buffer,"High"))\r
+   {\r
+      fprintf(stderr, "Bad LOGWATCH_LEVEL: %s\n", buffer);\r
+      exit(1);\r
+   }\r
+\r
+   freekeyvalues(kv);\r
+\r
+\r
+   /* lookup logwatch user */\r
+   if(!(pw = getpwnam("logwatch")))\r
+   {\r
+      fprintf(stderr,"Couldn't find logwatch user.\n");\r
+      exit(1);\r
+   }\r
+   /* paranoia... */\r
+   memset(pw->pw_passwd, 0, strlen(pw->pw_passwd));\r
+   endpwent();\r
+\r
+   /* more paranoia */\r
+   if(!pw->pw_uid || !pw->pw_gid)\r
+   {\r
+      fprintf(stderr,"logwatch user appears to be UID or GID 0, aborting.\n");\r
+      exit(1);\r
+   }\r
+\r
+   /* drop privs */\r
+   groups[0] = groups[1] = pw->pw_gid;\r
+   if (setgroups(1,groups)) { perror("Couldn't clear group list"); exit(1); }\r
+   if (setgid(pw->pw_gid))  { perror("Couldn't setgid(logwatch)"); exit(1); }\r
+   if (setuid(pw->pw_uid))  { perror("Couldn't setuid(logwatch)"); exit(1); }\r
+\r
+   /* ok, spawn logwatch */\r
+   argv[0] = "logwatch.pl";\r
+   argv[1] = "--detail";\r
+   argv[2] = buffer;\r
+   argv[3] = NULL;\r
+   execve("/etc/log.d/scripts/logwatch.pl", argv, trusted_env);\r
+\r
+   /* shouldn't get here - execve replaces current running process */\r
+   perror("logwatch: execve failed");\r
+   exit(1);\r
+}\r
diff --git a/src/misc-progs/rebuildhosts.c b/src/misc-progs/rebuildhosts.c
new file mode 100644 (file)
index 0000000..115cdba
--- /dev/null
@@ -0,0 +1,154 @@
+/* IPCop helper program - rebuildhosts\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Alan Hourihane, 2003\r
+ * \r
+ *\r
+ * $Id: rebuildhosts.c,v 1.3.2.6 2005/07/11 10:56:47 franck78 Exp $\r
+ *\r
+ */\r
+\r
+#include "libsmooth.h"\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <fcntl.h>\r
+#include <string.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <signal.h>\r
+#include "setuid.h"\r
+\r
+FILE *fd = NULL;\r
+FILE *hosts = NULL;\r
+struct keyvalue *kv = NULL;\r
+\r
+void exithandler(void)\r
+{\r
+       if (kv)\r
+               freekeyvalues(kv);\r
+       if (fd)\r
+               fclose(fd);\r
+       if (hosts)\r
+               fclose(hosts);\r
+}\r
+\r
+int main(int argc, char *argv[])\r
+{\r
+       int fdpid; \r
+       char hostname[STRING_SIZE];\r
+       char domainname[STRING_SIZE] = "";\r
+       char buffer[STRING_SIZE];\r
+       char address[STRING_SIZE];\r
+       char *active, *ip, *host, *domain;\r
+       int pid;\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       atexit(exithandler);\r
+\r
+       memset(buffer, 0, STRING_SIZE);\r
+\r
+       kv = initkeyvalues();\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+       {\r
+               fprintf(stderr, "Couldn't read ethernet settings\n");\r
+               exit(1);\r
+       }\r
+       findkey(kv, "GREEN_ADDRESS", address);\r
+       freekeyvalues(kv);\r
+\r
+       kv = initkeyvalues();\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))\r
+       {\r
+               fprintf(stderr, "Couldn't read main settings\n");\r
+               exit(1);\r
+       }\r
+       strcpy(hostname, SNAME ); \r
+       findkey(kv, "HOSTNAME", hostname);\r
+       findkey(kv, "DOMAINNAME", domainname);\r
+       freekeyvalues(kv);\r
+       kv = NULL;\r
+\r
+       if (!(fd = fopen(CONFIG_ROOT "/main/hosts", "r")))\r
+       {\r
+               fprintf(stderr, "Couldn't open main hosts file\n");\r
+               exit(1);\r
+       }\r
+       if (!(hosts = fopen("/etc/hosts", "w")))\r
+       {\r
+               fprintf(stderr, "Couldn't open /etc/hosts file\n");\r
+               fclose(fd);\r
+               fd = NULL;\r
+               exit(1);\r
+       }\r
+       fprintf(hosts, "127.0.0.1\tlocalhost\n");\r
+       if (strlen(domainname))\r
+               fprintf(hosts, "%s\t%s.%s\t%s\n",address,hostname,domainname,hostname);\r
+       else\r
+               fprintf(hosts, "%s\t%s\n",address,hostname);\r
+       while (fgets(buffer, STRING_SIZE, fd))\r
+       {\r
+               buffer[strlen(buffer) - 1] = 0;\r
+               if (buffer[0]==',') continue;           /* disabled if empty field      */\r
+               active = strtok(buffer, ",");\r
+               if (strcmp(active, "off")==0) continue; /* or 'off'                     */\r
+               \r
+               ip = strtok(NULL, ",");\r
+               host = strtok(NULL, ",");\r
+               domain = strtok(NULL, ",");\r
+\r
+               if (!(ip && host))\r
+                       continue;       // bad line ? skip\r
+\r
+               if (!VALID_IP(ip))\r
+               {\r
+                       fprintf(stderr, "Bad IP: %s\n", ip);\r
+                       continue;       /*  bad ip, skip */\r
+               }\r
+\r
+               if (strspn(host, LETTERS_NUMBERS "-") != strlen(host))\r
+               {\r
+                       fprintf(stderr, "Bad Host: %s\n", host);\r
+                       continue;       /*  bad name, skip */\r
+               }\r
+\r
+               if (domain)\r
+                       fprintf(hosts, "%s\t%s.%s\t%s\n",ip,host,domain,host);\r
+               else\r
+                       fprintf(hosts, "%s\t%s\n",ip,host);\r
+       }\r
+       fclose(fd);\r
+       fd = NULL;\r
+       fclose(hosts);\r
+       hosts = NULL;\r
+\r
+       if ((fdpid = open("/var/run/dnsmasq.pid", O_RDONLY)) == -1)\r
+       {\r
+               fprintf(stderr, "Couldn't open pid file\n");\r
+               exit(1);\r
+       }\r
+       if (read(fdpid, buffer, STRING_SIZE - 1) == -1)\r
+       {\r
+               fprintf(stderr, "Couldn't read from pid file\n");\r
+               close(fdpid);\r
+               exit(1);\r
+       }\r
+       close(fdpid);\r
+       pid = atoi(buffer);\r
+       if (pid <= 1)\r
+       {\r
+               fprintf(stderr, "Bad pid value\n");\r
+               exit(1);\r
+       }\r
+       if (kill(pid, SIGHUP) == -1)\r
+       {\r
+               fprintf(stderr, "Unable to send SIGHUP\n");\r
+               exit(1);\r
+       }\r
+\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/restartdhcp.c b/src/misc-progs/restartdhcp.c
new file mode 100644 (file)
index 0000000..178a51e
--- /dev/null
@@ -0,0 +1,145 @@
+/* SmoothWall helper program - restartdhcp\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Simple program intended to be installed setuid(0) that can be used for\r
+ * restarting DHCPd.\r
+ * \r
+ * $Id: restartdhcp.c,v 1.5.2.1 2004/11/03 13:50:26 alanh Exp $\r
+ * \r
+ */\r
+\r
+#include "libsmooth.h"\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <fcntl.h>\r
+#include <string.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <signal.h>\r
+#include "setuid.h"\r
+\r
+int main(void)\r
+{\r
+       int fd = -1;\r
+       int fdblue = -1;\r
+       char buffer[STRING_SIZE];\r
+       char blue_dev[STRING_SIZE] = "", green_dev[STRING_SIZE] = "";\r
+       int pid;\r
+       struct keyvalue *kv = NULL;\r
+       \r
+       if (!(initsetuid()))\r
+               exit(1);\r
+               \r
+       memset(buffer, 0, STRING_SIZE);\r
+\r
+       /* Init the keyvalue structure */\r
+       kv=initkeyvalues();\r
+\r
+       /* Read in the current values */\r
+       if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read ethernet settings\n");\r
+               exit(1);\r
+       }\r
+\r
+       if (!findkey(kv, "GREEN_DEV", green_dev))\r
+       {\r
+               fprintf(stderr, "Cannot read GREEN_DEV\n");\r
+               exit(1);\r
+       }\r
+\r
+       if (!VALID_DEVICE(green_dev))\r
+       {\r
+               fprintf(stderr, "Bad GREEN_DEV: %s\n", green_dev);\r
+               exit(1);\r
+       }\r
+\r
+       /* Get the BLUE interface details */\r
+       findkey(kv, "BLUE_DEV", blue_dev);\r
+\r
+       freekeyvalues(kv);\r
+\r
+       if ((fdblue = open(CONFIG_ROOT "/dhcp/enable_blue", O_RDONLY)) != -1)\r
+       {\r
+               close(fdblue);\r
+               if (!VALID_DEVICE(blue_dev))\r
+               {\r
+                       fprintf(stderr, "Bad BLUE_DEV: %s\n", blue_dev);\r
+                       exit(1);\r
+               }\r
+       }\r
+\r
+       if ((fd = open("/var/run/dhcpd.pid", O_RDONLY)) != -1)\r
+       {\r
+               if (read(fd, buffer, STRING_SIZE - 1) == -1)\r
+                       fprintf(stderr, "Couldn't read from pid file\n");\r
+               else\r
+               {\r
+                       pid = atoi(buffer);\r
+                       if (pid <= 1)\r
+                               fprintf(stderr, "Bad pid value\n");\r
+                       else\r
+                       {\r
+                               if (kill(pid, SIGTERM) == -1)\r
+                                       fprintf(stderr, "Unable to send SIGTERM\n");\r
+                               else\r
+                                       unlink("/var/run/dhcpd.pid");\r
+                       }\r
+               }\r
+               safe_system("/bin/killall -KILL dhcpd");\r
+               close(fd);\r
+       }\r
+\r
+       safe_system("/sbin/iptables -F DHCPBLUEINPUT");\r
+\r
+       buffer[0] = '\0';\r
+\r
+       if ((fd = open(CONFIG_ROOT "/dhcp/enable_green", O_RDONLY)) != -1)\r
+       {\r
+               close(fd);\r
+               if ((fdblue = open(CONFIG_ROOT "/dhcp/enable_blue", O_RDONLY)) != -1)\r
+               {\r
+                       close(fdblue);\r
+                       \r
+                       snprintf(buffer, STRING_SIZE-1, "/sbin/iptables -A DHCPBLUEINPUT -p tcp --source-port 68 --destination-port 67 -i %s -j ACCEPT > /dev/null 2>&1", blue_dev);\r
+                       safe_system(buffer);\r
+                       snprintf(buffer, STRING_SIZE-1, "/sbin/iptables -A DHCPBLUEINPUT -p udp --source-port 68 --destination-port 67 -i %s -j ACCEPT > /dev/null 2>&1", blue_dev);\r
+                       safe_system(buffer);\r
+                       snprintf(buffer, STRING_SIZE-1, "/usr/sbin/dhcpd -q %s %s", green_dev, blue_dev);\r
+               } else {\r
+                       snprintf(buffer, STRING_SIZE-1, "/usr/sbin/dhcpd -q %s", green_dev);\r
+               }\r
+               safe_system(buffer);\r
+       } else {\r
+               if ((fdblue = open(CONFIG_ROOT "/dhcp/enable_blue", O_RDONLY)) != -1)\r
+               {\r
+                       close(fdblue);\r
+\r
+                       snprintf(buffer, STRING_SIZE-1, "/sbin/iptables -A DHCPBLUEINPUT -p tcp --source-port 68 --destination-port 67 -i %s -j ACCEPT > /dev/null 2>&1", blue_dev);\r
+                       safe_system(buffer);\r
+                       snprintf(buffer, STRING_SIZE-1, "/sbin/iptables -A DHCPBLUEINPUT -p udp --source-port 68 --destination-port 67 -i %s -j ACCEPT > /dev/null 2>&1", blue_dev);\r
+                       safe_system(buffer);\r
+                       snprintf(buffer, STRING_SIZE-1,  "/usr/sbin/dhcpd -q %s", blue_dev);\r
+                       safe_system(buffer);\r
+               }\r
+       }\r
+\r
+       if (buffer[0] != '\0')\r
+       {\r
+               /* Silly dhcpd creates pids with mode 640 */\r
+               sleep (1);\r
+               if ((fd = open("/var/run/dhcpd.pid", 0)) == -1)\r
+               {\r
+                       fprintf(stderr, "No pid file\n");\r
+                       return 1;\r
+               }\r
+               fchmod(fd, 00644);\r
+               close(fd);\r
+       }\r
+\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/restartntpd.c b/src/misc-progs/restartntpd.c
new file mode 100644 (file)
index 0000000..ed04686
--- /dev/null
@@ -0,0 +1,42 @@
+/* Ipcop helper program - restartntpd\r
+ *\r
+ * Starts or stops the ntpd daemon\r
+ *\r
+ * (c) Darren Critchley 2003\r
+ * \r
+ * $Id: restartntpd.c,v 1.5 2003/12/19 14:29:09 riddles Exp $\r
+ * \r
+ */\r
+         \r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <unistd.h>\r
+#include <stdlib.h>\r
+#include <sys/types.h>\r
+#include <fcntl.h>\r
+#include "setuid.h"\r
+\r
+\r
+int main(void)\r
+{\r
+       int fd = -1;\r
+       int enable = 0;\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+       \r
+       safe_system("/bin/killall ntpd 2> /dev/null");\r
+       sleep(3);\r
+\r
+       if ((fd = open(CONFIG_ROOT "/time/allowclients", O_RDONLY)) != -1)\r
+       {\r
+               close(fd);\r
+               enable = 1;\r
+       }\r
+\r
+       if (enable)\r
+       {\r
+               safe_system("/usr/bin/ntpd -Ap /var/run/ntpd.pid -u ntp:ntp");\r
+       }\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/restartshaping.c b/src/misc-progs/restartshaping.c
new file mode 100644 (file)
index 0000000..9ce0b1e
--- /dev/null
@@ -0,0 +1,234 @@
+/* IPCop helper program - restartshaping\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * Copyright (C) 2002-04-09 Mark Wormgoor <mark@wormgoor.com>\r
+ *\r
+ * $Id: restartshaping.c,v 1.2.2.5 2005/01/28 13:11:40 riddles Exp $\r
+ *\r
+ */\r
+\r
+#include "libsmooth.h"\r
+#include "setuid.h"\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <fcntl.h>\r
+#include <stdlib.h>\r
+\r
+int main(int argc, char *argv[])\r
+{\r
+       FILE *file = NULL, *ifacefile = NULL;\r
+       struct keyvalue *kv = NULL;\r
+       int uplink, downlink, count = 0, r2q = 10;\r
+       char command[STRING_SIZE];\r
+       char iface[STRING_SIZE] = "";\r
+       char s[STRING_SIZE];\r
+       char *result;\r
+       char proto[STRING_SIZE];\r
+       char *protocol;\r
+       char *port;\r
+       char *prio;\r
+       char *enabled;\r
+\r
+       if (!(initsetuid())) {\r
+               fprintf(stderr, "Cannot run setuid\n");\r
+               exit(1);\r
+       }\r
+\r
+       /* Init the keyvalue structure */\r
+       kv=initkeyvalues();\r
+\r
+       /* Read in the current values */\r
+       if (!readkeyvalues(kv, CONFIG_ROOT "/shaping/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read shaping settings\n");\r
+               goto EXIT;\r
+       }\r
+\r
+       /* See what interface there is */\r
+       if ((ifacefile = fopen(CONFIG_ROOT "/red/iface", "r")))\r
+       {\r
+               fgets(iface, STRING_SIZE, ifacefile);\r
+               if (iface[strlen(iface) - 1] == '\n')\r
+                       iface[strlen(iface) - 1] = '\0';\r
+               fclose (ifacefile);\r
+       } else {\r
+               fprintf(stderr, "Couldn't open iface file\n");\r
+               return(1);\r
+       }\r
+\r
+       if (strspn(iface, LETTERS_NUMBERS) != strlen(iface))\r
+       {\r
+               fprintf(stderr, "Bad iface: %s\n", iface);\r
+               goto EXIT;\r
+       }\r
+\r
+       /* Find the VALID value */\r
+       if (!findkey(kv, "VALID", s))\r
+       {\r
+               fprintf(stderr, "Cannot read VALID\n");\r
+               goto EXIT;\r
+       }\r
+\r
+       /* Check if config is VALID */\r
+       if (! strcmp(s, "yes")==0)\r
+               goto EXIT;\r
+\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc qdisc del dev %s root", iface);\r
+       safe_system(command);\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc qdisc del dev %s ingress", iface);\r
+       safe_system(command);\r
+\r
+       /* Find the ENABLE value */\r
+       if (!findkey(kv, "ENABLE", s))\r
+       {\r
+               fprintf(stderr, "Cannot read ENABLE\n");\r
+               goto EXIT;\r
+       }\r
+\r
+       /* Check if shaping is ENABLED */\r
+       if (! strcmp(s, "on")==0)\r
+               goto EXIT;\r
+\r
+       /* Find the UPLINK value */\r
+       if (!findkey(kv, "UPLINK", s))\r
+       {\r
+               fprintf(stderr, "Cannot read UPLINK\n");\r
+               goto EXIT;\r
+       }\r
+       uplink = atoi(s);\r
+       if (! uplink > 0) {\r
+               fprintf(stderr, "Invalid value for UPLINK\n");\r
+               goto EXIT;\r
+       }\r
+       /* In some limited testing, it was shown that \r
+               r2q = ( uplink * 1024 / 1500 );\r
+        * produced error messages from the kernel saying r2q needed to be\r
+        * changed. 1500 is taken as the MTU, but it seems that 16384 works\r
+        * better. -Alan.\r
+        */\r
+       r2q = ( uplink * 1024 / 16384 );\r
+       uplink = (uplink * 100) / 101;\r
+\r
+       /* Find the DOWNLINK value */\r
+       if (!findkey(kv, "DOWNLINK", s))\r
+       {\r
+               fprintf(stderr, "Cannot read DOWNLINK\n");\r
+               goto EXIT;\r
+       }\r
+       downlink = atoi(s);\r
+       if (! downlink > 0) {\r
+               fprintf(stderr, "Invalid value for DOWNLINK\n");\r
+               goto EXIT;\r
+       }\r
+       downlink = (downlink * 200) / 201;\r
+\r
+       /* Uplink classes */\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc qdisc add dev %s root handle 1: htb default 20 r2q %d", iface, r2q);\r
+       safe_system(command);\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc class add dev %s parent 1: classid 1:1 htb rate %dkbit", iface, uplink);\r
+       safe_system(command);\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc class add dev %s parent 1:1 classid 1:10 htb rate %dkbit ceil %dkbit prio 1", iface, (8 * uplink) / 10, uplink);\r
+       safe_system(command);\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc class add dev %s parent 1:1 classid 1:20 htb rate %dkbit ceil %dkbit prio 2", iface, (6 * uplink) / 10, uplink);\r
+       safe_system(command);\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc class add dev %s parent 1:1 classid 1:30 htb rate %dkbit ceil %dkbit prio 3", iface, (4 * uplink) / 10, uplink);\r
+       safe_system(command);\r
+\r
+       /* Uplink Stochastic fairness queue */\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc qdisc add dev %s parent 1:10 handle 10: sfq perturb 10", iface);\r
+       safe_system(command);\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc qdisc add dev %s parent 1:20 handle 20: sfq perturb 10", iface);\r
+       safe_system(command);\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc qdisc add dev %s parent 1:30 handle 30: sfq perturb 10", iface);\r
+       safe_system(command);\r
+\r
+       /* TOS Minimum Delay and ICMP traffic for high priority queue */\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc filter add dev %s parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10", iface);\r
+       safe_system(command);\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc filter add dev %s parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10", iface);\r
+       safe_system(command);\r
+\r
+       /* ACK packets for high priority queue (to speed up downloads) */\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc filter add dev %s parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10", iface);\r
+       safe_system(command);\r
+\r
+       file = fopen(CONFIG_ROOT "/shaping/config", "r");\r
+       if (file)\r
+        {\r
+               while (fgets(s, STRING_SIZE, file) != NULL)\r
+               {\r
+                       if (s[strlen(s) - 1] == '\n')\r
+                               s[strlen(s) - 1] = '\0';\r
+                       result = strtok(s, ",");\r
+\r
+                       count = 0;\r
+                       protocol = NULL;\r
+                       port = NULL;\r
+                       prio = NULL;\r
+                       enabled = NULL;\r
+                       while (result)\r
+                       {\r
+                               if (count == 0)\r
+                                       protocol = result;\r
+                               else if (count == 1)\r
+                                       port = result;\r
+                               else if (count == 2)\r
+                                       prio = result;\r
+                               else if (count == 3)\r
+                                       enabled = result;\r
+                               count++;\r
+                               result = strtok(NULL, ",");\r
+                       }\r
+                       if (!(protocol && port && prio && enabled))\r
+                               break;\r
+                       if (strcmp(protocol, "tcp") == 0) {\r
+                               strcpy(proto, "6");\r
+                       } else if (strcmp(protocol, "udp") == 0) {\r
+                               strcpy(proto, "17");\r
+                       } else {\r
+                               fprintf(stderr, "Bad protocol: %s\n", protocol);\r
+                               goto EXIT;\r
+                       }\r
+                       if (strspn(port, PORT_NUMBERS) != strlen(port))\r
+                       {\r
+                               fprintf(stderr, "Bad port: %s\n", port);\r
+                               goto EXIT;\r
+                       }\r
+                       if (strspn(prio, NUMBERS) != strlen(prio))\r
+                       {\r
+                               fprintf(stderr, "Bad priority: %s\n", prio);\r
+                               goto EXIT;\r
+                       }\r
+\r
+                       if (strcmp(enabled, "on") == 0)\r
+                       {\r
+                               snprintf(command, STRING_SIZE-1, "/sbin/tc filter add dev %s parent 1: protocol ip prio 14 u32 match ip protocol %s 0xff match ip dport %s 0xffff flowid 1:%s", iface, proto, port, prio);\r
+\r
+                               safe_system(command);\r
+\r
+                               snprintf(command, STRING_SIZE-1, "/sbin/tc filter add dev %s parent 1: protocol ip prio 15 u32 match ip protocol %s 0xff match ip sport %s 0xffff flowid 1:%s", iface, proto, port, prio);\r
+\r
+                               safe_system(command);\r
+                       }\r
+               }\r
+       }\r
+\r
+       /* Setting everything else to the default queue */\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc filter add dev %s parent 1: protocol ip prio 18 u32 match ip dst 0.0.0.0/0 flowid 1:20", iface);\r
+       safe_system(command);\r
+\r
+       /* Downlink Section */\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc qdisc add dev %s handle ffff: ingress", iface);\r
+       safe_system(command);\r
+       snprintf(command, STRING_SIZE-1, "/sbin/tc filter add dev %s parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate %dkbit burst 10k drop flowid :1", iface, downlink);\r
+       safe_system(command);\r
+\r
+EXIT:\r
+       if (kv) freekeyvalues(kv);\r
+       if (file) fclose(file);\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/restartsnort.c b/src/misc-progs/restartsnort.c
new file mode 100644 (file)
index 0000000..036626c
--- /dev/null
@@ -0,0 +1,326 @@
+/* SmoothWall helper program - restartsnort\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Restarting snort.\r
+ * \r
+ * $Id: restartsnort.c,v 1.8.2.3 2005/10/16 12:36:14 rkerr Exp $\r
+ * \r
+ */\r
\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <string.h>\r
+#include <fcntl.h>\r
+#include <signal.h>\r
+#include "libsmooth.h"\r
+#include "setuid.h"\r
+\r
+struct keyvalue *kv = NULL;\r
+FILE *varsfile = NULL;\r
+\r
+void exithandler(void)\r
+{\r
+       if (varsfile)\r
+               fclose (varsfile);\r
+\r
+       if (kv)\r
+               freekeyvalues(kv);\r
+}\r
+\r
+int killsnort(char *interface)\r
+{\r
+       int fd;\r
+       char pidname[STRING_SIZE] = "";\r
+       char buffer[STRING_SIZE] = "";\r
+       int pid;\r
+\r
+       sprintf(pidname, "/var/run/snort_%s.pid", interface);\r
+\r
+       if ((fd = open(pidname, O_RDONLY)) != -1)\r
+       {\r
+               if (read(fd, buffer, STRING_SIZE - 1) == -1)\r
+                       fprintf(stderr, "Couldn't read from pid file\n");\r
+               else\r
+               {\r
+                       pid = atoi(buffer);\r
+                       if (pid <= 1)\r
+                               fprintf(stderr, "Bad pid value\n");\r
+                       else\r
+                       {\r
+                               if (kill(pid, SIGTERM) == -1)\r
+                                       fprintf(stderr, "Unable to send SIGTERM\n");\r
+                               close (fd);\r
+                               return 0;\r
+                       }\r
+               }\r
+               close(fd);\r
+       }\r
+       return 1;\r
+}\r
+\r
+int main(int argc, char *argv[])\r
+{\r
+       int fd = -1;\r
+       FILE *ifacefile, *ipfile, *dns1file, *dns2file;\r
+       char iface[STRING_SIZE] = "";\r
+       char locip[STRING_SIZE] = "";\r
+       char dns1[STRING_SIZE] = "";\r
+       char dns2[STRING_SIZE] = "";\r
+       char command[STRING_SIZE] = "";\r
+       char greendev[STRING_SIZE] = "";\r
+       char orangedev[STRING_SIZE] = "";\r
+       char bluedev[STRING_SIZE] = "";\r
+       char greenip[STRING_SIZE] = "";\r
+       char orangeip[STRING_SIZE] = "";\r
+       char blueip[STRING_SIZE] = "";\r
+       struct stat st;\r
+       int i;\r
+       int restartred = 0, restartgreen = 0, restartblue = 0, restartorange = 0;\r
+       \r
+       if (!(initsetuid()))\r
+               exit(1);\r
+       \r
+       atexit(exithandler);\r
+\r
+       for (i=0; i<argc; i++) {\r
+               if (!strcmp(argv[i], "red"))\r
+                       restartred = 1;\r
+               if (!strcmp(argv[i], "orange"))\r
+                       restartorange = 1;\r
+               if (!strcmp(argv[i], "blue"))\r
+                       restartblue = 1;\r
+               if (!strcmp(argv[i], "green"))\r
+                       restartgreen = 1;\r
+       }\r
+       \r
+       kv = initkeyvalues();\r
+       if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings")))\r
+               exit(1);\r
+\r
+       if (! findkey(kv, "GREEN_DEV", greendev)) {\r
+               fprintf(stderr, "Couldn't find GREEN device\n");\r
+               exit(1);\r
+       }\r
+       if (! strlen (greendev) > 0) {\r
+               fprintf(stderr, "Couldn't find GREEN device\n");\r
+               exit(1);\r
+       }\r
+       if (!VALID_DEVICE(greendev))\r
+       {\r
+               fprintf(stderr, "Bad GREEN_DEV: %s\n", greendev);\r
+               exit(1);\r
+       }\r
+       if (!(findkey(kv, "GREEN_ADDRESS", greenip))) {\r
+               fprintf(stderr, "Couldn't find GREEN address\n");\r
+               exit(1);\r
+       }\r
+       if (!VALID_IP(greenip)) {\r
+               fprintf(stderr, "Bad GREEN_ADDRESS: %s\n", greenip);\r
+               exit(1);\r
+       }\r
+\r
+       if (findkey(kv, "ORANGE_DEV", orangedev) && strlen (orangedev) > 0) {\r
+               if (!VALID_DEVICE(orangedev))\r
+               {\r
+                       fprintf(stderr, "Bad ORANGE_DEV: %s\n", orangedev);\r
+                       exit(1);\r
+               }\r
+               if (!(findkey(kv, "ORANGE_ADDRESS", orangeip))) {\r
+                       fprintf(stderr, "Couldn't find ORANGE address\n");\r
+                       exit(1);\r
+               }\r
+               if (!VALID_IP(orangeip)) {\r
+                       fprintf(stderr, "Bad ORANGE_ADDRESS: %s\n", orangeip);\r
+                       exit(1);\r
+               }\r
+       }\r
+\r
+       if (findkey(kv, "BLUE_DEV", bluedev) && strlen (bluedev) > 0) {\r
+               if (!VALID_DEVICE(bluedev))\r
+               {\r
+                       fprintf(stderr, "Bad BLUE_DEV: %s\n", bluedev);\r
+                       exit(1);\r
+               }\r
+               if (!(findkey(kv, "BLUE_ADDRESS", blueip))) {\r
+                       fprintf(stderr, "Couldn't find BLUE address\n");\r
+                       exit(1);\r
+               }\r
+               if (!VALID_IP(blueip)) {\r
+                       fprintf(stderr, "Bad BLUE_ADDRESS: %s\n", blueip);\r
+                       exit(1);\r
+               }\r
+       }\r
+\r
+       stat(CONFIG_ROOT "/red/active", &st);\r
+\r
+       if (S_ISREG(st.st_mode)) {\r
+               if (!(ifacefile = fopen(CONFIG_ROOT "/red/iface", "r")))\r
+               {\r
+                       fprintf(stderr, "Couldn't open iface file\n");\r
+                       exit(0);\r
+               }\r
+\r
+               if (fgets(iface, STRING_SIZE, ifacefile))\r
+               {\r
+                       if (iface[strlen(iface) - 1] == '\n')\r
+                               iface[strlen(iface) - 1] = '\0';\r
+               }\r
+               fclose(ifacefile);\r
+               if (!VALID_DEVICE(iface))\r
+               {\r
+                       fprintf(stderr, "Bad iface: %s\n", iface);\r
+                       exit(0);\r
+               }\r
+\r
+               if (!(ipfile = fopen(CONFIG_ROOT "/red/local-ipaddress", "r")))\r
+               {\r
+                       fprintf(stderr, "Couldn't open local ip file\n");\r
+                       exit(0);\r
+               }\r
+               if (fgets(locip, STRING_SIZE, ipfile))\r
+               {\r
+                       if (locip[strlen(locip) - 1] == '\n')\r
+                               locip[strlen(locip) - 1] = '\0';\r
+               }\r
+               fclose (ipfile);\r
+               if (strlen(locip) && !VALID_IP(locip))\r
+               {\r
+                       fprintf(stderr, "Bad local IP: %s\n", locip);\r
+                       exit(1);\r
+               }\r
+       \r
+               if (!(dns1file = fopen(CONFIG_ROOT "/red/dns1", "r")))\r
+               {\r
+                       fprintf(stderr, "Couldn't open dns1 file\n");\r
+                       exit(0);\r
+               }\r
+               if (fgets(dns1, STRING_SIZE, dns1file))\r
+               {\r
+                       if (dns1[strlen(dns1) - 1] == '\n')\r
+                               dns1[strlen(dns1) - 1] = '\0';\r
+               }\r
+               fclose (dns1file);\r
+               if (strlen(dns1) && !VALID_IP(dns1))\r
+               {\r
+                       fprintf(stderr, "Bad DNS1 IP: %s\n", dns1);\r
+                       exit(1);\r
+               }\r
+                       \r
+               if (!(dns2file = fopen(CONFIG_ROOT "/red/dns2", "r")))\r
+               {\r
+                       fprintf(stderr, "Couldn't open dns2 file\n");\r
+                       exit(1);\r
+               }\r
+               if (fgets(dns2, STRING_SIZE, dns2file))\r
+               {\r
+                       if (dns2[strlen(dns2) - 1] == '\n')\r
+                               dns2[strlen(dns2) - 1] = '\0';\r
+               }\r
+               fclose (dns2file);\r
+               if (strlen(dns2) && !VALID_IP(dns2))\r
+               {\r
+                       fprintf(stderr, "Bad DNS2 IP: %s\n", dns2);\r
+                       exit(1);\r
+               }\r
+       }\r
+\r
+       if (restartred)\r
+               killsnort(iface);\r
+\r
+       if (restartblue)\r
+               killsnort(bluedev);\r
+       \r
+       if (restartorange)\r
+               killsnort(orangedev);\r
+\r
+       if (restartgreen)\r
+               killsnort(greendev);\r
+        \r
+       if (!(varsfile = fopen("/etc/snort/vars", "w")))\r
+       {\r
+               fprintf(stderr, "Couldn't create vars file\n");\r
+               exit(1);\r
+       }\r
+       if (strlen(blueip)) {\r
+               if (strlen(orangeip)) {\r
+                       if (strlen(locip)) {\r
+                               fprintf(varsfile, "var HOME_NET [%s,%s,%s,%s]\n", greenip, orangeip, blueip, locip);\r
+                       } else {\r
+                               fprintf(varsfile, "var HOME_NET [%s,%s,%s]\n", greenip, orangeip, blueip);\r
+                       }\r
+               } else {\r
+                       if (strlen(locip)) {\r
+                               fprintf(varsfile, "var HOME_NET [%s,%s,%s]\n", greenip, blueip, locip);\r
+                       } else {\r
+                               fprintf(varsfile, "var HOME_NET [%s,%s]\n", greenip, blueip);\r
+                       }\r
+               }\r
+       } else {\r
+               if (strlen(orangeip)) {\r
+                       if (strlen(locip)) {\r
+                               fprintf(varsfile, "var HOME_NET [%s,%s,%s]\n", greenip, orangeip, locip);\r
+                       } else {\r
+                               fprintf(varsfile, "var HOME_NET [%s,%s]\n", greenip, orangeip);\r
+                       }\r
+               } else {\r
+                       if (strlen(locip)) {\r
+                               fprintf(varsfile, "var HOME_NET [%s,%s]\n", greenip, locip);\r
+                       } else {\r
+                               fprintf(varsfile, "var HOME_NET [%s]\n", greenip);\r
+                       }\r
+               }\r
+       }\r
+       if (strlen(dns1))\r
+       {\r
+               if (strlen(dns2))\r
+                       fprintf(varsfile, "var DNS_SERVERS [%s,%s]\n", dns1, dns2);\r
+               else\r
+                       fprintf(varsfile, "var DNS_SERVERS %s\n", dns1);\r
+       } else {\r
+               fprintf(varsfile, "var DNS_SERVERS []\n");\r
+       }\r
+       fclose(varsfile);\r
+       varsfile = NULL;\r
+       \r
+       if (restartred && strlen(iface) && (fd = open(CONFIG_ROOT "/snort/enable", O_RDONLY)) != -1)\r
+       {\r
+               close(fd);\r
+               snprintf(command, STRING_SIZE -1,\r
+                       "/usr/sbin/snort -c /etc/snort/snort.conf -D -u snort -g snort -d -e -o -p -b -A fast -m 022 -i %s",\r
+                       iface);\r
+               safe_system(command);\r
+       }\r
+       if (restartblue && strlen(bluedev) && (fd = open(CONFIG_ROOT "/snort/enable_blue", O_RDONLY)) != -1 && bluedev)\r
+        {\r
+               close(fd);\r
+               snprintf(command, STRING_SIZE -1,\r
+                       "/usr/sbin/snort -c /etc/snort/snort.conf -D -u snort -g snort -d -e -o -p -b -A fast -m 022 -i %s",\r
+                       bluedev);\r
+               safe_system(command);\r
+       }\r
+       if (restartorange && strlen(orangedev) && (fd = open(CONFIG_ROOT "/snort/enable_orange", O_RDONLY)) != -1 && orangedev)\r
+       {\r
+               close(fd);\r
+               snprintf(command, STRING_SIZE -1,\r
+                       "/usr/sbin/snort -c /etc/snort/snort.conf -D -u snort -g snort -d -e -o -p -b -A fast -m 022 -i %s",\r
+                       orangedev);\r
+               safe_system(command);\r
+       }\r
+       if (restartgreen && (fd = open(CONFIG_ROOT "/snort/enable_green", O_RDONLY)) != -1)\r
+       {\r
+               close(fd);\r
+               snprintf(command, STRING_SIZE -1,\r
+                       "/usr/sbin/snort -c /etc/snort/snort.conf -D -u snort -g snort -d -e -o -p -b -A fast -m 022 -i %s",\r
+                       greendev);\r
+               safe_system(command);\r
+       }\r
+\r
+  return 0;\r
+}\r
diff --git a/src/misc-progs/restartsquid.c b/src/misc-progs/restartsquid.c
new file mode 100644 (file)
index 0000000..579109b
--- /dev/null
@@ -0,0 +1,449 @@
+/* SmoothWall helper program - restartsquid\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Lawrence Manning, 2001\r
+ * Restarting squid with transparent proxying.\r
+ *\r
+ * 05/02/2004 - Roy Walker <rwalker@miracomnetwork.com>\r
+ * Exclude red network from transparent proxy to allow browsing to alias IPs\r
+ * Read in VPN settings and exclude each VPN network from transparent proxy\r
+ * \r
+ * $Id: restartsquid.c,v 1.7.2.8 2005/04/22 18:44:37 rkerr Exp $\r
+ * \r
+ */\r
\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <unistd.h>\r
+#include <stdlib.h>\r
+#include <pwd.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <fcntl.h>\r
+#include "libsmooth.h"\r
+#include "setuid.h"\r
+\r
+int main(int argc, char *argv[])\r
+{\r
+       int fd = -1;\r
+       int enable = 0;\r
+       int enablevpn = 0;\r
+       int transparent = 0;\r
+       int enable_blue = 0;\r
+       int transparent_blue = 0;\r
+       int running = 0;\r
+       struct stat st;\r
+       FILE *ipfile;\r
+       char localip[STRING_SIZE] = "";\r
+       struct keyvalue *net = NULL;\r
+       struct keyvalue *squid = NULL;\r
+       char buffer[STRING_SIZE];\r
+       char proxy_port[STRING_SIZE];\r
+       char s[STRING_SIZE];\r
+       char green_dev[STRING_SIZE] = "";\r
+       char blue_dev[STRING_SIZE] = "";\r
+       char red_netaddress[STRING_SIZE] = "";\r
+       char red_netmask[STRING_SIZE] = "";\r
+       char configtype[STRING_SIZE] = "";\r
+       char redtype[STRING_SIZE] = "";\r
+       char enableredvpn[STRING_SIZE] = "";\r
+       char enablebluevpn[STRING_SIZE] = "";\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       /* Kill running squid */\r
+       safe_system("/sbin/iptables -t nat -F SQUID");\r
+       safe_system("/usr/sbin/squid -k shutdown >/dev/null 2>/dev/null");\r
+       sleep(5);\r
+       safe_system("/bin/killall -9 squid >/dev/null 2>/dev/null");\r
+       \r
+       /* See if proxy is enabled and / or transparent */\r
+       if ((fd = open(CONFIG_ROOT "/proxy/enable", O_RDONLY)) != -1)\r
+       {\r
+               close(fd);\r
+               enable = 1;\r
+       }\r
+       if ((fd = open(CONFIG_ROOT "/proxy/transparent", O_RDONLY)) != -1)\r
+       {\r
+               close(fd);\r
+               transparent = 1;\r
+       }\r
+       if ((fd = open(CONFIG_ROOT "/proxy/enable_blue", O_RDONLY)) != -1)\r
+       {\r
+               close(fd);\r
+               enable_blue = 1;\r
+       }\r
+       if ((fd = open(CONFIG_ROOT "/proxy/transparent_blue", O_RDONLY)) != -1)\r
+       {\r
+               close(fd);\r
+               transparent_blue = 1;\r
+       }\r
+\r
+       /* Read the network configuration */\r
+       net=initkeyvalues();\r
+       if (!readkeyvalues(net, CONFIG_ROOT "/ethernet/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read ethernet settings\n");\r
+               exit(1);\r
+       }\r
+       if (!findkey(net, "GREEN_DEV", green_dev))\r
+       {\r
+               fprintf(stderr, "Cannot read GREEN_DEV\n");\r
+               exit(1);\r
+       }\r
+       if (!VALID_DEVICE(green_dev))\r
+       {\r
+               fprintf(stderr, "Bad GREEN_DEV: %s\n", green_dev);\r
+               exit(1);\r
+       }\r
+       if (!findkey(net, "CONFIG_TYPE", configtype))\r
+       {\r
+               fprintf(stderr, "Cannot read CONFIG_TYPE\n");\r
+               exit(1);\r
+       }\r
+\r
+       findkey(net, "RED_TYPE", redtype);\r
+       findkey(net, "RED_NETADDRESS", red_netaddress);\r
+       findkey(net, "RED_NETMASK", red_netmask);\r
+       findkey(net, "BLUE_DEV", blue_dev);\r
+       freekeyvalues(net);\r
+\r
+       /* See if VPN software is enabled */\r
+       net=initkeyvalues();\r
+       if (!readkeyvalues(net, CONFIG_ROOT "/vpn/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read vpn settings\n");\r
+               exit(1);\r
+       }\r
+       findkey(net, "ENABLED", enableredvpn);\r
+       findkey(net, "ENABLED_BLUE", enablebluevpn);\r
+       freekeyvalues(net);\r
+       if (    (!strcmp(enableredvpn, "on") && VALID_IP(localip)) || \r
+               (!strcmp(enablebluevpn, "on") && VALID_DEVICE(blue_dev)) ) {\r
+                       enablevpn = 1;\r
+       }\r
+\r
+       /* Retrieve the Squid pid file */\r
+       if ((fd = open("/var/run/squid.pid", O_RDONLY)) != -1)\r
+       {\r
+               close(fd);\r
+               running = 1;\r
+       }\r
+\r
+       /* Retrieve the RED ip address */\r
+       stat(CONFIG_ROOT "/red/local-ipaddress", &st);\r
+       if (S_ISREG(st.st_mode)) {\r
+               if (!(ipfile = fopen(CONFIG_ROOT "/red/local-ipaddress", "r")))\r
+               {\r
+                       fprintf(stderr, "Couldn't open ip file\n");\r
+                       exit(0); \r
+               }\r
+               if (fgets(localip, STRING_SIZE, ipfile))\r
+               {\r
+                       if (localip[strlen(localip) - 1] == '\n')\r
+                               localip[strlen(localip) - 1] = '\0';\r
+               }\r
+               fclose(ipfile);\r
+               if (!VALID_IP(localip))\r
+               {\r
+                       fprintf(stderr, "Bad ip: %s\n", localip);\r
+                       exit(0);\r
+               }\r
+       }\r
+\r
+       /* See if we need to flush the cache */\r
+       if (argc >=2) {\r
+               if (strcmp(argv[1], "-f") == 0) {\r
+                       if (stat("/var/log/cache/swap.state", &st) == 0) {\r
+                               struct passwd *pw;\r
+                               if((pw = getpwnam("squid"))) {\r
+                                       endpwent(); /* probably paranoia, but just in case.. */\r
+                                       unpriv_system("/bin/echo > /var/log/cache/swap.state", pw->pw_uid, pw->pw_gid);\r
+                               } else { endpwent(); }\r
+                       }\r
+               }\r
+       }\r
+\r
+       if (enable || enable_blue)\r
+       {\r
+               safe_system("/usr/sbin/squid -D -z"); \r
+               safe_system("/usr/sbin/squid -D");\r
+       }\r
+\r
+       /* Retrieve the proxy port */\r
+       if (transparent || transparent_blue) {\r
+               squid=initkeyvalues();\r
+\r
+               if (!readkeyvalues(squid, CONFIG_ROOT "/proxy/settings"))\r
+               {\r
+                       fprintf(stderr, "Cannot read proxy settings\n");\r
+                       exit(1);\r
+               }\r
+\r
+               if (!(findkey(squid, "PROXY_PORT", proxy_port)))\r
+               {\r
+                       strcpy (proxy_port, "800");\r
+               } else {\r
+                       if(strspn(proxy_port, NUMBERS) != strlen(proxy_port))\r
+                       {\r
+                               fprintf(stderr, "Invalid proxy port: %s, defaulting to 800\n", proxy_port);\r
+                               strcpy(proxy_port, "800");\r
+                       }\r
+               }\r
+               freekeyvalues(squid);\r
+       }\r
+\r
+       if (transparent && enable) {\r
+               int count;\r
+               char *result;\r
+               char *name;\r
+               char *type;\r
+               char *running;\r
+               char *vpn_network_mask;\r
+               char *vpn_netaddress;\r
+               char *vpn_netmask;\r
+               FILE *file = NULL;\r
+               char *conn_enabled;\r
+               \r
+               /* Darren Critchley - check to see if RED VPN is enabled before mucking with rules */\r
+               if (!strcmp(enableredvpn, "on")) {\r
+                       /* Read the /vpn/config file - no check to see if VPN is enabled */\r
+                       if (!(file = fopen(CONFIG_ROOT "/vpn/config", "r"))) {\r
+                               fprintf(stderr, "Couldn't open vpn config file");\r
+                               exit(1);\r
+                       }\r
+\r
+                               while (fgets(s, STRING_SIZE, file) != NULL) {\r
+                                       if (s[strlen(s) - 1] == '\n')\r
+                                               s[strlen(s) - 1] = '\0';\r
+                                       running = strdup (s);\r
+                                       result = strsep(&running, ",");\r
+                                       count = 0;\r
+                                       name = NULL;\r
+                                       type = NULL;\r
+                                       vpn_network_mask = NULL;\r
+                                       conn_enabled = NULL;\r
+                                       while (result) {\r
+                                               if (count == 1)\r
+                                                       conn_enabled = result;\r
+                                               if (count == 2)\r
+                                                       name = result;\r
+                                               if (count == 4)\r
+                                                       type = result;\r
+                                               if (count == 12 )\r
+                                                       vpn_network_mask = result;\r
+                                               count++;\r
+                                               result = strsep(&running, ",");\r
+                                       }\r
+       \r
+                                       if (strspn(name, LETTERS_NUMBERS) != strlen(name)) {\r
+                                               fprintf(stderr, "Bad connection name: %s\n", name);\r
+                                               exit(1);\r
+                                       }\r
+       \r
+                                       if (! (strcmp(type, "net") == 0)) {\r
+                                               continue;\r
+                                       }\r
+       \r
+                                       /* Darren Critchley - new check to see if connection is enabled */\r
+                                       if (! (strcmp(conn_enabled, "on") == 0)) {\r
+                                               continue;\r
+                                       }\r
+       \r
+                                       result = strsep(&vpn_network_mask, "/");\r
+                                       count = 0;\r
+                                       vpn_netaddress = NULL;\r
+                                       vpn_netmask = NULL;\r
+                                       while (result) {\r
+                                               if (count == 0)\r
+                                                       vpn_netaddress = result;\r
+                                               if (count == 1)\r
+                                                       vpn_netmask = result;\r
+                                               count++;\r
+                                               result = strsep(&vpn_network_mask, "/");\r
+                                       }\r
+       \r
+                                       if (!VALID_IP(vpn_netaddress)) {\r
+                                               fprintf(stderr, "Bad network for vpn connection %s: %s\n", name, vpn_netaddress);\r
+                                               continue;\r
+                                       }\r
+       \r
+                                       if ((!VALID_IP(vpn_netmask)) && (!VALID_SHORT_MASK(vpn_netmask))) {\r
+                                               fprintf(stderr, "Bad mask for vpn connection %s: %s\n", name, vpn_netmask);\r
+                                               continue;\r
+                                       }\r
+       \r
+                                       memset(buffer, 0, STRING_SIZE);\r
+                                       if( snprintf(buffer, STRING_SIZE - 1, "/sbin/iptables -t nat -A SQUID -i %s -p tcp -d %s/%s --dport 80 -j RETURN", green_dev, vpn_netaddress, vpn_netmask) >= STRING_SIZE )\r
+                                       {\r
+                                               fprintf(stderr, "Command too long\n");\r
+                                               exit(1);\r
+                                       }\r
+                                       safe_system(buffer);\r
+                               }\r
+               }       \r
+               \r
+               memset(buffer, 0, STRING_SIZE);\r
+               if ( (  (strcmp(configtype, "2")==0) || (strcmp(configtype, "3")==0)  || \r
+                       (strcmp(configtype, "6")==0) || (strcmp(configtype, "7")==0) ) &&\r
+                       (VALID_IP(red_netaddress)) && (VALID_IP(red_netmask)) && \r
+                       (strcmp(redtype, "STATIC")==0) ) \r
+               {\r
+                       memset(buffer, 0, STRING_SIZE);\r
+                       if( snprintf(buffer, STRING_SIZE - 1, "/sbin/iptables -t nat -A SQUID -i %s -p tcp -d %s/%s --dport 80 -j RETURN", green_dev, red_netaddress, red_netmask) >= STRING_SIZE )\r
+                       {\r
+                               fprintf(stderr, "Command too long\n");\r
+                               exit(1);\r
+                       }\r
+                       safe_system(buffer);\r
+               } else if (VALID_IP(localip)) {\r
+                       memset(buffer, 0, STRING_SIZE);\r
+                       if( snprintf(buffer, STRING_SIZE - 1, "/sbin/iptables -t nat -A SQUID -i %s -p tcp -d %s --dport 80 -j RETURN", green_dev, localip) >= STRING_SIZE )\r
+                       {\r
+                               fprintf(stderr, "Command too long\n");\r
+                               exit(1);\r
+                       }\r
+                       safe_system(buffer);\r
+               }\r
+\r
+               memset(buffer, 0, STRING_SIZE);\r
+               if( snprintf(buffer, STRING_SIZE - 1, "/sbin/iptables -t nat -A SQUID -i %s -p tcp --dport 80 -j REDIRECT --to-port %s", green_dev, proxy_port) >= STRING_SIZE )\r
+               {\r
+                       fprintf(stderr, "Command too long\n");\r
+                       exit(1);\r
+               }\r
+               safe_system(buffer);\r
+       }\r
+\r
+       if (transparent_blue && enable_blue) {\r
+               int count;\r
+               char *result;\r
+               char *name;\r
+               char *type;\r
+               char *running;\r
+               char *vpn_network_mask;\r
+               char *vpn_netaddress;\r
+               char *vpn_netmask;\r
+               char *conn_enabled;\r
+               FILE *file = NULL;\r
+\r
+               if (! VALID_DEVICE(blue_dev))\r
+               {\r
+                       fprintf(stderr, "Bad BLUE_DEV: %s\n", blue_dev);\r
+                       exit(1);\r
+               }\r
+\r
+               /* Darren Critchley - check to see if BLUE VPN is enabled before mucking with rules */\r
+               if (!strcmp(enablebluevpn, "on")) {\r
+                       /* Read the /vpn/config file - no check to see if VPN is enabled */\r
+                       if (!(file = fopen(CONFIG_ROOT "/vpn/config", "r"))) {\r
+                               fprintf(stderr, "Couldn't open vpn config file");\r
+                               exit(1);\r
+                               }\r
+                               while (fgets(s, STRING_SIZE, file) != NULL) {\r
+                                       if (s[strlen(s) - 1] == '\n')\r
+                                               s[strlen(s) - 1] = '\0';\r
+                                       running = strdup (s);\r
+                                       result = strsep(&running, ",");\r
+                                       count = 0;\r
+                                       name = NULL;\r
+                                       type = NULL;\r
+                                       vpn_network_mask = NULL;\r
+                                       conn_enabled = NULL;\r
+                                       while (result) {\r
+                                               if (count == 1)\r
+                                                       conn_enabled = result;\r
+                                               if (count == 2)\r
+                                                       name = result;\r
+                                               if (count == 4)\r
+                                                       type = result;\r
+                                               if (count == 12 )\r
+                                                       vpn_network_mask = result;\r
+                                               count++;\r
+                                               result = strsep(&running, ",");\r
+                                       }\r
+       \r
+                                       if (strspn(name, LETTERS_NUMBERS) != strlen(name)) {\r
+                                               fprintf(stderr, "Bad connection name: %s\n", name);\r
+                                               exit(1);\r
+                                       }\r
+       \r
+                                       if (! (strcmp(type, "net") == 0)) {\r
+                                               continue;\r
+                                       }\r
+       \r
+                                       /* Darren Critchley - new check to see if connection is enabled */\r
+                                       if (! (strcmp(conn_enabled, "on") == 0)) {\r
+                                               continue;\r
+                                       }\r
+       \r
+                                       result = strsep(&vpn_network_mask, "/");\r
+                                       count = 0;\r
+                                       vpn_netaddress = NULL;\r
+                                       vpn_netmask = NULL;\r
+                                       while (result) {\r
+                                               if (count == 0)\r
+                                                       vpn_netaddress = result;\r
+                                               if (count == 1)\r
+                                                       vpn_netmask = result;\r
+                                               count++;\r
+                                               result = strsep(&vpn_network_mask, "/");\r
+                                       }\r
+       \r
+                                       if (!VALID_IP(vpn_netaddress)) {\r
+                                               fprintf(stderr, "Bad network for vpn connection %s: %s\n", name, vpn_netaddress);\r
+                                               continue;\r
+                                       }\r
+       \r
+                                       if ((!VALID_IP(vpn_netmask)) && (!VALID_SHORT_MASK(vpn_netmask))) {\r
+                                               fprintf(stderr, "Bad mask for vpn connection %s: %s\n", name, vpn_netmask);\r
+                                               continue;\r
+                                       }\r
+       \r
+                                       memset(buffer, 0, STRING_SIZE);\r
+                                       if (snprintf(buffer, STRING_SIZE - 1, "/sbin/iptables -t nat -A SQUID -i %s -p tcp -d %s/%s --dport 80 -j RETURN", blue_dev, vpn_netaddress, vpn_netmask) >= STRING_SIZE )\r
+                                       {\r
+                                               fprintf(stderr, "Command too long\n");\r
+                                               exit(1);\r
+                                       }\r
+                                       safe_system(buffer);\r
+                               }\r
+               }\r
+       \r
+               memset(buffer, 0, STRING_SIZE);\r
+               if ( (  (strcmp(configtype, "2")==0) || (strcmp(configtype, "3")==0)  ||\r
+                       (strcmp(configtype, "6")==0) || (strcmp(configtype, "7")==0) ) &&\r
+                       (VALID_IP(red_netaddress)) && (VALID_IP(red_netmask)) &&\r
+                       (strcmp(redtype, "STATIC")==0) )\r
+               {\r
+                       memset(buffer, 0, STRING_SIZE);\r
+                       if( snprintf(buffer, STRING_SIZE - 1, "/sbin/iptables -t nat -A SQUID -i %s -p tcp -d %s/%s --dport 80 -j RETURN", blue_dev, red_netaddress, red_netmask) >= STRING_SIZE )\r
+                       {\r
+                               fprintf(stderr, "Command too long\n");\r
+                               exit(1);\r
+                       }\r
+                       safe_system(buffer);\r
+               } else if (VALID_IP(localip)) {\r
+                       memset(buffer, 0, STRING_SIZE);\r
+                       if( snprintf(buffer, STRING_SIZE - 1, "/sbin/iptables -t nat -A SQUID -i %s -p tcp -d %s --dport 80 -j RETURN", blue_dev, localip) >= STRING_SIZE )\r
+                       {\r
+                               fprintf(stderr, "Command too long\n");\r
+                               exit(1);\r
+                       }\r
+                       safe_system(buffer);\r
+               }\r
+\r
+               memset(buffer, 0, STRING_SIZE);\r
+               if( snprintf(buffer, STRING_SIZE - 1, "/sbin/iptables -t nat -A SQUID -i %s -p tcp --dport 80 -j REDIRECT --to-port %s", blue_dev, proxy_port) >= STRING_SIZE )\r
+               {\r
+                       fprintf(stderr, "Command too long\n");\r
+                       exit(1);\r
+               }\r
+               safe_system(buffer);\r
+       }\r
+       \r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/restartssh.c b/src/misc-progs/restartssh.c
new file mode 100644 (file)
index 0000000..1361401
--- /dev/null
@@ -0,0 +1,135 @@
+/* SmoothWall helper program - restartssh\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Mark Wormgoor, 2001\r
+ * Simple program intended to be installed setuid(0) that can be used for\r
+ * restarting SSHd. \r
+ * \r
+ * $Id: restartssh.c,v 1.3 2003/12/11 10:57:34 riddles Exp $\r
+ * \r
+ */\r
+\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <string.h>\r
+#include <sys/types.h>\r
+#include <fcntl.h>\r
+#include <signal.h>\r
+#include <errno.h>\r
+#include "libsmooth.h"\r
+#include "setuid.h"\r
+\r
+int main(void)\r
+{\r
+       int fd, config_fd, rc, pid;\r
+       char buffer[STRING_SIZE], command[STRING_SIZE] = "/bin/sed -e '";\r
+       struct keyvalue *kv = NULL;\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       kv = initkeyvalues();\r
+       if (!readkeyvalues(kv, CONFIG_ROOT "/remote/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read remote access settings\n");\r
+               exit(1);\r
+       }\r
+\r
+       /* By using O_CREAT with O_EXCL open() will fail if the file already exists,\r
+        * this prevents 2 copies of restartssh both trying to edit the config file\r
+        * at once. It also prevents race conditions, but these shouldn't be\r
+        * possible as /etc/ssh/ should only be writable by root anyhow\r
+        */\r
+\r
+       if ((config_fd = open( "/etc/ssh/sshd_config.new", O_WRONLY|O_CREAT|O_EXCL, 0644 )) == -1 )\r
+       {\r
+               perror("Unable to open new config file");\r
+               freekeyvalues(kv);\r
+               exit(1);\r
+       }\r
+\r
+       if(findkey(kv, "ENABLE_SSH_PROTOCOL1", buffer) && !strcmp(buffer,"on"))\r
+               strlcat(command, "s/^Protocol .*$/Protocol 2,1/;", STRING_SIZE - 1 );\r
+       else\r
+               strlcat(command, "s/^Protocol .*$/Protocol 2/;", STRING_SIZE - 1 );\r
+\r
+       if(findkey(kv, "ENABLE_SSH_KEYS", buffer) && !strcmp(buffer,"off"))\r
+               strlcat(command, "s/^RSAAuthentication .*$/RSAAuthentication no/;"\r
+                                "s/^PubkeyAuthentication .*$/PubkeyAuthentication no/;",\r
+                                 STRING_SIZE - 1 );\r
+       else\r
+               strlcat(command, "s/^RSAAuthentication .*$/RSAAuthentication yes/;"\r
+                                "s/^PubkeyAuthentication .*$/PubkeyAuthentication yes/;",\r
+                                 STRING_SIZE - 1 );\r
+\r
+       if(findkey(kv, "ENABLE_SSH_PASSWORDS", buffer) && !strcmp(buffer,"off"))\r
+               strlcat(command, "s/^PasswordAuthentication .*$/PasswordAuthentication no/;", STRING_SIZE - 1 );\r
+       else\r
+               strlcat(command, "s/^PasswordAuthentication .*$/PasswordAuthentication yes/;", STRING_SIZE - 1 );\r
+\r
+       if(findkey(kv, "ENABLE_SSH_PORTFW", buffer) && !strcmp(buffer,"on"))\r
+               strlcat(command, "s/^AllowTcpForwarding .*$/AllowTcpForwarding yes/", STRING_SIZE - 1 );\r
+       else\r
+               strlcat(command, "s/^AllowTcpForwarding .*$/AllowTcpForwarding no/", STRING_SIZE - 1 );\r
+\r
+       freekeyvalues(kv);\r
+\r
+       snprintf(buffer, STRING_SIZE - 1, "' /etc/ssh/sshd_config >&%d", config_fd );\r
+       strlcat(command, buffer, STRING_SIZE - 1);\r
+\r
+       if((rc = unpriv_system(command,99,99)) != 0)\r
+       {\r
+               fprintf(stderr, "sed returned bad exit code: %d\n", rc);\r
+               close(config_fd);\r
+               unlink("/etc/ssh/sshd_config.new");\r
+               exit(1);\r
+       }\r
+       close(config_fd);\r
+       if (rename("/etc/ssh/sshd_config.new","/etc/ssh/sshd_config") != 0)\r
+       {\r
+               perror("Unable to replace old config file");\r
+               unlink("/etc/ssh/sshd_config.new");\r
+               exit(1);\r
+       }\r
+\r
+       memset(buffer, 0, STRING_SIZE);\r
+\r
+       if ((fd = open("/var/run/sshd.pid", O_RDONLY)) != -1)\r
+       {\r
+               if (read(fd, buffer, STRING_SIZE - 1) == -1)\r
+                       fprintf(stderr, "Couldn't read from pid file\n");\r
+               else\r
+               {\r
+                       pid = atoi(buffer);\r
+                       if (pid <= 1)\r
+                               fprintf(stderr, "Bad pid value\n");\r
+                       else\r
+                       {\r
+                               if (kill(pid, SIGTERM) == -1)\r
+                                       fprintf(stderr, "Unable to send SIGTERM\n");\r
+                               else\r
+                                       unlink("/var/run/sshd.pid");\r
+                       }\r
+               }\r
+               close(fd);\r
+       }\r
+       else\r
+       {\r
+               if (errno != ENOENT)\r
+               {\r
+                       perror("Unable to open pid file");\r
+                       exit(1);\r
+               }\r
+       }\r
+\r
+       if ((fd = open(CONFIG_ROOT "/remote/enablessh", O_RDONLY)) != -1)\r
+       {\r
+               close(fd);\r
+               safe_system("/usr/sbin/sshd");\r
+       }\r
+\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/restartsyslogd.c b/src/misc-progs/restartsyslogd.c
new file mode 100644 (file)
index 0000000..ee36f04
--- /dev/null
@@ -0,0 +1,167 @@
+/* This file is part of the IPCop Firewall.\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * Copyright (C) 2003-07-12 Robert Kerr <rkerr@go.to>\r
+ *\r
+ * $Id: restartsyslogd.c,v 1.2.2.3 2004/12/14 17:56:37 gespinasse Exp $\r
+ *\r
+ */\r
+\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <string.h>\r
+#include <sys/stat.h>\r
+#include <sys/types.h>\r
+#include <fcntl.h>\r
+#include <signal.h>\r
+#include <errno.h>\r
+#include "libsmooth.h"\r
+#include "setuid.h"\r
+\r
+#define ERR_ANY 1\r
+#define ERR_SETTINGS 2    /* error in settings file */\r
+#define ERR_ETC 3         /* error with /etc permissions */\r
+#define ERR_CONFIG 4      /* error updated sshd_config */\r
+#define ERR_SYSLOG 5      /* error restarting syslogd */\r
+\r
+int main(void)\r
+{\r
+   char buffer[STRING_SIZE], hostname[STRING_SIZE];\r
+   int config_fd,rc,fd,pid;\r
+   struct stat st;\r
+   struct keyvalue *kv = NULL;\r
+   memset(buffer, 0, STRING_SIZE);\r
+   memset(hostname, 0, STRING_SIZE);\r
+\r
+   if (!(initsetuid()))\r
+      exit(1);\r
+\r
+\r
+   /* Read in and verify config */\r
+   kv=initkeyvalues();\r
+\r
+   if (!readkeyvalues(kv, CONFIG_ROOT "/logging/settings"))\r
+   {\r
+      fprintf(stderr, "Cannot read syslog settings\n");\r
+      exit(ERR_SETTINGS);\r
+   }\r
+\r
+   if (!findkey(kv, "ENABLE_REMOTELOG", buffer))\r
+   {\r
+      fprintf(stderr, "Cannot read ENABLE_REMOTELOG\n");\r
+      exit(ERR_SETTINGS);\r
+   }\r
+\r
+   if (!findkey(kv, "REMOTELOG_ADDR", hostname))\r
+   {\r
+      fprintf(stderr, "Cannot read REMOTELOG_ADDR\n");\r
+      exit(ERR_SETTINGS);\r
+   }\r
+\r
+   if (strspn(hostname, VALID_FQDN) != strlen(hostname))\r
+   {\r
+      fprintf(stderr, "Bad REMOTELOG_ADDR: %s\n", hostname);\r
+      exit(ERR_SETTINGS);\r
+   }\r
+\r
+   freekeyvalues(kv);\r
+\r
+\r
+   /* If anyone other than root can write to /etc this would be totally\r
+    * insecure - same if anyone other than root owns /etc, as they could\r
+    * change the file mode to give themselves or anyone else write access. */\r
+   if(lstat("/etc",&st))\r
+   {\r
+      perror("Unable to stat /etc");\r
+      exit(ERR_ETC);\r
+   }\r
+   if(!S_ISDIR(st.st_mode))\r
+   {\r
+      fprintf(stderr,"/etc is not a directory?!\n");\r
+      exit(ERR_ETC);\r
+   }\r
+   if ( st.st_uid != 0  ||  st.st_mode & S_IWOTH ||\r
+      ((st.st_gid != 0) && (st.st_mode & S_IWGRP)) )\r
+   {\r
+      fprintf(stderr,"/etc is owned/writable by non-root users\n");\r
+      exit(ERR_ETC);\r
+   }\r
+\r
+   /* O_CREAT with O_EXCL will make open() fail if the file already exists -\r
+    * mostly to prevent 2 copies running at once */\r
+   if ((config_fd = open( "/etc/syslog.conf.new", O_WRONLY|O_CREAT|O_EXCL, 0644 )) == -1 )\r
+   {\r
+      perror("Unable to open new config file");\r
+      exit(ERR_CONFIG);\r
+   }\r
+\r
+   if (!strcmp(buffer,"on"))\r
+      snprintf(buffer, STRING_SIZE - 1, "/bin/sed -e 's/^#\\?\\(\\*\\.\\*[[:blank:]]\\+@\\).\\+$/\\1%s/' /etc/syslog.conf >&%d", hostname, config_fd );\r
+   else\r
+      snprintf(buffer, STRING_SIZE - 1, "/bin/sed -e 's/^#\\?\\(\\*\\.\\*[[:blank:]]\\+@.\\+\\)$/#\\1/' /etc/syslog.conf >&%d", config_fd );\r
+\r
+   /* if the return code isn't 0 failsafe */\r
+   if ((rc = unpriv_system(buffer,99,99)) != 0)\r
+   {\r
+      fprintf(stderr, "sed returned bad exit code: %d\n", rc);\r
+      close(config_fd);\r
+      unlink("/etc/syslog.conf.new");\r
+      exit(ERR_CONFIG);\r
+   }\r
+   close(config_fd);\r
+   if (rename("/etc/syslog.conf.new","/etc/syslog.conf") == -1)\r
+   {\r
+      perror("Unable to replace old config file");\r
+      unlink("/etc/syslog.conf.new");\r
+      exit(ERR_CONFIG);\r
+   }\r
+\r
+\r
+   /* Get syslogd to read the new config file */\r
+   if ((fd = open("/var/run/syslogd.pid", O_RDONLY)) == -1)\r
+   {\r
+      if(errno == ENOENT)\r
+      {\r
+         /* pid file doesn't exists.. restart syslog */\r
+         if((rc = safe_system("/usr/sbin/syslogd -m 0")) == 0 )\r
+            return 0;\r
+         else\r
+         {\r
+            fprintf(stderr,\r
+               "Unable to restart syslogd - returned exit code %d\n", rc);\r
+            exit(ERR_SYSLOG);\r
+         }\r
+      } else {\r
+         /* Something odd is going on, failsafe */\r
+         perror("Unable to open pid file");\r
+         exit(ERR_SYSLOG);\r
+      }\r
+   }\r
+\r
+   memset(buffer, 0, STRING_SIZE);\r
+   if (read(fd, buffer, STRING_SIZE - 1) == -1)\r
+   {\r
+      close(fd);\r
+      perror("Couldn't read from pid file");\r
+      exit(ERR_SYSLOG);\r
+   }\r
+   close(fd);\r
+   /* strtol does sanity checks that atoi doesn't do */\r
+   errno = 0;\r
+   pid = (int)strtol(buffer, (char **)NULL, 10);\r
+   if (errno || pid <= 1)\r
+   {\r
+      fprintf(stderr, "Bad pid value\n");\r
+      exit(ERR_SYSLOG);\r
+   }\r
+   if (kill(pid, SIGHUP) == -1)\r
+   {\r
+      fprintf(stderr, "Unable to send SIGHUP\n");\r
+      exit(ERR_SYSLOG);\r
+   }\r
+\r
+   return 0;\r
+}\r
diff --git a/src/misc-progs/restartwireless.c b/src/misc-progs/restartwireless.c
new file mode 100644 (file)
index 0000000..79b519d
--- /dev/null
@@ -0,0 +1,147 @@
+/* IPCop helper program - restartwireless\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Alan Hourihane, 2003\r
+ * \r
+ * $Id: restartwireless.c,v 1.2.2.5 2005/07/11 10:56:47 franck78 Exp $\r
+ *\r
+ */\r
+\r
+#include "libsmooth.h"\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <fcntl.h>\r
+#include <string.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <signal.h>\r
+#include "setuid.h"\r
+\r
+FILE *fd = NULL;\r
+char blue_dev[STRING_SIZE] = "";\r
+char command[STRING_SIZE];\r
+\r
+void exithandler(void)\r
+{\r
+       if(strlen(blue_dev))\r
+       {\r
+               snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -j LOG_DROP", blue_dev);\r
+               safe_system(command);\r
+               snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -j LOG_DROP", blue_dev);\r
+               safe_system(command);\r
+       }\r
+\r
+       if (fd)\r
+               fclose(fd);\r
+}\r
+\r
+int main(void)\r
+{\r
+       char green_dev[STRING_SIZE] = "";\r
+       char buffer[STRING_SIZE];\r
+       char *index, *ipaddress, *macaddress, *enabled;\r
+       struct keyvalue *kv = NULL;\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       /* flush wireless iptables */\r
+       safe_system("/sbin/iptables -F WIRELESSINPUT > /dev/null 2> /dev/null");\r
+       safe_system("/sbin/iptables -F WIRELESSFORWARD > /dev/null 2> /dev/null");\r
+\r
+       memset(buffer, 0, STRING_SIZE);\r
+\r
+       /* Init the keyvalue structure */\r
+       kv=initkeyvalues();\r
+\r
+       /* Read in the current values */\r
+       if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read ethernet settings\n");\r
+               exit(1);\r
+       }\r
+\r
+       /* Get the GREEN interface details */\r
+       if(!findkey(kv, "GREEN_DEV", green_dev))\r
+       {\r
+               fprintf(stderr, "Cannot read GREEN_DEV\n");\r
+               exit(1);\r
+       }\r
+       if (!VALID_DEVICE(green_dev))\r
+       {\r
+               fprintf(stderr, "Bad GREEN_DEV: %s\n", green_dev);\r
+               exit(1);\r
+       }\r
+       /* Get the BLUE interface details */\r
+       if(!findkey(kv, "BLUE_DEV", blue_dev))\r
+       {\r
+               fprintf(stderr, "Cannot read BLUE_DEV\n");\r
+               exit(1);\r
+       }\r
+       if (strlen(blue_dev) && !VALID_DEVICE(blue_dev))\r
+       {\r
+               fprintf(stderr, "Bad BLUE_DEV: %s\n", blue_dev);\r
+               exit(1);\r
+       }\r
+       if(! strlen(blue_dev) > 0)\r
+       {\r
+               fprintf(stderr, "No BLUE interface\n");\r
+               exit(0);\r
+       }\r
+\r
+       /* register exit handler to ensure the block rule is always present */\r
+       atexit(exithandler);\r
+\r
+       if (!(fd = fopen(CONFIG_ROOT "/wireless/config", "r")))\r
+       {\r
+               exit(0);\r
+       }\r
+       while (fgets(buffer, STRING_SIZE, fd))\r
+       {\r
+               buffer[strlen(buffer) - 1] = 0;\r
+\r
+               index = strtok(buffer, ",");\r
+               ipaddress = strtok(NULL, ",");\r
+               macaddress = strtok(NULL, ",");\r
+               enabled = strtok(NULL, ",");\r
+\r
+               if (!strncmp(enabled, "on", 2)) {\r
+               \r
+                       /* both specified, added security */\r
+                       if ((strlen(macaddress) == 17) && \r
+                           (VALID_IP(ipaddress))) {\r
+                               snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -m mac --mac-source %s -s %s -i %s -j ACCEPT", macaddress, ipaddress, blue_dev);\r
+                               safe_system(command);\r
+                               snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -s %s -i %s -o ! %s -j ACCEPT", macaddress, ipaddress, blue_dev, green_dev);\r
+                               safe_system(command);\r
+                               snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -s %s -i %s -j DMZHOLES", macaddress, ipaddress, blue_dev);\r
+                               safe_system(command);\r
+                       } else {\r
+\r
+                               /* correctly formed mac address is 17 chars */\r
+                               if (strlen(macaddress) == 17) {\r
+                                       snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -m mac --mac-source %s -i %s -j ACCEPT", macaddress, blue_dev);\r
+                                       safe_system(command);\r
+                                       snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -i %s -o ! %s -j ACCEPT", macaddress, blue_dev, green_dev);\r
+                                       safe_system(command);\r
+                                       snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -i %s -j DMZHOLES", macaddress, blue_dev);\r
+                                       safe_system(command);\r
+                               }\r
+\r
+                               if (VALID_IP(ipaddress)) {\r
+                                       snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -s %s -i %s -j ACCEPT", ipaddress, blue_dev);\r
+                                       safe_system(command);\r
+                                       snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -s %s -i %s -o ! %s -j ACCEPT", ipaddress, blue_dev, green_dev);\r
+                                       safe_system(command);\r
+                                       snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -s %s -i %s -j DMZHOLES", ipaddress, blue_dev);\r
+                                       safe_system(command);\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/setaliases.c b/src/misc-progs/setaliases.c
new file mode 100644 (file)
index 0000000..be6251e
--- /dev/null
@@ -0,0 +1,186 @@
+/*\r
+ * setaliases - configure red aliased interfaces\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Steve Bootes, 2002/04/15\r
+ *\r
+ * 21/04/03 Robert Kerr Changed to link directly to libsmooth rather than\r
+ *                      using a copy & paste\r
+ *\r
+ * $Id: setaliases.c,v 1.2.2.4 2004/08/22 22:01:44 alanh Exp $\r
+ *\r
+ */\r
+\r
+#include "libsmooth.h"\r
+#include "setuid.h"\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <unistd.h>\r
+#include <sys/types.h>\r
+#include <sys/stat.h>\r
+#include <fcntl.h>\r
+\r
+struct keyvalue *kv = NULL;\r
+FILE *file = NULL;\r
+\r
+void exithandler(void)\r
+{\r
+       if (kv) freekeyvalues(kv);\r
+       if (file) fclose(file);\r
+}\r
+\r
+int main(void)\r
+{\r
+       char s[STRING_SIZE];\r
+       char command[STRING_SIZE];\r
+       char red_netmask[STRING_SIZE];\r
+       char red_broadcast[STRING_SIZE];\r
+       char red_dev[STRING_SIZE];\r
+       char default_gateway[STRING_SIZE];\r
+       char *aliasip;\r
+       char *enabled;\r
+       char *sptr;\r
+       char *comment;\r
+       int alias;\r
+       int count;\r
+\r
+       if (!(initsetuid()))\r
+       {\r
+               fprintf(stderr, "Cannot run setuid\n");\r
+               exit(1);\r
+       }\r
+\r
+       atexit(exithandler);\r
+\r
+       /* Init the keyvalue structure */\r
+       kv=initkeyvalues();\r
+\r
+       /* Read in the current values */\r
+       if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read ethernet settings\n");\r
+               exit(1);\r
+       }\r
+\r
+       /* Find the CONFIG_TYPE value */\r
+       if (!findkey(kv, "CONFIG_TYPE", s))\r
+       {\r
+               fprintf(stderr, "Cannot read CONFIG_TYPE\n");\r
+               exit(1);\r
+       }\r
+\r
+       /* Check for CONFIG_TYPE=2 or 3 i.e. RED ethernet present. If not,\r
+        * exit gracefully.  This is not an error... */\r
+       if (!((strcmp(s, "2")==0) || (strcmp(s, "3")==0) || (strcmp(s, "6")==0) || (strcmp(s, "7")==0)))\r
+               exit(0);\r
+\r
+       /* Now check the RED_TYPE - aliases only work with STATIC.\r
+        * At least, that's what /etc/rc.d/rc.netaddress.up thinks.. */\r
+\r
+       /* Find the RED_TYPE value */\r
+       if (!findkey(kv, "RED_TYPE", s))\r
+       {\r
+               fprintf(stderr, "Cannot read RED_TYPE\n");\r
+               exit(1);\r
+       }\r
+       \r
+       /* Make sure it's the right type */\r
+       if (!(strcmp(s, "STATIC")==0)) \r
+               exit(0);\r
+\r
+       /* Get the RED interface details */\r
+       if((!findkey(kv, "RED_NETMASK", red_netmask)) || (!findkey(kv, "RED_BROADCAST", red_broadcast)) || \r
+               (!findkey(kv, "RED_DEV", red_dev)) || (!findkey(kv, "DEFAULT_GATEWAY", default_gateway)))\r
+       {\r
+               fprintf(stderr, "Cannot read RED settings\n");\r
+               exit(1);\r
+       }\r
+               \r
+       if (!VALID_DEVICE(red_dev))\r
+       {\r
+               fprintf(stderr, "Bad red_dev: %s\n", red_dev);\r
+               exit(1);\r
+       }\r
+\r
+       if (!VALID_IP(red_netmask))\r
+       {\r
+               fprintf(stderr, "Bad red_netmask : %s\n", red_netmask);\r
+               exit(1);\r
+       }\r
+\r
+       if (!VALID_IP(red_broadcast))\r
+       {\r
+               fprintf(stderr, "Bad red_broadcast : %s\n", red_broadcast);\r
+               exit(1);\r
+       }\r
+\r
+       if (!VALID_IP(default_gateway))\r
+       {\r
+               fprintf(stderr, "Bad default_gateway : %s\n", default_gateway);\r
+               exit(1);\r
+       }\r
+\r
+       /* down the aliases in turn until ifconfig complains */\r
+       alias=0;\r
+       do\r
+       {\r
+               memset(command, 0, STRING_SIZE);\r
+               snprintf(command, STRING_SIZE-1, "/sbin/ifconfig %s:%d down 2>/dev/null", red_dev, alias++);\r
+       } while (safe_system(command)==0);\r
+\r
+       /* Now set up the new aliases from the config file */\r
+        if (!(file = fopen(CONFIG_ROOT "/ethernet/aliases", "r")))\r
+        {\r
+                fprintf(stderr, "Unable to open aliases configuration file\n");\r
+                exit(1);\r
+        }\r
+\r
+       alias=0;\r
+        while (fgets(s, STRING_SIZE, file) != NULL)\r
+        {\r
+                if (s[strlen(s) - 1] == '\n')\r
+                        s[strlen(s) - 1] = '\0';\r
+                sptr = strtok(s, ",");\r
+                count = 0;\r
+                aliasip = NULL;\r
+                enabled = NULL;\r
+                comment = NULL;\r
+                while (sptr)\r
+                {\r
+                        if (count == 0)\r
+                                aliasip = sptr;\r
+                        if (count == 1)\r
+                                enabled = sptr;\r
+                        else\r
+                                comment = sptr;\r
+                        count++;\r
+                       sptr = strtok(NULL, ",");\r
+               }\r
+\r
+               if (!(aliasip && enabled))\r
+                       continue;\r
+\r
+               if (!VALID_IP(aliasip))\r
+                {\r
+                        fprintf(stderr, "Bad alias : %s\n", aliasip);\r
+                        exit(1);\r
+                }\r
+\r
+               if (strcmp(enabled, "on") == 0)\r
+               {\r
+                       memset(command, 0, STRING_SIZE);\r
+                       snprintf(command, STRING_SIZE-1, "/sbin/ifconfig %s:%d %s netmask %s broadcast %s up", red_dev, alias, aliasip, red_netmask, red_broadcast);\r
+                       safe_system(command);\r
+                       memset(command, 0, STRING_SIZE);\r
+                       snprintf(command, STRING_SIZE-1, "/usr/sbin/arping -q -c 1 -w 1 -i %s -S %s %s", red_dev, aliasip, default_gateway);\r
+                       safe_system(command);\r
+                       alias++;\r
+               }\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
diff --git a/src/misc-progs/setdate.c b/src/misc-progs/setdate.c
new file mode 100644 (file)
index 0000000..e3019a0
--- /dev/null
@@ -0,0 +1,52 @@
+/* Ipcop helper program - setdate.c\r
+ *\r
+ * Sets the date and time\r
+ *\r
+ * (c) Darren Critchley 2003\r
+ * \r
+ * $Id: setdate.c,v 1.2 2003/12/11 11:25:54 riddles Exp $\r
+ * \r
+ */\r
+         \r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <unistd.h>\r
+#include <stdlib.h>\r
+#include <sys/types.h>\r
+#include "setuid.h"\r
+\r
+int main(int argc, char *argv[])\r
+{\r
+       char command[STRING_SIZE];\r
+       int a,b,c;\r
+       \r
+       if (!(initsetuid()))\r
+               exit(1);\r
+       \r
+       if (argc < 3)\r
+       {\r
+               fprintf(stderr, "Missing arg\n");\r
+               exit(1);\r
+       }\r
+       \r
+       if (! (strlen(argv[1]) < 11 && sscanf(argv[1], "%d-%d-%d", &a, &b, &c) == 3)\r
+          || (strspn(argv[1], NUMBERS "-" ) != strlen(argv[1])))\r
+       {\r
+               fprintf(stderr, "Bad arg\n");\r
+               exit(1);\r
+       }\r
+\r
+       if (! (strlen(argv[2]) < 6 && sscanf(argv[2], "%d:%d", &a, &b) == 2)\r
+          || (strspn(argv[2], NUMBERS ":" ) != strlen(argv[2])))\r
+       {\r
+               fprintf(stderr, "Bad arg\n");\r
+               exit(1);\r
+       }\r
+\r
+       memset(command, 0, STRING_SIZE);\r
+       snprintf(command, STRING_SIZE - 1, "/bin/date -s '%s %s' >/dev/null", argv[1], argv[2]);\r
+       fprintf(stderr, "Setting Date: %s %s\n", argv[1], argv[2]);\r
+       safe_system(command);\r
+       \r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/setdmzholes.c b/src/misc-progs/setdmzholes.c
new file mode 100644 (file)
index 0000000..7a2643d
--- /dev/null
@@ -0,0 +1,162 @@
+/* SmoothWall helper program - setdmzhole\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Daniel Goscomb, 2001\r
+ * \r
+ * Modifications and improvements by Lawrence Manning.\r
+ *\r
+ * 10/04/01 Aslak added protocol support\r
+ * This program reads the list of ports to forward and setups iptables\r
+ * and rules in ipmasqadm to enable them.\r
+ * \r
+ * $Id: setdmzholes.c,v 1.5.2.3 2005/10/18 17:05:27 franck78 Exp $\r
+ * \r
+ */\r
+#include "libsmooth.h"\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+#include "setuid.h"\r
+\r
+FILE *fwdfile = NULL;\r
+\r
+void exithandler(void)\r
+{\r
+       if (fwdfile)\r
+               fclose(fwdfile);\r
+}\r
+\r
+int main(void)\r
+{\r
+       int count;\r
+       char *protocol;\r
+       char *locip;\r
+       char *remip;\r
+       char *remport;\r
+       char *enabled;\r
+       char *src_net;\r
+       char *dst_net;\r
+       char s[STRING_SIZE];\r
+       char *result;\r
+       struct keyvalue *kv = NULL;\r
+       char orange_dev[STRING_SIZE] = "";\r
+       char blue_dev[STRING_SIZE] = "";\r
+       char green_dev[STRING_SIZE] = "";\r
+       char *idev;\r
+       char *odev;\r
+       char command[STRING_SIZE];\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       atexit(exithandler);\r
+\r
+       kv=initkeyvalues();\r
+       if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read ethernet settings\n");\r
+               exit(1);\r
+       }\r
+\r
+       if (!findkey(kv, "GREEN_DEV", green_dev))\r
+       {\r
+               fprintf(stderr, "Cannot read GREEN_DEV\n");\r
+               exit(1);\r
+       }\r
+       findkey(kv, "BLUE_DEV", blue_dev);\r
+       findkey(kv, "ORANGE_DEV", orange_dev);\r
+\r
+       if (!(fwdfile = fopen(CONFIG_ROOT "/dmzholes/config", "r")))\r
+       {\r
+               fprintf(stderr, "Couldn't open dmzholes settings file\n");\r
+               exit(1);\r
+       }\r
+\r
+       safe_system("/sbin/iptables -F DMZHOLES");\r
+\r
+       while (fgets(s, STRING_SIZE, fwdfile) != NULL)\r
+       {\r
+               if (s[strlen(s) - 1] == '\n')\r
+                       s[strlen(s) - 1] = '\0';\r
+               result = strtok(s, ",");\r
+               \r
+               count = 0;\r
+               protocol = NULL;\r
+               locip = NULL; remip = NULL;\r
+               remport = NULL;\r
+               enabled = NULL;\r
+               src_net = NULL;\r
+               dst_net = NULL;\r
+               idev = NULL;\r
+               odev = NULL;\r
+               \r
+               while (result)\r
+               {\r
+                       if (count == 0)\r
+                               protocol = result;\r
+                       else if (count == 1)\r
+                               locip = result;\r
+                       else if (count == 2)\r
+                               remip = result;\r
+                       else if (count == 3)\r
+                               remport = result;\r
+                       else if (count == 4)\r
+                               enabled = result;\r
+                       else if (count == 5)\r
+                               src_net = result;\r
+                       else if (count == 6)\r
+                               dst_net = result;\r
+                       count++;\r
+                       result = strtok(NULL, ",");\r
+               }\r
+\r
+               if (!(protocol && locip && remip && remport && enabled))\r
+               {\r
+                       fprintf(stderr, "Bad line:\n");\r
+                       break;\r
+               }\r
+\r
+               if (!VALID_PROTOCOL(protocol))\r
+               {\r
+                       fprintf(stderr, "Bad protocol: %s\n", protocol);\r
+                       exit(1);\r
+               }\r
+               if (!VALID_IP_AND_MASK(locip))\r
+               {\r
+                       fprintf(stderr, "Bad local IP: %s\n", locip);\r
+                       exit(1);\r
+               }\r
+               if (!VALID_IP_AND_MASK(remip))\r
+               {\r
+                       fprintf(stderr, "Bad remote IP: %s\n", remip);\r
+                       exit(1);\r
+               }\r
+               if (!VALID_PORT_RANGE(remport))\r
+               {\r
+                       fprintf(stderr, "Bad remote port: %s\n", remport);\r
+                       exit(1);\r
+               }\r
+               \r
+               if (!src_net) { src_net = strdup ("orange");}\r
+               if (!dst_net) { dst_net = strdup ("green");}\r
+               \r
+               if (!strcmp(src_net, "blue"))   { idev = blue_dev; }\r
+               if (!strcmp(src_net, "orange")) { idev = orange_dev; }\r
+               if (!strcmp(dst_net, "blue"))   { odev = blue_dev; }\r
+               if (!strcmp(dst_net, "green"))  { odev = green_dev; }\r
+               \r
+               if (!strcmp(enabled, "on") && strlen(idev) && strlen (odev))\r
+               {\r
+                       char *ctr;\r
+                       /* If remport contains a - we need to change it to a : */\r
+                       if ((ctr = strchr(remport,'-')) != NULL){*ctr = ':';}\r
+                       memset(command, 0, STRING_SIZE);\r
+                       snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A DMZHOLES -p %s -i %s -o %s -s %s -d %s --dport %s -j ACCEPT", protocol, idev, odev, locip, remip, remport);\r
+                       safe_system(command);\r
+               }\r
+       }\r
+\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/setfilters.c b/src/misc-progs/setfilters.c
new file mode 100644 (file)
index 0000000..21bea84
--- /dev/null
@@ -0,0 +1,100 @@
+/* Derivated from SmoothWall helper programs\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Daniel Goscomb, 2001\r
+ *\r
+ * Modifications and improvements by Lawrence Manning.\r
+ *\r
+ * 19/04/03 Robert Kerr Fixed root exploit\r
+ *\r
+ * 20/08/05 Achim Weber 20 Modified to have a binary for the new firewall options page in IPCop 1.4.8\r
+ *\r
+ * 02/10/05 Gilles Espinasse treat only ping actually\r
+ *\r
+ * $Id: setfilters.c,v 1.1.2.2 2006/02/07 20:54:16 gespinasse Exp $\r
+ *\r
+ */\r
+\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include "libsmooth.h"\r
+#include "setuid.h"\r
+\r
+struct keyvalue *kv = NULL;\r
+FILE *ifacefile = NULL;\r
+\r
+void exithandler(void)\r
+{\r
+       if(kv)\r
+               freekeyvalues(kv);\r
+}\r
+\r
+int main(void)\r
+{\r
+       char iface[STRING_SIZE] = "";\r
+       char command[STRING_SIZE];\r
+       char disableping[STRING_SIZE];\r
+       int redAvailable = 1;\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       atexit(exithandler);\r
+\r
+       /* Read in and verify config */\r
+       kv=initkeyvalues();\r
+\r
+       if (!readkeyvalues(kv, CONFIG_ROOT "/optionsfw/settings")) {\r
+               fprintf(stderr, "Cannot read firewall option settings\n");\r
+               exit(1);\r
+       }\r
+\r
+       if (!findkey(kv, "DISABLEPING", disableping)) {\r
+               fprintf(stderr, "Cannot read DISABLEPING\n");\r
+               exit(1);\r
+       }\r
+\r
+       if (strcmp(disableping, "NO") != 0 && strcmp(disableping, "ONLYRED") != 0 && strcmp(disableping, "ALL") != 0) {\r
+               fprintf(stderr, "Bad DISABLEPING: %s\n", disableping);\r
+               exit(1);\r
+       }\r
+\r
+       if (!(ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) {\r
+               redAvailable = 0;\r
+       } else {\r
+               if (fgets(iface, STRING_SIZE, ifacefile)) {\r
+                       if (iface[strlen(iface) - 1] == '\n')\r
+                               iface[strlen(iface) - 1] = '\0';\r
+               }\r
+               fclose (ifacefile);\r
+               if (!VALID_DEVICE(iface)) {\r
+                       fprintf(stderr, "Bad iface: %s\n", iface);\r
+                       exit(1);\r
+               }\r
+               redAvailable = 1;\r
+       }\r
+\r
+       safe_system("/sbin/iptables -F GUIINPUT");\r
+\r
+       /* don't need to do anything if ping is disabled, so treat only other cases */\r
+       if (strcmp(disableping, "NO") == 0\r
+               || (strcmp(disableping, "ONLYRED") == 0 && redAvailable == 0)) {\r
+               // We allow ping (icmp type 8) on every interfaces\r
+               // or RED is not available, so we can enable it on all (available) Interfaces\r
+               memset(command, 0, STRING_SIZE);\r
+               snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A GUIINPUT -p icmp --icmp-type 8 -j ACCEPT");\r
+               safe_system(command);\r
+       } else {\r
+               // Allow ping only on internal interfaces\r
+               if(strcmp(disableping, "ONLYRED") == 0) {\r
+                       memset(command, 0, STRING_SIZE);\r
+                       snprintf(command, STRING_SIZE - 1,\r
+                               "/sbin/iptables -A GUIINPUT -i ! %s  -p icmp --icmp-type 8 -j ACCEPT", iface);\r
+                       safe_system(command);\r
+               }\r
+       }\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/setportfw.c b/src/misc-progs/setportfw.c
new file mode 100644 (file)
index 0000000..ca79218
--- /dev/null
@@ -0,0 +1,369 @@
+/* SmoothWall helper program - setportfw\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Daniel Goscomb, 2001\r
+ * Copyright (c) 2002/04/13 Steve Bootes - Added source ip support for aliases\r
+ * \r
+ * Modifications and improvements by Lawrence Manning.\r
+ *\r
+ * 10/04/01 Aslak added protocol support\r
+ * This program reads the list of ports to forward and setups iptables\r
+ * and rules in ipmasqadm to enable them.\r
+ *\r
+ * 02/11/03 Darren Critchley modifications to allow it to open multiple\r
+ *                                                      source ip addresses\r
+ * 02/25/03 Darren Critchley modifications to allow port ranges\r
+ * 04/01/03 Darren Critchley modifications to allow gre protocol\r
+ * 20/04/03 Robert Kerr Fixed root exploit, validated all variables properly,\r
+ *                      tidied up the iptables logic, killed duplicated code,\r
+ *                      removed srciptmp (unecessary)\r
+ *\r
+ * $Id: setportfw.c,v 1.3.2.6 2005/08/24 18:44:19 gespinasse Exp $\r
+ * \r
+ */\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+#include "libsmooth.h"\r
+#include "setuid.h"\r
+\r
+struct keyvalue *kv = NULL;\r
+FILE *fwdfile = NULL;\r
+\r
+void exithandler(void)\r
+{\r
+       if(kv)\r
+               freekeyvalues(kv);\r
+       if (fwdfile)\r
+               fclose(fwdfile);\r
+}\r
+\r
+int main(void)\r
+{\r
+       FILE *ipfile = NULL, *ifacefile = NULL;\r
+       int count;\r
+       char iface[STRING_SIZE];\r
+       char locip[STRING_SIZE];\r
+       char greenip[STRING_SIZE], greenmask[STRING_SIZE];\r
+       char bluedev[STRING_SIZE], blueip[STRING_SIZE], bluemask[STRING_SIZE];\r
+       char orangedev[STRING_SIZE], orangeip[STRING_SIZE], orangemask[STRING_SIZE];\r
+       char *protocol;\r
+       char *srcip;\r
+       char *locport;\r
+       char *remip;\r
+       char *remport;\r
+       char *origip;\r
+       char *enabled;\r
+       char s[STRING_SIZE];\r
+       char *result;\r
+       char *key1;\r
+       char *key2;\r
+       char command[STRING_SIZE];\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       atexit(exithandler);\r
+\r
+       /* Read in and verify config */\r
+       kv=initkeyvalues();\r
+\r
+       if (!readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))\r
+       {\r
+               fprintf(stderr, "Cannot read ethernet settings\n");\r
+               exit(1);\r
+       }\r
+\r
+       if (!findkey(kv, "GREEN_ADDRESS", greenip))\r
+       {\r
+               fprintf(stderr, "Cannot read GREEN_ADDRESS\n");\r
+               exit(1);\r
+       }\r
+\r
+       if (!VALID_IP(greenip))\r
+       {\r
+               fprintf(stderr, "Bad GREEN_ADDRESS: %s\n", greenip);\r
+               exit(1);\r
+       }\r
+\r
+       if (!findkey(kv, "GREEN_NETMASK", greenmask))\r
+       {\r
+               fprintf(stderr, "Cannot read GREEN_NETMASK\n");\r
+               exit(1);\r
+       }\r
+\r
+       if (!VALID_IP(greenmask))\r
+       {\r
+               fprintf(stderr, "Bad GREEN_NETMASK: %s\n", greenmask);\r
+               exit(1);\r
+       }\r
+\r
+       /* Get the BLUE interface details */\r
+       findkey(kv, "BLUE_DEV", bluedev);\r
+\r
+       if (strlen(bluedev))\r
+       {\r
+\r
+               if (!VALID_DEVICE(bluedev))\r
+               {\r
+                       fprintf(stderr, "Bad BLUE_DEV: %s\n", bluedev);\r
+                       exit(1);\r
+               }\r
+\r
+               if (!findkey(kv, "BLUE_ADDRESS", blueip))\r
+               {\r
+                       fprintf(stderr, "Cannot read BLUE_ADDRESS\n");\r
+                       exit(1);\r
+               }\r
+\r
+               if (!VALID_IP(blueip))\r
+               {\r
+                       fprintf(stderr, "Bad BLUE_ADDRESS: %s\n", blueip);\r
+                       exit(1);\r
+               }\r
+\r
+               if (!findkey(kv, "BLUE_NETMASK", bluemask))\r
+               {\r
+                       fprintf(stderr, "Cannot read BLUE_NETMASK\n");\r
+                       exit(1);\r
+               }\r
+\r
+               if (!VALID_IP(bluemask))\r
+               {\r
+                       fprintf(stderr, "Bad BLUE_NETMASK: %s\n", bluemask);\r
+                       exit(1);\r
+               }\r
+\r
+       }\r
+\r
+       /* Get the ORANGE interface details */\r
+       findkey(kv, "ORANGE_DEV", orangedev);\r
+\r
+       if (strlen(orangedev))\r
+       {\r
+\r
+               if (!VALID_DEVICE(orangedev))\r
+               {\r
+                       fprintf(stderr, "Bad ORANGE_DEV: %s\n", orangedev);\r
+                       exit(1);\r
+               }\r
+\r
+               if (!findkey(kv, "ORANGE_ADDRESS", orangeip))\r
+               {\r
+                       fprintf(stderr, "Cannot read ORANGE_ADDRESS\n");\r
+                       exit(1);\r
+               }\r
+\r
+               if (!VALID_IP(orangeip))\r
+               {\r
+                       fprintf(stderr, "Bad ORANGE_ADDRESS: %s\n", orangeip);\r
+                       exit(1);\r
+               }\r
+\r
+               if (!findkey(kv, "ORANGE_NETMASK", orangemask))\r
+               {\r
+                       fprintf(stderr, "Cannot read ORANGE_NETMASK\n");\r
+                       exit(1);\r
+               }\r
+\r
+               if (!VALID_IP(orangemask))\r
+               {\r
+                       fprintf(stderr, "Bad ORANGE_NETMASK: %s\n", orangemask);\r
+                       exit(1);\r
+               }\r
+\r
+       }\r
+\r
+\r
+       if (!(ipfile = fopen(CONFIG_ROOT "/red/local-ipaddress", "r")))\r
+       {\r
+               fprintf(stderr, "Couldn't open local ip file\n");\r
+               exit(1);\r
+       }\r
+       fgets(locip, STRING_SIZE, ipfile);\r
+       if (locip[strlen(locip) - 1] == '\n')\r
+               locip[strlen(locip) - 1] = '\0';\r
+       fclose (ipfile);\r
+       if (!VALID_IP(locip))\r
+       {\r
+               fprintf(stderr, "Bad local IP: %s\n", locip);\r
+               exit(1);\r
+       }\r
+       \r
+       if (!(ifacefile = fopen(CONFIG_ROOT "/red/iface", "r")))\r
+       {\r
+               fprintf(stderr, "Couldn't open iface file\n");\r
+               exit(1);\r
+       }\r
+       fgets(iface, STRING_SIZE, ifacefile);\r
+       if (iface[strlen(iface) - 1] == '\n')\r
+               iface[strlen(iface) - 1] = '\0';\r
+       fclose (ifacefile);\r
+       if (!VALID_DEVICE(iface))\r
+       {\r
+               fprintf(stderr, "Bad iface: %s\n", iface);\r
+               exit(1);\r
+       }\r
+       \r
+       if (!(fwdfile = fopen(CONFIG_ROOT "/portfw/config", "r")))\r
+       {\r
+               fprintf(stderr, "Couldn't open portfw settings file\n");\r
+               exit(1);\r
+       }\r
+\r
+       safe_system("/sbin/iptables -t nat -F PORTFW");\r
+       safe_system("/sbin/iptables -t mangle -F PORTFWMANGLE");\r
+       safe_system("/sbin/iptables -F PORTFWACCESS");\r
+\r
+       while (fgets(s, STRING_SIZE, fwdfile) != NULL)\r
+       {\r
+               if (s[strlen(s) - 1] == '\n')\r
+                       s[strlen(s) - 1] = '\0';\r
+               result = strtok(s, ",");\r
+\r
+               count = 0;\r
+               key1 = NULL;\r
+               key2 = NULL;\r
+               protocol = NULL;\r
+               srcip = NULL;\r
+               locport = NULL;\r
+               remip = NULL;\r
+               origip = NULL;\r
+               remport = NULL;\r
+               enabled = NULL;\r
+               while (result)\r
+               {\r
+                       if (count == 0)\r
+                               key1 = result;\r
+                       else if (count == 1)\r
+                               key2 = result;\r
+                       else if (count == 2)\r
+                               protocol = result;\r
+                       else if (count == 3)\r
+                               locport = result;\r
+                       else if (count == 4)\r
+                               remip = result;\r
+                       else if (count == 5)\r
+                               remport = result;\r
+                       else if (count == 6)\r
+                               enabled = result;\r
+                       else if (count == 7)\r
+                               srcip = result;\r
+                       else if (count == 8)\r
+                               origip = result;\r
+                       count++;\r
+                       result = strtok(NULL, ",");\r
+               }\r
+               \r
+               if (!(key1 && key2 && protocol && locport && remip && remport && enabled\r
+                       && srcip && origip))\r
+                       break;\r
+               \r
+               if (!VALID_PROTOCOL(protocol))\r
+               {\r
+                       fprintf(stderr, "Bad protocol: %s\n", protocol);\r
+                       exit(1);\r
+               }\r
+               if (strcmp(protocol, "gre") == 0)\r
+               {\r
+                       locport = "0";\r
+                       remport = "0";\r
+               }\r
+               if (strcmp(origip,"0") && !VALID_IP_AND_MASK(origip))\r
+               {\r
+                       fprintf(stderr, "Bad IP: %s\n", origip);\r
+                       exit(1);\r
+               }\r
+               if (!VALID_PORT_RANGE(locport))\r
+               {\r
+                       fprintf(stderr, "Bad local port: %s\n", locport);\r
+                       exit(1);\r
+               }\r
+               if (!VALID_IP(remip))\r
+               {\r
+                       fprintf(stderr, "Bad remote IP: %s\n", remip);\r
+                       exit(1);\r
+               }\r
+               if (!VALID_PORT_RANGE(remport))\r
+               {\r
+                       fprintf(stderr, "Bad remote port: %s\n", remport);\r
+                       exit(1);\r
+               }\r
+\r
+                /* check for source ip in config file. If it's there\r
+                 * and it's not 0.0.0.0, use it; else use the\r
+                 * local ip address. (This makes sure we can use old-style\r
+                 * config files without the source ip) */\r
+               if (!srcip || !strcmp(srcip, "0.0.0.0"))\r
+                       srcip = locip;\r
+               if (strcmp(srcip,"0") && !VALID_IP(srcip))\r
+               {\r
+                       fprintf(stderr, "Bad source IP: %s\n", srcip);\r
+                       exit(1);\r
+               }\r
+\r
+               /* This may seem complicated... refer to portfw.pl for an explanation of\r
+                * the keys and their meaning in certain circumstances */\r
+                        \r
+               if (strcmp(enabled, "on") == 0)\r
+               {\r
+\r
+                       /* If key2 is a zero, then it is a portfw command, otherwise it is an\r
+                        * external access command */\r
+                       if (strcmp(key2, "0") == 0) \r
+                       {\r
+                               memset(command, 0, STRING_SIZE);\r
+                               if (strcmp(protocol, "gre") == 0)\r
+                                       snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t nat -A PORTFW -p %s -d %s -j DNAT --to %s", protocol, srcip, remip);\r
+                               else \r
+                               {\r
+                                       char *ctr;\r
+                                       /* If locport contains a - we need to change it to a : */\r
+                                       if ((ctr = strchr(locport, '-')) != NULL) {*ctr = ':';}\r
+                                       /* If remport contains a : we need to change it to a - */\r
+                                       if ((ctr = strchr(remport,':')) != NULL){*ctr = '-';}\r
+                                       snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t nat -A PORTFW -p %s -d %s --dport %s -j DNAT --to %s:%s", protocol, srcip, locport, remip, remport);\r
+                                       safe_system(command);\r
+                                       /* Now if remport contains a - we need to change it to a : */\r
+                                       if ((ctr = strchr(remport,'-')) != NULL){*ctr = ':';}\r
+                                       snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t mangle -A PORTFWMANGLE -p %s -s %s/%s -d %s --dport %s -j MARK --set-mark 1", protocol, greenip, greenmask, srcip, locport);\r
+                                       if (strlen(bluedev))\r
+                                       {\r
+                                               safe_system(command);\r
+                                               snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t mangle -A PORTFWMANGLE -p %s -s %s/%s -d %s --dport %s -j MARK --set-mark 2", protocol, blueip, bluemask, srcip, locport);\r
+                                       }\r
+                                       if (strlen(orangedev))\r
+                                       {\r
+                                               safe_system(command);\r
+                                               snprintf(command, STRING_SIZE - 1, "/sbin/iptables -t mangle -A PORTFWMANGLE -p %s -s %s/%s -d %s --dport %s -j MARK --set-mark 3", protocol, orangeip, orangemask, srcip, locport);\r
+                                       }\r
+                               }\r
+                               safe_system(command);\r
+                       }\r
+\r
+                       /* if key2 is not "0" then it's an external access rule, if key2 is "0"\r
+                        * then the portfw rule may contain external access information if origip\r
+                        * is not "0" (the only defined not 0 value seems to be 0.0.0.0 - open\r
+                        * to all; again, check portfw.pl for more details) */\r
+                       if(strcmp(key2, "0") || strcmp(origip,"0") )\r
+                       {\r
+                               memset(command, 0, STRING_SIZE);\r
+                               if (strcmp(protocol, "gre") == 0)\r
+                                       snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A PORTFWACCESS -i %s -p %s -s %s -d %s -j ACCEPT", iface, protocol, origip, remip);\r
+                               else\r
+                               {\r
+                                       char *ctr;\r
+                                       /* If remport contains a - we need to change it to a : */\r
+                                       if ((ctr = strchr(remport,'-')) != NULL){*ctr = ':';}\r
+                                       snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A PORTFWACCESS -i %s -p %s -s %s -d %s --dport %s -j ACCEPT", iface, protocol, origip, remip, remport);\r
+                               }\r
+                               safe_system(command);\r
+                       }\r
+               }\r
+       }\r
+\r
+       return 0;\r
+}\r
diff --git a/src/misc-progs/setuid.c b/src/misc-progs/setuid.c
new file mode 100644 (file)
index 0000000..d7fabd4
--- /dev/null
@@ -0,0 +1,204 @@
+/* This file is part of the IPCop Firewall.\r
+ *\r
+ * IPCop is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * IPCop is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with IPCop; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+ *\r
+ * Copyright (C) 2003-04-22 Robert Kerr <rkerr@go.to>\r
+ *\r
+ * $Id: setuid.c,v 1.2.2.1 2005/11/18 14:51:43 franck78 Exp $\r
+ *\r
+ */\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <errno.h>\r
+#include <unistd.h>\r
+#include <stdlib.h>\r
+#include <sys/types.h>\r
+#include <limits.h>\r
+#include <sys/time.h>\r
+#include <sys/resource.h>\r
+#include <sys/stat.h>\r
+#include <fcntl.h>\r
+#include <grp.h>\r
+#include <signal.h>\r
+#include <sys/wait.h>\r
+#include <glob.h>\r
+#include "setuid.h"\r
+\r
+#ifndef OPEN_MAX\r
+#define OPEN_MAX 256\r
+#endif\r
+\r
+/* Trusted environment for executing commands */\r
+char * trusted_env[4]={\r
+       "PATH=/usr/bin:/usr/sbin:/sbin:/bin",\r
+       "SHELL=/bin/sh",\r
+       "TERM=dumb",\r
+       NULL};\r
+\r
+/* Spawns a child process that uses /bin/sh to interpret a command.\r
+ * This is much the same in use and purpose as system(), yet as it uses execve\r
+ * to pass a trusted environment it's immune to attacks based upon changing\r
+ * IFS, ENV, BASH_ENV and other such variables.\r
+ * Note this does NOT guard against any other attacks, inparticular you MUST\r
+ * validate the command you are passing. If the command is formed from user\r
+ * input be sure to check this input is what you expect. Nasty things can\r
+ * happen if a user can inject ; or `` into your command for example */\r
+int safe_system(char* command)\r
+{\r
+       return system_core( command, 0, 0, "safe_system" );\r
+}\r
+\r
+/* Much like safe_system but lets you specify a non-root uid and gid to run\r
+ * the command as */\r
+int unpriv_system(char* command, uid_t uid, gid_t gid)\r
+{\r
+       return system_core(command, uid, gid, "unpriv_system" );\r
+}\r
+\r
+int system_core(char* command, uid_t uid, gid_t gid, char *error)\r
+{\r
+       int pid, status;\r
+\r
+       if(!command)\r
+               return 1;\r
+\r
+       switch( pid = fork() )\r
+       {\r
+               case -1:\r
+                       return -1;\r
+               case 0: /* child */\r
+               {\r
+                       char * argv[4];\r
+                       if (gid && setgid(gid)) \r
+                       {\r
+                               fprintf(stderr, "%s: ", error);\r
+                               perror("Couldn't setgid");\r
+                               exit(127);\r
+                       }\r
+                       if (uid && setuid(uid))\r
+                       {\r
+                               fprintf(stderr, "%s: ", error);\r
+                               perror("Couldn't setuid");\r
+                               exit(127);\r
+                       }\r
+                       argv[0] = "sh";\r
+                       argv[1] = "-c";\r
+                       argv[2] = command;\r
+                       argv[3] = NULL;\r
+                       execve("/bin/sh", argv, trusted_env);\r
+                       fprintf(stderr, "%s: ", error);\r
+                       perror("execve failed");\r
+                       exit(127);\r
+               }\r
+               default: /* parent */\r
+                       do {\r
+                               if( waitpid(pid, &status, 0) == -1 ) {\r
+                                       if( errno != EINTR )\r
+                                               return -1;\r
+                                       } else\r
+                                               return status;\r
+                       } while (1);\r
+       }\r
+\r
+}\r
+\r
+/* BSD style safe strcat; from the secure programming cookbook */\r
+size_t strlcat(char *dst, const char *src, size_t len) {\r
+       char       *dstptr = dst;\r
+       size_t     dstlen, tocopy = len;\r
+       const char *srcptr = src;\r
+\r
+       while (tocopy-- && *dstptr) dstptr++;\r
+       dstlen = dstptr - dst;\r
+       if (!(tocopy = len - dstlen)) return (dstlen + strlen(src));\r
+       while (*srcptr) {\r
+               if (tocopy != 1) {\r
+                       *dstptr++ = *srcptr;\r
+                       tocopy--;\r
+               }\r
+               srcptr++;\r
+       }\r
+       *dstptr = 0;\r
+\r
+       return (dstlen + (srcptr - src));\r
+}\r
+\r
+/* General routine to initialise a setuid root program, and put the\r
+ * environment in a known state. Returns 1 on success, if initsetuid() returns\r
+ * 0 then you should exit(1) immediately, DON'T attempt to recover from the\r
+ * error */\r
+int initsetuid(void)\r
+{\r
+       int fds,i;\r
+       struct stat st;\r
+       struct rlimit rlim;\r
+\r
+       /* Prevent signal tricks by ignoring all except SIGKILL and SIGCHILD */\r
+               for( i = 0; i < NSIG; i++ ) {\r
+                       if( i != SIGKILL && i != SIGCHLD )\r
+                               signal(i, SIG_IGN);\r
+       }\r
+\r
+       /* dump all non-standard file descriptors (a full descriptor table could\r
+        * lead to DoS by preventing us opening files) */\r
+       if ((fds = getdtablesize()) == -1) fds = OPEN_MAX;\r
+       for( i = 3; i < fds; i++ ) close(i);\r
+\r
+       /* check stdin, stdout & stderr are open before going any further */\r
+       for( i = 0; i < 3; i++ )\r
+               if( fstat(i, &st) == -1 && ((errno != EBADF) || (close(i), open("/dev/null", O_RDWR, 0)) != i ))\r
+                       return 0;\r
+\r
+       /* disable core dumps in case we're processing sensitive information */\r
+       rlim.rlim_cur = rlim.rlim_max = 0;\r
+       if(setrlimit(RLIMIT_CORE, &rlim))\r
+               { perror("Couldn't disable core dumps"); return 0; }\r
+\r
+       /* drop any supplementary groups, set uid & gid to root */\r
+       if (setgroups(0, NULL)) { perror("Couldn't clear group list"); return 0; }\r
+       if (setgid(0))          { perror("Couldn't setgid(0)");        return 0; }\r
+       if (setuid(0))          { perror("Couldn't setuid(0)");        return 0; }\r
+\r
+       return 1;\r
+}\r
+\r
+/* check whether a file exists */\r
+int file_exists(const char *fname) {\r
+       struct stat st;\r
+       stat(fname, &st);\r
+       return S_ISREG(st.st_mode) ? 1 : 0;\r
+}\r
+\r
+/* check whether a file exists. fname is wildcard eg: file_exists (/tmp/foo*) */\r
+int file_exists_w(const char *fname)\r
+{\r
+       /* do a quick check first */\r
+       struct stat st;\r
+       stat(fname, &st);\r
+       if (S_ISREG(st.st_mode))\r
+               return 1;\r
+\r
+       /* check for possible wild cards in name */\r
+       glob_t globbuf;\r
+       int retval=0;\r
+       if (glob(fname, GLOB_ERR, NULL, &globbuf)==0) {\r
+               if (globbuf.gl_pathc>0) {\r
+                       retval=1;\r
+               }\r
+       }\r
+       globfree(&globbuf);\r
+       return retval;\r
+}\r
diff --git a/src/misc-progs/setuid.h b/src/misc-progs/setuid.h
new file mode 100644 (file)
index 0000000..86e2603
--- /dev/null
@@ -0,0 +1,91 @@
+/* SmoothWall helper program - header file\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ * Simple header file for all setuid progs.\r
+ * \r
+ * $Id: setuid.h,v 1.4.2.4 2005/11/20 23:20:13 franck78 Exp $\r
+ * \r
+ */\r
+\r
+#ifndef SETUID_H\r
+#define SETUID_H 1\r
+\r
+#include <stdlib.h>\r
+#include <sys/types.h>\r
+\r
+/* As nothing in setuid.c uses STRING_SIZE specifically there's no real reason\r
+ * to redefine it if it already is set */\r
+#ifndef STRING_SIZE\r
+#define STRING_SIZE 256\r
+#endif\r
+#define LETTERS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\r
+#define NUMBERS "0123456789"\r
+#define LETTERS_NUMBERS LETTERS NUMBERS\r
+#define IP_NUMBERS "./" NUMBERS\r
+#define PORT_NUMBERS ":-" NUMBERS\r
+#define VALID_FQDN LETTERS_NUMBERS ".-"\r
+\r
+\r
+#define VALID_IP(ip) (strlen(ip) > 6 \\r
+                   && strlen(ip) < 16 \\r
+                   && strspn(ip, NUMBERS ".") == strlen(ip))\r
+\r
+#define VALID_IP_AND_MASK(ip) (strlen(ip) > 6 \\r
+                            && strlen(ip) < 32 \\r
+                            && strspn(ip, IP_NUMBERS) == strlen(ip))\r
+\r
+#define VALID_PORT(port) (strlen(port) \\r
+                       && strlen(port) < 6 \\r
+                       && strspn(port, NUMBERS) == strlen(port))\r
+\r
+#define VALID_PORT_RANGE(port) (strlen(port) \\r
+                             && strlen(port) < 12 \\r
+                             && strspn(port, PORT_NUMBERS) == strlen(port))\r
+\r
+#define VALID_SHORT_MASK(ip) (strlen(ip) > 1 \\r
+                             && strlen(ip) < 3 \\r
+                             && strspn(ip, NUMBERS) == strlen(ip))\r
+\r
+/* Can't find any info on valid characters/length hopefully these are\r
+ * reasonable guesses */\r
+#define VALID_DEVICE(dev) (strlen(dev) \\r
+                        && strlen(dev) < 16 \\r
+                        && strspn(dev, LETTERS_NUMBERS ":.") == strlen(dev))\r
+\r
+/* Again, can't find any hard and fast rules for protocol names, these\r
+ * restrictions are based on the keywords currently listed in\r
+ * <http://www.iana.org/assignments/protocol-numbers>\r
+ * though currently the ipcop cgis will only pass tcp, udp or gre anyway */\r
+#define VALID_PROTOCOL(prot) (strlen(prot) \\r
+                          &&  strlen(prot) <16 \\r
+                          &&  strspn(prot, LETTERS_NUMBERS "-") == strlen(prot))\r
+\r
+extern char * trusted_env[4];\r
+\r
+int system_core(char* command, uid_t uid, gid_t gid, char *error);\r
+int safe_system(char* command);\r
+int unpriv_system(char* command, uid_t uid, gid_t gid);\r
+size_t strlcat(char *dst, const char *src, size_t len);\r
+int initsetuid(void);\r
+\r
+/* check whether a file exists */\r
+int file_exists(const char *fname);        \r
+int file_exists_w(const char *fname); //wildcard filename test     \r
+\r
+// Backup restore\r
+#define MOUNTPOINT "/home/httpd/html/backup"\r
+#define BACKUP_KEY CONFIG_ROOT"/backup/backup.key"\r
+\r
+/* defines for config create/restore return status*/\r
+#define ERR_ANY      1   // unspecified error\r
+#define ERR_KEY      2   // error creating key file\r
+#define ERR_TAR      3   // error creating .tar\r
+#define ERR_GZ       4   // error creating .tar.gz\r
+#define ERR_ENCRYPT  5   // error creating .dat\r
+#define ERR_DECRYPT  6   // error decrypting .dat file\r
+#define ERR_UNTARTST 7   // error (test) untarring .tar.gz\r
+#define ERR_UNTAR    8   // error (real) untarring .tar.gz\r
+#define ERR_DAT      9   // missing .dat file\r
+\r
+#endif\r
diff --git a/src/misc-progs/setxtaccess.c b/src/misc-progs/setxtaccess.c
new file mode 100644 (file)
index 0000000..27a03e0
--- /dev/null
@@ -0,0 +1,168 @@
+/* SmoothWall helper program - setxtaccess\r
+ *\r
+ * This program is distributed under the terms of the GNU General Public\r
+ * Licence.  See the file COPYING for details.\r
+ *\r
+ * (c) Daniel Goscomb, 2001\r
+ * \r
+ * Modifications and improvements by Lawrence Manning.\r
+ *\r
+ * 10/04/01 Aslak added protocol support\r
+ * \r
+ * (c) Steve Bootes 2002/04/14 - Added source IP support for aliases\r
+ *\r
+ * 19/04/03 Robert Kerr Fixed root exploit\r
+ *\r
+ * $Id: setxtaccess.c,v 1.3.2.1 2005/01/04 17:21:40 eoberlander Exp $\r
+ * \r
+ */\r
+\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include "setuid.h"\r
+\r
+FILE *ifacefile = NULL;\r
+FILE *fwdfile = NULL;\r
+FILE *ipfile = NULL;\r
+\r
+void exithandler(void)\r
+{\r
+       if (fwdfile)\r
+               fclose(fwdfile);\r
+}\r
+\r
+int main(void)\r
+{\r
+       char iface[STRING_SIZE] = "";\r
+       char locip[STRING_SIZE] = "";\r
+       char s[STRING_SIZE] = "";\r
+       int count;\r
+       char *protocol;\r
+       char *destip;\r
+       char *remip;\r
+       char *locport;\r
+       char *enabled;\r
+       char *information;\r
+       char *result;\r
+       char command[STRING_SIZE];\r
+\r
+       if (!(initsetuid()))\r
+               exit(1);\r
+\r
+       atexit(exithandler);\r
+\r
+       if (!(ipfile = fopen(CONFIG_ROOT "/red/local-ipaddress", "r")))\r
+       {\r
+               fprintf(stderr, "Couldn't open local ip file\n");\r
+               exit(1);\r
+       }\r
+       if (fgets(locip, STRING_SIZE, ipfile))\r
+       {\r
+               if (locip[strlen(locip) - 1] == '\n')\r
+                       locip[strlen(locip) - 1] = '\0';\r
+       }\r
+       fclose (ipfile);\r
+       if (!VALID_IP(locip))\r
+       {\r
+               fprintf(stderr, "Bad local IP: %s\n", locip);\r
+               exit(1);\r
+       }\r
+\r
+       if (!(ifacefile = fopen(CONFIG_ROOT "/red/iface", "r")))\r
+       {\r
+               fprintf(stderr, "Couldn't open iface file\n");\r
+               exit(1);\r
+       }\r
+       if (fgets(iface, STRING_SIZE, ifacefile))\r
+       {\r
+               if (iface[strlen(iface) - 1] == '\n')\r
+                       iface[strlen(iface) - 1] = '\0';\r
+       }\r
+               fclose (ifacefile);\r
+       if (!VALID_DEVICE(iface))\r
+       {\r
+               fprintf(stderr, "Bad iface: %s\n", iface);\r
+               exit(1);\r
+       }\r
\r
+       if (!(fwdfile = fopen(CONFIG_ROOT "/xtaccess/config", "r")))\r
+       {\r
+               fprintf(stderr, "Couldn't open xtaccess settings file\n");\r
+               exit(1);\r
+       }\r
+\r
+       safe_system("/sbin/iptables -F XTACCESS");\r
+\r
+       while (fgets(s, STRING_SIZE, fwdfile) != NULL)\r
+       {\r
+               if (s[strlen(s) - 1] == '\n')\r
+                       s[strlen(s) - 1] = '\0';\r
+               count = 0;\r
+               protocol = NULL;\r
+               remip = NULL;\r
+               destip = NULL;\r
+               locport = NULL;\r
+               enabled = NULL;\r
+               information = NULL;\r
+               result = strtok(s, ",");\r
+               while (result)\r
+               {\r
+                       if (count == 0)\r
+                               protocol = result;\r
+                       else if (count == 1)\r
+                               remip = result;\r
+                       else if (count == 2)\r
+                               locport = result;\r
+                       else if (count == 3)\r
+                               enabled = result;\r
+                       else if (count == 4)\r
+                               destip = result;\r
+                       else\r
+                               information = result;\r
+                       count++;\r
+                       result = strtok(NULL, ",");\r
+               }\r
+\r
+               if (!(protocol && remip && locport && enabled))\r
+                       break;\r
+               \r
+               if (!VALID_PROTOCOL(protocol))\r
+               {\r
+                       fprintf(stderr, "Bad protocol: %s\n", protocol);\r
+                       exit(1);\r
+               }\r
+               if (!VALID_IP_AND_MASK(remip))\r
+               {\r
+                       fprintf(stderr, "Bad remote IP: %s\n", remip);\r
+                       exit(1);\r
+               }\r
+               if (!VALID_PORT_RANGE(locport))\r
+               {\r
+                       fprintf(stderr, "Bad local port: %s\n", locport);\r
+                       exit(1);\r
+               }\r
+\r
+                /* check for destination ip in config file. If it's there\r
+                 * and it's not 0.0.0.0, use it; else use the current\r
+                 * local ip address. (This makes sure we can use old-style\r
+                 * config files without the destination ip) */\r
+               if (!destip || !strcmp(destip, "0.0.0.0"))\r
+                       destip = locip;\r
+               if (!VALID_IP(destip))\r
+               {\r
+                       fprintf(stderr, "Bad destination IP: %s\n", remip);\r
+                       exit(1);\r
+               }\r
+\r
+               if (strcmp(enabled, "on") == 0)\r
+               {\r
+                       memset(command, 0, STRING_SIZE);\r
+                       snprintf(command, STRING_SIZE - 1, "/sbin/iptables -A XTACCESS -i %s -p %s -s %s -d %s --dport %s -j ACCEPT",\r
+       iface, protocol, remip, destip, locport);\r
+                       safe_system(command);\r
+               }\r
+       }\r
+       \r
+       return 0;\r
+}\r
diff --git a/src/nash/CVS/Entries b/src/nash/CVS/Entries
new file mode 100644 (file)
index 0000000..d0cfd47
--- /dev/null
@@ -0,0 +1,9 @@
+/Makefile/1.1/Tue Dec 30 17:40:08 2003//TIPCOP_v1_4_0
+/linux_fs.h/1.1/Tue Dec 30 17:40:08 2003//TIPCOP_v1_4_0
+/mkinitrd/1.3/Tue Dec 30 20:50:26 2003//TIPCOP_v1_4_0
+/mount_by_label.c/1.1/Tue Dec 30 17:40:08 2003//TIPCOP_v1_4_0
+/mount_by_label.h/1.1/Tue Dec 30 17:40:08 2003//TIPCOP_v1_4_0
+/nash.8/1.1/Tue Dec 30 17:40:08 2003//TIPCOP_v1_4_0
+/nash.c/1.1/Tue Dec 30 17:40:08 2003//TIPCOP_v1_4_0
+/sample-rc/1.1/Tue Dec 30 17:40:08 2003//TIPCOP_v1_4_0
+D
diff --git a/src/nash/CVS/Repository b/src/nash/CVS/Repository
new file mode 100644 (file)
index 0000000..845ce46
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/nash
diff --git a/src/nash/CVS/Root b/src/nash/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/nash/CVS/Tag b/src/nash/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/nash/Makefile b/src/nash/Makefile
new file mode 100644 (file)
index 0000000..5cb6979
--- /dev/null
@@ -0,0 +1,26 @@
+CFLAGS=-Wall -DVERSION=\"$(VERSION)\" -g
+VERSION=$(shell awk -F= '/^VERSION=/ { print $$2 }' mkinitrd)
+
+ARCH := $(patsubst i%86,i386,$(shell uname -m))
+ARCH := $(patsubst sparc%,sparc,$(ARCH))
+
+#ifeq (i386, $(ARCH))
+#CC:=diet $(CC)
+#CFLAGS += -DUSE_DIET=1
+#else
+STATIC=-static
+#endif
+
+mandir=usr/share/man
+
+nash: nash.o mount_by_label.o
+       $(CC) $(STATIC) -g $(LDFLAGS) -o $@ nash.o mount_by_label.o
+
+clean:
+       rm -f nash $(MINILIBC) nash.o mount_by_label.o
+
+install:
+       mkdir -p $(BUILDROOT)/sbin
+       mkdir -p $(BUILDROOT)/$(mandir)/man8
+       install -m 755 -s nash $(BUILDROOT)/sbin
+       install -m 644 nash.8 $(BUILDROOT)/$(mandir)/man8
diff --git a/src/nash/linux_fs.h b/src/nash/linux_fs.h
new file mode 100644 (file)
index 0000000..e584220
--- /dev/null
@@ -0,0 +1,181 @@
+/* Including <linux/fs.h> became more and more painful.\r
+   Below a very abbreviated version of some declarations,\r
+   only designed to be able to check a magic number\r
+   in case no filesystem type was given. */\r
+\r
+#ifndef BLKGETSIZE\r
+#ifndef _IO\r
+/* pre-1.3.45 */\r
+#define BLKGETSIZE 0x1260                 /* return device size */\r
+#else\r
+/* same on i386, m68k, arm; different on alpha, mips, sparc, ppc */\r
+#define BLKGETSIZE _IO(0x12,96)\r
+#endif\r
+#endif\r
+\r
+#define MINIX_SUPER_MAGIC   0x137F         /* original minix fs */\r
+#define MINIX_SUPER_MAGIC2  0x138F         /* minix fs, 30 char names */\r
+struct minix_super_block {\r
+       unsigned char   s_dummy[16];\r
+       unsigned char   s_magic[2];\r
+};\r
+#define minixmagic(s)  ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r
+\r
+#define ISODCL(from, to) (to - from + 1)\r
+#define ISO_STANDARD_ID "CD001"\r
+struct iso_volume_descriptor {\r
+       char type[ISODCL(1,1)]; /* 711 */\r
+       char id[ISODCL(2,6)];\r
+       char version[ISODCL(7,7)];\r
+       char data[ISODCL(8,2048)];\r
+};\r
+\r
+#define HS_STANDARD_ID "CDROM"\r
+struct  hs_volume_descriptor {\r
+       char foo[ISODCL (  1,   8)]; /* 733 */\r
+       char type[ISODCL (  9,   9)]; /* 711 */\r
+       char id[ISODCL ( 10,  14)];\r
+       char version[ISODCL ( 15,  15)]; /* 711 */\r
+       char data[ISODCL(16,2048)];\r
+};\r
+\r
+#define EXT_SUPER_MAGIC 0x137D\r
+struct ext_super_block {\r
+       unsigned char   s_dummy[56];\r
+       unsigned char   s_magic[2];\r
+};\r
+#define extmagic(s)    ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r
+\r
+#define EXT2_PRE_02B_MAGIC  0xEF51\r
+#define EXT2_SUPER_MAGIC    0xEF53\r
+#define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004\r
+struct ext2_super_block {\r
+       unsigned char   s_dummy1[56];\r
+       unsigned char   s_magic[2];\r
+       unsigned char   s_dummy2[34];\r
+       unsigned char   s_feature_compat[4];\r
+       unsigned char   s_feature_incompat[4];\r
+       unsigned char   s_feature_ro_compat[4];\r
+       unsigned char   s_uuid[16];\r
+       unsigned char   s_volume_name[16];\r
+       unsigned char   s_dummy3[88];\r
+       unsigned char   s_journal_inum[4];      /* ext3 only */\r
+};\r
+#define ext2magic(s)   ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r
+\r
+struct reiserfs_super_block\r
+{\r
+       unsigned char           s_block_count[4];\r
+       unsigned char           s_free_blocks[4];\r
+       unsigned char           s_root_block[4];\r
+       unsigned char           s_journal_block[4];\r
+       unsigned char           s_journal_dev[4];\r
+       unsigned char           s_orig_journal_size[4];\r
+       unsigned char           s_journal_trans_max[4];\r
+       unsigned char           s_journal_block_count[4];\r
+       unsigned char           s_journal_max_batch[4];\r
+       unsigned char           s_journal_max_commit_age[4];\r
+       unsigned char           s_journal_max_trans_age[4];\r
+       unsigned char           s_blocksize[2];\r
+       unsigned char           s_oid_maxsize[2];\r
+       unsigned char           s_oid_cursize[2];\r
+       unsigned char           s_state[2];\r
+       unsigned char           s_magic[12];\r
+};\r
+#define REISERFS_SUPER_MAGIC_STRING "ReIsErFs"\r
+#define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"\r
+#define REISERFS_DISK_OFFSET_IN_BYTES (64 * 1024)\r
+/* the spot for the super in versions 3.5 - 3.5.10 (inclusive) */\r
+#define REISERFS_OLD_DISK_OFFSET_IN_BYTES (8 * 1024)\r
+\r
+#define _XIAFS_SUPER_MAGIC 0x012FD16D\r
+struct xiafs_super_block {\r
+    unsigned char     s_boot_segment[512];     /*  1st sector reserved for boot */\r
+    unsigned char     s_dummy[60];\r
+    unsigned char     s_magic[4];\r
+};\r
+#define xiafsmagic(s)  ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r
+                       (((unsigned int) s.s_magic[2]) << 16) + \\r
+                       (((unsigned int) s.s_magic[3]) << 24))\r
+\r
+/* From jj@sunsite.ms.mff.cuni.cz Mon Mar 23 15:19:05 1998 */\r
+#define UFS_SUPER_MAGIC 0x00011954\r
+struct ufs_super_block {\r
+    unsigned char     s_dummy[0x55c];\r
+    unsigned char     s_magic[4];\r
+};\r
+#define ufsmagic(s)    ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r
+                        (((unsigned int) s.s_magic[2]) << 16) + \\r
+                        (((unsigned int) s.s_magic[3]) << 24))\r
+\r
+/* From Richard.Russon@ait.co.uk Wed Feb 24 08:05:27 1999 */\r
+#define NTFS_SUPER_MAGIC "NTFS"\r
+struct ntfs_super_block {\r
+    unsigned char    s_dummy[3];\r
+    unsigned char    s_magic[4];\r
+};\r
+\r
+/* From inspection of a few FAT filesystems - aeb */\r
+/* Unfortunately I find almost the same thing on an extended partition;\r
+   it looks like a primary has some directory entries where the extended\r
+   has a partition table: IO.SYS, MSDOS.SYS, WINBOOT.SYS */\r
+struct fat_super_block {\r
+    unsigned char    s_dummy[3];\r
+    unsigned char    s_os[8];          /* "MSDOS5.0" or "MSWIN4.0" or "MSWIN4.1" */\r
+                               /* mtools-3.9.4 writes "MTOOL394" */\r
+    unsigned char    s_dummy2[32];\r
+    unsigned char    s_label[11];      /* for DOS? */\r
+    unsigned char    s_fs[8];          /* "FAT12   " or "FAT16   " or all zero   */\r
+                                /* OS/2 BM has "FAT     " here. */\r
+    unsigned char    s_dummy3[9];\r
+    unsigned char    s_label2[11];     /* for Windows? */\r
+    unsigned char    s_fs2[8];         /* garbage or "FAT32   " */\r
+};\r
+\r
+#define XFS_SUPER_MAGIC "XFSB"\r
+struct xfs_super_block {\r
+    unsigned char    s_magic[4];\r
+    unsigned char    s_dummy[28];\r
+    unsigned char    s_uuid[16];\r
+    unsigned char    s_dummy2[60];\r
+    unsigned char    s_fname[12];\r
+};\r
+\r
+#define CRAMFS_SUPER_MAGIC 0x28cd3d45\r
+struct cramfs_super_block {\r
+       unsigned char    s_magic[4];\r
+       unsigned char    s_dummy[12];\r
+       unsigned char    s_id[16];\r
+};\r
+#define cramfsmagic(s) ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r
+                        (((unsigned int) s.s_magic[2]) << 16) + \\r
+                        (((unsigned int) s.s_magic[3]) << 24))\r
+\r
+#define HFS_SUPER_MAGIC 0x4244\r
+struct hfs_super_block {\r
+       unsigned char    s_magic[2];\r
+       unsigned char    s_dummy[18];\r
+       unsigned char    s_blksize[4];\r
+};\r
+#define hfsmagic(s)    ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8))\r
+#define hfsblksize(s)  ((unsigned int) s.s_blksize[0] + \\r
+                        (((unsigned int) s.s_blksize[1]) << 8) + \\r
+                        (((unsigned int) s.s_blksize[2]) << 16) + \\r
+                        (((unsigned int) s.s_blksize[3]) << 24))\r
+\r
+#define HPFS_SUPER_MAGIC 0xf995e849\r
+struct hpfs_super_block {\r
+       unsigned char    s_magic[4];\r
+       unsigned char    s_magic2[4];\r
+};\r
+#define hpfsmagic(s)   ((unsigned int) s.s_magic[0] + (((unsigned int) s.s_magic[1]) << 8) + \\r
+                        (((unsigned int) s.s_magic[2]) << 16) + \\r
+                        (((unsigned int) s.s_magic[3]) << 24))\r
+\r
+struct adfs_super_block {\r
+       unsigned char    s_dummy[448];\r
+       unsigned char    s_blksize[1];\r
+       unsigned char    s_dummy2[62];\r
+       unsigned char    s_checksum[1];\r
+};\r
+#define adfsblksize(s) ((unsigned int) s.s_blksize[0])\r
diff --git a/src/nash/mkinitrd b/src/nash/mkinitrd
new file mode 100644 (file)
index 0000000..2a36352
--- /dev/null
@@ -0,0 +1,626 @@
+#!/bin/bash
+
+# mkinitrd
+#
+# Written by Erik Troan <ewt@redhat.com>
+#
+# Contributors:
+#      Elliot Lee <sopwith@cuc.edu>
+#      Miguel de Icaza <miguel@nuclecu.unam.mx>
+#      Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de>
+#      Michael K. Johnson <johnsonm@redhat.com>
+#      Pierre Habraken <Pierre.Habraken@ujf-grenoble.fr>
+#      Jakub Jelinek <jakub@redhat.com>
+#      Carlo Arenas Belon (carenas@chasqui.lared.net.pe>
+#      Keith Owens <kaos@ocs.com.au>
+#      Bernhard Rosenkraenzer <bero@redhat.com>
+#      Matt Wilson <msw@redhat.com>
+#       Trond Eivind Glomsrød <teg@redhat.com>
+#       Jeremy Katz <katzj@redhat.com>
+#       Preston Brown <pbrown@redhat.com>
+#      Bill Nottingham <notting@redhat.com>
+#       Guillaume Cottenceau <gc@mandrakesoft.com>
+
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
+export PATH
+
+VERSION=3.5.14
+
+compress=1
+target=""
+kernel=""
+force=""
+verbose=""
+MODULES=""
+img_vers=""
+builtins=""
+pivot=1
+modulefile=/etc/modules.conf
+rc=0
+
+IMAGESIZE=5120
+PRESCSIMODS="scsi_mod sd_mod unknown"
+fstab="/etc/fstab"
+
+usage () {
+    echo "usage: `basename $0` [--version] [-v] [-f] [--preload <module>]" >&2
+    echo "       [--omit-scsi-modules] [--omit-raid-modules] [--omit-lvm-modules]" >&2
+    echo "       [--with=<module>] [--image-version] [--fstab=<fstab>] [--nocompress]" >&2
+    echo "       [--builtin=<module>] [--nopivot] <initrd-image> <kernel-version>" >&2
+    echo "" >&2
+    echo "       (ex: `basename $0` /boot/initrd-2.2.5-15.img 2.2.5-15)" >&2
+    exit 1
+}
+
+moduledep() {
+    if [ ! -f "/lib/modules/$kernel/modules.dep" ]; then
+       echo "No dep file found for kernel $kernel" >&2
+       exit 1
+    fi
+
+    [ -n "$verbose" ] && echo -n "Looking for deps of module $1"
+    deps=$(gawk 'BEGIN { searched=ARGV[2]; ARGV[2]=""; rc=1 } \
+                function modname(filename) { match(filename, /\/([^\/]+)\.k?o/, ret); return ret[1] } \
+                function show() { if (orig == searched) { print dep; orig=""; rc=0; exit } } \
+                /^\/lib/ { show(); \
+                           orig=modname($1); \
+                           if ($2) { dep=modname($2) } else { dep="" } } \
+                /^     / { dep=sprintf("%s %s", dep, modname($1));  } \
+                END      { show(); exit(rc) }' /lib/modules/$kernel/modules.dep $1)
+    [ -n "$verbose" ] && echo -e "\t$deps"
+}
+
+findmodule() {
+    skiperrors=""
+
+    if [ $1 == "--skiperrors" ]; then
+       skiperrors=--skiperrors
+       shift
+    fi
+
+    local modName=$1
+
+    if [ "$modName" = "off" -o "$modName" = "null" ]; then
+       return
+    fi
+
+    if [ $(echo $modName | cut -b1) = "-" ]; then
+       skiperrors=--skiperrors
+       modName=$(echo $modName | cut -b2-)
+    fi
+
+    if echo $builtins | grep -E -q '(^| )'$modName'( |$)' ; then
+       [ -n "$verbose" ] && echo "module $modName assumed to be built in"
+       set +x
+       return
+    fi
+
+    # special cases
+    if [ "$modName" = "i2o_block" ]; then
+       findmodule i2o_core
+       findmodule i2o_pci
+       modName="i2o_block"
+    elif [ "$modName" = "ppa" ]; then
+       findmodule parport
+       findmodule parport_pc
+       modName="ppa"
+    elif [ "$modName" = "sbp2" ]; then
+       findmodule ieee1394
+       findmodule ohci1394
+       modName="sbp2"
+    else
+       moduledep $modName
+       for i in $deps; do
+           findmodule $i
+       done
+    fi
+
+    for modExt in o.gz o ko ; do
+       if [ -d /lib/modules/$kernel/updates ]; then
+           fmPath=`(cd /lib/modules/$kernel/updates; echo find . -name $modName.$modExt -type f | /sbin/nash --quiet) | gawk {'print $1; exit;'}`
+       fi
+       
+       if [ -f /lib/modules/$kernel/updates/$fmPath ]; then
+           fmPath=updates/$fmPath
+           break
+       fi
+
+       fmPath=`(cd /lib/modules/$kernel; echo find . -name $modName.$modExt -type f | /sbin/nash --quiet) | gawk {'print $1; exit;'}`
+       if [ -f /lib/modules/$kernel/$fmPath ]; then
+           break
+       fi
+    done
+
+    if [ ! -f /lib/modules/$kernel/$fmPath ]; then
+       if [ -n "$skiperrors" ]; then
+           return
+       fi
+
+        # ignore the absence of the scsi modules
+       for n in $PRESCSIMODS; do
+           if [ "$n" = "$modName" ]; then
+               return;
+           fi
+       done;
+    
+       echo "No module $modName found for kernel $kernel, aborting." >&2
+       exit 1
+    fi
+
+    # only need to add each module once
+    if ! echo $MODULES | grep -q "$fmPath" 2>/dev/null ; then
+       MODULES="$MODULES $fmPath"
+    fi
+}
+
+inst() {
+    if [ "$#" != "2" ];then
+        echo "usage: inst <file> <destination>"
+        return
+    fi 
+    [ -n "$verbose" ] && echo "$1 -> $2"
+    cp $1 $2
+}
+
+while [ $# -gt 0 ]; do
+    case $1 in
+       --fstab*)
+           if echo $1 | grep -q '=' ; then
+               fstab=`echo $1 | sed 's/^--fstab=//'`
+           else
+               fstab=$2
+               shift
+           fi              
+           ;;
+
+       --with-usb)
+           withusb=yes
+           ;;
+
+       --with*)
+           if echo $1 | grep -q '=' ; then
+               modname=`echo $1 | sed 's/^--with=//'`
+           else
+               modname=$2
+               shift
+           fi              
+
+           basicmodules="$basicmodules $modname"
+           ;;
+
+       --builtin*)
+           if echo $1 | grep -q '=' ; then
+               modname=`echo $1 | sed 's/^--builtin=//'`
+           else
+               modname=$2
+               shift
+           fi              
+           builtins="$builtins $modname"
+           ;;
+
+       --version)
+           echo "mkinitrd: version $VERSION"
+           exit 0
+           ;;
+
+       -v)
+           verbose=-v
+           ;;
+
+       --nocompress)
+           compress=""
+           ;;
+
+       --nopivot)
+           pivot=""
+           ;;
+
+       --ifneeded)
+           # legacy
+           ;;
+
+       -f)
+           force=1
+           ;;
+       --preload*)
+           if echo $1 | grep -q '=' ; then
+               modname=`echo $1 | sed 's/^--preload=//'`
+           else
+               modname=$2
+               shift
+           fi              
+           PREMODS="$PREMODS $modname"
+           ;;
+       --omit-scsi-modules)
+           PRESCSIMODS=""
+           noscsi=1;
+           ;;
+       --omit-raid-modules)
+           noraid=1;
+           ;;
+       --omit-lvm-modules)
+           nolvm=1
+           ;;
+       --image-version)
+           img_vers=yes
+           ;;
+       *)
+           if [ -z "$target" ]; then
+               target=$1
+           elif [ -z "$kernel" ]; then
+               kernel=$1
+           else
+               usage
+           fi
+           ;;
+    esac
+
+    shift
+done
+
+if [ -z "$target" -o -z "$kernel" ]; then
+    usage
+fi
+
+if [ -n "$img_vers" ]; then
+    target="$target-$kernel"
+fi
+
+if [ -z "$force" -a -f $target ]; then
+    echo "$target already exists." >&2
+    exit 1
+fi
+
+if [ ! -d /lib/modules/$kernel ]; then
+    echo "/lib/modules/$kernel is not a directory." >&2
+    exit 1
+fi
+
+if [ $UID != 0 ]; then
+    echo "mkinitrd must be run as root"
+    exit 1
+fi
+
+# find a temporary directory which doesn't use tmpfs
+TMPDIR=""
+for t in /tmp /var/tmp /root ${PWD}; do
+    if [ ! -d $t ]; then continue; fi
+    if ! echo access -w $t | /sbin/nash --quiet; then continue; fi
+
+    fs=$(df -T $t 2>/dev/null | gawk '{line=$1;} END {printf $2;}')
+    if [ "$fs" != "tmpfs" ]; then 
+       TMPDIR=$t
+       break
+    fi
+done
+
+if [ -z "$TMPDIR" ]; then
+    echo "no temporary directory could be found" >&2
+    exit 1
+fi
+
+if [ $TMPDIR = "/root" -o $TMPDIR = "${PWD}" ]; then 
+    echo "WARNING: using $TMPDIR for temporary files" >&2
+fi
+
+for n in $PREMODS; do
+       findmodule $n
+done
+
+needusb=""
+if [ -n "$withusb" ]; then
+    # If / or /boot is on a USB device include the driver. With root by
+    # label we could still get some odd behaviors
+    for fs in / /boot ; do
+       esc=$(echo $fs | sed 's,/,\\/,g')
+       dev=$(mount | gawk "/ on ${esc} / { print \$1 }" | sed 's/[0-9]*$//' | cut -d/ -f3)
+       if [ "$(echo $dev | cut -c1-2)" = sd ]; then
+          if [ `which kudzu 2>/dev/null` ]; then
+           host=$(kudzu --probe -b scsi |
+             gawk '/^device: '${dev}'/,/^host:/ { if (/^host/) { print $2; exit; } }')
+           if [ -d /proc/scsi/usb-storage-${host} ]; then
+               needusb=1
+           fi
+          fi
+       fi
+    done
+fi
+
+if [ -n "$needusb" ]; then
+    drivers=$(gawk '/^alias usb-controller[0-9]* / { print $3}' < /etc/modules.conf)
+    if [ -n "$drivers" ]; then
+       for driver in $drivers; do
+           findmodule $driver
+       done
+       findmodule scsi_mod
+       findmodule sd_mod
+       findmodule usb-storage
+    fi
+fi
+
+if [ -z "$noscsi" ]; then
+    if [ ! -f $modulefile ]; then
+        modulefile=/etc/conf.modules
+    fi
+
+    if [ -f $modulefile ]; then
+       scsimodules=`grep "alias[[:space:]]scsi_hostadapter" $modulefile | grep -v '^[  ]*#' | LC_ALL=C sort -u | gawk '{ print $3 }'`
+
+       if [ -n "$scsimodules" ]; then
+           for n in $PRESCSIMODS; do
+               findmodule $n
+           done
+
+           for n in $scsimodules; do
+    # for now allow scsi modules to come from anywhere.  There are some
+    # RAID controllers with drivers in block/
+               findmodule $n
+           done
+       fi
+    fi
+fi
+
+# If we have ide devices and module ide, do the right thing
+ide=/proc/ide/ide*
+if [ -n "$ide" ]; then
+    findmodule -ide-disk
+fi
+
+# If we use LVM, include lvm-mod
+if [ -z "$nolvm" ]; then
+    if [ -f /proc/lvm/global  ]; then
+        if  grep -q '^VG:' /proc/lvm/global ; then
+           findmodule -lvm-mod
+        fi
+    fi
+fi
+
+# If we have dasd devices, include the necessary modules (S/390)
+if [ -d /proc/dasd ]; then
+    findmodule -dasd_mod
+    findmodule -dasd_eckd_mod
+    findmodule -dasd_fba_mod
+fi
+
+if [ -z "$noraid" -a -f /proc/mdstat ]; then
+    # load appropriate raid devices if necessary -- we'll load whatever
+    # /proc/mdstat suggests
+
+    # note that the gawk below contains a space and a tab
+    for level in $(gawk '/^md[0-9][0-9]*[      ]*:/ { print $4 }' \
+                   /proc/mdstat | sort -u); do
+       case $level in
+       linear)
+           findmodule linear
+           startraid=1
+           ;;
+       raid[0145])
+           findmodule $level
+           startraid=1
+           ;;
+       *)
+           echo "raid level $level (in /proc/mdstat) not recognized" >&2
+           ;;
+       esac
+    done
+
+    if [ -n "$startraid" ]; then
+       raiddevices=$(gawk '/^md[0-9][0-9]*[        ]*:/ { print $1 }' \
+                           /proc/mdstat | sort)
+    fi
+fi
+
+# check to see if we need to set up a loopback filesystem
+rootdev=$(gawk '/^[ \t]*[^#]/ { if ($2 == "/") { print $1; }}' $fstab)
+if echo $rootdev | cut -d/ -f3 | grep -q loop ; then
+    key="^# $(echo $rootdev | cut -d/ -f3 | tr '[a-z]' '[A-Z]'):"
+    if ! grep "$key" $fstab > /dev/null; then
+       echo "The root filesystem is on a $rootdev, but there is no magic entry in $fstab" 1>&2
+       echo "for this device. Consult the mkinitrd man page for more information" 2>&2
+       exit 1
+    fi
+
+    line=$(grep "$key" $fstab)
+    loopDev=$(echo $line | gawk '{print $3}')
+    loopFs=$(echo $line | gawk '{print $4}')
+    loopFile=$(echo $line | gawk '{print $5}')
+
+    basicmodules="$basicmodules -loop"
+    if [ "$loopFs" = "vfat" -o "$loopFs" = "msdos" ]; then
+       basicmodules="$basicmodules -fat"
+    fi
+    basicmodules="$basicmodules -${loopFs}"
+# check if the root fs is on a logical volume
+elif ! echo $rootdev | cut -c1-6 |grep -q "LABEL=" ; then
+    rootdev=$(echo "readlink $rootdev" | /sbin/nash --quiet)
+    major=`ls -l $rootdev | sed -e "s/.* \\([0-9]\+\\), *[0-9]\+.*/\\1/"`
+    [ "$major" != "58" ] || root_lvm=1
+fi
+
+rootfs=$(gawk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $3; }}' $fstab)
+rootopts=$(gawk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $4; }}' $fstab)
+
+# in case the root filesystem is modular
+findmodule -${rootfs}
+
+if [ -n "$root_lvm" ]; then
+    findmodule -lvm-mod
+fi
+
+for n in $basicmodules; do 
+    findmodule $n
+done
+
+if [ -n "$verbose" ]; then
+    echo "Using modules: $MODULES"
+fi
+
+
+MNTIMAGE=`mktemp -d ${TMPDIR}/initrd.XXXXXX`
+IMAGE=`mktemp ${TMPDIR}/initrd.img.XXXXXX`
+MNTPOINT=`mktemp -d ${TMPDIR}/initrd.mnt.XXXXXX`
+RCFILE=$MNTIMAGE/linuxrc
+
+if [ -z "$MNTIMAGE" -o -z "$IMAGE" -o -z "$MNTPOINT" ]; then
+    echo "Error creating temporaries.  Try again" >&2
+    exit 1
+fi
+
+dd if=/dev/zero of=$IMAGE bs=1k count=$IMAGESIZE 2> /dev/null || exit 1
+
+LODEV=$(echo findlodev | /sbin/nash --quiet)
+
+if [ -z "$LODEV" ]; then
+    rm -rf $MNTIMAGE $MNTPOINT $IMAGE
+    echo "All of your loopback devices are in use." >&2
+    exit 1
+fi
+
+losetup ${LODEV} $IMAGE || exit 1
+
+# We have to "echo y |" so that it doesn't complain about $IMAGE not
+# being a block device
+echo y | mke2fs $LODEV $IMAGESIZE >/dev/null 2>/dev/null
+tune2fs -i0 $LODEV >/dev/null
+
+if [ -n "$verbose" ]; then
+    echo "Using loopback device $LODEV"
+fi
+
+mkdir -p $MNTPOINT
+mount -t ext2 $LODEV $MNTPOINT || {
+       echo "Can't get a loopback device"
+       exit 1
+}
+
+mkdir -p $MNTIMAGE
+mkdir -p $MNTIMAGE/lib
+mkdir -p $MNTIMAGE/bin
+mkdir -p $MNTIMAGE/etc
+mkdir -p $MNTIMAGE/dev
+mkdir -p $MNTIMAGE/loopfs
+mkdir -p $MNTIMAGE/proc
+mkdir -p $MNTIMAGE/sysroot
+ln -s bin $MNTIMAGE/sbin
+
+# We don't need this directory, so let's save space
+rm -rf $MNTPOINT/lost+found
+
+inst /sbin/nash "$MNTIMAGE/bin/nash"
+inst /sbin/insmod.static "$MNTIMAGE/bin/insmod"
+ln -s /sbin/nash $MNTIMAGE/sbin/modprobe
+
+for MODULE in $MODULES; do
+    cp $verbose -a /lib/modules/$kernel/$MODULE $MNTIMAGE/lib
+done
+
+# mknod'ing the devices instead of copying them works both with and
+# without devfs...
+mknod $MNTIMAGE/dev/console c 5 1
+mknod $MNTIMAGE/dev/null c 1 3
+mknod $MNTIMAGE/dev/ram b 1 1
+mknod $MNTIMAGE/dev/systty c 4 0
+for i in 1 2 3 4; do
+    mknod $MNTIMAGE/dev/tty$i c 4 $i
+done
+
+# FIXME -- this won't work if you're using devfs
+if [ -n "$root_lvm" ]; then
+    pvs=$(/sbin/pvscan | grep " PV " | gawk {'print $5;'} |sed 's/"//g')
+    for pv in $pvs; do
+       cp $verbose --parents -a $pv $MNTIMAGE/
+    done
+
+    inst /sbin/vgwrapper "$MNTIMAGE/bin/vgwrapper"
+    ln "$MNTIMAGE/bin/vgwrapper" "$MNTIMAGE/bin/vgscan"
+    ln "$MNTIMAGE/bin/vgwrapper" "$MNTIMAGE/bin/vgchange"
+
+    mknod $MNTIMAGE/dev/lvm b 109 0
+fi
+
+echo "#!/bin/nash" > $RCFILE
+echo "" >> $RCFILE
+
+for MODULE in $MODULES; do
+    text=""
+    module=`echo $MODULE | sed "s|.*/||" | sed "s/.k\?o$//"`
+    fullmodule=`echo $MODULE | sed "s|.*/||"`
+
+    options=`sed -n -e "s/^options[    ][      ]*$module[      ][      ]*//p" $modulefile 2>/dev/null`
+
+    if [ -n "$verbose" ]; then
+       if [ -n "$options" ]; then
+           text=" with options $options"
+       fi
+        echo "Loading module $module$text"
+    fi
+    echo "echo \"Loading $fullmodule module\"" >> $RCFILE
+    echo "insmod /lib/$fullmodule $options" >> $RCFILE
+
+    # Hack - we need a delay after loading usb-storage to give things
+    #        time to settle down before we start looking a block devices
+    if [ "$module" = "usb-storage" ]; then
+       echo "sleep 5" >> $RCFILE
+    fi
+done
+
+echo "echo Mounting /proc filesystem" >> $RCFILE
+echo "mount -t proc /proc /proc" >> $RCFILE
+
+if [ -n "$startraid" ]; then
+    for dev in $raiddevices; do
+       cp -a /dev/${dev} $MNTIMAGE/dev
+       echo "raidautorun /dev/${dev}" >> $RCFILE
+    done
+fi
+
+echo "echo Creating block devices" >> $RCFILE
+echo "mkdevices /dev" >> $RCFILE
+
+if [ -n "$loopDev" ]; then
+    mkdir /initrd
+    cp -a $loopDev $MNTIMAGE/dev
+    cp -a $rootdev $MNTIMAGE/dev
+    echo "echo Mounting device containing loopback root filesystem" >> $RCFILE
+    echo "mount -t $loopFs $loopDev /loopfs" >> $RCFILE
+    echo "echo Setting up loopback device $rootdev" >> $RCFILE
+    echo "losetup $rootdev /loopfs$loopFile" >> $RCFILE
+elif [ -n "$root_lvm" ]; then
+    echo "echo Scanning logical volumes" >> $RCFILE
+    echo "vgscan" >> $RCFILE
+    echo "echo Activating logical volumes" >> $RCFILE
+    echo "vgchange -ay" >> $RCFILE
+else
+    echo "echo Creating root device" >> $RCFILE
+    echo "mkrootdev /dev/root" >> $RCFILE
+    rootdev=/dev/root
+fi
+
+if [ -n "$pivot" ]; then
+    echo "echo 0x0100 > /proc/sys/kernel/real-root-dev" >> $RCFILE
+
+    echo "echo Mounting root filesystem" >> $RCFILE
+    echo "mount -o $rootopts --ro -t $rootfs $rootdev /sysroot" >> $RCFILE
+
+    echo "pivot_root /sysroot /sysroot/initrd" >> $RCFILE
+    echo "umount /initrd/proc" >> $RCFILE
+else
+    echo "umount /proc" >> $RCFILE
+fi
+
+chmod +x $RCFILE
+
+(cd $MNTIMAGE; tar cf - .) | (cd $MNTPOINT; tar xf -) || exit 1
+
+umount $MNTPOINT
+losetup -d $LODEV
+
+if [ -n "$compress" ]; then
+    gzip -9 < $IMAGE > $target || rc=1
+else
+    cp -a $IMAGE $target || rc=1
+fi
+rm -rf $MNTIMAGE $MNTPOINT $IMAGE
+
+exit $rc
diff --git a/src/nash/mount_by_label.c b/src/nash/mount_by_label.c
new file mode 100644 (file)
index 0000000..75ff9be
--- /dev/null
@@ -0,0 +1,300 @@
+/*\r
+ * taken from util-linux 2.11g and hacked into nash\r
+ *\r
+ * mount_by_label.c - aeb\r
+ *\r
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL>\r
+ * - added Native Language Support\r
+ * 2000-01-20 James Antill <james@and.org>\r
+ * - Added error message if /proc/partitions cannot be opened\r
+ * 2000-05-09 Erik Troan <ewt@redhat.com>\r
+ * - Added cache for UUID and disk labels\r
+ * 2000-11-07 Nathan Scott <nathans@sgi.com>\r
+ * - Added XFS support\r
+ */\r
+\r
+#include <errno.h>\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <ctype.h>\r
+#include <fcntl.h>\r
+#include <stdlib.h>\r
+#include <unistd.h>\r
+#include <sys/stat.h>\r
+#include "linux_fs.h"\r
+#include "mount_by_label.h"\r
+\r
+#define PROC_PARTITIONS "/proc/partitions"\r
+#define DEVLABELDIR    "/dev"\r
+\r
+#define _(str) (str)\r
+\r
+static struct uuidCache_s {\r
+       struct uuidCache_s *next;\r
+       char uuid[16];\r
+       char *device;\r
+       char *label;\r
+       int major, minor;\r
+} *uuidCache = NULL;\r
+\r
+/* for now, only ext2, ext3 and xfs are supported */\r
+static int\r
+get_label_uuid(const char *device, char **label, char *uuid) {\r
+\r
+       /* start with ext2/3 and xfs tests, taken from mount_guess_fstype */\r
+       /* should merge these later */\r
+       int fd;\r
+       int rv = 1;\r
+       size_t namesize;\r
+       struct ext2_super_block e2sb;\r
+       struct xfs_super_block xfsb;\r
+\r
+       fd = open(device, O_RDONLY);\r
+       if (fd < 0)\r
+               return rv;\r
+\r
+       if (lseek(fd, 1024, SEEK_SET) == 1024\r
+           && read(fd, (char *) &e2sb, sizeof(e2sb)) == sizeof(e2sb)\r
+           && (ext2magic(e2sb) == EXT2_SUPER_MAGIC)) {\r
+               memcpy(uuid, e2sb.s_uuid, sizeof(e2sb.s_uuid));\r
+               namesize = sizeof(e2sb.s_volume_name);\r
+               if ((*label = calloc(namesize + 1, 1)) != NULL)\r
+                       memcpy(*label, e2sb.s_volume_name, namesize);\r
+               rv = 0;\r
+       }\r
+       else if (lseek(fd, 0, SEEK_SET) == 0\r
+           && read(fd, (char *) &xfsb, sizeof(xfsb)) == sizeof(xfsb)\r
+           && (strncmp(xfsb.s_magic, XFS_SUPER_MAGIC, 4) == 0)) {\r
+               memcpy(uuid, xfsb.s_uuid, sizeof(xfsb.s_uuid));\r
+               namesize = sizeof(xfsb.s_fname);\r
+               if ((*label = calloc(namesize + 1, 1)) != NULL)\r
+                       memcpy(*label, xfsb.s_fname, namesize);\r
+               rv = 0;\r
+       }\r
+\r
+       close(fd);\r
+       return rv;\r
+}\r
+\r
+static void\r
+uuidcache_addentry(char * device, int major, int minor, char *label, char *uuid) {\r
+       struct uuidCache_s *last;\r
+    \r
+       if (!uuidCache) {\r
+               last = uuidCache = malloc(sizeof(*uuidCache));\r
+       } else {\r
+               for (last = uuidCache; last->next; last = last->next) ;\r
+               last->next = malloc(sizeof(*uuidCache));\r
+               last = last->next;\r
+       }\r
+       last->next = NULL;\r
+       last->label = label;\r
+       last->device = device;\r
+       last->major = major;\r
+       last->minor = minor;\r
+       memcpy(last->uuid, uuid, sizeof(last->uuid));\r
+}\r
+\r
+static void\r
+uuidcache_init(void) {\r
+       char line[100];\r
+       char *s;\r
+       int ma, mi, sz;\r
+       static char ptname[100];\r
+       FILE *procpt;\r
+       char uuid[16], *label;\r
+       char device[110];\r
+       int firstPass;\r
+       int handleOnFirst;\r
+       char * chptr, * endptr;\r
+\r
+       if (uuidCache)\r
+               return;\r
+\r
+       procpt = fopen(PROC_PARTITIONS, "r");\r
+       if (!procpt) {\r
+               static int warn = 0;\r
+               if (!warn++)\r
+                   fprintf (stderr, _("mount: could not open %s, so UUID and LABEL "\r
+                            "conversion cannot be done.\n"),\r
+                      PROC_PARTITIONS);\r
+               return;\r
+       }\r
+\r
+       for (firstPass = 1; firstPass >= 0; firstPass--) {\r
+           fseek(procpt, 0, SEEK_SET);\r
+\r
+           while (fgets(line, sizeof(line), procpt)) {\r
+               /* The original version of this code used sscanf, but\r
+                  diet's sscanf is quite limited */\r
+               chptr = line;\r
+               if (*chptr++ != ' ') continue;\r
+\r
+               ma = strtol(chptr, &endptr, 0);\r
+               if (endptr == chptr) continue;\r
+               while (isspace(*endptr)) endptr++;\r
+               chptr = endptr;\r
+\r
+               mi = strtol(chptr, &endptr, 0);\r
+               if (endptr == chptr) continue;\r
+               while (isspace(*endptr)) endptr++;\r
+               chptr = endptr;\r
+\r
+               sz = strtol(chptr, &endptr, 0);\r
+               if (endptr == chptr) continue;\r
+               while (isspace(*endptr)) endptr++;\r
+               chptr = endptr;\r
+\r
+               while (!isspace(*endptr) && *endptr != '\n') endptr++;\r
+               if (chptr == endptr) continue;\r
+               strncpy(ptname, chptr, endptr - chptr);\r
+               ptname[endptr - chptr] = '\0';\r
+\r
+               /* skip extended partitions (heuristic: size 1) */\r
+               if (sz == 1)\r
+                       continue;\r
+\r
+               /* look only at md devices on first pass */\r
+               handleOnFirst = !strncmp(ptname, "md", 2);\r
+               if (firstPass != handleOnFirst)\r
+                       continue;\r
+\r
+               /* skip entire disk (minor 0, 64, ... on ide;\r
+                  0, 16, ... on sd) */\r
+               /* heuristic: partition name ends in a digit */\r
+\r
+               for(s = ptname; *s; s++);\r
+\r
+               if (isdigit(s[-1])) {\r
+                       char * ptr;\r
+                       char * deviceDir;\r
+                       int mustRemove = 0;\r
+                       int mustRemoveDir = 0;\r
+                       int i;\r
+\r
+                       sprintf(device, "%s/%s", DEVLABELDIR, ptname);\r
+                       if (access(device, F_OK)) {\r
+                           ptr = device;\r
+                           i = 0;\r
+                           while (*ptr)\r
+                               if (*ptr++ == '/')\r
+                                   i++;\r
+                           if (i > 2) {\r
+                               deviceDir = alloca(strlen(device) + 1);\r
+                               strcpy(deviceDir, device);\r
+                               ptr = deviceDir + (strlen(device) - 1);\r
+                               while (*ptr != '/')\r
+                                   *ptr-- = '\0';\r
+                               if (mkdir(deviceDir, 0644)) {\r
+                                   printf("mkdir: cannot create directory %s: %d\n", deviceDir, errno);\r
+                               } else {\r
+                                   mustRemoveDir = 1;\r
+                               }\r
+                           }\r
+\r
+                           mknod(device, S_IFBLK | 0600, makedev(ma, mi));\r
+                           mustRemove = 1;\r
+                       }\r
+                       if (!get_label_uuid(device, &label, uuid))\r
+                               uuidcache_addentry(strdup(device), ma, mi, \r
+                                                  label, uuid);\r
+\r
+                       if (mustRemove) unlink(device);\r
+                       if (mustRemoveDir) rmdir(deviceDir);\r
+               }\r
+           }\r
+       }\r
+\r
+       fclose(procpt);\r
+}\r
+\r
+#define UUID   1\r
+#define VOL    2\r
+\r
+static char *\r
+get_spec_by_x(int n, const char *t, int * majorPtr, int * minorPtr) {\r
+       struct uuidCache_s *uc;\r
+\r
+       uuidcache_init();\r
+       uc = uuidCache;\r
+\r
+       while(uc) {\r
+               switch (n) {\r
+               case UUID:\r
+                       if (!memcmp(t, uc->uuid, sizeof(uc->uuid))) {\r
+                               *majorPtr = uc->major;\r
+                               *minorPtr = uc->minor;\r
+                               return uc->device;\r
+                       }\r
+                       break;\r
+               case VOL:\r
+                       if (!strcmp(t, uc->label)) {\r
+                               *majorPtr = uc->major;\r
+                               *minorPtr = uc->minor;\r
+                               return uc->device;\r
+                       }\r
+                       break;\r
+               }\r
+               uc = uc->next;\r
+       }\r
+       return NULL;\r
+}\r
+\r
+static unsigned char\r
+fromhex(char c) {\r
+       if (isdigit(c))\r
+               return (c - '0');\r
+       else if (islower(c))\r
+               return (c - 'a' + 10);\r
+       else\r
+               return (c - 'A' + 10);\r
+}\r
+\r
+char *\r
+get_spec_by_uuid(const char *s, int * major, int * minor) {\r
+       unsigned char uuid[16];\r
+       int i;\r
+\r
+       if (strlen(s) != 36 ||\r
+           s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-')\r
+               goto bad_uuid;\r
+       for (i=0; i<16; i++) {\r
+           if (*s == '-') s++;\r
+           if (!isxdigit(s[0]) || !isxdigit(s[1]))\r
+                   goto bad_uuid;\r
+           uuid[i] = ((fromhex(s[0])<<4) | fromhex(s[1]));\r
+           s += 2;\r
+       }\r
+       return get_spec_by_x(UUID, uuid, major, minor);\r
+\r
+ bad_uuid:\r
+       fprintf(stderr, _("mount: bad UUID"));\r
+       return 0;\r
+}\r
+\r
+char *\r
+get_spec_by_volume_label(const char *s, int * major, int * minor) {\r
+       return get_spec_by_x(VOL, s, major, minor);\r
+}\r
+\r
+int display_uuid_cache(void) {\r
+       struct uuidCache_s * u;\r
+       int i;\r
+\r
+       uuidcache_init();\r
+\r
+       u = uuidCache;\r
+       while (u) {\r
+           printf("%s %s ", u->device, u->label);\r
+           for (i = 0; i < sizeof(u->uuid); i++) {\r
+               if (i == 4 || i == 6 || i == 8 || i == 10)\r
+                   printf("-");\r
+               printf("%x", u->uuid[i] & 0xff);\r
+           }\r
+           printf("\n");\r
+           u = u->next;\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
diff --git a/src/nash/mount_by_label.h b/src/nash/mount_by_label.h
new file mode 100644 (file)
index 0000000..21866bf
--- /dev/null
@@ -0,0 +1,2 @@
+char * get_spec_by_uuid(const char *uuid, int * major, int * minor);\r
+char * get_spec_by_volume_label(const char *volumelabel, int * major, int * minor);\r
diff --git a/src/nash/nash.8 b/src/nash/nash.8
new file mode 100644 (file)
index 0000000..f895ffa
--- /dev/null
@@ -0,0 +1,126 @@
+.TH NASH 8 "Sat Mar 27 1999"
+.UC 4
+.SH NAME
+nash \- script interpretor to interpret linuxrc images
+.SH SYNOPSIS
+\fBnash\fR [--quiet] [--force] \fIscript\fR
+
+.SH DESCRIPTION
+\fBnash\fR is a very simple script interpretor designed to be as small as
+possible. It is primarily designed to run simple linuxrc scripts on an initrd
+image. Arguments to commands may be enclosed in either single or double
+quotes to allow spaces to be included in the arguments. Spaces outside of
+quotations always delineate arguments, and so backslash escaping is supported.
+
+Additionally, if nash is invoked as \fBmodprobe\fR, it will immediately
+exit with a return code of zero. This is to allow initrd's to prevent some
+extraneous kernel error messages during startup.
+
+There are two types of commands, built in and external. External commands
+are run from the filesystem via execve(). If commands names are given without
+a path, nash will search it's builtin PATH, which is /usr/bin, /bin,
+/sbin, /usr/sbin.
+
+Currently, \fBnash\fR supports the following built in commands.
+
+.TP
+\fBaccess -[r][w][x][f] \fIpath\fR
+Tells whether the current user has sufficient permissions to read, write, or
+execture \fIpath\fR, or if the file exists (see \fBaccess(2)\fR for more
+information).
+
+.TP
+\fBecho [item]* [> \fIfilename\fR]\fR
+Echos the text strings given to a file, with a space in between each
+item. The output may be optionally redirected to a file.
+
+\fBexec\fR \fI<command>\fR
+The command given is execed, overlaying the nash process.
+
+.TP
+\fBfind \fIdir\fR -name \fIname\fR
+Display the path to files named \fIname\fR in or below directory \fIdir\FR.
+This is a \fBvery\fR limited implementation of find(1).
+
+.TP
+\fBfindlodev\fR
+Prints the full path to the first unused loopback block device on the
+system. If none is available, no output is displayed.
+
+.TP
+\fBlosetup \fI/dev/loopdev\fR \fIfile\fR
+Binds \fIfile\fR to the loopback device \fI/dev/loopdev\fR. See
+\fBlosetup(8)\fR for information on loopback devices.
+
+.TP
+\fBmkdevices\fR \fIpath\fR
+Creates device files for all of the block devices listed in 
+\fB/proc/partitions\fR in the directory specfied by \fIpath\fR.
+
+.TP
+\fBmkdir\fR \fI[-p]\fR \fIpath\fR
+Creates the directory \fIpath\fR. If \fI-p\fR is specified, this command
+will not complain if the directory exists. Note this is a subset of the
+standard \fBmkdir\fR \fI-p\fR behavior.
+
+.TP
+\fBmknod\fR \fIpath\fR \fI[c|b]\fR \fImajor\fR \fIminor\fR 
+Creates a device inode for \fIpath\fR. This is identical to \fBmkdev\fR(1)
+which the exceptions that it will not create named pipes and if the directories
+in \fIpath\fR do not exist they will be automatically created.
+
+.TP
+\fBmkrootdev \fIpath\fR
+Makes \fIpath\fR a block inode for the device which should be mounted
+as root. To determine this device nash uses 
+the device suggested by the root= kernel command line argument (if
+root=LABEL is used devices are probed to find one with that label). If
+no root= argument is available, /proc/sys/kernel/real-root-dev provides
+the device number.
+
+.TP
+\fBmount \fI[--ro]\fR -o \fIopts\fR -t \fItype\fR \fIdevice\fR \fImntpoint\fR
+Mounts a filesystem. It does not support NFS, and it must be used in
+the form given above (arguments must go first).  If \fIdevice\fR is of the form
+\fBLABEL=\fIfoo\fR the devices listed in /fB/proc/partitions\fR will
+be searched, and the first device with a volume label of \fIfoo\fR will
+be mounted. Normal \fBmount\fR(2) options are supported, and \fB--ro\fR will
+mount the filesystem read only for compatibility with older versions of nash.
+The \fBdefaults\fR mount option is silently ignored.
+
+.TP
+\fBpivot_root \fInewrootpath\fR \fIoldrootpath\fR
+Makes the filesystem mounted at \fInewrootpath\fR the new root filesystem,
+and mounts the current root filesystem as \fIoldrootpath\fR.
+
+.TP
+\fBraidautorun \fImddevice\fR
+Runs raid autodetection on all raid-typed partitions. \fImddevice\fR must
+be a raid device (any will do).
+
+.TP
+\fBshowlabels\fR
+Display a table of devices, their filesystem labels, and their uuids.
+
+.TP
+\fBumount \fIpath\fR
+Unmounts the filesystem mounted at \fIpath\fR.
+
+.SH RETURN VALUE
+Returns 0 is the last command succeeded or 1 if it failed.
+
+.SH OPTIONS
+.TP
+\fB-\-force\fR
+Allows \fBforce\fR really execute the script, even though \fBnash\fR doesn't 
+appear to be running from an initrd image.
+
+.SH BUGS
+Probably many. \fBnash\fR is \fbnot a shell\fR, and it shouldn't be thought of
+as one. It isn't entirely different from a shell, but that's mostly by
+accident.
+
+.SH AUTHOR
+.nf
+Erik Troan <ewt@redhat.com>
+.fi
diff --git a/src/nash/nash.c b/src/nash/nash.c
new file mode 100644 (file)
index 0000000..cfde50c
--- /dev/null
@@ -0,0 +1,1230 @@
+/*\r
+ * nash.c\r
+ * \r
+ * Simple code to load modules, mount root, and get things going. Uses\r
+ * dietlibc to keep things small.\r
+ *\r
+ * Erik Troan (ewt@redhat.com)\r
+ *\r
+ * Copyright 2002 Red Hat Software \r
+ *\r
+ * This software may be freely redistributed under the terms of the GNU\r
+ * public license.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+ *\r
+ */\r
+\r
+/* We internalize losetup, mount, raidautorun, and echo commands. Other\r
+   commands are run from the filesystem. Comments and blank lines work as \r
+   well, argument parsing is screwy. */\r
+\r
+#include <ctype.h>\r
+#include <dirent.h>\r
+#include <errno.h>\r
+#include <fcntl.h>\r
+#include <net/if.h>\r
+#include <signal.h>\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <sys/ioctl.h>\r
+#include <sys/mount.h>\r
+#include <sys/socket.h>\r
+#include <sys/stat.h>\r
+#include <sys/time.h>\r
+#include <sys/types.h>\r
+#include <sys/un.h>\r
+#include <sys/wait.h>\r
+#include <unistd.h>\r
+#include <sys/ioctl.h>\r
+#include <sys/reboot.h>\r
+#include <termios.h>\r
+\r
+#include <asm/unistd.h>\r
+\r
+#include "mount_by_label.h"\r
+\r
+/* Need to tell loop.h what the actual dev_t type is. */\r
+#undef dev_t\r
+#if defined(__alpha) || (defined(__sparc__) && defined(__arch64__))\r
+#define dev_t unsigned int\r
+#else\r
+#define dev_t unsigned short\r
+#endif\r
+#include <linux/loop.h>\r
+#undef dev_t\r
+#define dev_t dev_t\r
+\r
+#define syslog klogctl\r
+\r
+#include <linux/cdrom.h>\r
+#define MD_MAJOR 9\r
+#include <linux/raid/md_u.h>\r
+\r
+#ifndef RAID_AUTORUN\r
+#define RAID_AUTORUN           _IO (MD_MAJOR, 0x14)\r
+#endif\r
+\r
+#ifndef MS_REMOUNT\r
+#define MS_REMOUNT      32\r
+#endif\r
+\r
+#ifdef USE_DIET\r
+static inline _syscall2(int,pivot_root,const char *,one,const char *,two)\r
+#endif\r
+\r
+#define MAX(a, b) ((a) > (b) ? a : b)\r
+\r
+int testing = 0, quiet = 0;\r
+\r
+#define PATH "/usr/bin:/bin:/sbin:/usr/sbin"\r
+\r
+char * env[] = {\r
+    "PATH=" PATH,\r
+    NULL\r
+};\r
+\r
+int smartmknod(char * device, mode_t mode, dev_t dev) {\r
+    char buf[256];\r
+    char * end;\r
+\r
+    strcpy(buf, device);\r
+\r
+    end = buf;\r
+    while (*end) {\r
+       if (*end == '/') {\r
+           *end = '\0';\r
+           if (access(buf, F_OK) && errno == ENOENT) \r
+               mkdir(buf, 0700);\r
+           *end = '/';\r
+       }\r
+\r
+       end++;\r
+    }\r
+\r
+    return mknod(device, mode, dev);\r
+}\r
+\r
+char * getArg(char * cmd, char * end, char ** arg) {\r
+    char quote = '\0';\r
+\r
+    if (cmd >= end) return NULL;\r
+\r
+    while (isspace(*cmd) && cmd < end) cmd++;\r
+    if (cmd >= end) return NULL;\r
+\r
+    if (*cmd == '"')\r
+       cmd++, quote = '"';\r
+    else if (*cmd == '\'')\r
+       cmd++, quote = '\'';\r
+\r
+    if (quote) {\r
+       *arg = cmd;\r
+\r
+       /* This doesn't support \ escapes */\r
+       while (cmd < end && *cmd != quote) cmd++;\r
+\r
+       if (cmd == end) {\r
+           printf("error: quote mismatch for %s\n", *arg);\r
+           return NULL;\r
+       }\r
+\r
+       *cmd = '\0';\r
+       cmd++;\r
+    } else {\r
+       *arg = cmd;\r
+       while (!isspace(*cmd) && cmd < end) cmd++;\r
+       *cmd = '\0';\r
+    }\r
+\r
+    cmd++;\r
+\r
+    while (isspace(*cmd)) cmd++;\r
+\r
+    return cmd;\r
+}\r
+\r
+int mountCommand(char * cmd, char * end) {\r
+    char * fsType = NULL;\r
+    char * device;\r
+    char * mntPoint;\r
+    char * deviceDir;\r
+    char * options = NULL;\r
+    int mustRemove = 0;\r
+    int mustRemoveDir = 0;\r
+    int rc;\r
+    int flags = MS_MGC_VAL;\r
+    char * newOpts;\r
+\r
+    cmd = getArg(cmd, end, &device);\r
+    if (!cmd) {\r
+       printf("usage: mount [--ro] [-o <opts>] -t <type> <device> <mntpoint>\n");\r
+       return 1;\r
+    }\r
+\r
+    while (cmd && *device == '-') {\r
+       if (!strcmp(device, "--ro")) {\r
+           flags |= MS_RDONLY;\r
+       } else if (!strcmp(device, "-o")) {\r
+           cmd = getArg(cmd, end, &options);\r
+           if (!cmd) {\r
+               printf("mount: -o requires arguments\n");\r
+               return 1;\r
+           }\r
+       } else if (!strcmp(device, "-t")) {\r
+           if (!(cmd = getArg(cmd, end, &fsType))) {\r
+               printf("mount: missing filesystem type\n");\r
+               return 1;\r
+           }\r
+       }\r
+\r
+       cmd = getArg(cmd, end, &device);\r
+    }\r
+\r
+    if (!cmd) {\r
+       printf("mount: missing device\n");\r
+       return 1;\r
+    }\r
+\r
+    if (!(cmd = getArg(cmd, end, &mntPoint))) {\r
+       printf("mount: missing mount point\n");\r
+       return 1;\r
+    }\r
+\r
+    if (!fsType) {\r
+       printf("mount: filesystem type expected\n");\r
+       return 1;\r
+    }\r
+\r
+    if (cmd < end) {\r
+       printf("mount: unexpected arguments\n");\r
+       return 1;\r
+    }\r
+\r
+    /* need to deal with options */ \r
+    if (options) {\r
+       char * end;\r
+       char * start = options;\r
+\r
+       newOpts = alloca(strlen(options) + 1);\r
+       *newOpts = '\0';\r
+\r
+       while (*start) {\r
+           end = strchr(start, ',');\r
+           if (!end) {\r
+               end = start + strlen(start);\r
+           } else {\r
+               *end = '\0';\r
+               end++;\r
+           }\r
+\r
+           if (!strcmp(start, "ro"))\r
+               flags |= MS_RDONLY;\r
+           else if (!strcmp(start, "rw"))\r
+               flags &= ~MS_RDONLY;\r
+           else if (!strcmp(start, "nosuid"))\r
+               flags |= MS_NOSUID;\r
+           else if (!strcmp(start, "suid"))\r
+               flags &= ~MS_NOSUID;\r
+           else if (!strcmp(start, "nodev"))\r
+               flags |= MS_NODEV;\r
+           else if (!strcmp(start, "dev"))\r
+               flags &= ~MS_NODEV;\r
+           else if (!strcmp(start, "noexec"))\r
+               flags |= MS_NOEXEC;\r
+           else if (!strcmp(start, "exec"))\r
+               flags &= ~MS_NOEXEC;\r
+           else if (!strcmp(start, "sync"))\r
+               flags |= MS_SYNCHRONOUS;\r
+           else if (!strcmp(start, "async"))\r
+               flags &= ~MS_SYNCHRONOUS;\r
+           else if (!strcmp(start, "nodiratime"))\r
+               flags |= MS_NODIRATIME;\r
+           else if (!strcmp(start, "diratime"))\r
+               flags &= ~MS_NODIRATIME;\r
+           else if (!strcmp(start, "noatime"))\r
+               flags |= MS_NOATIME;\r
+           else if (!strcmp(start, "atime"))\r
+               flags &= ~MS_NOATIME;\r
+           else if (!strcmp(start, "remount"))\r
+               flags |= MS_REMOUNT;\r
+           else if (!strcmp(start, "defaults"))\r
+               ;\r
+           else {\r
+               if (*newOpts)\r
+                   strcat(newOpts, ",");\r
+               strcat(newOpts, start);\r
+           }\r
+\r
+           start = end;\r
+       }\r
+\r
+       options = newOpts;\r
+    }\r
+\r
+    if (!strncmp("LABEL=", device, 6)) {\r
+       int major, minor;\r
+       char * devName;\r
+       char * ptr;\r
+       int i;\r
+\r
+       devName = get_spec_by_volume_label(device + 6, &major, &minor);\r
+\r
+       if (devName) {\r
+           device = devName;\r
+           if (access(device, F_OK)) {\r
+               ptr = device;\r
+               i = 0;\r
+               while (*ptr)\r
+                   if (*ptr++ == '/')\r
+                       i++;\r
+               if (i > 2) {\r
+                   deviceDir = alloca(strlen(device) + 1);\r
+                   strcpy(deviceDir, device);\r
+                   ptr = deviceDir + (strlen(device) - 1);\r
+                   while (*ptr != '/')\r
+                       *ptr-- = '\0';\r
+                   if (mkdir(deviceDir, 0644)) {\r
+                     printf("mkdir: cannot create directory %s\n", deviceDir);\r
+                   } else {\r
+                     mustRemoveDir = 1;\r
+                   }\r
+               }\r
+               if (smartmknod(device, S_IFBLK | 0600, makedev(major, minor))) {\r
+                   printf("mount: cannot create device %s (%d,%d)\n",\r
+                          device, major, minor);\r
+                   return 1;\r
+               }\r
+               mustRemove = 1;\r
+           }\r
+       }\r
+    }\r
+\r
+    if (testing) {\r
+       printf("mount %s%s%s-t '%s' '%s' '%s' (%s%s%s%s%s%s%s)\n", \r
+               options ? "-o '" : "",  \r
+               options ? options : "", \r
+               options ? "\' " : "",   \r
+               fsType, device, mntPoint,\r
+               (flags & MS_RDONLY) ? "ro " : "",\r
+               (flags & MS_NOSUID) ? "nosuid " : "",\r
+               (flags & MS_NODEV) ? "nodev " : "",\r
+               (flags & MS_NOEXEC) ? "noexec " : "",\r
+               (flags & MS_SYNCHRONOUS) ? "sync " : "",\r
+               (flags & MS_REMOUNT) ? "remount " : "",\r
+               (flags & MS_NOATIME) ? "noatime " : ""\r
+           );\r
+    } else {\r
+       if (mount(device, mntPoint, fsType, flags, options)) {\r
+           printf("mount: error %d mounting %s\n", errno, fsType);\r
+           rc = 1;\r
+       }\r
+    }\r
+\r
+    if (mustRemove) unlink(device);\r
+    if (mustRemoveDir) rmdir(deviceDir);\r
+\r
+    return rc;\r
+}\r
+\r
+int otherCommand(char * bin, char * cmd, char * end, int doFork) {\r
+    char * args[128];\r
+    char ** nextArg;\r
+    int pid;\r
+    int status;\r
+    char fullPath[255];\r
+    const static char * sysPath = PATH;\r
+    const char * pathStart;\r
+    const char * pathEnd;\r
+    char * stdoutFile = NULL;\r
+    int stdoutFd = 0;\r
+\r
+    nextArg = args;\r
+\r
+    if (!strchr(bin, '/')) {\r
+       pathStart = sysPath;\r
+       while (*pathStart) {\r
+           pathEnd = strchr(pathStart, ':');\r
+\r
+           if (!pathEnd) pathEnd = pathStart + strlen(pathStart);\r
+\r
+           strncpy(fullPath, pathStart, pathEnd - pathStart);\r
+           fullPath[pathEnd - pathStart] = '/';\r
+           strcpy(fullPath + (pathEnd - pathStart + 1), bin); \r
+\r
+           pathStart = pathEnd;\r
+           if (*pathStart) pathStart++;\r
+\r
+           if (!access(fullPath, X_OK)) {\r
+               bin = fullPath;\r
+               break;\r
+           }\r
+       }\r
+    }\r
+\r
+    *nextArg = bin;\r
+\r
+    while (cmd && cmd < end) {\r
+       nextArg++;\r
+       cmd = getArg(cmd, end, nextArg);\r
+    }\r
+       \r
+    if (cmd) nextArg++;\r
+    *nextArg = NULL;\r
+\r
+    /* if the next-to-last arg is a >, redirect the output properly */\r
+    if (((nextArg - args) >= 2) && !strcmp(*(nextArg - 2), ">")) {\r
+       stdoutFile = *(nextArg - 1);\r
+       *(nextArg - 2) = NULL;\r
+\r
+       stdoutFd = open(stdoutFile, O_CREAT | O_RDWR | O_TRUNC, 0600);\r
+       if (stdoutFd < 0) {\r
+           printf("nash: failed to open %s: %d\n", stdoutFile, errno);\r
+           return 1;\r
+       }\r
+    }\r
+\r
+    if (testing) {\r
+       printf("%s ", bin);\r
+       nextArg = args + 1;\r
+       while (*nextArg)\r
+           printf(" '%s'", *nextArg++);\r
+       if (stdoutFile)\r
+           printf(" (> %s)", stdoutFile);\r
+       printf("\n");\r
+    } else {\r
+       if (!doFork || !(pid = fork())) {\r
+           /* child */\r
+           dup2(stdoutFd, 1);\r
+           execve(args[0], args, env);\r
+           printf("ERROR: failed in exec of %s\n", args[0]);\r
+           return 1;\r
+       }\r
+\r
+       close(stdoutFd);\r
+\r
+       wait4(-1, &status, 0, NULL);\r
+       if (!WIFEXITED(status) || WEXITSTATUS(status)) {\r
+           printf("ERROR: %s exited abnormally!\n", args[0]);\r
+           return 1;\r
+       }\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+int execCommand(char * cmd, char * end) {\r
+    char * bin;\r
+\r
+    if (!(cmd = getArg(cmd, end, &bin))) {\r
+       printf("exec: argument expected\n");\r
+       return 1;\r
+    }\r
+\r
+    return otherCommand(bin, cmd, end, 0);\r
+}\r
+\r
+int losetupCommand(char * cmd, char * end) {\r
+    char * device;\r
+    char * file;\r
+    int fd;\r
+    struct loop_info loopInfo;\r
+    int dev;\r
+\r
+    if (!(cmd = getArg(cmd, end, &device))) {\r
+       printf("losetup: missing device\n");\r
+       return 1;\r
+    }\r
+\r
+    if (!(cmd = getArg(cmd, end, &file))) {\r
+       printf("losetup: missing file\n");\r
+       return 1;\r
+    }\r
+\r
+    if (cmd < end) {\r
+       printf("losetup: unexpected arguments\n");\r
+       return 1;\r
+    }\r
+\r
+    if (testing) {\r
+       printf("losetup '%s' '%s'\n", device, file);\r
+    } else {\r
+       dev = open(device, O_RDWR, 0);\r
+       if (dev < 0) {\r
+           printf("losetup: failed to open %s: %d\n", device, errno);\r
+           return 1;\r
+       }\r
+\r
+       fd = open(file, O_RDWR, 0);\r
+       if (fd < 0) {\r
+           printf("losetup: failed to open %s: %d\n", file, errno);\r
+           close(dev);\r
+           return 1;\r
+       }\r
+\r
+       if (ioctl(dev, LOOP_SET_FD, (long) fd)) {\r
+           printf("losetup: LOOP_SET_FD failed: %d\n", errno);\r
+           close(dev);\r
+           close(fd);\r
+           return 1;\r
+       }\r
+\r
+       close(fd);\r
+\r
+       memset(&loopInfo, 0, sizeof(loopInfo));\r
+       strcpy(loopInfo.lo_name, file);\r
+\r
+       if (ioctl(dev, LOOP_SET_STATUS, &loopInfo)) \r
+           printf("losetup: LOOP_SET_STATUS failed: %d\n", errno);\r
+\r
+       close(dev);\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+int raidautorunCommand(char * cmd, char * end) {\r
+    char * device;\r
+    int fd;\r
+\r
+    if (!(cmd = getArg(cmd, end, &device))) {\r
+       printf("raidautorun: raid device expected as first argument\n");\r
+       return 1;\r
+    }\r
+\r
+    if (cmd < end) {\r
+       printf("raidautorun: unexpected arguments\n");\r
+       return 1;\r
+    }\r
+\r
+    fd = open(device, O_RDWR, 0);\r
+    if (fd < 0) {\r
+       printf("raidautorun: failed to open %s: %d\n", device, errno);\r
+       return 1;\r
+    }\r
+\r
+    if (ioctl(fd, RAID_AUTORUN, 0)) {\r
+       printf("raidautorun: RAID_AUTORUN failed: %d\n", errno);\r
+       close(fd);\r
+       return 1;\r
+    }\r
+\r
+    close(fd);\r
+    return 0;\r
+}\r
+\r
+static int my_pivot_root(char * one, char * two) {\r
+#ifdef USE_DIET\r
+    return pivot_root(one, two);\r
+#else\r
+    return syscall(__NR_pivot_root, one, two);\r
+#endif\r
+}\r
+\r
+int pivotrootCommand(char * cmd, char * end) {\r
+    char * new;\r
+    char * old;\r
+\r
+    if (!(cmd = getArg(cmd, end, &new))) {\r
+       printf("pivotroot: new root mount point expected\n");\r
+       return 1;\r
+    }\r
+\r
+    if (!(cmd = getArg(cmd, end, &old))) {\r
+       printf("pivotroot: old root mount point expected\n");\r
+       return 1;\r
+    }\r
+\r
+    if (cmd < end) {\r
+       printf("pivotroot: unexpected arguments\n");\r
+       return 1;\r
+    }\r
+\r
+    if (my_pivot_root(new, old)) {\r
+       printf("pivotroot: pivot_root(%s,%s) failed: %d\n", new, old, errno);\r
+       return 1;\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+int echoCommand(char * cmd, char * end) {\r
+    char * args[256];\r
+    char ** nextArg = args;\r
+    int outFd = 1;\r
+    int num = 0;\r
+    int i;\r
+\r
+    if (testing && !quiet) {\r
+       printf("(echo) ");\r
+       fflush(stdout);\r
+    }\r
+\r
+    while ((cmd = getArg(cmd, end, nextArg)))\r
+       nextArg++, num++;\r
+\r
+    if ((nextArg - args >= 2) && !strcmp(*(nextArg - 2), ">")) {\r
+       outFd = open(*(nextArg - 1), O_RDWR | O_CREAT | O_TRUNC, 0644);\r
+       if (outFd < 0) {\r
+           printf("echo: cannot open %s for write: %d\n", \r
+                   *(nextArg - 1), errno);\r
+           return 1;\r
+       }\r
+\r
+       num -= 2;\r
+    }\r
+\r
+    for (i = 0; i < num;i ++) {\r
+       if (i)\r
+           write(outFd, " ", 1);\r
+       write(outFd, args[i], strlen(args[i]));\r
+    }\r
+\r
+    write(outFd, "\n", 1);\r
+\r
+    if (outFd != 1) close(outFd);\r
+\r
+    return 0;\r
+}\r
+\r
+int umountCommand(char * cmd, char * end) {\r
+    char * path;\r
+\r
+    if (!(cmd = getArg(cmd, end, &path))) {\r
+       printf("umount: path expected\n");\r
+       return 1;\r
+    }\r
+\r
+    if (cmd < end) {\r
+       printf("umount: unexpected arguments\n");\r
+       return 1;\r
+    }\r
+\r
+    if (umount(path)) {\r
+       printf("umount %s failed: %d\n", path, errno);\r
+       return 1;\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+int mkrootdevCommand(char * cmd, char * end) {\r
+    char * path;\r
+    char * start, * chptr;\r
+    unsigned int devNum = 0;\r
+    int fd;\r
+    int i;\r
+    char buf[1024];\r
+    int major, minor;\r
+\r
+    if (!(cmd = getArg(cmd, end, &path))) {\r
+       printf("mkrootdev: path expected\n");\r
+       return 1;\r
+    }\r
+\r
+    if (cmd < end) {\r
+       printf("mkrootdev: unexpected arguments\n");\r
+       return 1;\r
+    }\r
+\r
+    fd = open("/proc/cmdline", O_RDONLY, 0);\r
+    if (fd < 0) {\r
+       printf("mkrootdev: failed to open /proc/cmdline: %d\n", errno);\r
+       return 1;\r
+    }\r
+\r
+    i = read(fd, buf, sizeof(buf));\r
+    if (i < 0) {\r
+       printf("mkrootdev: failed to read /proc/cmdline: %d\n", errno);\r
+       close(fd);\r
+       return 1;\r
+    }\r
+\r
+    close(fd);\r
+    buf[i - 1] = '\0';\r
+\r
+    start = buf;\r
+    while (*start && isspace(*start)) start++;\r
+    while (*start && strncmp(start, "root=", 5)) {\r
+       while (*start && !isspace(*start)) start++;\r
+       while (*start && isspace(*start)) start++;\r
+    }\r
+\r
+    start += 5;\r
+    chptr = start;\r
+    while (*chptr && !isspace(*chptr)) chptr++;\r
+    *chptr = '\0';\r
+\r
+    if (!strncmp(start, "LABEL=", 6)) {\r
+       if (get_spec_by_volume_label(start + 6, &major, &minor)) {\r
+           if (smartmknod(path, S_IFBLK | 0600, makedev(major, minor))) {\r
+               printf("mount: cannot create device %s (%d,%d)\n",\r
+                      path, major, minor);\r
+               return 1;\r
+           }\r
+\r
+           return 0;\r
+       }\r
+\r
+       printf("mkrootdev: label %s not found\n", start + 6);\r
+\r
+       return 1;\r
+    }\r
+\r
+    fd = open("/proc/sys/kernel/real-root-dev", O_RDONLY, 0);\r
+    if (fd < 0) {\r
+       printf("mkrootdev: failed to open /proc/sys/kernel/real-root-dev: %d\n", errno);\r
+       return 1;\r
+    }\r
+\r
+    i = read(fd, buf, sizeof(buf));\r
+    if (i < 0) {\r
+       printf("mkrootdev: failed to read real-root-dev: %d\n", errno);\r
+       close(fd);\r
+       return 1;\r
+    }\r
+\r
+    close(fd);\r
+    buf[i - 1] = '\0';\r
+\r
+    devNum = atoi(buf);\r
+    if (devNum < 0) {\r
+       printf("mkrootdev: bad device %s\n", buf);\r
+       return 1;\r
+    }\r
+\r
+    if (smartmknod(path, S_IFBLK | 0700, devNum)) {\r
+       printf("mkrootdev: mknod failed: %d\n", errno);\r
+       return 1;\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+int mkdirCommand(char * cmd, char * end) {\r
+    char * dir;\r
+    int ignoreExists = 0;\r
+\r
+    cmd = getArg(cmd, end, &dir);\r
+\r
+    if (cmd && !strcmp(dir, "-p")) {\r
+       ignoreExists = 1;\r
+       cmd = getArg(cmd, end, &dir);\r
+    }\r
+\r
+    if (!cmd) {\r
+       printf("mkdir: directory expected\n");\r
+       return 1;\r
+    }\r
+\r
+    if (mkdir(dir, 0755)) {\r
+       if (!ignoreExists && errno == EEXIST) {\r
+           printf("mkdir: failed to create %s: %d\n", dir, errno);\r
+           return 1;\r
+       }\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+int accessCommand(char * cmd, char * end) {\r
+    char * permStr;\r
+    int perms = 0;\r
+    char * file;\r
+\r
+    cmd = getArg(cmd, end, &permStr);\r
+    if (cmd) cmd = getArg(cmd, end, &file);\r
+\r
+    if (!cmd || *permStr != '-') {\r
+       printf("usage: access -[perm] file\n");\r
+       return 1;\r
+    }\r
+\r
+    permStr++;\r
+    while (*permStr) {\r
+       switch (*permStr) {\r
+         case 'r': perms |= R_OK; break;\r
+         case 'w': perms |= W_OK; break;\r
+         case 'x': perms |= X_OK; break;\r
+         case 'f': perms |= F_OK; break;\r
+         default:\r
+           printf("perms must be -[r][w][x][f]\n");\r
+           return 1;\r
+       }\r
+\r
+       permStr++;\r
+    }\r
+\r
+    if (access(file, perms))\r
+       return 1;\r
+\r
+    return 0;\r
+}\r
+\r
+int sleepCommand(char * cmd, char * end) {\r
+    char *delaystr;\r
+    int delay;\r
+\r
+    if (!(cmd = getArg(cmd, end, &delaystr))) {\r
+       printf("sleep: delay expected\n");\r
+       return 1;\r
+    }\r
+\r
+    delay = atoi(delaystr);\r
+    sleep(delay);\r
+\r
+    return 0;\r
+}\r
+\r
+int readlinkCommand(char * cmd, char * end) {\r
+    char * path;\r
+    char * buf, * respath, * fullpath;\r
+    struct stat sb;\r
+\r
+    if (!(cmd = getArg(cmd, end, &path))) {\r
+        printf("readlink: file expected\n");\r
+        return 1;\r
+    }\r
+\r
+    if (lstat(path, &sb) == -1) {\r
+        fprintf(stderr, "unable to stat %s: %d\n", path, errno);\r
+        return 1;\r
+    }\r
+\r
+    if (!S_ISLNK(sb.st_mode)) {\r
+        printf("%s\n", path);\r
+        return 0;\r
+    }\r
+    \r
+    buf = malloc(512);\r
+    if (readlink(path, buf, 512) == -1) {\r
+       fprintf(stderr, "error readlink %s: %d\n", path, errno);\r
+       return 1;\r
+    }\r
+\r
+    /* symlink is absolute */\r
+    if (buf[0] == '/') {\r
+        printf("%s\n", buf);\r
+        return 0;\r
+    } \r
+   \r
+    /* nope, need to handle the relative symlink case too */\r
+    respath = strrchr(path, '/');\r
+    if (respath) {\r
+        *respath = '\0';\r
+    }\r
+\r
+    fullpath = malloc(512);\r
+    /* and normalize it */\r
+    snprintf(fullpath, 512, "%s/%s", path, buf);\r
+    respath = malloc(PATH_MAX);\r
+    if (!(respath = realpath(fullpath, respath))) {\r
+        fprintf(stderr, "error realpath %s: %d\n", fullpath, errno);\r
+        return 1;\r
+    }\r
+\r
+    printf("%s\n", respath);\r
+    return 0;\r
+}\r
+\r
+int doFind(char * dirName, char * name) {\r
+    struct stat sb;\r
+    DIR * dir;\r
+    struct dirent * d;\r
+    char * strBuf = alloca(strlen(dirName) + 1024);\r
+\r
+    if (!(dir = opendir(dirName))) {\r
+       fprintf(stderr, "error opening %s: %d\n", dirName, errno);\r
+       return 0;\r
+    }\r
+\r
+    errno = 0;\r
+    while ((d = readdir(dir))) {\r
+       errno = 0;\r
+\r
+       strcpy(strBuf, dirName);\r
+       strcat(strBuf, "/");\r
+       strcat(strBuf, d->d_name);\r
+\r
+       if (!strcmp(d->d_name, name))\r
+           printf("%s\n", strBuf);\r
+\r
+       if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, "..")) {\r
+           errno = 0;\r
+           continue;\r
+       }\r
+\r
+       if (lstat(strBuf, &sb)) {\r
+           fprintf(stderr, "failed to stat %s: %d\n", strBuf, errno);\r
+           errno = 0;\r
+           continue;\r
+       }\r
+\r
+       if (S_ISDIR(sb.st_mode))\r
+           doFind(strBuf, name);\r
+    }\r
+\r
+    if (errno) {\r
+       closedir(dir);\r
+       printf("error reading from %s: %d\n", dirName, errno);\r
+       return 1;\r
+    }\r
+\r
+    closedir(dir);\r
+\r
+    return 0;\r
+}\r
+\r
+int findCommand(char * cmd, char * end) {\r
+    char * dir;\r
+    char * name;\r
+\r
+    cmd = getArg(cmd, end, &dir);\r
+    if (cmd) cmd = getArg(cmd, end, &name);\r
+    if (cmd && strcmp(name, "-name")) {\r
+       printf("usage: find [path] -name [file]\n");\r
+       return 1;\r
+    }\r
+\r
+    if (cmd) cmd = getArg(cmd, end, &name);\r
+    if (!cmd) {\r
+       printf("usage: find [path] -name [file]\n");\r
+       return 1;\r
+    }\r
+\r
+    return doFind(dir, name);\r
+}\r
+\r
+int findlodevCommand(char * cmd, char * end) {\r
+    char devName[20];\r
+    int devNum;\r
+    int fd;\r
+    struct loop_info loopInfo;\r
+    char separator[2] = "";\r
+\r
+    if (*end != '\n') {\r
+       printf("usage: findlodev\n");\r
+       return 1;\r
+    }\r
+\r
+    if (!access("/dev/.devfsd", X_OK))\r
+       strcpy(separator, "/");\r
+\r
+    for (devNum = 0; devNum < 256; devNum++) {\r
+       sprintf(devName, "/dev/loop%s%d", separator, devNum);\r
+       if ((fd = open(devName, O_RDONLY)) < 0) return 0;\r
+\r
+       if (ioctl(fd, LOOP_GET_STATUS, &loopInfo)) {\r
+           close(fd);\r
+           printf("%s\n", devName);\r
+           return 0;\r
+       }\r
+\r
+       close(fd);\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+int mknodCommand(char * cmd, char * end) {\r
+    char * path, * type;\r
+    char * majorStr, * minorStr;\r
+    int major;\r
+    int minor;\r
+    char * chptr;\r
+    mode_t mode;\r
+\r
+    cmd = getArg(cmd, end, &path);\r
+    cmd = getArg(cmd, end, &type);\r
+    cmd = getArg(cmd, end, &majorStr);\r
+    cmd = getArg(cmd, end, &minorStr);\r
+    if (!minorStr) {\r
+       printf("mknod: usage mknod <path> [c|b] <major> <minor>\n");\r
+       return 1;\r
+    }\r
+\r
+    if (!strcmp(type, "b")) {\r
+       mode = S_IFBLK;\r
+    } else if (!strcmp(type, "c")) {\r
+       mode = S_IFCHR;\r
+    } else {\r
+       printf("mknod: invalid type\n");\r
+       return 1;\r
+    }\r
+\r
+    major = strtol(majorStr, &chptr, 10);\r
+    if (*chptr) {\r
+       printf("invalid major number\n");\r
+       return 1;\r
+    }\r
+\r
+    minor = strtol(minorStr, &chptr, 10);\r
+    if (*chptr) {\r
+       printf("invalid minor number\n");\r
+       return 1;\r
+    }\r
+\r
+    if (smartmknod(path, mode | 0600, makedev(major, minor))) {\r
+       printf("mknod: failed to create %s: %d\n", path, errno);\r
+       return 1;\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+int mkdevicesCommand(char * cmd, char * end) {\r
+    int fd;\r
+    char buf[32768];\r
+    int i;\r
+    char * start, * chptr;\r
+    int major, minor;\r
+    char old;\r
+    char devName[128];\r
+    char * prefix;\r
+\r
+    if (!(cmd = getArg(cmd, end, &prefix))) {\r
+       printf("mkdevices: path expected\n");\r
+       return 1;\r
+    }\r
+\r
+    if (cmd < end) {\r
+       printf("mkdevices: unexpected arguments\n");\r
+       return 1;\r
+    }\r
+\r
+    if ((fd = open("/proc/partitions", O_RDONLY)) < 0) {\r
+       printf("mkrootdev: failed to open /proc/partitions: %d\n", errno);\r
+       return 1;\r
+    }\r
+\r
+    i = read(fd, buf, sizeof(buf));\r
+    if (i < 1) {\r
+       close(fd);\r
+       printf("failed to read /proc/partitions: %d\n", errno);\r
+       return 1;\r
+    }\r
+    buf[i] = '\0';\r
+    close(fd);\r
+\r
+    start = strchr(buf, '\n');\r
+    if (start) {\r
+       start++;\r
+       start = strchr(buf, '\n');\r
+    }\r
+    if (!start) return 1;\r
+\r
+    start = start + 1;\r
+    while (*start) {\r
+       while (*start && isspace(*start)) start++;\r
+       major = strtol(start, &chptr, 10);\r
+\r
+       if (start != chptr) {\r
+           start = chptr;\r
+           while (*start && isspace(*start)) start++;\r
+           minor = strtol(start, &chptr, 10);\r
+\r
+           if (start != chptr) {\r
+               start = chptr;\r
+               while (*start && isspace(*start)) start++;\r
+               while (*start && !isspace(*start)) start++;\r
+               while (*start && isspace(*start)) start++;\r
+\r
+               if (*start) {\r
+\r
+                   chptr = start;\r
+                   while (!isspace(*chptr)) chptr++;\r
+                   old = *chptr;\r
+                   *chptr = '\0';\r
+\r
+                   if (testing) {\r
+                       printf("% 3d % 3d %s\n", major, minor, start);\r
+                   } else {\r
+                       char * ptr, * deviceDir;\r
+                       int i;\r
+\r
+                       sprintf(devName, "%s/%s", prefix, start);\r
+                       unlink(devName);\r
+\r
+                       ptr = devName;\r
+                       i = 0;\r
+                       while (*ptr)\r
+                           if (*ptr++ == '/')\r
+                               i++;\r
+                       if (i > 2) {\r
+                           deviceDir = alloca(strlen(devName) + 1);\r
+                           strcpy(deviceDir, devName);\r
+                           ptr = deviceDir + (strlen(devName) - 1);\r
+                           while (*ptr != '/')\r
+                               *ptr-- = '\0';\r
+                           if (access(deviceDir, X_OK) && mkdir(deviceDir, 0644)) {\r
+                               printf("mkdir: cannot create directory %s: %d\n", deviceDir, errno);\r
+                           }\r
+                       }\r
+                       if (smartmknod(devName, S_IFBLK | 0600, \r
+                                 makedev(major, minor))) {\r
+                           printf("failed to create %s\n", devName);\r
+                       }\r
+                   }\r
+\r
+                   *chptr = old;\r
+                   start = chptr;\r
+               }\r
+\r
+           }\r
+       }\r
+\r
+       start = strchr(start, '\n');\r
+       if (!*start) return 1;\r
+       start = start + 1;\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+int runStartup(int fd) {\r
+    char contents[32768];\r
+    int i;\r
+    char * start, * end;\r
+    char * chptr;\r
+    int rc;\r
+\r
+    i = read(fd, contents, sizeof(contents) - 1);\r
+    if (i == (sizeof(contents) - 1)) {\r
+       printf("Failed to read /startup.rc -- file too large.\n");\r
+       return 1;\r
+    }\r
+\r
+    contents[i] = '\0';\r
+\r
+    start = contents;\r
+    while (*start) {\r
+       while (isspace(*start) && *start && (*start != '\n')) start++;\r
+\r
+       if (*start == '#')\r
+           while (*start && (*start != '\n')) start++;\r
+\r
+       if (*start == '\n') {\r
+           start++;\r
+           continue;\r
+       }\r
+\r
+       if (!*start) {\r
+           printf("(last line in /startup.rc is empty)\n");\r
+           continue;\r
+       }\r
+\r
+       /* start points to the beginning of the command */\r
+       end = start + 1;\r
+       while (*end && (*end != '\n')) end++;\r
+       if (!*end) {\r
+           printf("(last line in /startup.rc missing \\n -- skipping)\n");\r
+           start = end;\r
+           continue;\r
+       }\r
+\r
+       /* end points to the \n at the end of the command */\r
+\r
+       chptr = start;\r
+       while (chptr < end && !isspace(*chptr)) chptr++;\r
+\r
+       if (!strncmp(start, "mount", MAX(5, chptr - start)))\r
+           rc = mountCommand(chptr, end);\r
+       else if (!strncmp(start, "losetup", MAX(7, chptr - start)))\r
+           rc = losetupCommand(chptr, end);\r
+       else if (!strncmp(start, "echo", MAX(4, chptr - start)))\r
+           rc = echoCommand(chptr, end);\r
+       else if (!strncmp(start, "raidautorun", MAX(11, chptr - start)))\r
+           rc = raidautorunCommand(chptr, end);\r
+       else if (!strncmp(start, "pivot_root", MAX(10, chptr - start)))\r
+           rc = pivotrootCommand(chptr, end);\r
+       else if (!strncmp(start, "mkrootdev", MAX(9, chptr - start)))\r
+           rc = mkrootdevCommand(chptr, end);\r
+       else if (!strncmp(start, "umount", MAX(6, chptr - start)))\r
+           rc = umountCommand(chptr, end);\r
+       else if (!strncmp(start, "exec", MAX(4, chptr - start)))\r
+           rc = execCommand(chptr, end);\r
+       else if (!strncmp(start, "mkdir", MAX(5, chptr - start)))\r
+           rc = mkdirCommand(chptr, end);\r
+       else if (!strncmp(start, "access", MAX(6, chptr - start)))\r
+           rc = accessCommand(chptr, end);\r
+       else if (!strncmp(start, "find", MAX(4, chptr - start)))\r
+           rc = findCommand(chptr, end);\r
+       else if (!strncmp(start, "findlodev", MAX(7, chptr - start)))\r
+           rc = findlodevCommand(chptr, end);\r
+       else if (!strncmp(start, "showlabels", MAX(10, chptr-start)))\r
+           rc = display_uuid_cache();\r
+       else if (!strncmp(start, "mkdevices", MAX(9, chptr-start)))\r
+           rc = mkdevicesCommand(chptr, end);\r
+       else if (!strncmp(start, "sleep", MAX(5, chptr-start)))\r
+           rc = sleepCommand(chptr, end);\r
+       else if (!strncmp(start, "mknod", MAX(5, chptr-start)))\r
+           rc = mknodCommand(chptr, end);\r
+        else if (!strncmp(start, "readlink", MAX(8, chptr-start)))\r
+            rc = readlinkCommand(chptr, end);\r
+       else {\r
+           *chptr = '\0';\r
+           rc = otherCommand(start, chptr + 1, end, 1);\r
+       }\r
+\r
+       start = end + 1;\r
+    }\r
+\r
+    return rc;\r
+}\r
+\r
+int main(int argc, char **argv) {\r
+    int fd = 0;\r
+    char * name;\r
+    int rc;\r
+    int force = 0;\r
+\r
+    name = strrchr(argv[0], '/');\r
+    if (!name) \r
+       name = argv[0];\r
+    else\r
+       name++;\r
+\r
+    if (!strcmp(name, "modprobe"))\r
+       exit(0);\r
+\r
+    testing = (getppid() != 0) && (getppid() != 1);\r
+    argv++, argc--;\r
+\r
+    while (argc && **argv == '-') {\r
+       if (!strcmp(*argv, "--force")) {\r
+           force = 1;\r
+           argv++, argc--;\r
+           testing = 0;\r
+       } else if (!strcmp(*argv, "--quiet")) {\r
+           quiet = 1;\r
+           argv++, argc--;\r
+       } else {\r
+           printf("unknown argument %s\n", *argv);\r
+           return 1;\r
+       }\r
+    }\r
+\r
+    if (force && !quiet)\r
+       printf("(forcing normal run)\n");\r
+\r
+    if (testing && !quiet)\r
+       printf("(running in test mode).\n");\r
+\r
+    if (!quiet) printf("Red Hat nash version %s starting\n", VERSION);\r
+\r
+    if (*argv) {\r
+       fd = open(*argv, O_RDONLY, 0);\r
+       if (fd < 0) {\r
+           printf("nash: cannot open %s: %d\n", *argv, errno);\r
+           exit(1);\r
+       }\r
+    }\r
+\r
+    rc = runStartup(fd);\r
+    close(fd);\r
+\r
+    return rc;\r
+}\r
diff --git a/src/nash/sample-rc b/src/nash/sample-rc
new file mode 100644 (file)
index 0000000..d807e4c
--- /dev/null
@@ -0,0 +1,13 @@
+#!nash
+
+# this is a comment
+echo "hello"
+echo "hello world" > foo
+echo "hi" "there" everyone
+
+insmod /lib/modules/2.4.0-0.36/kernel/drivers/usb/storage/usb-storage.o   'foo=bar'  "bell=hops"
+
+mount -t ext2 /dev/hda1 /boot    
+
+losetup /dev/loop0 /tmp/bootnet.img
+
diff --git a/src/patches/CVS/Entries b/src/patches/CVS/Entries
new file mode 100644 (file)
index 0000000..01a1086
--- /dev/null
@@ -0,0 +1,99 @@
+/CnxADSL-cln-irqreturn.patch/1.1.2.1/Thu Nov 11 10:41:12 2004//TIPCOP_v1_4_0
+/busybox-0.60.5-config.patch/1.4.2.2/Thu Aug 12 14:04:29 2004//TIPCOP_v1_4_0
+/busybox-0.60.5-gzip.patch/1.3/Thu Jan  1 19:35:25 2004//TIPCOP_v1_4_0
+/busybox-0.60.5-insmod_gpl_symbols.patch/1.1.2.1/Wed Jun 22 20:00:56 2005//TIPCOP_v1_4_0
+/busybox-0.60.5-spider.patch/1.1/Fri Jan 16 15:00:57 2004//TIPCOP_v1_4_0
+/busybox-0.60.5-wget-unlink.patch/1.1.2.1/Wed Apr  7 08:13:41 2004//TIPCOP_v1_4_0
+/bzip2-1.0.2-chmod.patch/1.1.2.1/Mon Jun 13 11:13:39 2005//TIPCOP_v1_4_0
+/capi4k-utils-2004-10-06_ppp-2.4.3.patch/1.1.2.1/Wed Nov 24 23:27:29 2004//TIPCOP_v1_4_0
+/ccache-2.3.patch/1.1.2.1/Tue Apr 20 12:42:55 2004//TIPCOP_v1_4_0
+/cnx_pci_yukon.patch/1.1.2.1/Fri Mar 19 07:34:40 2004//TIPCOP_v1_4_0
+/dhcpcd-1.3.22-pl4_corrupt-packet.patch/1.1.2.1/Sat Jul 16 19:02:36 2005//TIPCOP_v1_4_0
+/e2fsprogs-1.35-install.patch/1.1.2.1/Thu Jun 10 09:10:24 2004//TIPCOP_v1_4_0
+/ez-ipupdate.formstring.patch/1.1.2.1/Sun Nov 14 12:51:33 2004//TIPCOP_v1_4_0
+/fcdsl-singlelock.patch/1.1.2.1/Tue Oct 19 08:03:04 2004//TIPCOP_v1_4_0
+/fcdslsl-singlelock.patch/1.1.2.1/Tue Oct 19 08:03:04 2004//TIPCOP_v1_4_0
+/fcdslslusb-singlelock.patch/1.1.2.1/Tue Oct 19 08:03:04 2004//TIPCOP_v1_4_0
+/fcdslx-irqreturn.patch/1.1.2.1/Thu Oct 14 07:17:37 2004//TIPCOP_v1_4_0
+/gcc-2.95.3-alpha.patch/1.1/Tue Feb 10 10:56:41 2004//TIPCOP_v1_4_0
+/glibc-2.3.3-ssp_frandom-2.patch/1.1.2.1/Sat Oct  9 05:58:19 2004//TIPCOP_v1_4_0
+/grub-0.90-append.patch/1.1/Wed Jan  7 23:05:49 2004//TIPCOP_v1_4_0
+/grub-0.90-symlinkmenulst.patch/1.1/Wed Jan  7 23:05:49 2004//TIPCOP_v1_4_0
+/grub-0.91-bootonce.patch/1.1/Wed Jan  7 23:05:49 2004//TIPCOP_v1_4_0
+/grub-0.91-splashimagehelp.patch/1.1/Wed Jan  7 23:05:49 2004//TIPCOP_v1_4_0
+/grub-0.93-configfile.patch/1.1/Wed Jan  7 23:05:49 2004//TIPCOP_v1_4_0
+/grub-0.93-endedit.patch/1.1/Wed Jan  7 23:05:49 2004//TIPCOP_v1_4_0
+/grub-0.93-graphics-bootterm.patch/1.1/Wed Jan  7 23:05:49 2004//TIPCOP_v1_4_0
+/grub-0.93-graphics.patch/1.1.2.2/Fri Jul  9 19:08:47 2004//TIPCOP_v1_4_0
+/grub-0.93-rtl8139.patch/1.1.2.1/Thu Mar  4 11:04:00 2004//TIPCOP_v1_4_0
+/grub-0.93-special-device-names.patch/1.1/Wed Jan  7 23:05:49 2004//TIPCOP_v1_4_0
+/grub-0.94-i2o.patch/1.1.2.1/Mon Jul 19 17:37:39 2004//TIPCOP_v1_4_0
+/gzip-1.3.3-window-size.patch/1.1.2.1/Fri May  6 06:17:16 2005//TIPCOP_v1_4_0
+/gzip-1.3.5-asm-execstack.patch/1.1.2.1/Fri May  6 06:17:16 2005//TIPCOP_v1_4_0
+/gzip-1.3.5-gunzip-dir.patch/1.1.2.1/Fri May  6 06:17:16 2005//TIPCOP_v1_4_0
+/gzip-1.3.5-perm.patch/1.1.2.2/Mon Jul 18 20:40:38 2005//TIPCOP_v1_4_0
+/inetutils-1.4.2-ping-1.patch/1.1.2.1/Mon Apr 19 13:02:41 2004//TIPCOP_v1_4_0
+/ipac-ng-1.31-fetchcounter.patch/1.1.2.2/Sat Jan 14 16:41:15 2006//TIPCOP_v1_4_0
+/ipac-ng-1.31-iptables-1.3.1.patch/1.3.2.2/Sat Jan 14 16:41:15 2006//TIPCOP_v1_4_0
+/iproute2-2.4.7-netlink.patch/1.2/Thu Dec 11 11:25:54 2003//TIPCOP_v1_4_0
+/iproute2-includes.patch/1.4/Mon Feb 23 23:05:42 2004//TIPCOP_v1_4_0
+/iptables-1.2.11.patch/1.1.2.1/Tue Oct 26 20:16:19 2004//TIPCOP_v1_4_0
+/iptables-1.3.4-old-string.patch/1.1.2.1/Sat Jan 14 16:41:15 2006//TIPCOP_v1_4_0
+/isdn4k-utils-v3.2p1-c89.patch/1.1/Thu Dec 11 11:25:54 2003//TIPCOP_v1_4_0
+/isdn4k-utils-v3.2p1-config.patch/1.2/Mon Jan  5 08:40:07 2004//TIPCOP_v1_4_0
+/kudzu-0.99.50-pam.patch/1.1/Tue Dec 16 20:32:10 2003//TIPCOP_v1_4_0
+/kudzu-0.99.50-updfstab.conf.patch/1.1/Sun Jan  4 12:12:39 2004//TIPCOP_v1_4_0
+/libcap-1.10-shared.patch/1.1/Wed Jan 14 13:11:39 2004//TIPCOP_v1_4_0
+/libcap-1.10-syscall.patch/1.1/Wed Jan 14 13:11:39 2004//TIPCOP_v1_4_0
+/libpcap-0.8.3-ppp.patch/1.1.2.1/Mon Jun 21 18:49:26 2004//TIPCOP_v1_4_0
+/libpcap-0.8.3-shared.patch/1.1.2.1/Thu Jun 10 09:18:20 2004//TIPCOP_v1_4_0
+/libpng-1.2.8-link_to_proper_libs-1.patch/1.1.2.1/Sun Feb 27 15:23:07 2005//TIPCOP_v1_4_0
+/libsafe-alpha.diff/1.1.2.1/Tue Jul  6 10:08:04 2004//TIPCOP_v1_4_0
+/libsafe-functioncaching.diff/1.1.2.1/Tue Jul  6 10:08:04 2004//TIPCOP_v1_4_0
+/linux-2.4-seg-4.patch/1.1.2.1/Mon Jan 30 12:51:21 2006//TIPCOP_v1_4_0
+/linux-2.4.23-olitec-isdn.patch/1.1/Thu Dec 11 11:25:54 2003//TIPCOP_v1_4_0
+/linux-2.4.26-proc-stat.patch/1.1.2.2/Thu Jul  1 22:31:09 2004//TIPCOP_v1_4_0
+/linux-2.4.26-scsi.patch/1.1.2.1/Thu Jul  1 15:17:20 2004//TIPCOP_v1_4_0
+/linux-2.4.27-frandom-2.patch/1.1.2.1/Fri Feb 25 07:36:43 2005//TIPCOP_v1_4_0
+/linux-2.4.27-ssp-1.patch/1.1.2.1/Sun May  1 16:54:40 2005//TIPCOP_v1_4_0
+/linux-2.4.29_r8169clone.patch/1.1.2.1/Sat Feb 12 19:59:29 2005//TIPCOP_v1_4_0
+/make_devices.patch/1.1.2.10/Tue Aug 17 15:03:29 2004//TIPCOP_v1_4_0
+/net-tools-1.60-cleanup-list-handling.patch/1.1.2.1/Mon Oct 25 17:40:01 2004//TIPCOP_v1_4_0
+/net-tools-1.60-get_name.patch/1.1.2.1/Mon Oct 25 17:40:02 2004//TIPCOP_v1_4_0
+/newt-0.50.17-colors.patch/1.1/Thu Dec 11 11:25:54 2003//TIPCOP_v1_4_0
+/newt-0.50.17-vaend.patch/1.1/Tue Feb 17 14:59:23 2004//TIPCOP_v1_4_0
+/ntp-4.2.0-linuxcaps.patch/1.1/Thu Dec 18 12:08:28 2003//TIPCOP_v1_4_0
+/openswan-1.0.1-plutoctl.patch/1.1.2.1/Fri Mar 12 13:53:41 2004//TIPCOP_v1_4_0
+/openswan-1.0.6-numif.patch/1.1.2.2/Thu Sep  2 21:59:34 2004//TIPCOP_v1_4_0
+/openswan-1.0.9-restart.patch/1.1.2.1/Tue Jul 26 23:28:12 2005//TIPCOP_v1_4_0
+/patch-o-matic-ng-20040621_03_2.4.29.patch/1.1.2.1/Thu Jan 27 07:59:27 2005//TIPCOP_v1_4_0
+/patch-o-matic-ng-20040621_nf-log_2.4.29.patch/1.1.2.2/Sat Dec 24 18:55:11 2005//TIPCOP_v1_4_0
+/patch-o-matic-ng-20040621_pptp_2.4.29.patch/1.1.2.1/Thu Jan 27 07:59:27 2005//TIPCOP_v1_4_0
+/patch-o-matic-ng-raw_2.4.31.patch/1.1.2.1/Tue Jul 26 06:27:52 2005//TIPCOP_v1_4_0
+/pcre-4.5-CAN-2005-2491.patch/1.1.2.1/Sat Sep 10 17:22:31 2005//TIPCOP_v1_4_0
+/perl-5.8.5-perlio_debug_security.patch/1.1.2.1/Sat Feb  5 13:43:17 2005//TIPCOP_v1_4_0
+/perl-5.8.5-tempfiles.patch/1.1.2.1/Sun Feb 27 15:23:07 2005//TIPCOP_v1_4_0
+/perl.patch/1.1.2.3/Tue Jul 13 12:13:19 2004//TIPCOP_v1_4_0
+/pom-ng_proc-net-conntrack-permissions.patch/1.1.2.1/Sat Jan 14 16:41:15 2006//TIPCOP_v1_4_0
+/ppp-2.4.1-oedod.patch/1.2/Sun Jan 25 20:24:59 2004//TIPCOP_v1_4_0
+/ppp-2.4.2-close.patch/1.1.2.3/Sun Dec  5 18:39:21 2004//TIPCOP_v1_4_0
+/ppp-2.4.2-pppoatm-modprobe.patch/1.3.2.2/Sun Dec  5 18:39:21 2004//TIPCOP_v1_4_0
+/ppp-2.4.2-pppoatm-persist.patch/1.5.2.2/Sun Dec  5 18:39:21 2004//TIPCOP_v1_4_0
+/ppp-2.4.2-pppoatm.patch/1.4.2.3/Sun Dec  5 18:39:21 2004//TIPCOP_v1_4_0
+/ppp-2.4.2-printstats.patch/1.1.2.2/Sun Dec  5 18:39:21 2004//TIPCOP_v1_4_0
+/ppp-2.4.2-signal.patch/1.1.2.2/Sun Dec  5 18:39:21 2004//TIPCOP_v1_4_0
+/ppp_generic-ppp-2.4.3_multilink.patch/1.1.2.1/Mon Jan  3 22:55:53 2005//TIPCOP_v1_4_0
+/speedtouch-1.2-isdn.patch/1.1.2.1/Thu Oct 21 07:29:30 2004//TIPCOP_v1_4_0
+/sysklogd-1.3-31-rh-ksyslog-nul.diff/1.1.2.1/Sun Jun 20 14:57:23 2004//TIPCOP_v1_4_0
+/sysklogd-1.4.1-caen-owl-klogd-drop-root.diff/1.1.2.1/Sun Jun 20 14:57:23 2004//TIPCOP_v1_4_0
+/sysklogd-1.4.1-caen-owl-syslogd-bind.diff/1.1.2.1/Sun Jun 20 14:57:23 2004//TIPCOP_v1_4_0
+/sysklogd-1.4.1-caen-owl-syslogd-drop-root.diff/1.1.2.1/Sun Jun 20 14:57:23 2004//TIPCOP_v1_4_0
+/sysklogd-1.4.1-owl-syslogd-crunch_list.diff/1.1.2.1/Sun Jun 20 14:57:23 2004//TIPCOP_v1_4_0
+/tcpdump-3.8.2-bgp-dos-2.patch/1.1.2.2/Sat Jun 11 06:15:25 2005//TIPCOP_v1_4_0
+/tcpdump-3.8.2-bgp-dos.patch/1.1.2.1/Fri May  6 21:56:58 2005//TIPCOP_v1_4_0
+/tcpdump-3.8.2-isis-dos.patch/1.1.2.1/Fri May  6 21:56:58 2005//TIPCOP_v1_4_0
+/tcpdump-3.8.2-ldp-dos.patch/1.1.2.1/Fri May  6 21:56:58 2005//TIPCOP_v1_4_0
+/tcpdump-3.8.2-rsvp-dos.patch/1.1.2.1/Fri May  6 21:56:58 2005//TIPCOP_v1_4_0
+/util-linux-2.12a-umount_CAN-2005-2876.patch/1.1.2.1/Sat Oct  1 13:44:26 2005//TIPCOP_v1_4_0
+/viscii10-8x16-new.psfu/1.1.2.1/Tue Aug 24 20:10:58 2004//TIPCOP_v1_4_0
+D
diff --git a/src/patches/CVS/Repository b/src/patches/CVS/Repository
new file mode 100644 (file)
index 0000000..7ab5a87
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/patches
diff --git a/src/patches/CVS/Root b/src/patches/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/patches/CVS/Tag b/src/patches/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/patches/CnxADSL-cln-irqreturn.patch b/src/patches/CnxADSL-cln-irqreturn.patch
new file mode 100644 (file)
index 0000000..38660ec
--- /dev/null
@@ -0,0 +1,11 @@
+--- CnxADSL-TgrATM_k2.4.3-6.1.2.007CLN/KernelModule/ChipALCdsl.h.old   Fri Oct  1 06:49:52 2004
++++ CnxADSL-TgrATM_k2.4.3-6.1.2.007CLN/KernelModule/ChipALCdsl.h       Mon Oct  4 23:19:36 2004
+@@ -546,7 +546,7 @@
+     DWORD                     ComChannel      // Communications Channel
+ );
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23)
+ typedef void irqreturn_t;
+ #endif
diff --git a/src/patches/busybox-0.60.5-config.patch b/src/patches/busybox-0.60.5-config.patch
new file mode 100644 (file)
index 0000000..7857c99
--- /dev/null
@@ -0,0 +1,212 @@
+diff -ruN busybox-0.60.5.old/Config.h busybox-0.60.5/Config.h
+--- busybox-0.60.5.old/Config.h        Mon Sep 16 07:30:10 2002
++++ busybox-0.60.5/Config.h    Mon Dec  8 09:57:27 2003
+@@ -6,143 +6,35 @@
+ //   i.e.,  //#define BB_BLAH
+ //
+ //
+-// BusyBox Applications
+-//#define BB_ADJTIMEX
+-//#define BB_AR
+-#define BB_ASH
+-#define BB_BASENAME
+-#define BB_CAT
+-#define BB_CHGRP
+-#define BB_CHMOD
+-#define BB_CHOWN
+-#define BB_CHROOT
+-#define BB_CHVT
+-#define BB_CLEAR
+-//#define BB_CMP
+-#define BB_CP
+-//#define BB_CPIO
+-#define BB_CUT
+-#define BB_DATE
+-//#define BB_DC
+-#define BB_DD
+-//#define BB_DEALLOCVT
++// BusyBox Applications 
++#define BB_ASH 
++#define BB_CAT 
++#define BB_CHROOT 
++#define BB_DD 
+ #define BB_DF
+-#define BB_DIRNAME
+-#define BB_DMESG
+-//#define BB_DOS2UNIX
+-//#define BB_DPKG
+-//#define BB_DPKG_DEB
+-//#define BB_DUTMP
+-#define BB_DU
+-//#define BB_DUMPKMAP
+-#define BB_ECHO
+-#define BB_ENV
+-//#define BB_EXPR
+-//#define BB_FBSET
+-//#define BB_FDFLUSH
+-#define BB_FIND
+-#define BB_FREE
+-//#define BB_FREERAMDISK
+-//#define BB_FSCK_MINIX
+-//#define BB_GETOPT
+-#define BB_GREP
+-#define BB_GUNZIP
+-#define BB_GZIP
+-#define BB_HALT
+-#define BB_HEAD
+-//#define BB_HOSTID
+-//#define BB_HOSTNAME
+-//#define BB_HUSH
+-#define BB_ID
+-//#define BB_IFCONFIG
+-#define BB_INIT
+-//#define BB_INSMOD
+-#define BB_KILL
+-#define BB_KILLALL
+-#define BB_KLOGD
+-//#define BB_LASH
+-//#define BB_LENGTH
+-#define BB_LN
+-//#define BB_LOADACM
+-//#define BB_LOADFONT
+-//#define BB_LOADKMAP
+-#define BB_LOGGER
+-//#define BB_LOGNAME
+-//#define BB_LOSETUP
+-#define BB_LS
+-#define BB_LSMOD
+-//#define BB_MAKEDEVS
+-//#define BB_MD5SUM
+-#define BB_MKDIR
+-//#define BB_MKFIFO
+-//#define BB_MKFS_MINIX
+-#define BB_MKNOD
+-#define BB_MKSWAP
+-//#define BB_MKTEMP
+-#define BB_MODPROBE
+-#define BB_MORE
+-#define BB_MOUNT
+-//#define BB_MSH
+-//#define BB_MT
+-#define BB_MV
+-//#define BB_NC
+-//#define BB_NSLOOKUP
+-#define BB_PIDOF
+-//#define BB_PING
+-//#define BB_PIVOT_ROOT
+-#define BB_POWEROFF
+-//#define BB_PRINTF
+-#define BB_PS
+-#define BB_PWD
+-//#define BB_RDATE
+-//#define BB_READLINK
+-#define BB_REBOOT
+-//#define BB_RENICE
+-#define BB_RESET
+-#define BB_RM
+-#define BB_RMDIR
+-//#define BB_RMMOD
+-//#define BB_ROUTE
+-//#define BB_RPM2CPIO
++#define BB_ECHO 
++#define BB_GUNZIP 
++#define BB_GZIP 
++#define BB_HALT 
++#define BB_IFCONFIG 
++#define BB_INSMOD 
++#define BB_INIT 
++#define BB_LS 
++#define BB_MKSWAP 
++#define BB_MODPROBE 
++#define BB_MOUNT 
++#define BB_REBOOT 
++#define BB_RMMOD 
+ #define BB_SED
+-//#define BB_SETKEYCODES
+-#define BB_SLEEP
+-#define BB_SORT
+-//#define BB_STTY
+-#define BB_SWAPONOFF
+-#define BB_SYNC
++#define BB_SLEEP 
++#define BB_SWAPONOFF 
+ #define BB_SYSLOGD
+-#define BB_TAIL
+-#define BB_TAR
+-//#define BB_TEE
+-//#define BB_TEST
+-//#define BB_TELNET
+-//#define BB_TFTP
+-//#define BB_TIME
+-//#define BB_TOP
+-#define BB_TOUCH
+-//#define BB_TR
+-//#define BB_TRACEROUTE
+-#define BB_TRUE_FALSE
+-#define BB_TTY
+-//#define BB_UNIX2DOS
+-//#define BB_UUENCODE
+-//#define BB_UUDECODE
+-#define BB_UMOUNT
+-#define BB_UNIQ
+-#define BB_UNAME
+-//#define BB_UPDATE
+-#define BB_UPTIME
+-//#define BB_USLEEP
+-//#define BB_VI
+-//#define BB_WATCHDOG
+-#define BB_WC
+-//#define BB_WGET
+-#define BB_WHICH
+-#define BB_WHOAMI
+-#define BB_XARGS
+-#define BB_YES
+-// End of Applications List
++#define BB_TAR 
++#define BB_UMOUNT 
++#define BB_WGET 
++#define BB_PING 
++// End of Applications List 
++
+ //
+ //
+ //
+@@ -209,7 +101,7 @@
+ #define BB_FEATURE_LS_FOLLOWLINKS
+ //
+ // Use color to identify different file types
+-#define BB_FEATURE_LS_COLOR
++
+ //
+ // Disable for a smaller (but less functional) ping
+ #define BB_FEATURE_FANCY_PING
+@@ -333,7 +225,7 @@
+ //#define BB_FEATURE_MINIX2
+ //
+ // Enable ifconfig status reporting output -- this feature adds 7k.
+-//#define BB_FEATURE_IFCONFIG_STATUS
++#define BB_FEATURE_IFCONFIG_STATUS
+ //
+ // Enable ifconfig slip-specific options "keepalive" and "outfill"
+ //#define BB_FEATURE_IFCONFIG_SLIP
+diff -ruN busybox-0.60.5.old/insmod.c busybox-0.60.5/insmod.c
+--- busybox-0.60.5.old/insmod.c        Mon Sep 16 07:30:10 2002
++++ busybox-0.60.5/insmod.c    Mon Dec  8 09:57:27 2003
+@@ -3538,7 +3538,7 @@
+                        * if it is a link... */
+                       if (realpath (module_dir, real_module_dir) == NULL)
+                               strcpy(real_module_dir, module_dir);
+-                      recursive_action(real_module_dir, TRUE, FALSE, FALSE,
++                      recursive_action(real_module_dir, TRUE, TRUE, FALSE,
+                                       check_module_name_match, 0, m_fullName);
+               }
+@@ -3550,7 +3550,7 @@
+                               strcpy(module_dir, _PATH_MODULES);
+                       /* No module found under /lib/modules/`uname -r`, this
+                        * time cast the net a bit wider.  Search /lib/modules/ */
+-                      if (recursive_action(module_dir, TRUE, FALSE, FALSE,
++                      if (recursive_action(module_dir, TRUE, TRUE, FALSE,
+                                               check_module_name_match, 0, m_fullName) == FALSE) 
+                       {
+                               if (m_filename[0] == '\0'
diff --git a/src/patches/busybox-0.60.5-gzip.patch b/src/patches/busybox-0.60.5-gzip.patch
new file mode 100644 (file)
index 0000000..869414b
--- /dev/null
@@ -0,0 +1,171 @@
+--- busybox-0.60.5/insmod.c    2002-09-16 06:30:10.000000000 +0100
++++ busybox-0.60.5.gz/insmod.c 2003-12-29 17:43:56.000000000 +0000
+@@ -3429,6 +3429,12 @@
+               close(fd);
+ }
++void delete_unziped_module(char *name)
++{
++      if (unlink(name) < 0)
++              fprintf(stderr, "Couldnt remove %s", name);
++}
++
+ extern int insmod_main( int argc, char **argv)
+ {
+       int opt;
+@@ -3444,6 +3450,7 @@
+       char m_name[FILENAME_MAX] = "\0";
+       int exit_status = EXIT_FAILURE;
+       int m_has_modinfo;
++    int gunzip = 0;
+ #ifdef BB_FEATURE_INSMOD_VERSION_CHECKING
+       struct utsname uts_info;
+       char m_strversion[STRVERSIONLEN];
+@@ -3498,9 +3505,18 @@
+       tmp = basename(tmp1);
+       len = strlen(tmp);
+-      if (len > 2 && tmp[len - 2] == '.' && tmp[len - 1] == 'o') {
+-              len-=2;
++      if (len > 5 && tmp[len - 5] == '.' && tmp[len - 4] == 'o' && tmp[len - 3] == '.' && tmp[len - 2] == 'g' && tmp[len - 1] == 'z') {
++              len-=5;
+               tmp[len] = '\0';
++              gunzip = 1;
++      }
++      else
++      {
++              if (len > 2 && tmp[len - 2] == '.' && tmp[len - 1] == 'o') {
++                      len-=2;
++                      tmp[len] = '\0';
++                      gunzip = 0;
++              }
+       }
+       /* Make sure there is space for the terminal NULL */
+       len += 1;
+@@ -3524,6 +3540,7 @@
+                       (fp = fopen(argv[optind], "r")) == NULL) {
+               struct utsname myuname;
++AGAIN:
+               /* Hmm.  Could not open it.  First search under /lib/modules/`uname -r`,
+                * but do not error out yet if we fail to find it... */
+               if (uname(&myuname) == 0) {
+@@ -3542,6 +3559,14 @@
+                                       check_module_name_match, 0, m_fullName);
+               }
++              /* If we've not found anything, try the gzipped version */
++              if ((m_filename[0] == '\0' || ((fp = fopen(m_filename, "r")) == NULL)) && !gunzip)
++              {
++                      strcat(m_fullName, ".gz");
++                      gunzip = 1;
++                      goto AGAIN;
++              }
++
+               /* Check if we have found anything yet */
+               if (m_filename[0] == '\0' || ((fp = fopen(m_filename, "r")) == NULL)) 
+               {
+@@ -3565,11 +3590,52 @@
+       } else 
+               safe_strncpy(m_filename, argv[optind], sizeof(m_filename));
++      if (gunzip)
++      {
++              FILE *fp_unziped;
++              int my_len;
++              char m_filename_unziped[FILENAME_MAX + 1] = "\0";       
++              
++              strcpy(m_filename_unziped, m_filename);
++              my_len = strlen(m_filename_unziped);
++              m_filename_unziped[my_len - 3] = '\0';
++              
++              if ((fp_unziped = fopen (m_filename_unziped, "w")) == NULL)
++              {
++                      perror(m_filename_unziped);
++                      return EXIT_FAILURE;
++              }
++              
++              if (unzip(fp, fp_unziped) != 0)
++              {
++                      fclose(fp);
++                      fclose(fp_unziped);
++                      error_msg("unable to gunzip %s", m_filename_unziped);
++                      delete_unziped_module(m_filename_unziped);
++                      return EXIT_FAILURE;
++              }
++              
++              fclose(fp);
++              fclose(fp_unziped);
++ 
++              strcpy(m_filename, m_filename_unziped);
++              
++              if ((fp = fopen (m_filename, "r")) == NULL)
++              {
++                      perror(m_filename);
++                      return EXIT_FAILURE;
++              }
++      }
++
+       printf("Using %s\n", m_filename);
+       if ((f = obj_load(fp, LOADBITS)) == NULL)
+-              perror_msg_and_die("Could not load the module");
+-
++      {
++              if (gunzip)
++                      delete_unziped_module(m_filename);
++              perror_msg_and_die("Could not load the module");
++      }
++      
+       if (get_modinfo_value(f, "kernel_version") == NULL)
+               m_has_modinfo = 0;
+       else
+@@ -3679,8 +3745,6 @@
+       /* Find current size of the module */
+       m_size = obj_load_size(f);
+-
+-
+       m_addr = create_module(m_name, m_size);
+       if (m_addr==-1) switch (errno) {
+       case EEXIST:
+@@ -3723,5 +3787,7 @@
+ out:
+       fclose(fp);
++      if (gunzip)
++              delete_unziped_module(m_filename);
+       return(exit_status);
+ }
+--- busybox-0.60.5/modprobe.c  2003-12-29 17:05:50.000000000 +0000
++++ busybox-0.60.5.gz/modprobe.c       2004-01-01 19:22:44.000000000 +0000
+@@ -105,6 +105,9 @@
+                               else
+                                       mods++;
+                                       
++                              if (( *(col-5) == '.' ) && ( *(col-4) == 'o' ) && ( *(col-3) == '.' ) && ( *(col-2) == 'g' ) && ( *(col-1) == 'z' ))
++                                      ext = 5;
++
+                               if (( *(col-2) == '.' ) && ( *(col-1) == 'o' ))
+                                       ext = 2;
+                               
+@@ -152,6 +155,9 @@
+                       else
+                               deps++;
+                       
++                      if (( *(end-4) == '.' ) && ( *(end-3) == 'o' ) && ( *(end-2) == '.' ) && ( *(end-1) == 'g' ) && ( *end == 'z' ))
++                              ext = 5;
++
+                       if (( *(end-1) == '.' ) && ( *end == 'o' ))
+                               ext = 2;
+@@ -184,6 +190,9 @@
+       int lm = xstrlen ( mod );
+       int extpos = 0;
++      if (( mod [lm-5] == '.' ) && ( mod [lm-4] == 'o' ) && ( mod [lm-3] == '.' ) && ( mod[lm-2] == 'g' ) && ( mod[lm-1] == 'z' ))
++              extpos = 5;
++
+       if (( mod [lm-2] == '.' ) && ( mod [lm-1] == 'o' ))
+               extpos = 2;
diff --git a/src/patches/busybox-0.60.5-insmod_gpl_symbols.patch b/src/patches/busybox-0.60.5-insmod_gpl_symbols.patch
new file mode 100644 (file)
index 0000000..e99410c
--- /dev/null
@@ -0,0 +1,46 @@
+Adds support for GPL symbols (those exported with EXPORT_SYMBOL_GPL instead
+of EXPORT_SYMBOL) to insmod. This is a backport from later busybox versions,
+it corresponds to revision 7301 in the busybox svn repository:
+
+http://www.busybox.net/cgi-bin/viewcvs.cgi/trunk/busybox/modutils/insmod.c?rev=7301&view=markup
+--- busybox-0.60.5/insmod.c    2002-09-16 06:30:10.000000000 +0100
++++ busybox-0.60.5-symbols/insmod.c    2005-06-21 20:58:57.000000000 +0100
+@@ -607,6 +607,8 @@
+ static void arch_create_got (struct obj_file *f);
++static int obj_gpl_license(struct obj_file *f, const char **license);
++
+ #ifdef BB_FEATURE_NEW_MODULE_INTERFACE
+ static int arch_init_module (struct obj_file *f, struct new_module *);
+ #endif
+@@ -1710,12 +1712,29 @@
+       size_t i;
+       int used = 0;
++      int gpl;
++      gpl = obj_gpl_license(f, NULL) == 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;
++              char *name;
++ 
++              /* GPL licensed modules can use symbols exported with
++               * EXPORT_SYMBOL_GPL, so ignore any GPLONLY_ prefix on the
++               * exported names.  Non-GPL modules never see any GPLONLY_
++               * symbols so they cannot fudge it by adding the prefix on
++               * their references.
++               */
++              if (strncmp((char *)s->name, "GPLONLY_", 8) == 0) {
++                      if (gpl)
++                              ((char *)s->name) += 8;
++                      else
++                              continue;
++              }
+               sym = obj_find_symbol(f, (char *) s->name);
+               if (sym && !ELFW(ST_BIND) (sym->info) == STB_LOCAL) {
diff --git a/src/patches/busybox-0.60.5-spider.patch b/src/patches/busybox-0.60.5-spider.patch
new file mode 100644 (file)
index 0000000..f9f4a57
--- /dev/null
@@ -0,0 +1,60 @@
+diff -u busybox-0.60.5.old/usage.h busybox-0.60.5/usage.h
+--- busybox-0.60.5.old/usage.h 2002-09-30 21:59:58.000000000 +0100
++++ busybox-0.60.5/usage.h     2004-01-16 00:42:40.000000000 +0000
+@@ -1901,12 +1901,13 @@
+       "     31      46    1365 /etc/passwd\n" 
+ #define wget_trivial_usage \
+-      "[-c|--continue] [-q|--quiet] [-O|--output-document file]\n\t[--header 'header: value'] [-P DIR] url"
++      "[-c|--continue] [-q|--quiet] [-s|--spider] [-O|--output-document file]\n\t[--header 'header: value'] [-P DIR] url"
+ #define wget_full_usage \
+       "wget retrieves files via HTTP or FTP\n\n" \
+       "Options:\n" \
+       "\t-c\tcontinue retrieval of aborted transfers\n" \
+       "\t-q\tquiet mode - do not print\n" \
++      "\t-s\tspider mode - check file exists\n" \
+       "\t-P\tSet directory prefix to DIR\n" \
+       "\t-O\tsave to filename ('-' for stdout)"
+diff -u busybox-0.60.5.old/wget.c busybox-0.60.5/wget.c
+--- busybox-0.60.5.old/wget.c  2002-04-27 08:40:00.000000000 +0100
++++ busybox-0.60.5/wget.c      2004-01-16 00:47:47.000000000 +0000
+@@ -179,6 +179,7 @@
+       int got_clen = 0;                       /* got content-length: from server      */
+       FILE *output;                           /* socket to web server                         */
+       int quiet_flag = FALSE;         /* Be verry, verry quiet...                     */
++      int spider = FALSE;                     /* Just check file exists (-s)          */
+ #define LONG_HEADER   1
+       struct option long_options[] = {
+@@ -186,16 +187,20 @@
+               { "quiet",              0, NULL, 'q' },
+               { "output-document",    1, NULL, 'O' },
+               { "header",             1, &which_long_opt, LONG_HEADER },
++              { "spider",             0, NULL, 's' },
+               { 0,                    0, 0, 0 }
+       };
+       /*
+        * Crack command line.
+        */
+-      while ((n = getopt_long(argc, argv, "cqO:P:", long_options, &option_index)) != EOF) {
++      while ((n = getopt_long(argc, argv, "cqsO:P:", long_options, &option_index)) != EOF) {
+               switch (n) {
+               case 'c':
+                       ++do_continue;
+                       break;
++              case 's':
++                      spider = TRUE;
++                      break;
+               case 'P':
+                       dir_prefix = optarg;
+                       break;
+@@ -353,6 +358,8 @@
+                                       while (gethdr(buf, sizeof(buf), sfp, &n) != NULL);
+                                       goto read_response;
+                               case 200:
++                                      if (spider)
++                                              exit(EXIT_SUCCESS);
+                                       if (do_continue && output != stdout)
+                                               output = freopen(fname_out, "w", output);
+                                       do_continue = 0;
diff --git a/src/patches/busybox-0.60.5-wget-unlink.patch b/src/patches/busybox-0.60.5-wget-unlink.patch
new file mode 100644 (file)
index 0000000..456ab25
--- /dev/null
@@ -0,0 +1,13 @@
+--- wget.c.old 2004-04-07 09:23:21.000000000 +0100
++++ wget.c     2004-04-07 09:23:33.000000000 +0100
+@@ -74,7 +74,9 @@
+ {
+       if (output != stdout && do_continue==0) {
+               fclose(output);
+-              unlink(fname_out);
++              /* if it's /dev/null, don't unlink it */
++              if (strcmp(fname_out, "/dev/null"))
++                      unlink(fname_out);
+       }
+ }
diff --git a/src/patches/bzip2-1.0.2-chmod.patch b/src/patches/bzip2-1.0.2-chmod.patch
new file mode 100644 (file)
index 0000000..ae3552c
--- /dev/null
@@ -0,0 +1,92 @@
+--- bzip2-1.0.2/bzip2.c.nochmod        2005-05-10 16:19:45.000000000 +0200
++++ bzip2-1.0.2/bzip2.c        2005-05-10 16:22:00.000000000 +0200
+@@ -312,6 +312,7 @@
+ static void    copyFileName ( Char*, Char* );
+ static void*   myMalloc     ( Int32 );
++static int     applySavedFileAttrToOutputFile ( int fd );
+@@ -457,6 +458,10 @@
+    ret = fflush ( zStream );
+    if (ret == EOF) goto errhandler_io;
+    if (zStream != stdout) {
++      int fd = fileno ( zStream );
++      if (fd < 0) goto errhandler_io;
++      ret = applySavedFileAttrToOutputFile ( fd );
++      if (ret != 0) goto errhandler_io;
+       ret = fclose ( zStream );
+       outputHandleJustInCase = NULL;
+       if (ret == EOF) goto errhandler_io;
+@@ -567,6 +572,12 @@
+    closeok:
+    if (ferror(zStream)) goto errhandler_io;
++   if ( stream != stdout) {
++      int fd = fileno ( stream );
++      if (fd < 0) goto errhandler_io;
++      ret = applySavedFileAttrToOutputFile ( fd );
++      if (ret != 0) goto errhandler_io;
++   }
+    ret = fclose ( zStream );
+    if (ret == EOF) goto errhandler_io;
+@@ -1125,7 +1136,7 @@
+ static 
+-void applySavedMetaInfoToOutputFile ( Char *dstName )
++void applySavedTimeInfoToOutputFile ( Char *dstName )
+ {
+ #  if BZ_UNIX
+    IntNative      retVal;
+@@ -1134,16 +1145,26 @@
+    uTimBuf.actime = fileMetaInfo.st_atime;
+    uTimBuf.modtime = fileMetaInfo.st_mtime;
+-   retVal = chmod ( dstName, fileMetaInfo.st_mode );
+-   ERROR_IF_NOT_ZERO ( retVal );
+-
+    retVal = utime ( dstName, &uTimBuf );
+    ERROR_IF_NOT_ZERO ( retVal );
++#  endif
++}
++
++static 
++int applySavedFileAttrToOutputFile ( int fd )
++{
++#  if BZ_UNIX
++   IntNative      retVal;
++
++   retVal = fchmod ( fd, fileMetaInfo.st_mode );
++   if (retVal != 0)
++       return retVal;
+-   retVal = chown ( dstName, fileMetaInfo.st_uid, fileMetaInfo.st_gid );
++   (void) fchown ( fd, fileMetaInfo.st_uid, fileMetaInfo.st_gid );
+    /* chown() will in many cases return with EPERM, which can
+       be safely ignored.
+    */
++   return 0;
+ #  endif
+ }
+@@ -1366,7 +1387,7 @@
+    /*--- If there was an I/O error, we won't get here. ---*/
+    if ( srcMode == SM_F2F ) {
+-      applySavedMetaInfoToOutputFile ( outName );
++      applySavedTimeInfoToOutputFile ( outName );
+       deleteOutputOnInterrupt = False;
+       if ( !keepInputFiles ) {
+          IntNative retVal = remove ( inName );
+@@ -1544,7 +1565,7 @@
+    /*--- If there was an I/O error, we won't get here. ---*/
+    if ( magicNumberOK ) {
+       if ( srcMode == SM_F2F ) {
+-         applySavedMetaInfoToOutputFile ( outName );
++         applySavedTimeInfoToOutputFile ( outName );
+          deleteOutputOnInterrupt = False;
+          if ( !keepInputFiles ) {
+             IntNative retVal = remove ( inName );
diff --git a/src/patches/capi4k-utils-2004-10-06_ppp-2.4.3.patch b/src/patches/capi4k-utils-2004-10-06_ppp-2.4.3.patch
new file mode 100644 (file)
index 0000000..5c0e0a4
--- /dev/null
@@ -0,0 +1,947 @@
+diff -Naur capi4k-utils.old/pppdcapiplugin/Makefile capi4k-utils/pppdcapiplugin/Makefile
+--- capi4k-utils.old/pppdcapiplugin/Makefile   Mon Feb 23 18:30:39 2004
++++ capi4k-utils/pppdcapiplugin/Makefile       Wed Nov 24 22:19:36 2004
+@@ -18,7 +18,7 @@
+ PPPSRCDIRS=/src/isdn/pppd
+ ifeq ($(PPPVERSIONS),)
+-PPPVERSIONS = 2.3.11 2.4.0 2.4.1 2.4.1b1 2.4.1b2 2.4.2b3 2.4.2
++PPPVERSIONS = 2.3.11 2.4.0 2.4.1 2.4.1b1 2.4.1b2 2.4.2b3 2.4.2 2.4.3
+ endif
+ PEERDIR=${DESTDIR}/etc/ppp/peers/isdn
+diff -Naur capi4k-utils.old/pppdcapiplugin/ppp-2.4.3/Makefile capi4k-utils/pppdcapiplugin/ppp-2.4.3/Makefile
+--- capi4k-utils.old/pppdcapiplugin/ppp-2.4.3/Makefile Thu Jan  1 01:00:00 1970
++++ capi4k-utils/pppdcapiplugin/ppp-2.4.3/Makefile     Sun May 18 21:11:16 2003
+@@ -0,0 +1,14 @@
++# Makefile for the capiplugin for pppd(8).
++#
++# Copyright 2000 Carsten Paeth (calle@calle.in-berlin.de)
++# Copyright 2000 AVM GmbH Berlin (info@avm.de)
++#
++#  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.
++
++PLUGINDIR=${DESTDIR}/usr/lib/pppd/$(PPPVERSION)
++
++include $(TOPDIR)/Rules.make
++
+diff -Naur capi4k-utils.old/pppdcapiplugin/ppp-2.4.3/pppd/patchlevel.h capi4k-utils/pppdcapiplugin/ppp-2.4.3/pppd/patchlevel.h
+--- capi4k-utils.old/pppdcapiplugin/ppp-2.4.3/pppd/patchlevel.h        Thu Jan  1 01:00:00 1970
++++ capi4k-utils/pppdcapiplugin/ppp-2.4.3/pppd/patchlevel.h    Sat Nov 13 12:08:02 2004
+@@ -0,0 +1,4 @@
++/* $Id: capi4k-utils-2004-10-06_ppp-2.4.3.patch,v 1.1.2.1 2004/11/24 23:27:29 gespinasse Exp $ */
++
++#define VERSION               "2.4.3"
++#define DATE          "13 November 2004"
+diff -Naur capi4k-utils.old/pppdcapiplugin/ppp-2.4.3/pppd/pppd.h capi4k-utils/pppdcapiplugin/ppp-2.4.3/pppd/pppd.h
+--- capi4k-utils.old/pppdcapiplugin/ppp-2.4.3/pppd/pppd.h      Thu Jan  1 01:00:00 1970
++++ capi4k-utils/pppdcapiplugin/ppp-2.4.3/pppd/pppd.h  Sat Nov 13 12:02:22 2004
+@@ -0,0 +1,905 @@
++/*
++ * pppd.h - PPP daemon global declarations.
++ *
++ * Copyright (c) 1984-2000 Carnegie Mellon University. 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 "Carnegie Mellon University" must not be used to
++ *    endorse or promote products derived from this software without
++ *    prior written permission. For permission or any legal
++ *    details, please contact
++ *      Office of Technology Transfer
++ *      Carnegie Mellon University
++ *      5000 Forbes Avenue
++ *      Pittsburgh, PA  15213-3890
++ *      (412) 268-4387, fax: (412) 268-7395
++ *      tech-transfer@andrew.cmu.edu
++ *
++ * 4. Redistributions of any form whatsoever must retain the following
++ *    acknowledgment:
++ *    "This product includes software developed by Computing Services
++ *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
++ *
++ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
++ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
++ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ *
++ * $Id: capi4k-utils-2004-10-06_ppp-2.4.3.patch,v 1.1.2.1 2004/11/24 23:27:29 gespinasse Exp $
++ */
++
++/*
++ * 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;
++      unsigned 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_A2OR      0x800   /* for o_bool, OR arg to *(u_char *)addr2 */
++#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_A2CLRB    0x10000 /* o_bool, clr val bits in *(u_char *)addr2 */
++#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;
++    unsigned int      pkts_in;
++    unsigned int      pkts_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    devfd;          /* fd of underlying device */
++extern int    fd_ppp;         /* fd for talking PPP */
++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    auth_done[NUM_PPP]; /* Methods actually used for auth */
++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 unsigned       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 int    error_count;    /* # of times error() has been called */
++extern char   ppp_devnam[MAXPATHLEN];
++extern char     remote_number[MAXNAMELEN]; /* Remote telephone number, if avail. */
++extern int      ppp_session_number; /* Session number (eg PPPoE session) */
++extern int    fd_devnull;     /* fd open to /dev/null */
++
++extern int    listen_time;    /* time to listen first (ms) */
++extern bool   doing_multilink;
++extern bool   multilink_master;
++extern bool   bundle_eof;
++extern bool   bundle_terminating;
++
++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 struct notifier *ip_up_notifier; /* IPCP has come up */
++extern struct notifier *ip_down_notifier; /* IPCP has gone down */
++extern struct notifier *auth_up_notifier; /* peer has authenticated */
++extern struct notifier *link_down_notifier; /* link has gone down */
++extern struct notifier *fork_notifier;        /* we are a new child process */
++
++/* 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 */
++extern int    child_wait;     /* # seconds to wait for children at end */
++
++#ifdef MAXOCTETS
++extern unsigned int maxoctets;             /* Maximum octetes per session (in bytes) */
++extern int       maxoctets_dir;      /* Direction :
++                                    0 - in+out (default)
++                                    1 - in 
++                                    2 - out
++                                    3 - max(in,out) */
++extern int       maxoctets_timeout;  /* Timeout for check of octets limit */
++#define PPP_OCTETS_DIRECTION_SUM        0
++#define PPP_OCTETS_DIRECTION_IN         1
++#define PPP_OCTETS_DIRECTION_OUT        2
++#define PPP_OCTETS_DIRECTION_MAXOVERAL  3
++/* same as previos, but little different on RADIUS side */
++#define PPP_OCTETS_DIRECTION_MAXSESSION 4     
++#endif
++
++#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
++
++/* Values for auth_pending, auth_done */
++#define PAP_WITHPEER  0x1
++#define PAP_PEER      0x2
++#define CHAP_WITHPEER 0x4
++#define CHAP_PEER     0x8
++#define EAP_WITHPEER  0x10
++#define EAP_PEER      0x20
++
++/* Values for auth_done only */
++#define CHAP_MD5_WITHPEER     0x40
++#define CHAP_MD5_PEER         0x80
++#define CHAP_MS_SHIFT         8       /* LSB position for MS auths */
++#define CHAP_MS_WITHPEER      0x100
++#define CHAP_MS_PEER          0x200
++#define CHAP_MS2_WITHPEER     0x400
++#define CHAP_MS2_PEER         0x800
++
++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
++#define PHASE_MASTER          12
++
++/*
++ * 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;
++
++/*
++ * 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 *));
++pid_t safe_fork __P((int, int, int)); /* Fork & close stuff in child */
++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 print_link_stats __P((void)); /* Print stats, if available */
++void reset_link_stats __P((int)); /* Reset (init) stats when link goes up */
++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));
++int  ppp_send_config __P((int, int, u_int32_t, int, int));
++int  ppp_recv_config __P((int, int, u_int32_t, int, int));
++void remove_pidfiles __P((void));
++void lock_db __P((void));
++void unlock_db __P((void));
++
++/* 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 */
++void dump_packet __P((const char *, u_char *, int));
++                              /* dump packet to debug log if interesting */
++ssize_t complete_read __P((int, void *, size_t));
++                              /* read a complete buffer */
++
++/* 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 upper_layers_down __P((int));/* take all NCPs down */
++void link_established __P((int)); /* the link is up; authenticate now */
++void start_networks __P((int));   /* start all the network control protos */
++void continue_networks __P((int)); /* start network [ip, etc] 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, 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, 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  get_srp_secret __P((int unit, char *client, char *server, char *secret,
++    int am_server));
++int  auth_ip_addr __P((int, u_int32_t));
++                              /* check if IP address is authorized */
++int  auth_number __P((void)); /* check if remote number 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 */
++#ifdef HAVE_MULTILINK
++void mp_check_options __P((void)); /* Check multilink-related options */
++int  mp_join_bundle __P((void));  /* join our link to an appropriate bundle */
++void mp_exit_bundle __P((void));  /* have disconnected our link from bundle */
++void mp_bundle_terminated __P((void));
++char *epdisc_to_str __P((struct epdisc *)); /* string from endpoint discrim. */
++int  str_to_epdisc __P((struct epdisc *, char *)); /* endpt disc. from str */
++#else
++#define mp_bundle_terminated()        /* nothing */
++#define mp_exit_bundle()      /* nothing */
++#define doing_multilink               0
++#define multilink_master      0
++#endif
++
++/* 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 generic_disestablish_ppp __P((int dev_fd)); /* Restore device setting */
++int  generic_establish_ppp __P((int dev_fd)); /* Make a ppp interface */
++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 destroy_bundle __P((void)); /* Tell driver to destroy 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  netif_get_mtu __P((int));      /* Get 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 setipaddr __P((char *, char **, int)); /* Set local/remote ip addresses */
++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 int (*allowed_address_hook) __P((u_int32_t addr));
++extern void (*ip_up_hook) __P((void));
++extern void (*ip_down_hook) __P((void));
++extern void (*ip_choose_hook) __P((u_int32_t *));
++
++extern int (*chap_check_hook) __P((void));
++extern int (*chap_passwd_hook) __P((char *user, char *passwd));
++
++/* Let a plugin snoop sent and received packets.  Useful for L2TP */
++extern void (*snoop_recv_hook) __P((unsigned char *p, int len));
++extern void (*snoop_send_hook) __P((unsigned char *p, int len));
++
++/*
++ * 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       BCMP(s1, s2, l)         memcmp(s1, s2, l)
++
++#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
++#ifdef MAXOCTETS
++#define EXIT_TRAFFIC_LIMIT    20
++#endif
++#define EXIT_CNID_AUTH_FAILED 21
++
++/*
++ * 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
++
++#ifndef offsetof
++#define offsetof(type, member) ((size_t) &((type *)0)->member)
++#endif
++
++#endif /* __PPP_H__ */
diff --git a/src/patches/ccache-2.3.patch b/src/patches/ccache-2.3.patch
new file mode 100644 (file)
index 0000000..64d3eda
--- /dev/null
@@ -0,0 +1,12 @@
+--- /tmp/ccache.c      2004-04-15 13:49:38.000000000 +0100
++++ ccache.c   2004-04-15 17:47:59.000000000 +0100
+@@ -322,7 +322,9 @@
+               failed();
+       }
+       hash_int(st.st_size);
++#if 0 /* don't hash on the modification time */
+       hash_int(st.st_mtime);
++#endif
+       /* possibly hash the current working directory */
+       if (getenv("CCACHE_HASHDIR")) {
diff --git a/src/patches/cnx_pci_yukon.patch b/src/patches/cnx_pci_yukon.patch
new file mode 100644 (file)
index 0000000..d9fc091
--- /dev/null
@@ -0,0 +1,3043 @@
+diff -Nur cnx_linux_0.2/DownLoadApp/CnxYkF.hex cnx_linux_0.3/DownLoadApp/CnxYkF.hex
+--- cnx_linux_0.2/DownLoadApp/CnxYkF.hex       Thu Jan  1 01:00:00 1970
++++ cnx_linux_0.3/DownLoadApp/CnxYkF.hex       Wed Sep 25 12:33:48 2002
+@@ -0,0 +1,3027 @@
++:020000040001F9\r
++:1004800090009FE590109FE590309FE5010050E1BE\r
++:100490000300000A030051E1042090340420813459\r
++:1004A000FBFFFF3A78109FE50020A0E3010053E135\r
++:1004B00004208334FCFFFF3A220000EB286329204C\r
++:1004C0003230303020436F6E6578616E742053791E\r
++:1004D0007374656D7320496E632E202020202000E8\r
++:1004E000202020202020202020202020202020200C\r
++:1004F00020202020202020202020202020202020FC\r
++:1005000020202000480A0100400A010000040000E9\r
++:100510006804000024000100A44B0100A44B01006A\r
++:10052000684E0100B876010093F021E30EF0A0E1DF\r
++:1005300013F021E30EF0A0E193F021E30EF0A0E12F\r
++:1005400013F021E30EF0A0E110402DE92E1100EB95\r
++:100550000040A0E1DF1000EB020000EB0100A0E38F\r
++:100560001080BDE81080BDE830402DE9F1FFFFEBC1\r
++:100570000400A0E3320A80E2001090E50410C1E319\r
++:10058000001080E5110D00EBCC0B00EB000050E3F8\r
++:100590000100000A260D00EBFDFFFFEA0040A0E38A\r
++:1005A0000C009FE5040190E7000050E30300001AEF\r
++:1005B000060000EA504A0100014084E2F7FFFFEA2A\r
++:1005C00014001FE5040190E7330D00EBF9FFFFEA8B\r
++:1005D0000010A0E3C4009FE5141080E5500200EB7A\r
++:1005E0007B2200EB532300EB3A1F00EB871E00EB4E\r
++:1005F0000B0600EBD30800EB0400A0E3320A80E214\r
++:10060000001090E50810C1E3001080E50400A0E3AD\r
++:10061000320A80E2001090E5041081E3001080E5CA\r
++:10062000310AA0E3001090E5011081E3001080E59D\r
++:10063000C2FFFFEB0000A0E3005090E50108A0E33B\r
++:10064000005090E50609A0E3005090E50000A0E30B\r
++:100650006F1E00EB44009FE50C00D0E5000050E366\r
++:100660001000000A38009FE50000D0E5000050E3CC\r
++:100670000900001A310AA0E3001090E50110C1E35F\r
++:10068000001080E5F02D00EB310AA0E3001090E5AA\r
++:10069000011081E3001080E52A2700EB0F0000EA3B\r
++:1006A000A44B0100404D01007C009FE50000D0E517\r
++:1006B000000050E30900001A310AA0E3001090E5A1\r
++:1006C0000110C1E3001080E5DF2D00EB310AA0E34B\r
++:1006D000001090E5011081E3001080E5192700EB80\r
++:1006E00048001FE50800D0E5000050E31000000AB4\r
++:1006F00038009FE50000D0E5000050E30900001A33\r
++:10070000310AA0E3001090E50110C1E3001080E57C\r
++:10071000CD2D00EB310AA0E3001090E5011081E33C\r
++:10072000001080E5072700EB0F0000EA304D0100C4\r
++:100730003C4D010010001FE50000D0E5000050E333\r
++:100740000900001A310AA0E3001090E50110C1E38E\r
++:10075000001080E5BC2D00EB310AA0E3001090E50D\r
++:10076000011081E3001080E5F62600EBD4001FE5C0\r
++:100770000400D0E5000050E30F00000A34009FE5BC\r
++:100780000000D0E5000050E30900001A310AA0E3A0\r
++:10079000001090E50110C1E3001080E5440300EB78\r
++:1007A000310AA0E3001090E5011081E3001080E51C\r
++:1007B000620100EB0E0000EA344D010098001FE5D5\r
++:1007C0000000D0E5000050E30900001A310AA0E360\r
++:1007D000001090E50110C1E3001080E5340300EB48\r
++:1007E000310AA0E3001090E5011081E3001080E5DC\r
++:1007F000520100EB5C011FE50000D0E5000050E372\r
++:100800000F00000A34009FE50000D0E5000050E32F\r
++:100810000900001A310AA0E3001090E50110C1E3BD\r
++:10082000001080E5B52200EB310AA0E3001090E54E\r
++:10083000011081E3001080E58D2100EB0E0000EA3D\r
++:10084000384D010020011FE50000D0E5000050E315\r
++:100850000900001A310AA0E3001090E50110C1E37D\r
++:10086000001080E5A52200EB310AA0E3001090E51E\r
++:10087000011081E3001080E57D2100EB58011FE5A8\r
++:100880000000D0E5000050E30000001A180000EB63\r
++:100890002AFFFFEBFC011FE5140090E5011080E248\r
++:1008A00008021FE5141080E561FFFFEA1B0B00EB57\r
++:1008B0004B0C00EB3080BDE83080BDE893F021E3C5\r
++:1008C0000EF0A0E113F021E30EF0A0E1320AA0E364\r
++:1008D000240090E5020010E30200000A0100A0E3FA\r
++:1008E0000EF0A0E1010000EA0000A0E30EF0A0E19C\r
++:1008F0000EF0A0E100402DE90EFFFFEB58009FE550\r
++:10090000070300EB010050E31800001AEEFFFFEBB5\r
++:10091000000050E31500001A04D04DE20D30A0E1B4\r
++:1009200038209FE538109FE52C009FE5260300EB5B\r
++:10093000010050E30C00001A28009FE5081090E524\r
++:10094000320AA0E3141080E518009FE5040090E54A\r
++:10095000321AA0E3100081E5030000EADC51010037\r
++:10096000C44B0100C04B0100BC4B010004D08DE220\r
++:10097000F2FEFFEB0080BDE830402DE90050A0E121\r
++:100980000140A0E1EBFEFFEB34001FE5E40200EBC9\r
++:10099000010050E30200000ACBFFFFEB010050E32F\r
++:1009A0000700001A0420A0E10510A0E158001FE58F\r
++:1009B0000030A0E3E40200EB010050E3FFFFFF0A78\r
++:1009C000030000EA320AA0E3144080E5320AA0E303\r
++:1009D000105080E5D9FEFFEB3080BDE83080BDE8E7\r
++:1009E00030402DE90050A0E10140A0E198001FE552\r
++:1009F000CB0200EB010050E30200000AB2FFFFEB64\r
++:100A0000010050E30700001A0420A0E10510A0E156\r
++:100A1000BC001FE50030A0E3CB0200EB010050E377\r
++:100A2000FFFFFF0A030000EA320AA0E3144080E55A\r
++:100A3000320AA0E3105080E53080BDE83080BDE888\r
++:100A40000EF0A0E10EF0A0E130402DE90040A0E161\r
++:100A5000000094E50008A0E12008A0E1410F50E368\r
++:100A60003A00000A0B0000CA010C50E31200000A11\r
++:100A700001CC40E201005CE31600000A01CC40E238\r
++:100A800002005CE31A00000A01CC40E203005CE3D0\r
++:100A90002500000A5A0000EA41CF40E201005CE371\r
++:100AA0003800000A5BCF40E203005CE34300000A29\r
++:100AB0001E0E50E34900000A510000EA080094E5C8\r
++:100AC000FF1000E2040094E5FF0000E2E10200EB09\r
++:100AD0000050A0E14C0000EA080094E5FF1000E29D\r
++:100AE000040094E5FF0000E2F80200EB0050A0E1F2\r
++:100AF000450000EA030094E9FF0000E224209FE59E\r
++:100B0000100300EB0050A0E1000055E30400001AC0\r
++:100B1000000094E5020980E3B8111FE50C1091E58F\r
++:100B200094FFFFEB380000EAC84B0100080094E591\r
++:100B3000FF1000E2040094E5FF0000E208209FE5BA\r
++:100B4000420300EB0050A0E12F0000EA0455010031\r
++:100B5000040094E5FF0000E214201FE53C101FE5AF\r
++:100B60005F0300EB0050A0E1000055E30400001A11\r
++:100B7000000094E5020980E318121FE50C1091E5CE\r
++:100B80007CFFFFEB200000EA28309FE508002DE9FC\r
++:100B9000080094E5FF1000E2040094E5FF0000E285\r
++:100BA00014309FE560201FE56A0300EB04D08DE25E\r
++:100BB0000050A0E1140000EA1C4C0100104C0100A0\r
++:100BC0000050A0E3000094E5020980E30010A0E3D8\r
++:100BD00068FFFFEBC90000EB672600EB0A0000EAA4\r
++:100BE0000050A0E3040094E5000050E30300000A75\r
++:100BF000000094E5020980E30010A0E35DFFFFEB35\r
++:100C0000010000EA0450A0E3FFFFFFEA000055E303\r
++:100C10000600000A000094E50008A0E12008A0E119\r
++:100C2000051880E1CF00A0E3A10C80E251FFFFEBAB\r
++:100C30003080BDE83080BDE80010A0E1320AA0E3BA\r
++:100C4000200090E50C0081E5320AA0E31C0090E54D\r
++:100C5000080081E5320AA0E3180090E5040081E570\r
++:100C6000320AA0E30C0090E5000081E50EF0A0E15F\r
++:100C70000EF0A0E100402DE90000A0E328131FE5DD\r
++:100C80000000C1E50010A0E334031FE50110C0E53A\r
++:100C90000010A0E340031FE50210C0E50800A0E338\r
++:100CA000310A80E2001090E5011C81E3001080E52C\r
++:100CB0000100A0E3DB0B00EB320AA0E3240090E587\r
++:100CC000010010E31500001AFFFEFFEB000050E3E7\r
++:100CD0000900001A80031FE5030200EB000050E347\r
++:100CE0000500001A0C009FE5000090E50FE0A0E170\r
++:100CF00000F0A0E1040000EA0C05010020009FE5DF\r
++:100D0000CCFFFFEB18009FE54EFFFFEB0800A0E3D0\r
++:100D1000310A80E2001090E5011C81E3001080E5BB\r
++:100D2000E2FFFFEA605301000080BDE80080BDE8FB\r
++:100D300093F021E30EF0A0E113F021E30EF0A0E127\r
++:100D400000402DE9FBFDFFEBA4009FE5F40100EB63\r
++:100D5000010050E33B00001A370AA0E3240090E5AD\r
++:100D6000020010E33700001A88009FE52C0090E590\r
++:100D7000011080E27C009FE52C1080E578309FE533\r
++:100D800078209FE578109FE564009FE50E0200EB58\r
++:100D9000010050E32600001A68009FE50000D0E53E\r
++:100DA000010050E30600001A48009FE5000090E5AE\r
++:100DB0000008A0E12008A0E191CC40E240005CE303\r
++:100DC0000A00000A40009FE50000D0E5010050E362\r
++:100DD0000E00001A1C009FE5000090E50008A0E14D\r
++:100DE0002008A0E191CC40E241005CE30700001A3A\r
++:100DF0000E0000EA70530100CC4B0100004C0100D2\r
++:100E0000D04B0100CC4B01006C4C0100AC4C0100FC\r
++:100E100020001FE5041090E5370AA0E3141080E5D8\r
++:100E200030001FE5001090E5370AA0E3101080E5C0\r
++:100E3000040000EA44001FE5180090E5011080E27C\r
++:100E400050001FE5181080E5BCFDFFEB0080BDE8F9\r
++:100E500030402DE90050A0E10140A0E1B5FDFFEBDD\r
++:100E600070001FE5300090E5011080E27C001FE576\r
++:100E7000301080E50420A0E10510A0E190001FE5FE\r
++:100E80000030A0E3B00100EB010050E30400000AD1\r
++:100E9000A0001FE5140090E5011080E2AC001FE502\r
++:100EA000141080E5A5FDFFEB3080BDE830402DE952\r
++:100EB0000050A0E10140A0E1C8001FE5300090E52E\r
++:100EC000011080E2D4001FE5301080E50420A0E18D\r
++:100ED0000510A0E1E8001FE50030A0E39A0100EB57\r
++:100EE000010050E30400000AF8001FE5140090E53B\r
++:100EF000011080E204011FE5141080E53080BDE898\r
++:100F000000402DE90110A0E318011FE51C10C0E509\r
++:100F10000010A0E3E100A0E3910C80E2CBFFFFEB27\r
++:100F20000080BDE80010A0E338011FE50C1080E54B\r
++:100F30000010A0E344011FE5101080E50010A0E3BD\r
++:100F400050011FE5141080E50010A0E35C011FE5CF\r
++:100F5000181080E50010A0E368011FE5201080E56F\r
++:100F60000010A0E374011FE5241080E50010A0E349\r
++:100F700080011FE5281080E50010A0E38C011FE52B\r
++:100F80002C1080E50010A0E398011FE5301080E5EB\r
++:100F90000010A0E3A4011FE51C10C0E50010A0E3B1\r
++:100FA000B4011FE50010C0E50010A0E3C0011FE57B\r
++:100FB0000110C0E50010A0E3CC011FE50210C0E560\r
++:100FC0000EF0A0E110402DE90040A0E359FDFFEB39\r
++:100FD000E0011FE51C00D0E5010050E32300001AEA\r
++:100FE000370AA0E3240090E5010010E31F00001A77\r
++:100FF00000021FE5240090E5010080E20C121FE5CD\r
++:10100000240081E514021FE50C0090E5010080E258\r
++:1010100020121FE50C0081E528021FE50C0090E579\r
++:101020001F0000E234121FE50C0081E5370AA0E33F\r
++:10103000201090E540009FE50C1080E5370AA0E302\r
++:101040001C1090E530009FE5081080E5370AA0E30A\r
++:10105000180090E520109FE5040081E5370AA0E321\r
++:101060000C1090E510009FE5001080E50140A0E322\r
++:1010700032FDFFEB0400A0E11080BDE8F454010054\r
++:101080001080BDE810402DE904D04DE29C021FE520\r
++:10109000200090E5011080E2A8021FE5201080E505\r
++:1010A000B0021FE5100090E5B8121FE50C1091E5A5\r
++:1010B000010050E10600001AC8021FE5280090E573\r
++:1010C000011080E2D4021FE5281080E504D08DE2F3\r
++:1010D0001080BDE860001FE5000090E50008A0E179\r
++:1010E0002008A0E1050D50E37400000A120000CAB8\r
++:1010F0004A0F50E3B300000A080000CA01CC40E2E6\r
++:1011000003005CE31C00000A410F50E32500000AC5\r
++:1011100041CF40E201005CE33300000AD20000EA64\r
++:101120004ACF40E201005CE3B100000A4ACF40E24E\r
++:1011300002005CE3BD00000ACB0000EA160E50E39B\r
++:101140004C00000A060000CA05CD40E201005CE345\r
++:101150006B00000A05CD40E202005CE37900000A62\r
++:10116000C10000EA5BCF40E203005CE34C00000AF0\r
++:101170001E0E50E38800000ABB0000EA08011FE5CC\r
++:10118000080090E5FF1000E214011FE5040090E55F\r
++:10119000FF0000E208209FE5AC0100EB0040A0E169\r
++:1011A000B30000EA1455010034011FE5040090E586\r
++:1011B000FF0000E218201FE528109FE5C80100EBA2\r
++:1011C0000040A0E1000054E30500001A58011FE5AB\r
++:1011D000000090E5020980E3E8131FE5081091E59F\r
++:1011E0001AFFFFEBA20000EAD44B01007C309FE520\r
++:1011F00008002DE980011FE5080090E5FF1000E2DE\r
++:101200008C011FE5040090E5FF0000E260309FE5DF\r
++:1012100074201FE5CF0100EB04D08DE20040A0E177\r
++:10122000000054E31000001AB4011FE5040090E52B\r
++:10123000FF0000E298201FE558101FE5A80100EB11\r
++:101240000040A0E1000054E30700001AD8011FE5A8\r
++:10125000041090E564041FE5080090E5011880E1A2\r
++:101260000500A0E3910C80E2F8FEFFEB800000EAAD\r
++:10127000204C0100144C010004021FE5081090E509\r
++:101280000C021FE5040090E5CF0300EB0040A0E155\r
++:10129000000054E30100001AC20200EB940500EBC9\r
++:1012A000730000EA30021FE5081090E538021FE5E0\r
++:1012B000040090E5BA0400EB0040A0E16C0000EAF5\r
++:1012C0004C021FE5081090E554021FE5040090E56C\r
++:1012D000E0241FE50C2092E5250300EB0040A0E18F\r
++:1012E000000054E30500000A74021FE5081090E5B1\r
++:1012F000850DA0E3020980E2D4FEFFEB0040A0E3ED\r
++:101300005B0000EA90021FE5081090E598021FE5D7\r
++:10131000040090E524251FE50C2092E5A30500EBD1\r
++:101320000040A0E1000054E30500000AB8021FE5F8\r
++:10133000081090E54100A0E3A10C80E2C3FEFFEBA2\r
++:101340000040A0E34A0000EAD4021FE5040090E553\r
++:10135000000050E30400000A010050E30500000A09\r
++:10136000020050E30600000A0A0000EAAC0500EBA8\r
++:101370000040A0E1070000EAC10200EB0040A0E14C\r
++:10138000040000EABE0200EB0040A0E1A40500EB6F\r
++:101390000040A0E1FFFFFFEA350000EA0040A0E3C3\r
++:1013A0002C031FE5040090E5000050E30400000A50\r
++:1013B0003C031FE5000090E5020980E30010A0E374\r
++:1013C000A2FEFFEB2A0000EA54031FE50C3090E573\r
++:1013D0005C031FE5080090E5FF2000E268031FE5BD\r
++:1013E000041090E50100A0E3E30600EB0040A0E15B\r
++:1013F0001F0000EA80031FE50D20A0E10130A0E3FB\r
++:10140000041090E50100A0E3700700EB0040A0E1AC\r
++:10141000000054E30400001AA4031FE5000090E557\r
++:10142000020980E300109DE588FEFFEB100000EA52\r
++:10143000BC031FE50D20A0E10030A0E3041090E5FF\r
++:101440000100A0E3610700EB0040A0E1000054E3CD\r
++:101450000400001AE0031FE5000090E5020980E3A4\r
++:1014600000109DE579FEFFEB010000EA0440A0E3D7\r
++:10147000FFFFFFEA000054E30700000A08041FE52D\r
++:10148000000090E50008A0E12008A0E1041880E138\r
++:10149000CF00A0E3A10C80E26CFEFFEBAC061FE5E1\r
++:1014A0000C1090E5B4061FE5101080E504D08DE225\r
++:1014B0001080BDE800402DE9C1FEFFEB010050E3C4\r
++:1014C0000300001A0110A0E308009FE50010C0E52A\r
++:1014D000EBFEFFEB0080BDE8A84B010093F021E399\r
++:1014E0000EF0A0E113F021E30EF0A0E110402DE991\r
++:1014F0000040A0E10FFCFFEB0200D4E5000050E348\r
++:101500000300000A0DFCFFEB0100A0E31080BDE822\r
++:10151000020000EA09FCFFEB0000A0E31080BDE838\r
++:101520001080BDE80010A0E10200D1E5000050E30A\r
++:101530000200000A0100A0E30EF0A0E1010000EAB1\r
++:101540000000A0E30EF0A0E10EF0A0E130402DE994\r
++:1015500000C0A0E10150A0E10240A0E103E0A0E151\r
++:101560000200DCE5200050E3140000AA0100DCE5E5\r
++:10157000010080E20120DCE50100CCE5820082E090\r
++:1015800000018CE0041080E208E081E5044081E580\r
++:10159000005081E50100DCE5200050E3010000BAC5\r
++:1015A0000000A0E30100CCE50200DCE5010080E2E0\r
++:1015B0000200CCE50100A0E33080BDE8010000EAB4\r
++:1015C0000000A0E33080BDE83080BDE830402DE968\r
++:1015D00000C0A0E10150A0E10240A0E103E0A0E1D1\r
++:1015E0000200DCE5000050E3170000DA0000DCE553\r
++:1015F000010080E20020DCE50000CCE5820082E012\r
++:1016000000018CE0041080E2080091E500008EE506\r
++:10161000040091E5000084E5000091E5000085E507\r
++:101620000000DCE5200050E3010000BA0000A0E368\r
++:101630000000CCE50200DCE5010040E20200CCE560\r
++:101640000100A0E33080BDE8010000EA0000A0E353\r
++:101650003080BDE83080BDE80020A0E10130A0E18D\r
++:101660000C0052E3010000BA0500A0E30EF0A0E177\r
++:10167000000053E30900000A830FA0E3030880E29F\r
++:1016800014109FE582C0A0E1BCC091E1001090E57C\r
++:1016900001108CE1001080E5090000EA204B0100F8\r
++:1016A000830FA0E3030880E214101FE582C0A0E1CD\r
++:1016B000BC1091E101C0E0E1001090E501100CE0E8\r
++:1016C000001080E50000A0E30EF0A0E10EF0A0E124\r
++:1016D0000020A0E10130A0E10E0052E3010000BAB9\r
++:1016E0000500A0E30EF0A0E1000053E30900000AAA\r
++:1016F000210EA0E3030880E214109FE582C0A0E160\r
++:10170000BCC091E1001090E501108CE1001080E573\r
++:10171000090000EA504B0100210EA0E3030880E21B\r
++:1017200014101FE582C0A0E1BC1091E101C0E0E10E\r
++:10173000001090E501100CE0001080E50000A0E32F\r
++:101740000EF0A0E10EF0A0E1F0412DE900E0A0E1F3\r
++:101750000130A0E102C0A0E100005EE30400000A45\r
++:1017600001005EE30800000A02005EE30B00000ACD\r
++:101770000F0000EA08009FE5003080E504209FE5A7\r
++:101780000D0000EA044C01000455010010001FE5A3\r
++:10179000043080E500209FE5070000EA14550100B1\r
++:1017A00024001FE5083080E500209FE5020000EAE4\r
++:1017B000245501000500A0E3F081BDE80010A0E37E\r
++:1017C0000140A0E30E0051E3040000BA0C0000EA5F\r
++:1017D000010081E20018A0E12118A0E1F8FFFFEA72\r
++:1017E000040013E10200000A0100A0E30100C2E7C7\r
++:1017F000010000EA0000A0E30100C2E78440A0E18C\r
++:10180000F2FFFFEA88001FE5008090E590001FE5E9\r
++:10181000040090E5007008E09C001FE5000090E5E2\r
++:10182000A4801FE5088098E5086000E0B0001FE58F\r
++:10183000080090E5005000E0060087E1050080E127\r
++:1018400000008CE50000A0E3F081BDE8F081BDE878\r
++:1018500010402DE90030A0E10140A0E102E0A0E14C\r
++:101860000C0053E3010000BA0500A0E31080BDE8BE\r
++:101870000300DEE7000050E31600000A000054E316\r
++:101880000900000A810FA0E3030880E214109FE51D\r
++:1018900083C0A0E1BC1091E1002090E5021081E13D\r
++:1018A000001080E5090000EA384B0100810FA0E339\r
++:1018B000030880E214101FE583C0A0E1BC1091E191\r
++:1018C0000110E0E1002090E5021001E0001080E549\r
++:1018D0000000A0E31080BDE80C00A0E31080BDE88C\r
++:1018E0001080BDE810402DE90030A0E101E0A0E14A\r
++:1018F0000240A0E10E0053E3010000BA0500A0E39E\r
++:101900001080BDE80300D4E7000050E30E00000A99\r
++:1019100020009FE583C0A0E1BC0090E10318A0E394\r
++:10192000001291E5010010E10300000A0100A0E3AC\r
++:101930000000CEE5020000EA6C4B01000000A0E3CD\r
++:101940000000CEE50000A0E31080BDE80C00A0E39D\r
++:101950001080BDE81080BDE8F0402DE900E0A0E176\r
++:101960000160A0E10250A0E10340A0E114709DE5F8\r
++:101970000E005EE3010000BA0500A0E3F080BDE8C0\r
++:101980000E00D5E7000050E34800000A000056E3CF\r
++:101990000400000A010056E32400000A020056E396\r
++:1019A0002900000A3C0000EA850FA0E3030880E25A\r
++:1019B00074109FE58EC0A0E1BC1091E10110E0E140\r
++:1019C000002090E5021001E0001080E558009FE53E\r
++:1019D0008EC0A0E1BC0090E10010E0E1000094E5C1\r
++:1019E000000001E0000084E53C009FE58EC0A0E11E\r
++:1019F000BC0090E10010E0E1000097E5000001E08C\r
++:101A0000000087E50308A0E3140290E5000050E31E\r
++:101A10000400001A0400A0E3310A80E2001090E5FF\r
++:101A20000119C1E3001080E51E0000EA884B0100A7\r
++:101A30000C001FE58EC0A0E1BC0090E1001094E511\r
++:101A4000010080E1000084E5160000EA28001FE59F\r
++:101A50008EC0A0E1BC0090E1001097E5010080E19C\r
++:101A6000000087E5850FA0E3030880E248101FE52A\r
++:101A70008EC0A0E1BC1091E1002090E5021081E150\r
++:101A8000001080E50400A0E3310A80E2001090E538\r
++:101A9000011981E3001080E5020000EA0600A0E3DE\r
++:101AA000F080BDE8FFFFFFEA0000A0E3F080BDE8A2\r
++:101AB0000C00A0E3F080BDE8F080BDE8F0412DE926\r
++:101AC0000308A0E3001290E54C031FE5241080E515\r
++:101AD00054031FE5240090E55C131FE5281091E5F1\r
++:101AE000017020E068031FE50C0090E5000017E19D\r
++:101AF0001900000A78031FE50C0090E5008007E05C\r
++:101B00000050A0E30140A0E30E0055E3030000BA3B\r
++:101B1000110000EA010085E2FF5000E2F9FFFFEA50\r
++:101B2000040018E10A00000AAC031FE5240090E558\r
++:101B3000040010E10100000A0160A0E3000000EAD7\r
++:101B40000060A0E3051886E10500A0E3910C80E2A7\r
++:101B500088FBFFEB8440A0E1EDFFFFEAE0031FE517\r
++:101B6000100090E5000017E11900000AF0031FE5DE\r
++:101B7000100090E5008007E00050A0E30140A0E3E2\r
++:101B80000E0055E3030000BA110000EA010085E2EF\r
++:101B9000FF5000E2F9FFFFEA040018E10A00000A22\r
++:101BA00024041FE5240090E5040010E10100000A70\r
++:101BB0000160A0E3000000EA0060A0E3051886E1F0\r
++:101BC0000500A0E3910C80E2A0FCFFEB8440A0E1C3\r
++:101BD000EDFFFFEA58041FE5241090E560041FE5BF\r
++:101BE000281080E5F081BDE8F0402DE970041FE584\r
++:101BF000181090E50308A0E3180290E5000011E139\r
++:101C00001F00000A88041FE5181090E50308A0E3F0\r
++:101C1000180290E5007001E00050A0E30140A0E34D\r
++:101C20000E0055E3030000BA110000EA010085E24E\r
++:101C3000FF5000E2F9FFFFEA040017E10A00000A82\r
++:101C40000308A0E3000290E5000014E10100000A8F\r
++:101C50000160A0E3000000EA0060A0E3051886E14F\r
++:101C60000500A0E3910C80E25CFBFFEB8440A0E167\r
++:101C7000EDFFFFEAF8041FE5180090E50318A0E364\r
++:101C8000180281E508051FE51C0090E50318A0E394\r
++:101C9000181291E5010010E11F00000A20051FE560\r
++:101CA0001C1090E50308A0E3180290E5007001E025\r
++:101CB0000050A0E30140A0E30E0055E3030000BA8A\r
++:101CC000110000EA010085E2FF5000E2F9FFFFEA9F\r
++:101CD000040017E10A00000A0308A0E3000290E5EF\r
++:101CE000000014E10100000A0160A0E3000000EA26\r
++:101CF0000060A0E3051886E10500A0E3910C80E2F6\r
++:101D000069FCFFEB8440A0E1EDFFFFEA90051FE5D1\r
++:101D10001C1090E50308A0E3181280E55D2800EB95\r
++:101D2000F080BDE893F021E30EF0A0E113F021E391\r
++:101D30000EF0A0E10020A0E310109FE53820C1E5DF\r
++:101D40000000A0E3020050E3040000BA140000EA1F\r
++:101D5000304C0100011080E2FF0001E2F8FFFFEAD1\r
++:101D60000020A0E328109FE50020C1E70120A0E3A8\r
++:101D700020109FE50020C1E70120A0E318109FE597\r
++:101D80000020C1E70020A0E310109FE50020C1E77C\r
++:101D9000EFFFFFEA784C01007C4C0100804C010011\r
++:101DA000844C01000EF0A0E100402DE90110A0E3F9\r
++:101DB00068001FE54410C0E5DEF9FFEB0000A0E37A\r
++:101DC00078101FE53C00C1E5D9FFFFEB0110A0E34F\r
++:101DD00088001FE55810C0E50308A0E3000090E567\r
++:101DE000C000C0E3050080E30318A0E3000081E524\r
++:101DF000310AA0E3001090E5401081E3001080E577\r
++:101E00000800A0E3310A80E2001090E5021B81E3A4\r
++:101E1000001080E5C9F9FFEB0000A0E30080BDE8F9\r
++:101E20000080BDE80000A0E3E0101FE54400C1E52C\r
++:101E30000010A0E3EC001FE55810C0E50000A0E38F\r
++:101E4000F8101FE5680081E50000A0E32C109FE575\r
++:101E50000000C1E50010A0E320009FE50110C0E5EF\r
++:101E60000010A0E314009FE50210C0E5320AA0E3D1\r
++:101E7000001090E5021CC1E3001080E50EF0A0E127\r
++:101E80003455010010402DE9AAF9FFEB0110A0E341\r
++:101E900048011FE53C10C0E50100A0E354111FE517\r
++:101EA0005800C1E5360AA0E3000090E5030CC0E34A\r
++:101EB000FD00C0E3361AA0E3000081E59CFFFFEBC4\r
++:101EC00048001FE596FDFFEB000050E30800000A04\r
++:101ED0000CD04DE20D30A0E104208DE208108DE21F\r
++:101EE00068001FE5B8FDFFEB0040A0E10CD08DE2DB\r
++:101EF000F2FFFFEA91F9FFEB0000A0E31080BDE8DC\r
++:101F00001080BDE800402DE904D04DE20D30A0E185\r
++:101F100050209FE550109FE5A0001FE5AAFDFFEBB4\r
++:101F2000010050E30400000AE0011FE5680090E5AD\r
++:101F3000011080E2EC011FE5681080E5F4011FE567\r
++:101F4000640090E5FF1000E200021FE55C1080E5F0\r
++:101F500008021FE5601090E510009FE5101080E575\r
++:101F600004D08DE20080BDE8944C0100904C01004B\r
++:101F7000D0590100F0402DE90060A0E10150A0E13E\r
++:101F80000240A0E10070A0E36AF9FFEB0010A0E3BB\r
++:101F900048021FE53C10C0E50430A0E10520A0E1A7\r
++:101FA0000610A0E12C011FE567FDFFEB010050E3E7\r
++:101FB0000000000A0C70A0E3360AA0E3000090E5E0\r
++:101FC000010010E32200001A360AA0E3000090E5A9\r
++:101FD000020810E30000001AFAFFFFEA360AA0E345\r
++:101FE000000090E5040010E30500000A360AA0E3B3\r
++:101FF000000090E5FF0FC0E3041080E3360AA0E381\r
++:10200000001080E5360AA0E3000090E5080010E328\r
++:102010000500000A360AA0E3000090E5FF0FC0E3C8\r
++:10202000081080E3360AA0E3001080E50110A0E369\r
++:10203000E8021FE55810C0E53DFFFFEB360AA0E3BC\r
++:10204000000090E5FF0FC0E3011080E3360AA0E333\r
++:10205000001080E50C031FE55800D0E5010050E3B7\r
++:102060004E00001AEC011FE52DFDFFEB010050E3CF\r
++:102070004A00001AA2FFFFEB0310A0E334031FE5A0\r
++:102080005810C0E5F4121FE540031FE53800D0E505\r
++:102090000000D1E7010050E34000001A0120A0E356\r
++:1020A00014031FE55C131FE53810D1E50120C0E7DC\r
++:1020B00068031FE55C0090E5010050E30500003A6D\r
++:1020C0000110A0E330031FE580231FE53820D2E58F\r
++:1020D0000210C0E70C0000EA90031FE55C1090E5D9\r
++:1020E0004C031FE59C231FE53820D2E50210C0E712\r
++:1020F000A8031FE55C0090E5011060E264231FE582\r
++:10210000B8031FE53800D0E50010C2E778131FE5DB\r
++:10211000C8031FE53800D0E50000D1E7800160E08A\r
++:102120008001A0E1BC111FE5B601C1E1E4031FE598\r
++:102130003800D0E5000050E30200000A010050E33F\r
++:102140000700000A0D0000EA0010A0E3E4011FE50B\r
++:10215000B411C0E10010A0E30100A0E3E91D00EB11\r
++:10216000070000EA3810A0E300021FE5B411C0E147\r
++:102170000010A0E30100A0E3E21D00EB000000EA74\r
++:10218000FFFFFFEA1C021FE5101090E524021FE587\r
++:10219000B601D0E1001081E030021FE5101080E5AB\r
++:1021A000E6F8FFEB0700A0E1F080BDE8F080BDE8B5\r
++:1021B0000010A0E1FF0001E20130A0E32C241FE5A4\r
++:1021C0000030C2E70EF0A0E10EF0A0E170402DE972\r
++:1021D0000040A0E10160A0E10550A0E3D5F8FFEBCD\r
++:1021E000000054E30400000A010054E30300000A65\r
++:1021F000020054E30200000A010000EA220000EAA3\r
++:10220000210000EA0010A0E3360AA0E3041080E5F4\r
++:102210000109A0E3361AA0E3080081E50E00A0E35F\r
++:10222000361AA0E30C0081E5360AA0E3000090E531\r
++:10223000FF0FC0E3300080E3361AA0E3000081E521\r
++:10224000360AA0E3000090E5FF0FC0E30F1D80E316\r
++:10225000360AA0E3001080E5360AA0E3000090E50E\r
++:10226000FF0FC0E30F0B80E3361AA0E3000081E507\r
++:102270000800A0E3310A80E2001090E5021A81E331\r
++:10228000001080E50050A0E3FFFFFFEAABF8FFEB92\r
++:102290000500A0E17080BDE87080BDE870402DE9C8\r
++:1022A00058051FE55800D0E5030050E3A600001ACA\r
++:1022B00020051FE56C151FE53810D1E50100D0E7BA\r
++:1022C000010050E35200001A3C151FE584051FE58C\r
++:1022D0003800D0E50000D1E7010050E34C00001ABF\r
++:1022E0000010A0E358051FE5A0251FE53820D2E522\r
++:1022F0000210C0E70020A0E368151FE5B4051FE544\r
++:102300003800D0E50020C1E7C0051FE53800D0E562\r
++:10231000000050E30200000A010050E30700000A39\r
++:102320000D0000EA360AA0E3000090E5FF0FC0E3CD\r
++:10233000041080E3360AA0E3001080E5060000EAFE\r
++:10234000360AA0E3000090E5FF0FC0E3081080E329\r
++:10235000360AA0E3001080E5FFFFFFEAC8151FE57D\r
++:1023600018061FE53800D0E50000D1E724161FE568\r
++:102370005C1091E5010050E10800008AE8151FE5B6\r
++:1023800038061FE53800D0E50000D1E744161FE508\r
++:102390005C1091E5001041E050061FE55C1080E5FF\r
++:1023A00058061FE53800D0E5010080E264161FE5FD\r
++:1023B0003800C1E56C061FE53800D0E5010000E2F9\r
++:1023C00078161FE53800C1E580061FE55C0090E542\r
++:1023D000000050E30E00001A90061FE5641090E51F\r
++:1023E000450DA0E3020980E2AFFAFFEB74051FE59B\r
++:1023F0004BFCFFEB010050E30100001AC0FEFFEBB5\r
++:10240000030000EA0110A0E3C0061FE55810C0E574\r
++:102410007080BDE884061FE5D0161FE53810D1E5B1\r
++:102420000100D0E7010050E34700001AA0061FE5B5\r
++:10243000E8161FE53810D1E50100D0E7000050E3B1\r
++:102440004100001AFC061FE55C0090E5010050E326\r
++:102450000500003A0110A0E3C4061FE514271FE59C\r
++:102460003820D2E50210C0E70C0000EA24071FE57F\r
++:102470005C2090E5E0161FE530071FE53800D0E549\r
++:102480000020C1E73C071FE55C1090E5012061E2F8\r
++:10249000F8161FE54C071FE53800D0E50020C1E71E\r
++:1024A0000C171FE55C071FE53800D0E50000D1E7F9\r
++:1024B000800160E08001A0E150151FE5B601C1E197\r
++:1024C00078071FE53800D0E5000050E30200000A5D\r
++:1024D000010050E30A00000A130000EA0110A0E323\r
++:1024E00054071FE50010C0E50000A0E384151FE5B8\r
++:1024F000B401C1E10010A0E30100A0E3011D00EB65\r
++:102500000A0000EA0100A0E37C171FE50100C1E515\r
++:102510003810A0E3AC051FE5B411C0E10010A0E342\r
++:102520000100A0E3F71C00EB000000EAFFFFFFEA58\r
++:10253000C8051FE5101090E5D0051FE5B601D0E1F4\r
++:10254000001081E0DC051FE5101080E57080BDE81B\r
++:1025500093F021E30EF0A0E113F021E30EF0A0E1EF\r
++:102560000000A0E3020050E3030000BA0B0000EA01\r
++:10257000011080E2FF0001E2F9FFFFEA0020A0E382\r
++:1025800010109FE50020C1E70120A0E308109FE59F\r
++:102590000020C1E7F5FFFFEAB44C0100B84C010090\r
++:1025A0000EF0A0E10020A0E10130A0E10210A0E3C4\r
++:1025B00034009FE5441080E52C009FE5440090E541\r
++:1025C00024109FE5400081E5000052E30700000A67\r
++:1025D0000100A0E310109FE53800C1E50010A0E362\r
++:1025E00004009FE53C10C0E5060000EA9C4C010099\r
++:1025F0000000A0E310101FE53800C1E50010A0E3C3\r
++:102600001C001FE53C10C0E50000A0E30EF0A0E1B7\r
++:102610000EF0A0E130001FE53800D0E5010050E3E6\r
++:102620000900001A0010A0E344001FE53C10C0E5BB\r
++:102630004C001FE5440090E554101FE5400081E583\r
++:102640000000A0E360101FE5480081E50EF0A0E166\r
++:1026500000402DE90030A0E3360AA0E3180090E521\r
++:10266000700000E22002A0E1040050E300F18F902E\r
++:10267000460000EA030000EA230000EA230000EA23\r
++:10268000230000EA230000EA360AA0E3000090E5F8\r
++:10269000020010E31B00001ADDFFFFEBAFFFFFEBB2\r
++:1026A000360AA0E3000090E5100010E30500001AD0\r
++:1026B000360AA0E3000090E5FF0FC0E3101080E3AE\r
++:1026C000360AA0E3001080E5360AA0E3000090E59A\r
++:1026D000200010E30500001A360AA0E3000090E590\r
++:1026E000FF0FC0E3200080E3361AA0E3000081E57D\r
++:1026F000360AA0E3000090E5FF0FC0E3020080E38C\r
++:10270000361AA0E3000081E5210000EA200000EA7B\r
++:102710001F0000EA1E0000EA34011FE53800D0E582\r
++:10272000010050E30600001A0010A0E348011FE575\r
++:102730003C10C0E550011FE5441090E558011FE52D\r
++:10274000401080E585FFFFEB360AA0E3000090E52E\r
++:10275000100010E30000001A103083E3360AA0E3F3\r
++:10276000000090E5200010E30000001A203083E311\r
++:10277000013983E3360AA0E3000090E5FF0FC0E3D0\r
++:10278000031080E1360AA0E3001080E5000000EAB3\r
++:10279000FFFFFFEA0080BDE800402DE904D04DE2D4\r
++:1027A0000D30A0E140209FE540109FE540009FE5EF\r
++:1027B00085FBFFEB010050E3FFFFFF0AD8011FE597\r
++:1027C000340090E5FF0000E2E4111FE52C0081E5F4\r
++:1027D000EC011FE5300090E518109FE5180081E539\r
++:1027E0009AFFFFEB04D08DE20080BDE8D04C0100E1\r
++:1027F000CC4C0100B8560100D059010000402DE931\r
++:102800001C021FE53800D0E5010050E33700001A34\r
++:102810002C021FE52000D0E5040050E33300001A2D\r
++:102820003C021FE5400090E5000050E32F00009AB5\r
++:102830004C021FE5480090E5000050E32B00009A91\r
++:102840005C021FE5400090E5010040E268121FE5D0\r
++:10285000400081E570021FE5400090E5000050E374\r
++:102860002200001A6AFFFFEB84021FE5340090E5A6\r
++:10287000FF0000E290121FE52C1091E5011040E0EE\r
++:102880009C021FE52C1080E5A4021FE5340090E5B2\r
++:10289000FF10C0E3B0021FE5341080E5B8021FE569\r
++:1028A000340090E5C0121FE52C1091E5011080E185\r
++:1028B000CC021FE5341080E5D4021FE5341090E50A\r
++:1028C0004100A0E3910C80E277F9FFEBE0001FE507\r
++:1028D00013FBFFEB010050E30100001AADFFFFEB1B\r
++:1028E000020000EA0110A0E304031FE52010C0E588\r
++:1028F0000080BDE800402DE90110A0E318031FE5AA\r
++:102900001410C0E50BF7FFEB0000A0E328131FE550\r
++:102910001000C1E511FFFFEB0110A0E338031FE534\r
++:102920002010C0E50800A0E3310A80E2001090E525\r
++:10293000081081E3001080E500F7FFEB0000A0E342\r
++:102940000080BDE80080BDE80000A0E368131FE53B\r
++:102950001400C1E50000A0E374131FE52000C1E5E9\r
++:102960000110A0E380031FE53810C0E50210A0E3CA\r
++:102970008C031FE5441080E594031FE5440090E5B7\r
++:102980009C131FE5400081E50000A0E3A0111FE5B6\r
++:102990000000C1E50000A0E3AC111FE50100C1E5A6\r
++:1029A0000000A0E3B8111FE50200C1E50EF0A0E1B0\r
++:1029B000F0402DE90060A0E10150A0E10240A0E15B\r
++:1029C0000070A0E3DBF6FFEB0010A0E3E8031FE5D7\r
++:1029D0001010C0E50430A0E10520A0E10610A0E140\r
++:1029E000F4011FE5D8FAFFEB010050E30000000AF4\r
++:1029F0000C70A0E310041FE52000D0E5010050E3B7\r
++:102A00000300001A63FFFFEB0410A0E328041FE596\r
++:102A10002010C0E5C9F6FFEB0700A0E1F080BDE89B\r
++:102A2000F080BDE810402DE9C2F6FFEB0110A0E3F5\r
++:102A30004C041FE51010C0E50110A0E358041FE589\r
++:102A40002010C0E5360AA0E3000090E5030CC0E3C7\r
++:102A5000FE00C0E3361AA0E3000081E578041FE51C\r
++:102A60003800D0E5010050E30600001A0010A0E392\r
++:102A70008C041FE53C10C0E594041FE5441090E56C\r
++:102A80009C041FE5401080E59C021FE5A4FAFFEBC3\r
++:102A9000000050E30800000A0CD04DE20D30A0E128\r
++:102AA00004208DE208108DE2BC021FE5C6FAFFEBA0\r
++:102AB0000040A0E10CD08DE2F2FFFFEA9FF6FFEBB1\r
++:102AC0000000A0E31080BDE81080BDE870402DE953\r
++:102AD0000040A0E1FF6004E2F4041FE52000D0E51F\r
++:102AE000040050E39A00001A04051FE50060C0E5E9\r
++:102AF000C7FEFFEB0120A0E368151FE518051FE5E1\r
++:102B00000000D0E50020C1E724051FE50000D0E566\r
++:102B1000000050E30200000A010050E30500000A33\r
++:102B20000A0000EA0119A0E338031FE5BC11C0E167\r
++:102B30000350A0E3050000EA3810A0E3011981E288\r
++:102B400050031FE5BC11C0E10350A0E3FFFFFFEA03\r
++:102B5000000055E30600000A010055E30D00000ADD\r
++:102B6000020055E31400000A030055E31B00000AAD\r
++:102B70001A0000EA0410A0E3E4251FE598051FE50C\r
++:102B80000000D0E50010C2E7E010A0E39C031FE5C1\r
++:102B9000BE11C0E11A0000EA0310A0E308261FE5F9\r
++:102BA000BC051FE50000D0E50010C2E7A810A0E3B7\r
++:102BB000C0031FE5BE11C0E1110000EA0210A0E34E\r
++:102BC0002C061FE5E0251FE50020D2E50210C0E736\r
++:102BD0007010A0E3E4031FE5BE11C0E1080000EAA5\r
++:102BE0000110A0E350261FE504061FE50000D0E514\r
++:102BF0000010C2E73800A0E308141FE5BE01C1E1E0\r
++:102C0000FFFFFFEA70061FE524161FE50010D1E55F\r
++:102C10000100D0E730161FE52C1091E5010050E1CE\r
++:102C20000300008A0110A0E30100A0E3351B00EBC4\r
++:102C30003F0000EA50061FE5340090E5FF0000E287\r
++:102C40005C161FE52C1091E5011040E068061FE5B9\r
++:102C50002C1080E570061FE5340090E5FF10C0E3FE\r
++:102C60007C061FE5341080E584061FE5340090E5FE\r
++:102C70008C161FE52C1091E5010080E198161FE5E8\r
++:102C8000340081E5A0061FE5341090E54100A0E383\r
++:102C9000910C80E284F8FFEBAC041FE520FAFFEB17\r
++:102CA000010050E31E00001A04D04DE20D30A0E1F7\r
++:102CB000CC241FE5CC141FE5CC041FE542FAFFEB42\r
++:102CC000010050E3FFFFFF0AE4061FE5340090E532\r
++:102CD000FF0000E2F0161FE52C0081E5F8061FE575\r
++:102CE000301090E5F4041FE5181080E558071FE543\r
++:102CF0000C171FE50010D1E50110D0E718071FE5FC\r
++:102D00002C0090E5000051E10300008A0110A0E3CF\r
++:102D10000100A0E3FB1A00EBFFFFFFEA04D08DE205\r
++:102D2000030000EA0100A0E344171FE52000C1E50D\r
++:102D30007080BDE844051FE5181090E54C051FE5BF\r
++:102D4000BE01D0E1001081E058051FE5181080E5B4\r
++:102D5000120000EA000056E30200000A010056E3F8\r
++:102D60000700000A0D0000EA360AA0E3000090E523\r
++:102D7000FF0FC0E3101080E3360AA0E3001080E5E7\r
++:102D8000060000EA360AA0E3000090E5FF0FC0E36A\r
++:102D9000200080E3361AA0E3000081E5FFFFFFEA90\r
++:102DA0007080BDE800402DE918181FE5C8071FE531\r
++:102DB0000000D0E50000D1E7010050E35300001A05\r
++:102DC0000010A0E334081FE5E4271FE50020D2E54A\r
++:102DD0000210C0E7F0071FE50000D0E5000050E357\r
++:102DE0000200000A010050E30700000A0D0000EA9B\r
++:102DF000360AA0E3000090E5FF0FC0E3101080E367\r
++:102E0000360AA0E3001080E5060000EA360AA0E3D7\r
++:102E1000000090E5FF0FC0E3201080E3360AA0E336\r
++:102E2000001080E5FFFFFFEA94081FE548181FE542\r
++:102E30000010D1E50100D0E754181FE52C1091E5F2\r
++:102E4000010050E10D00008AB4181FE568081FE575\r
++:102E50000000D0E50010D1E774081FE52C0090E5D4\r
++:102E6000010040E080181FE52C0081E588081FE57F\r
++:102E7000480090E5011080E294081FE5481080E5C5\r
++:102E80009C081FE52C0090E5000050E31F00001A8D\r
++:102E9000AC081FE5341090E54100A0E3910C80E2FE\r
++:102EA00001F8FFEBB8061FE59DF9FFEB010050E3C9\r
++:102EB0001200001A04D04DE20D30A0E1D8261FE523\r
++:102EC000D8161FE5D8061FE5BFF9FFEB010050E358\r
++:102ED000FFFFFF0AF0081FE5340090E5FF0000E265\r
++:102EE000FC181FE52C0081E504091FE5300090E582\r
++:102EF00000171FE5180081E504D08DE2030000EA09\r
++:102F00000100A0E320191FE52000C1E50080BDE815\r
++:102F10000080BDE893F021E30EF0A0E113F021E37F\r
++:102F20000EF0A0E10010A0E10120A0E12228A0E124\r
++:102F3000820282E0820580E0020280E0800182E07D\r
++:102F400001CCA0E380008CE0A034A0E10120A0E14E\r
++:102F5000820282E0820580E0020280E0800182E05D\r
++:102F600001C4A0E380008CE0A02CA0E1023083E04B\r
++:102F70000300A0E10EF0A0E10EF0A0E1F0432DE986\r
++:102F80000070A0E10150A0E10240A0E10360A0E1D7\r
++:102F90000C90A0E310009FE50500D0E7010050E38E\r
++:102FA0000200001A0900A0E1F083BDE8084D01000D\r
++:102FB00030009FE50570C0E72C009FE50540C0E7A5\r
++:102FC0000110A0E320001FE50510C0E70600A0E106\r
++:102FD000D3FFFFEB0080A0E1020058E30300002ACA\r
++:102FE0000280A0E3020000EA044D01000C4D010044\r
++:102FF000018088E2000055E30600000A010055E365\r
++:103000001F00000A020055E33700000A030055E3E1\r
++:103010004F00000A680000EA000054E30F00000AB5\r
++:10302000010054E30400000A020054E30B00000A0C\r
++:10303000030054E30000000A100000EA0820A0E1A9\r
++:103040000810A0E110009FE5080090E50230A0E321\r
++:10305000D40200EB0090A0E3080000EAE84C010075\r
++:103060000810A0E110001FE5080090E50230A0E381\r
++:103070000020A0E3CB0200EB0090A0E3FFFFFFEAFB\r
++:103080004F0000EA000054E30E00000A010054E380\r
++:103090000400000A020054E30A00000A030054E39B\r
++:1030A0000000000A0F0000EA0820A0E10810A0E1DB\r
++:1030B0005C001FE50C0090E50330A0E3B90200EBD3\r
++:1030C0000090A0E3070000EA0810A0E178001FE5E7\r
++:1030D0000C0090E50330A0E30020A0E3B10200EB78\r
++:1030E0000090A0E3FFFFFFEA350000EA000054E390\r
++:1030F0000E00000A010054E30400000A020054E339\r
++:103100000A00000A030054E30000000A0F0000EA6E\r
++:103110000820A0E10810A0E1C4001FE5100090E520\r
++:103120000930A0E39F0200EB0090A0E3070000EA53\r
++:103130000810A0E1E0001FE5100090E50930A0E3D1\r
++:103140000020A0E3970200EB0090A0E3FFFFFFEA5E\r
++:103150001B0000EA000054E30E00000A010054E3E3\r
++:103160000400000A020054E30A00000A030054E3CA\r
++:103170000000000A0F0000EA0820A0E10810A0E10A\r
++:103180002C011FE5140090E50A30A0E3850200EB56\r
++:103190000090A0E3070000EA0810A0E148011FE545\r
++:1031A000140090E50A30A0E30020A0E37D0200EBCC\r
++:1031B0000090A0E3FFFFFFEA010000EA0C90A0E30B\r
++:1031C000FFFFFFEA0900A0E1F083BDE8F083BDE85E\r
++:1031D000F0412DE90070A0E10150A0E10240A0E122\r
++:1031E0000360A0E104021FE50500D0E7070050E1FD\r
++:1031F0000100000A0C00A0E3F081BDE8000055E3E7\r
++:103200000600000A010055E30700000A020055E32A\r
++:103210000800000A030055E30900000A0B0000EA59\r
++:10322000CC011FE5088090E50B0000EAD8011FE5FE\r
++:103230000C8090E5080000EAE4011FE5108090E5AD\r
++:10324000050000EAF0011FE5148090E5020000EAA5\r
++:103250000C00A0E3F081BDE8FFFFFFEA0800A0E159\r
++:10326000870200EB000084E5000094E580C080E068\r
++:1032700080036CE08001A0E1000084E5010056E3DA\r
++:103280000400001A0010A0E3E4021FE50510C0E7E7\r
++:103290000800A0E1370200EB0000A0E3F081BDE8E8\r
++:1032A000F081BDE830402DE90040A0E1C8021FE5F3\r
++:1032B0000450D0E7D4021FE50400D0E7000050E33B\r
++:1032C0001400000A010050E30200000A020050E36B\r
++:1032D0001000000A0F0000EA000055E30B00000A8E\r
++:1032E000010055E30900000A020055E30200000A4C\r
++:1032F000030055E30000000A040000EA0410A0E106\r
++:103300004A0FA0E3090A80E2D0F6FFEB000000EAD2\r
++:10331000FFFFFFEA000000EAFFFFFFEA3080BDE8A0\r
++:1033200000402DE9C90100EBD4121FE5080081E53A\r
++:10333000C60100EBE0121FE50C0081E5C30100EBC4\r
++:10334000EC121FE5100081E5C00100EBF8121FE54B\r
++:10335000140081E5BD0100EB04131FE5180081E5B1\r
++:103360000C031FE5080090E5000050E30700000A89\r
++:103370001C031FE50C0090E5000050E30300000A69\r
++:103380002C031FE5180090E5000050E30100001A2F\r
++:103390000000A0E3100200EB44031FE5180090E5D5\r
++:1033A0000830A0E30A20A0E30A10A0E3FD0100EB2F\r
++:1033B00044009FE5280200EB64131FE5280081E527\r
++:1033C0006C031FE5280090E5020040E2080050E38E\r
++:1033D00000F18F90230000EA080000EA0D0000EAE7\r
++:1033E000200000EA1F0000EA1E0000EA1D0000EABB\r
++:1033F0001A0000EA0D0000EA120000EA144D010074\r
++:103400000000A0E360141FE50000C1E50000A0E398\r
++:10341000A3FFFFEB140000EA0000A0E378141FE50F\r
++:103420000100C1E50100A0E39DFFFFEB0E0000EAF3\r
++:103430000010A0E390041FE50210C0E50200A0E325\r
++:1034400097FFFFEB080000EA0000A0E3A8141FE5C7\r
++:103450000300C1E50300A0E391FFFFEB020000EAD7\r
++:1034600095F9FFEB000000EAFFFFFFEACFFFFFEA5C\r
++:103470000080BDE8FEFFFFEA00B0A0E30120A0E16C\r
++:103480000E0080E830C09FE500D08CE50EF0A0E192\r
++:1034900024209FE5002092E52C4091E534C091E581\r
++:1034A00002005CE10000A0230EF0A0E108C09FE54F\r
++:1034B00000D09CE500B0A0E30EF0A0E12C4D01008F\r
++:1034C00010402DE9310AA0E30040A0E30840A0E548\r
++:1034D000310AA0E30440A0E50308A0E31442A0E5FC\r
++:1034E0000308A0E30010E0E31812A0E52800A0E321\r
++:1034F000320A80E2001090E5071D81E3001080E5AC\r
++:10350000320AA0E3001090E5011B81E3001080E582\r
++:10351000060000EB0C0100EB0400A0E11080BDE808\r
++:1035200000402DE90F0000EB0000A0E30080BDE8A3\r
++:1035300028109FE50108A0E31810A0E50010A0E303\r
++:103540001C009FE5001080E5041080E5081080E570\r
++:103550000C1080E5101080E52010A0E50EF0A0E131\r
++:103560000C4901001C4E01000EF0A0E130402DE995\r
++:103570000040A0E193F021E31C501FE5140095E505\r
++:10358000020910E3E200001B1400B5E5010C10E392\r
++:103590000600000A0800A0E3310A80E2001090E56E\r
++:1035A000011CC1E3001080E50100A0E3EF0300EB84\r
++:1035B00013F021E30400A0E10010A0E33040BDE8D7\r
++:1035C000F30300EAF0402DE96C401FE5200094E58C\r
++:1035D000010080E20060A0E3317AA0E3200084E5EE\r
++:1035E000040097E5140084E5040087E5140094E5E1\r
++:1035F000020910E3365AA0E30600000A0160A0E3C6\r
++:10360000000095E5020010E300039F050000D005CF\r
++:10361000040050030DFCFF0B140094E5020A10E3B4\r
++:103620002500000A000095E5010C10E30500000AE2\r
++:10363000000095E5FF0FC0E3010C80E3000085E585\r
++:103640000000A0E320FDFFEB000095E5020C10E375\r
++:103650000500000A000095E5FF0FC0E3020C80E3BF\r
++:10366000000085E50100A0E317FDFFEB000095E5F4\r
++:10367000400010E30600000A000095E5FF0FC0E3DC\r
++:10368000400080E3000085E50000A0E3C7FAFFEBFF\r
++:1036900001FBFFEB000095E5800010E30600000A47\r
++:1036A000000095E5FF0FC0E3800080E3000085E5A2\r
++:1036B0000100A0E3BDFAFFEBF7FAFFEB140094E57D\r
++:1036C000010A10E32000000A335AA0E3000095E548\r
++:1036D000010C10E30400000A000095E5FF0FC0E3B1\r
++:1036E000010C80E3000085E5501400EB000095E537\r
++:1036F000020C10E30400000A000095E5FF0FC0E390\r
++:10370000020C80E3000085E56A1400EB000095E5FB\r
++:10371000400010E30400000A000095E5FF0FC0E33D\r
++:10372000400080E3000085E5841400EB000095E58F\r
++:10373000800010E30400000A000095E5FF0FC0E3DD\r
++:10374000800080E3000085E5991400EB140094E507\r
++:10375000010910E323F9FF1B140094E5040010E3B2\r
++:10376000081094150110811208108415020010E34E\r
++:10377000101094150110811210108415010010E32F\r
++:103780000C109415011081120C108415200010E308\r
++:10379000001094150110811200108415080010E328\r
++:1037A0000300000A040094E5010080E2040084E5BF\r
++:1037B000A6FBFFEB140094E5010C10E30160A013DD\r
++:1037C000041097E5020B11E3020B10032800000A16\r
++:1037D0000358A0E3040095E5010010E30100A013E5\r
++:1037E00004008515ACFAFF1B040095E5020010E308\r
++:1037F0000200A0130400851569FDFF1B040095E578\r
++:10380000040010E30400A013040085150815001B34\r
++:10381000040095E5080010E30800A01304008515D6\r
++:103820008014001B040095E5100010E31000A013A5\r
++:1038300004008515C524001B040095E5200010E355\r
++:103840002000A01304008515D62D001B040095E56B\r
++:10385000400010E34000A01304008515F222001B75\r
++:10386000040095E5800010E38000A0130400A51576\r
++:10387000792D001B140094E5010310E30B00000AEE\r
++:103880001C0097E5180084E51C0087E5180094E506\r
++:10389000100010E31E2E001B180094E5020010E338\r
++:1038A0006D28001B180094E5080010E30929001B8F\r
++:1038B000140094E5020310E30B00000A240097E5CE\r
++:1038C0001C0084E5240087E51C0094E5100010E34B\r
++:1038D000072E001B1C0094E5020010E33227001B9A\r
++:1038E0001C0094E5080010E3B928001B1400B4E59F\r
++:1038F000010210E30300000A0102A0E30400A7E5AF\r
++:103900000200A0E34C1200EB0600A0E1F080BDE84D\r
++:10391000BC4C010000402DE9020910E30080BD0805\r
++:1039200020009FE5001090E5011081E2001080E585\r
++:10393000B00300EB0209A0E3311AA0E30400A1E503\r
++:103940000040BDE8ACFBFFEA404E0100010CA0E3E3\r
++:10395000030880E2001090E50D10C1E3001080E53F\r
++:10396000001090E5021081E3001080E5A62EA0E390\r
++:103970000E2A82E20318A0E30821A1E5001090E5D9\r
++:10398000041081E3001080E5321AA0E3002091E5E5\r
++:103990000620C2E3002081E50410A0E3311A81E291\r
++:1039A000002091E5022982E3002081E50810A0E3D0\r
++:1039B000311A81E2002091E5022982E3002081E5AD\r
++:1039C000001090E5011081E3001080E50EF0A0E109\r
++:1039D00000402DE9D00200EBB30200EB0040BDE84F\r
++:1039E000870200EA0EF0A0E1000F8FE20EF0A0E1E6\r
++:1039F000525458432076332E326520666F72204130\r
++:103A0000524D20616E64205468756D62202D2041F6\r
++:103A1000524D2053445420322E313161204A616E80\r
++:103A20002D31352D3939204B65793A2032373531F2\r
++:103A30003100000000402DE90000A0E304002DE566\r
++:103A40000D00A0E1D30300EB04D08DE20080BDE8BF\r
++:103A500000402DE91000A0E318002DE50D00A0E1C5\r
++:103A6000CC0300EB14009DE518D08DE20080BDE88A\r
++:103A700000402DE930D04DE224208DE2030082E8A1\r
++:103A80002CD08DE51400A0E320008DE520008DE210\r
++:103A9000C00300EB30D08DE20080BDE800402DE98E\r
++:103AA00010D04DE208008DE51500A0E300008DE583\r
++:103AB0000D00A0E1B70300EB10D08DE20080BDE85F\r
++:103AC00000402DE904C09DE520D04DE208E08DE2E4\r
++:103AD0000F108EE80000A0E304008DE51600A0E3BF\r
++:103AE00000008DE50D00A0E1AA0300EB04009DE5B8\r
++:103AF00020D08DE20080BDE800402DE918D04DE2D5\r
++:103B000014008DE5000050E30300000A1100A0E35B\r
++:103B100000008DE50D00A0E19E0300EB18D08DE2C2\r
++:103B20000080BDE800402DE914D04DE208008DE58D\r
++:103B30000300A0E300008DE50D00A0E1950300EB7C\r
++:103B400014D08DE20080BDE800402DE914D04DE294\r
++:103B500008008DE50000A0E304008DE50200A0E36D\r
++:103B600000008DE50D00A0E18A0300EB04009DE557\r
++:103B700014D08DE20080BDE800402DE918D04DE260\r
++:103B800014008DE50000A0E304008DE51300A0E320\r
++:103B900000008DE50D00A0E17E0300EB04009DE533\r
++:103BA00018D08DE20080BDE800402DE918D04DE22C\r
++:103BB00014008DE51200A0E300008DE50C008DE2FD\r
++:103BC000060080E808308DE50D00A0E1710300EBF0\r
++:103BD00014009DE518D08DE20080BDE800402DE97D\r
++:103BE00010D04DE208008DE51800A0E300008DE53F\r
++:103BF0000D00A0E1670300EB10D08DE20080BDE86E\r
++:103C000000402DE910D04DE208008DE52100A0E331\r
++:103C100003008DE80D00A0E15E0300EB0C009DE5C4\r
++:103C200010D08DE20080BDE800402DE914D04DE2B7\r
++:103C300008008DE50000A0E30C008DE504008DE593\r
++:103C40000100A0E300008DE50D00A0E1510300EBB1\r
++:103C500004009DE514D08DE20080BDE800402DE910\r
++:103C600010D04DE20C008DE51F00A0E300008DE5B3\r
++:103C70000D00A0E1470300EB08009DE510D08DE2A8\r
++:103C80000080BDE800402DE918D04DE214008DE51C\r
++:103C90002000A0E300008DE50D00A0E13D0300EB56\r
++:103CA0000C009DE518D08DE20080BDE814009FE572\r
++:103CB000001090E5001091E5001080E508009FE5F8\r
++:103CC0000400A1E50EF0A0E1444E0100444E0100C5\r
++:103CD00034109FE5002191E7010072E30020A0036A\r
++:103CE000002181070EF0A001000052E30EF0A001B8\r
++:103CF00093F021E334101FE5082091E5040082E4ED\r
++:103D00000820A1E513F021E30EF0A0E170500100BE\r
++:103D100050101FE5140091E5000050E30EF0A001E3\r
++:103D2000002090E51420A1E50010A0E3141080E528\r
++:103D30000EF0A0E110402DE90110A0E3141080E581\r
++:103D400008209FE584C01FE5083090E5010000EAE7\r
++:103D50005C4E01000120A0E1001092E5000051E35B\r
++:103D60000400000A084091E510E09CE50EE044E004\r
++:103D70000E0053E1F6FFFFAA10C09CE50C3083E073\r
++:103D80000E0080E8000051E3000082E50400A11568\r
++:103D90001080BDE80010A0E3141080E593F021E34B\r
++:103DA000060090E8001082E5000051E3030090183F\r
++:103DB0000410A01513F021E30EF0A0E1F0402DE96E\r
++:103DC000044090E504511FE5002095E51000A2E5B0\r
++:103DD0000060A0E3000094E5D4301FE50070E0E34C\r
++:103DE000130050E31D00000A4020A0E3260000CA93\r
++:103DF000030050E37500000A120000CA000050E3FF\r
++:103E00003700000A010050E34500000A020050E3B9\r
++:103E10003300001A080094E5001193E7010071E3F4\r
++:103E2000006183072E00000A000051E30E00A0038A\r
++:103E30003001000A93F021E3081095E5040081E4C5\r
++:103E4000081085E5980000EA100050E36500000ABC\r
++:103E5000110050E36600000A120050E32000001A2F\r
++:103E60000410A0E314C094E500005CE36900001AAC\r
++:103E7000120050E36D00001AA4FFFFEB00C0B0E198\r
++:103E800014C084156B00001A150000EA14C040E24B\r
++:103E900088009FE50D005CE30CF18F90100000EAB4\r
++:103EA000A10000EAE80000EA070100EA0C0000EACD\r
++:103EB0001D0100EA0A0000EA090000EA080000EA21\r
++:103EC000070000EA060000EA050000EA210000EA17\r
++:103ED000D10000EA040094E50FE0A0E108F094E5C9\r
++:103EE0000C00A4E593F021E3040095E5000050E305\r
++:103EF0000810850203009108010050012000D5053B\r
++:103F00000000500300009505100090050000000A15\r
++:103F1000B30100EBAB0200EB0600A0E1F080BDE8CE\r
++:103F2000684F0100080094E5001193E7010071E378\r
++:103F30000400001A001095E520C091E500C183E758\r
++:103F40001C20A1E51A0000EA000051E30100A013C3\r
++:103F5000E800001A210000EA0C0094E5070000EADE\r
++:103F60000C1183E000E091E501007EE30600001AF9\r
++:103F700000C095E520C09CE5040080E200C081E51A\r
++:103F800000C090E500005CE3F4FFFF1A00E090E55C\r
++:103F900000005EE30400000A001091E5000051E318\r
++:103FA00008C084050C10B4050500000A000095E562\r
++:103FB0001C20A0E53CFFFFEBC9FFFFEA042091E4D1\r
++:103FC000027183E7000051E1FBFFFF9AC4FFFFEAA3\r
++:103FD0000800B4E5001193E7000051E3C0FFFF1AA9\r
++:103FE000007183E7BEFFFFEA48FFFFEB1400A4E582\r
++:103FF000BBFFFFEA1430B4E5140093E5010050E381\r
++:104000000300A00162FFFF0B140095E5000083E5AB\r
++:10401000143085E5B2FFFFEA120050E310009C1552\r
++:104020000020951520209215020050110100000A71\r
++:104030000410A4E5AAFFFFEA14009CE5000050E389\r
++:104040000400001A000094E5130050E30300A003ED\r
++:10405000A800000A040000EA0C00A0E14CFFFFEBFE\r
++:10406000000094E5130050E39DFFFF0A000094E573\r
++:10407000120050E31900001A0C0094E5000050E310\r
++:1040800010109405000051030800001A000095E587\r
++:10409000200090E51000ACE593F021E30810B4E5B2\r
++:1040A000080095E5041080E4080085E5640000EA56\r
++:1040B000000050E30900001A100094E5000050E3EE\r
++:1040C0000600000A0C0084E593F021E3081094E553\r
++:1040D000080095E5041080E4080085E513F021E36D\r
++:1040E0000C0094E508008CE5100094E50C008CE5CC\r
++:1040F0000600A0E318008CE5000095E5200090E59F\r
++:1041000010008CE5080094E51C008CE5001193E795\r
++:10411000000051E31010B405000051030071830743\r
++:104120000C00A0E102FFFFEB6DFFFFEA047094E5D5\r
++:10413000000057E30010951520109115070051114C\r
++:104140000600001A080094E5000050E364FFFF0A2F\r
++:10415000003095E5207093E50CC094E5190000EA65\r
++:10416000071187E0813180E01C0093E5040010E333\r
++:104170000D00000A08C093E50C00A0E104FFFFEB6E\r
++:10418000080094E5000050E30E00001A1C0093E5BF\r
++:104190000400D0E31C0083E551FFFF1A040095E5FD\r
++:1041A000000083E5043085E54DFFFFEA081094E543\r
++:1041B000000051E34AFFFF0A000050E348FFFF1AE6\r
++:1041C000100093E520C040E208C083E51C0093E5A1\r
++:1041D000000050E30500001A040093E5001093E589\r
++:1041E0000400A1E5040093E5001093E5001080E5CC\r
++:1041F0001C0093E5040080E31C00A3E50800B4E57F\r
++:1042000008C08CE241008CE810C08CE2C0008CE851\r
++:1042100008702CE510C04CE2C0FFFFEA140094E5E2\r
++:10422000141090E5010051E30C60A4152CFFFF1A57\r
++:1042300093F021E3080090E5101095E5010040E0BF\r
++:104240000C00A4E513F021E325FFFFEA0810B4E514\r
++:10425000011181E0810180E01C1090E5000051E334\r
++:104260000500001A041090E5002090E50410A2E576\r
++:10427000041090E5002090E5002081E5142080E204\r
++:10428000060092E8402042E22221A0E10420C2E39D\r
++:10429000021181E0101080E50C2090E53C2081E5C2\r
++:1042A000010012E31320A0033320A013002081E5B6\r
++:1042B0002C6081E53060A1E51C6080E5041095E587\r
++:1042C000001080E5040085E505FFFFEA081094E58D\r
++:1042D000000051E30B00A0030600000A011181E079\r
++:1042E000810180E01C1090E5011C01E2010C51E30A\r
++:1042F0000200000A0C00A0E30400A4E5F8FEFFEAB7\r
++:104300000C1094E5241080E5101094E5000051E3B2\r
++:104310001410801514109415181080151810B4E599\r
++:104320000860A0E5041080E5EDFEFFEA084094E592\r
++:10433000000054E30411841081C180100000950531\r
++:1043400000C0A0012040B00508009CE5000050E33B\r
++:104350000300000A141090E5010051E38CFEFF0BEE\r
++:1043600008608CE51C009CE5400010E30D00000A8D\r
++:1043700010009CE5040090E5001090E5010051E379\r
++:1043800008009005007183070600000A0C0090E504\r
++:10439000010000EA017183E7040080E2001090E56B\r
++:1043A000000051E3FAFFFF1A1C009CE5000050E3F7\r
++:1043B0000600001A04009CE500109CE5001080E552\r
++:1043C000000051E304009C1500109C150400A11589\r
++:1043D00024009FE5000090E5000054E1030000CABE\r
++:1043E00018009FE5040280E00C0090E524008CE5B5\r
++:1043F000010CA0E31C00ACE5B9FEFFEA484A01004D\r
++:104400005C4A010070402DE9F0041FE54C271FE5D0\r
++:10441000000082E550371FE57F10A0E3043080E5FF\r
++:10442000003092E500E0A0E32410A3E5001092E53F\r
++:1044300020E0A1E5001092E500E081E5001092E5A2\r
++:104440001CE0A1E50110A0E3280080E2015CA0E3EC\r
++:1044500004E082E560401FE560C01FE50D0000EA52\r
++:10446000201080E501328CE01C5080E508E080E5FA\r
++:104470000C6093E5246080E5046093E5146080E5BA\r
++:10448000083093E5183080E501329CE7011081E2A5\r
++:104490000C30A0E51C0080E2003094E5030051E1FF\r
++:1044A000EEFFFFDA1CE0C2E57080BDE80110A0E37A\r
++:1044B00008009FE50030E0E304209FE5030000EAE8\r
++:1044C00074500100A84A0100011081E2043080E428\r
++:1044D00000C092E50C0051E1FAFFFFDA1C109FE5E5\r
++:1044E00020081FE5081080E50C10A0E50000A0E3FF\r
++:1044F0000030A0E308209FE5002092E5030000EAD9\r
++:1045000030500100AC4A0100003181E7010080E237\r
++:10451000020050E1FBFFFFBA0EF0A0E110009FE5A2\r
++:1045200060181FE50120A0E3140081E504C09FE5A9\r
++:10453000050000EA9C500100144B0100203080E28D\r
++:10454000012082E2003080E50300A0E100309CE51C\r
++:10455000030052E1F8FFFFBA0020A0E3002080E54D\r
++:10456000182081E5102081E52020C1E50EF0A0E1B2\r
++:1045700010402DE90040A0E1290100EBBC181FE527\r
++:10458000082091E5044082E40820A1E51040BDE840\r
++:104590001F0100EA93F021E3D8281FE5000051E352\r
++:1045A0000200000A083092E5041083E4083082E536\r
++:1045B0001C10D2E5010051E30EF0A0110C1092E5A1\r
++:1045C000083092E5010053E12010D20500005103AC\r
++:1045D0000EF0A001001092E51000A1E513F021E318\r
++:1045E000FFFFFFEAF04F2DE9A0B81FE50060A0E350\r
++:1045F000D8761FE5F0581FE500911FE538891FE5C3\r
++:1046000040491FE593F021E32000D4E5000050E38A\r
++:104610002060C41510A0941513F021132300001A74\r
++:1046200000C0E0E34D0000EA0100A0E193F021E3C7\r
++:10463000001091E5181084E5000051E304B0A115C5\r
++:1046400013F021E3146080E5181090E5000051E3B9\r
++:104650000C00000A060051E31400001A93F021E355\r
++:104660001C2090E5081094E5042081E4081084E5FE\r
++:1046700013F021E30C1090E5000051E308108015C1\r
++:10468000ABFDFF1B090000EA100090E5000180E08F\r
++:10469000800187E0086080E51C1090E50410D1E3FC\r
++:1046A0001C1080E5041094050010800504008405AA\r
++:1046B000181094E5000051E30200000A080091E59B\r
++:1046C00000005AE0D7FFFF5A93F021E3D3FFFFEA3F\r
++:1046D00013F021E3042090E40C0084E5020185E05E\r
++:1046E000001090E5010071E30000511300608005A7\r
++:1046F0001900000A00C080E5010181E0800187E027\r
++:10470000101090E5041091E5003091E51F0053E38F\r
++:10471000082081050C1091050600000A080000EA37\r
++:10472000022185E0003092E5010073E3000053139D\r
++:1047300000C08215041081E2002091E5000052E3E0\r
++:10474000F6FFFF1A1C1090E54010D1E31C1080E525\r
++:1047500004109405001080050400840593F021E303\r
++:104760000C0094E5081094E5000051E1D7FFFF1A12\r
++:104770000C9084E5089084E513F021E30F0000EA33\r
++:10478000001090E5041084E50810A0E1243090E5C5\r
++:10479000000000EA0210A0E1002091E524C092E5AB\r
++:1047A0000C0053E1FAFFFFAA002091E5041080E518\r
++:1047B000002080E5002091E50400A2E5000081E5ED\r
++:1047C000040094E5000050E3ECFFFF1A93F021E3AE\r
++:1047D000081084E2030091E8010050E12000D405B4\r
++:1047E0000000500313F0211385FFFF1A000094E529\r
++:1047F000100090E5F08FBDE8381B1FE5100091E533\r
++:10480000010080E2100081E5180091E5000050E30E\r
++:104810000500000A0820B0E5100091E5020050E014\r
++:104820000100A0532000C1550EF0A0510000A0E3EC\r
++:104830000EF0A0E100402DE90020A0E10100A0E180\r
++:10484000241082E5843B1FE5001093E5201091E5DC\r
++:1048500020C092E50C0051E10500001A001092E51D\r
++:10486000241091E5010050E10080BDD80EFDFFEB62\r
++:104870000D0000EA1C1092E5000051E30080BD1815\r
++:10488000041092E524C091E500005CE100C092D5DF\r
++:1048900024C09CD50C0050D10080BDD8000092E50A\r
++:1048A0000410A0E5030092E8000081E5040093E510\r
++:1048B000000082E50420A3E50080BDE8010000EAD5\r
++:1048C0000130D1E40130C0E40230B0E1012042E225\r
++:1048D000FAFFFF1A0EF0A0E10E30A0E100200FE178\r
++:1048E0000800A0E31C109FE5911000E1FFFF00EF1E\r
++:1048F000001080E51F20C2E3132082E302F029E1CB\r
++:1049000002F069E103F0A0E10EF0A0E100402DE922\r
++:104910002BFBFFEB0040BDE8000050E30000001A55\r
++:104920000EF0A0E10CE00DE504000DE500000FE144\r
++:1049300008000DE50D00A0E193F021E304D04DE265\r
++:10494000FE5F2DE9081010E5042010E506002DE9B2\r
++:104950000CE010E53CE08DE530409FE50050D4E5EB\r
++:10496000015085E20050C4E50D00A0E1010035E3EF\r
++:104970001CD09F05FCFAFFEB00D0A0E1015045E2FE\r
++:104980000050C4E50100BDE800F069E1FFDFFDE88B\r
++:10499000604E0100B876010000200FE193F021E3A2\r
++:1049A00000402DE9FF5F2DE904002DE930409FE52F\r
++:1049B0000110A0E30010C4E50D00A0E124D09FE5A4\r
++:1049C00013F021E3FCFCFFEB00D0A0E110409FE5D9\r
++:1049D0000010A0E30010C4E50100BDE800F069E1AB\r
++:1049E000FFDFFDE8604E0100B876010093F021E39F\r
++:1049F0000EF0A0E113F021E30EF0A0E100000FE1C2\r
++:104A00000EF0A0E10E00A0E10EF0A0E10D00A0E18B\r
++:104A10000EF0A0E100F021E10EF0A0E100000FE1B6\r
++:104A20000EF0A0E100000FE193F021E30EF0A0E111\r
++:104A300000F029E10EF0A0E100E0A0E10EF0A0E11D\r
++:104A400000D0A0E10EF0A0E1020000000200000092\r
++:104A50000100000002000000000000000000000053\r
++:104A6000000000000000000000000000740C0100C5\r
++:104A7000684E0100800000000A00000020330100A1\r
++:104A8000E84E0100800000000A0000000000000065\r
++:104A9000000000000041524D4349000000004C540A\r
++:104AA000494D4552530000000A000000100000006C\r
++:104AB00000000000000000000041524D5F434D44E3\r
++:104AC00046004C54494D52300000004C54494D5260\r
++:104AD0003100000044534C50575253540041524D42\r
++:104AE000505752535400504D54494D455200004CBC\r
++:104AF00050544F4E450000004750494F504F4C4CCA\r
++:104B0000004C54494D52320000004C54494D523330\r
++:104B1000000000000A0000000A000000640000001D\r
++:104B20000100020004000800100020004000800086\r
++:104B30000001000200040008010002000400080057\r
++:104B40001000200040008000000100020004000866\r
++:104B50000100020004000800100020004000800056\r
++:104B60000001000200040008001000200100020003\r
++:104B70000400080010002000400080000001000236\r
++:104B800000040008001000200100020004000800DA\r
++:104B90001000200040008000000100020004000816\r
++:104BA00000100020000000000000000000000000D5\r
++:104BB00000000000000000000000000000000000F5\r
++:104BC00000000000000000000000000000000000E5\r
++:104BD00000000000000000000000000000000000D5\r
++:104BE00000000000000000000000000000000000C5\r
++:104BF00000000000000000000000000000000000B5\r
++:104C000000000000000000000000000000000000A4\r
++:104C10000000000000000000000000000000000094\r
++:104C20000000000000000000000000000000000084\r
++:104C300000000001526A6A6A6A6A6A6A6A6A6A6A93\r
++:104C40006A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AC4\r
++:104C50006A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AB4\r
++:104C60006A6A6A6A6A000000000000000000000032\r
++:104C70000000000000000000000000000000000034\r
++:104C80000000000000000000000000000000000024\r
++:104C90000000000000000000000000000000000014\r
++:104CA0000000000000000000000000000000000004\r
++:104CB00000000000000000000000000000000000F4\r
++:104CC00000000000000000000000000000000000E4\r
++:104CD00000000000000000000000000000000000D4\r
++:104CE00000000000000000000000000000000000C4\r
++:104CF00000000000000000000000000000000000B4\r
++:104D000000000000000000000000000000000000A3\r
++:104D10000000000002000000030000000900000085\r
++:104D20000A00000008000000000000000000000071\r
++:104D30000000000000000000000000000000000073\r
++:104D40000000000000000000000000000000000063\r
++:104D50000000000000000000000000000000000053\r
++:104D60000000000000000000000000000000000043\r
++:104D70000000000000000000000000000000000033\r
++:104D80000000000000000000000000000000000023\r
++:104D90000000000001000000000000000100000011\r
++:104DA0000000000000000000000000000000000003\r
++:104DB00000000000000000000000000000000000F3\r
++:104DC00000000000000000000000000000000000E3\r
++:104DD00000000000000000000000000000000000D3\r
++:104DE00000000000000000000000000000000000C3\r
++:104DF00000000000000000000000000000000000B3\r
++:104E000000000000000000000000000000000000A2\r
++:104E10000000000000000000000000000000000092\r
++:104E20000000000000000000000000000000000082\r
++:104E30000000000000000000000000000000000072\r
++:104E40000000000000000000000000000000000062\r
++:104E50000000000000000000000000000000000052\r
++:084E600000000000000000004A\r
++:020000040001F9\r
++:1080000093F021E30EF0A0E113F021E30EF0A0E1E4\r
++:108010000EF0A0E1F0412DE90080A0E184009FE591\r
++:10802000140090E5311AA0E30C1091E5010050E135\r
++:108030008000000A0060A0E30040A0E30070A0E31D\r
++:108040000050A0E3310AA0E30C0090E554109FE536\r
++:10805000140081E5310AA0E30C0090E5030000E282\r
++:1080600040109FE50000C1E5310AA0E30C0090E557\r
++:10807000030800E22008A0E128109FE50400C1E504\r
++:1080800020009FE50400D0E5030050E30600001A3D\r
++:10809000310AA0E30C0090E5010710E30000000A9C\r
++:1080A0000160A0E3010000EA304D01000060A0E3A0\r
++:1080B000310AA0E30C0090E5031C00E20300A0E3FA\r
++:1080C000210450E11100001A0800A0E3310A80E207\r
++:1080D000001090E5011281E3001080E5310AA0E371\r
++:1080E0000C0090E5010B10E30400000A0140A0E33E\r
++:1080F000320AA0E3001090E5011981E3001080E549\r
++:108100000310A0E364001FE50810C0E5110000EAB9\r
++:1081100070001FE50800D0E5030050E30D00001AD1\r
++:108120000040A0E3320AA0E3001090E50119C1E38A\r
++:10813000001080E50800A0E3310A80E2001090E51D\r
++:108140000112C1E3001080E5620000EB0000A0E333\r
++:10815000B0101FE50800C1E5310AA0E30C0090E56E\r
++:10816000030600E2200AA0E1C8101FE50C00C1E5EB\r
++:10817000D0001FE50C00D0E5ED1B00EBDC001FE597\r
++:108180000C00D0E5030050E30500001A310AA0E31B\r
++:108190000C0090E5010510E30000000A0170A0E367\r
++:1081A000000000EA0070A0E3310AA0E30C0090E5B3\r
++:1081B000030400E2200CA0E118111FE51000C1E546\r
++:1081C00020011FE51000D0E5111C00EB2C011FE57C\r
++:1081D0001000D0E5030050E30500001A310AA0E3C7\r
++:1081E0000C0090E5010310E30000000A0150A0E339\r
++:1081F000000000EA0050A0E3000056E30500001A6A\r
++:10820000000057E30300001A000055E30100001AC4\r
++:10821000000054E30400000A5610A0E30D1B81E2A5\r
++:10822000310AA0E3101080E5020000EA0000A0E39C\r
++:10823000311AA0E3100081E5F081BDE80010A0E153\r
++:10824000040051E301F18F901D0000EA030000EAF1\r
++:10825000070000EA0B0000EA0F0000EA130000EA42\r
++:10826000310AA0E3002090E5202082E3002080E591\r
++:10827000130000EA310AA0E3002090E5042082E325\r
++:10828000002080E50E0000EA310AA0E3002090E51E\r
++:10829000022C82E3002080E5090000EA310AA0E315\r
++:1082A000002090E5802082E3002080E5040000EAC1\r
++:1082B000310AA0E3002090E5012C82E3002080E554\r
++:1082C000FFFFFFEA0EF0A0E193F021E30EF0A0E142\r
++:1082D00013F021E30EF0A0E10410A0E3320AA0E3C2\r
++:1082E000341080E5350AA0E3001090E5021081E328\r
++:1082F000001080E57010A0E3330AA0E3041080E5CD\r
++:108300007010A0E3330AA0E3081080E59000A0E31A\r
++:10831000331AA0E3140081E59010A0E3330AA0E330\r
++:10832000181080E50800A0E3310A80E2001090E513\r
++:10833000011A81E3001080E5330AA0E3000090E514\r
++:10834000FF0FC0E3020A80E3331AA0E3000081E5D7\r
++:10835000330AA0E3000090E5FF0FC0E3011A80E3B9\r
++:10836000330AA0E3001080E5330AA0E3000090E5A3\r
++:10837000FF0FC0E3010B80E3331AA0E3000081E5A7\r
++:10838000330AA0E3000090E5FF0FC0E3021B80E387\r
++:10839000330AA0E3001080E50EF0A0E10010A0E396\r
++:1083A00094009FE55010C0E50110A0E38C009FE50C\r
++:1083B0000010C0E50000A0E380109FE50100C1E5CA\r
++:1083C000070DA0E3010980E274109FE5BC02C1E142\r
++:1083D000330AA0E3000090E5100010E30500001A46\r
++:1083E000330AA0E3000090E5FF0FC0E3101080E324\r
++:1083F000330AA0E3001080E5330AA0E3000090E513\r
++:10840000200010E30500001A330AA0E3000090E505\r
++:10841000FF0FC0E3201080E3330AA0E3001080E5E3\r
++:10842000330AA0E3000090E5FF0FC0E3010980E3F9\r
++:10843000331AA0E3000081E50EF0A0E1484D0100F1\r
++:10844000504D0100D059010010402DE90040A0E13D\r
++:1084500038E0FFEB9FFFFFEB0000A0E328101FE5D3\r
++:108460004800C1E50100A0E334101FE54C00C1E560\r
++:108470000010A0E340001FE55010C0E50100A0E39C\r
++:108480004C101FE55400C1E50110A0E354001FE5A6\r
++:108490000010C0E50110A0E330019FE50010C0E529\r
++:1084A0000000A0E36C101FE50100C1E50000A0E39F\r
++:1084B00018119FE50100C1E584001FE5100090E55B\r
++:1084C0008C101FE5140081E594001FE52C1090E549\r
++:1084D0009C001FE5301080E5A4001FE5140090E526\r
++:1084E000A4101FE5280081E5B4001FE5301090E5D9\r
++:1084F000B4001FE5201080E50000A0E3C8101FE5D0\r
++:10850000240081E50000A0E3D4101FE5280081E5E8\r
++:10851000071DA0E3011981E2DC001FE5BC12C0E1E8\r
++:10852000071DA0E3E8001FE5B412C0E1330AA0E391\r
++:10853000000090E5FF0FC0E3200080E3331AA0E3C2\r
++:10854000000081E5330AA0E3000090E5FF0FC0E3DF\r
++:10855000101080E3330AA0E3001080E5330AA0E3A3\r
++:10856000000090E5FF0FC0E3081080E3330AA0E3AA\r
++:10857000001080E5330AA0E3000090E5FF0FC0E3A0\r
++:10858000040080E3331AA0E3000081E5330AA0E38E\r
++:10859000000090E5FF0FC0E3020080E3331AA0E380\r
++:1085A000000081E5330AA0E3000090E5FF0FC0E37F\r
++:1085B000010080E3331AA0E3000081E50000A0E39E\r
++:1085C0008C111FE50000C1E5DCDFFFEB1080BDE88A\r
++:1085D000544D010010402DE90040A0E1330AA0E312\r
++:1085E000000090E5031CC0E3FE10C1E3330AA0E3E2\r
++:1085F000001080E5330AA0E3000090E5031CC0E30F\r
++:10860000FD10C1E3330AA0E3001080E5330AA0E3C4\r
++:10861000000090E5331AA0E3000081E50210A0E31A\r
++:108620000200A0E3570400EB0110A0E3F8011FE5EE\r
++:108630000010C0E50000A0E304121FE5240081E55E\r
++:108640000000A0E310121FE5400081E50000A0E358\r
++:108650001C121FE5280081E50000A0E328121FE599\r
++:10866000440081E51080BDE84C009FE5040090E5E2\r
++:108670003C121FE50400C1E544021FE50400D0E5FB\r
++:10868000331AA0E30C0081E554021FE50410D0E585\r
++:10869000330AA0E3101080E564021FE50410D0E562\r
++:1086A000330AA0E31C1080E574021FE50400D0E546\r
++:1086B000331AA0E3200081E50EF0A0E1C0590100CB\r
++:1086C0000010A0E390021FE5241080E50010A0E355\r
++:1086D0009C021FE5401080E50000A0E3A8121FE502\r
++:1086E000280081E50000A0E3B4121FE5440081E505\r
++:1086F0003C001FE50C0090E5020110E32500001A84\r
++:108700004C001FE5040090E5D4121FE5100081E540\r
++:10871000DC021FE5100090E5E4121FE5140081E57E\r
++:108720006C001FE5080090E52018A0E1F8021FE5A5\r
++:10873000181080E580001FE50C0090E50008A0E11E\r
++:108740002008A0E110131FE51C0081E598001FE53B\r
++:10875000080090E50008A0E12008A0E128131FE52B\r
++:10876000200081E530031FE5141090E530031FE57C\r
++:10877000281080E57000A0E33C131FE5BC02C1E1B6\r
++:108780004C031FE51C0090E50001A0E150131FE51C\r
++:10879000BE02C1E1240000EAE4001FE5041090E5F8\r
++:1087A0006C031FE52C1080E574031FE52C0090E599\r
++:1087B0007C131FE5300081E504011FE5080090E50A\r
++:1087C0002008A0E190131FE5340081E518011FE5A2\r
++:1087D0000C0090E50018A0E12118A0E1A8031FE516\r
++:1087E000381080E530011FE5080090E50008A0E1A1\r
++:1087F0002008A0E1C0131FE53C0081E5C8031FE588\r
++:10880000301090E5C8031FE5201080E57010A0E34C\r
++:10881000D4031FE5B412C0E1E4031FE5380090E57E\r
++:108820000001A0E1E8131FE5B602C1E10EF0A0E1EE\r
++:1088300000402DE900041FE55400D0E5000050E39E\r
++:108840001800000A10041FE50000D0E5000050E306\r
++:108850001400001A20041FE5140090E520141FE501\r
++:10886000280081E5070DA0E3010980E230141FE52F\r
++:10887000BC02C1E10110A0E30200A0E3210400EB6F\r
++:108880000000A0E350141FE55400C1E50100A0E37F\r
++:1088900058141FE50000C1E50010A0E364041FE5C3\r
++:1088A0000110C0E5020000EA0110A0E378041FE512\r
++:1088B0005010C0E50080BDE800402DE988041FE5A8\r
++:1088C0005400D0E5000050E31800000A98041FE5AA\r
++:1088D0000000D0E5000050E31400001AA8041FE5D2\r
++:1088E000140090E5A8141FE5280081E5090DA0E318\r
++:1088F000010980E2B8141FE5BC02C1E10110A0E348\r
++:108900000200A0E3FF0300EB0000A0E3D8141FE582\r
++:108910005400C1E50100A0E3E0141FE50100C1E53A\r
++:108920000010A0E3EC041FE50010C0E5020000EA1F\r
++:108930000110A0E300051FE55010C0E50080BDE870\r
++:1089400000402DE910051FE54C00D0E5000050E384\r
++:108950001300000A20051FE5300090E520151FE5F3\r
++:10896000200081E5070DA0E32C151FE5B402C1E14D\r
++:108970000010A0E30200A0E3E20300EB0000A0E38C\r
++:108980004C151FE54C00C1E50100A0E3C4131FE531\r
++:108990000000C1E50000A0E3D0131FE50100C1E520\r
++:1089A000020000EA0110A0E374051FE54810C0E5CD\r
++:1089B0000080BDE800402DE984051FE54C00D0E5AE\r
++:1089C000000050E31300000A94051FE5300090E515\r
++:1089D00094151FE5200081E5090DA0E3A0151FE512\r
++:1089E000B402C1E10010A0E30200A0E3C50300EB64\r
++:1089F0000000A0E3C0151FE54C00C1E50100A0E3A5\r
++:108A000038141FE50100C1E50000A0E344141FE590\r
++:108A10000000C1E5020000EA0110A0E3E8051FE53F\r
++:108A20004810C0E50080BDE800402DE9F8051FE5CD\r
++:108A30000000D0E5000050E30000000A0080BDE81F\r
++:108A40000100A0E310161FE55400C1E514061FE560\r
++:108A50000100D0E5010050E30600001A330AA0E34C\r
++:108A6000000090E5FF0FC0E3201080E3330AA0E38D\r
++:108A7000001080E5050000EA330AA0E3000090E55D\r
++:108A8000FF0FC0E3100080E3331AA0E3000081E58C\r
++:108A90005C061FE5280090E5010080E268161FE5EE\r
++:108AA000280081E570161FE5201091E5010050E1D6\r
++:108AB0000700001A80061FE5100090E588161FE5E4\r
++:108AC000140081E50000A0E394161FE5280081E56D\r
++:108AD000060000EAA0061FE5141090E5A8061FE5B1\r
++:108AE0001C0090E5001181E0B4061FE5141080E53C\r
++:108AF000BC061FE5180090E5000050E31000000AD6\r
++:108B0000CC061FE5240090E5010080E2D8161FE5A1\r
++:108B1000240081E5E0161FE5181091E5010050E101\r
++:108B20000700001A0400A0E3350A80E2001090E577\r
++:108B3000011C81E3001080E50010A0E308071FE599\r
++:108B4000241080E50C071FE50100D0E5010050E38B\r
++:108B50001B00001A20071FE55000D0E5000050E37D\r
++:108B60001600000A0010A0E334071FE55010C0E50E\r
++:108B70003C071FE5140090E53C171FE5280081E540\r
++:108B8000071DA0E3011981E24C071FE5BC12C0E1FB\r
++:108B90000110A0E30200A0E35A0300EB0000A0E3F1\r
++:108BA0006C171FE55400C1E50100A0E374171FE531\r
++:108BB0000000C1E50010A0E380071FE50110C0E53B\r
++:108BC0001A0000EA90071FE55000D0E5000050E3CE\r
++:108BD0001600000A0000A0E3A4171FE55000C1E53D\r
++:108BE000AC071FE5140090E5AC171FE5280081E5F0\r
++:108BF000090DA0E3010980E2BC171FE5BC02C1E139\r
++:108C00000110A0E30200A0E33E0300EB0000A0E39C\r
++:108C1000DC171FE55400C1E50110A0E3E4071FE5E0\r
++:108C20000110C0E50010A0E3F0071FE50010C0E54B\r
++:108C30000080BDE800402DE904081FE50000D0E5F4\r
++:108C4000000050E30000000A0080BDE80100A0E33E\r
++:108C50001C181FE54C00C1E590061FE50100D0E59A\r
++:108C6000010050E30600001A330AA0E3000090E57B\r
++:108C7000FF0FC0E3081080E3330AA0E3001080E593\r
++:108C8000050000EA330AA0E3000090E5FF0FC0E30F\r
++:108C9000040080E3331AA0E3000081E568081FE5C3\r
++:108CA000440090E5010080E274181FE5440081E56E\r
++:108CB0007C181FE53C1091E5010050E10700001A07\r
++:108CC0008C081FE52C0090E594181FE5300081E525\r
++:108CD0000000A0E3A0181FE5440081E5060000EABB\r
++:108CE000AC081FE5301090E5B4081FE5380090E5AA\r
++:108CF000001181E0C0081FE5301080E5C8081FE5BD\r
++:108D0000340090E5000050E31000000AD8081FE589\r
++:108D1000400090E5010080E2E4181FE5400081E595\r
++:108D2000EC181FE5341091E5010050E10700001A2E\r
++:108D30000400A0E3350A80E2001090E5801081E392\r
++:108D4000001080E50010A0E314091FE5401080E545\r
++:108D500088071FE50100D0E5010050E31A00001A62\r
++:108D60002C091FE54800D0E5000050E31500000A7B\r
++:108D70000010A0E340091FE54810C0E548091FE5C1\r
++:108D8000300090E548191FE5200081E5071DA0E3AC\r
++:108D900054091FE5B412C0E10010A0E30200A0E3F3\r
++:108DA000D80200EB0000A0E374191FE54C00C1E5F8\r
++:108DB0000100A0E3EC171FE50000C1E50010A0E3EF\r
++:108DC000F8071FE50110C0E5190000EA98091FE542\r
++:108DD0004800D0E5000050E31500000A0000A0E3C1\r
++:108DE000AC191FE54800C1E5B4091FE5300090E566\r
++:108DF000B4191FE5200081E5090DA0E3C0191FE5A6\r
++:108E0000B402C1E10010A0E30200A0E3BD0200EB48\r
++:108E10000000A0E3E0191FE54C00C1E50110A0E34C\r
++:108E200058081FE50110C0E50010A0E364081FE525\r
++:108E30000010C0E50080BDE80010A0E1020111E3D0\r
++:108E40000300000A100A1FE5300090E50EF0A0E1D3\r
++:108E5000020000EA200A1FE5140090E50EF0A0E1F0\r
++:108E60000EF0A0E193F021E30EF0A0E113F021E376\r
++:108E70000EF0A0E100402DE9AEDDFFEB6C009FE5B8\r
++:108E8000A7E1FFEB010050E32200001A350AA0E33E\r
++:108E9000240090E5020010E31E00001A50009FE538\r
++:108EA0002C0090E5011080E244009FE52C1080E545\r
++:108EB00040309FE540209FE540109FE52C009FE556\r
++:108EC000C1E1FFEB010050E30D00001A20009FE517\r
++:108ED000041090E5350AA0E3141080E510009FE52A\r
++:108EE000000090E5351AA0E3100081E5090000EAD2\r
++:108EF0003C580100A84D0100DC4D0100AC4D0100C3\r
++:108F0000A84D010018001FE5180090E5011080E24F\r
++:108F100024001FE5181080E588DDFFEB0080BDE828\r
++:108F200030402DE90050A0E10140A0E181DDFFEBE0\r
++:108F300044001FE5300090E5011080E250001FE57D\r
++:108F4000301080E50420A0E10510A0E164001FE5D9\r
++:108F50000030A0E37CE1FFEB010050E30400000AD5\r
++:108F600074001FE5140090E5011080E280001FE509\r
++:108F7000141080E571DDFFEB3080BDE830402DE955\r
++:108F80000050A0E10140A0E19C001FE5300090E509\r
++:108F9000011080E2A8001FE5301080E50420A0E168\r
++:108FA0000510A0E1BC001FE50030A0E366E1FFEB87\r
++:108FB000010050E30400000ACC001FE5140090E516\r
++:108FC000011080E2D8001FE5141080E53080BDE874\r
++:108FD0000EF0A0E10010A0E3EC001FE50C1080E50E\r
++:108FE0000010A0E3F8001FE5101080E50010A0E3DA\r
++:108FF00004011FE5141080E50010A0E310011FE537\r
++:10900000181080E50010A0E31C011FE5201080E58A\r
++:109010000010A0E328011FE5241080E50010A0E364\r
++:1090200034011FE5281080E50010A0E340011FE592\r
++:109030002C1080E50010A0E34C011FE5301080E506\r
++:109040000010A0E35C011FE50010C0E50010A0E3E4\r
++:1090500068011FE50110C0E50010A0E374011FE5E1\r
++:109060000210C0E50EF0A0E110402DE90040A0E3A1\r
++:1090700030DDFFEB350AA0E3240090E5010010E3AA\r
++:109080001F00001A98011FE5240090E5011080E2FE\r
++:10909000A4011FE5241080E5AC011FE50C0090E55C\r
++:1090A000011080E2B8011FE50C1080E5C0011FE54A\r
++:1090B0000C0090E51F0000E2CC111FE50C0081E5DB\r
++:1090C000350AA0E3200090E540109FE50C0081E503\r
++:1090D000350AA0E31C1090E530009FE5081080E5FC\r
++:1090E000350AA0E3181090E520009FE5041080E504\r
++:1090F000350AA0E30C0090E510109FE5000081E523\r
++:109100000140A0E30DDDFFEB0400A0E11080BDE80D\r
++:10911000C05901001080BDE8F0402DE930021FE584\r
++:10912000200090E5010080E23C121FE5200081E56F\r
++:1091300044021FE5101090E54C021FE50C0090E57D\r
++:10914000000051E10500001A5C021FE5280090E5CF\r
++:10915000010080E268121FE5280081E5F080BDE88B\r
++:109160000060A0E35C001FE5000090E50008A0E1BE\r
++:109170002008A0E10B0050E300F18F90550000EAB9\r
++:109180000A0000EA130000EA180000EA1A0000EAE8\r
++:109190001E0000EA220000EA240000EA300000EA93\r
++:1091A0004C0000EA4B0000EA4A0000EA450000EAF1\r
++:1091B000A8001FE5040090E52054A0E1B4001FE5DD\r
++:1091C000040090E5FF7000E20D09A0E3057180E75F\r
++:1091D0000040A0E3410000EAD0001FE5045090E504\r
++:1091E0000D09A0E3056190E70241A0E33B0000EA1E\r
++:1091F00032FDFFEB0040A0E3380000EAF4001FE579\r
++:10920000040090E58FFCFFEB0040A0E3330000EA90\r
++:1092100008011FE5040090E5EDFCFFEB0040A0E332\r
++:109220002E0000EA0FFDFFEB0040A0E32B0000EA58\r
++:1092300028011FE5040090E5020110E30300000A85\r
++:109240000201A0E3FBFEFFEB0060A0E1020000EAE8\r
++:109250000000A0E3F7FEFFEB0060A0E10241A0E305\r
++:109260001E0000EA5C011FE5040090E52054A0E127\r
++:1092700068011FE5040090E5FF7000E2830055E3FC\r
++:109280000500000A940055E30300000A950055E329\r
++:109290000100000A9C0055E30400003A5C00A0E3D2\r
++:1092A0000D0980E2001090E5021081E3001080E5D6\r
++:1092B0000D09A0E3087080E50D09A0E30C5080E5DE\r
++:1092C0000040A0E3050000EAED60A0E3FE6C86E24A\r
++:1092D0000040A0E3010000EA0440A0E3FFFFFFEA32\r
++:1092E0000610A0E10400A0E10CFFFFEB00041FE565\r
++:1092F0000C1090E508041FE5101080E5F080BDE833\r
++:1093000000402DE957FFFFEB010050E30300001A76\r
++:109310000110A0E308009FE50010C0E57DFFFFEB12\r
++:109320000080BDE8A44B010093F021E30EF0A0E122\r
++:1093300013F021E30EF0A0E1310AA0E3001090E564\r
++:10934000401081E3001080E50800A0E3310A80E2CC\r
++:10935000001090E5021B81E3001080E50308A0E304\r
++:10936000000090E50605C0E3070DC0E30318A0E385\r
++:10937000000081E50308A0E3000090E50605C0E3D6\r
++:10938000C000C0E3020C80E30318A0E3000081E505\r
++:109390000308A0E3000090E50615C0E3131DC1E338\r
++:1093A0000308A0E3001080E50308A0E3000090E5B7\r
++:1093B0000605C0E3C000C0E3010080E30318A0E39A\r
++:1093C000000081E50308A0E3000090E50605C0E386\r
++:1093D000C000C0E3041080E30308A0E3001080E5B0\r
++:1093E0000308A0E3000090E50615C0E3231DC1E3D8\r
++:1093F0000308A0E3001080E50308A0E3000090E567\r
++:109400000605C0E3C000C0E3010A80E30318A0E33F\r
++:10941000000081E50308A0E3000090E50615C0E325\r
++:10942000831DC1E30308A0E3001080E50308A0E367\r
++:10943000000090E50605C0E3C000C0E3020080E341\r
++:109440000318A0E3000081E50308A0E3000090E515\r
++:109450000615C0E3C810C1E30308A0E3001080E5CF\r
++:109460000308A0E3000090E50605C0E3C000C0E3E8\r
++:10947000020480E30318A0E3000081E50308A0E3F1\r
++:10948000000090E51615C0E3C010C1E30308A0E397\r
++:10949000001080E50308A0E3000090E52605C0E386\r
++:1094A000C000C0E30318A0E3000081E50308A0E3C7\r
++:1094B000000090E50605C0E3C000C0E3020880E3B9\r
++:1094C0000318A0E3000081E50308A0E3000090E595\r
++:1094D0000605C0E3C000C0E3020780E30318A0E371\r
++:1094E000000081E50308A0E3000090E50605C0E365\r
++:1094F000C000C0E3011280E30308A0E3001080E590\r
++:109500000308A0E3000090E58605C0E3C000C0E3C7\r
++:109510000318A0E3000081E50308A0E3000090E544\r
++:109520000111C0E30615C1E3C010C1E30308A0E3C5\r
++:10953000001080E50308A0E3000090E50605C0E305\r
++:10954000C000C0E3010780E30318A0E3000081E549\r
++:109550000308A0E3000090E51916C0E3C010C1E3C2\r
++:109560000308A0E3001080E50308A0E36C0090E589\r
++:109570000605C0E3C000C0E3011C80E30308A0E3CC\r
++:109580006C1080E50308A0E36C0090E50605C0E3DD\r
++:10959000C000C0E3020C80E30318A0E36C0081E587\r
++:1095A0000308A0E36C0090E50605C0E3130DC0E3DB\r
++:1095B0000318A0E36C0081E50308A0E36C0090E5CC\r
++:1095C0000605C0E3C000C0E3011080E30308A0E388\r
++:1095D0006C1080E50308A0E36C0090E50605C0E38D\r
++:1095E000C000C0E3040080E30318A0E36C0081E541\r
++:1095F0000308A0E36C0090E50605C0E3C000C0E3EB\r
++:10960000020B80E30318A0E36C0081E50308A0E3EC\r
++:109610006C0090E50605C0E3C000C0E3010A80E3EA\r
++:109620000318A0E36C0081E50308A0E36C0090E55B\r
++:109630000605C0E3830DC0E30318A0E36C0081E5D9\r
++:109640000308A0E36C0090E50605C0E3C000C0E39A\r
++:10965000020080E30318A0E36C0081E50308A0E3A7\r
++:109660006C0090E50605C0E3C800C0E30318A0E362\r
++:109670006C0081E50308A0E36C0090E50E05C0E3F3\r
++:10968000C000C0E30318A0E36C0081E50308A0E379\r
++:109690006C0090E51615C0E3C010C1E30308A0E319\r
++:1096A0006C1080E50308A0E36C0090E50605C0E3BC\r
++:1096B000C000C0E3020380E30318A0E36C0081E56F\r
++:1096C0000308A0E36C0090E50605C0E3C000C0E31A\r
++:1096D000021880E30308A0E36C1080E50308A0E310\r
++:1096E0006C0090E50605C0E3C000C0E3021780E30C\r
++:1096F0000308A0E36C1080E50308A0E36C0090E58C\r
++:109700004605C0E3C000C0E30318A0E36C0081E598\r
++:109710000308A0E36C0090E58605C0E3C000C0E349\r
++:109720000318A0E36C0081E50308A0E36C0090E55A\r
++:109730000605C0E3C000C0E3011180E30308A0E315\r
++:109740006C1080E50308A0E36C0090E50605C0E31B\r
++:10975000C000C0E3011780E30308A0E36C1080E5BC\r
++:109760000308A0E36C0090E51906C0E3C000C0E365\r
++:109770000318A0E36C0081E5FF00A0E30318A0E359\r
++:10978000080081E50EF0A0E10030A0E10120A0E199\r
++:10979000010053E30600000A020053E31900000A27\r
++:1097A000030053E32C00000A040053E33F00000AC7\r
++:1097B000530000EA010052E30100000A020052E3F4\r
++:1097C0000500001A0308A0E3000090E50605C0E3C9\r
++:1097D000E000C0E30318A0E3000081E5000052E3CD\r
++:1097E0000100000A020052E30500001A0308A0E38A\r
++:1097F000000090E50605C0E3D000C0E30318A0E335\r
++:10980000000081E53E0000EA010052E30100000A89\r
++:10981000020052E30500001A0308A0E3000090E5EF\r
++:109820000705C0E3C000C0E30318A0E3000081E522\r
++:10983000000052E30100000A020052E30500001A92\r
++:109840000308A0E3000090E51A06C0E3C000C0E3EF\r
++:109850000318A0E3000081E5290000EA010052E3BB\r
++:109860000100000A020052E30500001A0308A0E309\r
++:109870006C0090E50615C0E3E010C1E30308A0E327\r
++:109880006C1080E5000052E30100000A020052E380\r
++:109890000500001A0308A0E36C0090E50615C0E37C\r
++:1098A000D010C1E30308A0E36C1080E5140000EAC7\r
++:1098B000010052E30100000A020052E30500001A11\r
++:1098C0000308A0E36C0090E50705C0E3C000C0E317\r
++:1098D0000318A0E36C0081E5000052E30100000AD8\r
++:1098E000020052E30500001A0308A0E36C0090E5B3\r
++:1098F0001A16C0E3C010C1E30308A0E36C1080E5B2\r
++:10990000FFFFFFEA0EF0A0E10030A0E10120A0E19E\r
++:10991000010053E30600000A020053E34200000A7C\r
++:10992000030053E37D00000A040053E3B800000A7B\r
++:10993000F40000EA010052E30100000A020052E3D1\r
++:109940001900001ADC009FE5180090E50318A0E359\r
++:10995000180081E5CC009FE5BC11D0E10308A0E32D\r
++:109960001C1080E5BC009FE5BE01D0E10318A0E318\r
++:10997000200081E50308A0E3000090E50605C0E3B0\r
++:10998000C000C0E3200080E30318A0E3000081E5ED\r
++:109990000308A0E3000090E50605C0E3C000C0E3B3\r
++:1099A000801080E30308A0E3001080E5000052E38C\r
++:1099B0000100000A020052E31900001A64009FE54A\r
++:1099C000100090E50318A0E30C0081E554009FE52A\r
++:1099D000B411D0E10308A0E3101080E544009FE536\r
++:1099E000B611D0E10308A0E3141080E50308A0E35A\r
++:1099F000000090E50605C0E3C000C0E3101080E35E\r
++:109A00000308A0E3001080E50308A0E3000090E550\r
++:109A10000605C0E3C000C0E3401080E30308A0E3F4\r
++:109A2000001080E5B70000EAD0590100010052E3C0\r
++:109A30000100000A020052E31900001A1C001FE591\r
++:109A4000280090E50318A0E3300081E52C001FE515\r
++:109A5000BC02D0E10318A0E3340081E53C001FE51F\r
++:109A6000BE02D0E10318A0E3380081E50308A0E3BB\r
++:109A7000000090E50605C0E3C000C0E3011580E3E7\r
++:109A80000308A0E3001080E50308A0E3000090E5D0\r
++:109A90000605C0E3C000C0E3010480E30318A0E3AF\r
++:109AA000000081E5000052E30100000A020052E3D9\r
++:109AB0001900001A94001FE5200090E50318A0E3A8\r
++:109AC000240081E5A4001FE5B402D0E10318A0E35F\r
++:109AD000280081E5B4001FE5B602D0E10318A0E339\r
++:109AE0002C0081E50308A0E3000090E50605C0E333\r
++:109AF000C000C0E3021680E30308A0E3001080E585\r
++:109B00000308A0E3000090E50605C0E3C000C0E341\r
++:109B1000020580E30318A0E3000081E5790000EA74\r
++:109B2000010052E30100000A020052E31900001A8A\r
++:109B300010011FE5381090E50308A0E3481080E508\r
++:109B400020011FE5BC03D0E10318A0E34C0081E530\r
++:109B500030011FE5BE03D0E10318A0E3500081E50A\r
++:109B60000308A0E36C0090E50605C0E3C000C0E375\r
++:109B7000200080E30318A0E36C0081E50308A0E364\r
++:109B80006C0090E50605C0E3C000C0E3800080E300\r
++:109B90000318A0E36C0081E5000052E30100000A15\r
++:109BA000020052E31900001A88011FE5300090E519\r
++:109BB0000318A0E33C0081E598011FE5B403D0E160\r
++:109BC0000318A0E3400081E5A8011FE5B613D0E12A\r
++:109BD0000308A0E3441080E50308A0E36C0090E5CF\r
++:109BE0000605C0E3C000C0E3100080E30318A0E353\r
++:109BF0006C0081E50308A0E36C0090E50605C0E376\r
++:109C0000C000C0E3401080E30308A0E36C1080E5CF\r
++:109C10003C0000EA010052E30100000A020052E3A6\r
++:109C20001900001A04021FE5480090E50318A0E39C\r
++:109C3000600081E514021FE5BC14D0E10308A0E335\r
++:109C4000641080E524021FE5BE04D0E10318A0E300\r
++:109C5000680081E50308A0E36C0090E50605C0E319\r
++:109C6000C000C0E3011580E30308A0E36C1080E5A9\r
++:109C70000308A0E36C0090E50605C0E3C000C0E364\r
++:109C8000010480E30318A0E36C0081E5000052E3C7\r
++:109C90000100000A020052E31900001A7C021FE5CD\r
++:109CA000400090E50318A0E3540081E58C021FE515\r
++:109CB000B404D0E10318A0E3580081E59C021FE53D\r
++:109CC000B604D0E10318A0E35C0081E50308A0E33B\r
++:109CD0006C0090E50605C0E3C000C0E3021680E317\r
++:109CE0000308A0E36C1080E50308A0E36C0090E596\r
++:109CF0000605C0E3C000C0E3020580E30318A0E34B\r
++:109D00006C0081E5FFFFFFEA0EF0A0E100402DE9C5\r
++:109D100000E0A0E10130A0E102C0A0E103005EE3A9\r
++:109D20000200000A04005EE34000000A7F0000EA2F\r
++:109D3000010053E31B00001A0308A0E36C0090E548\r
++:109D40000615C0E3C410C1E30308A0E36C1080E56E\r
++:109D500004005CE31200001A0308A0E36C0090E525\r
++:109D60000605C0E3070DC0E30318A0E36C0081E51E\r
++:109D70000308A0E36C0090E50605C0E30B0DC0E30B\r
++:109D80000318A0E36C0081E50308A0E36C0090E5F4\r
++:109D90000605C0E3C000C0E3010B80E30318A0E3A5\r
++:109DA0006C0081E5200000EA000053E31E00001A69\r
++:109DB0000308A0E36C0090E50605C0E3C000C0E323\r
++:109DC000041080E30308A0E36C1080E50308A0E31F\r
++:109DD0006C0090E5010B10E31300000A0308A0E3F8\r
++:109DE0006C0090E50605C0E3C000C0E3011C80E301\r
++:109DF0000308A0E36C1080E50308A0E36C0090E585\r
++:109E00000605C0E3C000C0E3021C80E30308A0E332\r
++:109E10006C1080E50308A0E36C0090E50615C0E334\r
++:109E2000131DC1E30308A0E36C1080E5400000EAC5\r
++:109E3000010053E31C00001A0308A0E36C0090E546\r
++:109E40006217C0E3C010C1E30308A0E36C1080E513\r
++:109E500003005CE31300001A0308A0E36C0090E524\r
++:109E60000605C0E3C000C0E3020480E30318A0E3DA\r
++:109E70006C0081E50308A0E36C0090E50605C0E3F3\r
++:109E8000C000C0E3010380E30318A0E36C0081E598\r
++:109E90000308A0E36C0090E52615C0E3C010C1E301\r
++:109EA0000308A0E36C1080E51F0000EA000053E304\r
++:109EB0001D00001A0308A0E36C0090E50605C0E34E\r
++:109EC000C000C0E3020780E30318A0E36C0081E553\r
++:109ED0000308A0E36C0090E5020410E31200000AFE\r
++:109EE0000308A0E36C0090E50E15C0E3C010C1E3C9\r
++:109EF0000308A0E36C1080E50308A0E36C0090E584\r
++:109F00001615C0E3C010C1E30308A0E36C1080E5A0\r
++:109F10000308A0E36C0090E50605C0E3C000C0E3C1\r
++:109F2000021380E30308A0E36C1080E5000000EA60\r
++:109F3000FFFFFFEA0080BDE80080BDE893F021E369\r
++:109F40000EF0A0E113F021E30EF0A0E130402DE986\r
++:109F500000E0A0E10140A0E10250A0E103C0A0E1C7\r
++:109F600048019FE50000D0E5000050E31100001A11\r
++:109F70000000A0E30000CEE50000A0E30000CCE577\r
++:109F80000000A0E31400CCE50000A0E32902CCE52A\r
++:109F90000000A0E32A02CCE50000A0E32B02CCE500\r
++:109FA0000000A0E32C02CCE50000A0E32D02CCE5EC\r
++:109FB0000000A0E33002CCE50000A0E30100CEE504\r
++:109FC0000100A0E30200CEE50000A0E3B401CEE171\r
++:109FD0000000A0E3B601CEE10000A0E31C008EE586\r
++:109FE0000000A0E32100CEE50300A0E32200CEE5BF\r
++:109FF0000000A0E33C008EE538008EE534008EE5DD\r
++:10A0000030008EE52C008EE528008EE524008EE5DC\r
++:10A010000000A0E340008EE50000A0E34800CEE58C\r
++:10A020000000A0E30200C4E50100C4E50000C4E5AF\r
++:10A030000100A0E38400C4E50000A0E30000C5E542\r
++:10A040000000A0E30100CCE50000A0E32200CCE585\r
++:10A050000300A0E32300CCE50010A0E3020C8CE297\r
++:10A06000BE12C0E10000A0E34C02CCE50000A0E37A\r
++:10A070004D02CCE50000A0E34402CCE50000A0E3E3\r
++:10A0800038028CE50000A0E33C028CE50000A0E370\r
++:10A0900034028CE50000A0E34502CCE50000A0E31B\r
++:10A0A0004602CCE50000A0E34702CCE53080BDE8E5\r
++:10A0B000E04D01003080BDE800402DE90010A0E334\r
++:10A0C00018001FE5041080E50000A0E324101FE540\r
++:10A0D000080081E50010A0E330001FE50C1080E5CA\r
++:10A0E0000010A0E33C001FE51010C0E50010A0E345\r
++:10A0F00048001FE51410C0E50410A0E364009FE5CC\r
++:10A100002010C0E560109FE558009FE5441080E5F1\r
++:10A110000400A0E354109FE52400C1E50410A0E36F\r
++:10A1200044009FE50C10C0E5171DA0E334009FE537\r
++:10A13000B811C0E1171DA0E3011981E22C009FE5D1\r
++:10A14000B012C0E128109FE520009FE5481280E58D\r
++:10A1500018309FE510209FE518109FE504009FE54B\r
++:10A1600079FFFFEB0080BDE8405A0100145B01005D\r
++:10A17000245B0100F84D01008C5A01000080BDE80D\r
++:10A1800000402DE90010A0E3E0001FE5201080E56D\r
++:10A190000000A0E3EC101FE5240081E50010A0E31F\r
++:10A1A000F8001FE5281080E50010A0E304011FE57A\r
++:10A1B0002C10C0E50010A0E310011FE53010C0E531\r
++:10A1C0000310A0E364009FE52010C0E560109FE548\r
++:10A1D00058009FE5441080E50300A0E354109FE57C\r
++:10A1E0002400C1E50310A0E344009FE50C10C0E586\r
++:10A1F0000B1DA0E334009FE5B811C0E10B1DA0E3E7\r
++:10A20000011981E22C009FE5B012C0E128109FE502\r
++:10A2100020009FE5481280E518309FE510209FE55B\r
++:10A2200018109FE504009FE547FFFFEB0080BDE8A5\r
++:10A23000846701005868010068680100144E01003D\r
++:10A24000D06701000080BDE800402DE9EC001FE56B\r
++:10A250004800D0E5000050E31700000A3D0AA0E3E3\r
++:10A26000240090E5020010E31300001AB1D8FFEBC0\r
++:10A270000000A0E314111FE54800C1E51C011FE523\r
++:10A280001C1090E53D0AA0E3141080E52C009FE52A\r
++:10A29000BE02D0E1000050E30600000A1C009FE56A\r
++:10A2A000BE02D0E10A10A0E3251B81E2000881E193\r
++:10A2B0003D1AA0E3100081E5A0D8FFEB0080BDE8C7\r
++:10A2C000245D01000080BDE800402DE9A4001FE5E9\r
++:10A2D0004800D0E5000050E31700000A3B0AA0E365\r
++:10A2E000240090E5020010E31300001A91D8FFEB60\r
++:10A2F0000000A0E3CC101FE54800C1E5D4001FE535\r
++:10A300001C1090E53B0AA0E3141080E52C009FE5AB\r
++:10A31000BE02D0E1000050E30600000A1C009FE5E9\r
++:10A32000BE02D0E10A10A0E3931C81E2000881E1A3\r
++:10A330003B1AA0E3100081E580D8FFEB0080BDE868\r
++:10A34000686A01000080BDE800402DE9BDFFFFEB19\r
++:10A35000DCFFFFEB0080BDE80080BDE80020A0E14D\r
++:10A360000130A0E1000092E50F0BC0E3FF0FC0E356\r
++:10A37000030080E1000082E50EF0A0E10EF0A0E114\r
++:10A380000020A0E10130A0E10F0B83E3FF0F80E389\r
++:10A390000000E0E1001092E5010000E0000082E52D\r
++:10A3A0000EF0A0E10EF0A0E100402DE973FFFFEBFD\r
++:10A3B00060D8FFEB830FA0E3030880E2001090E574\r
++:10A3C000201081E3001080E5810FA0E3030880E204\r
++:10A3D000001090E52010C1E3001080E54010A0E3DC\r
++:10A3E0003A0AA0E30C1080E5B000A0E33A1AA0E31B\r
++:10A3F000040081E5B000A0E33A1AA0E3080081E57B\r
++:10A40000E010A0E33A0AA0E3D3FFFFEB3F1CA0E378\r
++:10A410003A0AA0E3D0FFFFEB3F19A0E33A0AA0E31A\r
++:10A42000CDFFFFEB3800A0E3320A80E2001090E598\r
++:10A43000041081E3001080E50800A0E3310A80E207\r
++:10A44000001090E5011381E3001080E52000A0E3F7\r
++:10A45000310A80E2001090E51A1081E3001080E5D7\r
++:10A46000810FA0E3030880E2001090E5201081E353\r
++:10A47000001080E50010A0E33B0AA0E3141080E583\r
++:10A480000710A0E3931C81E23B0AA0E3101080E5D3\r
++:10A490000400A0E33B0A80E2001090E5041081E391\r
++:10A4A000001080E525D8FFEB0080BDE80080BDE806\r
++:10A4B00000402DE9FFFEFFEB1ED8FFEB4010A0E3AC\r
++:10A4C0000F09A0E30C1080E5170EA0E30F19A0E31D\r
++:10A4D000040081E5171EA0E30F09A0E3081080E542\r
++:10A4E000E010A0E30F09A0E39BFFFFEB3F1CA0E3FC\r
++:10A4F0000F09A0E398FFFFEB3F19A0E30F09A0E3CA\r
++:10A5000095FFFFEB3C00A0E3320A80E2001090E5EB\r
++:10A51000041081E3001080E50800A0E3310A80E226\r
++:10A52000001090E5021381E3001080E52800A0E30D\r
++:10A53000310A80E2001090E51A1081E3001080E5F6\r
++:10A540000010A0E33D0AA0E3141080E50710A0E38B\r
++:10A55000251B81E23D0AA0E3101080E50400A0E382\r
++:10A560003D0A80E2001090E5041081E3001080E5D0\r
++:10A57000F2D7FFEB0080BDE80080BDE810402DE978\r
++:10A5800088FFFFEBC9FFFFEB0040A0E30E0054E3A0\r
++:10A59000040000BA080000EA010084E20048A0E1DB\r
++:10A5A0002448A0E1F8FFFFEA0110A0E304009FE5C2\r
++:10A5B0000410C0E7F7FFFFEA205A01000110A0E3F2\r
++:10A5C00018051FE50010C0E51080BDE81080BDE84B\r
++:10A5D00010402DE90040A0E3D6D7FFEB34051FE57E\r
++:10A5E0000000D0E5010050E32800001A3B0AA0E378\r
++:10A5F000240090E5010010E32400001A54051FE533\r
++:10A60000200090E5010080E260151FE5200081E553\r
++:10A6100068051FE52C00D0E5010080E274151FE5F8\r
++:10A620002C00C1E57C051FE52C00D0E51F0000E2F1\r
++:10A6300088151FE52C00C1E53B0AA0E3201090E53A\r
++:10A6400054009FE50C1080E53B0AA0E31C1090E548\r
++:10A6500044009FE5081080E53B0AA0E3180090E560\r
++:10A6600034109FE5040081E53B0AA0E30C1090E55F\r
++:10A6700024009FE5001080E50140A0E30400A0E372\r
++:10A680003B0A80E2001090E5081081E3001080E5AD\r
++:10A69000AAD7FFEB0400A0E11080BDE874670100B9\r
++:10A6A0001080BDE810402DE90040A0E3A1D7FFEBEA\r
++:10A6B00008061FE50000D0E5010050E32800001A5D\r
++:10A6C0003D0AA0E3240090E5010010E32400001AF5\r
++:10A6D00028061FE5040090E5010080E234161FE51E\r
++:10A6E000040081E53C061FE51000D0E5010080E292\r
++:10A6F00048161FE51000C1E550061FE51000D0E523\r
++:10A700001F0000E25C161FE51000C1E53D0AA0E352\r
++:10A71000201090E554009FE50C1080E53D0AA0E371\r
++:10A720001C1090E544009FE5081080E53D0AA0E379\r
++:10A73000180090E534109FE5040081E53D0AA0E390\r
++:10A740000C1090E524009FE5001080E50140A0E397\r
++:10A750000400A0E33D0A80E2001090E5081081E3C8\r
++:10A76000001080E575D7FFEB0400A0E11080BDE884\r
++:10A77000305A01001080BDE8F0472DE90040A0E10B\r
++:10A7800001A0A0E10260A0E10350A0E120909DE5BE\r
++:10A790000CD04DE20688A0E12888A0E12608A0E1BF\r
++:10A7A000B000CDE1B250CDE12508A0E1B400CDE18B\r
++:10A7B000B690CDE12908A0E1B800CDE15DD7FFEB6F\r
++:10A7C0000070A0E3080057E1040000BA140000EA9A\r
++:10A7D000010087E20078A0E12778A0E1F8FFFFEA16\r
++:10A7E00087C0A0E1BC109DE10100D4E5800084E0B9\r
++:10A7F000B410C0E10200D4E5010080E20200C4E52B\r
++:10A800000100D4E5010080E2FF0000E20100C4E5A0\r
++:10A81000400050E30100001A0000A0E30100C4E57D\r
++:10A82000EAFFFFEA45D7FFEB0CD08DE2F087BDE8E9\r
++:10A830000CD08DE2F087BDE830402DE900C0A0E1EA\r
++:10A840000150A0E10240A0E103E0A0E10CD04DE204\r
++:10A85000FF1005E2000051E30100001A0CD08DE268\r
++:10A860003080BDE82528A0E10020CDE5252CA0E121\r
++:10A870000120CDE50240CDE52424A0E10320CDE573\r
++:10A880002428A0E10420CDE5242CA0E10520CDE57D\r
++:10A8900006E0CDE52E24A0E10720CDE52E28A0E19D\r
++:10A8A0000820CDE52E2CA0E10920CDE50000A0E395\r
++:10A8B000010050E1030000BA140000EA012080E228\r
++:10A8C000FF0002E2F9FFFFEA0030A0E32922DCE505\r
++:10A8D00082218CE0283082E50030DDE72922DCE5AA\r
++:10A8E00082218CE02C3082E52922DCE5012082E205\r
++:10A8F000FF2002E22922CCE5BA30DCE1030052E17C\r
++:10A900000100001A0020A0E32922CCE5EAFFFFEABB\r
++:10A910002822DCE5012082E02822CCE50CD08DE263\r
++:10A920003080BDE80CD08DE23080BDE800402DE9DC\r
++:10A930000010A0E3CC071FE50110C0E50010A0E364\r
++:10A94000D8071FE52210C0E50310A0E3E4071FE5C8\r
++:10A950002310C0E50010A0E3F0071FE54C12C0E58E\r
++:10A960000010A0E3FC071FE54D12C0E50210A0E3B4\r
++:10A970000F09A0E381FEFFEB0E1BA0E30F09A0E38C\r
++:10A9800075FEFFEB0080BDE80080BDE8F0412DE9D9\r
++:10A9900004D04DE20040A0E3F0081FE51410D0E51C\r
++:10A9A000F8081FE51000D0E5000051E10600001A8C\r
++:10A9B00008091FE50C0090E5010080E214191FE56D\r
++:10A9C0000C0081E504D08DE2F081BDE824091FE58B\r
++:10A9D000080090E5010080E230191FE5080081E5DC\r
++:10A9E00078021FE5000090E50008A0E12008A0E142\r
++:10A9F000010B40E2170050E300F18F90600200EA83\r
++:10AA0000160000EA220000EA380000EA720000EABC\r
++:10AA10007E0000EAAB0000EAC40000EAF50000EAAC\r
++:10AA2000F80000EA180100EA4F0100EA590100EAC3\r
++:10AA3000670100EA750100EA830100EA910100EA7A\r
++:10AA40009F0100EAAD0100EABB0100EAE00100EA73\r
++:10AA5000FB0100EA060200EA1B0200EA310200EAFA\r
++:10AA6000B8091FE50080D0E500031FE5040090E56C\r
++:10AA7000000050E30200000A0000A0E3D4191FE523\r
++:10AA80000000C1E589FEFFEBE0091FE50080C0E59D\r
++:10AA90003D0200EA34091FE50000D0E5000050E364\r
++:10AAA0000000000A380200EA0110A0E34C091FE58B\r
++:10AAB0000010C0E54C031FE5040090E55C191FE59C\r
++:10AAC0000C0081E564191FE5040081E564031FE5BE\r
++:10AAD000080090E574191FE5B800C1E174031FE593\r
++:10AAE0000C0090E584191FE5BA00C1E1260200EAD6\r
++:10AAF00088091FE50000D0E5000050E30000000ACF\r
++:10AB0000210200EA9C031FE50C0090E5400050E3A1\r
++:10AB10000700009A0740A0E3B0031FE5000090E59E\r
++:10AB2000FF0000E2040480E1295B80E3855085E3B7\r
++:10AB3000150200EA0110A0E3D0091FE50010C0E5EE\r
++:10AB4000D8031FE5041090E5E0091FE5101080E52B\r
++:10AB5000E8091FE50C1080E5F0091FE5041080E509\r
++:10AB6000F8031FE5080090E5001A1FE5B800C1E1F1\r
++:10AB700008041FE50C0090E5101A1FE5BA00C1E1BA\r
++:10AB8000180A1FE5BA00D0E1201A1FE52802C1E526\r
++:10AB90000060A0E32C0A1FE5BA00D0E1060050E1F6\r
++:10ABA000040000CA0B0000EA010086E20068A0E190\r
++:10ABB0002668A0E1F6FFFFEA0010A0E3540A1FE5B3\r
++:10ABC000860180E0281080E5600A1FE5860180E0AC\r
++:10ABD0002C6080E5F3FFFFEAEB0100EA740A1FE551\r
++:10ABE0001400D0E5000050E30000000AE60100EA8E\r
++:10ABF0000110A0E38C0A1FE51410C0E594041FE5C2\r
++:10AC0000040090E59C1A1FE5180081E5DE0100EACA\r
++:10AC1000B00A1FE50000D0E5000050E32100000A63\r
++:10AC2000C00A1FE50100D0E5000050E31C00001A37\r
++:10AC300040D6FFEB0F09A0E3000090E500008DE592\r
++:10AC400000009DE5040010E30200000A0410A0E3E8\r
++:10AC50000F09A0E3C0FDFFEB00009DE5080010E335\r
++:10AC60000200000A0810A0E30F09A0E3BAFDFFEB01\r
++:10AC700000009DE5100010E30200000A1010A0E3A0\r
++:10AC80000F09A0E3B4FDFFEB0100A0E32C1B1FE5BF\r
++:10AC90000100C1E50110A0E30F09A0E3AEFDFFEB49\r
++:10ACA00026D6FFEB060000EA0C40A0E344051FE5B2\r
++:10ACB000000090E5FF0000E2040480E1295B80E3EE\r
++:10ACC000855085E3B00100EA1AD6FFEB0010A0E33F\r
++:10ACD000700B1FE50110C0E5680B1FE58400D0E58F\r
++:10ACE000010050E30F00001A880B1FE52200D0E599\r
++:10ACF000030050E30B00001A0010A0E39C0B1FE5BB\r
++:10AD00002110C0E50300A0E3A81B1FE52200C1E558\r
++:10AD10000110A0E30F09A0E398FDFFEB071CA0E3DF\r
++:10AD20000F09A0E38CFDFFEB04D6FFEB960100EAD0\r
++:10AD3000C80B1FE50000D0E5000050E32500000A25\r
++:10AD4000D80B1FE51400D0E5000050E32100000AF5\r
++:10AD5000E80B1FE50100D0E5000050E31C00001ADD\r
++:10AD6000F4D5FFEB0F09A0E3000090E500008DE5AE\r
++:10AD700000009DE5200010E30200001A2010A0E36F\r
++:10AD80000F09A0E374FDFFEB00009DE5400010E318\r
++:10AD90000200001A4010A0E30F09A0E36EFDFFEBD4\r
++:10ADA00000009DE5800010E30200001A8010A0E37F\r
++:10ADB0000F09A0E368FDFFEB0100A0E3541C1FE5B1\r
++:10ADC0000100C1E50210A0E30F09A0E362FDFFEB63\r
++:10ADD000DAD5FFEB060000EA0C40A0E374061FE59D\r
++:10ADE000000090E5FF0000E2040480E1295B80E3BD\r
++:10ADF000855085E3640100EACED5FFEBCAFEFFEB88\r
++:10AE0000CED5FFEB600100EAA0061FE5040090E547\r
++:10AE1000AC1C1FE5040081E5B0061FE5080090E5C5\r
++:10AE2000BC1C1FE5B800C1E1C0061FE50C0090E5A1\r
++:10AE3000CC1C1FE5BA00C1E10100A0E3D81C1FE54E\r
++:10AE40000000C1E5D40C1FE58400D0E5010050E30B\r
++:10AE50000C00001AEC0C1FE53002D0E5040050E3B2\r
++:10AE60000800000A340C1FE53002D0E5040050E36E\r
++:10AE70000400000A0300A0E3081D1FE58400C1E5EB\r
++:10AE80001C0D1FE5E70400EB3F0100EA2C0D1FE558\r
++:10AE90000100D0E5000050E32B00000A34071FE555\r
++:10AEA000040090E50078A0E12778A0E1000057E3D6\r
++:10AEB0000000001A340100EA480D1FE50200D0E549\r
++:10AEC000400060E2070050E1060000AA0540A0E350\r
++:10AED000600D1FE50200D0E50910A0E3291B81E207\r
++:10AEE000005881E1280100EA92D5FFEB84071FE5B5\r
++:10AEF0000C3090E508002DE990071FE5083090E53B\r
++:10AF000098071FE5042090E5A81D1FE59C0D1FE58F\r
++:10AF100018FEFFEB04D08DE2A80D1FE58400D0E5FC\r
++:10AF2000010050E30600001AC81D1FE5BC0D1FE517\r
++:10AF3000110400EB000050E30100000ADC0D1FE5E6\r
++:10AF40009B0400EB7DD5FFEB060000EA0C40A0E37C\r
++:10AF5000E8071FE5000090E5FF0000E2040480E13F\r
++:10AF6000295B80E3855085E3070100EA71D5FFEB9B\r
++:10AF700008081FE50C3090E510081FE5082090E553\r
++:10AF800018081FE5041090E5200E1FE529FEFFEBD1\r
++:10AF90006AD5FFEBFC0000EA0110A0E33C0E1FE5C0\r
++:10AFA0004810C0E5440E1FE5241090E53D0AA0E3DB\r
++:10AFB000141080E50000A0E3581E1FE5240081E581\r
++:10AFC0000B10A0E3251B81E23D0AA0E3101080E5F1\r
++:10AFD000ED0000EA0110A0E3780E1FE54810C0E57F\r
++:10AFE000800E1FE5280090E53D1AA0E3140081E5DE\r
++:10AFF0000000A0E3941E1FE5280081E50C00A0E3FB\r
++:10B00000250B80E23D1AA0E3100081E5DE0000EA96\r
++:10B010000110A0E3B40E1FE54810C0E5BC0E1FE50B\r
++:10B020002C0090E53D1AA0E3140081E50000A0E3A8\r
++:10B03000D01E1FE52C0081E50D10A0E3251B81E249\r
++:10B040003D0AA0E3101080E5CF0000EA0110A0E364\r
++:10B05000F00E1FE54810C0E5F80E1FE5300090E542\r
++:10B060003D1AA0E3140081E50010A0E30C0F1FE5DA\r
++:10B07000301080E50E10A0E3251B81E23D0AA0E31D\r
++:10B08000101080E5C00000EA0110A0E32C0F1FE5BE\r
++:10B090004810C0E5340F1FE5341090E53D0AA0E3E9\r
++:10B0A000141080E50010A0E3480F1FE5341080E580\r
++:10B0B0000F00A0E3250B80E23D1AA0E3100081E51C\r
++:10B0C000B10000EA0110A0E3680F1FE54810C0E5D9\r
++:10B0D000700F1FE5381090E53D0AA0E3141080E5DD\r
++:10B0E0000000A0E3841F1FE5380081E5410EA0E3C6\r
++:10B0F000090A80E23D1AA0E3100081E5A20000EAFF\r
++:10B100000110A0E3A40F1FE54810C0E5AC0F1FE538\r
++:10B110003C1090E53D0AA0E3141080E50000A0E398\r
++:10B12000C01F1FE53C0081E51100A0E3250B80E274\r
++:10B130003D1AA0E3100081E5930000EAFDD4FFEB87\r
++:10B14000D80F1FE54402D0E5010080E3E41F1FE5AE\r
++:10B150004402C1E5EC091FE5040090E5F41F1FE57A\r
++:10B16000380281E5FC091FE5081090E554009FE5D1\r
++:10B170003C1280E550009FE548109FE5400281E5C4\r
++:10B18000020BA0E33C109FE5340281E534009FE50B\r
++:10B19000381290E534009FE5401080E50219A0E3E5\r
++:10B1A00028009FE5B414C0E1011CA0E31C009FE54A\r
++:10B1B000B614C0E10010A0E30400A0E3D1F9FFEB56\r
++:10B1C000DED4FFEB700000EA245B0100745D010037\r
++:10B1D000D0590100D7D4FFEB18001FE54402D0E599\r
++:10B1E000020080E324101FE54402C1E5840A1FE544\r
++:10B1F000080090E50018A0E12118A0E1940A1FE5DD\r
++:10B20000040090E5001881E148001FE5480290E540\r
++:10B21000001080E5AC0A1FE5040090E52008A0E1DD\r
++:10B2200060101FE5481291E5B400C1E11300A0E3EE\r
++:10B23000250B80E23D1AA0E3100081E5BFD4FFEBAF\r
++:10B24000510000EABBD4FFEB88001FE54402D0E5C3\r
++:10B25000041080E394001FE54412C0E51410A0E33D\r
++:10B26000251B81E23D0AA0E3101080E5B3D4FFEB7B\r
++:10B27000450000EA0C0B1FE5080090E5FF1000E216\r
++:10B28000180B1FE5040090E5FF0000E2F1D8FFEB8A\r
++:10B290000040A0E1000054E30600000A340B1FE563\r
++:10B2A000000090E5FF0000E2040480E1295B80E3F8\r
++:10B2B000855085E3030000EA1510A0E3251B81E219\r
++:10B2C0003D0AA0E3101080E52F0000EA640B1FE5A3\r
++:10B2D000080090E5FF1000E2700B1FE5040090E508\r
++:10B2E000FF0000E2342D1FE558D9FFEB0040A0E13C\r
++:10B2F000000054E30600000A900B1FE5000090E5F3\r
++:10B30000FF0000E2040480E1295B80E3855085E3CF\r
++:10B31000030000EA1610A0E3251B81E23D0AA0E32A\r
++:10B32000101080E5180000EAC00B1FE5040090E54E\r
++:10B33000FF0000E2842D1FE50D10A0E168D9FFEBAE\r
++:10B340000040A0E1000054E30600001A1700A0E34B\r
++:10B35000250B80E200109DE5010880E13D1AA0E385\r
++:10B36000100081E5050000EA000C1FE5000090E5F3\r
++:10B37000FF0000E2040480E1295B80E3855085E35F\r
++:10B38000010000EA0440A0E3FFFFFFEA000054E3ED\r
++:10B390000100000A3D0AA0E3105080E510009FE57F\r
++:10B3A0001010D0E508009FE51410C0E504D08DE230\r
++:10B3B000F081BDE8E04D010000402DE90010A0E360\r
++:10B3C0004C009FE50110C0E50010A0E340009FE5A0\r
++:10B3D0002210C0E50310A0E334009FE52310C0E570\r
++:10B3E0000010A0E328009FE54C12C0E50010A0E388\r
++:10B3F0001C009FE54D12C0E50210A0E33A0AA0E34D\r
++:10B40000DEFBFFEB0E1BA0E33A0AA0E3D2FBFFEB4F\r
++:10B410000080BDE8686801000080BDE8F0412DE9CA\r
++:10B4200004D04DE20040A0E37C001FE53010D0E5E1\r
++:10B4300084001FE52C00D0E5000051E10600001A51\r
++:10B4400094001FE5280090E5010080E2A0101FE5B0\r
++:10B45000280081E504D08DE2F081BDE8B0001FE551\r
++:10B46000240090E5010080E2BC101FE5240081E586\r
++:10B47000DC0D1FE5000090E50008A0E12008A0E138\r
++:10B48000030C40E2170050E300F18F90620200EAE3\r
++:10B49000160000EA220000EA390000EA730000EA20\r
++:10B4A0007F0000EAAD0000EAC70000EAF80000EA09\r
++:10B4B000FB0000EA1C0100EA530100EA5B0100EA1C\r
++:10B4C000690100EA770100EA850100EA930100EAD8\r
++:10B4D000A10100EAAF0100EABE0100EAE10100EAD1\r
++:10B4E000FC0100EA070200EA1C0200EA330200EA5B\r
++:10B4F00044011FE50080D0E5640E1FE5040090E5DF\r
++:10B50000000050E30200000A0000A0E360111FE504\r
++:10B510000000C1E5A3FBFFEB6C011FE50080C0E567\r
++:10B520003F0200EA0C009FE50000D0E5000050E378\r
++:10B530000100000A3A0200EA846701000110A0E35A\r
++:10B5400010001FE50010C0E5B40E1FE5040090E5F3\r
++:10B5500020101FE50C0081E528101FE5040081E59F\r
++:10B56000CC0E1FE5080090E538101FE5B800C1E1DA\r
++:10B57000DC0E1FE50C0090E548101FE5BA00C1E1A4\r
++:10B58000270200EA78011FE50000D0E5000050E343\r
++:10B590000000000A220200EA040F1FE50C0090E5FB\r
++:10B5A000400050E30700009A0740A0E3180F1FE592\r
++:10B5B000000090E5FF0000E2040480E1A35C80E36A\r
++:10B5C000855085E3160200EA0110A0E3C0011FE5E3\r
++:10B5D0000010C0E5400F1FE5041090E5D0011FE505\r
++:10B5E000101080E5D8011FE50C1080E5E0011FE593\r
++:10B5F000041080E5600F1FE5080090E5F0111FE5DD\r
++:10B60000B800C1E1700F1FE50C0090E500121FE5C6\r
++:10B61000BA00C1E108021FE5BA00D0E110121FE52F\r
++:10B620002802C1E50060A0E31C021FE5BA00D0E1DA\r
++:10B63000060050E1040000CA0B0000EA010086E2A7\r
++:10B640000068A0E12668A0E1F6FFFFEA0010A0E391\r
++:10B6500044021FE5860180E0281080E550021FE5C6\r
++:10B66000860180E02C6080E5F3FFFFEAEC0100EA50\r
++:10B6700064021FE51400D0E5000050E30000000A5A\r
++:10B68000E70100EA0110A0E37C021FE51410C0E509\r
++:10B69000FC0F1FE5040090E58C121FE5180081E502\r
++:10B6A000DF0100EA74011FE50000D0E5000050E36F\r
++:10B6B0002100000A84011FE50100D0E5000050E3ED\r
++:10B6C0001C00001A9BD3FFEB3A0AA0E3000090E5B0\r
++:10B6D00000008DE500009DE5040010E30200000A73\r
++:10B6E0000410A0E33A0AA0E31BFBFFEB00009DE57A\r
++:10B6F000080010E30200000A0810A0E33A0AA0E3E1\r
++:10B7000015FBFFEB00009DE5100010E30200000AAE\r
++:10B710001010A0E33A0AA0E30FFBFFEB0100A0E347\r
++:10B72000F0111FE50100C1E50110A0E33A0AA0E312\r
++:10B7300009FBFFEB81D3FFEB060000EA0C40A0E31E\r
++:10B7400014009FE5000090E5FF0000E2040480E1A2\r
++:10B75000A35C80E3855085E3B10100EA74670100D2\r
++:10B7600074D3FFEB0010A0E338021FE50110C0E521\r
++:10B7700050009FE58400D0E5010050E30F00001A5F\r
++:10B7800050021FE52200D0E5030050E30B00001A31\r
++:10B790000010A0E364021FE52110C0E50300A0E350\r
++:10B7A00070121FE52200C1E50110A0E33A0AA0E3F0\r
++:10B7B000F2FAFFEB071CA0E33A0AA0E3E6FAFFEB7C\r
++:10B7C0005ED3FFEB960100EAD0670100C0031FE5DE\r
++:10B7D0000000D0E5000050E32500000AD0031FE57B\r
++:10B7E0001400D0E5000050E32100000AE0031FE54B\r
++:10B7F0000100D0E5000050E31C00001A4DD3FFEB20\r
++:10B800003A0AA0E3000090E500008DE500009DE508\r
++:10B81000200010E30200001A2010A0E33A0AA0E37F\r
++:10B82000CDFAFFEB00009DE5400010E30200001A96\r
++:10B830004010A0E33A0AA0E3C7FAFFEB00009DE541\r
++:10B84000800010E30200001A8010A0E33A0AA0E38F\r
++:10B85000C1FAFFEB0100A0E34C141FE50100C1E5B4\r
++:10B860000210A0E33A0AA0E3BBFAFFEB33D3FFEBED\r
++:10B87000060000EA0C40A0E324011FE5000090E56B\r
++:10B88000FF0000E2040480E1A35C80E3855085E3CF\r
++:10B89000630100EA27D3FFEBC6FEFFEB27D3FFEBE4\r
++:10B8A0005F0100EA50011FE5040090E574109FE578\r
++:10B8B000040081E560011FE5080090E564109FE544\r
++:10B8C000B800C1E170011FE50C0090E554109FE540\r
++:10B8D000BA00C1E10100A0E348109FE50000C1E506\r
++:10B8E00020011FE58400D0E5010050E30C00001AA0\r
++:10B8F00030071FE53002D0E5030050E30800000ADE\r
++:10B90000F4041FE53002D0E5030050E30400000A10\r
++:10B910000300A0E354111FE58400C1E504009FE586\r
++:10B92000400200EB3E0100EA58680100FC031FE5FD\r
++:10B930000100D0E5000050E32B00000AE8011FE5FC\r
++:10B94000040090E50078A0E12778A0E1000057E32B\r
++:10B950000000001A320100EA98011FE50200D0E55C\r
++:10B96000400060E2070050E1060000AA0540A0E3A5\r
++:10B97000B0011FE50200D0E50910A0E3A31C81E29D\r
++:10B98000005881E1260100EAEAD2FFEB38021FE508\r
++:10B990000C3090E508002DE944021FE5083090E5E1\r
++:10B9A0004C021FE5042090E578141FE5EC011FE52B\r
++:10B9B00070FBFFEB04D08DE2F8011FE58400D0E5B9\r
++:10B9C000010050E30600001A98141FE50C021FE561\r
++:10B9D000690100EB000050E30100000AAC041FE520\r
++:10B9E000F30100EBD5D2FFEB060000EA0C40A0E328\r
++:10B9F0009C021FE5000090E5FF0000E2040480E1E6\r
++:10BA0000A35C80E3855085E3050100EAB8021FE5E9\r
++:10BA10000C3090E5C0021FE5082090E5C8021FE544\r
++:10BA2000041090E518061FE582FBFFEBFC0000EA1E\r
++:10BA30000110A0E304051FE54810C0E50C051FE553\r
++:10BA4000241090E53B0AA0E3141080E50000A0E379\r
++:10BA500020151FE5240081E50B10A0E3931C81E273\r
++:10BA60003B0AA0E3101080E5ED0000EA0110A0E31E\r
++:10BA700040051FE54810C0E548051FE5280090E592\r
++:10BA80003B1AA0E3140081E50000A0E35C151FE56C\r
++:10BA9000280081E5C30FA0E3090A80E23B1AA0E376\r
++:10BAA000100081E5DE0000EA0110A0E37C051FE53F\r
++:10BAB0004810C0E584051FE52C0090E53B1AA0E383\r
++:10BAC000140081E50000A0E398151FE52C0081E536\r
++:10BAD0000D10A0E3931C81E23B0AA0E3101080E567\r
++:10BAE000CF0000EA0110A0E3B8051FE54810C0E54B\r
++:10BAF000C0051FE5300090E53B1AA0E3140081E586\r
++:10BB00000010A0E3D4051FE5301080E50E10A0E37F\r
++:10BB1000931C81E23B0AA0E3101080E5C00000EA1C\r
++:10BB20000110A0E3F4051FE54810C0E5FC051FE582\r
++:10BB3000341090E53B0AA0E3141080E50010A0E368\r
++:10BB400010061FE5341080E50F00A0E3930C80E29F\r
++:10BB50003B1AA0E3100081E5B10000EA0110A0E368\r
++:10BB600030061FE54810C0E538061FE5381090E59F\r
++:10BB70003B0AA0E3141080E50000A0E34C161FE58B\r
++:10BB8000380081E5410EA0E3090A80E23B1AA0E3F8\r
++:10BB9000100081E5A20000EA0110A0E36C061FE599\r
++:10BBA0004810C0E528009FE53C1090E53B0AA0E363\r
++:10BBB000141080E50000A0E388161FE53C0081E535\r
++:10BBC0001100A0E3250B80E23B1AA0E3100081E501\r
++:10BBD000930000EA405A010056D2FFEBD0071FE560\r
++:10BBE0004402D0E5010080E3DC171FE54402C1E513\r
++:10BBF0009C041FE5040090E5EC171FE5380281E581\r
++:10BC0000AC041FE5081090E5FC071FE53C1280E539\r
++:10BC10004C009FE508181FE5400281E5020BA0E3F8\r
++:10BC200014181FE5340281E51C081FE5381290E561\r
++:10BC3000680A1FE5301080E50219A0E3740A1FE5C9\r
++:10BC4000B413C0E1011CA0E3800A1FE5B613C0E1F4\r
++:10BC50000010A0E30300A0E32AF7FFEB37D2FFEBCD\r
++:10BC60006F0000EAB86A010032D2FFEB60081FE5FE\r
++:10BC70004402D0E5020080E36C181FE54402C1E5F0\r
++:10BC80002C051FE5080090E50018A0E12118A0E1AF\r
++:10BC90003C051FE5040090E5001881E190081FE5D0\r
++:10BCA000480290E5001080E554051FE5040090E58A\r
++:10BCB0002008A0E1A8181FE5481291E5B400C1E1F1\r
++:10BCC0001300A0E3930C80E23B1AA0E3100081E58F\r
++:10BCD0001AD2FFEB520000EA16D2FFEBD0081FE5A4\r
++:10BCE0004402D0E5041080E3DC081FE54412C0E5FF\r
++:10BCF000C51FA0E3091A81E23B0AA0E3101080E50A\r
++:10BD00000ED2FFEB460000EAB4051FE5080090E5FF\r
++:10BD1000FF1000E2C0051FE5040090E5FF0000E20F\r
++:10BD20004CD6FFEB0040A0E1000054E30600000AFF\r
++:10BD3000DC051FE5000090E5FF0000E2040480E15F\r
++:10BD4000A35C80E3855085E3030000EA1510A0E3BF\r
++:10BD5000931C81E23B0AA0E3101080E5300000EA6A\r
++:10BD60000C061FE5080090E5FF1000E218061FE52D\r
++:10BD7000040090E5FF0000E228209FE5B3D6FFEB2A\r
++:10BD80000040A0E1000054E30700000A38061FE568\r
++:10BD9000000090E5FF0000E2040480E1A35C80E382\r
++:10BDA000855085E3040000EA205A01001610A0E344\r
++:10BDB000931C81E23B0AA0E3101080E5180000EA22\r
++:10BDC0006C061FE5040090E5FF0000E22C201FE553\r
++:10BDD0000D10A0E1C2D6FFEB0040A0E1000054E34B\r
++:10BDE0000600001A1700A0E3930C80E200109DE506\r
++:10BDF000010880E13B1AA0E3100081E5050000EA9C\r
++:10BE0000AC061FE5000090E5FF0000E2040480E1BD\r
++:10BE1000A35C80E3855085E3010000EA0440A0E3D1\r
++:10BE2000FFFFFFEA000054E30100000A3B0AA0E321\r
++:10BE3000105080E5880A1FE52C10D0E5900A1FE518\r
++:10BE40003010C0E504D08DE2F081BDE800402DE95E\r
++:10BE500013FAFFEB010050E30300001A0110A0E306\r
++:10BE600024009FE50010C0E5C7FAFFEBD7F9FFEB10\r
++:10BE7000010050E30300001A0110A0E30C009FE54D\r
++:10BE80000010C0E564FDFFEB0080BDE8B04B010091\r
++:10BE9000AC4B01000080BDE800402DE9F00A1FE531\r
++:10BEA0000000D0E5000050E30000001A0080BDE86B\r
++:10BEB000F00C1FE54402D0E5040010E30D00000A79\r
++:10BEC0000308A0E3180290E5010A10E30900000A44\r
++:10BED000850FA0E3030880E2001090E5011AC1E39A\r
++:10BEE000001080E5011AA0E30308A0E3181280E522\r
++:10BEF0000400A0E3D0F0FFEBEC0A1FE54402D0E51C\r
++:10BF0000040010E30D00000A0308A0E3180290E506\r
++:10BF1000040010E30900000A850FA0E3030880E293\r
++:10BF2000001090E50410C1E3001080E50400A0E3D8\r
++:10BF30000318A0E3180281E50300A0E3BEF0FFEBC5\r
++:10BF40000080BDE80080BDE893F021E30EF0A0E1A1\r
++:10BF500013F021E30EF0A0E10020A0E10130A0E108\r
++:10BF6000000092E5030AC0E3FF0EC0E3030280E194\r
++:10BF7000000082E50EF0A0E10EF0A0E130402DE9D6\r
++:10BF80000050A0E10140A0E1440094E50000D0E5AC\r
++:10BF9000010050E30500001A0300A0E38400C5E59A\r
++:10BFA000440094E59F0000EB0000A0E33080BDE872\r
++:10BFB0000100D4E5000050E30300001A0100A0E3F3\r
++:10BFC0008400C5E50000A0E33080BDE80200D5E5AF\r
++:10BFD000000050E31A00001A0100A0E38400C5E548\r
++:10BFE00024009FE53002D0E5000050E30700001A6E\r
++:10BFF00014009FE52C02D0E5000050E30300000A86\r
++:10C0000004009FE5010B00EB0A0000EA245B01003D\r
++:10C0100028009FE53002D0E5000050E30500001A3B\r
++:10C0200018009FE52C02D0E5000050E30100000A53\r
++:10C0300008009FE5F50A00EB0000A0E33080BDE8B2\r
++:10C040006868010040001FE53002D0E52010D4E50B\r
++:10C05000010050E10400000A20001FE53002D0E595\r
++:10C060002010D4E5010050E10100001A0000A0E317\r
++:10C070003080BDE870001FE53002D0E5000050E3DD\r
++:10C080000D00001A80001FE52C02D0E5040050E3EB\r
++:10C09000090000DA0100A0E38400C5E598001FE56F\r
++:10C0A000DA0A00EB8400D5E5010050E30100000A44\r
++:10C0B0000000A0E33080BDE8100000EA84001FE526\r
++:10C0C0003002D0E5000050E30C00001A94001FE598\r
++:10C0D0002C02D0E5040050E3080000DA0100A0E3E0\r
++:10C0E0008400C5E5AC001FE5C80A00EB8400D5E577\r
++:10C0F000010050E30100000A0000A0E33080BDE829\r
++:10C100000000D5E5800085E0B400D0E1B601C4E1CF\r
++:10C110000000D5E5010080E2FF0000E20000C5E577\r
++:10C12000400050E30100001A0000A0E30000C5E554\r
++:10C130000200D5E5010040E20200C5E50200D4E5B9\r
++:10C14000000050E30200000A0000A0E30200C4E582\r
++:10C15000100000EAB401D4E1010080E20018A0E17F\r
++:10C160002118A0E1B411C4E1BA00D4E1000051E10A\r
++:10C170000400001A0000A0E3B401C4E1040094E547\r
++:10C180000C0084E5030000EA0C0094E5B810D4E14B\r
++:10C19000010080E00C0084E50C0094E5100084E5CB\r
++:10C1A0000300A0E38400C5E50100A0E33080BDE802\r
++:10C1B0003080BDE810402DE90040A0E1101094E56A\r
++:10C1C0002020D4E530009FE5021280E7B811D4E1C9\r
++:10C1D0002100D4E5000481E02020D4E518109FE57B\r
++:10C1E000021281E0B400C1E1B601D4E1010C50E3D8\r
++:10C1F000020000DA010CA0E3010000EAD0590100BE\r
++:10C20000B601D4E12010D4E514201FE5011282E02C\r
++:10C21000B600C1E12000D4E50010A0E3B9F5FFEBC2\r
++:10C220001080BDE81080BDE810402DE90040A0E17D\r
++:10C230000200A0E30000C4E5041094E50C20D4E55E\r
++:10C240004C001FE5021280E70C00D4E5040050E327\r
++:10C250000800001A18009FE5B801D0E110109FE512\r
++:10C260002110D1E5010480E074101FE5B404C1E1A0\r
++:10C27000070000EA405A010038009FE5B801D0E10C\r
++:10C2800030109FE52110D1E5010480E098101FE5F2\r
++:10C29000B403C1E1B800D4E10C20D4E5A8101FE537\r
++:10C2A000021281E0B600C1E10C00D4E50010A0E369\r
++:10C2B00094F5FFEB1080BDE8846701001080BDE8B5\r
++:10C2C00030402DE90040A0E13052D4E5020C84E278\r
++:10C2D000BE12D0E12D02D4E5000081E0021C84E210\r
++:10C2E000BE02C1E12400D4E5030050E31500000ABA\r
++:10C2F000040050E30000000A250000EA3D0AA0E324\r
++:10C30000240090E5020010E30D00001A0000A0E3F5\r
++:10C31000A4101FE54800C1E5AC001FE51C1090E526\r
++:10C320003D0AA0E3141080E5020C84E2BE02D0E1D5\r
++:10C330000A10A0E3251B81E2000881E13D1AA0E379\r
++:10C34000100081E5120000EA3B0AA0E3240090E51A\r
++:10C35000020010E30D00001A0000A0E3AC101FE57E\r
++:10C360004800C1E5B4001FE51C0090E53B1AA0E3BE\r
++:10C37000140081E5020C84E2BE12D0E10A00A0E3C1\r
++:10C38000930C80E2011880E13B0AA0E3101080E5E5\r
++:10C39000FFFFFFEA0000A0E32D02C4E50000A0E3D8\r
++:10C3A0003002C4E50520A0E10500A0E10010A0E3F3\r
++:10C3B00055F6FFEB040055E30800001A50111FE585\r
++:10C3C00014009FE5ECFEFFEB000050E30100000AC3\r
++:10C3D00064011FE576FFFFEB070000EA8C5A0100BD\r
++:10C3E00030111FE514009FE5E3FEFFEB000050E372\r
++:10C3F0000100000A44011FE56DFFFFEB3080BDE83E\r
++:10C40000D06701003080BDE8E00F2DE90030A0E1E9\r
++:10C410000120A0E1E01F90E8E01F81E8E00FBDE807\r
++:10C420000EF0A0E1E00FBDE80EF0A0E170402DE9B4\r
++:10C43000225AA0E330041FE54402D0E5010010E3D6\r
++:10C440008A00000A40041FE5380290E5000050E32E\r
++:10C450004400000A0040A0E3080054E3040000BACE\r
++:10C460000E0000EA010084E20048A0E12448A0E1B7\r
++:10C47000F8FFFFEA70041FE5401290E50500A0E117\r
++:10C48000E0FFFFEB205085E284041FE5400290E5C9\r
++:10C49000201080E290041FE5401280E5F0FFFFEAE3\r
++:10C4A0009C041FE5340290E5011C40E2A8041FE54E\r
++:10C4B000341280E5B0041FE5380290E5011C80E2EB\r
++:10C4C000BC041FE5381280E5C4041FE5340290E582\r
++:10C4D000000050E30E00000AD4041FE5381290E576\r
++:10C4E000EC021FE5401080E50219A0E3F8021FE509\r
++:10C4F000B414C0E1011CA0E304031FE5B614C0E1BD\r
++:10C500000010A0E30400A0E3FEF4FFEB7080BDE8A0\r
++:10C51000130000EA0000A0E314151FE5380281E5CE\r
++:10C52000020CA0E320151FE5340281E528051FE574\r
++:10C530003C0290E540131FE5400081E50219A0E3AD\r
++:10C540004C031FE5B414C0E1010CA0E358131FE530\r
++:10C55000B604C1E10010A0E30400A0E3E9F4FFEB9E\r
++:10C560007080BDE8410000EA64051FE5340290E5F3\r
++:10C57000010C40E270151FE5340281E578051FE5E6\r
++:10C58000340290E5000050E31E00000A0C609FE5B5\r
++:10C590000040A0E3080054E3050000BA0A0000EAE6\r
++:10C5A00074650100010084E20048A0E12448A0E194\r
++:10C5B000F7FFFFEA0610A0E10500A0E191FFFFEB05\r
++:10C5C000205085E2206086E2F5FFFFEAC8051FE5FE\r
++:10C5D0003C0290E5010C80E2E4131FE5400081E598\r
++:10C5E0000209A0E3F0131FE5B404C1E1011CA0E3BC\r
++:10C5F000FC031FE5B614C0E10010A0E30400A0E3B3\r
++:10C60000C0F4FFEB7080BDE80C609FE50040A0E344\r
++:10C61000080054E3050000BA0A0000EA746601004D\r
++:10C62000010084E20048A0E12448A0E1F7FFFFEA0E\r
++:10C630000610A0E10500A0E172FFFFEB205085E2AB\r
++:10C64000206086E2F5FFFFEA2800A0E3310A80E2DD\r
++:10C65000001090E5041081E3001080E51200A0E3D3\r
++:10C66000250B80E23D1AA0E3100081E57080BDE853\r
++:10C670006C061FE53002D0E5040050E30300001A09\r
++:10C680007C061FE50DFFFFEB7080BDE8000000EAAF\r
++:10C6900058061FE53002D0E5040050E30300001AFD\r
++:10C6A00068061FE505FFFFEB7080BDE8000000EAAB\r
++:10C6B0004C009FE50000D0E5020050E35D00001A49\r
++:10C6C0000310A0E338009FE50010C0E560041FE5FB\r
++:10C6D0002200D0E5010040E26C141FE52200C1E514\r
++:10C6E00074041FE52100D0E5000050E30500000AB6\r
++:10C6F000010050E31C00000A020050E33300000A6E\r
++:10C700004B0000EA145B01000000A0E30F19A0E356\r
++:10C71000180081E51800A0E30F0980E2001090E501\r
++:10C72000011781E3031081E3001080E51800A0E306\r
++:10C730000F0980E238101FE5BA20D1E1001090E522\r
++:10C74000021A81E1001080E54C001FE5B810D0E12D\r
++:10C750001800A0E30F0980E2FEFDFFEB0410A0E348\r
++:10C760000F09A0E3FCF6FFEB310000EA0010A0E3A4\r
++:10C770000F09A0E3281080E52800A0E30F0980E25C\r
++:10C78000001090E5011781E3031081E3001080E5BC\r
++:10C790002800A0E30F0980E29C101FE5BA10D1E148\r
++:10C7A000002090E5011A82E1001080E5B0001FE54D\r
++:10C7B000B810D0E12800A0E30F0980E2E5FDFFEB0F\r
++:10C7C0000810A0E30F09A0E3E3F6FFEB180000EA6E\r
++:10C7D0000000A0E30F19A0E3380081E53800A0E3D2\r
++:10C7E0000F0980E2001090E5011781E3031081E357\r
++:10C7F000001080E53800A0E30F0980E200111FE57A\r
++:10C80000BA10D1E1002090E5011A82E1001080E524\r
++:10C8100014011FE5B810D0E13800A0E30F0980E251\r
++:10C82000CCFDFFEB1010A0E30F09A0E3CAF6FFEB6D\r
++:10C83000FFFFFFEA7080BDE8CC051FE52100D0E5D1\r
++:10C84000000050E30400000A010050E32B00000A3E\r
++:10C85000020050E35200000A7A0000EA0010A0E350\r
++:10C860000F09A0E3181080E5FC051FE5100090E516\r
++:10C8700004161FE50C1091E5010050E10D00001AAF\r
++:10C880001800A0E30F0980E2001090E5011081E399\r
++:10C89000001080E528061FE5B601D0E13C0050E31A\r
++:10C8A000040000AA1800A0E30F0980E2001090E540\r
++:10C8B000011881E3001080E54C061FE5B601D0E1C8\r
++:10C8C000010C50E3090000CA1800A0E30F0980E240\r
++:10C8D000001090E5021081E3001080E570061FE56E\r
++:10C8E000B611D0E11800A0E30F0980E299FDFFEB3B\r
++:10C8F0000410A0E30F09A0E397F6FFEB510000EA54\r
++:10C900000000A0E30F19A0E3280081E5A0061FE5C1\r
++:10C91000101090E5A8061FE50C0090E5000051E11D\r
++:10C920000D00001A2800A0E30F0980E2001090E536\r
++:10C93000011081E3001080E5CC061FE5B601D0E1CF\r
++:10C940003C0050E3040000AA2800A0E30F0980E2A5\r
++:10C95000001090E5011881E3001080E5F0061FE566\r
++:10C96000B601D0E1010C50E3090000CA2800A0E3A1\r
++:10C970000F0980E2001090E5021081E3001080E5CD\r
++:10C9800014071FE5B611D0E12800A0E30F0980E2EB\r
++:10C9900070FDFFEB0810A0E30F09A0E36EF6FFEBBC\r
++:10C9A000280000EA0010A0E30F09A0E3381080E59A\r
++:10C9B00044071FE5101090E54C071FE50C0090E5BB\r
++:10C9C000000051E10D00001A3800A0E30F0980E2D9\r
++:10C9D000001090E5011081E3001080E570071FE56D\r
++:10C9E000B601D0E13C0050E3040000AA3800A0E307\r
++:10C9F0000F0980E2001090E5011881E3001080E546\r
++:10CA000094071FE5B601D0E1010C50E3090000CA0C\r
++:10CA10003800A0E30F0980E2001090E5021081E3E6\r
++:10CA2000001080E5B8071FE5B611D0E13800A0E39B\r
++:10CA30000F0980E247FDFFEB1010A0E30F09A0E310\r
++:10CA400045F6FFEBFFFFFFEADC071FE5B601D0E18B\r
++:10CA5000010C50E30A0000DAEC071FE5100090E536\r
++:10CA6000010C80E2F8171FE5100081E500081FE5C2\r
++:10CA7000B601D0E1010C40E20C181FE5B601C1E19E\r
++:10CA80000F0000EA0010A0E31C081FE5B611C0E18A\r
++:10CA900024081FE51C0090E5011080E230081FE526\r
++:10CAA0001C1080E538081FE54800D0E5000050E381\r
++:10CAB0000300001A48081FE51C0090E53D1AA0E39A\r
++:10CAC000140081E558081FE52100D0E5010080E24F\r
++:10CAD000FF0000E268181FE52100C1E5030050E3F4\r
++:10CAE0000200001A0010A0E37C081FE52110C0E539\r
++:10CAF00084081FE52200D0E5010040E2FF1010E2AB\r
++:10CB000094081FE52210C0E50000001A7080BDE8FF\r
++:10CB1000A4081FE5B601D0E1000050E30700001AA9\r
++:10CB2000B4181FE550071FE513FDFFEB000050E3AD\r
++:10CB30000100000AC8081FE59DFDFFEB010000EAA7\r
++:10CB4000D4081FE59AFDFFEB7080BDE87080BDE85A\r
++:10CB500070402DE9225AA0E3200B1FE54402D0E5E6\r
++:10CB6000010010E38A00000A300B1FE5380290E54F\r
++:10CB7000000050E34400000A0040A0E3080054E332\r
++:10CB8000040000BA0E0000EA010084E20048A0E1BF\r
++:10CB90002448A0E1F8FFFFEA600B1FE5401290E592\r
++:10CBA0000500A0E117FEFFEB205085E2740B1FE5A6\r
++:10CBB000400290E5201080E2800B1FE5401280E5E6\r
++:10CBC000F0FFFFEA8C0B1FE5340290E5011C40E208\r
++:10CBD000980B1FE5341280E5A00B1FE5380290E5A5\r
++:10CBE000011C80E2AC0B1FE5381280E5B40B1FE599\r
++:10CBF000340290E5000050E30E00000AC40B1FE56C\r
++:10CC0000381290E5100A1FE5301080E50219A0E304\r
++:10CC10001C0A1FE5B413C0E1011CA0E3280A1FE5AC\r
++:10CC2000B613C0E10010A0E30300A0E335F3FFEB6F\r
++:10CC30007080BDE8130000EA0000A0E3041C1FE5BB\r
++:10CC4000380281E5020CA0E3101C1FE5340281E5E7\r
++:10CC5000180C1FE53C0290E5641A1FE5300081E5E1\r
++:10CC60000219A0E3700A1FE5B413C0E1010CA0E3B0\r
++:10CC70007C1A1FE5B603C1E10010A0E30300A0E3A6\r
++:10CC800020F3FFEB7080BDE8410000EA540C1FE583\r
++:10CC9000340290E5010C40E2601C1FE5340281E59E\r
++:10CCA000680C1FE5340290E5000050E31E00000A06\r
++:10CCB0000C609FE50040A0E3080054E3050000BAC3\r
++:10CCC0000A0000EAB8720100010084E20048A0E115\r
++:10CCD0002448A0E1F7FFFFEA0610A0E10500A0E16B\r
++:10CCE000C8FDFFEB205085E2206086E2F5FFFFEAF9\r
++:10CCF000B80C1FE53C0290E5010C80E2081B1FE523\r
++:10CD0000300081E50209A0E3141B1FE5B403C1E173\r
++:10CD1000011CA0E3200B1FE5B613C0E10010A0E347\r
++:10CD20000300A0E3F7F2FFEB7080BDE80C609FE525\r
++:10CD30000040A0E3080054E3050000BA0A0000EA3E\r
++:10CD4000B8730100010084E20048A0E12448A0E19A\r
++:10CD5000F7FFFFEA0610A0E10500A0E1A9FDFFEB47\r
++:10CD6000205085E2206086E2F5FFFFEA2000A0E384\r
++:10CD7000310A80E2001090E5041081E3001080E5A4\r
++:10CD80001200A0E3930C80E23B1AA0E3100081E5BF\r
++:10CD90007080BDE8900D1FE53002D0E5030050E340\r
++:10CDA0000300001AA00D1FE544FDFFEB7080BDE8F5\r
++:10CDB000000000EA7C0D1FE53002D0E5030050E3DF\r
++:10CDC0000300001A8C0D1FE53CFDFFEB7080BDE8F1\r
++:10CDD000000000EA4C009FE50000D0E5020050E3AF\r
++:10CDE0005D00001A0310A0E338009FE50010C0E5C5\r
++:10CDF000400B1FE52200D0E5010040E24C1B1FE57F\r
++:10CE00002200C1E5540B1FE52100D0E5000050E3EE\r
++:10CE10000500000A010050E31C00000A020050E374\r
++:10CE20003300000A4B0000EA586801000000A0E34C\r
++:10CE30003A1AA0E3180081E51800A0E33A0A80E25C\r
++:10CE4000001090E5011781E3031081E3001080E5F5\r
++:10CE50001800A0E33A0A80E238101FE5BA20D1E1B9\r
++:10CE6000001090E5021A81E1001080E54C001FE5FA\r
++:10CE7000B810D0E11800A0E33A0A80E235FCFFEBDD\r
++:10CE80000410A0E33A0AA0E333F5FFEB310000EA17\r
++:10CE90000010A0E33A0AA0E3281080E52800A0E3F0\r
++:10CEA0003A0A80E2001090E5011781E3031081E364\r
++:10CEB000001080E52800A0E33A0A80E29C101FE5FC\r
++:10CEC000BA10D1E1002090E5011A82E1001080E55E\r
++:10CED000B0001FE5B810D0E12800A0E33A0A80E2D4\r
++:10CEE0001CFCFFEB0810A0E33A0AA0E31AF5FFEBE5\r
++:10CEF000180000EA0000A0E33A1AA0E3380081E538\r
++:10CF00003800A0E33A0A80E2001090E5011781E3BF\r
++:10CF1000031081E3001080E53800A0E33A0A80E2C4\r
++:10CF200000111FE5BA10D1E1002090E5011A82E15D\r
++:10CF3000001080E514011FE5B810D0E13800A0E32F\r
++:10CF40003A0A80E203FCFFEB1010A0E33A0AA0E3E8\r
++:10CF500001F5FFEBFFFFFFEA7080BDE8AC0C1FE5B9\r
++:10CF60002100D0E5000050E30400000A010050E376\r
++:10CF70002B00000A020050E35200000A7A0000EA87\r
++:10CF80000010A0E33A0AA0E3181080E5DC0C1FE5CE\r
++:10CF9000100090E5E41C1FE50C1091E5010050E144\r
++:10CFA0000D00001A1800A0E33A0A80E2001090E594\r
++:10CFB000011081E3001080E5080D1FE5B601D0E106\r
++:10CFC0003C0050E3040000AA1800A0E33A0A80E203\r
++:10CFD000001090E5011881E3001080E52C0D1FE59D\r
++:10CFE000B601D0E1010C50E3090000CA1800A0E32B\r
++:10CFF0003A0A80E2001090E5021081E3001080E51B\r
++:10D00000500D1FE5B611D0E11800A0E33A0A80E206\r
++:10D01000D0FBFFEB0410A0E33A0AA0E3CEF4FFEB51\r
++:10D02000510000EA0000A0E33A1AA0E3280081E5DD\r
++:10D03000800D1FE5101090E5880D1FE50C0090E5B0\r
++:10D04000000051E10D00001A2800A0E33A0A80E236\r
++:10D05000001090E5011081E3001080E5AC0D1FE5A4\r
++:10D06000B601D0E13C0050E3040000AA2800A0E390\r
++:10D070003A0A80E2001090E5011881E3001080E593\r
++:10D08000D00D1FE5B601D0E1010C50E3090000CA44\r
++:10D090002800A0E33A0A80E2001090E5021081E344\r
++:10D0A000001080E5F40D1FE5B611D0E12800A0E3E3\r
++:10D0B0003A0A80E2A7FBFFEB0810A0E33A0AA0E3DC\r
++:10D0C000A5F4FFEB280000EA0010A0E33A0AA0E371\r
++:10D0D000381080E5240E1FE5101090E52C0E1FE59A\r
++:10D0E0000C0090E5000051E10D00001A3800A0E3AB\r
++:10D0F0003A0A80E2001090E5011081E3001080E51B\r
++:10D10000500E1FE5B601D0E13C0050E3040000AA38\r
++:10D110003800A0E33A0A80E2001090E5011881E3AC\r
++:10D12000001080E5740E1FE5B601D0E1010C50E35C\r
++:10D13000090000CA3800A0E33A0A80E2001090E536\r
++:10D14000021081E3001080E5980E1FE5B611D0E1D2\r
++:10D150003800A0E33A0A80E27EFBFFEB1010A0E368\r
++:10D160003A0AA0E37CF4FFEBFFFFFFEABC0E1FE5E9\r
++:10D17000B601D0E1010C50E30A0000DACC0E1FE545\r
++:10D18000100090E5010C80E2D81E1FE5100081E53B\r
++:10D19000E00E1FE5B601D0E1010C40E2EC1E1FE5F8\r
++:10D1A000B601C1E10F0000EA0010A0E3FC0E1FE58C\r
++:10D1B000B611C0E1040F1FE51C0090E5011080E2EC\r
++:10D1C000100F1FE51C1080E5180F1FE54800D0E583\r
++:10D1D000000050E30300001A280F1FE51C0090E533\r
++:10D1E0003B1AA0E3140081E5380F1FE52100D0E5CC\r
++:10D1F000010080E2FF0000E2481F1FE52100C1E5B9\r
++:10D20000030050E30200001A0010A0E35C0F1FE5CA\r
++:10D210002110C0E5640F1FE52200D0E5010040E2C7\r
++:10D22000FF1010E2740F1FE52210C0E50000001A85\r
++:10D230007080BDE8840F1FE5B601D0E1000050E327\r
++:10D240000700001A941F1FE5500E1FE54AFBFFEB75\r
++:10D25000000050E30100000AA80F1FE5D4FBFFEB1C\r
++:10D26000010000EAB40F1FE5D1FBFFEB7080BDE8C1\r
++:10D270007080BDE8F0402DE90040A0E10478A0E115\r
++:10D280002778A0E1000057E30400000A010057E3FB\r
++:10D290000600000A020057E30800000A0B0000EA3B\r
++:10D2A0000F09A0E31C0090E50050A0E1070000EA90\r
++:10D2B0000F09A0E32C0090E50050A0E1030000EA74\r
++:10D2C0000F09A0E33C0090E50050A0E1FFFFFFEA5A\r
++:10D2D000080087E20110A0E31110A0E10F09A0E30C\r
++:10D2E0001DF4FFEB010015E38800000A14029FE51E\r
++:10D2F0000100D0E5000050E31200001A04029FE58F\r
++:10D300002200D0E5030050E30E00001A0000A0E365\r
++:10D31000F0119FE52100C1E50310A0E3E4019FE5C2\r
++:10D320002210C0E50110A0E30F09A0E313F4FFEB06\r
++:10D33000071CA0E30F09A0E307F4FFEB0110A0E333\r
++:10D340006C0F1FE58410C0E51E0C15E30A00000AEF\r
++:10D35000B0019FE5240090E5010080E2A4119FE563\r
++:10D36000240081E59C019FE5280090E51E1C05E254\r
++:10D37000A10480E08C119FE5280081E5200015E3E1\r
++:10D380000400000A7C019FE5340090E5010080E282\r
++:10D3900070119FE5340081E5100015E30400000AD8\r
++:10D3A00060019FE5380090E5010080E254119FE59F\r
++:10D3B000380081E5020015E30400000A44019FE5FE\r
++:10D3C0003C0090E5011080E238019FE53C1080E5CB\r
++:10D3D000060D15E34D00000A0010A0E30400A0E3D1\r
++:10D3E000E8F0FFEB800015E30400000A14019FE55C\r
++:10D3F000300090E5011080E208019FE5301080E5E3\r
++:10D40000010C15E30400000AF8009FE52C0090E5EC\r
++:10D41000011080E2EC009FE52C1080E50214A0E3EF\r
++:10D420000F09A0E3CCF3FFEB0F09A0E3000090E5A8\r
++:10D430000060A0E1040016E30200000A0410A0E36B\r
++:10D440000F09A0E3C4F3FFEB080016E30200000A93\r
++:10D450000810A0E30F09A0E3BFF3FFEB100016E3F1\r
++:10D460000200000A1010A0E30F09A0E3BAF3FFEBDB\r
++:10D4700090009FE5B601D0E1000050E30700000AEC\r
++:10D480000010A0E37C009FE5B611C0E174009FE5A9\r
++:10D490001C0090E5011080E268009FE51C1080E50B\r
++:10D4A00060009FE54800D0E5000050E30300001A4B\r
++:10D4B00050009FE51C1090E53D0AA0E3141080E5A4\r
++:10D4C0000010A0E33C009FE52110C0E50310A0E39D\r
++:10D4D00030009FE52210C0E50110A0E30F09A0E392\r
++:10D4E0009DF3FFEB1C109FE51C009FE5A2FAFFEBEC\r
++:10D4F000000050E30100000A08009FE52CFBFFEB51\r
++:10D500000000A0E3F080BDE8405A01008C5A010001\r
++:10D5100010001FE52200D0E5010080E21C101FE58D\r
++:10D520002200C1E5280E1FE50000D0E5030050E30E\r
++:10D530001A00001A34001FE52100D0E5070050E171\r
++:10D540001600001A0010A0E34C0E1FE50010C0E505\r
++:10D5500050001FE52100D0E5010080E2FF1000E24D\r
++:10D5600060001FE52110C0E5030051E30200001A2E\r
++:10D570000000A0E374101FE52100C1E57C101FE549\r
++:10D580007C001FE57CFAFFEB000050E30100000A7D\r
++:10D5900090001FE506FBFFEB0000A0E3F080BDE874\r
++:10D5A0000100A0E3F080BDE8F080BDE810402DE967\r
++:10D5B0000F09A0E3000090E50040A0E1010C14E396\r
++:10D5C0001900000A0000A0E329FFFFEB000050E370\r
++:10D5D0001500000AD4001FE52200D0E5010050E349\r
++:10D5E0001100001AE4001FE52100D0E5000050E31F\r
++:10D5F0000D00001AF4001FE5B601D0E1000050E371\r
++:10D600000700001A04111FE504011FE55AFAFFEB99\r
++:10D61000000050E30100000A18011FE5E4FAFFEBE7\r
++:10D62000010000EA24011FE5E1FAFFEB020C14E31C\r
++:10D630001900000A0100A0E30DFFFFEB000050E31A\r
++:10D640001500000A44011FE52200D0E5010050E367\r
++:10D650001100001A54011FE52100D0E5010050E33C\r
++:10D660000D00001A64011FE5B601D0E1000050E38F\r
++:10D670000700001A74111FE574011FE53EFAFFEB65\r
++:10D68000000050E30100000A88011FE5C8FAFFEB23\r
++:10D69000010000EA94011FE5C5FAFFEB010B14E35A\r
++:10D6A0001900000A0200A0E3F1FEFFEB000050E3C6\r
++:10D6B0001500000AB4011FE52200D0E5010050E387\r
++:10D6C0001100001AC4011FE52100D0E5020050E35B\r
++:10D6D0000D00001AD4011FE5B601D0E1000050E3AF\r
++:10D6E0000700001AE4111FE5E4011FE522FAFFEB31\r
++:10D6F000000050E30100000AF8011FE5ACFAFFEB5F\r
++:10D70000010000EA04021FE5A9FAFFEB0E0B14E387\r
++:10D710000100000A0400A0E1CE0200EB1080BDE889\r
++:10D720001080BDE8F0402DE90040A0E10478A0E1C0\r
++:10D730002778A0E1000057E30400000A010057E346\r
++:10D740000600000A020057E30800000A0B0000EA86\r
++:10D750003A0AA0E31C0090E50050A0E1070000EAAF\r
++:10D760003A0AA0E32C0090E50050A0E1030000EA93\r
++:10D770003A0AA0E33C0090E50050A0E1FFFFFFEA79\r
++:10D78000080087E20110A0E31110A0E13A0AA0E32B\r
++:10D79000F1F2FFEB010015E38800000A14029FE597\r
++:10D7A0000100D0E5000050E31200001A04029FE5DA\r
++:10D7B0002200D0E5030050E30E00001A0000A0E3B1\r
++:10D7C000F0119FE52100C1E50310A0E3E4019FE50E\r
++:10D7D0002210C0E50110A0E33A0AA0E3E7F2FFEB54\r
++:10D7E000071CA0E33A0AA0E3DBF2FFEB0110A0E381\r
++:10D7F000C4019FE58410C0E51E0C15E30A00000A71\r
++:10D80000B0019FE5240090E5010080E2A4119FE5AE\r
++:10D81000240081E59C019FE5280090E51E1C05E29F\r
++:10D82000A10480E08C119FE5280081E5200015E32C\r
++:10D830000400000A7C019FE5340090E5010080E2CD\r
++:10D8400070119FE5340081E5100015E30400000A23\r
++:10D8500060019FE5380090E5010080E254119FE5EA\r
++:10D86000380081E5020015E30400000A44019FE549\r
++:10D870003C0090E5011080E238019FE53C1080E516\r
++:10D88000060D15E34D00000A0010A0E30300A0E31D\r
++:10D89000BCEFFFEB800015E30400000A14019FE5D4\r
++:10D8A000300090E5011080E208019FE5301080E52E\r
++:10D8B000010C15E30400000AF8009FE52C0090E538\r
++:10D8C000011080E2EC009FE52C1080E50214A0E33B\r
++:10D8D0003A0AA0E3A0F2FFEB3A0AA0E3000090E5C9\r
++:10D8E0000060A0E1040016E30200000A0410A0E3B7\r
++:10D8F0003A0AA0E398F2FFEB080016E30200000AE0\r
++:10D900000810A0E33A0AA0E393F2FFEB100016E33D\r
++:10D910000200000A1010A0E33A0AA0E38EF2FFEB27\r
++:10D9200090009FE5B601D0E1000050E30700000A37\r
++:10D930000010A0E37C009FE5B611C0E174009FE5F4\r
++:10D940001C0090E5011080E268009FE51C1080E556\r
++:10D9500060009FE54800D0E5000050E30300001A96\r
++:10D9600050009FE51C1090E53B0AA0E3141080E5F1\r
++:10D970000010A0E33C009FE52110C0E50310A0E3E8\r
++:10D9800030009FE52210C0E50110A0E33A0AA0E3B1\r
++:10D9900071F2FFEB1C109FE51C009FE576F9FFEB91\r
++:10D9A000000050E30100000A08009FE500FAFFEBC9\r
++:10D9B0000000A0E3F080BDE884670100D0670100AB\r
++:10D9C00010001FE52200D0E5010080E21C101FE5D9\r
++:10D9D0002200C1E5B40B1FE50000D0E5030050E3D1\r
++:10D9E0001A00001A34001FE52100D0E5070050E1BD\r
++:10D9F0001600001A0010A0E3D80B1FE50010C0E5C8\r
++:10DA000050001FE52100D0E5010080E2FF1000E298\r
++:10DA100060001FE52110C0E5030051E30200001A79\r
++:10DA20000000A0E374101FE52100C1E57C101FE594\r
++:10DA30007C001FE550F9FFEB000050E30100000AF5\r
++:10DA400090001FE5DAF9FFEB0000A0E3F080BDE8ED\r
++:10DA50000100A0E3F080BDE8F080BDE810402DE9B2\r
++:10DA60003A0AA0E3000090E50040A0E1010C14E3B5\r
++:10DA70001900000A0000A0E329FFFFEB000050E3BB\r
++:10DA80001500000AD4001FE52200D0E5010050E394\r
++:10DA90001100001AE4001FE52100D0E5000050E36A\r
++:10DAA0000D00001AF4001FE5B601D0E1000050E3BC\r
++:10DAB0000700001A04111FE504011FE52EF9FFEB12\r
++:10DAC000000050E30100000A18011FE5B8F9FFEB60\r
++:10DAD000010000EA24011FE5B5F9FFEB020C14E395\r
++:10DAE0001900000A0100A0E30DFFFFEB000050E366\r
++:10DAF0001500000A44011FE52200D0E5010050E3B3\r
++:10DB00001100001A54011FE52100D0E5010050E387\r
++:10DB10000D00001A64011FE5B601D0E1000050E3DA\r
++:10DB20000700001A74111FE574011FE512F9FFEBDD\r
++:10DB3000000050E30100000A88011FE59CF9FFEB9B\r
++:10DB4000010000EA94011FE599F9FFEB010B14E3D2\r
++:10DB50001900000A0200A0E3F1FEFFEB000050E311\r
++:10DB60001500000AB4011FE52200D0E5010050E3D2\r
++:10DB70001100001AC4011FE52100D0E5020050E3A6\r
++:10DB80000D00001AD4011FE5B601D0E1000050E3FA\r
++:10DB90000700001AE4111FE5E4011FE5F6F8FFEBAA\r
++:10DBA000000050E30100000AF8011FE580F9FFEBD7\r
++:10DBB000010000EA04021FE57DF9FFEB0E0B14E300\r
++:10DBC0000100000A0400A0E1D90200EB1080BDE8CA\r
++:10DBD0001080BDE810402DE9D8061FE5400090E513\r
++:10DBE000011080E2E4061FE5401080E50010A0E38C\r
++:10DBF0000400A0E3E3EEFFEB0F09A0E3000090E5D3\r
++:10DC00000040A0E1040014E30200000A0410A0E3B5\r
++:10DC10000F09A0E3D0F1FFEB080014E30200000AB3\r
++:10DC20000810A0E30F09A0E3CBF1FFEB100014E311\r
++:10DC30000200000A1010A0E30F09A0E3C6F1FFEBF9\r
++:10DC400040071FE5B601D0E1000050E30700000ADD\r
++:10DC50000000A0E354171FE5B601C1E15C071FE512\r
++:10DC60001C0090E5010080E268171FE51C0081E5BB\r
++:10DC700070071FE54800D0E5000050E30300001ADC\r
++:10DC800080071FE51C1090E53D0AA0E3141080E515\r
++:10DC90000010A0E394071FE52110C0E50300A0E3F6\r
++:10DCA000A0171FE52200C1E50113A0E30F09A0E3BF\r
++:10DCB000A9F1FFEBB4171FE5B4071FE5AEF8FFEBC2\r
++:10DCC000000050E30100000AC8071FE538F9FFEB28\r
++:10DCD0001080BDE81080BDE810402DE92C031FE541\r
++:10DCE000400090E5011080E238031FE5401080E518\r
++:10DCF0000010A0E30300A0E3A2EEFFEB3A0AA0E3CA\r
++:10DD0000000090E50040A0E1040014E30200000AD6\r
++:10DD10000410A0E33A0AA0E38FF1FFEB080014E33C\r
++:10DD20000200000A0810A0E33A0AA0E38AF1FFEB20\r
++:10DD3000100014E30200000A1010A0E33A0AA0E366\r
++:10DD400085F1FFEB94031FE5B601D0E1000050E33D\r
++:10DD50000700000A0000A0E3A8131FE5B601C1E117\r
++:10DD6000B0031FE51C0090E5010080E2BC131FE535\r
++:10DD70001C0081E5C4031FE54800D0E5000050E326\r
++:10DD80000300001AD4031FE51C1090E53B0AA0E332\r
++:10DD9000141080E50010A0E3E8031FE52110C0E5A2\r
++:10DDA0000300A0E3F4131FE52200C1E50113A0E383\r
++:10DDB0003A0AA0E368F1FFEB08141FE508041FE529\r
++:10DDC0006DF8FFEB000050E30100000A1C041FE5A2\r
++:10DDD000F7F8FFEB1080BDE81080BDE893F021E379\r
++:10DDE0000EF0A0E113F021E30EF0A0E130402DE9A8\r
++:10DDF0000040A0E10150A0E1101094E52420D4E5FA\r
++:10DE000040009FE5020280E0081080E5B012D4E1F6\r
++:10DE10002200D4E5000481E02410D4E524209FE50D\r
++:10DE2000011282E0BC00C1E12410D4E514209FE57A\r
++:10DE3000011282E0BE50C1E12400D4E50110A0E34C\r
++:10DE4000B0EEFFEB3080BDE8D05901003080BDE876\r
++:10DE500070402DE90040A0E10150A0E12802D4E586\r
++:10DE6000010040E22802C4E5010015E30300000AB6\r
++:10DE70002B02D4E5800184E0285080E5030000EA0D\r
++:10DE80000110A0E32B02D4E5800184E0281080E596\r
++:10DE90002C02D4E5010080E22C02C4E52B02D4E57B\r
++:10DEA000010080E2FF0000E22B02C4E5BA10D4E1D9\r
++:10DEB000FF1001E2010050E10100001A0000A0E3A0\r
++:10DEC0002B02C4E53002D4E5000050E30100001A43\r
++:10DED0000400A0E14D0300EB2B02D4E5800184E0B7\r
++:10DEE0002C6090E5B800D4E1960000E0041094E5C1\r
++:10DEF000010080E00C0084E50C0094E5100084E54E\r
++:10DF00007080BDE87080BDE870402DE90040A0E160\r
++:10DF10000000A0E34C02C4E50000A0E32200C4E539\r
++:10DF20000300A0E32300C4E52400D4E5030050E38C\r
++:10DF30000600000A040050E30000000A070000EA9F\r
++:10DF40000F09A0E3000090E50060A0E1030000EAF3\r
++:10DF50003A0AA0E3000090E50060A0E1FFFFFFEABD\r
++:10DF6000200016E30000001A205085E3400016E36D\r
++:10DF70000000001A405085E3800016E30000001AFC\r
++:10DF8000805085E30E0B06E2055080E12400D4E5C5\r
++:10DF9000030050E30900000A040050E30000000AF7\r
++:10DFA0000D0000EA0510A0E10F09A0E3EAF0FFEB85\r
++:10DFB0000116A0E30F09A0E3E7F0FFEB060000EA7B\r
++:10DFC0000510A0E13A0AA0E3E3F0FFEB0116A0E39D\r
++:10DFD0003A0AA0E3E0F0FFEBFFFFFFEA7080BDE844\r
++:10DFE0007080BDE8F0472DE90030A0E101C0A0E15C\r
++:10DFF00002E0A0E10070A0E3000057E33300001A44\r
++:10E00000005093E5A50FA0E10078A0E12778A0E1FA\r
++:10E01000059BA0E1299BA0E13F00A0E3250800E0CB\r
++:10E020000001A0E10068A0E12668A0E1043083E2DD\r
++:10E0300001C08CE20080DCE50020A0E309408EE016\r
++:10E040000010A0E3060051E1040000BA1A0000EA43\r
++:10E05000010081E20018A0E12118A0E1F8FFFFEA29\r
++:10E060000100A0E31002A0E1080010E10300000A93\r
++:10E070000000D3E500A0D4E50A0050E10A00001A30\r
++:10E08000010082E2FF0000E20020A0E1040050E372\r
++:10E090000200001A01C08CE20080DCE50020A0E351\r
++:10E0A000013083E2014084E2E8FFFFEA010046E03C\r
++:10E0B000033080E0000000EAE4FFFFEA060051E1DF\r
++:10E0C0000100001A0100A0E3F087BDE8C9FFFFEAE4\r
++:10E0D0000000A0E3F087BDE8F087BDE800402DE92F\r
++:10E0E0000030A0E101E0A0E102C0A0E100005CE39B\r
++:10E0F0005500009A4502D3E5000050E30D00001AD8\r
++:10E1000000005CE30700009A0000DEE5FF0050E33A\r
++:10E110000200000A01E08EE201C04CE2F7FFFFEAD4\r
++:10E12000000000EAF5FFFFEA00005CE30100001ACE\r
++:10E130000000A0E30080BDE84502D3E5060050E3FF\r
++:10E14000150000AA0000DEE5FF0050E30900001AF8\r
++:10E1500001E08EE201C04CE24502D3E5010080E21D\r
++:10E16000FF0000E24502C3E5060050E3000000AAFC\r
++:10E17000DDFFFFEA080000EA01E08EE201C04CE2A8\r
++:10E180000000A0E34502C3E50000A0E34602C3E5AA\r
++:10E190000000A0E34702C3E5D3FFFFEA4502D3E551\r
++:10E1A000060050E32700001A00005CE31A00009A02\r
++:10E1B000481293E54602D3E50010D1E70000DEE502\r
++:10E1C000000051E11200001A01E08EE201C04CE2B1\r
++:10E1D0004602D3E5010080E2FF0000E24602C3E50B\r
++:10E1E000060050E30900001A0000A0E34602C3E560\r
++:10E1F0004702D3E5010080E2FF0000E24702C3E5E9\r
++:10E20000100050E30100001A0100A0E30080BDE807\r
++:10E21000E4FFFFEA000000EAE2FFFFEA00005CE33F\r
++:10E220000200001A0000A0E30080BDE8000000EA40\r
++:10E230000000A0E34502C3E50000A0E34602C3E5F9\r
++:10E240000000A0E34702C3E5A7FFFFEA0000A0E348\r
++:10E250000080BDE80080BDE8F0412DE90040A0E16C\r
++:10E2600068009FE50000D0E5000050E30700000AC9\r
++:10E2700058009FE51400D0E5000050E30300000AB9\r
++:10E2800048009FE52802D0E5000050E30600001A90\r
++:10E2900038009FE54C02D0E5000050E30200001A70\r
++:10E2A0000100A0E324109FE54C02C1E51C009FE59E\r
++:10E2B0002200D0E5000050E30500000A010050E311\r
++:10E2C0001100000A020050E31D00000A2A0000EAC3\r
++:10E2D000245B0100020B14E30900000A021BA0E307\r
++:10E2E0000F09A0E31CF0FFEB0F09A0E3200090E56D\r
++:10E2F0000070A0E10F09A0E3240090E50080A0E1F8\r
++:10E30000000000EA0050A0E31B0000EA010A14E349\r
++:10E310000900000A011AA0E30F09A0E30EF0FFEBC9\r
++:10E320000F09A0E3300090E50070A0E10F09A0E321\r
++:10E33000340090E50080A0E1000000EA0050A0E376\r
++:10E340000D0000EA020A14E30900000A021AA0E321\r
++:10E350000F09A0E300F0FFEB0F09A0E3400090E5F8\r
++:10E360000070A0E10F09A0E3440090E50080A0E167\r
++:10E37000000000EA0050A0E3FFFFFFEAB4001FE541\r
++:10E380002300D0E5010040E2C0101FE52300C1E5F5\r
++:10E39000020017E30100000A2702A0E1000000EAE2\r
++:10E3A000010CA0E30050A0E1E0001FE54C02D0E525\r
++:10E3B000000050E30300001AF0001FE54402D0E51E\r
++:10E3C000030010E3D500000A010018E30400000A6E\r
++:10E3D000020018E30200000A10011FE5C9FEFFEB6E\r
++:10E3E000F081BDE81C011FE52200D0E5000050E3EC\r
++:10E3F0000400000A010050E33A00000A020050E362\r
++:10E400006E00000AA60000EA40011FE54402D0E5C4\r
++:10E41000030010E32F00000A176DA0E3026886E2F4\r
++:10E42000310AA0E3001090E5021981E3001080E5B5\r
++:10E4300068011FE54402D0E5010010E30D00000A69\r
++:10E44000010017E30B00000A0620A0E11C109FE565\r
++:10E450001C009FE5E2FEFFEB000050E30500000A10\r
++:10E4600031F1FFEB0400A0E373E7FFEB150000EAD6\r
++:10E4700074650100745D0100B0011FE54402D0E540\r
++:10E48000020010E30F00000A020017E30000000A78\r
++:10E49000045045E2010017E30100000A0C6086E227\r
++:10E4A0000C5045E20520A0E10610A0E1E4011FE5C3\r
++:10E4B00009FFFFEB000050E30200000A1AF1FFEB36\r
++:10E4C0000400A0E35CE7FFEB310AA0E3001090E555\r
++:10E4D0000219C1E3001080E52010A0E30F09A0E3BA\r
++:10E4E0009DEFFFEB6E0000EA20021FE54402D0E53D\r
++:10E4F000030010E32D00000A1B6DA0E3026886E212\r
++:10E50000310AA0E3001090E5021981E3001080E5D4\r
++:10E5100048021FE54402D0E5010010E30B00000AA9\r
++:10E52000010017E30900000A0620A0E1C4101FE55E\r
++:10E53000C4001FE5AAFEFFEB000050E30300000A41\r
++:10E54000F9F0FFEB0400A0E33BE7FFEB130000EA68\r
++:10E5500088021FE54402D0E5020010E30F00000A24\r
++:10E56000020017E30000000A045045E2010017E32F\r
++:10E570000100000A0C6086E20C5045E20520A0E193\r
++:10E580000610A0E1BC021FE5D3FEFFEB000050E344\r
++:10E590000200000AE4F0FFEB0400A0E326E7FFEB33\r
++:10E5A000310AA0E3001090E50219C1E3001080E5F4\r
++:10E5B0004010A0E30F09A0E367EFFFEB380000EA8B\r
++:10E5C000F8021FE54402D0E5030010E33000000A22\r
++:10E5D00008031FE52200D0E5171DA0E3021881E221\r
++:10E5E000006481E0310AA0E3001090E5021981E3A4\r
++:10E5F000001080E52C031FE54402D0E5010010E384\r
++:10E600000B00000A010017E30900000A0620A0E140\r
++:10E61000A8111FE5A8011FE571FEFFEB000050E304\r
++:10E620000300000AC0F0FFEB0400A0E302E7FFEBE9\r
++:10E63000130000EA6C031FE54402D0E5020010E37A\r
++:10E640000F00000A020017E30000000A045045E230\r
++:10E65000010017E30100000A0C6086E20C5045E25D\r
++:10E660000520A0E10610A0E1A0031FE59AFEFFEB44\r
++:10E67000000050E30200000AABF0FFEB0400A0E34F\r
++:10E68000EDE6FFEB310AA0E3001090E50219C1E3CB\r
++:10E69000001080E58010A0E30F09A0E32EEFFFEB50\r
++:10E6A000FFFFFFEA020017E30B00000A0010A0E3DF\r
++:10E6B000E8031FE54C12C0E50000A0E3F4131FE5DA\r
++:10E6C0004502C1E50000A0E300141FE54602C1E5D4\r
++:10E6D0000010A0E30C041FE54712C0E514041FE579\r
++:10E6E0002300D0E5010080E220141FE52300C1E5EE\r
++:10E6F00028041FE52200D0E5010080E2FF1000E2BF\r
++:10E7000038041FE52210C0E5030051E30200001A9F\r
++:10E710000010A0E34C041FE52210C0E5F081BDE825\r
++:10E720000510A0E15C041FE5AFFDFFEBF081BDE843\r
++:10E73000F081BDE8F0412DE90040A0E168009FE5CF\r
++:10E740000000D0E5000050E30700000A58009FE5F4\r
++:10E750001400D0E5000050E30300000A48009FE5E4\r
++:10E760002802D0E5000050E30600001A38009FE5BB\r
++:10E770004C02D0E5000050E30200001A0100A0E3C3\r
++:10E7800024109FE54C02C1E51C009FE52200D0E566\r
++:10E79000000050E30500000A010050E31100000AE8\r
++:10E7A000020050E31D00000A2A0000EA6868010028\r
++:10E7B000020B14E30900000A021BA0E33A0AA0E3DB\r
++:10E7C000E5EEFFEB3A0AA0E3200090E50070A0E13F\r
++:10E7D0003A0AA0E3240090E50080A0E1000000EAEE\r
++:10E7E0000050A0E31B0000EA010A14E30900000A3C\r
++:10E7F000011AA0E33A0AA0E3D7EEFFEB3A0AA0E33E\r
++:10E80000300090E50070A0E13A0AA0E3340090E502\r
++:10E810000080A0E1000000EA0050A0E30D0000EA43\r
++:10E82000020A14E30900000A021AA0E33A0AA0E36C\r
++:10E83000C9EEFFEB3A0AA0E3400090E50070A0E1CA\r
++:10E840003A0AA0E3440090E50080A0E1000000EA5D\r
++:10E850000050A0E3FFFFFFEAB4001FE52300D0E56E\r
++:10E86000010040E2C0101FE52300C1E5020017E3EC\r
++:10E870000100000A2702A0E1000000EA010CA0E369\r
++:10E880000050A0E1E0001FE54C02D0E5000050E39D\r
++:10E890000300001AF0001FE54402D0E5030010E376\r
++:10E8A000D500000A010018E30400000A020018E382\r
++:10E8B0000200000A10011FE592FDFFEBF081BDE8A8\r
++:10E8C0001C011FE52200D0E5000050E30400000A0F\r
++:10E8D000010050E33A00000A020050E36E00000A13\r
++:10E8E000A60000EA40011FE54402D0E5030010E362\r
++:10E8F0002F00000A0B6DA0E3026886E2310AA0E354\r
++:10E90000001090E5021981E3001080E568011FE521\r
++:10E910004402D0E5010010E30D00000A010017E3F6\r
++:10E920000B00000A0620A0E11C109FE51C009FE5DB\r
++:10E93000ABFDFFEB000050E30500000A9DF2FFEB8A\r
++:10E940000300A0E33CE6FFEB150000EAB87201000B\r
++:10E95000B86A0100B0011FE54402D0E5020010E3EF\r
++:10E960000F00000A020017E30000000A045045E20D\r
++:10E97000010017E30100000A0C6086E20C5045E23A\r
++:10E980000520A0E10610A0E1E4011FE5D2FDFFEBA8\r
++:10E99000000050E30200000A86F2FFEB0300A0E350\r
++:10E9A00025E6FFEB310AA0E3001090E50219C1E370\r
++:10E9B000001080E52010A0E33A0AA0E366EEFFEB2A\r
++:10E9C0006E0000EA20021FE54402D0E5030010E3D8\r
++:10E9D0002D00000A0F6DA0E3026886E2310AA0E371\r
++:10E9E000001090E5021981E3001080E548021FE560\r
++:10E9F0004402D0E5010010E30B00000A010017E318\r
++:10EA00000900000A0620A0E1C4101FE5C4001FE5AC\r
++:10EA100073FDFFEB000050E30300000A65F2FFEB1B\r
++:10EA20000300A0E304E6FFEB130000EA88021FE501\r
++:10EA30004402D0E5020010E30F00000A020017E3D1\r
++:10EA40000000000A045045E2010017E30100000A3B\r
++:10EA50000C6086E20C5045E20520A0E10610A0E122\r
++:10EA6000BC021FE59CFDFFEB000050E30200000A22\r
++:10EA700050F2FFEB0300A0E3EFE5FFEB310AA0E368\r
++:10EA8000001090E50219C1E3001080E54010A0E3FA\r
++:10EA90003A0AA0E330EEFFEB380000EAF8021FE587\r
++:10EAA0004402D0E5030010E33000000A08031FE52C\r
++:10EAB0002200D0E50B1DA0E3021881E2006481E092\r
++:10EAC000310AA0E3001090E5021981E3001080E50F\r
++:10EAD0002C031FE54402D0E5010010E30B00000AFF\r
++:10EAE000010017E30900000A0620A0E1A8111FE5B4\r
++:10EAF000A8011FE53AFDFFEB000050E30300000A08\r
++:10EB00002CF2FFEB0300A0E3CBE5FFEB130000EAE0\r
++:10EB10006C031FE54402D0E5020010E30F00000A79\r
++:10EB2000020017E30000000A045045E2010017E369\r
++:10EB30000100000A0C6086E20C5045E20520A0E1CD\r
++:10EB40000610A0E1A0031FE563FDFFEB000050E30A\r
++:10EB50000200000A17F2FFEB0300A0E3B6E5FFEBAB\r
++:10EB6000310AA0E3001090E50219C1E3001080E52E\r
++:10EB70008010A0E33A0AA0E3F7EDFFEBFFFFFFEA06\r
++:10EB8000020017E30B00000A0010A0E3E8031FE5F2\r
++:10EB90004C12C0E50000A0E3F4131FE54502C1E5F7\r
++:10EBA0000000A0E300141FE54602C1E50010A0E349\r
++:10EBB0000C041FE54712C0E514041FE52300D0E54F\r
++:10EBC000010080E220141FE52300C1E528041FE5B1\r
++:10EBD0002200D0E5010080E2FF1000E238041FE5CA\r
++:10EBE0002210C0E5030051E30200001A0010A0E368\r
++:10EBF0004C041FE52210C0E5F081BDE80510A0E13E\r
++:10EC00005C041FE578FCFFEBF081BDE8F081BDE816\r
++:10EC1000F0412DE90040A0E12C02D4E5000050E3D2\r
++:10EC20000000001AF081BDE83002D4E5000050E396\r
++:10EC30000000000AF081BDE8236AA0E3180094E513\r
++:10EC40002A12D4E5817180E02C02D4E5200050E343\r
++:10EC5000010000DA2000A0E3000000EA2C02D4E565\r
++:10EC6000FF8000E218009FE58400D0E5010050E33A\r
++:10EC70003900001A0050A0E3080055E1040000BA72\r
++:10EC80001A0000EAD0670100010085E2FF5000E2AF\r
++:10EC9000F8FFFFEA2A02D4E5800184E0280090E52D\r
++:10ECA000000086E5046086E22A02D4E5800184E063\r
++:10ECB0002C0090E5000086E5046086E22A02D4E597\r
++:10ECC000010080E2FF1000E22A12C4E5BA00D4E19C\r
++:10ECD000000051E10400001A0000A0E32A02C4E58C\r
++:10ECE000010085E2FF5000E2000000EAE5FFFFEAD4\r
++:10ECF0002D52C4E52C02D4E52D12D4E5010040E0EC\r
++:10ED00002C02C4E50310A0E38C001FE58410C0E5CD\r
++:10ED10002420D4E50110A0E30300A0E3FAEBFFEB0D\r
++:10ED2000E00E1FE5307080E50319A0E3EC0E1FE54F\r
++:10ED3000B413C0E12D02D4E58001A0E1FC1E1FE563\r
++:10ED4000B603C1E10300A0E33002C4E50010A0E374\r
++:10ED50000300A0E3EBEAFFEB3D0000EA1C009FE5A7\r
++:10ED60008400D0E5010050E33900001A0050A0E310\r
++:10ED70002C02D4E5050050E1040000CA1A0000EAA4\r
++:10ED80008C5A0100010085E2FF5000E2F7FFFFEA24\r
++:10ED90002A02D4E5800184E0280090E5000086E5A1\r
++:10EDA000046086E22A02D4E5800184E02C0090E52C\r
++:10EDB000000086E5046086E22A02D4E5010080E2D4\r
++:10EDC000FF1000E22A12C4E5BA00D4E1000051E1CC\r
++:10EDD0000400001A0000A0E32A02C4E5010085E255\r
++:10EDE000FF5000E2000000EAE5FFFFEA2D52C4E513\r
++:10EDF0002C02D4E52D12D4E5010040E02C02C4E53C\r
++:10EE00000300A0E38C101FE58400C1E52420D4E5B5\r
++:10EE10000110A0E30400A0E3BBEBFFEBDC0F1FE558\r
++:10EE2000407080E50319A0E3E80F1FE5B414C0E1CA\r
++:10EE30002D02D4E58001A0E1F81F1FE5B604C1E171\r
++:10EE40000400A0E33002C4E50010A0E30400A0E346\r
++:10EE5000ACEAFFEBF081BDE8F081BDE830402DE980\r
++:10EE6000980B1FE52200D0E5000050E30400000AE3\r
++:10EE7000010050E30C00000A020050E31400000AF5\r
++:10EE80001D0000EA0F09A0E3200090E50050A0E17A\r
++:10EE90000F09A0E3240090E50040A0E12010A0E3CA\r
++:10EEA0000F09A0E32CEDFFEB130000EA0F09A0E32C\r
++:10EEB000300090E50050A0E10F09A0E3340090E598\r
++:10EEC0000040A0E14010A0E30F09A0E322EDFFEB1A\r
++:10EED000090000EA0F09A0E3400090E50050A0E11E\r
++:10EEE0000F09A0E3440090E50040A0E18010A0E3FA\r
++:10EEF0000F09A0E318EDFFEBFFFFFFEA020015E3A7\r
++:10EF00000100001A010014E30F00000A0410A0E140\r
++:10EF1000480C1FE5CDFBFFEB020014E30600000ADE\r
++:10EF2000580C1FE54D02D0E5000050E30200001A26\r
++:10EF3000680C1FE5F3FBFFEB3080BDE80000A0E3A9\r
++:10EF4000781C1FE54D02C1E5040000EA840C1FE5B2\r
++:10EF5000100090E5010C80E2901C1FE5100081E597\r
++:10EF6000980C1FE52300D0E5010080E2A41C1FE5FA\r
++:10EF70002300C1E5AC0C1FE52200D0E5010080E2D2\r
++:10EF8000FF0000E2BC1C1FE52200C1E5030050E3C6\r
++:10EF90000200001A0000A0E3D01C1FE52200C1E51A\r
++:10EFA0003080BDE83080BDE830402DE908081FE51D\r
++:10EFB0002200D0E5000050E30400000A010050E305\r
++:10EFC0000C00000A020050E31400000A1D0000EAD1\r
++:10EFD0003A0AA0E3200090E50050A0E13A0AA0E33D\r
++:10EFE000240090E50040A0E12010A0E33A0AA0E34D\r
++:10EFF000D9ECFFEB130000EA3A0AA0E3300090E5F9\r
++:10F000000050A0E13A0AA0E3340090E50040A0E1FE\r
++:10F010004010A0E33A0AA0E3CFECFFEB090000EABE\r
++:10F020003A0AA0E3400090E50050A0E13A0AA0E3CC\r
++:10F03000440090E50040A0E18010A0E33A0AA0E37C\r
++:10F04000C5ECFFEBFFFFFFEA020015E30100001A29\r
++:10F05000010014E30F00000A0410A0E1B8081FE546\r
++:10F060007AFBFFEB020014E30600000AC8081FE564\r
++:10F070004D02D0E5000050E30200001AD8081FE559\r
++:10F08000A0FBFFEB3080BDE80000A0E3E8181FE51F\r
++:10F090004D02C1E5040000EAF4081FE5100090E508\r
++:10F0A000010C80E200191FE5100081E508091FE549\r
++:10F0B0002300D0E5010080E214191FE52300C1E51B\r
++:10F0C0001C091FE52200D0E5010080E2FF0000E2FC\r
++:10F0D0002C191FE52200C1E5030050E30200001ACD\r
++:10F0E0000000A0E340191FE52200C1E53080BDE823\r
++:10F0F0003080BDE800402DE90110A0E3340E1FE58B\r
++:10F100004D12C0E53C0E1FE57EFBFFEB0080BDE825\r
++:10F110000080BDE800402DE90110A0E378091FE55B\r
++:10F120004D12C0E580091FE576FBFFEB0080BDE8CE\r
++:10F130000080BDE870402DE90040A0E1FF6004E2DE\r
++:10F14000030056E32900001AA4091FE54402D0E594\r
++:10F15000040010E30400000A850FA0E3030880E226\r
++:10F16000001090E5041081E3001080E5C8091FE558\r
++:10F170004402D0E5030010E31B00000AD8091FE594\r
++:10F180000100D0E5000050E31700001A3A0AA0E39E\r
++:10F19000000090E50050A0E1200015E30200001AF5\r
++:10F1A0002010A0E33A0AA0E36BECFFEB400015E36C\r
++:10F1B0000200001A4010A0E33A0AA0E366ECFFEB5D\r
++:10F1C000800015E30200001A8010A0E33A0AA0E3D1\r
++:10F1D00061ECFFEB0100A0E3341A1FE50100C1E57B\r
++:10F1E0000210A0E33A0AA0E35BECFFEB060000EAA2\r
++:10F1F000000056E30400001A850FA0E3030880E234\r
++:10F20000001090E50410C1E3001080E57080BDE8B7\r
++:10F210007080BDE870402DE90040A0E1FF6004E28D\r
++:10F22000030056E32F00001A600F1FE54402D0E5EB\r
++:10F23000040010E30900000A860FA0E3030880E23F\r
++:10F24000001090E5011A81E3001080E5850FA0E32E\r
++:10F25000030880E2001090E5011A81E3001080E5C8\r
++:10F26000980F1FE54402D0E5030010E31B00000ADD\r
++:10F27000A80F1FE50100D0E5000050E31700001AB9\r
++:10F280000F09A0E3000090E50050A0E1200015E385\r
++:10F290000200001A2010A0E30F09A0E32EECFFEB00\r
++:10F2A000400015E30200001A4010A0E30F09A0E39C\r
++:10F2B00029ECFFEB800015E30200001A8010A0E3A8\r
++:10F2C0000F09A0E324ECFFEB0110A0E310009FE581\r
++:10F2D0000110C0E50210A0E30F09A0E31EECFFEB54\r
++:10F2E000070000EA245B0100000056E30400001A56\r
++:10F2F000850FA0E3030880E2001090E5011AC1E346\r
++:0CF30000001080E57080BDE87080BDE862\r
++:00000001FF\r
+diff -Nur cnx_linux_0.2/DownLoadApp/cnxadsl.conf cnx_linux_0.3/DownLoadApp/cnxadsl.conf
+--- cnx_linux_0.2/DownLoadApp/cnxadsl.conf     Fri Mar 19 02:03:28 2004
++++ cnx_linux_0.3/DownLoadApp/cnxadsl.conf     Fri Mar 19 01:58:28 2004
+@@ -49,7 +49,7 @@
+ TxFifoSize                    512
+ # Download
+-FirmwareFilename          %s  CnxTgF.hex
++FirmwareFilename          %s  firmware.hex
+ # Misc
+ AdslPsdTestMode               0
diff --git a/src/patches/dhcpcd-1.3.22-pl4_corrupt-packet.patch b/src/patches/dhcpcd-1.3.22-pl4_corrupt-packet.patch
new file mode 100644 (file)
index 0000000..3288eaa
--- /dev/null
@@ -0,0 +1,12 @@
+Fix for CAN-2005-1848 borrowed from gentoo / debian\r
+--- client.c.orig      2005-07-10 10:16:43.000000000 +0100\r
++++ client.c   2005-07-10 10:22:31.000000000 +0100\r
+@@ -129,6 +129,8 @@\r
+               default:\r
+         if ( p[1] )\r
+           {\r
++            if (p + 2 + p[1] >= end)\r
++                goto swend; /* Corrupt packet */\r
+             if ( DhcpOptions.len[*p] == p[1] )\r
+               memcpy(DhcpOptions.val[*p],p+2,p[1]);\r
+             else\r
diff --git a/src/patches/e2fsprogs-1.35-install.patch b/src/patches/e2fsprogs-1.35-install.patch
new file mode 100644 (file)
index 0000000..b36f6b7
--- /dev/null
@@ -0,0 +1,16 @@
+diff -ruN e2fsprogs-1.34.old/lib/ext2fs/mkjournal.c e2fsprogs-1.34/lib/ext2fs/mkjournal.c
+--- e2fsprogs-1.34.old/lib/ext2fs/mkjournal.c  Sun Feb  3 07:03:43 2002
++++ e2fsprogs-1.34/lib/ext2fs/mkjournal.c      Fri Dec 12 11:20:53 2003
+@@ -312,11 +312,7 @@
+       ext2_ino_t              journal_ino;
+       struct stat             st;
+       char                    jfile[1024];
+-      int                     fd, mount_flags, f;
+-
+-      if ((retval = ext2fs_check_mount_point(fs->device_name, &mount_flags,
+-                                             jfile, sizeof(jfile)-10)))
+-              return retval;
++      int                     fd, mount_flags=0, f;
+       if (mount_flags & EXT2_MF_MOUNTED) {
+               strcat(jfile, "/.journal");
diff --git a/src/patches/ez-ipupdate.formstring.patch b/src/patches/ez-ipupdate.formstring.patch
new file mode 100644 (file)
index 0000000..83187d1
--- /dev/null
@@ -0,0 +1,11 @@
+--- ez-ipupdate.c.old  2002-03-12 00:31:47.000000000 +0100
++++ ez-ipupdate.c      2004-11-10 15:28:23.000000000 +0100
+@@ -798,7 +798,7 @@ void show_message(char *fmt, ...)
+     sprintf(buf, "message incomplete because your OS sucks: %s\n", fmt);
+ #endif
+-    syslog(LOG_NOTICE, buf);
++    syslog(LOG_NOTICE, "%s", buf);
+   }
+   else
+   {
diff --git a/src/patches/fcdsl-singlelock.patch b/src/patches/fcdsl-singlelock.patch
new file mode 100644 (file)
index 0000000..c787516
--- /dev/null
@@ -0,0 +1,190 @@
+# patch found at http://freiburg.linux.de/~zeisberg/howtos/fritzcarddsl.html
+diff -u -r fritz.old/src.drv/driver.c fritz/src.drv/driver.c
+--- fritz.old/src.drv/driver.c Tue Jul  8 00:02:00 2003
++++ fritz/src.drv/driver.c     Fri Nov  7 14:21:49 2003
+@@ -18,6 +18,10 @@
+  * http://www.opensource.org/licenses/lgpl-license.html
+  * 
+  * Contact: AVM GmbH, Alt-Moabit 95, 10559 Berlin, Germany, email: info@avm.de
++ *
++ * Mon Oct 20 22:43:31 2003
++ * Modified by Joerg Lehrke to improve locking 
++ *
+  */
+ #include <asm/io.h>
+@@ -57,6 +61,8 @@
+ #include "dbgif.h"
+ #endif
++#undef SINGLE_LOCK
++
+ #if defined (LOG_MESSAGES)
+ # define mlog         log
+ #else
+@@ -107,7 +113,11 @@
+ struct capi_ctr *             capi_controller[2]      = { NULL, NULL } ;
+ static bundle_t                       ctrl_context[2];
+ static per_ctrl_t             ctrl_params[2];
++#if defined (SINGLE_LOCK)
++# define stack_lock qt_lock
++#else
+ static spinlock_t             stack_lock              = SPIN_LOCK_UNLOCKED;
++#endif
+ static atomic_t                       rx_flag                 = ATOMIC_INIT (0);
+ static atomic_t                       tx_flag                 = ATOMIC_INIT (0);
+ static unsigned long          qt_flags;
+@@ -1080,7 +1090,7 @@
+ } /* remove_ctrl */
+ /*---------------------------------------------------------------------------*\
+-\*-L-------------------------------------------------------------------------*/
++\*---------------------------------------------------------------------------*/
+ void lock (void) {
+       unsigned long   local_flags;
+       
+@@ -1098,7 +1108,7 @@
+ } /* unlock */
+ /*---------------------------------------------------------------------------*\
+-\*-C-------------------------------------------------------------------------*/
++\*---------------------------------------------------------------------------*/
+ static inline int in_critical (void) {
+       return (0 < atomic_read (&crit_count));
+@@ -1108,17 +1118,16 @@
+ \*---------------------------------------------------------------------------*/
+ static inline void check (void) {
+       unsigned long   flags;
+-      spinlock_t      chk_lock = SPIN_LOCK_UNLOCKED;
+       if (atomic_xchg (&rx_flag, 0)) {
+-              spin_lock_irqsave (&chk_lock, flags);
++              spin_lock_irqsave (&stack_lock, flags);
+               rx_handler (capi_card);
+-              spin_unlock_irqrestore (&chk_lock, flags);
++              spin_unlock_irqrestore (&stack_lock, flags);
+       }
+       if (atomic_xchg (&tx_flag, 0)) {
+-              spin_lock_irqsave (&chk_lock, flags);
++              spin_lock_irqsave (&stack_lock, flags);
+               tx_handler (capi_card);
+-              spin_unlock_irqrestore (&chk_lock, flags);
++              spin_unlock_irqrestore (&stack_lock, flags);
+       }
+ } /* check */
+@@ -1640,7 +1649,7 @@
+       return ncci_data_buffer (capi_card->appls, appp, ncci, handle);
+ } /* data_block */
+-/*-S-------------------------------------------------------------------------*\
++/*---------------------------------------------------------------------------*\
+ \*---------------------------------------------------------------------------*/
+ static void scheduler_control (unsigned ena) {
+       int     enabled = (int) ena;
+@@ -1662,6 +1671,7 @@
+ /*---------------------------------------------------------------------------*\
+ \*---------------------------------------------------------------------------*/ 
+ static int sched_thread (void * arg) {
++        unsigned long flags;
+       UNUSED_ARG (arg);
+       daemonize ();
+@@ -1692,6 +1702,7 @@
+                       continue;
+               }
+               /* Body of thread, invoke scheduler */
++              local_irq_save(flags);
+               if (spin_trylock (&stack_lock)) {
+                       os_timer_poll ();
+                       assert (capi_lib->cm_schedule);
+@@ -1700,6 +1711,7 @@
+                       }
+                       spin_unlock (&stack_lock);
+               }
++              local_irq_restore(flags);
+       }
+       log ("Scheduler thread stopped.\n");
+       up (&hotplug);
+@@ -1802,17 +1814,22 @@
+ /*---------------------------------------------------------------------------*\
+ \*---------------------------------------------------------------------------*/
+ static void tx_task (unsigned long data) {
+-      
++        unsigned long flags;
++
+       UNUSED_ARG (data);
+       if (in_critical ()) {
+               atomic_set (&tx_flag, 1);
+               kick_scheduler ();
+-      } else if (spin_trylock (&stack_lock)) {
+-              tx_handler (capi_card);
+-              spin_unlock (&stack_lock);
+       } else {
+-              atomic_set (&tx_flag, 1);
+-              kick_scheduler ();
++              local_irq_save(flags);
++              if (spin_trylock (&stack_lock)) {
++                      tx_handler (capi_card);
++                      spin_unlock (&stack_lock);
++              } else {
++                      atomic_set (&tx_flag, 1);
++                      kick_scheduler ();
++              }
++              local_irq_restore(flags);
+       }
+ } /* tx_task */
+@@ -1865,17 +1882,22 @@
+ /*---------------------------------------------------------------------------*\
+ \*---------------------------------------------------------------------------*/
+ static void rx_task (unsigned long data) {
++        unsigned long flags;
+       
+       UNUSED_ARG (data);
+       if (in_critical ()) {
+               atomic_set (&rx_flag, 1);
+               kick_scheduler ();
+-      } else if (spin_trylock (&stack_lock)) {
+-              rx_handler (capi_card);
+-              spin_unlock (&stack_lock);
+       } else {
+-              atomic_set (&rx_flag, 1);
+-              kick_scheduler ();
++              local_irq_save(flags);
++              if (spin_trylock (&stack_lock)) {
++                      rx_handler (capi_card);
++                      spin_unlock (&stack_lock);
++              } else {
++                      atomic_set (&rx_flag, 1);
++                      kick_scheduler ();
++              }
++              local_irq_restore(flags);
+       }
+ } /* rx_task */
+@@ -1894,6 +1916,7 @@
+       if (capi_card != (card_p) args) {
+               return;
+       }
++      spin_lock (&stack_lock);
+       while (0 != ((flags = PEEK (capi_card->io_base + INT_CTL)) & CARD_PCI_INT_ASSERT)) {
+ #if !defined (NDEBUG)
+               ++count;
+@@ -1906,6 +1929,7 @@
+               assert ((PEEK (capi_card->io_base + INT_CTL) 
+                               & ~(CARD_PCI_INT_ASSERT | CARD_PCI_INT_ISASSERTED)) != 0);
+               if (!atomic_read (&link_open)) {
++                      spin_unlock (&stack_lock);
+                       return;
+               }
+               tx_flag = PEEK (capi_card->io_base + XFER_TOTM_STATUS) == TM_READY;
+@@ -1920,6 +1944,7 @@
+               }
+       }
+       info (0 == (PEEK (capi_card->io_base + INT_CTL) & CARD_PCI_INT_ASSERT));
++      spin_unlock (&stack_lock);
+ } /* irq_handler */
+ /*---------------------------------------------------------------------------*\
diff --git a/src/patches/fcdslsl-singlelock.patch b/src/patches/fcdslsl-singlelock.patch
new file mode 100644 (file)
index 0000000..d9caf4b
--- /dev/null
@@ -0,0 +1,92 @@
+# patch found at http://freiburg.linux.de/~zeisberg/howtos/fritzcarddsl.html
+--- fritz.old/src.drv/driver.c.orig    Sun Dec  7 17:46:27 2003
++++ fritz/src.drv/driver.c     Wed Dec 17 23:46:53 2003
+@@ -18,6 +18,11 @@
+  * http://www.opensource.org/licenses/lgpl-license.html
+  * 
+  * Contact: AVM GmbH, Alt-Moabit 95, 10559 Berlin, Germany, email: info@avm.de
++ *
++ * Sunday Dec 07 18:10 2003
++ * Modified by Christian 'greeny' Heckhoff to improve locking
++ * based on modifications by Joerg Lehrke for Fritz!Card DSL
++ *
+  */
+ #include <asm/io.h>
+@@ -53,6 +58,8 @@
+ #include "devif.h"
+ #include "driver.h"
++#undef SINGLE_LOCK
++
+ #if defined (LOG_MESSAGES)
+ # define mlog         log
+ #else
+@@ -108,7 +115,11 @@
+ static bundle_t                       ctrl_context[2];
+ static per_ctrl_t             ctrl_params[2];
+ static unsigned long          qt_flags;
++#if defined (SINGLE_LOCK)
++# define stack_lock qt_lock
++#else
+ static spinlock_t             qt_lock                 = SPIN_LOCK_UNLOCKED;
++#endif
+ static atomic_t                       thread_flag             = ATOMIC_INIT (0);
+ static atomic_t                       thread_capi_flag        = ATOMIC_INIT (0);
+ static int                    thread_pid              = -1;
+@@ -1128,7 +1139,7 @@
+ } /* remove_ctrl */
+ /*---------------------------------------------------------------------------*\
+-\*-L-------------------------------------------------------------------------*/
++\*---------------------------------------------------------------------------*/
+ void lock (void) {
+       unsigned long   local_flags;
+       
+@@ -1146,15 +1157,14 @@
+ } /* unlock */
+ /*---------------------------------------------------------------------------*\
+-\*-C-------------------------------------------------------------------------*/
++\*---------------------------------------------------------------------------*/
+ static inline void check (void) {
+       unsigned long   flags;
+-      spinlock_t      chk_lock = SPIN_LOCK_UNLOCKED;
+       if (atomic_xchg (&xfer_flag, 0)) {
+-              spin_lock_irqsave (&chk_lock, flags);
++              spin_lock_irqsave (&stack_lock, flags);
+               xfer_handler (capi_card);
+-              spin_unlock_irqrestore (&chk_lock, flags);
++              spin_unlock_irqrestore (&stack_lock, flags);
+       }
+ } /* check */
+@@ -1687,9 +1697,10 @@
+       return ncci_data_buffer (capi_card->appls, appp, ncci, handle);
+ } /* data_block */
+-/*-S-------------------------------------------------------------------------*\
++/*---------------------------------------------------------------------------*\
+ \*---------------------------------------------------------------------------*/
+ static int sched_thread (void * arg) {
++      unsigned long flags;
+       UNUSED_ARG (arg);
+       daemonize ();
+@@ -1721,6 +1732,7 @@
+                       continue;
+               }
+               /* Body of thread, invoke scheduler */
++              local_irq_save(flags);
+               if (spin_trylock (&stack_lock)) {
+                       os_timer_poll ();
+                       assert (capi_lib->cm_schedule);
+@@ -1729,6 +1741,7 @@
+                       }
+                       spin_unlock (&stack_lock);
+               }
++              local_irq_restore(flags);
+       }
+       log ("Scheduler thread stopped.\n");
+       up (&thread_sync);
diff --git a/src/patches/fcdslslusb-singlelock.patch b/src/patches/fcdslslusb-singlelock.patch
new file mode 100644 (file)
index 0000000..cced8bd
--- /dev/null
@@ -0,0 +1,142 @@
+# patch found at http://freiburg.linux.de/~zeisberg/howtos/fritzcarddsl.html
+--- fritz.old/src.drv/driver.c.orig    2003-12-19 00:00:00.000000000 +0200
++++ fritz/src.drv/driver.c     2004-07-18 17:03:36.000000000 +0200
+@@ -18,6 +18,14 @@
+  * http://www.opensource.org/licenses/lgpl-license.html
+  * 
+  * Contact: AVM GmbH, Alt-Moabit 95, 10559 Berlin, Germany, email: info@avm.de
++ *
++ * Sunday Dec 07 18:10 2003
++ * Modified by Christian 'greeny' Heckhoff to improve locking
++ * based on modifications by Joerg Lehrke for Fritz!Card DSL
++ *
++ * Saturday Jul 24 2004, Oswin Horvath 
++ * small modifications to make the patch work for the Fritz!Card SL USB (03.11.94)
++ * 
+  */
+ #include <asm/io.h>
+@@ -54,6 +62,8 @@
+ #include "devif.h"
+ #include "driver.h"
++#undef SINGLE_LOCK
++
+ #if defined (LOG_MESSAGES)
+ # define mlog         log
+ #else
+@@ -118,7 +128,11 @@
+ static bundle_t                       ctrl_context[2];
+ static per_ctrl_t             ctrl_params[2];
+ static unsigned long          qt_flags;
++#if defined (SINGLE_LOCK)
++# define stack_lock qt_lock
++#else
+ static spinlock_t             qt_lock                 = SPIN_LOCK_UNLOCKED;
++#endif
+ static atomic_t                       thread_flag             = ATOMIC_INIT (0);
+ static atomic_t                       thread_capi_flag        = ATOMIC_INIT (0);
+ static int                    thread_pid              = -1;
+@@ -946,7 +960,7 @@
+ } /* fdslusb_remove_ctrl */
+ /*---------------------------------------------------------------------------*\
+-\*-L-------------------------------------------------------------------------*/
++\*---------------------------------------------------------------------------*/
+ void lock (void) {
+       unsigned long   local_flags;
+       
+@@ -966,12 +980,17 @@
+ /*---------------------------------------------------------------------------*\
+ \*-C-------------------------------------------------------------------------*/
+ static inline void check (void) {
++        unsigned long flags;
+         if (atomic_read (&rx_flag) > 0) {
++              spin_lock_irqsave (&stack_lock, flags);
+               rx_handler (fcslusb_capi_card);
++              spin_unlock_irqrestore (&stack_lock, flags);
+       }
+       if (atomic_read (&tx_flag) > 0) {
++              spin_lock_irqsave (&stack_lock, flags);
+               tx_handler (fcslusb_capi_card);
++              spin_unlock_irqrestore (&stack_lock, flags);
+       }
+ } /* check */
+@@ -1519,6 +1538,7 @@
+ /*-S-------------------------------------------------------------------------*\
+ \*---------------------------------------------------------------------------*/
+ static int scheduler (void * arg) {
++        unsigned long flags;
+       UNUSED_ARG (arg);
+       daemonize ();
+@@ -1551,6 +1571,7 @@
+                       continue;
+               }
+               /* Body of thread, invoke scheduler */
++              local_irq_save(flags);
+               if (spin_trylock (&stack_lock)) {
+                       info (!atomic_xchg (&in_scheduler, 1));
+                       os_timer_poll ();
+@@ -1561,6 +1582,7 @@
+                       debug (atomic_set (&in_scheduler, 0));
+                       spin_unlock (&stack_lock);
+               }
++              local_irq_restore(flags);
+       }
+       log ("Scheduler thread stopped.\n");
+       up (&thread_sync);
+@@ -1743,22 +1765,43 @@
+ /*---------------------------------------------------------------------------*\
+ \*---------------------------------------------------------------------------*/ 
+ static void tx_task (unsigned long data) {
+-
++      unsigned long flags;  
+       UNUSED_ARG (data);
+-      if (!in_critical () && spin_trylock (&stack_lock)) {
+-              tx_handler (fcslusb_capi_card);
+-              spin_unlock (&stack_lock);
++      
++      if (in_critical ()){
++              atomic_set (&tx_flag, 1);
++              kick_scheduler ();
++      } else {
++              local_irq_save(flags);
++              if (spin_trylock (&stack_lock)) {
++                      tx_handler (fcslusb_capi_card);
++                      spin_unlock (&stack_lock);
++              } else {
++                      atomic_set (&tx_flag, 1);
++                      kick_scheduler ();
++              }
++              local_irq_restore(flags);
+       }
+ } /* tx_task */
+ /*---------------------------------------------------------------------------*\
+ \*---------------------------------------------------------------------------*/ 
+ static void rx_task (unsigned long data) {
+-
++      unsigned long flags;
+       UNUSED_ARG (data);
+-      if (!in_critical () && spin_trylock (&stack_lock)) {
+-              rx_handler (fcslusb_capi_card);
+-              spin_unlock (&stack_lock);
++      if (in_critical ()){
++              atomic_set (&rx_flag, 1);
++              kick_scheduler ();
++      } else {
++              local_irq_save(flags);
++              if (spin_trylock (&stack_lock)) {
++                      rx_handler (fcslusb_capi_card);
++                      spin_unlock (&stack_lock);
++              } else {
++                      atomic_set (&rx_flag, 1);
++                      kick_scheduler ();
++              }
++              local_irq_restore(flags);
+       }
+ } /* rx_task */
diff --git a/src/patches/fcdslx-irqreturn.patch b/src/patches/fcdslx-irqreturn.patch
new file mode 100644 (file)
index 0000000..b27783d
--- /dev/null
@@ -0,0 +1,11 @@
+--- fritz/src.drv/defs.h.old   Thu Sep 25 23:00:00 2003
++++ fritz/src.drv/defs.h       Tue Oct 12 22:30:54 2004
+@@ -81,7 +81,7 @@
+ # define KFREE_SKB(x) dev_kfree_skb_any(x)
+ #endif
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23)
+ typedef void irqreturn_t;
+ #define IRQ_NONE
diff --git a/src/patches/gcc-2.95.3-alpha.patch b/src/patches/gcc-2.95.3-alpha.patch
new file mode 100644 (file)
index 0000000..ddd9964
--- /dev/null
@@ -0,0 +1,321 @@
+diff -ur gcc-2.95.3.old/gcc/config/alpha/crtbegin.asm gcc-2.95.3/gcc/config/alpha/crtbegin.asm
+--- gcc-2.95.3.old/gcc/config/alpha/crtbegin.asm       2004-02-02 12:13:24.000000000 +0000
++++ gcc-2.95.3/gcc/config/alpha/crtbegin.asm   2004-02-02 12:16:37.000000000 +0000
+@@ -1,42 +1,46 @@
+- # Copyright (C) 1996, 1998 Free Software Foundation, Inc.
+- #  Contributed by Richard Henderson (rth@tamu.edu)
+- #
+- # This file 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.
+- # 
+- # In addition to the permissions in the GNU General Public License, the
+- # Free Software Foundation gives you unlimited permission to link the
+- # compiled version of this file with other programs, and to distribute
+- # those programs without any restriction coming from the use of this
+- # file.  (The General Public License restrictions do apply in other
+- # respects; for example, they cover modification of the file, and
+- # distribution when not linked into another program.)
+- # 
+- # This file 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; see the file COPYING.  If not, write to
+- # the Free Software Foundation, 59 Temple Place - Suite 330,
+- # Boston, MA 02111-1307, USA.
+- # 
+- #    As a special exception, if you link this library with files
+- #    compiled with GCC to produce an executable, this does not cause
+- #    the resulting executable to be covered by the GNU General Public License.
+- #    This exception does not however invalidate any other reasons why
+- #    the executable file might be covered by the GNU General Public License.
+-
+- #
+- # Heads of the constructor/destructor lists.
+- #
+-
+- # The __*TOR_LIST__ symbols are not global because when this file is used
+- # in a shared library, we do not want the symbol to fall over to the
+- # application's lists.
++/* Copyright (C) 1996, 1998 Free Software Foundation, Inc.
++ *  Contributed by Richard Henderson (rth@tamu.edu)
++ *
++ * This file 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.
++ * 
++ * In addition to the permissions in the GNU General Public License, the
++ * Free Software Foundation gives you unlimited permission to link the
++ * compiled version of this file with other programs, and to distribute
++ * those programs without any restriction coming from the use of this
++ * file.  (The General Public License restrictions do apply in other
++ * respects; for example, they cover modification of the file, and
++ * distribution when not linked into another program.)
++ * 
++ * This file 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; see the file COPYING.  If not, write to
++ * the Free Software Foundation, 59 Temple Place - Suite 330,
++ * Boston, MA 02111-1307, USA.
++ * 
++ *    As a special exception, if you link this library with files
++ *    compiled with GCC to produce an executable, this does not cause
++ *    the resulting executable to be covered by the GNU General Public License.
++ *    This exception does not however invalidate any other reasons why
++ *    the executable file might be covered by the GNU General Public License.
++ */
++
++#include "auto-host.h"
++
++/*
++ * Heads of the constructor/destructor lists.
++ */
++
++/* The __*TOR_LIST__ symbols are not global because when this file is used
++ * in a shared library, we do not want the symbol to fall over to the
++ * application's lists.
++ */
+ .section .ctors,"aw"
+@@ -53,34 +57,34 @@
+ .section .eh_frame,"aw"
+ __EH_FRAME_BEGIN__:
+- #
+- # Fragment of the ELF _fini routine that invokes our dtor cleanup.
+- #
++/*
++ * Fragment of the ELF _fini routine that invokes our dtor cleanup.
++ */
+ .section .fini,"ax"
+-      # Since the bits of the _fini function are spread across many
+-      # object files, each potentially with its own GP, we must
+-      # assume we need to load ours.  Further, our .fini section
+-      # can easily be more than 4MB away from our .text bits so we
+-      # can't use bsr.
++      /* Since the bits of the _fini function are spread across many
++         object files, each potentially with its own GP, we must
++         assume we need to load ours.  Further, our .fini section
++         can easily be more than 4MB away from our .text bits so we
++         can't use bsr.  */
+       br      $29,1f
+ 1:    ldgp    $29,0($29)
+       jsr     $26,__do_global_dtors_aux
+-      # Ideally this call would go in crtend.o, except that we can't
+-      # get hold of __EH_FRAME_BEGIN__ there.
++      /* Ideally this call would go in crtend.o, except that we can't
++         get hold of __EH_FRAME_BEGIN__ there  */
+       jsr     $26,__do_frame_takedown
+-      # Must match the alignment we got from crti.o else we get
+-      # zero-filled holes in our _fini function and then SIGILL.
++      /* Must match the alignment we got from crti.o else we get
++         zero-filled holes in our _fini function and then SIGILL.  */
+       .align 3
+- #
+- # Fragment of the ELF _init routine that sets up the frame info.
+- #
++/*
++ * Fragment of the ELF _init routine that sets up the frame info.
++ */
+ .section .init,"ax"
+        br      $29,1f
+@@ -88,13 +92,13 @@
+        jsr     $26,__do_frame_setup
+        .align 3
+- #
+- # Invoke our destructors in order.
+- #
++/*
++ * Invoke our destructors in order.
++ */
+ .data
+- # Support recursive calls to exit.
++/* Support recursive calls to exit.  */
+ $ptr: .quad   __DTOR_LIST__
+ /* A globally unique widget for c++ local destructors to hang off.
+@@ -128,17 +132,28 @@
+       .ent __do_global_dtors_aux
+ __do_global_dtors_aux:
++      ldgp    $29,0($27)
+       lda     $30,-16($30)
+       .frame  $30,16,$26,0
+       stq     $9,8($30)
+       stq     $26,0($30)
+       .mask   0x4000200,-16
+-      .prologue 0
++      .prologue 1
++#ifdef SHARED
++        /* Do c++ local destructors.  */
++        lda     $1,__cxa_finalize
++        beq     $1,2f
++        lda     $16,__dso_handle
++        jsr     $26,__cxa_finalize
++        ldgp    $29,0($26)
++2:
++#endif
+       lda     $9,$ptr
+       br      1f
+ 0:    stq     $1,0($9)
+       jsr     $26,($27)
++      ldgp    $29,0($26)
+ 1:    ldq     $1,0($9)
+       ldq     $27,8($1)
+       addq    $1,8,$1
+@@ -151,11 +166,11 @@
+       .end __do_global_dtors_aux
+- #
+- # Install our frame info.
+- #
++/*
++ * Install our frame info.
++ */
+- # ??? How can we rationally keep this size correct?
++/* ??? How can we rationally keep this size correct?  */
+ .section .bss
+       .type $object,@object
+@@ -188,9 +203,9 @@
+       .end __do_frame_setup
+- #
+- # Remove our frame info.
+- #
++/*
++ * Remove our frame info.
++ */
+       .align 3
+       .ent __do_frame_takedown
+@@ -215,3 +230,6 @@
+ .weak __register_frame_info
+ .weak __deregister_frame_info
++#ifdef SHARED
++.weak __cxa_finalize
++#endif
+diff -ur gcc-2.95.3.old/gcc/config/alpha/elf.h gcc-2.95.3/gcc/config/alpha/elf.h
+--- gcc-2.95.3.old/gcc/config/alpha/elf.h      1999-06-21 21:15:10.000000000 +0100
++++ gcc-2.95.3/gcc/config/alpha/elf.h  2004-02-02 12:16:37.000000000 +0000
+@@ -513,7 +513,7 @@
+ #define STARTFILE_SPEC \
+   "%{!shared: \
+      %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}\
+-   crti.o%s crtbegin.o%s"
++   crti.o%s %{shared:crtbeginS.o%s}%{!shared:crtbegin.o%s}"
+ /* Provide a ENDFILE_SPEC appropriate for ELF.  Here we tack on the
+    magical crtend.o file which provides part of the support for
+@@ -522,7 +522,7 @@
+ #undef        ENDFILE_SPEC
+ #define ENDFILE_SPEC \
+-  "crtend.o%s crtn.o%s"
++  "%{shared:crtendS.o%s}%{!shared:crtend.o%s} crtn.o%s"
+ /* We support #pragma.  */
+ #define HANDLE_SYSV_PRAGMA
+diff -ur gcc-2.95.3.old/gcc/config/alpha/t-crtbe gcc-2.95.3/gcc/config/alpha/t-crtbe
+--- gcc-2.95.3.old/gcc/config/alpha/t-crtbe    1998-12-16 21:01:05.000000000 +0000
++++ gcc-2.95.3/gcc/config/alpha/t-crtbe        2004-02-02 12:16:37.000000000 +0000
+@@ -3,7 +3,13 @@
+ # Assemble startup files.
+ crtbegin.o: $(srcdir)/config/alpha/crtbegin.asm $(GCC_PASSES)
+-      $(GCC_FOR_TARGET) -c -o crtbegin.o -x assembler $(srcdir)/config/alpha/crtbegin.asm
++      $(GCC_FOR_TARGET) -c -o crtbegin.o -x assembler-with-cpp -I. $(srcdir)/config/alpha/crtbegin.asm
+ crtend.o: $(srcdir)/config/alpha/crtend.asm $(GCC_PASSES)
+       $(GCC_FOR_TARGET) -c -o crtend.o -x assembler $(srcdir)/config/alpha/crtend.asm
++
++crtbeginS.o: $(srcdir)/config/alpha/crtbegin.asm $(GCC_PASSES)
++      $(GCC_FOR_TARGET) -DSHARED -c -o crtbeginS.o -x assembler-with-cpp -I. $(srcdir)/config/alpha/crtbegin.asm
++
++crtendS.o: $(srcdir)/config/alpha/crtend.asm $(GCC_PASSES)
++      $(GCC_FOR_TARGET) -c -o crtendS.o -x assembler -I. $(srcdir)/config/alpha/crtend.asm
+diff -ur gcc-2.95.3.old/gcc/configure.in gcc-2.95.3/gcc/configure.in
+--- gcc-2.95.3.old/gcc/configure.in    2004-02-02 12:13:24.000000000 +0000
++++ gcc-2.95.3/gcc/configure.in        2004-02-02 12:16:37.000000000 +0000
+@@ -607,7 +607,7 @@
+               tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
+               target_cpu_default="MASK_GAS"
+               tmake_file="t-linux t-linux-gnulibc1 alpha/t-linux alpha/t-crtbe alpha/t-ieee"
+-              extra_parts="crtbegin.o crtend.o"
++              extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+               xmake_file=none
+               gas=yes gnu_ld=yes
+               if test x$enable_threads = xyes; then
+@@ -618,7 +618,7 @@
+               tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
+               target_cpu_default="MASK_GAS"
+               tmake_file="t-linux alpha/t-linux alpha/t-crtbe alpha/t-ieee"
+-              extra_parts="crtbegin.o crtend.o"
++              extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+               xmake_file=none
+               gas=yes gnu_ld=yes
+               if test x$enable_threads = xyes; then
+@@ -629,7 +629,7 @@
+               tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
+               target_cpu_default="MASK_GAS"
+               tmake_file="alpha/t-crtbe alpha/t-ieee"
+-              extra_parts="crtbegin.o crtend.o"
++              extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+               xmake_file=none
+               gas=yes gnu_ld=yes
+               ;;
+--- gcc-2.95.3.old/gcc/configure       2004-02-02 12:13:24.000000000 +0000
++++ gcc-2.95.3/gcc/configure   2004-02-02 14:20:41.000000000 +0000
+@@ -3041,7 +3041,7 @@
+               tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
+               target_cpu_default="MASK_GAS"
+               tmake_file="t-linux t-linux-gnulibc1 alpha/t-linux alpha/t-crtbe alpha/t-ieee"
+-              extra_parts="crtbegin.o crtend.o"
++              extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+               xmake_file=none
+               gas=yes gnu_ld=yes
+               if test x$enable_threads = xyes; then
+@@ -3052,7 +3052,7 @@
+               tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
+               target_cpu_default="MASK_GAS"
+               tmake_file="t-linux alpha/t-linux alpha/t-crtbe alpha/t-ieee"
+-              extra_parts="crtbegin.o crtend.o"
++              extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+               xmake_file=none
+               gas=yes gnu_ld=yes
+               if test x$enable_threads = xyes; then
+@@ -3063,7 +3063,7 @@
+               tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
+               target_cpu_default="MASK_GAS"
+               tmake_file="alpha/t-crtbe alpha/t-ieee"
+-              extra_parts="crtbegin.o crtend.o"
++              extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+               xmake_file=none
+               gas=yes gnu_ld=yes
+               ;;
diff --git a/src/patches/glibc-2.3.3-ssp_frandom-2.patch b/src/patches/glibc-2.3.3-ssp_frandom-2.patch
new file mode 100644 (file)
index 0000000..8104f00
--- /dev/null
@@ -0,0 +1,222 @@
+Submitted By: Robert Connolly <cendres at videotron dot ca> (ashes)
+Date: 2004-04-24
+Initial Package Version: 2.3.3
+Origin: http://www.research.ibm.com/trl/projects/security/ssp/
+        http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/sys/stack_protector.c
+Description: Smashing Stack Protector - This patch adds guard functions to
+Glibc.
+
+This patch depends on erandom sysctl from:
+http://frandom.sourceforge.net/
+http://www.linuxfromscratch.org/hints/downloads/files/entropy.txt
+
+Also see:
+http://www.research.ibm.com/trl/projects/security/ssp/
+http://www.linuxfromscratch.org/hlfs/
+http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
+
+diff -Naur glibc-2.3-20040418.orig/sysdeps/generic/libc-start.c glibc-2.3-20040418.ssp-frandom/sysdeps/generic/libc-start.c
+--- glibc-2.3-20040418.orig/sysdeps/generic/libc-start.c       2004-03-31 01:46:43.000000000 +0000
++++ glibc-2.3-20040418.ssp-frandom/sysdeps/generic/libc-start.c        2004-04-25 07:07:34.000000000 +0000
+@@ -188,6 +188,8 @@
+     GLRO(dl_debug_printf) ("\ntransferring control: %s\n\n", argv[0]);
+ #endif
++  __guard_setup ();
++
+ #ifdef HAVE_CLEANUP_JMP_BUF
+   /* Memory for the cancellation buffer.  */
+   struct pthread_unwind_buf unwind_buf;
+diff -Naur glibc-2.3-20040418.orig/sysdeps/unix/sysv/linux/Dist glibc-2.3-20040418.ssp-frandom/sysdeps/unix/sysv/linux/Dist
+--- glibc-2.3-20040418.orig/sysdeps/unix/sysv/linux/Dist       2003-09-24 05:04:29.000000000 +0000
++++ glibc-2.3-20040418.ssp-frandom/sysdeps/unix/sysv/linux/Dist        2004-04-25 07:09:46.000000000 +0000
+@@ -1,3 +1,4 @@
++stack_protector.c
+ bits/initspin.h
+ cmsg_nxthdr.c
+ dl-brk.c
+diff -Naur glibc-2.3-20040418.orig/sysdeps/unix/sysv/linux/Makefile glibc-2.3-20040418.ssp-frandom/sysdeps/unix/sysv/linux/Makefile
+--- glibc-2.3-20040418.orig/sysdeps/unix/sysv/linux/Makefile   2004-04-03 07:45:26.000000000 +0000
++++ glibc-2.3-20040418.ssp-frandom/sysdeps/unix/sysv/linux/Makefile    2004-04-25 07:10:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ ifeq ($(subdir),csu)
+-sysdep_routines += errno-loc
++sysdep_routines += errno-loc stack_protector
+ endif
+ ifeq ($(subdir),assert)
+diff -Naur glibc-2.3-20040418.orig/sysdeps/unix/sysv/linux/Versions glibc-2.3-20040418.ssp-frandom/sysdeps/unix/sysv/linux/Versions
+--- glibc-2.3-20040418.orig/sysdeps/unix/sysv/linux/Versions   2004-03-19 00:13:55.000000000 +0000
++++ glibc-2.3-20040418.ssp-frandom/sysdeps/unix/sysv/linux/Versions    2004-04-25 07:08:58.000000000 +0000
+@@ -108,6 +108,7 @@
+   GLIBC_2.3.2 {
+     # New kernel interfaces.
+     epoll_create; epoll_ctl; epoll_wait;
++      __guard; __guard_setup; __stack_smash_handler;
+   }
+   GLIBC_2.3.3 {
+     gnu_dev_major; gnu_dev_minor; gnu_dev_makedev;
+diff -Naur glibc-2.3-20040418.orig/sysdeps/unix/sysv/linux/stack_protector.c glibc-2.3-20040418.ssp-frandom/sysdeps/unix/sysv/linux/stack_protector.c
+--- glibc-2.3-20040418.orig/sysdeps/unix/sysv/linux/stack_protector.c  1970-01-01 00:00:00.000000000 +0000
++++ glibc-2.3-20040418.ssp-frandom/sysdeps/unix/sysv/linux/stack_protector.c   2004-04-25 07:24:27.000000000 +0000
+@@ -0,0 +1,160 @@
++/*    $hlfs: ssp.c,v 1.1 2004/04/24 00:00:00 robert Exp $     */
++
++/* Most of this code was copied from the gcc patch, libgcc2.c hunk, from
++ *    http://www.trl.ibm.com/projects/security/ssp/
++ * And therefore this code is part of gcc.
++ */
++
++/* Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
++   2000, 2001, 2002  Free Software Foundation, Inc.
++
++This file is part of GCC.
++
++GCC 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.
++
++In addition to the permissions in the GNU General Public License, the
++Free Software Foundation gives you unlimited permission to link the
++compiled version of this file into combinations with other programs,
++and to distribute those combinations without any restriction coming
++from the use of this file.  (The General Public License restrictions
++do apply in other respects; for example, they cover modification of
++the file, and distribution when not linked into a combine
++executable.)
++
++GCC 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 GCC; see the file COPYING.  If not, write to the Free
++Software Foundation, 59 Temple Place - Suite 330, Boston, MA
++02111-1307, USA.  */
++
++/* Some portions of this code were copied from
++ *    http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/sys/stack_protector.c
++ * And hence a dual license.
++ */
++
++/*
++ * Copyright (c) 2002 Hiroaki Etoh, Federico G. Schwindt, and Miodrag Vallat.
++ * 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.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``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 AUTHORS 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.
++ *
++ */
++
++#include <stdio.h>
++#include <string.h>
++#include <fcntl.h>
++#include <unistd.h>
++#include <sys/sysctl.h>
++
++#include <signal.h>
++
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <sys/un.h>
++
++#include <sys/syslog.h>
++#ifndef _PATH_LOG
++#define _PATH_LOG "/dev/log"
++#endif
++
++long __guard[8] = {0, 0, 0, 0, 0, 0, 0, 0};
++
++void __guard_setup (void)
++{
++      int i, mib[3];
++      size_t len;
++
++      if (__guard[0] != 0)
++              return;
++
++      /* Random is another depth in Linux, hence an array of 3. */
++      mib[0] = CTL_KERN;
++      mib[1] = KERN_RANDOM;
++      mib[2] = RANDOM_ERANDOM;
++
++      len = 4;
++      for (i = 0; i < sizeof(__guard) / 4; i++) {
++              if (sysctl(mib, 3, (char *)&((int *)__guard)[i],
++                  &len, NULL, 0) == -1)
++                      break;
++      }
++
++      if (i < sizeof(__guard) / 4) {
++              /* If sysctl was unsuccessful, use the "terminator canary". */
++              ((char *)__guard)[0] = 0; ((char*)__guard)[1] = 0;
++              ((char *)__guard)[2] = '\n'; ((char *)__guard)[3] = 255;
++      }
++}
++
++void __stack_smash_handler (char func[], int damaged)
++{
++      extern char * __progname;
++      const char message[] = ": stack smashing attack in function ";
++      int bufsz = 512, len;
++      char buf[bufsz];
++      int LogFile;
++      struct sockaddr_un SyslogAddr;  /* AF_UNIX address of local logger */
++
++      sigset_t mask;
++      sigfillset(&mask);
++      sigdelset(&mask, SIGABRT);  /* Block all signal handlers */
++      sigprocmask(SIG_BLOCK, &mask, NULL); /* except SIGABRT */
++
++      strcpy(buf, "<2>"); len=3;    /* send LOG_CRIT */
++      strncat(buf, __progname, bufsz-len-1); len = strlen(buf);
++      if (bufsz>len) {strncat(buf, message, bufsz-len-1); len = strlen(buf);}
++      if (bufsz>len) {strncat(buf, func, bufsz-len-1); len = strlen(buf);}
++      /* print error message */
++      write (STDERR_FILENO, buf+3, len-3);
++      if ((LogFile = socket(AF_UNIX, SOCK_DGRAM, 0)) != -1) {
++              /* 
++              * Send "found" message to the "/dev/log" path
++              */
++              SyslogAddr.sun_family = AF_UNIX;
++              (void)strncpy(SyslogAddr.sun_path, _PATH_LOG,
++                      sizeof(SyslogAddr.sun_path) - 1);
++              SyslogAddr.sun_path[sizeof(SyslogAddr.sun_path) - 1] = '\0';
++              sendto(LogFile, buf, len, 0, (struct sockaddr *)&SyslogAddr,
++                      sizeof(SyslogAddr));
++      }
++
++      /* Make sure the default handler is associated with SIGABRT */
++      struct sigaction sa;
++
++      memset(&sa, 0, sizeof(struct sigaction));
++      sigfillset(&sa.sa_mask);    /* Block all signals */
++      sa.sa_flags = 0;
++      sa.sa_handler = SIG_DFL;
++      sigaction(SIGABRT, &sa, NULL);
++
++      (void)kill(getpid(), SIGABRT);
++
++      _exit(127);
++}
++
diff --git a/src/patches/grub-0.90-append.patch b/src/patches/grub-0.90-append.patch
new file mode 100644 (file)
index 0000000..88f79d0
--- /dev/null
@@ -0,0 +1,111 @@
+--- grub-0.90/stage2/stage2.c.append   Thu Dec 20 08:20:48 2001
++++ grub-0.90/stage2/stage2.c  Thu Dec 20 17:01:20 2001
+@@ -500,7 +500,8 @@
+         if (config_entries)
+           printf ("\
+       Press enter to boot the selected OS, \'e\' to edit the\n\
+-      commands before booting, or \'c\' for a command-line.");
++      commands before booting, \'a\' to modify the kernel arguments\n\
++      before booting, or \'c\' for a command-line.");
+         else
+           printf ("\
+       Press \'b\' to boot, \'e\' to edit the selected command in the\n\
+@@ -787,6 +788,98 @@
+                 enter_cmdline (heap, 0);
+                 goto restart;
+               }
++            if (config_entries && c == 'a')
++              {
++                int new_num_entries = 0, i = 0, j;
++                int needs_padding, amount;
++                char *new_heap;
++                char * entries;
++                char * entry_copy;
++                char * append_line;
++                char * start;
++
++                entry_copy = new_heap = heap;
++                cur_entry = get_entry (config_entries, first_entry + entryno,
++                                       1);
++                
++                do
++                  {
++                    while ((*(new_heap++) = cur_entry[i++]) != 0);
++                    new_num_entries++;
++                  }
++                while (config_entries && cur_entry[i]);
++
++                /* this only needs to be done if config_entries is non-NULL,
++                   but it doesn't hurt to do it always */
++                *(new_heap++) = 0;
++
++                new_heap = heap + NEW_HEAPSIZE + 1;
++
++                entries = entry_copy;
++                while (*entries) 
++                  {
++                    if ((strstr(entries, "kernel") == entries) &&
++                        isspace(entries[6])) 
++                        break;
++
++                    while (*entries) entries++;
++                    entries++;
++                  }
++
++                if (!*entries)
++                    goto restart;
++
++                start = entries + 6;
++
++                /* skip the white space */
++                while (*start && isspace(*start)) start++;
++                /* skip the kernel name */
++                while (*start && !isspace(*start)) start++;
++
++                /* skip the white space */
++                needs_padding = (!*start || !isspace(*start));
++                while (*start && isspace(*start)) start++;
++
++                append_line = new_heap;
++                grub_strcpy(append_line, start);
++
++                cls();
++                print_cmdline_message (CMDLINE_EDIT_MODE);
++
++                if (get_cmdline(PACKAGE " append> ", 
++                                  append_line, NEW_HEAPSIZE + 1, 
++                                  0, 1))
++                    goto restart;
++
++                /* have new args; append_line points to the
++                   new args and start points to the old
++                   args */
++
++                i = grub_strlen(start);
++                j = grub_strlen(append_line);
++
++                if (i > (j + needs_padding))
++                    amount = i;
++                else
++                    amount = j + needs_padding;
++
++                /* align rest of commands properly */
++                memmove (start + j + needs_padding, start + i,
++                     ((int) append_line) - ((int) start) - (amount));
++
++                if (needs_padding)
++                    *start = ' ';
++
++                /* copy command to correct area */
++                memmove (start + needs_padding, append_line, j);
++
++                /* set up this entry to boot */
++                config_entries = NULL;
++                cur_entry = entry_copy;
++                heap = new_heap;
++
++                break;
++              }
+ #ifdef GRUB_UTIL
+             if (c == 'q')
+               {
diff --git a/src/patches/grub-0.90-symlinkmenulst.patch b/src/patches/grub-0.90-symlinkmenulst.patch
new file mode 100644 (file)
index 0000000..553d15a
--- /dev/null
@@ -0,0 +1,16 @@
+Only in grub: ChangeLog~
+diff -ur grub-0.90/util/grub-install.in grub/util/grub-install.in
+--- grub-0.90/util/grub-install.in     Wed Sep  5 15:50:06 2001
++++ grub/util/grub-install.in  Wed Sep  5 15:50:24 2001
+@@ -320,6 +320,10 @@
+     exit 1
+ fi
++if ! test -e ${grubdir}/grub.conf ; then
++    test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
++fi
++
+ # Create a safe temporary file.
+ test -x /bin/mktemp && log_file=`/bin/mktemp /tmp/grub-install.log.XXXXXX`
+Only in grub/util: grub-install.in.orig
diff --git a/src/patches/grub-0.91-bootonce.patch b/src/patches/grub-0.91-bootonce.patch
new file mode 100644 (file)
index 0000000..90d7cfd
--- /dev/null
@@ -0,0 +1,249 @@
+To: bug-grub@gnu.org
+cc: Keir.Fraser@cl.cam.ac.uk
+Subject: PATCH (updated): 'lilo -R' functionality
+From: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
+Message-Id: <E16iFu3-0002VK-00@wisbech.cl.cam.ac.uk>
+
+The following is a slight modification to the patch I submitted a week
+or so ago. This will cause GRUB to skip displaying the boot menu if a
+one-shot default has been specified (just as lilo does with '-R').
+
+Same caveats as for previous patch:
+ * The new 'savedefault' function in the GRUB shell is incomplete.
+   Only works if the filesystem containing stage2 file is mounted.
+ * Patch is against grub-0.90, but patches directly to 0.91
+
+I hope this goes into CVS in the next round of updates :-)
+
+ -- Keir Fraser
+
+
+
+diff -urBP grub-0.90-old/stage2/builtins.c grub-0.90-modified/stage2/builtins.c
+--- grub-0.90-old/stage2/builtins.c    Fri Feb 22 11:59:57 2002
++++ grub-0.90-modified/stage2/builtins.c       Fri Feb 22 13:48:36 2002
+@@ -785,6 +785,17 @@
+ default_func (char *arg, int flags)
+ {
+ #ifndef SUPPORT_DISKLESS
++#ifndef GRUB_UTIL
++  /* Has a forced once-only default been specified? */
++  static int savedefault_helper(int);
++  if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
++    {
++      grub_timeout = 0;
++      default_entry = saved_entryno & ~STAGE2_ONCEONLY_ENTRY;
++      savedefault_helper(0);
++      return 0;
++    }
++#endif
+   if (grub_strcmp (arg, "saved") == 0)
+     {
+       default_entry = saved_entryno;
+@@ -3074,22 +3085,15 @@
+ };
\f
+-/* savedefault */
++
++#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
++/* Write specified default entry number into stage2 file. */
+ static int
+-savedefault_func (char *arg, int flags)
++savedefault_helper(int new_default)
+ {
+-#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
+   char buffer[512];
+   int *entryno_ptr;
+-  
+-  /* This command is only useful when you boot an entry from the menu
+-     interface.  */
+-  if (! (flags & BUILTIN_SCRIPT))
+-    {
+-      errnum = ERR_UNRECOGNIZED;
+-      return 1;
+-    }
+-  
++
+   /* Get the geometry of the boot drive (i.e. the disk which contains
+      this stage2).  */
+   if (get_diskinfo (boot_drive, &buf_geom))
+@@ -3115,10 +3119,10 @@
+   entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
+   /* Check if the saved entry number differs from current entry number.  */
+-  if (*entryno_ptr != current_entryno)
++  if (*entryno_ptr != new_default)
+     {
+       /* Overwrite the saved entry number.  */
+-      *entryno_ptr = current_entryno;
++      *entryno_ptr = new_default;
+       
+       /* Save the image in the disk.  */
+       if (! rawwrite (boot_drive, install_second_sector, buffer))
+@@ -3129,6 +3133,117 @@
+     }
+   return 0;
++}
++#endif
++
++#if !defined(SUPPORT_DISKLESS) && defined(GRUB_UTIL)
++/*
++ * Full implementation of new `savedefault' for GRUB shell.
++ * XXX This needs fixing for stage2 files which aren't accessible
++ *     through a mounted filesystem.
++ */
++static int
++savedefault_shell(char *arg, int flags)
++{
++  char *stage2_os_file = "/boot/grub/stage2"; /* Default filename */
++  FILE *fp;
++  char buffer[512];
++  int *entryno_ptr;
++  int new_default = 0;
++
++  while (1)
++    {
++      if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0)
++        {
++          stage2_os_file = arg + sizeof ("--stage2=") - 1;
++          arg = skip_to (0, arg);
++          nul_terminate (stage2_os_file);
++        }
++      else if (grub_memcmp ("--default=", arg, sizeof ("--default=") - 1) == 0)
++        {
++          char *p = arg + sizeof ("--default=") - 1;
++          if (! safe_parse_maxint (&p, &new_default))
++            return 1;
++          arg = skip_to (0, arg);
++        }
++      else if (grub_memcmp ("--once", arg, sizeof ("--once") - 1) == 0)
++        {
++          new_default |= STAGE2_ONCEONLY_ENTRY;
++          arg = skip_to (0, arg);
++        }
++      else
++        break;
++    }
++
++  if (! (fp = fopen(stage2_os_file, "r+")))
++    {
++      errnum = ERR_FILE_NOT_FOUND;
++      return 1;
++    }
++  
++  if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
++    {
++      fclose (fp);
++      errnum = ERR_BAD_VERSION;
++      return 1;
++    }
++  
++  if (fread (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++    {
++      fclose (fp);
++      errnum = ERR_READ;
++      return 1;
++    }
++
++  /* Sanity check.  */
++  if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
++      || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
++    {
++      errnum = ERR_BAD_VERSION;
++      return 1;
++    }
++  
++  entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
++  *entryno_ptr = new_default;
++
++  if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
++    {
++      fclose (fp);
++      errnum = ERR_BAD_VERSION;
++      return 1;
++    }
++  
++  if (fwrite (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++    {
++      fclose (fp);
++      errnum = ERR_WRITE;
++      return 1;
++    }
++  
++  (void)fflush (fp);
++  fclose (fp);
++  return 0;
++}
++#endif
++
++/* savedefault */
++static int
++savedefault_func (char *arg, int flags)
++{
++#if !defined(SUPPORT_DISKLESS)
++#if !defined(GRUB_UTIL)
++  /* This command is only useful when you boot an entry from the menu
++     interface.  */
++  if (! (flags & BUILTIN_SCRIPT))
++    {
++      errnum = ERR_UNRECOGNIZED;
++      return 1;
++    }
++
++  return savedefault_helper(current_entryno);
++#else /* defined(GRUB_UTIL) */
++  return savedefault_shell(arg, flags);
++#endif
+ #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */
+   errnum = ERR_UNRECOGNIZED;
+   return 1;
+@@ -3140,8 +3255,14 @@
+   "savedefault",
+   savedefault_func,
+   BUILTIN_CMDLINE,
++#ifdef GRUB_UTIL
++  "savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]",
++  "Save DEFAULT as the default boot entry in STAGE2_FILE. If '--once'"
++  " is specified, the default is reset after the next reboot."
++#else
+   "savedefault",
+   "Save the current entry as the default boot entry."
++#endif
+ };
\f
+@@ -4217,6 +4338,15 @@
+ static int
+ timeout_func (char *arg, int flags)
+ {
++  /* One-shot default shenanigans -- don't piss around with the menu! */
++  if (grub_timeout != -1)
++    return 0;
++  if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
++    {
++      grub_timeout = 0;
++      return 0;
++    }
++
+   if (! safe_parse_maxint (&arg, &grub_timeout))
+     return 1;
+diff -urBP grub-0.90-old/stage2/shared.h grub-0.90-modified/stage2/shared.h
+--- grub-0.90-old/stage2/shared.h      Fri Feb 22 11:59:53 2002
++++ grub-0.90-modified/stage2/shared.h Fri Feb 22 10:51:49 2002
+@@ -199,6 +199,8 @@
+ #define STAGE2_FORCE_LBA      0x11
+ #define STAGE2_VER_STR_OFFS   0x12
++#define STAGE2_ONCEONLY_ENTRY   0x10000
++
+ /* Stage 2 identifiers */
+ #define STAGE2_ID_STAGE2              0
+ #define STAGE2_ID_FFS_STAGE1_5                1
+
+_______________________________________________
+Bug-grub mailing list
+Bug-grub@gnu.org
+http://mail.gnu.org/mailman/listinfo/bug-grub
diff --git a/src/patches/grub-0.91-splashimagehelp.patch b/src/patches/grub-0.91-splashimagehelp.patch
new file mode 100644 (file)
index 0000000..cc78073
--- /dev/null
@@ -0,0 +1,28 @@
+diff -ur grub-0.91/docs/grub.texi grub/docs/grub.texi
+--- grub-0.91/docs/grub.texi   Mon Jan 21 22:57:46 2002
++++ grub/docs/grub.texi        Mon Jan 21 22:57:51 2002
+@@ -1891,6 +1891,7 @@
+ * rarp::                        Initialize a network device via RARP
+ * serial::                      Set up a serial device
+ * setkey::                      Configure the key map
++* splashimage::                 Use a splash image
+ * terminal::                    Choose a terminal
+ * tftpserver::                  Specify a TFTP server
+ * unhide::                      Unhide a partition
+@@ -2260,6 +2261,16 @@
+ @end deffn
++@node splashimage
++@subsection splashimage
++
++@deffn Command splashimage file
++Select an image to use as the background image.  This should be
++specified using normal GRUB device naming syntax.  The format of the
++file is a gzipped xpm which is 640x480 with a 14 color palette.
++@end deffn
++
++
+ @node terminal
+ @subsection terminal
diff --git a/src/patches/grub-0.93-configfile.patch b/src/patches/grub-0.93-configfile.patch
new file mode 100644 (file)
index 0000000..9cb1182
--- /dev/null
@@ -0,0 +1,75 @@
+--- grub-0.93/stage2/asm.S.config      2002-12-02 18:18:56.000000000 -0500
++++ grub-0.93/stage2/asm.S     2002-12-28 22:01:24.000000000 -0500
+@@ -97,7 +97,7 @@
+       .string VERSION
+ VARIABLE(config_file)
+ #ifndef STAGE1_5
+-      .string "/boot/grub/menu.lst"
++      .string "/boot/grub/grub.conf"
+ #else   /* STAGE1_5 */
+       .long   0xffffffff
+       .string "/boot/grub/stage2"
+--- grub-0.93/stage2/builtins.c.config 2002-12-03 23:41:57.000000000 -0500
++++ grub-0.93/stage2/builtins.c        2002-12-28 22:01:24.000000000 -0500
+@@ -3838,7 +3838,7 @@
+   /* The prefix was determined.  */
+   grub_sprintf (stage2, "%s%s", prefix, "/stage2");
+-  grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst");
++  grub_sprintf (config_filename, "%s%s", prefix, "/grub.conf");
+   *real_config_filename = 0;
+   /* Check if stage2 exists.  */
+--- grub-0.93/grub/asmstub.c.config    2002-12-02 18:20:45.000000000 -0500
++++ grub-0.93/grub/asmstub.c   2002-12-28 22:01:24.000000000 -0500
+@@ -71,7 +71,7 @@
+ unsigned long boot_drive = 0;
+ int saved_entryno = 0;
+ char version_string[] = VERSION;
+-char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */
++char config_file[128] = "/boot/grub/grub.conf"; /* FIXME: arbitrary */
+ unsigned long linux_text_len = 0;
+ char *linux_data_tmp_addr = 0;
+ char *linux_data_real_addr = 0;
+--- grub-0.93/docs/grub.8.config       2002-12-07 22:17:59.000000000 -0500
++++ grub-0.93/docs/grub.8      2002-12-28 22:01:24.000000000 -0500
+@@ -15,7 +15,7 @@
+ specify stage2 boot_drive [default=0x0]
+ .TP
+ \fB\-\-config\-file\fR=\fIFILE\fR
+-specify stage2 config_file [default=/boot/grub/menu.lst]
++specify stage2 config_file [default=/boot/grub/grub.conf]
+ .TP
+ \fB\-\-device\-map\fR=\fIFILE\fR
+ use the device map file FILE
+--- grub-0.93/docs/grub.texi.config    2002-12-02 17:35:28.000000000 -0500
++++ grub-0.93/docs/grub.texi   2002-12-28 22:01:24.000000000 -0500
+@@ -989,7 +989,7 @@
+ keys) that will do everything to boot an OS.
+ To enable the menu, you need a configuration file,
+-@file{menu.lst} under the boot directory. We'll analyze an example
++@file{grub.conf} under the boot directory. We'll analyze an example
+ file.
+ The file first contains some general settings, the menu interface
+@@ -1596,8 +1596,8 @@
+ An absolute file name resembles a Unix absolute file name, using
+ @samp{/} for the directory separator (not @samp{\} as in DOS). One
+-example is @samp{(hd0,0)/boot/grub/menu.lst}. This means the file
+-@file{/boot/grub/menu.lst} in the first partition of the first hard
++example is @samp{(hd0,0)/boot/grub/grub.conf}. This means the file
++@file{/boot/grub/grub.conf} in the first partition of the first hard
+ disk. If you omit the device name in an absolute file name, GRUB uses
+ GRUB's @dfn{root device} implicitly. So if you set the root device to,
+ say, @samp{(hd1,0)} by the command @command{root} (@pxref{root}), then
+@@ -3249,7 +3249,7 @@
+ @item --config-file=@var{file}
+ Read the configuration file @var{file} instead of
+-@file{/boot/grub/menu.lst}. The format is the same as the normal GRUB
++@file{/boot/grub/grub.conf}. The format is the same as the normal GRUB
+ syntax. See @ref{Filesystem}, for more information.
+ @item --boot-drive=@var{drive}
diff --git a/src/patches/grub-0.93-endedit.patch b/src/patches/grub-0.93-endedit.patch
new file mode 100644 (file)
index 0000000..eb0463c
--- /dev/null
@@ -0,0 +1,77 @@
+Index: stage2/cmdline.c
+===================================================================
+RCS file: /cvsroot/grub/grub/stage2/cmdline.c,v
+retrieving revision 1.27
+diff -u -r1.27 cmdline.c
+--- stage2/cmdline.c   3 Dec 2002 00:02:53 -0000       1.27
++++ stage2/cmdline.c   6 Jan 2003 05:33:33 -0000
+@@ -48,12 +48,17 @@
+ /* Print a helpful message for the command-line interface.  */
+ void
+-print_cmdline_message (int forever)
++print_cmdline_message (int type)
+ {
+   printf (" [ Minimal BASH-like line editing is supported.  For the first word, TAB\n"
+         "   lists possible command completions.  Anywhere else TAB lists the possible\n"
+-        "   completions of a device/filename.%s ]\n",
+-        (forever ? "" : "  ESC at any time exits."));
++        "   completions of a device/filename.");
++  if (type == CMDLINE_NORMAL_MODE)
++    printf("  ESC at any time exits.");
++  if (type == CMDLINE_EDIT_MODE)
++    printf("  ESC at any time cancels.  ENTER \n"
++           "   at any time accepts your changes.");
++  printf("]\n");
+ }
+ /* Find the builtin whose command name is COMMAND and return the
+@@ -128,7 +133,7 @@
+   print_network_configuration ();
+   grub_putchar ('\n');
+ #endif
+-  print_cmdline_message (forever);
++  print_cmdline_message (forever ? CMDLINE_FOREVER_MODE : CMDLINE_NORMAL_MODE);
+   
+   while (1)
+     {
+Index: stage2/shared.h
+===================================================================
+RCS file: /cvsroot/grub/grub/stage2/shared.h,v
+retrieving revision 1.90
+diff -u -r1.90 shared.h
+--- stage2/shared.h    3 Dec 2002 00:02:53 -0000       1.90
++++ stage2/shared.h    6 Jan 2003 05:33:33 -0000
+@@ -843,9 +843,15 @@
+ void init_config (void);
+ char *skip_to (int after_equal, char *cmdline);
+ struct builtin *find_command (char *command);
+-void print_cmdline_message (int forever);
+ void enter_cmdline (char *heap, int forever);
+ int run_script (char *script, char *heap);
++
++/* the flags for the cmdline message */
++#define CMDLINE_FOREVER_MODE 0x0
++#define CMDLINE_NORMAL_MODE 0x1
++#define CMDLINE_EDIT_MODE 0x2
++
++void print_cmdline_message (int type);
+ #endif
+ /* C library replacement functions with identical semantics. */
+Index: stage2/stage2.c
+===================================================================
+RCS file: /cvsroot/grub/grub/stage2/stage2.c,v
+retrieving revision 1.42
+diff -u -r1.42 stage2.c
+--- stage2/stage2.c    4 Dec 2002 00:55:45 -0000       1.42
++++ stage2/stage2.c    6 Jan 2003 05:33:33 -0000
+@@ -655,7 +655,7 @@
+                 else
+                   {
+                     cls ();
+-                    print_cmdline_message (0);
++                    print_cmdline_message (CMDLINE_EDIT_MODE);
+                     new_heap = heap + NEW_HEAPSIZE + 1;
diff --git a/src/patches/grub-0.93-graphics-bootterm.patch b/src/patches/grub-0.93-graphics-bootterm.patch
new file mode 100644 (file)
index 0000000..1e2be9a
--- /dev/null
@@ -0,0 +1,39 @@
+--- grub-0.93/stage2/builtins.c.bootterm       2002-12-29 02:01:50.000000000 -0500
++++ grub-0.93/stage2/builtins.c        2002-12-29 02:01:07.000000000 -0500
+@@ -233,12 +233,22 @@
+ static int
+ boot_func (char *arg, int flags)
+ {
++  struct term_entry *prev_term = current_term;
+   /* Clear the int15 handler if we can boot the kernel successfully.
+      This assumes that the boot code never fails only if KERNEL_TYPE is
+      not KERNEL_TYPE_NONE. Is this assumption is bad?  */
+   if (kernel_type != KERNEL_TYPE_NONE)
+     unset_int15_handler ();
++  /* if our terminal needed initialization, we should shut it down
++   * before booting the kernel, but we want to save what it was so
++   * we can come back if needed */
++  if (current_term->shutdown) 
++    {
++      (*current_term->shutdown)();
++      current_term = term_table; /* assumption: console is first */
++    }
++
+ #ifdef SUPPORT_NETBOOT
+   /* Shut down the networking.  */
+   cleanup_net ();
+@@ -302,6 +312,13 @@
+       return 1;
+     }
++  /* if we get back here, we should go back to what our term was before */
++  current_term = prev_term;
++  if (current_term->startup)
++      /* if our terminal fails to initialize, fall back to console since
++       * it should always work */
++      if ((*current_term->startup)() == 0)
++          current_term = term_table; /* we know that console is first */
+   return 0;
+ }
diff --git a/src/patches/grub-0.93-graphics.patch b/src/patches/grub-0.93-graphics.patch
new file mode 100644 (file)
index 0000000..9f12ab3
--- /dev/null
@@ -0,0 +1,1283 @@
+--- grub-0.93/stage2/Makefile.am.graphics      2002-12-28 23:37:03.000000000 -0500
++++ grub-0.93/stage2/Makefile.am       2002-12-28 23:37:03.000000000 -0500
+@@ -7,7 +7,7 @@
+         fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
+       imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
+       nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
+-      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
++      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h
+ EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
+ # For <stage1.h>.
+@@ -19,7 +19,7 @@
+       disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
+       fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
+       fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
+-      terminfo.c tparm.c
++      terminfo.c tparm.c graphics.c
+ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+       -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+       -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
+@@ -80,8 +80,14 @@
+ HERCULES_FLAGS =
+ endif
++if GRAPHICS_SUPPORT
++GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
++else
++GRAPHICS_FLAGS =
++endif
++
+ STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
++      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
+ STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
+ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
+@@ -91,7 +97,8 @@
+       cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
+       fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
+       fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
+-      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
++      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \
++      graphics.c
+ pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+--- grub-0.93/stage2/asm.S.graphics    2002-12-28 23:37:03.000000000 -0500
++++ grub-0.93/stage2/asm.S     2002-12-28 23:37:03.000000000 -0500
+@@ -2224,6 +2224,156 @@
+       pop     %ebx
+       pop     %ebp
+       ret
++
++/* graphics mode functions */
++#ifdef SUPPORT_GRAPHICS
++VARIABLE(cursorX)
++.word 0
++VARIABLE(cursorY)
++.word 0
++VARIABLE(cursorCount)
++.word 0
++VARIABLE(cursorBuf)
++.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
++
++      
++/*
++ * int set_videomode(mode)
++ * BIOS call "INT 10H Function 0h" to set video mode
++ *    Call with       %ah = 0x0
++ *                    %al = video mode
++ *      Returns old videomode.
++ */
++ENTRY(set_videomode)
++      push    %ebp
++      push    %ebx
++      push    %ecx
++
++      movb    0x10(%esp), %cl
++
++      call    EXT_C(prot_to_real)
++      .code16
++
++      xorw    %bx, %bx
++      movb    $0xf, %ah
++      int     $0x10                   /* Get Current Video mode */
++      movb    %al, %ch
++      xorb    %ah, %ah
++      movb    %cl, %al
++        int   $0x10                   /* Set Video mode */
++
++      DATA32  call    EXT_C(real_to_prot)
++      .code32
++
++      xorb    %ah, %ah
++      movb    %ch, %al
++
++      pop     %ecx
++      pop     %ebx
++      pop     %ebp
++      ret
++
++
++/*
++ * unsigned char * graphics_get_font()
++ * BIOS call "INT 10H Function 11h" to set font
++ *      Call with       %ah = 0x11
++ */
++ENTRY(graphics_get_font)
++      push    %ebp
++      push    %ebx
++      push    %ecx
++      push    %edx
++
++      call    EXT_C(prot_to_real)
++      .code16
++
++      movw    $0x1130, %ax
++      movb    $6, %bh         /* font 8x16 */
++      int     $0x10
++      movw    %bp, %dx
++      movw    %es, %cx
++
++      DATA32  call    EXT_C(real_to_prot)
++      .code32
++
++      xorl    %eax, %eax
++      movw    %cx, %ax
++      shll    $4, %eax
++      movw    %dx, %ax
++
++      pop     %edx
++      pop     %ecx
++      pop     %ebx
++      pop     %ebp
++      ret
++      
++
++      
++/*
++ * graphics_set_palette(index, red, green, blue)
++ * BIOS call "INT 10H Function 10h" to set individual dac register
++ *    Call with       %ah = 0x10
++ *                    %bx = register number
++ *                    %ch = new value for green (0-63)
++ *                    %cl = new value for blue (0-63)
++ *                    %dh = new value for red (0-63)
++ */
++
++ENTRY(graphics_set_palette)
++      push    %ebp
++      push    %eax
++      push    %ebx
++      push    %ecx
++      push    %edx
++
++      movw    $0x3c8, %bx             /* address write mode register */
++
++      /* wait vertical retrace */
++
++      movw    $0x3da, %dx
++l1b:  inb     %dx, %al        /* wait vertical active display */
++      test    $8, %al
++      jnz     l1b
++
++l2b:  inb     %dx, %al        /* wait vertical retrace */
++      test    $8, %al
++      jnz     l2b
++
++      mov     %bx, %dx
++      movb    0x18(%esp), %al         /* index */
++      outb    %al, %dx
++      inc     %dx
++
++      movb    0x1c(%esp), %al         /* red */
++      outb    %al, %dx
++
++      movb    0x20(%esp), %al         /* green */
++      outb    %al, %dx
++
++      movb    0x24(%esp), %al         /* blue */
++      outb    %al, %dx
++
++      movw    0x18(%esp), %bx
++
++      call    EXT_C(prot_to_real)
++      .code16
++
++      movb    %bl, %bh
++      movw    $0x1000, %ax
++      int     $0x10
++
++      DATA32  call    EXT_C(real_to_prot)
++      .code32 
++
++      pop     %edx
++      pop     %ecx
++      pop     %ebx
++      pop     %eax
++      pop     %ebp
++      ret
++
++#endif /* SUPPORT_GRAPHICS */
+               
+ /*
+  * getrtsecs()
+--- grub-0.93/stage2/builtins.c.graphics       2002-12-28 23:37:03.000000000 -0500
++++ grub-0.93/stage2/builtins.c        2002-12-28 23:37:03.000000000 -0500
+@@ -857,6 +857,138 @@
+ };
+ #endif /* SUPPORT_NETBOOT */
++static int terminal_func (char *arg, int flags);
++
++#ifdef SUPPORT_GRAPHICS
++\f
++static int splashimage_func(char *arg, int flags) {
++    char splashimage[64];
++    int i;
++    
++    /* filename can only be 64 characters due to our buffer size */
++    if (strlen(arg) > 63)
++      return 1;
++    if (flags == BUILTIN_CMDLINE) {
++      if (!grub_open(arg))
++          return 1;
++      grub_close();
++    }
++
++    strcpy(splashimage, arg);
++
++    /* get rid of TERM_NEED_INIT from the graphics terminal. */
++    for (i = 0; term_table[i].name; i++) {
++      if (grub_strcmp (term_table[i].name, "graphics") == 0) {
++          term_table[i].flags &= ~TERM_NEED_INIT;
++          break;
++      }
++    }
++    
++    graphics_set_splash(splashimage);
++
++    if (flags == BUILTIN_CMDLINE && graphics_inited) {
++      graphics_end();
++      graphics_init();
++      graphics_cls();
++    }
++
++    /* FIXME: should we be explicitly switching the terminal as a 
++     * side effect here? */
++    terminal_func("graphics", flags);
++
++    return 0;
++}
++
++static struct builtin builtin_splashimage =
++{
++  "splashimage",
++  splashimage_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "splashimage FILE",
++  "Load FILE as the background image when in graphics mode."
++};
++
++\f
++/* foreground */
++static int
++foreground_func(char *arg, int flags)
++{
++    if (grub_strlen(arg) == 6) {
++      int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++      int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++      int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++      foreground = (r << 16) | (g << 8) | b;
++      if (graphics_inited)
++          graphics_set_palette(15, r, g, b);
++
++      return (0);
++    }
++
++    return (1);
++}
++
++static struct builtin builtin_foreground =
++{
++  "foreground",
++  foreground_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "foreground RRGGBB",
++  "Sets the foreground color when in graphics mode."
++  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++\f
++/* background */
++static int
++background_func(char *arg, int flags)
++{
++    if (grub_strlen(arg) == 6) {
++      int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++      int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++      int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++      background = (r << 16) | (g << 8) | b;
++      if (graphics_inited)
++          graphics_set_palette(0, r, g, b);
++      return (0);
++    }
++
++    return (1);
++}
++
++static struct builtin builtin_background =
++{
++  "background",
++  background_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "background RRGGBB",
++  "Sets the background color when in graphics mode."
++  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++#endif /* SUPPORT_GRAPHICS */
++
++\f
++/* clear */
++static int 
++clear_func() 
++{
++  if (current_term->cls)
++    current_term->cls();
++
++  return 0;
++}
++
++static struct builtin builtin_clear =
++{
++  "clear",
++  clear_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "clear",
++  "Clear the screen"
++};
++
\f
+ /* displayapm */
+ static int
+@@ -4071,7 +4203,7 @@
+ };
\f
+-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
+ /* terminal */
+ static int
+ terminal_func (char *arg, int flags)
+@@ -4230,17 +4362,21 @@
+  end:
+   current_term = term_table + default_term;
+   current_term->flags = term_flags;
+-  
++
+   if (lines)
+     max_lines = lines;
+   else
+-    /* 24 would be a good default value.  */
+-    max_lines = 24;
+-  
++    max_lines = current_term->max_lines;
++
+   /* If the interface is currently the command-line,
+      restart it to repaint the screen.  */
+-  if (current_term != prev_term && (flags & BUILTIN_CMDLINE))
++  if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){
++    if (prev_term->shutdown)
++      prev_term->shutdown();
++    if (current_term->startup)
++      current_term->startup();
+     grub_longjmp (restart_cmdline_env, 0);
++  }
+   
+   return 0;
+ }
+@@ -4250,7 +4386,7 @@
+   "terminal",
+   terminal_func,
+   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
+-  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]",
++  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]",
+   "Select a terminal. When multiple terminals are specified, wait until"
+   " you push any key to continue. If both console and serial are specified,"
+   " the terminal to which you input a key first will be selected. If no"
+@@ -4262,7 +4398,7 @@
+   " seconds. The option --lines specifies the maximum number of lines."
+   " The option --silent is used to suppress messages."
+ };
+-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
\f
+ #ifdef SUPPORT_SERIAL
+@@ -4785,6 +4921,9 @@
+ /* The table of builtin commands. Sorted in dictionary order.  */
+ struct builtin *builtin_table[] =
+ {
++#ifdef SUPPORT_GRAPHICS
++  &builtin_background,
++#endif
+   &builtin_blocklist,
+   &builtin_boot,
+ #ifdef SUPPORT_NETBOOT
+@@ -4792,6 +4931,7 @@
+ #endif /* SUPPORT_NETBOOT */
+   &builtin_cat,
+   &builtin_chainloader,
++  &builtin_clear,
+   &builtin_cmp,
+   &builtin_color,
+   &builtin_configfile,
+@@ -4811,6 +4951,9 @@
+   &builtin_embed,
+   &builtin_fallback,
+   &builtin_find,
++#ifdef SUPPORT_GRAPHICS
++  &builtin_foreground,
++#endif
+   &builtin_fstest,
+   &builtin_geometry,
+   &builtin_halt,
+@@ -4854,9 +4997,12 @@
+ #endif /* SUPPORT_SERIAL */
+   &builtin_setkey,
+   &builtin_setup,
+-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++#ifdef SUPPORT_GRAPHICS
++  &builtin_splashimage,
++#endif /* SUPPORT_GRAPHICS */
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
+   &builtin_terminal,
+-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
+ #ifdef SUPPORT_SERIAL
+   &builtin_terminfo,
+ #endif /* SUPPORT_SERIAL */
+--- grub-0.93/stage2/char_io.c.graphics        2002-12-02 18:49:07.000000000 -0500
++++ grub-0.93/stage2/char_io.c 2002-12-28 23:37:03.000000000 -0500
+@@ -35,6 +35,7 @@
+     {
+       "console",
+       0,
++      24,
+       console_putchar,
+       console_checkkey,
+       console_getkey,
+@@ -43,13 +44,16 @@
+       console_cls,
+       console_setcolorstate,
+       console_setcolor,
+-      console_setcursor
++      console_setcursor,
++      0, 
++      0
+     },
+ #ifdef SUPPORT_SERIAL
+     {
+       "serial",
+       /* A serial device must be initialized.  */
+       TERM_NEED_INIT,
++      24,
+       serial_putchar,
+       serial_checkkey,
+       serial_getkey,
+@@ -58,6 +62,8 @@
+       serial_cls,
+       serial_setcolorstate,
+       0,
++      0,
++      0, 
+       0
+     },
+ #endif /* SUPPORT_SERIAL */
+@@ -65,6 +71,7 @@
+     {
+       "hercules",
+       0,
++      24,
+       hercules_putchar,
+       console_checkkey,
+       console_getkey,
+@@ -73,9 +80,28 @@
+       hercules_cls,
+       hercules_setcolorstate,
+       hercules_setcolor,
+-      hercules_setcursor
++      hercules_setcursor,
++      0,
++      0
+     },      
+ #endif /* SUPPORT_HERCULES */
++#ifdef SUPPORT_GRAPHICS
++    { "graphics",
++      TERM_NEED_INIT, /* flags */
++      30, /* number of lines */
++      graphics_putchar, /* putchar */
++      console_checkkey, /* checkkey */
++      console_getkey, /* getkey */
++      graphics_getxy, /* getxy */
++      graphics_gotoxy, /* gotoxy */
++      graphics_cls, /* cls */
++      graphics_setcolorstate, /* setcolorstate */
++      graphics_setcolor, /* setcolor */
++      graphics_setcursor, /* nocursor */
++      graphics_init, /* initialize */
++      graphics_end /* shutdown */
++    },
++#endif /* SUPPORT_GRAPHICS */
+     /* This must be the last entry.  */
+     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+   };
+@@ -1039,13 +1065,15 @@
+                the following grub_printf call will print newlines.  */
+             count_lines = -1;
++            grub_printf("\n");
+             if (current_term->setcolorstate)
+               current_term->setcolorstate (COLOR_STATE_HIGHLIGHT);
+             
+-            grub_printf ("\n[Hit return to continue]");
++            grub_printf ("[Hit return to continue]");
+             if (current_term->setcolorstate)
+               current_term->setcolorstate (COLOR_STATE_NORMAL);
++              
+             
+             do
+               {
+@@ -1083,7 +1111,7 @@
+ cls (void)
+ {
+   /* If the terminal is dumb, there is no way to clean the terminal.  */
+-  if (current_term->flags & TERM_DUMB)
++  if (current_term->flags & TERM_DUMB) 
+     grub_putchar ('\n');
+   else
+     current_term->cls ();
+@@ -1207,6 +1235,16 @@
+   return ! errnum;
+ }
++void
++grub_memcpy(void *dest, const void *src, int len)
++{
++  int i;
++  register char *d = (char*)dest, *s = (char*)src;
++
++  for (i = 0; i < len; i++)
++    d[i] = s[i];
++}
++
+ void *
+ grub_memmove (void *to, const void *from, int len)
+ {
+--- /dev/null  2002-10-04 14:48:04.000000000 -0400
++++ grub-0.93/stage2/graphics.c        2002-12-28 23:37:03.000000000 -0500
+@@ -0,0 +1,552 @@
++/* graphics.c - graphics mode support for GRUB */
++/* Implemented as a terminal type by Jeremy Katz <katzj@redhat.com> based
++ * on a patch by Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
++ */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2001,2002  Red Hat, Inc.
++ *  Portions copyright (C) 2000  Conectiva, Inc.
++ *
++ *  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.
++ */
++
++
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++int saved_videomode;
++unsigned char *font8x16;
++
++int graphics_inited = 0;
++static char splashimage[64];
++
++#define VSHADOW VSHADOW1
++unsigned char VSHADOW1[38400];
++unsigned char VSHADOW2[38400];
++unsigned char VSHADOW4[38400];
++unsigned char VSHADOW8[38400];
++
++/* constants to define the viewable area */
++const int x0 = 0;
++const int x1 = 80;
++const int y0 = 0;
++const int y1 = 30;
++
++/* text buffer has to be kept around so that we can write things as we
++ * scroll and the like */
++unsigned short text[80 * 30];
++
++/* why do these have to be kept here? */
++int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0;
++
++/* current position */
++static int fontx = 0;
++static int fonty = 0;
++
++/* global state so that we don't try to recursively scroll or cursor */
++static int no_scroll = 0;
++
++/* color state */
++static int graphics_standard_color = A_NORMAL;
++static int graphics_normal_color = A_NORMAL;
++static int graphics_highlight_color = A_REVERSE;
++static int graphics_current_color = A_NORMAL;
++static color_state graphics_color_state = COLOR_STATE_STANDARD;
++
++
++/* graphics local functions */
++static void graphics_setxy(int col, int row);
++static void graphics_scroll();
++
++/* FIXME: where do these really belong? */
++static inline void outb(unsigned short port, unsigned char val)
++{
++    __asm __volatile ("outb %0,%1"::"a" (val), "d" (port));
++}
++
++static void MapMask(int value) {
++    outb(0x3c4, 2);
++    outb(0x3c5, value);
++}
++
++/* bit mask register */
++static void BitMask(int value) {
++    outb(0x3ce, 8);
++    outb(0x3cf, value);
++}
++
++
++
++/* Set the splash image */
++void graphics_set_splash(char *splashfile) {
++    grub_strcpy(splashimage, splashfile);
++}
++
++/* Get the current splash image */
++char *graphics_get_splash(void) {
++    return splashimage;
++}
++
++/* Initialize a vga16 graphics display with the palette based off of
++ * the image in splashimage.  If the image doesn't exist, leave graphics
++ * mode.  */
++int graphics_init()
++{
++    if (!graphics_inited) {
++        saved_videomode = set_videomode(0x12);
++    }
++
++    if (!read_image(splashimage)) {
++        set_videomode(saved_videomode);
++        grub_printf("failed to read image\n");
++        return 0;
++    }
++
++    font8x16 = (unsigned char*)graphics_get_font();
++
++    graphics_inited = 1;
++
++    /* make sure that the highlight color is set correctly */
++    graphics_highlight_color = ((graphics_normal_color >> 4) | 
++                              ((graphics_normal_color & 0xf) << 4));
++
++    return 1;
++}
++
++/* Leave graphics mode */
++void graphics_end(void)
++{
++    if (graphics_inited) {
++        set_videomode(saved_videomode);
++        graphics_inited = 0;
++    }
++}
++
++/* Print ch on the screen.  Handle any needed scrolling or the like */
++void graphics_putchar(int ch) {
++    ch &= 0xff;
++
++    graphics_cursor(0);
++
++    if (ch == '\n') {
++        if (fonty + 1 < y1)
++            graphics_setxy(fontx, fonty + 1);
++        else
++            graphics_scroll();
++        graphics_cursor(1);
++        return;
++    } else if (ch == '\r') {
++        graphics_setxy(x0, fonty);
++        graphics_cursor(1);
++        return;
++    }
++
++    graphics_cursor(0);
++
++    text[fonty * 80 + fontx] = ch;
++    text[fonty * 80 + fontx] &= 0x00ff;
++    if (graphics_current_color & 0xf0)
++        text[fonty * 80 + fontx] |= 0x100;
++
++    graphics_cursor(0);
++
++    if ((fontx + 1) >= x1) {
++        graphics_setxy(x0, fonty);
++        if (fonty + 1 < y1)
++            graphics_setxy(x0, fonty + 1);
++        else
++            graphics_scroll();
++    } else {
++        graphics_setxy(fontx + 1, fonty);
++    }
++
++    graphics_cursor(1);
++}
++
++/* get the current location of the cursor */
++int graphics_getxy(void) {
++    return (fontx << 8) | fonty;
++}
++
++void graphics_gotoxy(int x, int y) {
++    graphics_cursor(0);
++
++    graphics_setxy(x, y);
++
++    graphics_cursor(1);
++}
++
++void graphics_cls(void) {
++    int i;
++    unsigned char *mem, *s1, *s2, *s4, *s8;
++
++    graphics_cursor(0);
++    graphics_gotoxy(x0, y0);
++
++    mem = (unsigned char*)VIDEOMEM;
++    s1 = (unsigned char*)VSHADOW1;
++    s2 = (unsigned char*)VSHADOW2;
++    s4 = (unsigned char*)VSHADOW4;
++    s8 = (unsigned char*)VSHADOW8;
++
++    for (i = 0; i < 80 * 30; i++)
++        text[i] = ' ';
++    graphics_cursor(1);
++
++    BitMask(0xff);
++
++    /* plano 1 */
++    MapMask(1);
++    grub_memcpy(mem, s1, 38400);
++
++    /* plano 2 */
++    MapMask(2);
++    grub_memcpy(mem, s2, 38400);
++
++    /* plano 3 */
++    MapMask(4);
++    grub_memcpy(mem, s4, 38400);
++
++    /* plano 4 */
++    MapMask(8);
++    grub_memcpy(mem, s8, 38400);
++
++    MapMask(15);
++ 
++}
++
++void graphics_setcolorstate (color_state state) {
++    switch (state) {
++    case COLOR_STATE_STANDARD:
++        graphics_current_color = graphics_standard_color;
++        break;
++    case COLOR_STATE_NORMAL:
++        graphics_current_color = graphics_normal_color;
++        break;
++    case COLOR_STATE_HIGHLIGHT:
++        graphics_current_color = graphics_highlight_color;
++        break;
++    default:
++        graphics_current_color = graphics_standard_color;
++        break;
++    }
++
++    graphics_color_state = state;
++}
++
++void graphics_setcolor (int normal_color, int highlight_color) {
++    graphics_normal_color = normal_color;
++    graphics_highlight_color = highlight_color;
++
++    graphics_setcolorstate (graphics_color_state);
++}
++
++void graphics_setcursor (int on) {
++    /* FIXME: we don't have a cursor in graphics */
++    return;
++}
++
++/* Read in the splashscreen image and set the palette up appropriately.
++ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and
++ * 640x480. */
++int read_image(char *s)
++{
++    char buf[32], pal[16];
++    unsigned char c, base, mask, *s1, *s2, *s4, *s8;
++    unsigned i, len, idx, colors, x, y, width, height;
++
++    if (!grub_open(s))
++        return 0;
++
++    /* read header */
++    if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) {
++        grub_close();
++        return 0;
++    }
++    
++    /* parse info */
++    while (grub_read(&c, 1)) {
++        if (c == '"')
++            break;
++    }
++
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    i = 0;
++    width = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            width = width * 10 + c - '0';
++        else
++            break;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    height = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            height = height * 10 + c - '0';
++        else
++            break;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    colors = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            colors = colors * 10 + c - '0';
++        else
++            break;
++    }
++
++    base = 0;
++    while (grub_read(&c, 1) && c != '"')
++        ;
++
++    /* palette */
++    for (i = 0, idx = 1; i < colors; i++) {
++        len = 0;
++
++        while (grub_read(&c, 1) && c != '"')
++            ;
++        grub_read(&c, 1);       /* char */
++        base = c;
++        grub_read(buf, 4);      /* \t c # */
++
++        while (grub_read(&c, 1) && c != '"') {
++            if (len < sizeof(buf))
++                buf[len++] = c;
++        }
++
++        if (len == 6 && idx < 15) {
++            int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2;
++            int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2;
++            int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2;
++
++            pal[idx] = base;
++            graphics_set_palette(idx, r, g, b);
++            ++idx;
++        }
++    }
++
++    x = y = len = 0;
++
++    s1 = (unsigned char*)VSHADOW1;
++    s2 = (unsigned char*)VSHADOW2;
++    s4 = (unsigned char*)VSHADOW4;
++    s8 = (unsigned char*)VSHADOW8;
++
++    for (i = 0; i < 38400; i++)
++        s1[i] = s2[i] = s4[i] = s8[i] = 0;
++
++    /* parse xpm data */
++    while (y < height) {
++        while (1) {
++            if (!grub_read(&c, 1)) {
++                grub_close();
++                return 0;
++            }
++            if (c == '"')
++                break;
++        }
++
++        while (grub_read(&c, 1) && c != '"') {
++            for (i = 1; i < 15; i++)
++                if (pal[i] == c) {
++                    c = i;
++                    break;
++                }
++
++            mask = 0x80 >> (x & 7);
++            if (c & 1)
++                s1[len + (x >> 3)] |= mask;
++            if (c & 2)
++                s2[len + (x >> 3)] |= mask;
++            if (c & 4)
++                s4[len + (x >> 3)] |= mask;
++            if (c & 8)
++                s8[len + (x >> 3)] |= mask;
++
++            if (++x >= 640) {
++                x = 0;
++
++                if (y < 480)
++                    len += 80;
++                ++y;
++            }
++        }
++    }
++
++    grub_close();
++
++    graphics_set_palette(0, (background >> 16), (background >> 8) & 63, 
++                background & 63);
++    graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, 
++                foreground & 63);
++    graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, 
++                         border & 63);
++
++    return 1;
++}
++
++
++/* Convert a character which is a hex digit to the appropriate integer */
++int hex(int v)
++{
++    if (v >= 'A' && v <= 'F')
++        return (v - 'A' + 10);
++    if (v >= 'a' && v <= 'f')
++        return (v - 'a' + 10);
++    return (v - '0');
++}
++
++
++/* move the graphics cursor location to col, row */
++static void graphics_setxy(int col, int row) {
++    if (col >= x0 && col < x1) {
++        fontx = col;
++        cursorX = col << 3;
++    }
++    if (row >= y0 && row < y1) {
++        fonty = row;
++        cursorY = row << 4;
++    }
++}
++
++/* scroll the screen */
++static void graphics_scroll() {
++    int i, j;
++
++    /* we don't want to scroll recursively... that would be bad */
++    if (no_scroll)
++        return;
++    no_scroll = 1;
++
++    /* move everything up a line */
++    for (j = y0 + 1; j < y1; j++) {
++        graphics_gotoxy(x0, j - 1);
++        for (i = x0; i < x1; i++) {
++            graphics_putchar(text[j * 80 + i]);
++        }
++    }
++
++    /* last line should be blank */
++    graphics_gotoxy(x0, y1 - 1);
++    for (i = x0; i < x1; i++)
++        graphics_putchar(' ');
++    graphics_setxy(x0, y1 - 1);
++
++    no_scroll = 0;
++}
++
++
++void graphics_cursor(int set) {
++    unsigned char *pat, *mem, *ptr, chr[16 << 2];
++    int i, ch, invert, offset;
++
++    if (set && no_scroll)
++        return;
++
++    offset = cursorY * 80 + fontx;
++    ch = text[fonty * 80 + fontx] & 0xff;
++    invert = (text[fonty * 80 + fontx] & 0xff00) != 0;
++    pat = font8x16 + (ch << 4);
++
++    mem = (unsigned char*)VIDEOMEM + offset;
++
++    if (!set) {
++        for (i = 0; i < 16; i++) {
++            unsigned char mask = pat[i];
++
++            if (!invert) {
++                chr[i     ] = ((unsigned char*)VSHADOW1)[offset];
++                chr[16 + i] = ((unsigned char*)VSHADOW2)[offset];
++                chr[32 + i] = ((unsigned char*)VSHADOW4)[offset];
++                chr[48 + i] = ((unsigned char*)VSHADOW8)[offset];
++
++                /* FIXME: if (shade) */
++                if (1) {
++                    if (ch == DISP_VERT || ch == DISP_LL ||
++                        ch == DISP_UR || ch == DISP_LR) {
++                        unsigned char pmask = ~(pat[i] >> 1);
++
++                        chr[i     ] &= pmask;
++                        chr[16 + i] &= pmask;
++                        chr[32 + i] &= pmask;
++                        chr[48 + i] &= pmask;
++                    }
++                    if (i > 0 && ch != DISP_VERT) {
++                        unsigned char pmask = ~(pat[i - 1] >> 1);
++
++                        chr[i     ] &= pmask;
++                        chr[16 + i] &= pmask;
++                        chr[32 + i] &= pmask;
++                        chr[48 + i] &= pmask;
++                        if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) {
++                            pmask = ~pat[i - 1];
++
++                            chr[i     ] &= pmask;
++                            chr[16 + i] &= pmask;
++                            chr[32 + i] &= pmask;
++                            chr[48 + i] &= pmask;
++                        }
++                    }
++                }
++                chr[i     ] |= mask;
++                chr[16 + i] |= mask;
++                chr[32 + i] |= mask;
++                chr[48 + i] |= mask;
++
++                offset += 80;
++            }
++            else {
++                chr[i     ] = mask;
++                chr[16 + i] = mask;
++                chr[32 + i] = mask;
++                chr[48 + i] = mask;
++            }
++        }
++    }
++    else {
++        MapMask(15);
++        ptr = mem;
++        for (i = 0; i < 16; i++, ptr += 80) {
++            cursorBuf[i] = pat[i];
++            *ptr = ~pat[i];
++        }
++        return;
++    }
++
++    offset = 0;
++    for (i = 1; i < 16; i <<= 1, offset += 16) {
++        int j;
++
++        MapMask(i);
++        ptr = mem;
++        for (j = 0; j < 16; j++, ptr += 80)
++            *ptr = chr[j + offset];
++    }
++
++    MapMask(15);
++}
++
++#endif /* SUPPORT_GRAPHICS */
+--- /dev/null  2002-10-04 14:48:04.000000000 -0400
++++ grub-0.93/stage2/graphics.h        2002-12-28 23:37:03.000000000 -0500
+@@ -0,0 +1,42 @@
++/* graphics.h - graphics console interface */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002  Free Software Foundation, Inc.
++ *
++ *  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.
++ */
++
++#ifndef GRAPHICS_H
++#define GRAPHICS_H
++
++/* magic constant */
++#define VIDEOMEM 0xA0000
++
++/* function prototypes */
++char *graphics_get_splash(void);
++
++int read_image(char *s);
++void graphics_cursor(int set);
++
++/* function prototypes for asm functions */
++void * graphics_get_font();
++void graphics_set_palette(int idx, int red, int green, int blue);
++void set_int1c_handler();
++void unset_int1c_handler();
++
++extern short cursorX, cursorY;
++extern char cursorBuf[16];
++
++#endif /* GRAPHICS_H */
+--- grub-0.93/stage2/shared.h.graphics 2002-12-28 23:37:03.000000000 -0500
++++ grub-0.93/stage2/shared.h  2002-12-28 23:37:03.000000000 -0500
+@@ -856,6 +856,7 @@
+ int grub_tolower (int c);
+ int grub_isspace (int c);
+ int grub_strncat (char *s1, const char *s2, int n);
++void grub_memcpy(void *dest, const void *src, int len);
+ void *grub_memmove (void *to, const void *from, int len);
+ void *grub_memset (void *start, int c, int len);
+ int grub_strncat (char *s1, const char *s2, int n);
+--- grub-0.93/stage2/stage2.c.graphics 2002-12-28 23:37:03.000000000 -0500
++++ grub-0.93/stage2/stage2.c  2002-12-28 23:37:03.000000000 -0500
+@@ -233,6 +233,7 @@
+ {
+   int c, time1, time2 = -1, first_entry = 0;
+   char *cur_entry = 0;
++  struct term_entry *prev_term = NULL;
+   /*
+    *  Main loop for menu UI.
+@@ -807,6 +808,15 @@
+   
+   cls ();
+   setcursor (1);
++  /* if our terminal needed initialization, we should shut it down
++   * before booting the kernel, but we want to save what it was so
++   * we can come back if needed */
++  prev_term = current_term;
++  if (current_term->shutdown) 
++    {
++      (*current_term->shutdown)();
++      current_term = term_table; /* assumption: console is first */
++    }
+   
+   while (1)
+     {
+@@ -838,6 +848,13 @@
+       break;
+     }
++  /* if we get back here, we should go back to what our term was before */
++  current_term = prev_term;
++  if (current_term->startup)
++      /* if our terminal fails to initialize, fall back to console since
++       * it should always work */
++      if ((*current_term->startup)() == 0)
++          current_term = term_table; /* we know that console is first */
+   show_menu = 1;
+   goto restart;
+ }
+@@ -1082,6 +1099,10 @@
+         while (is_preset);
+       }
++      /* go ahead and make sure the terminal is setup */
++      if (current_term->startup)
++        (*current_term->startup)();
++
+       if (! num_entries)
+       {
+         /* If no acceptable config file, goto command-line, starting
+--- grub-0.93/stage2/term.h.graphics   2002-12-02 17:55:13.000000000 -0500
++++ grub-0.93/stage2/term.h    2002-12-28 23:37:03.000000000 -0500
+@@ -60,6 +60,8 @@
+   const char *name;
+   /* The feature flags defined above.  */
+   unsigned long flags;
++  /* Default for maximum number of lines if not specified */
++  unsigned short max_lines;
+   /* Put a character.  */
+   void (*putchar) (int c);
+   /* Check if any input character is available.  */
+@@ -79,6 +81,11 @@
+   void (*setcolor) (int normal_color, int highlight_color);
+   /* Turn on/off the cursor.  */
+   int (*setcursor) (int on);
++
++  /* function to start a terminal */
++  int (*startup) (void);
++  /* function to use to shutdown a terminal */
++  void (*shutdown) (void);
+ };
+ /* This lists up available terminals.  */
+@@ -124,4 +131,23 @@
+ int hercules_setcursor (int on);
+ #endif
++#ifdef SUPPORT_GRAPHICS
++extern int foreground, background, border, graphics_inited;
++
++void graphics_set_splash(char *splashfile);
++int set_videomode (int mode);
++void graphics_putchar (int c);
++int graphics_getxy(void);
++void graphics_gotoxy(int x, int y);
++void graphics_cls(void);
++void graphics_setcolorstate (color_state state);
++void graphics_setcolor (int normal_color, int highlight_color);
++void graphics_setcursor (int on);
++int graphics_init(void);
++void graphics_end(void);
++
++int hex(int v);
++void graphics_set_palette(int idx, int red, int green, int blue);
++#endif /* SUPPORT_GRAPHICS */
++
+ #endif /* ! GRUB_TERM_HEADER */
+--- grub-0.93/configure.ac.graphics    2002-12-28 23:37:03.000000000 -0500
++++ grub-0.93/configure.ac     2002-12-28 23:37:03.000000000 -0500
+@@ -559,6 +559,11 @@
+   [  --enable-diskless       enable diskless support])
+ AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes)
++dnl Graphical splashscreen support
++AC_ARG_ENABLE(graphics,
++  [  --disable-graphics      disable graphics terminal support])
++AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno)
++
+ dnl Hercules terminal
+ AC_ARG_ENABLE(hercules,
+   [  --disable-hercules      disable hercules terminal support])
diff --git a/src/patches/grub-0.93-rtl8139.patch b/src/patches/grub-0.93-rtl8139.patch
new file mode 100644 (file)
index 0000000..5d8661a
--- /dev/null
@@ -0,0 +1,183 @@
+--- rtl8139.c.old      2004-01-25 17:49:38.000000000 +0000
++++ rtl8139.c  2004-01-25 18:20:29.000000000 +0000
+@@ -161,19 +161,11 @@
+ /* The RTL8139 can only transmit from a contiguous, aligned memory block.  */
+ static unsigned char tx_buffer[TX_BUF_SIZE] __attribute__((aligned(4)));
+-/* I know that this is a MEGA HACK, but the tagged boot image specification
+- * states that we can do whatever we want below 0x10000 - so we do!  */
+-/* But we still give the user the choice of using an internal buffer
+-   just in case - Ken */
+-#ifdef        USE_LOWMEM_BUFFER
+-#define rx_ring ((unsigned char *)(0x10000 - (RX_BUF_LEN + 16)))
+-#else
+ static unsigned char rx_ring[RX_BUF_LEN+16] __attribute__((aligned(4)));
+-#endif
+ struct nic *rtl8139_probe(struct nic *nic, unsigned short *probeaddrs,
+       struct pci_device *pci);
+-static int read_eeprom(int location);
++static int read_eeprom(int location, int addr_len);
+ static void rtl_reset(struct nic *nic);
+ static void rtl_transmit(struct nic *nic, const char *destaddr,
+       unsigned int type, unsigned int len, const char *data);
+@@ -186,6 +178,8 @@
+ {
+       int i;
+       int speed10, fullduplex;
++      int addr_len;
++      unsigned short *ap = (unsigned short*)nic->node_addr;
+       /* There are enough "RTL8139" strings on the console already, so
+        * be brief and concentrate on the interesting pieces of info... */
+@@ -199,15 +193,9 @@
+       /* Bring the chip out of low-power mode. */
+       outb(0x00, ioaddr + Config1);
+-      if (read_eeprom(0) != 0xffff) {
+-              unsigned short *ap = (unsigned short*)nic->node_addr;
+-              for (i = 0; i < 3; i++)
+-                      *ap++ = read_eeprom(i + 7);
+-      } else {
+-              unsigned char *ap = (unsigned char*)nic->node_addr;
+-              for (i = 0; i < ETH_ALEN; i++)
+-                      *ap++ = inb(ioaddr + MAC0 + i);
+-      }
++      addr_len = read_eeprom(0,8) == 0x8129 ? 8 : 6;
++      for (i = 0; i < 3; i++)
++        *ap++ = read_eeprom(i + 7,addr_len);
+       speed10 = inb(ioaddr + MediaStatus) & MSRSpeed10;
+       fullduplex = inw(ioaddr + MII_BMCR) & BMCRDuplex;
+@@ -217,6 +205,10 @@
+       rtl_reset(nic);
++      if (inb(ioaddr + MediaStatus) & MSRLinkFail) {
++              printf("Cable not connected or other link failure\n");
++              return(0);
++      }
+       nic->reset = rtl_reset;
+       nic->poll = rtl_poll;
+       nic->transmit = rtl_transmit;
+@@ -244,22 +236,23 @@
+ #define eeprom_delay()  inl(ee_addr)
+ /* The EEPROM commands include the alway-set leading bit. */
+-#define EE_WRITE_CMD    (5 << 6)
+-#define EE_READ_CMD     (6 << 6)
+-#define EE_ERASE_CMD    (7 << 6)
++#define EE_WRITE_CMD    (5)
++#define EE_READ_CMD     (6)
++#define EE_ERASE_CMD    (7)
+-static int read_eeprom(int location)
++static int read_eeprom(int location, int addr_len)
+ {
+       int i;
+       unsigned int retval = 0;
+       long ee_addr = ioaddr + Cfg9346;
+-      int read_cmd = location | EE_READ_CMD;
++      int read_cmd = location | (EE_READ_CMD << addr_len);
+       outb(EE_ENB & ~EE_CS, ee_addr);
+       outb(EE_ENB, ee_addr);
++      eeprom_delay();
+       /* Shift the read command bits out. */
+-      for (i = 10; i >= 0; i--) {
++      for (i = 4 + addr_len; i >= 0; i--) {
+               int dataval = (read_cmd & (1 << i)) ? EE_DATA_WRITE : 0;
+               outb(EE_ENB | dataval, ee_addr);
+               eeprom_delay();
+@@ -279,9 +272,28 @@
+       /* Terminate the EEPROM access. */
+       outb(~EE_CS, ee_addr);
++      eeprom_delay();
+       return retval;
+ }
++static const unsigned int rtl8139_rx_config = 
++      (RX_BUF_LEN_IDX << 11) |
++      (RX_FIFO_THRESH << 13) |
++      (RX_DMA_BURST << 8);
++      
++static void set_rx_mode(struct nic *nic) {
++      unsigned int mc_filter[2];
++      int rx_mode;
++      /* !IFF_PROMISC */
++      rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys;
++      mc_filter[1] = mc_filter[0] = 0xffffffff;
++
++      outl(rtl8139_rx_config | rx_mode, ioaddr + RxConfig);
++
++      outl(mc_filter[0], ioaddr + MAR0 + 0);
++      outl(mc_filter[1], ioaddr + MAR0 + 4);
++}
++      
+ static void rtl_reset(struct nic* nic)
+ {
+       int i;
+@@ -316,17 +328,24 @@
+ #ifdef        DEBUG_RX
+       printf("rx ring address is %X\n",(unsigned long)rx_ring);
+ #endif
+-      outl((unsigned long)rx_ring, ioaddr + RxBuf);
++      outl((unsigned long)rx_ring, ioaddr + RxBuf);
++
++
+-      /* Start the chip's Tx and Rx process. */
+-      outl(0, ioaddr + RxMissed);
+-      /* set_rx_mode */
+-      outb(AcceptBroadcast|AcceptMyPhys, ioaddr + RxConfig);
+       /* If we add multicast support, the MAR0 register would have to be
+        * initialized to 0xffffffffffffffff (two 32 bit accesses).  Etherboot
+        * only needs broadcast (for ARP/RARP/BOOTP/DHCP) and unicast.  */
++
+       outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd);
++      
++      outl(rtl8139_rx_config, ioaddr + RxConfig);
++      
++      /* Start the chip's Tx and Rx process. */
++      outl(0, ioaddr + RxMissed);
++      /* set_rx_mode */
++      set_rx_mode(nic);
++      
+       /* Disable all known interrupts by setting the interrupt mask. */
+       outw(0, ioaddr + IntrMask);
+ }
+@@ -337,10 +356,11 @@
+       unsigned int status, to, nstype;
+       unsigned long txstatus;
++      /* nstype assignment moved up here to avoid gcc 3.0.3 compiler bug */
++      nstype = htons(type);
+       memcpy(tx_buffer, destaddr, ETH_ALEN);
+       memcpy(tx_buffer + ETH_ALEN, nic->node_addr, ETH_ALEN);
+-      nstype = htons(type);
+-      memcpy(tx_buffer + 2 * ETH_ALEN, (char*)&nstype, 2);
++      memcpy(tx_buffer + 2 * ETH_ALEN, &nstype, 2);
+       memcpy(tx_buffer + ETH_HLEN, data, len);
+       len += ETH_HLEN;
+@@ -354,7 +374,7 @@
+               tx_buffer[len++] = '\0';
+       }
+-      outl((unsigned long)tx_buffer, ioaddr + TxAddr0 + cur_tx*4);
++      outl((unsigned long)tx_buffer, ioaddr + TxAddr0 + cur_tx*4);
+       outl(((TX_FIFO_THRESH<<11) & 0x003f0000) | len,
+               ioaddr + TxStatus0 + cur_tx*4);
+@@ -448,6 +468,8 @@
+ static void rtl_disable(struct nic *nic)
+ {
++      rtl_reset(nic);
++
+       /* reset the chip */
+       outb(CmdReset, ioaddr + ChipCmd);
diff --git a/src/patches/grub-0.93-special-device-names.patch b/src/patches/grub-0.93-special-device-names.patch
new file mode 100644 (file)
index 0000000..1323bb3
--- /dev/null
@@ -0,0 +1,18 @@
+--- grub-0.93/lib/device.c.raid        2002-05-20 05:53:46.000000000 -0400
++++ grub-0.93/lib/device.c     2002-12-28 23:24:10.000000000 -0500
+@@ -689,7 +689,14 @@
+       if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
+       strcpy (dev + strlen(dev) - 5, "/part");
+     }
+-  sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
++
++  sprintf (dev + strlen(dev), "%s%d", 
++         /* Compaq smart and others */
++         (strncmp(dev, "/dev/ida/", 9) == 0 ||
++            strncmp(dev, "/dev/ataraid/", 13) == 0 ||
++          strncmp(dev, "/dev/cciss/", 11) == 0 ||
++          strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
++         ((partition >> 16) & 0xFF) + 1);
+   
+   /* Open the partition.  */
+   fd = open (dev, O_RDWR);
diff --git a/src/patches/grub-0.94-i2o.patch b/src/patches/grub-0.94-i2o.patch
new file mode 100644 (file)
index 0000000..57da04a
--- /dev/null
@@ -0,0 +1,55 @@
+Only in grub-0.94/docs: grub.info
+Only in grub-0.94/docs: multiboot.info
+diff -ur grub-0.94/lib/device.c grub-0.94.new/lib/device.c
+--- grub-0.94/lib/device.c     2004-05-07 04:50:36.375238696 +0200
++++ grub-0.94.new/lib/device.c 2004-05-07 04:48:57.611253104 +0200
+@@ -419,6 +419,12 @@
+ {
+   sprintf (name, "/dev/rd/c%dd%d", controller, drive);
+ }
++
++static void
++get_i2o_disk_name (char *name, int unit)
++{
++  sprintf (name, "/dev/i2o/hd%c", unit + 'a');
++}
+ #endif
+ /* Check if DEVICE can be read. If an error occurs, return zero,
+@@ -789,6 +795,26 @@
+         }
+       }
+   }
++
++  /* I2O disks.  */
++  for (i = 0; i < 8; i++)
++    {
++      char name[16];
++      
++      get_i2o_disk_name (name, i);
++      if (check_device (name))
++      {
++        (*map)[num_hd + 0x80] = strdup (name);
++        assert ((*map)[num_hd + 0x80]);
++        
++        /* If the device map file is opened, write the map.  */
++        if (fp)
++          fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++        
++        num_hd++;
++      }
++    }
++  
+ #endif /* __linux__ */
+   
+   /* OK, close the device map file if opened.  */
+@@ -844,7 +870,8 @@
+          (strncmp(dev, "/dev/ida/", 9) == 0 ||
+             strncmp(dev, "/dev/ataraid/", 13) == 0 ||
+           strncmp(dev, "/dev/cciss/", 11) == 0 ||
+-          strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
++          strncmp(dev, "/dev/rd/", 8) == 0 ||
++          strncmp(dev, "/dev/i2o/", 9) == 0) ? "p" : "",
+          ((partition >> 16) & 0xFF) + 1);
+   
+   /* Open the partition.  */
diff --git a/src/patches/gzip-1.3.3-window-size.patch b/src/patches/gzip-1.3.3-window-size.patch
new file mode 100644 (file)
index 0000000..9cfb9ae
--- /dev/null
@@ -0,0 +1,14 @@
+borrowed from fedora
+enlarge window buffer to avoid accessing beyond end-of-buffer
+
+--- gzip-1.3.3/gzip.c.orig     Thu Jan 30 21:19:36 2003
++++ gzip-1.3.3/gzip.c  Thu Jan 30 21:09:52 2003
+@@ -198,7 +198,7 @@
+ DECLARE(uch, inbuf,  INBUFSIZ +INBUF_EXTRA);
+ DECLARE(uch, outbuf, OUTBUFSIZ+OUTBUF_EXTRA);
+ DECLARE(ush, d_buf,  DIST_BUFSIZE);
+-DECLARE(uch, window, 2L*WSIZE);
++DECLARE(uch, window, 2L*WSIZE + 4096);
+ #ifndef MAXSEG_64K
+     DECLARE(ush, tab_prefix, 1L<<BITS);
+ #else
diff --git a/src/patches/gzip-1.3.5-asm-execstack.patch b/src/patches/gzip-1.3.5-asm-execstack.patch
new file mode 100644 (file)
index 0000000..0f42319
--- /dev/null
@@ -0,0 +1,15 @@
+borrowed from fedora
+make stack in match.S nonexecutable
+
+--- gzip-1.3.5/match.c.execstack       2002-09-30 09:21:35.000000000 +0200
++++ gzip-1.3.5/match.c 2005-03-22 10:40:37.739640958 +0100
+@@ -54,6 +54,9 @@
+       .globl  _match_init
+       .globl  _longest_match
++      .section .note.GNU-stack, "", @progbits
++      .previous
++      
+       .text
+ _match_init:
diff --git a/src/patches/gzip-1.3.5-gunzip-dir.patch b/src/patches/gzip-1.3.5-gunzip-dir.patch
new file mode 100644 (file)
index 0000000..fa05889
--- /dev/null
@@ -0,0 +1,14 @@
+fix CAN-2005-1228 directory traversal bug
+borrowed from fedora
+
+--- gzip-1.3.5/gzip.c.pom      2005-04-29 14:25:23.000000000 +0200
++++ gzip-1.3.5/gzip.c  2005-04-29 14:24:42.000000000 +0200
+@@ -1344,6 +1344,8 @@
+                       error("corrupted input -- file name too large");
+                   }
+               }
++              char *base2 = base_name (base);   /* there should be problem with file name */
++              strcpy(base, base2);              /* in this name there can't be path */
+                 /* If necessary, adapt the name to local OS conventions: */
+                 if (!list) {
+                    MAKE_LEGAL_NAME(base);
diff --git a/src/patches/gzip-1.3.5-perm.patch b/src/patches/gzip-1.3.5-perm.patch
new file mode 100644 (file)
index 0000000..5371cf7
--- /dev/null
@@ -0,0 +1,63 @@
+fix CAN-2005-0988 race condition when setting file permissions
+borrowed from fedora
+
+--- gzip-1.3.5/gzip.c.perm     2005-04-26 14:22:58.211395152 +0200
++++ gzip-1.3.5/gzip.c  2005-04-26 14:24:10.414418624 +0200
+@@ -881,6 +881,20 @@
+     }
+     close(ifd);
++    /* ofd ownership and permissions have to be set before close(ofd)*/
++    if (!to_stdout) {
++        if (fchmod(ofd, istat.st_mode & 07777)) {
++            int e = errno;
++          WARN((stderr, "%s: ", progname));
++            if (!quiet) {
++              errno = e;
++              perror(ofname);
++          }
++        }
++#ifndef NO_CHOWN
++        fchown(ofd, istat.st_uid, istat.st_gid);  /* Copy ownership */
++#endif
++    }
+     if (!to_stdout && close(ofd)) {
+       write_error();
+     }
+@@ -902,7 +916,7 @@
+       }
+       fprintf(stderr, "\n");
+     }
+-    /* Copy modes, times, ownership, and remove the input file */
++    /* Copy times and remove the input file */
+     if (!to_stdout) {
+       copy_stat(&istat);
+     }
+@@ -1715,7 +1729,7 @@
+ /* ========================================================================
+- * Copy modes, times, ownership from input file to output file.
++ * Copy times from input file to output file.
+  * IN assertion: to_stdout is false.
+  */
+ local void copy_stat(ifstat)
+@@ -1730,18 +1744,6 @@
+     }
+     reset_times(ofname, ifstat);
+ #endif
+-    /* Copy the protection modes */
+-    if (chmod(ofname, ifstat->st_mode & 07777)) {
+-      int e = errno;
+-      WARN((stderr, "%s: ", progname));
+-      if (!quiet) {
+-          errno = e;
+-          perror(ofname);
+-      }
+-    }
+-#ifndef NO_CHOWN
+-    chown(ofname, ifstat->st_uid, ifstat->st_gid);  /* Copy ownership */
+-#endif
+     remove_ofname = 0;
+     /* It's now safe to remove the input file: */
+     if (xunlink (ifname)) {
diff --git a/src/patches/inetutils-1.4.2-ping-1.patch b/src/patches/inetutils-1.4.2-ping-1.patch
new file mode 100644 (file)
index 0000000..e97c1f0
--- /dev/null
@@ -0,0 +1,117 @@
+Submitted By: Jim Gifford (patches at jg555 dot com)
+Date: 2003-09-10
+Initial Package Version: 1.4.2
+Origin: inetutils CVS
+Description: Fixes Ping Errors
+            If you try to only send one ping, it will not stop
+            until it gets a response.
+
+diff -Naur inetutils-1.4.2.orig/ping/ping.c inetutils-1.4.2/ping/ping.c
+--- inetutils-1.4.2.orig/ping/ping.c   2002-12-11 12:38:00.000000000 +0000
++++ inetutils-1.4.2/ping/ping.c        2003-09-10 16:13:14.000000000 +0000
+@@ -338,7 +338,8 @@
+   struct timeval last, intvl, now;
+   struct timeval *t = NULL;
+   int finishing = 0;
+-  
++  int nresp = 0;
++
+   signal (SIGINT, sig_int);
+   
+   fdmax = ping->ping_fd+1;
+@@ -387,23 +388,24 @@
+       if ((n = select (fdmax, &fdset, NULL, NULL, &timeout)) < 0)
+       {
+         if (errno != EINTR)
+-          perror ("ping: select");
++          perror ("select");
+         continue;
+       }
+       else if (n == 1)
+       {
+-        len = ping_recv (ping);
++        if (ping_recv (ping) == 0)
++          nresp++;
+         if (t == 0)
+           {
+             gettimeofday (&now, NULL);
+             t = &now;
+           }
+-        if (ping->ping_count && ping->ping_num_recv >= ping->ping_count)
++        if (ping->ping_count && nresp >= ping->ping_count)
+           break;
+       }
+       else
+       {
+-        if (!ping->ping_count || ping->ping_num_recv < ping->ping_count)
++        if (!ping->ping_count || ping->ping_num_xmit < ping->ping_count)
+           {
+             send_echo (ping);
+             if (!(options & OPT_QUIET) && options & OPT_FLOOD)
+@@ -414,7 +416,7 @@
+         else if (finishing)
+           break;
+         else
+-          {
++          {
+             finishing = 1;
+             intvl.tv_sec = MAXWAIT;
+diff -Naur inetutils-1.4.2.orig/ping/ping_echo.c inetutils-1.4.2/ping/ping_echo.c
+--- inetutils-1.4.2.orig/ping/ping_echo.c      2002-06-26 03:15:06.000000000 +0000
++++ inetutils-1.4.2/ping/ping_echo.c   2003-09-10 16:19:11.000000000 +0000
+@@ -43,7 +43,6 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <errno.h>
+-#include <math.h>
+ #include <limits.h>
+ #include "getopt.h"
+@@ -583,6 +582,31 @@
+       out->tv_sec -= in->tv_sec;
+ }
++double
++nabs (double a)
++{
++  return (a < 0) ? -a : a;
++}
++
++double
++nsqrt (double a, double prec)
++{
++  double x0, x1;
++  
++  if (a < 0)
++    return 0; 
++  if (a < prec)
++    return 0;
++  x1 = a/2;
++  do
++    {
++      x0 = x1;
++      x1 = (x0 + a/x0) / 2;
++    }
++  while (nabs (x1 - x0) > prec);
++
++  return x1;
++}
+ int
+ echo_finish ()
+@@ -596,10 +620,10 @@
+       double vari = ping_stat->tsumsq / total - avg * avg;
+       printf ("round-trip min/avg/max/stddev = %.3f/%.3f/%.3f/%.3f ms\n",
+-           ping_stat->tmin,
+-           avg,
+-           ping_stat->tmax,
+-           sqrt (vari));
++            ping_stat->tmin,
++            avg,
++            ping_stat->tmax,
++            nsqrt (vari, 0.0005));
+     }
+   exit (ping->ping_num_recv == 0);
+ }
diff --git a/src/patches/iproute2-2.4.7-netlink.patch b/src/patches/iproute2-2.4.7-netlink.patch
new file mode 100644 (file)
index 0000000..c66b9cb
--- /dev/null
@@ -0,0 +1,22 @@
+--- iproute2/lib/libnetlink.c.orig     2003-08-10 15:02:10.000000000 +1000
++++ iproute2/lib/libnetlink.c  2003-10-13 19:36:41.000000000 +1000
+@@ -169,7 +169,8 @@
+               while (NLMSG_OK(h, status)) {
+                       int err;
+-                      if (h->nlmsg_pid != rth->local.nl_pid ||
++                      if (nladdr.nl_pid != 0 ||
++                          h->nlmsg_pid != rth->local.nl_pid ||
+                           h->nlmsg_seq != rth->dump) {
+                               if (junk) {
+                                       err = junk(&nladdr, h, arg2);
+@@ -277,7 +278,8 @@
+                               exit(1);
+                       }
+-                      if (h->nlmsg_pid != rtnl->local.nl_pid ||
++                      if (nladdr.nl_pid != peer ||
++                          h->nlmsg_pid != rtnl->local.nl_pid ||
+                           h->nlmsg_seq != seq) {
+                               if (junk) {
+                                       err = junk(&nladdr, h, jarg);
diff --git a/src/patches/iproute2-includes.patch b/src/patches/iproute2-includes.patch
new file mode 100644 (file)
index 0000000..df7aff8
--- /dev/null
@@ -0,0 +1,251 @@
+diff -ruN iproute2.old/Makefile iproute2/Makefile
+--- iproute2.old/Makefile      Thu Aug  2 08:37:03 2001
++++ iproute2/Makefile  Mon Dec  1 22:31:11 2003
+@@ -18,14 +18,14 @@
+ #options for ipx
+ ADDLIB+=ipx_ntop.o ipx_pton.o
+-ifeq ($(LIBC_INCLUDE)/socketbits.h,$(wildcard $(LIBC_INCLUDE)/socketbits.h))
+-  ifeq ($(LIBC_INCLUDE)/net/if_packet.h,$(wildcard $(LIBC_INCLUDE)/net/if_packet.h))
+-    GLIBCFIX=-I../include-glibc -include ../include-glibc/glibc-bugs.h
+-  endif
+-endif
+-ifeq ($(LIBC_INCLUDE)/bits/socket.h,$(wildcard $(LIBC_INCLUDE)/bits/socket.h))
+-  GLIBCFIX=-I../include-glibc -include ../include-glibc/glibc-bugs.h
+-endif
++#ifeq ($(LIBC_INCLUDE)/socketbits.h,$(wildcard $(LIBC_INCLUDE)/socketbits.h))
++#  ifeq ($(LIBC_INCLUDE)/net/if_packet.h,$(wildcard $(LIBC_INCLUDE)/net/if_packet.h))
++#    GLIBCFIX=-I../include-glibc -include ../include-glibc/glibc-bugs.h
++#  endif
++#endif
++#ifeq ($(LIBC_INCLUDE)/bits/socket.h,$(wildcard $(LIBC_INCLUDE)/bits/socket.h))
++#  GLIBCFIX=-I../include-glibc -include ../include-glibc/glibc-bugs.h
++#endif
+ CC = gcc
+ CCOPTS = -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -Werror -g
+diff -ruN iproute2.old/include/utils.h iproute2/include/utils.h
+--- iproute2.old/include/utils.h       Sun Apr 16 19:42:50 2000
++++ iproute2/include/utils.h   Mon Dec  1 22:31:11 2003
+@@ -3,8 +3,9 @@
+ #include <asm/types.h>
+ #include <asm/bitops.h>
++#include <netinet/in.h>
+ #include <linux/inetdevice.h>
+-#include <resolv.h>
++#include <stdio.h>
+ #include "libnetlink.h"
+ #include "ll_map.h"
+diff -ruN iproute2.old/ip/ipaddress.c iproute2/ip/ipaddress.c
+--- iproute2.old/ip/ipaddress.c        Thu Aug 23 06:07:46 2001
++++ iproute2/ip/ipaddress.c    Mon Dec  1 22:31:20 2003
+@@ -23,8 +23,6 @@
+ #include <linux/netdevice.h>
+ #include <linux/if_arp.h>
+ #include <linux/sockios.h>
+-#include <netinet/in.h>
+-#include <arpa/inet.h>
+ #include <string.h>
+ #include <fnmatch.h>
+diff -ruN iproute2.old/ip/ipmaddr.c iproute2/ip/ipmaddr.c
+--- iproute2.old/ip/ipmaddr.c  Sun Apr 16 19:42:51 2000
++++ iproute2/ip/ipmaddr.c      Mon Dec  1 22:31:11 2003
+@@ -21,12 +21,10 @@
+ #include <linux/if.h>
+ #include <linux/if_arp.h>
+ #include <linux/sockios.h>
+-#include <netinet/in.h>
+-#include <arpa/inet.h>
+ #include <string.h>
+-#include "rt_names.h"
+ #include "utils.h"
++#include "rt_names.h"
+ static struct {
+       char *dev;
+diff -ruN iproute2.old/ip/ipmroute.c iproute2/ip/ipmroute.c
+--- iproute2.old/ip/ipmroute.c Fri Aug 24 19:19:20 2001
++++ iproute2/ip/ipmroute.c     Mon Dec  1 22:31:11 2003
+@@ -21,8 +21,6 @@
+ #include <linux/if.h>
+ #include <linux/if_arp.h>
+ #include <linux/sockios.h>
+-#include <netinet/in.h>
+-#include <arpa/inet.h>
+ #include <string.h>
+ #include "utils.h"
+diff -ruN iproute2.old/ip/ipneigh.c iproute2/ip/ipneigh.c
+--- iproute2.old/ip/ipneigh.c  Sun Apr 16 19:42:51 2000
++++ iproute2/ip/ipneigh.c      Mon Dec  1 22:31:11 2003
+@@ -26,8 +26,8 @@
+ #include <netinet/in.h>
+ #include <netinet/ip.h>
+-#include "rt_names.h"
+ #include "utils.h"
++#include "rt_names.h"
+ #include "ip_common.h"
+ #define NUD_VALID     (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE|NUD_PROBE|NUD_STALE|NUD_DELAY)
+diff -ruN iproute2.old/ip/iproute.c iproute2/ip/iproute.c
+--- iproute2.old/ip/iproute.c  Mon Aug  6 02:31:52 2001
++++ iproute2/ip/iproute.c      Mon Dec  1 22:31:11 2003
+@@ -28,8 +28,8 @@
+ #include <arpa/inet.h>
+ #include <linux/in_route.h>
+-#include "rt_names.h"
+ #include "utils.h"
++#include "rt_names.h"
+ #include "ip_common.h"
+ #ifndef RTAX_RTTVAR
+diff -ruN iproute2.old/ip/iprule.c iproute2/ip/iprule.c
+--- iproute2.old/ip/iprule.c   Thu Aug  2 05:43:29 2001
++++ iproute2/ip/iprule.c       Mon Dec  1 22:31:11 2003
+@@ -25,8 +25,8 @@
+ #include <arpa/inet.h>
+ #include <string.h>
+-#include "rt_names.h"
+ #include "utils.h"
++#include "rt_names.h"
+ static void usage(void) __attribute__((noreturn));
+diff -ruN iproute2.old/ip/rtacct.c iproute2/ip/rtacct.c
+--- iproute2.old/ip/rtacct.c   Sun Apr 16 19:42:51 2000
++++ iproute2/ip/rtacct.c       Mon Dec  1 22:31:11 2003
+@@ -19,7 +19,9 @@
+ #include <sys/time.h>
+ #include <net/if.h>
+ #include <string.h>
++#include <netinet/in.h>
++#include "utils.h"
+ #include "rt_names.h"
+ int main(int argc, char **argv)
+diff -ruN iproute2.old/ip/rtm_map.c iproute2/ip/rtm_map.c
+--- iproute2.old/ip/rtm_map.c  Sun Apr 16 19:42:51 2000
++++ iproute2/ip/rtm_map.c      Mon Dec  1 22:31:11 2003
+@@ -19,8 +19,8 @@
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+-#include "rt_names.h"
+ #include "utils.h"
++#include "rt_names.h"
+ char *rtnl_rtntype_n2a(int id, char *buf, int len)
+ {
+diff -ruN iproute2.old/lib/dnet_ntop.c iproute2/lib/dnet_ntop.c
+--- iproute2.old/lib/dnet_ntop.c       Sun Apr 16 19:42:52 2000
++++ iproute2/lib/dnet_ntop.c   Mon Dec  1 22:31:11 2003
+@@ -1,5 +1,6 @@
+ #include <errno.h>
+ #include <sys/types.h>
++#include <stdio.h>
+ #include <netinet/in.h>
+ #include "utils.h"
+diff -ruN iproute2.old/lib/ll_proto.c iproute2/lib/ll_proto.c
+--- iproute2.old/lib/ll_proto.c        Thu Aug  2 04:41:41 2001
++++ iproute2/lib/ll_proto.c    Mon Dec  1 22:31:11 2003
+@@ -20,8 +20,6 @@
+ #include <linux/netdevice.h>
+ #include <linux/if_arp.h>
+ #include <linux/sockios.h>
+-#include <netinet/in.h>
+-#include <arpa/inet.h>
+ #include <string.h>
+ #include "utils.h"
+diff -ruN iproute2.old/lib/ll_types.c iproute2/lib/ll_types.c
+--- iproute2.old/lib/ll_types.c        Thu Aug  2 05:18:33 2001
++++ iproute2/lib/ll_types.c    Mon Dec  1 22:31:11 2003
+@@ -9,6 +9,7 @@
+  * Authors:   Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
+  */
++#include <stdint.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -16,12 +17,9 @@
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
+ #include <sys/socket.h>
+-#include <sys/ioctl.h>
+ #include <linux/netdevice.h>
+ #include <linux/if_arp.h>
+ #include <linux/sockios.h>
+-#include <netinet/in.h>
+-#include <arpa/inet.h>
+ #include <string.h>
+ char * ll_type_n2a(int type, char *buf, int len)
+diff -ruN iproute2.old/lib/rt_names.c iproute2/lib/rt_names.c
+--- iproute2.old/lib/rt_names.c        Sun Apr 16 19:42:52 2000
++++ iproute2/lib/rt_names.c    Mon Dec  1 22:31:11 2003
+@@ -16,6 +16,7 @@
+ #include <fcntl.h>
+ #include <string.h>
+ #include <sys/time.h>
++#include <asm/types.h>
+ static void rtnl_tab_initialize(char *file, char **tab, int size)
+ {
+diff -ruN iproute2.old/lib/utils.c iproute2/lib/utils.c
+--- iproute2.old/lib/utils.c   Fri Aug 24 19:09:54 2001
++++ iproute2/lib/utils.c       Mon Dec  1 22:31:11 2003
+@@ -25,7 +25,6 @@
+ #include <netdb.h>
+ #include <arpa/inet.h>
+ #include <resolv.h>
+-#include <linux/pkt_sched.h>
+ #include "utils.h"
+diff -ruN iproute2.old/tc/f_rsvp.c iproute2/tc/f_rsvp.c
+--- iproute2.old/tc/f_rsvp.c   Thu Aug  2 06:19:40 2001
++++ iproute2/tc/f_rsvp.c       Mon Dec  1 22:31:11 2003
+@@ -20,8 +20,8 @@
+ #include <arpa/inet.h>
+ #include <string.h>
+-#include "rt_names.h"
+ #include "utils.h"
++#include "rt_names.h"
+ #include "tc_util.h"
+ static void explain(void)
+diff -ruN iproute2.old/tc/q_htb.c iproute2/tc/q_htb.c
+--- iproute2.old/tc/q_htb.c    Mon Dec  1 22:30:53 2003
++++ iproute2/tc/q_htb.c        Mon Dec  1 22:31:11 2003
+@@ -19,6 +19,7 @@
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <string.h>
++#include <linux/param.h>
+ #include "utils.h"
+ #include "tc_util.h"
+diff -ruN iproute2.old/tc/tc_filter.c iproute2/tc/tc_filter.c
+--- iproute2.old/tc/tc_filter.c        Fri Aug 24 19:19:19 2001
++++ iproute2/tc/tc_filter.c    Mon Dec  1 22:31:11 2003
+@@ -23,8 +23,8 @@
+ #include <string.h>
+ #include <linux/if_ether.h>
+-#include "rt_names.h"
+ #include "utils.h"
++#include "rt_names.h"
+ #include "tc_util.h"
+ #include "tc_common.h"
diff --git a/src/patches/iptables-1.2.11.patch b/src/patches/iptables-1.2.11.patch
new file mode 100644 (file)
index 0000000..8275172
--- /dev/null
@@ -0,0 +1,31 @@
+Index: iptables.c
+===================================================================
+RCS file: /cvspublic/iptables/iptables.c,v
+retrieving revision 1.68
+retrieving revision 1.71
+diff -u -r1.68 -r1.71
+--- iptables.c 26 May 2004 16:04:48 -0000      1.68
++++ iptables.c 30 Aug 2004 16:00:09 -0000      1.71
+@@ -551,7 +551,7 @@
+               while (host->h_addr_list[*naddr] != (char *) NULL)
+                       (*naddr)++;
+-              addr = fw_calloc(*naddr, sizeof(struct in_addr));
++              addr = fw_calloc(*naddr, sizeof(struct in_addr) * *naddr);
+               for (i = 0; i < *naddr; i++)
+                       inaddrcpy(&(addr[i]),
+                                 (struct in_addr *) host->h_addr_list[i]);
+@@ -2339,11 +2339,8 @@
+               e = NULL;
+       }
+-      for (c = 0; c < nsaddrs; c++)
+-              free(&saddrs[c]);
+-
+-      for (c = 0; c < ndaddrs; c++)
+-              free(&daddrs[c]);
++      free(saddrs);
++      free(daddrs);
+       if (opts != original_opts) {
+               free(opts);
diff --git a/src/patches/isdn4k-utils-v3.2p1-c89.patch b/src/patches/isdn4k-utils-v3.2p1-c89.patch
new file mode 100644 (file)
index 0000000..e5c0f87
--- /dev/null
@@ -0,0 +1,69 @@
+# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
+# 
+# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
+# Please add additional copyright information _after_ the line containing
+# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
+# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
+# 
+# ROCK Linux: rock-src/package/base/isdn4k-utils/multi-line-strings.patch
+# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf
+# 
+# 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. A copy of the GNU General Public
+# License can be found at Documentation/COPYING.
+# 
+# Many people helped and are helping developing ROCK Linux. Please
+# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
+# file for details.
+# 
+# --- ROCK-COPYRIGHT-NOTE-END ---
+
+diff -urN -x '*~' isdn4k-utils/ipppd/options.c isdn4k-utils-gcc-3.3.1/ipppd/options.c
+--- isdn4k-utils-old/ipppd/options.c   2002-07-06 02:34:08.000000000 +0200
++++ isdn4k-utils-new/ipppd/options.c   2003-08-19 22:36:18.000000000 +0200
+@@ -479,26 +479,25 @@
+ #define IMPLEMENTATION ""
+ #endif
+-static char *usage_string = "\
+-ipppd version %s patch level %d%s\n\
+-Usage: %s [ options ], where options are:\n\
+-\t<device>    Communicate over the named device\n\
++static char *usage_string = ""
++"ipppd version %s patch level %d%s\n"
++"Usage: %s [ options ], where options are:\n"
++"\t<device>   Communicate over the named device\n"
+ #ifdef INCLUDE_OBSOLETE_FEATURES
+-\tcrtscts             Use hardware RTS/CTS flow control\n\
+-\t<speed>             Set the baud rate to <speed>\n\
+-\tmodem               Use modem control lines\n\
++"\tcrtscts            Use hardware RTS/CTS flow control\n"
++"\t<speed>            Set the baud rate to <speed>\n"
++"\tmodem              Use modem control lines\n"
+ #endif
+-\t<loc>:<rem> Set the local and/or remote interface IP\n\
+-\t\taddresses.  (you also may use the option 'useifip' to get IPs).\n\
+-\tasyncmap <n>        Set the desired async map to hex <n>\n\
+-\tauth                Require authentication from peer\n\
+-\tconnect <p>     Invoke shell command <p> to set up the serial line\n\
+-\tdefaultroute        Add default route through interface\n\
+-\tfile <f>    Take options from file <f>\n\
+-\tmru <n>             Set MRU value to <n> for negotiation\n\
+-\tnetmask <n> Set interface netmask to <n>\n\
+-See ipppd(8) for more options.\n\
+-";
++"\t<loc>:<rem>        Set the local and/or remote interface IP\n"
++"\t\taddresses.  (you also may use the option 'useifip' to get IPs).\n"
++"\tasyncmap <n>       Set the desired async map to hex <n>\n"
++"\tauth               Require authentication from peer\n"
++"\tconnect <p>     Invoke shell command <p> to set up the serial line\n"
++"\tdefaultroute       Add default route through interface\n"
++"\tfile <f>   Take options from file <f>\n"
++"\tmru <n>            Set MRU value to <n> for negotiation\n"
++"\tnetmask <n>        Set interface netmask to <n>\n"
++"See ipppd(8) for more options.\n";
+ static char *current_option;   /* the name of the option being parsed */
diff --git a/src/patches/isdn4k-utils-v3.2p1-config.patch b/src/patches/isdn4k-utils-v3.2p1-config.patch
new file mode 100644 (file)
index 0000000..4bdec44
--- /dev/null
@@ -0,0 +1,96 @@
+diff -ruN isdn4k-utils.old/.config isdn4k-utils/.config
+--- isdn4k-utils.old/.config   Thu Jan  1 01:00:00 1970
++++ isdn4k-utils/.config       Mon Dec  1 13:47:00 2003
+@@ -0,0 +1,92 @@
++#
++# Automatically generated by make menuconfig: don't edit
++#
++
++#
++# Code maturity level options
++#
++CONFIG_EXPERIMENTAL=y
++
++#
++# General configuration
++#
++# CONFIG_BUILDX11 is not set
++CONFIG_KERNELDIR='/usr/src/linux'
++CONFIG_BINDIR='/usr/bin'
++CONFIG_SBINDIR='/usr/sbin'
++CONFIG_MANDIR='/usr/share/man'
++CONFIG_RUNDIR='/var/run'
++CONFIG_LOCKDIR='/var/lock'
++CONFIG_LOCKFILE='LCK..'
++CONFIG_I4LCONFDIR='/etc/isdn'
++CONFIG_CONFFILE='isdn.conf'
++CONFIG_CALLERIDFILE='callerid.conf'
++CONFIG_USERCONFFILE=''
++CONFIG_COUNTRYCODE=''
++CONFIG_AREACODE=''
++CONFIG_COUNTRY_PREFIX='+'
++CONFIG_AREA_PREFIX='0'
++CONFIG_DATADIR='/usr/lib/isdn'
++
++#
++# Runtime configuration tools
++#
++CONFIG_ISDNCTRL=y
++CONFIG_ISDNCTRL_CONF=y
++# CONFIG_ISDNCTRL_TIMRU is not set
++# CONFIG_ISDNCTRL_DWABC_UDP_INFO is not set
++# CONFIG_IPROFD is not set
++# CONFIG_DIVERTCTRL is not set
++
++#
++# Card configuration tools
++#
++CONFIG_HISAXCTRL=y
++CONFIG_ICNCTRL=y
++# CONFIG_ICNCTRL_DEBUG is not set
++CONFIG_PCBITCTL=y
++#CONFIG_AVMCAPICTRL is not set
++CONFIG_EICONCTRL=y
++# CONFIG_LOOPCTRL is not set
++
++#
++# Tools for monitoring activity
++#
++# CONFIG_IMON is not set
++# CONFIG_IMONTTY is not set
++# CONFIG_ISDNLOG is not set
++# CONFIG_IPPPSTATS is not set
++# CONFIG_XISDNLOAD is not set
++# CONFIG_XMONISDN is not set
++
++#
++# Applications
++#
++# CONFIG_VBOX is not set
++CONFIG_IPPPD=y
++
++#
++# Options for ipppd
++#
++CONFIG_IPPPD_MSCHAP=y
++CONFIG_IPPP_FILTER=y
++# CONFIG_IPPPD_RADIUS is not set
++# CONFIG_RADIUS_WTMP_LOGGING is not set
++RADIUS_CLIENT_CONFIG_FILE=''
++# CONFIG_CAPIFAX is not set
++# CONFIG_RCAPID is not set
++# CONFIG_PPPDCAPIPLUGIN is not set
++# CONFIG_EUROFILE is not set
++
++#
++# Options for eurofile
++#
++# CONFIG_EFTD is not set
++# CONFIG_EFTP is not set
++# CONFIG_EFT_INSTALL_CONF is not set
++
++#
++# Documentation
++#
++CONFIG_GENMAN=y
++# CONFIG_FAQ is not set
diff --git a/src/patches/kernel-2.4-layer7-2.1.patch b/src/patches/kernel-2.4-layer7-2.1.patch
new file mode 100644 (file)
index 0000000..ae7780d
--- /dev/null
@@ -0,0 +1,2055 @@
+diff -Nurp linux-2.4.31/Documentation/Configure.help linux-2.4.31-layer7/Documentation/Configure.help
+--- linux-2.4.31/Documentation/Configure.help  2005-04-03 20:42:19.000000000 -0500
++++ linux-2.4.31-layer7/Documentation/Configure.help   2005-09-12 00:40:58.000000000 -0500
+@@ -29056,6 +29056,18 @@ CONFIG_SOUND_WM97XX
+   
+   If unsure, say N.
++CONFIG_IP_NF_MATCH_LAYER7
++   Say Y if you want to be able to classify connections (and their 
++   packets) based on regular expression matching of their application 
++   layer data.   This is one way to classify applications such as 
++   peer-to-peer filesharing systems that do not always use the same 
++   port.
++
++   To compile it as a module, choose M here.  If unsure, say N.
++
++CONFIG_IP_NF_MATCH_LAYER7_DEBUG
++   Say Y to get lots of debugging output.
++
+ #
+ # A couple of things I keep forgetting:
+ #   capitalize: AppleTalk, Ethernet, DOS, DMA, FAT, FTP, Internet,
+diff -Nurp linux-2.4.31/include/linux/netfilter_ipv4/ip_conntrack.h linux-2.4.31-layer7/include/linux/netfilter_ipv4/ip_conntrack.h
+--- linux-2.4.31/include/linux/netfilter_ipv4/ip_conntrack.h   2005-04-03 20:42:20.000000000 -0500
++++ linux-2.4.31-layer7/include/linux/netfilter_ipv4/ip_conntrack.h    2005-09-12 00:49:01.000000000 -0500
+@@ -207,6 +207,17 @@ struct ip_conntrack
+       } nat;
+ #endif /* CONFIG_IP_NF_NAT_NEEDED */
++#if defined(CONFIG_IP_NF_MATCH_LAYER7) || defined(CONFIG_IP_NF_MATCH_LAYER7_MODULE)
++      struct {
++              unsigned int numpackets; /* surely this is kept track of somewhere else, right? I can't find it... */
++              char * app_proto; /* "http", "ftp", etc.  NULL if unclassifed */
++              
++              /* the application layer data so far.  NULL if ->numpackets > numpackets */
++              char * app_data; 
++
++              unsigned int app_data_len;
++      } layer7;
++#endif
+ };
+ /* get master conntrack via master expectation */
+diff -Nurp linux-2.4.31/include/linux/netfilter_ipv4/ipt_layer7.h linux-2.4.31-layer7/include/linux/netfilter_ipv4/ipt_layer7.h
+--- linux-2.4.31/include/linux/netfilter_ipv4/ipt_layer7.h     1969-12-31 18:00:00.000000000 -0600
++++ linux-2.4.31-layer7/include/linux/netfilter_ipv4/ipt_layer7.h      2005-09-01 00:17:13.000000000 -0500
+@@ -0,0 +1,26 @@
++/* 
++  By Matthew Strait <quadong@users.sf.net>, Dec 2003.
++  http://l7-filter.sf.net
++
++  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.
++  http://www.gnu.org/licenses/gpl.txt
++*/
++
++#ifndef _IPT_LAYER7_H
++#define _IPT_LAYER7_H
++
++#define MAX_PATTERN_LEN 8192
++#define MAX_PROTOCOL_LEN 256
++
++typedef char *(*proc_ipt_search) (char *, char, char *);
++
++struct ipt_layer7_info {
++    char protocol[MAX_PROTOCOL_LEN];
++    char invert:1;
++    char pattern[MAX_PATTERN_LEN];
++};
++
++#endif /* _IPT_LAYER7_H */
+diff -Nurp linux-2.4.31/net/ipv4/netfilter/Config.in linux-2.4.31-layer7/net/ipv4/netfilter/Config.in
+--- linux-2.4.31/net/ipv4/netfilter/Config.in  2005-01-19 08:10:13.000000000 -0600
++++ linux-2.4.31-layer7/net/ipv4/netfilter/Config.in   2005-09-12 00:40:58.000000000 -0500
+@@ -43,6 +43,9 @@ if [ "$CONFIG_IP_NF_IPTABLES" != "n" ]; 
+   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+     dep_tristate '  Unclean match support (EXPERIMENTAL)' CONFIG_IP_NF_MATCH_UNCLEAN $CONFIG_IP_NF_IPTABLES
+     dep_tristate '  Owner match support (EXPERIMENTAL)' CONFIG_IP_NF_MATCH_OWNER $CONFIG_IP_NF_IPTABLES
++    dep_tristate '  Layer 7 match support (EXPERIMENTAL)' CONFIG_IP_NF_MATCH_LAYER7 $CONFIG_IP_NF_CONNTRACK
++    dep_mbool '  Layer 7 debugging output (EXPERIMENTAL)' CONFIG_IP_NF_MATCH_LAYER7_DEBUG $CONFIG_IP_NF_MATCH_LAYER7
++ 
+   fi
+ # The targets
+   dep_tristate '  Packet filtering' CONFIG_IP_NF_FILTER $CONFIG_IP_NF_IPTABLES 
+diff -Nurp linux-2.4.31/net/ipv4/netfilter/Makefile linux-2.4.31-layer7/net/ipv4/netfilter/Makefile
+--- linux-2.4.31/net/ipv4/netfilter/Makefile   2003-08-25 06:44:44.000000000 -0500
++++ linux-2.4.31-layer7/net/ipv4/netfilter/Makefile    2005-09-01 00:17:13.000000000 -0500
+@@ -166,6 +166,7 @@
+ obj-$(CONFIG_IP_NF_MATCH_UNCLEAN) += ipt_unclean.o
+ obj-$(CONFIG_IP_NF_MATCH_STRING) += ipt_string.o
+ obj-$(CONFIG_IP_NF_MATCH_TCPMSS) += ipt_tcpmss.o
++obj-$(CONFIG_IP_NF_MATCH_LAYER7) += ipt_layer7.o
+ obj-$(CONFIG_IP_NF_MATCH_REALM) += ipt_realm.o
+
+ # targets
+diff -Nurp linux-2.4.31/net/ipv4/netfilter/ip_conntrack_core.c linux-2.4.31-layer7/net/ipv4/netfilter/ip_conntrack_core.c
+--- linux-2.4.31/net/ipv4/netfilter/ip_conntrack_core.c        2005-04-03 20:42:20.000000000 -0500
++++ linux-2.4.31-layer7/net/ipv4/netfilter/ip_conntrack_core.c 2005-09-01 00:17:13.000000000 -0500
+@@ -346,6 +346,14 @@ destroy_conntrack(struct nf_conntrack *n
+               }
+               kfree(ct->master);
+       }
++
++      #if defined(CONFIG_IP_NF_MATCH_LAYER7) || defined(CONFIG_IP_NF_MATCH_LAYER7_MODULE)
++      if(ct->layer7.app_proto)
++              kfree(ct->layer7.app_proto);
++      if(ct->layer7.app_data)
++              kfree(ct->layer7.app_data);
++      #endif
++      
+       WRITE_UNLOCK(&ip_conntrack_lock);
+       if (master)
+diff -Nurp linux-2.4.31/net/ipv4/netfilter/ip_conntrack_standalone.c linux-2.4.31-layer7/net/ipv4/netfilter/ip_conntrack_standalone.c
+--- linux-2.4.31/net/ipv4/netfilter/ip_conntrack_standalone.c  2005-04-03 20:42:20.000000000 -0500
++++ linux-2.4.31-layer7/net/ipv4/netfilter/ip_conntrack_standalone.c   2005-09-01 00:17:13.000000000 -0500
+@@ -110,6 +110,11 @@
+ #if defined(CONFIG_IP_NF_CONNTRACK_MARK)
+       len += sprintf(buffer + len, "mark=%ld ", conntrack->mark);
+ #endif
++#if defined(CONFIG_IP_NF_MATCH_LAYER7) || defined(CONFIG_IP_NF_MATCH_LAYER7_MODULE)
++       if(conntrack->layer7.app_proto)
++       len += sprintf(buffer + len, "l7proto=%s ",
++                       conntrack->layer7.app_proto);
++#endif
+       len += sprintf(buffer + len, "\n");
+
+       return len;
+diff -Nurp linux-2.4.31/net/ipv4/netfilter/ipt_layer7.c linux-2.4.31-layer7/net/ipv4/netfilter/ipt_layer7.c
+--- linux-2.4.31/net/ipv4/netfilter/ipt_layer7.c       1969-12-31 18:00:00.000000000 -0600
++++ linux-2.4.31-layer7/net/ipv4/netfilter/ipt_layer7.c        2005-09-12 01:13:36.000000000 -0500
+@@ -0,0 +1,570 @@
++/* 
++  Kernel module to match application layer (OSI layer 7) 
++  data in connections.
++  
++  http://l7-filter.sf.net
++
++  By Matthew Strait and Ethan Sommer, 2003-2005.
++
++  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.
++  http://www.gnu.org/licenses/gpl.txt
++
++  Based on ipt_string.c (C) 2000 Emmanuel Roger <winfield@freegates.be>
++  and cls_layer7.c (C) 2003 Matthew Strait, Ethan Sommer, Justin Levandoski
++*/
++
++#include <linux/module.h>
++#include <linux/skbuff.h>
++#include <linux/netfilter_ipv4/ip_conntrack.h>
++#include <linux/proc_fs.h>
++#include <linux/ctype.h>
++#include <net/ip.h>
++#include <net/tcp.h>
++#include <linux/netfilter_ipv4/lockhelp.h>
++
++#include "regexp/regexp.c"
++
++#include <linux/netfilter_ipv4/ipt_layer7.h>
++#include <linux/netfilter_ipv4/ip_tables.h>
++
++MODULE_AUTHOR("Matthew Strait <quadong@users.sf.net>, Ethan Sommer <sommere@users.sf.net>");
++MODULE_LICENSE("GPL");
++MODULE_DESCRIPTION("iptables application layer match module");
++
++static int maxdatalen = 2048; // this is the default
++MODULE_PARM(maxdatalen,"i");
++MODULE_PARM_DESC(maxdatalen,"maximum bytes of data looked at by l7-filter");
++
++#if defined(CONFIG_IP_NF_MATCH_LAYER7_DEBUG)
++      #define DPRINTK(format,args...) printk(format,##args)
++#else
++      #define DPRINTK(format,args...)
++#endif
++
++#define TOTAL_PACKETS master_conntrack->layer7.numpackets
++
++/* Number of packets whose data we look at.
++This can be modified through /proc/net/layer7_numpackets */
++static int num_packets = 10;
++
++static struct pattern_cache {
++      char * regex_string;
++      regexp * pattern;
++      struct pattern_cache * next;
++} * first_pattern_cache = NULL;
++
++/* I'm new to locking.  Here are my assumptions:
++
++- No one will write to /proc/net/layer7_numpackets over and over very fast; 
++  if they did, nothing awful would happen.
++
++- This code will never be processing the same packet twice at the same time,
++  because iptables rules are traversed in order.
++
++- It doesn't matter if two packets from different connections are in here at 
++  the same time, because they don't share any data.
++
++- It _does_ matter if two packets from the same connection are here at the same
++  time.  In this case, we have to protect the conntracks and the list of 
++  compiled patterns.
++*/
++DECLARE_RWLOCK(ct_lock);
++DECLARE_LOCK(list_lock);
++
++#if CONFIG_IP_NF_MATCH_LAYER7_DEBUG
++/* Converts an unfriendly string into a friendly one by 
++replacing unprintables with periods and all whitespace with " ". */
++static char * friendly_print(unsigned char * s)
++{
++      char * f = kmalloc(strlen(s) + 1, GFP_ATOMIC);
++      int i;
++
++      if(!f) {
++              if (net_ratelimit()) 
++                      printk(KERN_ERR "layer7: out of memory in friendly_print, bailing.\n");
++              return NULL;
++      }
++
++      for(i = 0; i < strlen(s); i++){
++              if(isprint(s[i]) && s[i] < 128) f[i] = s[i];
++              else if(isspace(s[i]))          f[i] = ' ';
++              else                            f[i] = '.';
++      }
++      f[i] = '\0';
++      return f;
++}
++
++static char dec2hex(int i)
++{
++      switch (i) {
++              case 0 ... 9:
++                      return (char)(i + '0');
++                      break;
++              case 10 ... 15:
++                      return (char)(i - 10 + 'a');
++                      break;
++              default:
++                      if (net_ratelimit()) 
++                              printk("Problem in dec2hex\n");
++                      return '\0';
++      }
++}
++
++static char * hex_print(unsigned char * s)
++{
++      char * g = kmalloc(strlen(s)*3 + 1, GFP_ATOMIC);
++      int i;
++
++      if(!g) {
++              if (net_ratelimit()) 
++                      printk(KERN_ERR "layer7: out of memory in hex_print, bailing.\n");
++              return NULL;
++      }
++
++      for(i = 0; i < strlen(s); i++) {
++              g[i*3    ] = dec2hex(s[i]/16);
++              g[i*3 + 1] = dec2hex(s[i]%16);
++              g[i*3 + 2] = ' ';
++      }
++      g[i*3] = '\0';
++
++      return g;
++}
++#endif // DEBUG
++
++/* Use instead of regcomp.  As we expect to be seeing the same regexps over and
++over again, it make sense to cache the results. */
++static regexp * compile_and_cache(char * regex_string, char * protocol) 
++{
++      struct pattern_cache * node               = first_pattern_cache;
++      struct pattern_cache * last_pattern_cache = first_pattern_cache;
++      struct pattern_cache * tmp;
++      unsigned int len;
++
++      while (node != NULL) {
++              if (!strcmp(node->regex_string, regex_string)) 
++                      return node->pattern;
++
++              last_pattern_cache = node;/* points at the last non-NULL node */
++              node = node->next;
++      }
++
++      /* If we reach the end of the list, then we have not yet cached
++         the pattern for this regex. Let's do that now. 
++         Be paranoid about running out of memory to avoid list corruption. */
++      tmp = kmalloc(sizeof(struct pattern_cache), GFP_ATOMIC);
++
++      if(!tmp) {
++              if (net_ratelimit()) 
++                      printk(KERN_ERR "layer7: out of memory in compile_and_cache, bailing.\n");
++              return NULL;
++      }
++
++      tmp->regex_string  = kmalloc(strlen(regex_string) + 1, GFP_ATOMIC);
++      tmp->pattern       = kmalloc(sizeof(struct regexp),    GFP_ATOMIC);
++      tmp->next = NULL;
++
++      if(!tmp->regex_string || !tmp->pattern) {
++              if (net_ratelimit()) 
++                      printk(KERN_ERR "layer7: out of memory in compile_and_cache, bailing.\n");
++              kfree(tmp->regex_string);
++              kfree(tmp->pattern);
++              kfree(tmp);
++              return NULL;
++      }
++
++      /* Ok.  The new node is all ready now. */
++      node = tmp;
++
++      if(first_pattern_cache == NULL) /* list is empty */
++              first_pattern_cache = node; /* make node the beginning */
++      else
++              last_pattern_cache->next = node; /* attach node to the end */
++
++      /* copy the string and compile the regex */
++      len = strlen(regex_string);
++      DPRINTK("About to compile this: \"%s\"\n", regex_string);
++      node->pattern = regcomp(regex_string, &len);
++      if ( !node->pattern ) {
++              if (net_ratelimit()) 
++                      printk(KERN_ERR "layer7: Error compiling regexp \"%s\" (%s)\n", regex_string, protocol);
++              /* pattern is now cached as NULL, so we won't try again. */
++      }
++
++      strcpy(node->regex_string, regex_string);
++      return node->pattern;
++}
++
++static int can_handle(const struct sk_buff *skb)
++{
++      if(!skb->nh.iph) /* not IP */
++              return 0;
++      if(skb->nh.iph->protocol != IPPROTO_TCP &&
++         skb->nh.iph->protocol != IPPROTO_UDP &&
++         skb->nh.iph->protocol != IPPROTO_ICMP)
++              return 0;
++      return 1;
++}
++
++/* Returns offset the into the skb->data that the application data starts */
++static int app_data_offset(const struct sk_buff *skb)
++{
++      /* In case we are ported somewhere (ebtables?) where skb->nh.iph 
++      isn't set, this can be gotten from 4*(skb->data[0] & 0x0f) as well. */
++      int ip_hl = 4*skb->nh.iph->ihl;
++
++      if( skb->nh.iph->protocol == IPPROTO_TCP ) {
++              /* 12 == offset into TCP header for the header length field. 
++              Can't get this with skb->h.th->doff because the tcphdr 
++              struct doesn't get set when routing (this is confirmed to be 
++              true in Netfilter as well as QoS.) */
++              int tcp_hl = 4*(skb->data[ip_hl + 12] >> 4);
++
++              return ip_hl + tcp_hl;
++      } else if( skb->nh.iph->protocol == IPPROTO_UDP  ) {
++              return ip_hl + 8; /* UDP header is always 8 bytes */
++      } else if( skb->nh.iph->protocol == IPPROTO_ICMP ) {
++              return ip_hl + 8; /* ICMP header is 8 bytes */
++      } else {
++              if (net_ratelimit()) 
++                      printk(KERN_ERR "layer7: tried to handle unknown protocol!\n");
++              return ip_hl + 8; /* something reasonable */
++      }
++}
++
++/* handles whether there's a match when we aren't appending data anymore */
++static int match_no_append(struct ip_conntrack * conntrack, struct ip_conntrack * master_conntrack,
++                      enum ip_conntrack_info ctinfo, enum ip_conntrack_info master_ctinfo,
++                      struct ipt_layer7_info * info)
++{
++      /* If we're in here, throw the app data away */
++      WRITE_LOCK(&ct_lock);
++      if(master_conntrack->layer7.app_data != NULL) {
++
++      #ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG
++              if(!master_conntrack->layer7.app_proto) {
++                      char * f = friendly_print(master_conntrack->layer7.app_data);
++                      char * g = hex_print(master_conntrack->layer7.app_data);
++                      DPRINTK("\nl7-filter gave up after %d bytes (%d packets):\n%s\n",
++                              strlen(f), 
++                              TOTAL_PACKETS, f);
++                      kfree(f); 
++                      DPRINTK("In hex: %s\n", g);
++                      kfree(g);
++              }
++      #endif
++
++              kfree(master_conntrack->layer7.app_data);
++              master_conntrack->layer7.app_data = NULL; /* don't free again */
++      }
++      WRITE_UNLOCK(&ct_lock);
++
++      if(master_conntrack->layer7.app_proto){
++              /* Here child connections set their .app_proto (for /proc/net/ip_conntrack) */
++              WRITE_LOCK(&ct_lock);
++              if(!conntrack->layer7.app_proto) {
++                      conntrack->layer7.app_proto = kmalloc(strlen(master_conntrack->layer7.app_proto)+1, GFP_ATOMIC);
++                      if(!conntrack->layer7.app_proto){
++                              if (net_ratelimit()) 
++                                      printk(KERN_ERR "layer7: out of memory in match_no_append, bailing.\n");
++                              WRITE_UNLOCK(&ct_lock);
++                              return 1;
++                      }
++                      strcpy(conntrack->layer7.app_proto, master_conntrack->layer7.app_proto);
++              }
++              WRITE_UNLOCK(&ct_lock);
++      
++              return (!strcmp(master_conntrack->layer7.app_proto, info->protocol));
++      }
++      else {
++              /* If not classified, set to "unknown" to distinguish from 
++              connections that are still being tested. */
++              WRITE_LOCK(&ct_lock);
++              master_conntrack->layer7.app_proto = kmalloc(strlen("unknown")+1, GFP_ATOMIC);
++              if(!master_conntrack->layer7.app_proto){
++                      if (net_ratelimit()) 
++                              printk(KERN_ERR "layer7: out of memory in match_no_append, bailing.\n");
++                      WRITE_UNLOCK(&ct_lock);
++                      return 1;
++              }
++              strcpy(master_conntrack->layer7.app_proto, "unknown");
++              WRITE_UNLOCK(&ct_lock);
++              return 0;
++      }
++}
++
++/* add the new app data to the conntrack.  Return number of bytes added. */
++static int add_data(struct ip_conntrack * master_conntrack, 
++                      char * app_data, int appdatalen)
++{
++      int length = 0, i;
++      int oldlength = master_conntrack->layer7.app_data_len;
++
++      /* Strip nulls. Make everything lower case (our regex lib doesn't
++      do case insensitivity).  Add it to the end of the current data. */
++      for(i = 0; i < maxdatalen-oldlength-1 && i < appdatalen; i++) {
++              if(app_data[i] != '\0') {
++                      master_conntrack->layer7.app_data[length+oldlength] = 
++                              /* the kernel version of tolower mungs 'upper ascii' */
++                              isascii(app_data[i])? tolower(app_data[i]) : app_data[i];
++                      length++;
++              }
++      }
++
++      master_conntrack->layer7.app_data[length+oldlength] = '\0';
++      master_conntrack->layer7.app_data_len = length + oldlength;
++
++      return length;
++}
++
++/* Returns true on match and false otherwise.  */
++static int match(/* const */struct sk_buff *skb, const struct net_device *in,
++               const struct net_device *out, const void *matchinfo,
++               int offset,               int *hotdrop)
++{
++      struct ipt_layer7_info * info = (struct ipt_layer7_info *)matchinfo;
++      enum ip_conntrack_info master_ctinfo, ctinfo;
++      struct ip_conntrack *master_conntrack, *conntrack;
++      unsigned char * app_data;  
++      unsigned int pattern_result, appdatalen;
++      regexp * comppattern;
++
++      if(!can_handle(skb)){
++              DPRINTK("layer7: This is some protocol I can't handle.\n");
++              return info->invert;
++      }
++
++      /* Treat the parent and all its children together as one connection, 
++      except for the purpose of setting conntrack->layer7.app_proto in the 
++      actual connection. This makes /proc/net/ip_conntrack somewhat more 
++      satisfying. */
++      if(!(conntrack  = ip_conntrack_get((struct sk_buff *)skb, &ctinfo)) ||
++         !(master_conntrack = ip_conntrack_get((struct sk_buff *)skb, &master_ctinfo))) {
++              DPRINTK("layer7: packet is not from a known connection, giving up.\n");
++              return info->invert;
++      }
++      
++      /* Try to get a master conntrack (and its master etc) for FTP, etc. */
++      while (master_ct(master_conntrack) != NULL)
++              master_conntrack = master_ct(master_conntrack);
++
++      if(!skb->cb[0]){
++              WRITE_LOCK(&ct_lock);
++              master_conntrack->layer7.numpackets++;/*starts at 0 via memset*/
++              WRITE_UNLOCK(&ct_lock);
++      }
++
++      /* if we've classified it or seen too many packets */
++      if(TOTAL_PACKETS > num_packets || 
++         master_conntrack->layer7.app_proto) {
++      
++              pattern_result = match_no_append(conntrack, master_conntrack, ctinfo, master_ctinfo, info);
++      
++              /* skb->cb[0] == seen. Avoid doing things twice if there are two l7 
++              rules. I'm not sure that using cb for this purpose is correct, although
++              it says "put your private variables there". But it doesn't look like it
++              is being used for anything else in the skbs that make it here. How can
++              I write to cb without making the compiler angry? */
++              skb->cb[0] = 1; /* marking it seen here is probably irrelevant, but consistant */
++
++              return (pattern_result ^ info->invert);
++      }
++
++      if(skb_is_nonlinear(skb)){
++              if(skb_linearize(skb, GFP_ATOMIC) != 0){
++                      if (net_ratelimit()) 
++                              printk(KERN_ERR "layer7: failed to linearize packet, bailing.\n");
++                      return info->invert;
++              }
++      }
++      
++      /* now that the skb is linearized, it's safe to set these. */
++      app_data = skb->data + app_data_offset(skb);
++      appdatalen = skb->tail - app_data;
++
++      LOCK_BH(&list_lock);
++      /* the return value gets checked later, when we're ready to use it */
++      comppattern = compile_and_cache(info->pattern, info->protocol);
++      UNLOCK_BH(&list_lock);
++
++      /* On the first packet of a connection, allocate space for app data */
++      WRITE_LOCK(&ct_lock);
++      if(TOTAL_PACKETS == 1 && !skb->cb[0] && !master_conntrack->layer7.app_data) {
++              master_conntrack->layer7.app_data = kmalloc(maxdatalen, GFP_ATOMIC);
++              if(!master_conntrack->layer7.app_data){
++                      if (net_ratelimit())
++                              printk(KERN_ERR "layer7: out of memory in match, bailing.\n");
++                      WRITE_UNLOCK(&ct_lock);
++                      return info->invert;
++              }
++
++              master_conntrack->layer7.app_data[0] = '\0';
++      }
++      WRITE_UNLOCK(&ct_lock);
++
++      /* Can be here, but unallocated, if numpackets is increased near 
++      the beginning of a connection */
++      if(master_conntrack->layer7.app_data == NULL)
++              return (info->invert); /* unmatched */
++
++      if(!skb->cb[0]){
++              int newbytes;
++              WRITE_LOCK(&ct_lock);
++              newbytes = add_data(master_conntrack, app_data, appdatalen);
++              WRITE_UNLOCK(&ct_lock);
++
++              if(newbytes == 0) { /* didn't add any data */
++                      skb->cb[0] = 1;
++                      /* Didn't match before, not going to match now */
++                      return info->invert;
++              }
++      }
++
++      /* If looking for "unknown", then never match.  "Unknown" means that
++      we've given up; we're still trying with these packets. */
++      if(!strcmp(info->protocol, "unknown")) {
++              pattern_result = 0;
++      /* If the regexp failed to compile, don't bother running it */
++      } else if(comppattern && regexec(comppattern, master_conntrack->layer7.app_data)) {
++              DPRINTK("layer7: regexec positive: %s!\n", info->protocol);
++              pattern_result = 1;
++      } else pattern_result = 0;
++
++      if(pattern_result) {
++              WRITE_LOCK(&ct_lock);
++              master_conntrack->layer7.app_proto = kmalloc(strlen(info->protocol)+1, GFP_ATOMIC);
++              if(!master_conntrack->layer7.app_proto){
++                      if (net_ratelimit()) 
++                              printk(KERN_ERR "layer7: out of memory in match, bailing.\n");
++                      WRITE_UNLOCK(&ct_lock);
++                      return (pattern_result ^ info->invert);
++              }
++              strcpy(master_conntrack->layer7.app_proto, info->protocol);
++              WRITE_UNLOCK(&ct_lock);
++      }
++
++      /* mark the packet seen */
++      skb->cb[0] = 1;
++
++      return (pattern_result ^ info->invert);
++}
++
++static int checkentry(const char *tablename, const struct ipt_ip *ip,
++         void *matchinfo, unsigned int matchsize, unsigned int hook_mask)
++{
++      if (matchsize != IPT_ALIGN(sizeof(struct ipt_layer7_info))) 
++              return 0;
++      return 1;
++}
++
++static struct ipt_match layer7_match = { 
++      .name = "layer7", 
++      .match = &match, 
++      .checkentry = &checkentry, 
++      .me = THIS_MODULE 
++};
++
++/* taken from drivers/video/modedb.c */
++static int my_atoi(const char *s)
++{
++      int val = 0;
++
++      for (;; s++) {
++              switch (*s) {
++              case '0'...'9':
++                      val = 10*val+(*s-'0');
++                      break;
++              default:
++                      return val;
++              }
++      }
++}
++
++/* write out num_packets to userland. */
++static int layer7_read_proc(char* page, char ** start, off_t off, int count, 
++                   int* eof, void * data) 
++{
++      if(num_packets > 99 && net_ratelimit()) 
++              printk(KERN_ERR "layer7: NOT REACHED. num_packets too big\n");
++      
++      page[0] = num_packets/10 + '0';
++      page[1] = num_packets%10 + '0';
++      page[2] = '\n';
++      page[3] = '\0';
++              
++      *eof=1;
++
++      return 3;
++}
++
++/* Read in num_packets from userland */
++static int layer7_write_proc(struct file* file, const char* buffer, 
++                    unsigned long count, void *data) 
++{
++      char * foo = kmalloc(count, GFP_ATOMIC);
++
++      if(!foo){
++              if (net_ratelimit()) 
++                      printk(KERN_ERR "layer7: out of memory, bailing. num_packets unchanged.\n");
++              return count;
++      }
++
++      copy_from_user(foo, buffer, count);
++
++      num_packets = my_atoi(foo);
++      kfree (foo);
++
++      /* This has an arbitrary limit to make the math easier. I'm lazy. 
++      But anyway, 99 is a LOT! If you want more, you're doing it wrong! */
++      if(num_packets > 99) {
++              printk(KERN_WARNING "layer7: num_packets can't be > 99.\n");
++              num_packets = 99;
++      } else if(num_packets < 1) {
++              printk(KERN_WARNING "layer7: num_packets can't be < 1.\n");
++              num_packets = 1;
++      }
++      
++      return count;
++}
++
++/* register the proc file */
++static void layer7_init_proc(void)
++{
++      struct proc_dir_entry* entry;
++      entry = create_proc_entry("layer7_numpackets", 0644, proc_net);
++      entry->read_proc = layer7_read_proc;
++      entry->write_proc = layer7_write_proc;
++}
++
++static void layer7_cleanup_proc(void)
++{
++      remove_proc_entry("layer7_numpackets", proc_net);
++}
++
++static int __init init(void)
++{
++      layer7_init_proc();
++      if(maxdatalen < 1) {
++              printk(KERN_WARNING "layer7: maxdatalen can't be < 1, using 1\n");
++              maxdatalen = 1;
++      }
++      /* This is not a hard limit.  It's just here to prevent people from     
++      bringing their slow machines to a grinding halt. */
++      else if(maxdatalen > 65536) {
++              printk(KERN_WARNING "layer7: maxdatalen can't be > 65536, using 65536\n");
++              maxdatalen = 65536;             
++      }
++      return ipt_register_match(&layer7_match);
++}
++
++static void __exit fini(void)
++{
++      layer7_cleanup_proc();
++      ipt_unregister_match(&layer7_match);
++}
++
++module_init(init);
++module_exit(fini);
+diff -Nurp linux-2.4.31/net/ipv4/netfilter/regexp/regexp.c linux-2.4.31-layer7/net/ipv4/netfilter/regexp/regexp.c
+--- linux-2.4.31/net/ipv4/netfilter/regexp/regexp.c    1969-12-31 18:00:00.000000000 -0600
++++ linux-2.4.31-layer7/net/ipv4/netfilter/regexp/regexp.c     2005-09-01 00:17:13.000000000 -0500
+@@ -0,0 +1,1195 @@
++/*
++ * regcomp and regexec -- regsub and regerror are elsewhere
++ * @(#)regexp.c       1.3 of 18 April 87
++ *
++ *    Copyright (c) 1986 by University of Toronto.
++ *    Written by Henry Spencer.  Not derived from licensed software.
++ *
++ *    Permission is granted to anyone to use this software for any
++ *    purpose on any computer system, and to redistribute it freely,
++ *    subject to the following restrictions:
++ *
++ *    1. The author is not responsible for the consequences of use of
++ *            this software, no matter how awful, even if they arise
++ *            from defects in it.
++ *
++ *    2. The origin of this software must not be misrepresented, either
++ *            by explicit claim or by omission.
++ *
++ *    3. Altered versions must be plainly marked as such, and must not
++ *            be misrepresented as being the original software.
++ *
++ * Beware that some of this code is subtly aware of the way operator
++ * precedence is structured in regular expressions.  Serious changes in
++ * regular-expression syntax might require a total rethink.
++ *
++ * This code was modified by Ethan Sommer to work within the kernel
++ * (it now uses kmalloc etc..)
++ * 
++ * Modified slightly by Matthew Strait to use more modern C.
++ */
++
++#include "regexp.h"
++#include "regmagic.h"
++
++/* added by ethan and matt.  Lets it work in both kernel and user space.
++(So iptables can use it, for instance.)  Yea, it goes both ways... */
++#if __KERNEL__
++  #define malloc(foo) kmalloc(foo,GFP_ATOMIC)
++#else
++  #define printk(format,args...) printf(format,##args)
++#endif
++
++void regerror(char * s)
++{
++        printk("<3>Regexp: %s\n", s);
++        /* NOTREACHED */
++}
++
++/*
++ * The "internal use only" fields in regexp.h are present to pass info from
++ * compile to execute that permits the execute phase to run lots faster on
++ * simple cases.  They are:
++ *
++ * regstart   char that must begin a match; '\0' if none obvious
++ * reganch    is the match anchored (at beginning-of-line only)?
++ * regmust    string (pointer into program) that match must include, or NULL
++ * regmlen    length of regmust string
++ *
++ * Regstart and reganch permit very fast decisions on suitable starting points
++ * for a match, cutting down the work a lot.  Regmust permits fast rejection
++ * of lines that cannot possibly match.  The regmust tests are costly enough
++ * that regcomp() supplies a regmust only if the r.e. contains something
++ * potentially expensive (at present, the only such thing detected is * or +
++ * at the start of the r.e., which can involve a lot of backup).  Regmlen is
++ * supplied because the test in regexec() needs it and regcomp() is computing
++ * it anyway.
++ */
++
++/*
++ * Structure for regexp "program".  This is essentially a linear encoding
++ * of a nondeterministic finite-state machine (aka syntax charts or
++ * "railroad normal form" in parsing technology).  Each node is an opcode
++ * plus a "next" pointer, possibly plus an operand.  "Next" pointers of
++ * all nodes except BRANCH implement concatenation; a "next" pointer with
++ * a BRANCH on both ends of it is connecting two alternatives.  (Here we
++ * have one of the subtle syntax dependencies:  an individual BRANCH (as
++ * opposed to a collection of them) is never concatenated with anything
++ * because of operator precedence.)  The operand of some types of node is
++ * a literal string; for others, it is a node leading into a sub-FSM.  In
++ * particular, the operand of a BRANCH node is the first node of the branch.
++ * (NB this is *not* a tree structure:  the tail of the branch connects
++ * to the thing following the set of BRANCHes.)  The opcodes are:
++ */
++
++/* definition number  opnd?   meaning */
++#define       END     0       /* no   End of program. */
++#define       BOL     1       /* no   Match "" at beginning of line. */
++#define       EOL     2       /* no   Match "" at end of line. */
++#define       ANY     3       /* no   Match any one character. */
++#define       ANYOF   4       /* str  Match any character in this string. */
++#define       ANYBUT  5       /* str  Match any character not in this string. */
++#define       BRANCH  6       /* node Match this alternative, or the next... */
++#define       BACK    7       /* no   Match "", "next" ptr points backward. */
++#define       EXACTLY 8       /* str  Match this string. */
++#define       NOTHING 9       /* no   Match empty string. */
++#define       STAR    10      /* node Match this (simple) thing 0 or more times. */
++#define       PLUS    11      /* node Match this (simple) thing 1 or more times. */
++#define       OPEN    20      /* no   Mark this point in input as start of #n. */
++                      /*      OPEN+1 is number 1, etc. */
++#define       CLOSE   30      /* no   Analogous to OPEN. */
++
++/*
++ * Opcode notes:
++ *
++ * BRANCH     The set of branches constituting a single choice are hooked
++ *            together with their "next" pointers, since precedence prevents
++ *            anything being concatenated to any individual branch.  The
++ *            "next" pointer of the last BRANCH in a choice points to the
++ *            thing following the whole choice.  This is also where the
++ *            final "next" pointer of each individual branch points; each
++ *            branch starts with the operand node of a BRANCH node.
++ *
++ * BACK               Normal "next" pointers all implicitly point forward; BACK
++ *            exists to make loop structures possible.
++ *
++ * STAR,PLUS  '?', and complex '*' and '+', are implemented as circular
++ *            BRANCH structures using BACK.  Simple cases (one character
++ *            per match) are implemented with STAR and PLUS for speed
++ *            and to minimize recursive plunges.
++ *
++ * OPEN,CLOSE ...are numbered at compile time.
++ */
++
++/*
++ * A node is one char of opcode followed by two chars of "next" pointer.
++ * "Next" pointers are stored as two 8-bit pieces, high order first.  The
++ * value is a positive offset from the opcode of the node containing it.
++ * An operand, if any, simply follows the node.  (Note that much of the
++ * code generation knows about this implicit relationship.)
++ *
++ * Using two bytes for the "next" pointer is vast overkill for most things,
++ * but allows patterns to get big without disasters.
++ */
++#define       OP(p)   (*(p))
++#define       NEXT(p) (((*((p)+1)&0377)<<8) + (*((p)+2)&0377))
++#define       OPERAND(p)      ((p) + 3)
++
++/*
++ * See regmagic.h for one further detail of program structure.
++ */
++
++
++/*
++ * Utility definitions.
++ */
++#ifndef CHARBITS
++#define       UCHARAT(p)      ((int)*(unsigned char *)(p))
++#else
++#define       UCHARAT(p)      ((int)*(p)&CHARBITS)
++#endif
++
++#define       FAIL(m) { regerror(m); return(NULL); }
++#define       ISMULT(c)       ((c) == '*' || (c) == '+' || (c) == '?')
++#define       META    "^$.[()|?+*\\"
++
++/*
++ * Flags to be passed up and down.
++ */
++#define       HASWIDTH        01      /* Known never to match null string. */
++#define       SIMPLE          02      /* Simple enough to be STAR/PLUS operand. */
++#define       SPSTART         04      /* Starts with * or +. */
++#define       WORST           0       /* Worst case. */
++
++/*
++ * Global work variables for regcomp().
++ */
++static char *regparse;                /* Input-scan pointer. */
++static int regnpar;           /* () count. */
++static char regdummy;
++static char *regcode;         /* Code-emit pointer; &regdummy = don't. */
++static long regsize;          /* Code size. */
++
++/*
++ * Forward declarations for regcomp()'s friends.
++ */
++#ifndef STATIC
++#define       STATIC  static
++#endif
++STATIC char *reg(int paren,int *flagp);
++STATIC char *regbranch(int *flagp);
++STATIC char *regpiece(int *flagp);
++STATIC char *regatom(int *flagp);
++STATIC char *regnode(char op);
++STATIC char *regnext(char *p);
++STATIC void regc(char b);
++STATIC void reginsert(char op, char *opnd);
++STATIC void regtail(char *p, char *val);
++STATIC void regoptail(char *p, char *val);
++
++
++__kernel_size_t my_strcspn(const char *s1,const char *s2)
++{
++        char *scan1;
++        char *scan2;
++        int count;
++
++        count = 0;
++        for (scan1 = (char *)s1; *scan1 != '\0'; scan1++) {
++                for (scan2 = (char *)s2; *scan2 != '\0';)       /* ++ moved down. */
++                        if (*scan1 == *scan2++)
++                                return(count);
++                count++;
++        }
++        return(count);
++}
++
++/*
++ - regcomp - compile a regular expression into internal code
++ *
++ * We can't allocate space until we know how big the compiled form will be,
++ * but we can't compile it (and thus know how big it is) until we've got a
++ * place to put the code.  So we cheat:  we compile it twice, once with code
++ * generation turned off and size counting turned on, and once "for real".
++ * This also means that we don't allocate space until we are sure that the
++ * thing really will compile successfully, and we never have to move the
++ * code and thus invalidate pointers into it.  (Note that it has to be in
++ * one piece because free() must be able to free it all.)
++ *
++ * Beware that the optimization-preparation code in here knows about some
++ * of the structure of the compiled regexp.
++ */
++regexp *
++regcomp(char *exp,int *patternsize)
++{
++      register regexp *r;
++      register char *scan;
++      register char *longest;
++      register int len;
++      int flags;
++      /* commented out by ethan
++         extern char *malloc();
++      */
++
++      if (exp == NULL)
++              FAIL("NULL argument");
++
++      /* First pass: determine size, legality. */
++      regparse = exp;
++      regnpar = 1;
++      regsize = 0L;
++      regcode = &regdummy;
++      regc(MAGIC);
++      if (reg(0, &flags) == NULL)
++              return(NULL);
++
++      /* Small enough for pointer-storage convention? */
++      if (regsize >= 32767L)          /* Probably could be 65535L. */
++              FAIL("regexp too big");
++
++      /* Allocate space. */
++      *patternsize=sizeof(regexp) + (unsigned)regsize;
++      r = (regexp *)malloc(sizeof(regexp) + (unsigned)regsize);
++      if (r == NULL)
++              FAIL("out of space");
++
++      /* Second pass: emit code. */
++      regparse = exp;
++      regnpar = 1;
++      regcode = r->program;
++      regc(MAGIC);
++      if (reg(0, &flags) == NULL)
++              return(NULL);
++
++      /* Dig out information for optimizations. */
++      r->regstart = '\0';     /* Worst-case defaults. */
++      r->reganch = 0;
++      r->regmust = NULL;
++      r->regmlen = 0;
++      scan = r->program+1;                    /* First BRANCH. */
++      if (OP(regnext(scan)) == END) {         /* Only one top-level choice. */
++              scan = OPERAND(scan);
++
++              /* Starting-point info. */
++              if (OP(scan) == EXACTLY)
++                      r->regstart = *OPERAND(scan);
++              else if (OP(scan) == BOL)
++                      r->reganch++;
++
++              /*
++               * If there's something expensive in the r.e., find the
++               * longest literal string that must appear and make it the
++               * regmust.  Resolve ties in favor of later strings, since
++               * the regstart check works with the beginning of the r.e.
++               * and avoiding duplication strengthens checking.  Not a
++               * strong reason, but sufficient in the absence of others.
++               */
++              if (flags&SPSTART) {
++                      longest = NULL;
++                      len = 0;
++                      for (; scan != NULL; scan = regnext(scan))
++                              if (OP(scan) == EXACTLY && strlen(OPERAND(scan)) >= len) {
++                                      longest = OPERAND(scan);
++                                      len = strlen(OPERAND(scan));
++                              }
++                      r->regmust = longest;
++                      r->regmlen = len;
++              }
++      }
++
++      return(r);
++}
++
++/*
++ - reg - regular expression, i.e. main body or parenthesized thing
++ *
++ * Caller must absorb opening parenthesis.
++ *
++ * Combining parenthesis handling with the base level of regular expression
++ * is a trifle forced, but the need to tie the tails of the branches to what
++ * follows makes it hard to avoid.
++ */
++static char *
++reg(int paren, int *flagp /* Parenthesized? */ )
++{
++      register char *ret;
++      register char *br;
++      register char *ender;
++      register int parno = 0; /* 0 makes gcc happy */
++      int flags;
++
++      *flagp = HASWIDTH;      /* Tentatively. */
++
++      /* Make an OPEN node, if parenthesized. */
++      if (paren) {
++              if (regnpar >= NSUBEXP)
++                      FAIL("too many ()");
++              parno = regnpar;
++              regnpar++;
++              ret = regnode(OPEN+parno);
++      } else
++              ret = NULL;
++
++      /* Pick up the branches, linking them together. */
++      br = regbranch(&flags);
++      if (br == NULL)
++              return(NULL);
++      if (ret != NULL)
++              regtail(ret, br);       /* OPEN -> first. */
++      else
++              ret = br;
++      if (!(flags&HASWIDTH))
++              *flagp &= ~HASWIDTH;
++      *flagp |= flags&SPSTART;
++      while (*regparse == '|') {
++              regparse++;
++              br = regbranch(&flags);
++              if (br == NULL)
++                      return(NULL);
++              regtail(ret, br);       /* BRANCH -> BRANCH. */
++              if (!(flags&HASWIDTH))
++                      *flagp &= ~HASWIDTH;
++              *flagp |= flags&SPSTART;
++      }
++
++      /* Make a closing node, and hook it on the end. */
++      ender = regnode((paren) ? CLOSE+parno : END);   
++      regtail(ret, ender);
++
++      /* Hook the tails of the branches to the closing node. */
++      for (br = ret; br != NULL; br = regnext(br))
++              regoptail(br, ender);
++
++      /* Check for proper termination. */
++      if (paren && *regparse++ != ')') {
++              FAIL("unmatched ()");
++      } else if (!paren && *regparse != '\0') {
++              if (*regparse == ')') {
++                      FAIL("unmatched ()");
++              } else
++                      FAIL("junk on end");    /* "Can't happen". */
++              /* NOTREACHED */
++      }
++
++      return(ret);
++}
++
++/*
++ - regbranch - one alternative of an | operator
++ *
++ * Implements the concatenation operator.
++ */
++static char *
++regbranch(int *flagp)
++{
++      register char *ret;
++      register char *chain;
++      register char *latest;
++      int flags;
++
++      *flagp = WORST;         /* Tentatively. */
++
++      ret = regnode(BRANCH);
++      chain = NULL;
++      while (*regparse != '\0' && *regparse != '|' && *regparse != ')') {
++              latest = regpiece(&flags);
++              if (latest == NULL)
++                      return(NULL);
++              *flagp |= flags&HASWIDTH;
++              if (chain == NULL)      /* First piece. */
++                      *flagp |= flags&SPSTART;
++              else
++                      regtail(chain, latest);
++              chain = latest;
++      }
++      if (chain == NULL)      /* Loop ran zero times. */
++              (void) regnode(NOTHING);
++
++      return(ret);
++}
++
++/*
++ - regpiece - something followed by possible [*+?]
++ *
++ * Note that the branching code sequences used for ? and the general cases
++ * of * and + are somewhat optimized:  they use the same NOTHING node as
++ * both the endmarker for their branch list and the body of the last branch.
++ * It might seem that this node could be dispensed with entirely, but the
++ * endmarker role is not redundant.
++ */
++static char *
++regpiece(int *flagp)
++{
++      register char *ret;
++      register char op;
++      register char *next;
++      int flags;
++
++      ret = regatom(&flags);
++      if (ret == NULL)
++              return(NULL);
++
++      op = *regparse;
++      if (!ISMULT(op)) {
++              *flagp = flags;
++              return(ret);
++      }
++
++      if (!(flags&HASWIDTH) && op != '?')
++              FAIL("*+ operand could be empty");
++      *flagp = (op != '+') ? (WORST|SPSTART) : (WORST|HASWIDTH);
++
++      if (op == '*' && (flags&SIMPLE))
++              reginsert(STAR, ret);
++      else if (op == '*') {
++              /* Emit x* as (x&|), where & means "self". */
++              reginsert(BRANCH, ret);                 /* Either x */
++              regoptail(ret, regnode(BACK));          /* and loop */
++              regoptail(ret, ret);                    /* back */
++              regtail(ret, regnode(BRANCH));          /* or */
++              regtail(ret, regnode(NOTHING));         /* null. */
++      } else if (op == '+' && (flags&SIMPLE))
++              reginsert(PLUS, ret);
++      else if (op == '+') {
++              /* Emit x+ as x(&|), where & means "self". */
++              next = regnode(BRANCH);                 /* Either */
++              regtail(ret, next);
++              regtail(regnode(BACK), ret);            /* loop back */
++              regtail(next, regnode(BRANCH));         /* or */
++              regtail(ret, regnode(NOTHING));         /* null. */
++      } else if (op == '?') {
++              /* Emit x? as (x|) */
++              reginsert(BRANCH, ret);                 /* Either x */
++              regtail(ret, regnode(BRANCH));          /* or */
++              next = regnode(NOTHING);                /* null. */
++              regtail(ret, next);
++              regoptail(ret, next);
++      }
++      regparse++;
++      if (ISMULT(*regparse))
++              FAIL("nested *?+");
++
++      return(ret);
++}
++
++/*
++ - regatom - the lowest level
++ *
++ * Optimization:  gobbles an entire sequence of ordinary characters so that
++ * it can turn them into a single node, which is smaller to store and
++ * faster to run.  Backslashed characters are exceptions, each becoming a
++ * separate node; the code is simpler that way and it's not worth fixing.
++ */
++static char *
++regatom(int *flagp)
++{
++      register char *ret;
++      int flags;
++
++      *flagp = WORST;         /* Tentatively. */
++
++      switch (*regparse++) {
++      case '^':
++              ret = regnode(BOL);
++              break;
++      case '$':
++              ret = regnode(EOL);
++              break;
++      case '.':
++              ret = regnode(ANY);
++              *flagp |= HASWIDTH|SIMPLE;
++              break;
++      case '[': {
++                      register int class;
++                      register int classend;
++
++                      if (*regparse == '^') { /* Complement of range. */
++                              ret = regnode(ANYBUT);
++                              regparse++;
++                      } else
++                              ret = regnode(ANYOF);
++                      if (*regparse == ']' || *regparse == '-')
++                              regc(*regparse++);
++                      while (*regparse != '\0' && *regparse != ']') {
++                              if (*regparse == '-') {
++                                      regparse++;
++                                      if (*regparse == ']' || *regparse == '\0')
++                                              regc('-');
++                                      else {
++                                              class = UCHARAT(regparse-2)+1;
++                                              classend = UCHARAT(regparse);
++                                              if (class > classend+1)
++                                                      FAIL("invalid [] range");
++                                              for (; class <= classend; class++)
++                                                      regc(class);
++                                              regparse++;
++                                      }
++                              } else
++                                      regc(*regparse++);
++                      }
++                      regc('\0');
++                      if (*regparse != ']')
++                              FAIL("unmatched []");
++                      regparse++;
++                      *flagp |= HASWIDTH|SIMPLE;
++              }
++              break;
++      case '(':
++              ret = reg(1, &flags);
++              if (ret == NULL)
++                      return(NULL);
++              *flagp |= flags&(HASWIDTH|SPSTART);
++              break;
++      case '\0':
++      case '|':
++      case ')':
++              FAIL("internal urp");   /* Supposed to be caught earlier. */
++              break;
++      case '?':
++      case '+':
++      case '*':
++              FAIL("?+* follows nothing");
++              break;
++      case '\\':
++              if (*regparse == '\0')
++                      FAIL("trailing \\");
++              ret = regnode(EXACTLY);
++              regc(*regparse++);
++              regc('\0');
++              *flagp |= HASWIDTH|SIMPLE;
++              break;
++      default: {
++                      register int len;
++                      register char ender;
++
++                      regparse--;
++                      len = my_strcspn((const char *)regparse, (const char *)META);
++                      if (len <= 0)
++                              FAIL("internal disaster");
++                      ender = *(regparse+len);
++                      if (len > 1 && ISMULT(ender))
++                              len--;          /* Back off clear of ?+* operand. */
++                      *flagp |= HASWIDTH;
++                      if (len == 1)
++                              *flagp |= SIMPLE;
++                      ret = regnode(EXACTLY);
++                      while (len > 0) {
++                              regc(*regparse++);
++                              len--;
++                      }
++                      regc('\0');
++              }
++              break;
++      }
++
++      return(ret);
++}
++
++/*
++ - regnode - emit a node
++ */
++static char *                 /* Location. */
++regnode(char op)
++{
++      register char *ret;
++      register char *ptr;
++
++      ret = regcode;
++      if (ret == &regdummy) {
++              regsize += 3;
++              return(ret);
++      }
++
++      ptr = ret;
++      *ptr++ = op;
++      *ptr++ = '\0';          /* Null "next" pointer. */
++      *ptr++ = '\0';
++      regcode = ptr;
++
++      return(ret);
++}
++
++/*
++ - regc - emit (if appropriate) a byte of code
++ */
++static void
++regc(char b)
++{
++      if (regcode != &regdummy)
++              *regcode++ = b;
++      else
++              regsize++;
++}
++
++/*
++ - reginsert - insert an operator in front of already-emitted operand
++ *
++ * Means relocating the operand.
++ */
++static void
++reginsert(char op, char* opnd)
++{
++      register char *src;
++      register char *dst;
++      register char *place;
++
++      if (regcode == &regdummy) {
++              regsize += 3;
++              return;
++      }
++
++      src = regcode;
++      regcode += 3;
++      dst = regcode;
++      while (src > opnd)
++              *--dst = *--src;
++
++      place = opnd;           /* Op node, where operand used to be. */
++      *place++ = op;
++      *place++ = '\0';
++      *place++ = '\0';
++}
++
++/*
++ - regtail - set the next-pointer at the end of a node chain
++ */
++static void
++regtail(char *p, char *val)
++{
++      register char *scan;
++      register char *temp;
++      register int offset;
++
++      if (p == &regdummy)
++              return;
++
++      /* Find last node. */
++      scan = p;
++      for (;;) {
++              temp = regnext(scan);
++              if (temp == NULL)
++                      break;
++              scan = temp;
++      }
++
++      if (OP(scan) == BACK)
++              offset = scan - val;
++      else
++              offset = val - scan;
++      *(scan+1) = (offset>>8)&0377;
++      *(scan+2) = offset&0377;
++}
++
++/*
++ - regoptail - regtail on operand of first argument; nop if operandless
++ */
++static void
++regoptail(char *p, char *val)
++{
++      /* "Operandless" and "op != BRANCH" are synonymous in practice. */
++      if (p == NULL || p == &regdummy || OP(p) != BRANCH)
++              return;
++      regtail(OPERAND(p), val);
++}
++
++/*
++ * regexec and friends
++ */
++
++/*
++ * Global work variables for regexec().
++ */
++static char *reginput;                /* String-input pointer. */
++static char *regbol;          /* Beginning of input, for ^ check. */
++static char **regstartp;      /* Pointer to startp array. */
++static char **regendp;                /* Ditto for endp. */
++
++/*
++ * Forwards.
++ */
++STATIC int regtry(regexp *prog, char *string);
++STATIC int regmatch(char *prog);
++STATIC int regrepeat(char *p);
++
++#ifdef DEBUG
++int regnarrate = 0;
++void regdump();
++STATIC char *regprop(char *op);
++#endif
++
++/*
++ - regexec - match a regexp against a string
++ */
++int
++regexec(regexp *prog, char *string)
++{
++      register char *s;
++
++      /* Be paranoid... */
++      if (prog == NULL || string == NULL) {
++              printk("<3>Regexp: NULL parameter\n");
++              return(0);
++      }
++
++      /* Check validity of program. */
++      if (UCHARAT(prog->program) != MAGIC) {
++              printk("<3>Regexp: corrupted program\n");
++              return(0);
++      }
++
++      /* If there is a "must appear" string, look for it. */
++      if (prog->regmust != NULL) {
++              s = string;
++              while ((s = strchr(s, prog->regmust[0])) != NULL) {
++                      if (strncmp(s, prog->regmust, prog->regmlen) == 0)
++                              break;  /* Found it. */
++                      s++;
++              }
++              if (s == NULL)  /* Not present. */
++                      return(0);
++      }
++
++      /* Mark beginning of line for ^ . */
++      regbol = string;
++
++      /* Simplest case:  anchored match need be tried only once. */
++      if (prog->reganch)
++              return(regtry(prog, string));
++
++      /* Messy cases:  unanchored match. */
++      s = string;
++      if (prog->regstart != '\0')
++              /* We know what char it must start with. */
++              while ((s = strchr(s, prog->regstart)) != NULL) {
++                      if (regtry(prog, s))
++                              return(1);
++                      s++;
++              }
++      else
++              /* We don't -- general case. */
++              do {
++                      if (regtry(prog, s))
++                              return(1);
++              } while (*s++ != '\0');
++
++      /* Failure. */
++      return(0);
++}
++
++/*
++ - regtry - try match at specific point
++ */
++static int                    /* 0 failure, 1 success */
++regtry(regexp *prog, char *string)
++{
++      register int i;
++      register char **sp;
++      register char **ep;
++
++      reginput = string;
++      regstartp = prog->startp;
++      regendp = prog->endp;
++
++      sp = prog->startp;
++      ep = prog->endp;
++      for (i = NSUBEXP; i > 0; i--) {
++              *sp++ = NULL;
++              *ep++ = NULL;
++      }
++      if (regmatch(prog->program + 1)) {
++              prog->startp[0] = string;
++              prog->endp[0] = reginput;
++              return(1);
++      } else
++              return(0);
++}
++
++/*
++ - regmatch - main matching routine
++ *
++ * Conceptually the strategy is simple:  check to see whether the current
++ * node matches, call self recursively to see whether the rest matches,
++ * and then act accordingly.  In practice we make some effort to avoid
++ * recursion, in particular by going through "ordinary" nodes (that don't
++ * need to know whether the rest of the match failed) by a loop instead of
++ * by recursion.
++ */
++static int                    /* 0 failure, 1 success */
++regmatch(char *prog)
++{
++      register char *scan = prog; /* Current node. */
++      char *next;                 /* Next node. */
++
++#ifdef DEBUG
++      if (scan != NULL && regnarrate)
++              fprintf(stderr, "%s(\n", regprop(scan));
++#endif
++      while (scan != NULL) {
++#ifdef DEBUG
++              if (regnarrate)
++                      fprintf(stderr, "%s...\n", regprop(scan));
++#endif
++              next = regnext(scan);
++
++              switch (OP(scan)) {
++              case BOL:
++                      if (reginput != regbol)
++                              return(0);
++                      break;
++              case EOL:
++                      if (*reginput != '\0')
++                              return(0);
++                      break;
++              case ANY:
++                      if (*reginput == '\0')
++                              return(0);
++                      reginput++;
++                      break;
++              case EXACTLY: {
++                              register int len;
++                              register char *opnd;
++
++                              opnd = OPERAND(scan);
++                              /* Inline the first character, for speed. */
++                              if (*opnd != *reginput)
++                                      return(0);
++                              len = strlen(opnd);
++                              if (len > 1 && strncmp(opnd, reginput, len) != 0)
++                                      return(0);
++                              reginput += len;
++                      }
++                      break;
++              case ANYOF:
++                      if (*reginput == '\0' || strchr(OPERAND(scan), *reginput) == NULL)
++                              return(0);
++                      reginput++;
++                      break;
++              case ANYBUT:
++                      if (*reginput == '\0' || strchr(OPERAND(scan), *reginput) != NULL)
++                              return(0);
++                      reginput++;
++                      break;
++              case NOTHING:
++              case BACK:
++                      break;
++              case OPEN+1:
++              case OPEN+2:
++              case OPEN+3:
++              case OPEN+4:
++              case OPEN+5:
++              case OPEN+6:
++              case OPEN+7:
++              case OPEN+8:
++              case OPEN+9: {
++                              register int no;
++                              register char *save;
++
++                              no = OP(scan) - OPEN;
++                              save = reginput;
++
++                              if (regmatch(next)) {
++                                      /*
++                                       * Don't set startp if some later
++                                       * invocation of the same parentheses
++                                       * already has.
++                                       */
++                                      if (regstartp[no] == NULL)
++                                              regstartp[no] = save;
++                                      return(1);
++                              } else
++                                      return(0);
++                      }
++                      break;
++              case CLOSE+1:
++              case CLOSE+2:
++              case CLOSE+3:
++              case CLOSE+4:
++              case CLOSE+5:
++              case CLOSE+6:
++              case CLOSE+7:
++              case CLOSE+8:
++              case CLOSE+9:
++                      {
++                              register int no;
++                              register char *save;
++
++                              no = OP(scan) - CLOSE;
++                              save = reginput;
++
++                              if (regmatch(next)) {
++                                      /*
++                                       * Don't set endp if some later
++                                       * invocation of the same parentheses
++                                       * already has.
++                                       */
++                                      if (regendp[no] == NULL)
++                                              regendp[no] = save;
++                                      return(1);
++                              } else
++                                      return(0);
++                      }
++                      break;
++              case BRANCH: {
++                              register char *save;
++
++                              if (OP(next) != BRANCH)         /* No choice. */
++                                      next = OPERAND(scan);   /* Avoid recursion. */
++                              else {
++                                      do {
++                                              save = reginput;
++                                              if (regmatch(OPERAND(scan)))
++                                                      return(1);
++                                              reginput = save;
++                                              scan = regnext(scan);
++                                      } while (scan != NULL && OP(scan) == BRANCH);
++                                      return(0);
++                                      /* NOTREACHED */
++                              }
++                      }
++                      break;
++              case STAR:
++              case PLUS: {
++                              register char nextch;
++                              register int no;
++                              register char *save;
++                              register int min;
++
++                              /*
++                               * Lookahead to avoid useless match attempts
++                               * when we know what character comes next.
++                               */
++                              nextch = '\0';
++                              if (OP(next) == EXACTLY)
++                                      nextch = *OPERAND(next);
++                              min = (OP(scan) == STAR) ? 0 : 1;
++                              save = reginput;
++                              no = regrepeat(OPERAND(scan));
++                              while (no >= min) {
++                                      /* If it could work, try it. */
++                                      if (nextch == '\0' || *reginput == nextch)
++                                              if (regmatch(next))
++                                                      return(1);
++                                      /* Couldn't or didn't -- back up. */
++                                      no--;
++                                      reginput = save + no;
++                              }
++                              return(0);
++                      }
++                      break;
++              case END:
++                      return(1);      /* Success! */
++                      break;
++              default:
++                      printk("<3>Regexp: memory corruption\n");
++                      return(0);
++                      break;
++              }
++
++              scan = next;
++      }
++
++      /*
++       * We get here only if there's trouble -- normally "case END" is
++       * the terminating point.
++       */
++      printk("<3>Regexp: corrupted pointers\n");
++      return(0);
++}
++
++/*
++ - regrepeat - repeatedly match something simple, report how many
++ */
++static int
++regrepeat(char *p)
++{
++      register int count = 0;
++      register char *scan;
++      register char *opnd;
++
++      scan = reginput;
++      opnd = OPERAND(p);
++      switch (OP(p)) {
++      case ANY:
++              count = strlen(scan);
++              scan += count;
++              break;
++      case EXACTLY:
++              while (*opnd == *scan) {
++                      count++;
++                      scan++;
++              }
++              break;
++      case ANYOF:
++              while (*scan != '\0' && strchr(opnd, *scan) != NULL) {
++                      count++;
++                      scan++;
++              }
++              break;
++      case ANYBUT:
++              while (*scan != '\0' && strchr(opnd, *scan) == NULL) {
++                      count++;
++                      scan++;
++              }
++              break;
++      default:                /* Oh dear.  Called inappropriately. */
++              printk("<3>Regexp: internal foulup\n");
++              count = 0;      /* Best compromise. */
++              break;
++      }
++      reginput = scan;
++
++      return(count);
++}
++
++/*
++ - regnext - dig the "next" pointer out of a node
++ */
++static char* 
++regnext(char *p)
++{
++      register int offset;
++
++      if (p == &regdummy)
++              return(NULL);
++
++      offset = NEXT(p);
++      if (offset == 0)
++              return(NULL);
++
++      if (OP(p) == BACK)
++              return(p-offset);
++      else
++              return(p+offset);
++}
++
++#ifdef DEBUG
++
++STATIC char *regprop();
++
++/*
++ - regdump - dump a regexp onto stdout in vaguely comprehensible form
++ */
++void
++regdump(regexp *r)
++{
++      register char *s;
++      register char op = EXACTLY;     /* Arbitrary non-END op. */
++      register char *next;
++      /* extern char *strchr(); */
++
++
++      s = r->program + 1;
++      while (op != END) {     /* While that wasn't END last time... */
++              op = OP(s);
++              printf("%2d%s", s-r->program, regprop(s));      /* Where, what. */
++              next = regnext(s);
++              if (next == NULL)               /* Next ptr. */
++                      printf("(0)");
++              else 
++                      printf("(%d)", (s-r->program)+(next-s));
++              s += 3;
++              if (op == ANYOF || op == ANYBUT || op == EXACTLY) {
++                      /* Literal string, where present. */
++                      while (*s != '\0') {
++                              putchar(*s);
++                              s++;
++                      }
++                      s++;
++              }
++              putchar('\n');
++      }
++
++      /* Header fields of interest. */
++      if (r->regstart != '\0')
++              printf("start `%c' ", r->regstart);
++      if (r->reganch)
++              printf("anchored ");
++      if (r->regmust != NULL)
++              printf("must have \"%s\"", r->regmust);
++      printf("\n");
++}
++
++/*
++ - regprop - printable representation of opcode
++ */
++static char *
++regprop(char *op)
++{
++#define BUFLEN 50
++      register char *p;
++      static char buf[BUFLEN];
++
++      strcpy(buf, ":");
++
++      switch (OP(op)) {
++      case BOL:
++              p = "BOL";
++              break;
++      case EOL:
++              p = "EOL";
++              break;
++      case ANY:
++              p = "ANY";
++              break;
++      case ANYOF:
++              p = "ANYOF";
++              break;
++      case ANYBUT:
++              p = "ANYBUT";
++              break;
++      case BRANCH:
++              p = "BRANCH";
++              break;
++      case EXACTLY:
++              p = "EXACTLY";
++              break;
++      case NOTHING:
++              p = "NOTHING";
++              break;
++      case BACK:
++              p = "BACK";
++              break;
++      case END:
++              p = "END";
++              break;
++      case OPEN+1:
++      case OPEN+2:
++      case OPEN+3:
++      case OPEN+4:
++      case OPEN+5:
++      case OPEN+6:
++      case OPEN+7:
++      case OPEN+8:
++      case OPEN+9:
++              snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "OPEN%d", OP(op)-OPEN);
++              p = NULL;
++              break;
++      case CLOSE+1:
++      case CLOSE+2:
++      case CLOSE+3:
++      case CLOSE+4:
++      case CLOSE+5:
++      case CLOSE+6:
++      case CLOSE+7:
++      case CLOSE+8:
++      case CLOSE+9:
++              snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "CLOSE%d", OP(op)-CLOSE);
++              p = NULL;
++              break;
++      case STAR:
++              p = "STAR";
++              break;
++      case PLUS:
++              p = "PLUS";
++              break;
++      default:
++              printk("<3>Regexp: corrupted opcode\n");
++              break;
++      }
++      if (p != NULL)
++              strncat(buf, p, BUFLEN-strlen(buf));
++      return(buf);
++}
++#endif
++
++
+diff -Nurp linux-2.4.31/net/ipv4/netfilter/regexp/regexp.h linux-2.4.31-layer7/net/ipv4/netfilter/regexp/regexp.h
+--- linux-2.4.31/net/ipv4/netfilter/regexp/regexp.h    1969-12-31 18:00:00.000000000 -0600
++++ linux-2.4.31-layer7/net/ipv4/netfilter/regexp/regexp.h     2005-09-01 00:17:13.000000000 -0500
+@@ -0,0 +1,40 @@
++/*
++ * Definitions etc. for regexp(3) routines.
++ *
++ * Caveat:  this is V8 regexp(3) [actually, a reimplementation thereof],
++ * not the System V one.
++ */
++
++#ifndef REGEXP_H
++#define REGEXP_H
++
++/* 
++http://www.opensource.apple.com/darwinsource/10.3/expect-1/expect/expect.h , 
++which contains a version of this library, says:
++
++ *
++ * NSUBEXP must be at least 10, and no greater than 117 or the parser
++ * will not work properly.
++ *
++
++However, it looks rather like this library is limited to 10.  If you think
++otherwise, let us know.
++*/
++
++#define NSUBEXP  10
++typedef struct regexp {
++      char *startp[NSUBEXP];
++      char *endp[NSUBEXP];
++      char regstart;          /* Internal use only. */
++      char reganch;           /* Internal use only. */
++      char *regmust;          /* Internal use only. */
++      int regmlen;            /* Internal use only. */
++      char program[1];        /* Unwarranted chumminess with compiler. */
++} regexp;
++
++regexp * regcomp(char *exp, int *patternsize);
++int regexec(regexp *prog, char *string);
++void regsub(regexp *prog, char *source, char *dest);
++void regerror(char *s);
++
++#endif
+diff -Nurp linux-2.4.31/net/ipv4/netfilter/regexp/regmagic.h linux-2.4.31-layer7/net/ipv4/netfilter/regexp/regmagic.h
+--- linux-2.4.31/net/ipv4/netfilter/regexp/regmagic.h  1969-12-31 18:00:00.000000000 -0600
++++ linux-2.4.31-layer7/net/ipv4/netfilter/regexp/regmagic.h   2005-09-01 00:17:13.000000000 -0500
+@@ -0,0 +1,5 @@
++/*
++ * The first byte of the regexp internal "program" is actually this magic
++ * number; the start node begins in the second byte.
++ */
++#define       MAGIC   0234
+diff -Nurp linux-2.4.31/net/ipv4/netfilter/regexp/regsub.c linux-2.4.31-layer7/net/ipv4/netfilter/regexp/regsub.c
+--- linux-2.4.31/net/ipv4/netfilter/regexp/regsub.c    1969-12-31 18:00:00.000000000 -0600
++++ linux-2.4.31-layer7/net/ipv4/netfilter/regexp/regsub.c     2005-09-01 00:17:13.000000000 -0500
+@@ -0,0 +1,95 @@
++/*
++ * regsub
++ * @(#)regsub.c       1.3 of 2 April 86
++ *
++ *    Copyright (c) 1986 by University of Toronto.
++ *    Written by Henry Spencer.  Not derived from licensed software.
++ *
++ *    Permission is granted to anyone to use this software for any
++ *    purpose on any computer system, and to redistribute it freely,
++ *    subject to the following restrictions:
++ *
++ *    1. The author is not responsible for the consequences of use of
++ *            this software, no matter how awful, even if they arise
++ *            from defects in it.
++ *
++ *    2. The origin of this software must not be misrepresented, either
++ *            by explicit claim or by omission.
++ *
++ *    3. Altered versions must be plainly marked as such, and must not
++ *            be misrepresented as being the original software.
++ *
++ *
++ * This code was modified by Ethan Sommer to work within the kernel
++ * (it now uses kmalloc etc..)
++ *
++ */
++#include "regexp.h"
++#include "regmagic.h"
++#include <linux/string.h>
++
++
++#ifndef CHARBITS
++#define       UCHARAT(p)      ((int)*(unsigned char *)(p))
++#else
++#define       UCHARAT(p)      ((int)*(p)&CHARBITS)
++#endif
++
++#if 0
++//void regerror(char * s)
++//{
++//        printk("regexp(3): %s", s);
++//        /* NOTREACHED */
++//}
++#endif
++
++/*
++ - regsub - perform substitutions after a regexp match
++ */
++void
++regsub(regexp * prog, char * source, char * dest)
++{
++      register char *src;
++      register char *dst;
++      register char c;
++      register int no;
++      register int len;
++      
++      /* Not necessary and gcc doesn't like it -MLS */
++      /*extern char *strncpy();*/
++
++      if (prog == NULL || source == NULL || dest == NULL) {
++              regerror("NULL parm to regsub");
++              return;
++      }
++      if (UCHARAT(prog->program) != MAGIC) {
++              regerror("damaged regexp fed to regsub");
++              return;
++      }
++
++      src = source;
++      dst = dest;
++      while ((c = *src++) != '\0') {
++              if (c == '&')
++                      no = 0;
++              else if (c == '\\' && '0' <= *src && *src <= '9')
++                      no = *src++ - '0';
++              else
++                      no = -1;
++
++              if (no < 0) {   /* Ordinary character. */
++                      if (c == '\\' && (*src == '\\' || *src == '&'))
++                              c = *src++;
++                      *dst++ = c;
++              } else if (prog->startp[no] != NULL && prog->endp[no] != NULL) {
++                      len = prog->endp[no] - prog->startp[no];
++                      (void) strncpy(dst, prog->startp[no], len);
++                      dst += len;
++                      if (len != 0 && *(dst-1) == '\0') {     /* strncpy hit NUL. */
++                              regerror("damaged match string");
++                              return;
++                      }
++              }
++      }
++      *dst++ = '\0';
++}
diff --git a/src/patches/kudzu-0.99.50-pam.patch b/src/patches/kudzu-0.99.50-pam.patch
new file mode 100644 (file)
index 0000000..0d97961
--- /dev/null
@@ -0,0 +1,37 @@
+diff -ruN kudzu-0.99.50.old/updfstab.c kudzu-0.99.50/updfstab.c
+--- kudzu-0.99.50.old/updfstab.c       Mon Apr  8 05:37:01 2002
++++ kudzu-0.99.50/updfstab.c   Tue Dec 16 15:22:26 2003
+@@ -688,33 +688,6 @@
+           return 1;
+       }
+-      /* do this before moving onto /etc/fstab; this keeps magicdev
+-         from noticing the change before the permissions are correct */
+-
+-      pid = fork();
+-      if (!pid) {
+-          execl("/sbin/pam_console_apply", "/sbin/pam_console_apply",
+-                "-f", revokeFileName, "-r", NULL);
+-          printf("failed\n");
+-          exit(-1);
+-      }
+-      waitpid(pid, &status, 0);
+-
+-      if (!WIFEXITED(status) || WEXITSTATUS(status))
+-          fprintf(stderr, _("/sbin/pam_console_apply -r failed\n"));
+-
+-      pid = fork();
+-      if (!pid) {
+-          execl("/sbin/pam_console_apply", "/sbin/pam_console_apply",
+-                "-f", outputFileName, NULL);
+-          printf("failed\n");
+-          exit(-1);
+-      }
+-
+-      waitpid(pid, &status, 0);
+-      if (!WIFEXITED(status) || WEXITSTATUS(status))
+-          fprintf(stderr, _("/sbin/pam_console_apply failed\n"));
+-
+       if (rename(outputFileName, fileName)) {
+           fprintf(stderr, _("failed to rename %s to %s: %s\n"),
+                   outputFileName, fileName, strerror(errno));
diff --git a/src/patches/kudzu-0.99.50-updfstab.conf.patch b/src/patches/kudzu-0.99.50-updfstab.conf.patch
new file mode 100644 (file)
index 0000000..da912ec
--- /dev/null
@@ -0,0 +1,24 @@
+diff -ruN kudzu-0.99.50.old/updfstab.conf.default kudzu-0.99.50/updfstab.conf.default
+--- kudzu-0.99.50.old/updfstab.conf.default    2002-01-16 04:32:17.000000000 +0100
++++ kudzu-0.99.50/updfstab.conf.default        2004-01-04 13:04:18.000000000 +0100
+@@ -1,4 +1,4 @@
+-symlink           false
++symlink true
+ partition   0
+ device cdrom {
+@@ -73,9 +73,11 @@
+     match   hd ImageMate
+ }
+-device floppy {
+-    match   hd USB-FDU
+-    match   floppy "floppy drive"
++device floppy {
++    match   hd USB-FDU
++    match   floppy USB-FDU
++    match   floppy FD
++    match   floppy "floppy drive"
+ }
+ device diskonkey {
diff --git a/src/patches/libcap-1.10-shared.patch b/src/patches/libcap-1.10-shared.patch
new file mode 100644 (file)
index 0000000..9272c37
--- /dev/null
@@ -0,0 +1,18 @@
+diff -ruN libcap-1.10.old/libcap/Makefile libcap-1.10/libcap/Makefile
+--- libcap-1.10.old/libcap/Makefile    1999-04-18 00:16:31.000000000 +0200
++++ libcap-1.10/libcap/Makefile        2004-01-14 10:47:20.000000000 +0100
+@@ -56,12 +56,12 @@
+ #     @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define CAP_\([^ \t]*\)[ \t]*\([^ \t]*\)/  \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < /usr/include/linux/capability.h | fgrep -v 0x > cap_names.sed
+ $(MINLIBNAME): $(OBJS)
+-      $(LD) -soname $(MAJLIBNAME) -x -shared -o $@ $(OBJS)
++      $(CC) -Wl,-soname,$(MAJLIBNAME) -Wl,-x -shared -o $@ $(OBJS)
+       ln -sf $(MINLIBNAME) $(MAJLIBNAME)
+       ln -sf $(MAJLIBNAME) $(LIBNAME)
+ %.o: %.c $(INCLS)
+-      $(CC) $(CFLAGS) -c $< -o $@
++      $(CC) $(CFLAGS) -fpic -c $< -o $@
+ install: all
+       mkdir -p -m 0755 $(INCDIR)/sys
diff --git a/src/patches/libcap-1.10-syscall.patch b/src/patches/libcap-1.10-syscall.patch
new file mode 100644 (file)
index 0000000..6053185
--- /dev/null
@@ -0,0 +1,43 @@
+--- libcap-1.10.old/libcap/cap_sys.c   2003-08-24 19:03:35.524759616 -0700
++++ libcap-1.10/libcap/cap_sys.c       2003-08-24 19:03:48.406801248 -0700
+@@ -10,7 +10,7 @@
+ #include "libcap.h"
+ #define __LIBRARY__
+ #include <linux/unistd.h>
+-
++/*
+ _syscall2(int, capget,
+         cap_user_header_t, header,
+         cap_user_data_t, data)
+@@ -18,7 +18,7 @@
+ _syscall2(int, capset,
+         cap_user_header_t, header,
+         const cap_user_data_t, data)
+-
++*/
+ /*
+  * $Log: libcap-1.10-syscall.patch,v $
+  * Revision 1.1  2004/01/14 13:11:39  riddles
+  * Build shared libcap
+  *
+  * Revision 1.2  2003/08/29 06:28:38  cretin
+  * Only add -fPIC for libcap.so objects
+  *
+  * Revision 1.1  2003/08/27 06:10:53  cretin
+  * Added -fPIC for prelink to work, and fixed compile error
+  *
+  * Revision 1.1.1.1  1999/04/17 22:16:31  morgan
+--- libcap-1.10.old/Make.Rules Mon May 21 16:22:08 2001
++++ libcap-1.10/Make.Rules     Mon May 21 16:22:32 2001
+@@ -44,10 +44,10 @@
+ CC=gcc
+ COPTFLAGS=-O2
+ DEBUG=-g #-DDEBUG
+-WARNINGS=-ansi -D_POSIX_SOURCE -Wall -Wwrite-strings \
++WARNINGS=-D_POSIX_SOURCE -Wall -Wwrite-strings \
+         -Wpointer-arith -Wcast-qual -Wcast-align \
+         -Wtraditional -Wstrict-prototypes -Wmissing-prototypes \
+-        -Wnested-externs -Winline -Wshadow -pedantic
++        -Wnested-externs -Winline -Wshadow
+ LD=ld
+ LDFLAGS=-s #-g
diff --git a/src/patches/libpcap-0.8.3-ppp.patch b/src/patches/libpcap-0.8.3-ppp.patch
new file mode 100644 (file)
index 0000000..923b71c
--- /dev/null
@@ -0,0 +1,10 @@
+--- gencode.c.old      2004-06-21 19:43:24.611308762 +0100
++++ gencode.c  2004-06-21 19:43:34.851140716 +0100
+@@ -5004,6 +5004,7 @@
+        */
+       switch (linktype) {
+       case DLT_SLIP:
++      case DLT_PPP:
+               b0 = gen_relation(BPF_JEQ,
+                         gen_load(Q_LINK, gen_loadi(0), 1),
+                         gen_loadi(0),
diff --git a/src/patches/libpcap-0.8.3-shared.patch b/src/patches/libpcap-0.8.3-shared.patch
new file mode 100644 (file)
index 0000000..d99b0af
--- /dev/null
@@ -0,0 +1,51 @@
+diff -ruN libpcap-0.8.3.old/Makefile.in libpcap-0.8.3/Makefile.in
+--- libpcap-0.8.3.old/Makefile.in      2001-01-18 05:05:12.000000000 +0100
++++ libpcap-0.8.3/Makefile.in  2004-01-25 14:40:47.000000000 +0100
+@@ -22,6 +22,10 @@
+ #
+ # Various configurable paths (remember to edit Makefile.in, not Makefile)
+ #
++MAJOR=0
++MINOR=8
++SUBMINOR=3
++VERSION = $(MAJOR).$(MINOR).$(SUBMINOR)
+ # Top level hierarchy
+ prefix = @prefix@
+@@ -47,7 +51,7 @@
+ DEFS = @DEFS@
+ # Standard CFLAGS
+-CFLAGS = $(CCOPT) $(INCLS) $(DEFS)
++CFLAGS = $(CCOPT) $(INCLS) $(DEFS) -fPIC -DPIC
+ INSTALL = @INSTALL@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -91,9 +95,14 @@
+ TAGFILES = \
+       $(SRC) $(HDR) $(TAGHDR)
+-CLEANFILES = $(OBJ) libpcap.a $(GENSRC) $(GENHDR) lex.yy.c
+-all: libpcap.a
++
++CLEANFILES = $(OBJ) libpcap.a $(GENSRC) $(GENHDR) lex.yy.c libpcap.so.$(VERSION)
++
++all: libpcap.a libpcap.so.$(VERSION)
++
++libpcap.so.$(VERSION):
++      gcc -shared -Wl,-soname -Wl,libpcap.so.$(VERSION) -o libpcap.so.$(VERSION) $(OBJ) -lc
+ libpcap.a: $(OBJ)
+       @rm -f $@
+@@ -139,6 +148,10 @@
+       [ -d $(DESTDIR)$(libdir) ] || \
+           (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
+       $(INSTALL_DATA) libpcap.a $(DESTDIR)$(libdir)/libpcap.a
++      $(INSTALL_DATA) libpcap.so.$(VERSION)  $(DESTDIR)$(libdir)/libpcap.so.$(VERSION)
++      ln -sf libpcap.so.$(VERSION) $(DESTDIR)$(libdir)/libpcap.so
++      ln -sf libpcap.so.$(VERSION) $(DESTDIR)$(libdir)/libpcap.so.$(MAJOR)
++      ln -sf libpcap.so.$(VERSION) $(DESTDIR)$(libdir)/libpcap.so.$(MAJOR).$(MINOR)
+       $(RANLIB) $(DESTDIR)$(libdir)/libpcap.a
+       [ -d $(DESTDIR)$(includedir) ] || \
+           (mkdir -p $(DESTDIR)$(includedir); chmod 755 $(DESTDIR)$(includedir))
diff --git a/src/patches/libpng-1.2.8-link_to_proper_libs-1.patch b/src/patches/libpng-1.2.8-link_to_proper_libs-1.patch
new file mode 100644 (file)
index 0000000..c798b08
--- /dev/null
@@ -0,0 +1,58 @@
+Submitted By: Bruce Dubbs <bdubbs@linuxfromscratch.org>
+Date: 2004-08-05
+Initial Package Version: 1.2.6
+Origin: http://blfs-bugs.linuxfromscratch.org/show_bug.cgi?id=644
+Description: libpng is not linked against libz and libm. This causes
+             problems for packages that try to link against libpng
+             without including "-lz -lm" in the linker flags.
+
+$LastChangedBy: igor $
+$Date: 2005/02/27 15:23:07 $
+
+--- libpng-1.2.8/scripts/libpng.pc.in.orig     2005-01-04 14:06:54.182100728 +0000
++++ libpng-1.2.8/scripts/libpng.pc.in  2005-01-04 14:07:19.108311368 +0000
+@@ -7,5 +7,5 @@
+ Name: libpng12
+ Description: Loads and saves PNG files
+ Version: 1.2.8
+-Libs: -L${libdir} -lpng12 -lz -lm
++Libs: -L${libdir} -lpng12
+ Cflags: -I${includedir}/libpng12
+--- libpng-1.2.8/scripts/makefile.linux.orig   2005-01-04 14:07:37.875458328 +0000
++++ libpng-1.2.8/scripts/makefile.linux        2005-01-04 14:11:03.918135080 +0000
+@@ -34,8 +34,9 @@
+ CFLAGS=-I$(ZLIBINC) -Wall -O3 -funroll-loops \
+       $(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5
+-LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng12 -lz -lm
+-LDFLAGS_A=-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) libpng.a -lz -lm
++LIBS=-lz -lm
++LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng12
++LDFLAGS_A=-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) libpng.a $(LIBS)
+ RANLIB=ranlib
+ #RANLIB=echo
+@@ -86,7 +87,7 @@
+       echo I_opts=\"-I$(INCPATH)/$(LIBNAME)\"; \
+       echo L_opts=\"-L$(LIBPATH)\"; \
+       echo R_opts=\"-Wl,-rpath,$(LIBPATH)\"; \
+-      echo libs=\"-lpng12 -lz -lm\"; \
++      echo libs=\"-lpng12\"; \
+       cat scripts/libpng-config-body.in ) > libpng-config
+       chmod +x libpng-config
+@@ -99,12 +100,12 @@
+ $(LIBNAME).so.$(PNGVER): $(OBJSDLL)
+       $(CC) -shared -Wl,-soname,$(LIBNAME).so.$(PNGMAJ) \
+       -o $(LIBNAME).so.$(PNGVER) \
+-      $(OBJSDLL)
++      $(OBJSDLL) $(LIBS)
+ libpng.so.3.$(PNGMIN): $(OBJSDLL)
+       $(CC) -shared -Wl,-soname,libpng.so.3 \
+       -o libpng.so.3.$(PNGMIN) \
+-      $(OBJSDLL)
++      $(OBJSDLL) $(LIBS)
+ pngtest: pngtest.o $(LIBNAME).so
+       $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
diff --git a/src/patches/libsafe-alpha.diff b/src/patches/libsafe-alpha.diff
new file mode 100644 (file)
index 0000000..dfeb9f2
--- /dev/null
@@ -0,0 +1,232 @@
+--- libsafe-2.0-16-orig/src/intercept.c        2003-03-15 16:02:12.000000000 +0100
++++ libsafe-2.0-16/src/intercept.c     2003-03-15 16:12:22.000000000 +0100
+@@ -165,7 +165,8 @@
+  */
+ char *strcpy(char *dest, const char *src)
+ {
+-    size_t max_size, len;
++    uint max_size;
++    size_t len;
+     if (!real_memcpy)
+       real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
+@@ -196,7 +197,8 @@
+ char *strncpy(char *dest, const char *src, size_t n)
+ {
+-    size_t max_size, len;
++    uint max_size;
++    size_t len;
+     if (!real_strncpy)
+       real_strncpy = (strncpy_t) getLibraryFunction("strncpy");
+@@ -219,7 +221,8 @@
+ char *stpcpy(char *dest, const char *src)
+ {
+-    size_t max_size, len;
++    uint max_size;
++    size_t len;
+     if (!real_memcpy)
+       real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
+@@ -251,7 +254,8 @@
+ #ifndef MISSING_WCSNLEN
+ wchar_t *wcscpy(wchar_t *dest, const wchar_t *src)
+ {
+-    size_t max_bytes, max_wchars, len;
++    size_t max_wchars, len;
++    uint max_bytes;
+     if (!real_wcscpy)
+       real_wcscpy = (wcscpy_t) getLibraryFunction("wcscpy");
+@@ -291,7 +295,8 @@
+ wchar_t *wcpcpy(wchar_t *dest, const wchar_t *src)
+ {
+-    size_t max_bytes, max_wchars, len;
++    size_t max_wchars, len;
++    uint max_bytes;
+     if (!real_wcpcpy)
+       real_wcpcpy = (wcpcpy_t) getLibraryFunction("wcpcpy");
+@@ -333,9 +338,15 @@
+ /*
+  * This is needed!  See the strcpy() for the reason. -ab.
+  */
+-void *memcpy(void *dest, const void *src, size_t n)
++void *memcpy(void *dest, const void *src, size_t hack)
+ {
+-    size_t max_size;
++    /*
++     * a size_t IS an unsigned long everywhere, though it sometimes
++     * doesn't state so, making printf misinterpret it.
++     */
++    unsigned long n = hack;
++    uint max_size;
++
+     if (!real_memcpy)
+       real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
+@@ -344,11 +355,11 @@
+       return real_memcpy(dest, src, n);
+     if ((max_size = _libsafe_stackVariableP(dest)) == 0) {
+-      LOG(5, "memcpy(<heap var> , <src>, %d)\n", n);
++      LOG(5, "memcpy(<heap var> , <src>, %ld)\n", n);
+       return real_memcpy(dest, src, n);
+     }
+-    LOG(4, "memcpy(<stack var> , <src>, %d) stack limit=%d)\n", n, max_size);
++    LOG(4, "memcpy(<stack var> , <src>, %ld) stack limit=%d)\n", n, max_size);
+     if (n > max_size)
+       _libsafe_die("Overflow caused by memcpy()");
+     return real_memcpy(dest, src, n);
+@@ -357,7 +368,7 @@
+ char *strcat(char *dest, const char *src)
+ {
+-    size_t max_size;
++    uint max_size;
+     uint dest_len, src_len;
+     if (!real_memcpy)
+@@ -388,7 +399,7 @@
+ char *strncat(char *dest, const char *src, size_t n)
+ {
+-    size_t max_size;
++    uint max_size;
+     uint dest_len, src_len;
+     if (!real_strncat)
+@@ -1008,12 +1019,31 @@
+           if (is_printf_convspec[(int)*p]) {
+               caddr_t addr;
+               c++;
++#if 0 
++              /*
++               * cannot add va_list (ap here) with a number on alpha.
++               * this is faster than the other method, and might be
++               * a good idea to enable this on !alpha arch.
++               */
+               if (pnum) {
+                   addr = *((caddr_t*)(ap + (atoi(pnum)-1)*sizeof(char*)));
+               }
+               else {
+                   addr = *((caddr_t*)(ap + c*sizeof(char*)));
+               }
++#else
++              {
++                  va_list apc;
++                  uint nb = c + 1;
++
++                  va_copy(apc, ap);
++                  if (pnum)
++                      nb = atoi(pnum);
++                  addr = NULL;
++                  while (nb--)
++                      addr = va_arg(apc, caddr_t);
++              }
++#endif
+               if (*p == 'n') {
+                   if (_libsafe_raVariableP((void *)(addr))) {
+                       _libsafe_die("printf(\"%%n\")");
+@@ -1172,12 +1202,32 @@
+           if (is_printf_convspec[(int)*p]) {
+               caddr_t addr;
+               c++;
++#if 0
++              /*
++               * cannot add va_list (ap here) with a number on alpha.
++               * this is faster than the other method, and might be
++               * a good idea to enable this on !alpha arch.
++               */
++
+               if (pnum) {
+                   addr = *((caddr_t*)(ap + (atoi(pnum)-1)*sizeof(char*)));
+               }
+               else {
+                   addr = *((caddr_t*)(ap + c*sizeof(char*)));
+               }
++#else
++              {
++                  va_list apc;
++                  uint nb = c + 1;
++
++                  va_copy(apc, ap);
++                  if (pnum)
++                      nb = atoi(pnum);
++                  addr = NULL;
++                  while (nb--)
++                    addr = va_arg(apc, caddr_t);
++              }
++#endif
+               if (*p == 'n') {
+                   if (_libsafe_raVariableP((void *)(addr))) {
+                       _libsafe_die("printf(\"%%n\")");
+@@ -1194,7 +1244,7 @@
+ int sprintf(char *str, const char *format, ...)
+ {
+-    size_t max_size;
++    uint max_size;
+     va_list ap;
+     int res;
+@@ -1242,7 +1292,7 @@
+ int snprintf(char *str, size_t size, const char *format, ...)
+ {
+-    size_t max_size;
++    uint max_size;
+     va_list ap;
+     int res;
+@@ -1288,7 +1338,7 @@
+ int vsprintf(char *str, const char *format, va_list ap)
+ {
+-    size_t max_size;
++    uint max_size;
+     int res;
+     if (!real_vsprintf)
+@@ -1325,7 +1375,7 @@
+ int vsnprintf(char *str, size_t size, const char *format, va_list ap)
+ {
+-    size_t max_size;
++    uint max_size;
+     int res;
+     if (!real_vsnprintf)
+@@ -1360,7 +1410,7 @@
+ char *getwd(char *buf)
+ {
+-    size_t max_size;
++    uint max_size;
+     char *res;
+     if (!real_getwd)
+@@ -1384,7 +1434,8 @@
+ char *gets(char *s)
+ {
+-    size_t max_size, len;
++    uint max_size;
++    size_t len;
+     if (!real_gets)
+       real_gets = (gets_t) getLibraryFunction("gets");
+@@ -1409,7 +1460,8 @@
+ char *realpath(char *path, char resolved_path[])
+ {
+-    size_t max_size, len;
++    uint max_size;
++    size_t len;
+     char *res;
+     char buf[MAXPATHLEN + 1];
diff --git a/src/patches/libsafe-functioncaching.diff b/src/patches/libsafe-functioncaching.diff
new file mode 100644 (file)
index 0000000..db003a4
--- /dev/null
@@ -0,0 +1,258 @@
+From: Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de>
+Subject: Bug#129345: patch to prevent a loop between libdl and libsafe causing libdl to crash
+To: 129345@bugs.debian.org
+Date: 01 Sep 2002 23:54:35 +0200
+Reply-To: Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de>,
+       129345@bugs.debian.org
+Resent-From: Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de>
+
+
+-------
+[D. Coe edited this patch slightly -- moved an unrelated change into the
+Makefile itself [it changed the debugging comments only], and corrected a 
+spelling error and reworded the comments.  The original patch is in the 
+bug tracking system, if you want to see it as submitted by Goswin.]
+-------
+-------
+D. Coe subsequently modified the patch further, because in some cases
+the initializations did not occur (e.g. when IO_vfscanf or memcpy was
+called from ps or top (likely one of the libraries they use).  maybe
+they do something that disables libsafe's library globals initialization?
+
+
+In any case, I've adopted both strategise in this new patch; the addresses
+are preloaded as Goswin had coded, but they are also individually checked
+each time needed (as was the case before Goswin's patch), and are initialized
+at that point if necessary.  Hopefully this will let ps and top work
+and also continue to work around the libdl problem.
+-------
+
+Hi,
+
+if libsafe is invoked from inside libdl (or only inside dlerror()?)
+and a real_XXX function is not yet looked up it will reenter
+libdl. That causes memory corruption resulting in a read from 0x0 and
+thus segfault.
+
+The patch below makes libsafe cache all needed symbols once upon
+init. That not only causes less lookups than before but should prevent
+fatal loops. Failures of the initial lookups might not be reported
+correctly but terminate in some odd way if the functions needed to
+report are not yet looked up.
+
+MfG
+        Goswin
+
+----------------------------------------------------------------------
+diff -Nurd libsafe-2.0-16/src/intercept.c libsafe-2.0-16-mrvn/src/intercept.c
+--- libsafe-2.0-16/src/intercept.c     2002-05-31 19:37:34.000000000 +0200
++++ libsafe-2.0-16-mrvn/src/intercept.c        2002-09-01 23:44:55.000000000 +0200
+@@ -128,14 +128,29 @@
+ }
+-/* Starting with version 2.0, we keep a single global copy of the pointer to
+- * the real memcpy() function.  This allows us to call
+- * getLibraryFunction("memcpy") just once instead of multiple times, since
+- * memcpy() is needed in four different functions below.
++/* Starting with Debian version 2.0-16-2, we keep a global copy of the pointer
++ * to each real functions.  Otherwise a getLibraryFunction might
++ * be triggered from inside dlsym() and cause memory corruption reulting in a
++ * segfault.
+  */
+-static memcpy_t real_memcpy = NULL;
+-
+-
++static memcpy_t      real_memcpy = NULL;
++static _IO_vfscanf_t real_IO_vfscanf = NULL;
++static vfprintf_t    real_vfprintf = NULL;
++static vsnprintf_t   real_vsnprintf = NULL;
++static vsprintf_t    real_vsprintf = NULL;
++static gets_t        real_gets = NULL;
++static getwd_t       real_getwd = NULL;
++static realpath_t    real_realpath = NULL;
++static stpcpy_t      real_stpcpy = NULL;
++static strcat_t      real_strcat = NULL;
++static strcpy_t      real_strcpy = NULL;
++static strncat_t     real_strncat = NULL;
++static strncpy_t     real_strncpy = NULL;
++static wcscpy_t      real_wcscpy = NULL;
++static wcpcpy_t      real_wcpcpy = NULL;
++#ifndef MISSING_WCSNLEN
++static wcscat_t      real_wcscat = NULL;
++#endif
+ /*
+  * -------------- system library implementations -------------------
+  * Here is the story: if a C source file includes <string.h> and is
+@@ -150,7 +165,6 @@
+  */
+ char *strcpy(char *dest, const char *src)
+ {
+-    static strcpy_t real_strcpy = NULL;
+     size_t max_size, len;
+     if (!real_memcpy)
+@@ -182,7 +196,6 @@
+ char *strncpy(char *dest, const char *src, size_t n)
+ {
+-    static strncpy_t real_strncpy = NULL;
+     size_t max_size, len;
+     if (!real_strncpy)
+@@ -206,7 +219,6 @@
+ char *stpcpy(char *dest, const char *src)
+ {
+-    static stpcpy_t real_stpcpy = NULL;
+     size_t max_size, len;
+     if (!real_memcpy)
+@@ -239,7 +251,6 @@
+ #ifndef MISSING_WCSNLEN
+ wchar_t *wcscpy(wchar_t *dest, const wchar_t *src)
+ {
+-    static wcscpy_t real_wcscpy = NULL;
+     size_t max_bytes, max_wchars, len;
+     if (!real_wcscpy)
+@@ -280,7 +291,6 @@
+ wchar_t *wcpcpy(wchar_t *dest, const wchar_t *src)
+ {
+-    static wcpcpy_t real_wcpcpy = NULL;
+     size_t max_bytes, max_wchars, len;
+     if (!real_wcpcpy)
+@@ -347,7 +357,6 @@
+ char *strcat(char *dest, const char *src)
+ {
+-    static strcat_t real_strcat = NULL;
+     size_t max_size;
+     uint dest_len, src_len;
+@@ -379,7 +388,6 @@
+ char *strncat(char *dest, const char *src, size_t n)
+ {
+-    static strncat_t real_strncat = NULL;
+     size_t max_size;
+     uint dest_len, src_len;
+@@ -408,7 +416,6 @@
+ #ifndef MISSING_WCSNLEN
+ wchar_t *wcscat(wchar_t *dest, const wchar_t *src)
+ {
+-    static wcscat_t real_wcscat = NULL;
+     size_t max_bytes;
+     uint dest_len, src_len;
+@@ -861,7 +868,6 @@
+  */
+ int vfprintf(FILE *fp, const char *format, va_list ap)
+ {
+-    static vfprintf_t real_vfprintf = NULL;
+     int res;
+     char *p, *pnum;
+     int c = -1;               /* Next var arg to be used */
+@@ -1026,7 +1032,6 @@
+  */
+ int _IO_vfprintf(FILE *fp, const char *format, va_list ap)
+ {
+-    static vfprintf_t real_vfprintf = NULL;
+     int res;
+     char *p, *pnum;
+     int c = -1;               /* Next var arg to be used */
+@@ -1189,8 +1194,6 @@
+ int sprintf(char *str, const char *format, ...)
+ {
+-    static vsprintf_t real_vsprintf = NULL;
+-    static vsnprintf_t real_vsnprintf = NULL;
+     size_t max_size;
+     va_list ap;
+     int res;
+@@ -1239,7 +1242,6 @@
+ int snprintf(char *str, size_t size, const char *format, ...)
+ {
+-    static vsnprintf_t real_vsnprintf = NULL;
+     size_t max_size;
+     va_list ap;
+     int res;
+@@ -1286,8 +1288,6 @@
+ int vsprintf(char *str, const char *format, va_list ap)
+ {
+-    static vsprintf_t real_vsprintf = NULL;
+-    static vsnprintf_t real_vsnprintf = NULL;
+     size_t max_size;
+     int res;
+@@ -1325,7 +1325,6 @@
+ int vsnprintf(char *str, size_t size, const char *format, va_list ap)
+ {
+-    static vsnprintf_t real_vsnprintf = NULL;
+     size_t max_size;
+     int res;
+@@ -1361,7 +1360,6 @@
+ char *getwd(char *buf)
+ {
+-    static getwd_t real_getwd = NULL;
+     size_t max_size;
+     char *res;
+@@ -1386,7 +1384,6 @@
+ char *gets(char *s)
+ {
+-    static gets_t real_gets = NULL;
+     size_t max_size, len;
+     if (!real_gets)
+@@ -1412,7 +1409,6 @@
+ char *realpath(char *path, char resolved_path[])
+ {
+-    static realpath_t real_realpath = NULL;
+     size_t max_size, len;
+     char *res;
+     char buf[MAXPATHLEN + 1];
+@@ -1445,7 +1441,6 @@
+ int _IO_vfscanf (_IO_FILE *s, const char *format, _IO_va_list argptr, int *errp)
+ {
+-    static _IO_vfscanf_t real_IO_vfscanf = NULL;
+     int res, save_count;
+     caddr_t ra_array[MAXLEVELS], fp_array[MAXLEVELS];
+@@ -1529,6 +1524,25 @@
+       
+       fclose(fp);
+     }
++
++    real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
++    real_IO_vfscanf = (_IO_vfscanf_t) getLibraryFunction("_IO_vfscanf");
++    real_vfprintf = (vfprintf_t) getLibraryFunction("vfprintf");
++    real_vsnprintf = (vsnprintf_t) getLibraryFunction("vsnprintf");
++    real_vsprintf = (vsprintf_t) getLibraryFunction("vsprintf");
++    real_gets = (gets_t) getLibraryFunction("gets");
++    real_getwd = (getwd_t) getLibraryFunction("getwd");
++    real_realpath = (realpath_t) getLibraryFunction("realpath");
++    real_stpcpy = (stpcpy_t) getLibraryFunction("stpcpy");
++    real_strcat = (strcat_t) getLibraryFunction("strcat");
++    real_strcpy = (strcpy_t) getLibraryFunction("strcpy");
++    real_strncat = (strncat_t) getLibraryFunction("strncat");
++    real_strncpy = (strncpy_t) getLibraryFunction("strncpy");
++    real_wcscpy = (wcscpy_t) getLibraryFunction("wcscpy");
++    real_wcpcpy = (wcpcpy_t) getLibraryFunction("wcpcpy");
++#ifndef MISSING_WCSNLEN
++    real_wcscat = (wcscat_t) getLibraryFunction("wcscat");
++#endif
+ }
diff --git a/src/patches/linux-2.4.23-olitec-isdn.patch b/src/patches/linux-2.4.23-olitec-isdn.patch
new file mode 100644 (file)
index 0000000..dfef64e
--- /dev/null
@@ -0,0 +1,60 @@
+*** old/pci_ids.h      Mon Aug 25 13:44:44 2003
+--- include/linux/pci_ids.h    Fri Oct 10 17:55:38 2003
+***************
+*** 862,865 ****
+--- 862,866 ----
+  #define PCI_DEVICE_ID_PLX_DJINN_ITOO 0x1151
+  #define PCI_DEVICE_ID_PLX_R753               0x1152
++ #define PCI_DEVICE_ID_PLX_R753_2     0x1187
+  #define PCI_DEVICE_ID_PLX_9050               0x9050
+  #define PCI_DEVICE_ID_PLX_9060               0x9060
+*** old/config.c       Mon Aug 25 13:44:42 2003
+--- drivers/isdn/hisax/config.c        Fri Oct 10 17:56:02 2003
+***************
+*** 2130,2133 ****
+--- 2130,2134 ----
+       {PCI_VENDOR_ID_PLX,      PCI_DEVICE_ID_PLX_R753,         PCI_ANY_ID, PCI_ANY_ID},
+       {PCI_VENDOR_ID_PLX,      PCI_DEVICE_ID_PLX_DJINN_ITOO,   PCI_ANY_ID, PCI_ANY_ID},
++      {PCI_VENDOR_ID_PLX,      PCI_DEVICE_ID_PLX_R753_2,       PCI_ANY_ID, PCI_ANY_ID},
+  #endif
+  #ifdef CONFIG_HISAX_QUADRO
+*** old/gazel.c        Fri Dec 21 18:41:54 2001
+--- drivers/isdn/hisax/gazel.c Fri Oct 10 18:04:52 2003
+***************
+*** 559,563 ****
+       }
+       seekcard = PCI_DEVICE_ID_PLX_R685;
+!      for (nbseek = 0; nbseek < 3; nbseek++) {
+               if ((dev_tel = pci_find_device(PCI_VENDOR_ID_PLX, seekcard, dev_tel))) {
+                       if (pci_enable_device(dev_tel))
+--- 559,563 ----
+       }
+       seekcard = PCI_DEVICE_ID_PLX_R685;
+!      for (nbseek = 0; nbseek < 4; nbseek++) {
+               if ((dev_tel = pci_find_device(PCI_VENDOR_ID_PLX, seekcard, dev_tel))) {
+                       if (pci_enable_device(dev_tel))
+***************
+*** 578,581 ****
+--- 578,584 ----
+                                       seekcard = PCI_DEVICE_ID_PLX_DJINN_ITOO;
+                                       break;
++                              case PCI_DEVICE_ID_PLX_DJINN_ITOO:
++                                      seekcard = PCI_DEVICE_ID_PLX_R753_2;
++                                      break;
+                       }
+               }
+***************
+*** 621,624 ****
+--- 624,635 ----
+                       cs->subtyp = R753;
+                       test_and_set_bit(HW_IPAC, &cs->HW_Flags);
++                      printk(KERN_INFO
++                          "Gazel: config irq:%d ipac:0x%X  cfg:0x%X\n",
++                      cs->irq, cs->hw.gazel.ipac, cs->hw.gazel.cfg_reg);
++                      break;
++              case PCI_DEVICE_ID_PLX_R753_2:
++                      printk(KERN_INFO "Gazel: Card PCI R753 0x1187 found\n");
++                      cs->subtyp = R753;
++                      test_and_set_bit(HW_IPAC, &cs->HW_Flags);
+                       printk(KERN_INFO
+                           "Gazel: config irq:%d ipac:0x%X  cfg:0x%X\n",
diff --git a/src/patches/linux-2.4.26-proc-stat.patch b/src/patches/linux-2.4.26-proc-stat.patch
new file mode 100644 (file)
index 0000000..0dec9f4
--- /dev/null
@@ -0,0 +1,269 @@
+diff -ur g/linux-2.4.26/drivers/block/ll_rw_blk.c h/linux-2.4.26/drivers/block/ll_rw_blk.c
+--- g/linux-2.4.26/drivers/block/ll_rw_blk.c   2004-04-14 14:05:29.000000000 +0100
++++ h/linux-2.4.26/drivers/block/ll_rw_blk.c   2004-06-07 19:36:15.000000000 +0100
+@@ -696,20 +696,26 @@
+ {
+       unsigned int major = MAJOR(dev);
+       unsigned int index;
++      dk_stat_t * ds;
++      ds = kstat.dk_drive_info[major];
++      if (ds == NULL) 
++              return;
++      
+       index = disk_index(dev);
+-      if ((index >= DK_MAX_DISK) || (major >= DK_MAX_MAJOR))
++      if (index >= DK_MAX_DISK)
+               return;
+-
+-      kstat.dk_drive[major][index] += new_io;
++      
++      ds += index;
+       if (rw == READ) {
+-              kstat.dk_drive_rio[major][index] += new_io;
+-              kstat.dk_drive_rblk[major][index] += nr_sectors;
++              ds->dk_drive_rio += new_io;
++              ds->dk_drive_rblk += nr_sectors;
+       } else if (rw == WRITE) {
+-              kstat.dk_drive_wio[major][index] += new_io;
+-              kstat.dk_drive_wblk[major][index] += nr_sectors;
+-      } else
++              ds->dk_drive_wio += new_io;
++              ds->dk_drive_wblk += nr_sectors;
++      } else {
+               printk(KERN_ERR "drive_stat_acct: cmd not R/W?\n");
++      }
+ }
+ #ifdef CONFIG_BLK_STATS
+diff -ur g/linux-2.4.26/drivers/md/md.c h/linux-2.4.26/drivers/md/md.c
+--- g/linux-2.4.26/drivers/md/md.c     2003-08-25 12:44:42.000000000 +0100
++++ h/linux-2.4.26/drivers/md/md.c     2004-06-07 19:36:15.000000000 +0100
+@@ -3381,12 +3381,15 @@
+       ITERATE_RDEV(mddev,rdev,tmp) {
+               int major = MAJOR(rdev->dev);
+               int idx = disk_index(rdev->dev);
++              dk_stat_t * ds;
+               if ((idx >= DK_MAX_DISK) || (major >= DK_MAX_MAJOR))
+                       continue;
+-              curr_events = kstat.dk_drive_rblk[major][idx] +
+-                                              kstat.dk_drive_wblk[major][idx] ;
++              if ((ds = kstat.dk_drive_info[major]) == NULL) 
++                      continue;
++              ds += idx;
++              curr_events = ds->dk_drive_rblk + ds->dk_drive_wblk;
+               curr_events -= sync_io[major][idx];
+               if ((curr_events - rdev->last_events) > 32) {
+                       rdev->last_events = curr_events;
+diff -ur g/linux-2.4.26/fs/block_dev.c h/linux-2.4.26/fs/block_dev.c
+--- g/linux-2.4.26/fs/block_dev.c      2003-06-13 15:51:37.000000000 +0100
++++ h/linux-2.4.26/fs/block_dev.c      2004-06-07 19:36:15.000000000 +0100
+@@ -13,6 +13,7 @@
+ #include <linux/slab.h>
+ #include <linux/kmod.h>
+ #include <linux/major.h>
++#include <linux/kernel_stat.h>
+ #include <linux/devfs_fs_kernel.h>
+ #include <linux/smp_lock.h>
+ #include <linux/iobuf.h>
+@@ -465,11 +466,52 @@
+       return ret;
+ }
++/*
++ *        Allocate a statistics structure for the give device
++ */
++
++static int alloc_dk_stat(unsigned int major)
++{
++      dk_stat_t * new; 
++      
++      /*allocate space for statistics */
++      if (kstat.dk_drive_info[major] != NULL) {
++              printk(KERN_WARNING "register_blkdev: stat struct"
++                      " for device %d exists before register\n",
++                      major);
++      } else {
++              int size = sizeof(dk_stat_t) * DK_MAX_DISK;
++              new = (dk_stat_t *)kmalloc(size, GFP_KERNEL);
++              if (new == NULL) {
++                      return -ENOMEM;
++              }
++              memset(new, 0, size);
++              kstat.dk_drive_info[major] = new;
++      }
++      return 0;
++}
++
++static void free_dk_stat(unsigned int major)
++{
++      dk_stat_t * ds;
++      
++      ds = kstat.dk_drive_info[major];
++      kstat.dk_drive_info[major] = NULL;
++      
++      if (ds != NULL)
++              kfree(ds);
++}
++
+ int register_blkdev(unsigned int major, const char * name, struct block_device_operations *bdops)
+ {
++      int err;
++      
+       if (major == 0) {
+               for (major = MAX_BLKDEV-1; major > 0; major--) {
+                       if (blkdevs[major].bdops == NULL) {
++                              err = alloc_dk_stat(major);
++                              if (err != 0)
++                                      return err;
+                               blkdevs[major].name = name;
+                               blkdevs[major].bdops = bdops;
+                               return major;
+@@ -481,8 +523,13 @@
+               return -EINVAL;
+       if (blkdevs[major].bdops && blkdevs[major].bdops != bdops)
+               return -EBUSY;
++
++      err = alloc_dk_stat(major);
++      if (err != 0)
++              return err;
+       blkdevs[major].name = name;
+       blkdevs[major].bdops = bdops;
++      
+       return 0;
+ }
+@@ -496,6 +543,9 @@
+               return -EINVAL;
+       blkdevs[major].name = NULL;
+       blkdevs[major].bdops = NULL;
++
++      /* free statistic structure */
++      free_dk_stat(major);
+       return 0;
+ }
+diff -ur g/linux-2.4.26/fs/proc/proc_misc.c h/linux-2.4.26/fs/proc/proc_misc.c
+--- g/linux-2.4.26/fs/proc/proc_misc.c 2003-11-28 18:26:21.000000000 +0000
++++ h/linux-2.4.26/fs/proc/proc_misc.c 2004-06-07 19:37:08.000000000 +0100
+@@ -355,23 +355,28 @@
+       proc_sprintf(page, &off, &len, "\ndisk_io: ");
+-      for (major = 0; major < DK_MAX_MAJOR; major++) {
+-              for (disk = 0; disk < DK_MAX_DISK; disk++) {
+-                      int active = kstat.dk_drive[major][disk] +
+-                              kstat.dk_drive_rblk[major][disk] +
+-                              kstat.dk_drive_wblk[major][disk];
++      for (major = 0; major < MAX_BLKDEV; major++) {
++              if ( kstat.dk_drive_info[major] == NULL)
++                      continue;
++              for (disk = 0; disk < DK_MAX_DISK; disk++) {
++                      dk_stat_t * ds;
++                      int active;
++ 
++                      ds = kstat.dk_drive_info[major] + disk;
++                      active = ds->dk_drive_rio + ds->dk_drive_wio +
++                              ds->dk_drive_rblk + ds->dk_drive_wblk;
+                       if (active)
+                               proc_sprintf(page, &off, &len,
+                                       "(%u,%u):(%u,%u,%u,%u,%u) ",
+-                                      major, disk,
+-                                      kstat.dk_drive[major][disk],
+-                                      kstat.dk_drive_rio[major][disk],
+-                                      kstat.dk_drive_rblk[major][disk],
+-                                      kstat.dk_drive_wio[major][disk],
+-                                      kstat.dk_drive_wblk[major][disk]
+-                      );
+-              }
+-      }
++                                      major, disk,
++                                      ds->dk_drive_rio + ds->dk_drive_wio,
++                                      ds->dk_drive_rio,
++                                      ds->dk_drive_rblk,
++                                      ds->dk_drive_wio,
++                                      ds->dk_drive_wblk
++                              );
++              }
++      }
+       proc_sprintf(page, &off, &len,
+               "\nctxt %u\n"
+diff -ur g/linux-2.4.26/include/linux/genhd.h h/linux-2.4.26/include/linux/genhd.h
+--- g/linux-2.4.26/include/linux/genhd.h       2002-11-28 23:53:15.000000000 +0000
++++ h/linux-2.4.26/include/linux/genhd.h       2004-06-07 19:36:15.000000000 +0100
+@@ -294,21 +294,30 @@
+       unsigned int index;
+       switch (major) {
+-              case DAC960_MAJOR+0:
+-                      index = (minor & 0x00f8) >> 3;
+-                      break;
+               case SCSI_DISK0_MAJOR:
+                       index = (minor & 0x00f0) >> 4;
+                       break;
+               case IDE0_MAJOR:        /* same as HD_MAJOR */
+               case XT_DISK_MAJOR:
++              case IDE1_MAJOR:
++              case IDE2_MAJOR:
++              case IDE3_MAJOR:
++              case IDE4_MAJOR:
++              case IDE5_MAJOR:
+                       index = (minor & 0x0040) >> 6;
+                       break;
+-              case IDE1_MAJOR:
+-                      index = ((minor & 0x0040) >> 6) + 2;
++              case SCSI_CDROM_MAJOR:
++                      index = minor & 0x000f;
+                       break;
+               default:
+-                      return 0;
++                      if (major >= SCSI_DISK1_MAJOR && major <= SCSI_DISK7_MAJOR)
++                              index = (minor & 0x00f0) >> 4;
++                      else if (major >= DAC960_MAJOR && major <= DAC960_MAJOR + 7)
++                              index = (minor & 0x00f8) >> 3;
++                      else if (major >= IDE6_MAJOR && major <= IDE9_MAJOR)
++                              index = (minor & 0x0040) >> 6;
++                      else
++                              return 0;
+       }
+       return index;
+ }
+diff -ur g/linux-2.4.26/include/linux/kernel_stat.h h/linux-2.4.26/include/linux/kernel_stat.h
+--- g/linux-2.4.26/include/linux/kernel_stat.h 2003-06-13 15:51:38.000000000 +0100
++++ h/linux-2.4.26/include/linux/kernel_stat.h 2004-06-07 19:36:15.000000000 +0100
+@@ -5,6 +5,7 @@
+ #include <asm/irq.h>
+ #include <linux/smp.h>
+ #include <linux/threads.h>
++#include <linux/major.h>
+ /*
+  * 'kernel_stat.h' contains the definitions needed for doing
+@@ -15,15 +15,19 @@
+ #define DK_MAX_MAJOR 16
+ #define DK_MAX_DISK 16
++struct dk_stat{
++      unsigned int dk_drive_rio;
++      unsigned int dk_drive_wio;
++      unsigned int dk_drive_rblk;
++      unsigned int dk_drive_wblk;
++};
++
++typedef struct dk_stat dk_stat_t;
+ struct kernel_stat {
+       unsigned int per_cpu_user[NR_CPUS],
+                    per_cpu_nice[NR_CPUS],
+                    per_cpu_system[NR_CPUS];
+-      unsigned int dk_drive[DK_MAX_MAJOR][DK_MAX_DISK];
+-      unsigned int dk_drive_rio[DK_MAX_MAJOR][DK_MAX_DISK];
+-      unsigned int dk_drive_wio[DK_MAX_MAJOR][DK_MAX_DISK];
+-      unsigned int dk_drive_rblk[DK_MAX_MAJOR][DK_MAX_DISK];
+-      unsigned int dk_drive_wblk[DK_MAX_MAJOR][DK_MAX_DISK];
++      dk_stat_t *dk_drive_info[MAX_BLKDEV];        
+       unsigned int pgpgin, pgpgout;
+       unsigned int pswpin, pswpout;
+ #if defined (__hppa__) 
diff --git a/src/patches/linux-2.4.26-scsi.patch b/src/patches/linux-2.4.26-scsi.patch
new file mode 100644 (file)
index 0000000..f3cbb6d
--- /dev/null
@@ -0,0 +1,10 @@
+--- drivers/scsi/libata-core.c.old     2004-07-01 15:21:15.000000000 +0100
++++ drivers/scsi/libata-core.c 2004-07-01 15:22:06.000000000 +0100
+@@ -28,6 +28,7 @@
+ #include <linux/pci.h>
+ #include <linux/init.h>
+ #include <linux/list.h>
++#include <linux/mm.h>
+ #include <linux/highmem.h>
+ #include <linux/spinlock.h>
+ #include <linux/blkdev.h>
diff --git a/src/patches/linux-2.4.27-frandom-2.patch b/src/patches/linux-2.4.27-frandom-2.patch
new file mode 100644 (file)
index 0000000..6054bc3
--- /dev/null
@@ -0,0 +1,551 @@
+Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes)
+Date: 2004-11-03
+Initial Package Version: Linux 2.4.27
+Upstream Status: Rejected Upstream
+Origin: http://frandom.sourceforge.net/ - frandom-0.8
+Description: This is usefull for smashing stack protector, wiping
+discs, mktemp, arc4random, and more.
+This source was modified for 2.4.26, and is enabled by default in
+arch/i386/defconfig. A define was added to sysctl.h too.
+
+To get character devices do this:
+mknod /dev/frandom c 235 11
+mknod /dev/erandom c 235 12
+
+Thanks to Eli Billauer
+http://www.billauer.co.il/
+http://frandom.sourceforge.net/
+
+Also see:
+http://www.linuxfromscratch.org/hlfs/
+http://www.linuxfromscratch.org/hints/downloads/files/entropy.txt
+http://www.linuxfromscratch.org/~robert/hlfs/hints/attachments/entropy/\
+        frandom-0.8.tar.gz
+
+diff -Naur linux-2.4.27.orig/Documentation/Configure.help linux-2.4.27.frandom/Documentation/Configure.help
+--- linux-2.4.27.orig/Documentation/Configure.help     2004-08-07 23:26:04.000000000 +0000
++++ linux-2.4.27.frandom/Documentation/Configure.help  2004-11-04 01:11:24.126837840 +0000
+@@ -18447,6 +18447,17 @@
+   input/output character sets. Say Y here for the UTF-8 encoding of
+   the Unicode/ISO9646 universal character set.
++Fast random data generator suite (/dev/frandom and /dev/erandom)
++CONFIG_FRANDOM
++  Fast random data/number generator support in kernel. This random
++  generator is 10-50 times faster than /dev/urandom, and saves kernel
++  entropy.
++
++  If unsure, say Y unless you're tight on kernel size. This module is
++  small and harmless otherwise.
++
++  If you choose M, the sysctl interface will be disabled.
++
+ Virtual terminal
+ CONFIG_VT
+   If you say Y here, you will get support for terminal devices with
+diff -Naur linux-2.4.27.orig/arch/i386/defconfig linux-2.4.27.frandom/arch/i386/defconfig
+--- linux-2.4.27.orig/arch/i386/defconfig      2004-08-07 23:26:04.000000000 +0000
++++ linux-2.4.27.frandom/arch/i386/defconfig   2004-11-04 01:11:24.150834192 +0000
+@@ -579,6 +579,7 @@
+ #
+ CONFIG_VT=y
+ CONFIG_VT_CONSOLE=y
++CONFIG_FRANDOM=y
+ CONFIG_SERIAL=y
+ # CONFIG_SERIAL_CONSOLE is not set
+ # CONFIG_SERIAL_EXTENDED is not set
+diff -Naur linux-2.4.27.orig/drivers/char/Config.in linux-2.4.27.frandom/drivers/char/Config.in
+--- linux-2.4.27.orig/drivers/char/Config.in   2004-08-07 23:26:04.000000000 +0000
++++ linux-2.4.27.frandom/drivers/char/Config.in        2004-11-04 01:11:24.201826440 +0000
+@@ -25,6 +25,7 @@
+       tristate '   Dual serial port support' CONFIG_DUALSP_SERIAL
+    fi
+ fi
++tristate 'Fast random data generator suite (/dev/frandom and /dev/erandom)' CONFIG_FRANDOM
+ dep_mbool 'Extended dumb serial driver options' CONFIG_SERIAL_EXTENDED $CONFIG_SERIAL
+ if [ "$CONFIG_SERIAL_EXTENDED" = "y" ]; then
+    bool '  Support more than 4 serial ports' CONFIG_SERIAL_MANY_PORTS
+diff -Naur linux-2.4.27.orig/drivers/char/Makefile linux-2.4.27.frandom/drivers/char/Makefile
+--- linux-2.4.27.orig/drivers/char/Makefile    2004-08-07 23:26:04.000000000 +0000
++++ linux-2.4.27.frandom/drivers/char/Makefile 2004-11-04 01:11:24.209825224 +0000
+@@ -25,7 +25,7 @@
+                       misc.o pty.o random.o selection.o serial.o \
+                       sonypi.o tty_io.o tty_ioctl.o generic_serial.o \
+                       au1000_gpio.o vac-serial.o hp_psaux.o nvram.o \
+-                      scx200.o fetchop.o
++                      scx200.o fetchop.o frandom.o
+ mod-subdirs   :=      joystick ftape drm drm-4.0 pcmcia
+@@ -334,6 +334,8 @@
+   obj-y += ipmi/ipmi.o
+ endif
++obj-$(CONFIG_FRANDOM) += frandom.o
++
+ include $(TOPDIR)/Rules.make
+ fastdep:
+diff -Naur linux-2.4.27.orig/drivers/char/frandom.c linux-2.4.27.frandom/drivers/char/frandom.c
+--- linux-2.4.27.orig/drivers/char/frandom.c   1970-01-01 00:00:00.000000000 +0000
++++ linux-2.4.27.frandom/drivers/char/frandom.c        2004-11-04 01:11:24.213824616 +0000
+@@ -0,0 +1,362 @@
++/*
++** frandom.c
++**      Fast pseudo-random generator 
++**
++**      (c) Copyright 2003 Eli Billauer
++**      http://www.billauer.co.il
++**
++** 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.
++**
++** Usage: mknod /dev/frandom c 235 11
++**        mknod /dev/erandom c 235 12
++**        insmod frandom
++**
++** This code is highly based upon the examples given in the book "Linux
++** Device Drivers" by Alessandro Rubini and Jonathan Corbet, published
++** by O'Reilly & Associates.
++** O'Reilly's release of this book on the web for free is highly
++** appreciated.
++**
++*/
++
++#include <linux/version.h>
++#include <linux/config.h>
++#include <linux/module.h>
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/slab.h> 
++#include <linux/fs.h> 
++#include <linux/errno.h>
++#include <linux/types.h> 
++#include <linux/random.h>
++
++#include <asm/uaccess.h>
++
++#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,0))
++#include <linux/moduleparam.h>
++#endif
++
++#define INTERNAL_SEED 0
++#define EXTERNAL_SEED 1
++
++#define FRANDOM_MAJOR 235
++#define FRANDOM_MINOR 11 
++#define ERANDOM_MINOR 12 
++
++static struct file_operations frandom_fops; /* Values assigned below */
++
++static int erandom_seeded = 0; /* Internal flag */
++
++static int frandom_major = FRANDOM_MAJOR;
++static int frandom_minor = FRANDOM_MINOR;
++static int erandom_minor = ERANDOM_MINOR;
++static int frandom_bufsize = 256;
++static int frandom_chunklimit = 0; /* =0 means unlimited */
++
++MODULE_DESCRIPTION("Fast pseudo-random number generator");
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Eli Billauer");
++MODULE_PARM(frandom_major,"i");
++MODULE_PARM_DESC(frandom_major,"Major number of /dev/frandom and /dev/erandom");
++MODULE_PARM(frandom_minor,"i");
++MODULE_PARM_DESC(frandom_minor,"Minor number of /dev/frandom");
++MODULE_PARM(erandom_minor,"i");
++MODULE_PARM_DESC(erandom_minor,"Minor number of /dev/erandom");
++MODULE_PARM(frandom_bufsize,"i");
++MODULE_PARM_DESC(frandom_bufsize,"Internal buffer size in bytes. Default is 256. Must be >= 256");
++MODULE_PARM(frandom_chunklimit,"i");
++MODULE_PARM_DESC(frandom_chunklimit,"Limit for read() blocks size. 0 (default) is unlimited, otherwise must be >= 256");
++
++struct frandom_state
++{
++      struct semaphore sem; /* Semaphore on the state structure */
++
++      u8 S[256]; /* The state array */
++      u8 i;        
++      u8 j;
++
++      char *buf;
++};
++
++static struct frandom_state *erandom_state;
++
++static inline void swap_byte(u8 *a, u8 *b)
++{
++      u8 swapByte; 
++  
++      swapByte = *a; 
++      *a = *b;      
++      *b = swapByte;
++}
++
++static void init_rand_state(struct frandom_state *state, int seedflag);
++
++void erandom_get_random_bytes(char *buf, size_t count)
++{
++      struct frandom_state *state = erandom_state;
++      int k;
++
++      unsigned int i;
++      unsigned int j;
++      u8 *S;
++  
++      /* If we fail to get the semaphore, we revert to external random data.
++         Since semaphore blocking is expected to be very rare, and interrupts
++         during these rare and very short periods of time even less frequent,
++         we take the better-safe-than-sorry approach, and fill the buffer
++         some expensive random data, in case the caller wasn't aware of this
++         possibility, and expects random data anyhow.
++      */
++
++      if (down_interruptible(&state->sem)) {
++              get_random_bytes(buf, count);
++              return;
++      }
++
++      /* We seed erandom as late as possible, hoping that the kernel's main
++         RNG is already restored in the boot sequence (not critical, but
++         better.
++      */
++      
++      if (!erandom_seeded) {
++              erandom_seeded = 1;
++              init_rand_state(state, EXTERNAL_SEED);
++              printk(KERN_INFO "frandom: Seeded global generator now (used by erandom)\n");
++      }
++
++      i = state->i;     
++      j = state->j;
++      S = state->S;  
++
++      for (k=0; k<count; k++) {
++              i = (i + 1) & 0xff;
++              j = (j + S[i]) & 0xff;
++              swap_byte(&S[i], &S[j]);
++              *buf++ = S[(S[i] + S[j]) & 0xff];
++      }
++ 
++      state->i = i;     
++      state->j = j;
++
++      up(&state->sem);
++}
++
++static void init_rand_state(struct frandom_state *state, int seedflag)
++{
++      unsigned int i, j, k;
++      u8 *S;
++      u8 *seed = state->buf;
++
++      if (seedflag == INTERNAL_SEED)
++              erandom_get_random_bytes(seed, 256);
++      else
++              get_random_bytes(seed, 256);
++
++      S = state->S;
++      for (i=0; i<256; i++)
++              *S++=i;
++
++      j=0;
++      S = state->S;
++
++      for (i=0; i<256; i++) {
++              j = (j + S[i] + *seed++) & 0xff;
++              swap_byte(&S[i], &S[j]);
++      }
++
++      /* It's considered good practice to discard the first 256 bytes
++         generated. So we do it:
++      */
++
++      i=0; j=0;
++      for (k=0; k<256; k++) {
++              i = (i + 1) & 0xff;
++              j = (j + S[i]) & 0xff;
++              swap_byte(&S[i], &S[j]);
++      }
++
++      state->i = i; /* Save state */
++      state->j = j;
++}
++
++static int frandom_open(struct inode *inode, struct file *filp)
++{
++  
++      struct frandom_state *state;
++
++      int num =MINOR(inode->i_rdev);
++      if ((num != frandom_minor) && (num != erandom_minor)) return -ENODEV;
++  
++      state = kmalloc(sizeof(struct frandom_state), GFP_KERNEL);
++      if (!state)
++              return -ENOMEM;
++
++      state->buf = kmalloc(frandom_bufsize, GFP_KERNEL);
++      if (!state->buf) {
++              kfree(state);
++              return -ENOMEM;
++      }
++
++      sema_init(&state->sem, 1); /* Init semaphore as a mutex */
++
++      if (num == frandom_minor)
++              init_rand_state(state, EXTERNAL_SEED);
++      else
++              init_rand_state(state, INTERNAL_SEED);
++
++      filp->private_data = state;
++
++#if (LINUX_VERSION_CODE<KERNEL_VERSION(2,4,0))
++      MOD_INC_USE_COUNT; 
++#endif
++  
++      return 0; /* Success */
++}
++
++static int frandom_release(struct inode *inode, struct file *filp)
++{
++
++      struct frandom_state *state = filp->private_data;
++
++      kfree(state->buf);
++      kfree(state);
++  
++#if (LINUX_VERSION_CODE<KERNEL_VERSION(2,4,0))
++      MOD_DEC_USE_COUNT;
++#endif
++
++      return 0;
++}
++
++static ssize_t frandom_read(struct file *filp, char *buf, size_t count,
++                          loff_t *f_pos)
++{
++      struct frandom_state *state = filp->private_data;
++      ssize_t ret;
++      int dobytes, k;
++      char *localbuf;
++
++      unsigned int i;
++      unsigned int j;
++      u8 *S;
++  
++      if (down_interruptible(&state->sem))
++              return -ERESTARTSYS;
++  
++      if ((frandom_chunklimit > 0) && (count > frandom_chunklimit))
++              count = frandom_chunklimit;
++
++      ret = count; /* It's either everything or an error... */
++  
++      i = state->i;     
++      j = state->j;
++      S = state->S;  
++
++      while (count) {
++              if (count > frandom_bufsize)
++                      dobytes = frandom_bufsize;
++              else
++                      dobytes = count;
++
++              localbuf = state->buf;
++
++              for (k=0; k<dobytes; k++) {
++                      i = (i + 1) & 0xff;
++                      j = (j + S[i]) & 0xff;
++                      swap_byte(&S[i], &S[j]);
++                      *localbuf++ = S[(S[i] + S[j]) & 0xff];
++              }
++ 
++              if (copy_to_user(buf, state->buf, dobytes)) {
++                      ret = -EFAULT;
++                      goto out;
++              }
++
++              buf += dobytes;
++              count -= dobytes;
++      }
++
++ out:
++      state->i = i;     
++      state->j = j;
++
++      up(&state->sem);
++      return ret;
++}
++
++static struct file_operations frandom_fops = {
++      read:       frandom_read,
++      open:       frandom_open,
++      release:    frandom_release,
++};
++
++static void frandom_cleanup_module(void) {
++      kfree(erandom_state->buf);
++      kfree(erandom_state);
++ 
++      unregister_chrdev(frandom_major, "frandom");
++}
++
++
++static int frandom_init_module(void)
++{
++      int result;
++
++      /* The buffer size MUST be at least 256 bytes, because we assume that
++         minimal length in init_rand_state().
++      */       
++      if (frandom_bufsize < 256) {
++              printk(KERN_ERR "frandom: Refused to load because frandom_bufsize=%d < 256\n",frandom_bufsize);
++              return -EINVAL;
++      }
++      if ((frandom_chunklimit != 0) && (frandom_chunklimit < 256)) {
++              printk(KERN_ERR "frandom: Refused to load because frandom_chunklimit=%d < 256 and != 0\n",frandom_chunklimit);
++              return -EINVAL;
++      }
++
++      erandom_state = kmalloc(sizeof(struct frandom_state), GFP_KERNEL);
++      if (!erandom_state)
++              return -ENOMEM;
++
++      /* This specific buffer is only used for seeding, so we need
++         256 bytes exactly */
++      erandom_state->buf = kmalloc(256, GFP_KERNEL);
++      if (!erandom_state->buf) {
++              kfree(erandom_state);
++              return -ENOMEM;
++      }
++
++      sema_init(&erandom_state->sem, 1); /* Init semaphore as a mutex */
++
++      erandom_seeded = 0;
++
++#ifdef SET_MODULE_OWNER
++      SET_MODULE_OWNER(&frandom_fops);
++#endif
++      /*
++       * Register your major, and accept a dynamic number. This is the
++       * first thing to do, in order to avoid releasing other module's
++       * fops in frandom_cleanup_module()
++       */
++      result = register_chrdev(frandom_major, "frandom", &frandom_fops);
++      if (result < 0) {
++              printk(KERN_WARNING "frandom: can't get major %d\n",frandom_major);
++
++              kfree(erandom_state->buf);
++              kfree(erandom_state);
++      
++              return result;
++      }
++      if (frandom_major == 0) frandom_major = result; /* dynamic */
++    
++      return 0; /* succeed */
++}
++
++module_init(frandom_init_module);
++module_exit(frandom_cleanup_module);
++
++EXPORT_SYMBOL(erandom_get_random_bytes);
+diff -Naur linux-2.4.27.orig/drivers/char/random.c linux-2.4.27.frandom/drivers/char/random.c
+--- linux-2.4.27.orig/drivers/char/random.c    2004-02-18 13:36:31.000000000 +0000
++++ linux-2.4.27.frandom/drivers/char/random.c 2004-11-04 01:11:24.260817472 +0000
+@@ -1870,6 +1870,60 @@
+       return 1;
+ }
++#ifdef CONFIG_FRANDOM
++/* We don't really want to create a header file for frandom
++   at this stage, so here's the prototype: */
++
++void erandom_get_random_bytes(char *buf, size_t count);
++
++static int proc_do_erandom(ctl_table *table, int write, struct file *filp,
++                      void *buffer, size_t *lenp)
++{
++      ctl_table       fake_table;
++      unsigned char   buf[64], random[16], *p;
++      int i;
++      
++      erandom_get_random_bytes(random, 16);
++      
++      p=buf;
++      
++      for (i=0; i<16; i++) {
++              sprintf(p, "%02x", random[i]);
++              p+=2;
++      }
++
++      fake_table.data = buf;
++      fake_table.maxlen = sizeof(buf);
++
++      return proc_dostring(&fake_table, write, filp, buffer, lenp);
++}
++
++
++static int erandom_strategy(ctl_table *table, int *name, int nlen,
++                       void *oldval, size_t *oldlenp,
++                       void *newval, size_t newlen, void **context)
++{
++      unsigned char   random[16];
++      unsigned int    len;
++
++      if (!oldval || !oldlenp)
++              return 1;
++
++      erandom_get_random_bytes(random, 16);
++
++      if (get_user(len, oldlenp))
++              return -EFAULT;
++      if (len) {
++              if (len > 16)
++                      len = 16;
++              if (copy_to_user(oldval, random, len) ||
++                  put_user(len, oldlenp))
++                      return -EFAULT;
++      }
++      return 1;
++}
++#endif
++
+ ctl_table random_table[] = {
+       {RANDOM_POOLSIZE, "poolsize",
+        &sysctl_poolsize, sizeof(int), 0644, NULL,
+@@ -1888,6 +1942,11 @@
+       {RANDOM_BOOT_ID, "boot_id",
+        &sysctl_bootid, 16, 0444, NULL,
+        &proc_do_uuid, &uuid_strategy},
++#ifdef CONFIG_FRANDOM
++      {RANDOM_ERANDOM, "erandom",
++       NULL, 16, 0444, NULL,
++       &proc_do_erandom, &erandom_strategy},
++#endif
+       {RANDOM_UUID, "uuid",
+        NULL, 16, 0444, NULL,
+        &proc_do_uuid, &uuid_strategy},
+diff -Naur linux-2.4.27.orig/include/linux/sysctl.h linux-2.4.27.frandom/include/linux/sysctl.h
+--- linux-2.4.27.orig/include/linux/sysctl.h   2004-08-07 23:26:06.000000000 +0000
++++ linux-2.4.27.frandom/include/linux/sysctl.h        2004-11-04 01:13:02.000000000 +0000
+@@ -184,6 +184,7 @@
+ };
+ /* /proc/sys/kernel/random */
++#define SYSCTL_ERANDOM
+ enum
+ {
+       RANDOM_POOLSIZE=1,
+@@ -191,7 +192,8 @@
+       RANDOM_READ_THRESH=3,
+       RANDOM_WRITE_THRESH=4,
+       RANDOM_BOOT_ID=5,
+-      RANDOM_UUID=6
++      RANDOM_UUID=6,
++      RANDOM_ERANDOM=7
+ };
+ /* /proc/sys/bus/isa */
diff --git a/src/patches/linux-2.4.27-ssp-1.patch b/src/patches/linux-2.4.27-ssp-1.patch
new file mode 100644 (file)
index 0000000..e15d29d
--- /dev/null
@@ -0,0 +1,64 @@
+Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes)
+Date: 2004-08-30
+Initial Package Version: 2.4.27
+Upstream Status: Rejected Upstream
+Origin: http://www.northernsecurity.net/adamantix/diffs/2.4.20-propolice.patch
+Description: Linux kernel patch for Smashing Stack Protector. This patch allows
+the use of -fstack-protector durring the kernel build.
+http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
+http://www.linuxfromscratch.org/hlfs/
+
+diff -Naur linux-2.4.26.orig/include/linux/kernel.h linux-2.4.26.ssp/include/linux/kernel.h
+--- linux-2.4.26.orig/include/linux/kernel.h   2002-11-28 23:53:15.000000000 +0000
++++ linux-2.4.26.ssp/include/linux/kernel.h    2004-04-18 19:54:08.000000000 +0000
+@@ -86,6 +86,9 @@
+ extern void dev_probe_lock(void);
+ extern void dev_probe_unlock(void);
++extern int __guard;
++extern void __stack_smash_handler(int, char []);
++
+ extern int session_of_pgrp(int pgrp);
+ asmlinkage int printk(const char * fmt, ...)
+diff -Naur linux-2.4.26.orig/kernel/ksyms.c linux-2.4.26.ssp/kernel/ksyms.c
+--- linux-2.4.26.orig/kernel/ksyms.c   2004-02-18 13:36:32.000000000 +0000
++++ linux-2.4.26.ssp/kernel/ksyms.c    2004-04-18 19:54:08.000000000 +0000
+@@ -528,6 +528,8 @@
+ EXPORT_SYMBOL(single_open);
+ EXPORT_SYMBOL(single_release);
+ EXPORT_SYMBOL(seq_release_private);
++EXPORT_SYMBOL_NOVERS(__guard);
++EXPORT_SYMBOL_NOVERS(__stack_smash_handler);
+ /* Program loader interfaces */
+ EXPORT_SYMBOL(setup_arg_pages);
+diff -Naur linux-2.4.26.orig/lib/Makefile linux-2.4.26.ssp/lib/Makefile
+--- linux-2.4.26.orig/lib/Makefile     2004-04-14 13:05:40.000000000 +0000
++++ linux-2.4.26.ssp/lib/Makefile      2004-04-18 19:54:08.000000000 +0000
+@@ -12,7 +12,7 @@
+              rbtree.o crc32.o firmware_class.o
+ obj-y := errno.o ctype.o string.o vsprintf.o brlock.o cmdline.o \
+-       bust_spinlocks.o rbtree.o dump_stack.o
++       bust_spinlocks.o rbtree.o dump_stack.o propolice.o
+ obj-$(CONFIG_FW_LOADER) += firmware_class.o
+ obj-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
+diff -Naur linux-2.4.26.orig/lib/propolice.c linux-2.4.26.ssp/lib/propolice.c
+--- linux-2.4.26.orig/lib/propolice.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-2.4.26.ssp/lib/propolice.c   2004-04-18 19:54:08.000000000 +0000
+@@ -0,0 +1,13 @@
++ /*
++  *  linux/lib/errno.c
++  *
++  *
++  */
++ 
++ int __guard = '\0\0\n\777';
++ 
++ void __stack_smash_handler (int damaged, char func[])
++       {
++         static char *message = "propolice detects %x at function %s.\n" ;
++         panic (message, damaged, func);
++}
diff --git a/src/patches/linux-2.4.28-imq2.diff b/src/patches/linux-2.4.28-imq2.diff
new file mode 100644 (file)
index 0000000..e6d1062
--- /dev/null
@@ -0,0 +1,748 @@
+diff -aurN linux-2.4.28-orig/Documentation/Configure.help linux-2.4.28/Documentation/Configure.help
+--- linux-2.4.28-orig/Documentation/Configure.help     2004-11-17 11:54:20.000000000 +0000
++++ linux-2.4.28/Documentation/Configure.help  2004-12-14 11:43:42.000000000 +0000
+@@ -3147,6 +3147,22 @@
+   If you want to compile it as a module, say M here and read
+   <file:Documentation/modules.txt>.  If unsure, say `N'.
++IMQ target support
++CONFIG_IP_NF_TARGET_IMQ
++  This option adds a `IMQ' target which is used to specify if and
++  to which imq device packets should get enqueued/dequeued.
++
++  If you want to compile it as a module, say M here and read
++  <file:Documentation/modules.txt>.  If unsure, say `N'.
++
++IMQ target support
++CONFIG_IP6_NF_TARGET_IMQ
++  This option adds a `IMQ' target which is used to specify if and
++  to which imq device packets should get enqueued/dequeued.
++
++  If you want to compile it as a module, say M here and read
++  <file:Documentation/modules.txt>.  If unsure, say `N'.
++
+ MARK target support
+ CONFIG_IP_NF_TARGET_MARK
+   This option adds a `MARK' target, which allows you to create rules
+@@ -9799,6 +9815,20 @@
+   say M here and read <file:Documentation/modules.txt>.  The module
+   will be called bonding.o.
++Intermediate queueing device support
++CONFIG_IMQ
++  The imq device(s) is used as placeholder for QoS queueing disciplines.
++  Every packet entering/leaving the ip stack can be directed through
++  the imq device where it's enqueued/dequeued to the attached qdisc.
++  This allows you to treat network devices as classes and distribute
++  bandwidth among them. Iptables is used to specify through which imq
++  device, if any, packets travel.
++
++  If you want to compile this as a module ( = code which ca be
++  inserted in and removed from the running kernel whenever you want),
++  say M here and read <file:Documentation/modules.txt>.  The module
++  will be called imq.o
++
+ SLIP (serial line) support
+ CONFIG_SLIP
+   Say Y if you intend to use SLIP or CSLIP (compressed SLIP) to
+diff -aurN linux-2.4.28-orig/drivers/net/Config.in linux-2.4.28/drivers/net/Config.in
+--- linux-2.4.28-orig/drivers/net/Config.in    2004-08-07 23:26:04.000000000 +0000
++++ linux-2.4.28/drivers/net/Config.in 2004-12-14 11:43:42.000000000 +0000
+@@ -7,6 +7,11 @@
+ tristate 'Dummy net driver support' CONFIG_DUMMY
+ tristate 'Bonding driver support' CONFIG_BONDING
+ tristate 'EQL (serial line load balancing) support' CONFIG_EQUALIZER
++if [ "$CONFIG_NETFILTER" = "y" ]; then
++  tristate 'IMQ (intermediate queueing device) support' CONFIG_IMQ
++else
++  comment 'IMQ needs CONFIG_NETFILTER enabled'
++fi
+ tristate 'Universal TUN/TAP device driver support' CONFIG_TUN
+ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+    tristate 'Ethertap network tap (OBSOLETE)' CONFIG_ETHERTAP
+diff -aurN linux-2.4.28-orig/drivers/net/Makefile linux-2.4.28/drivers/net/Makefile
+--- linux-2.4.28-orig/drivers/net/Makefile     2004-08-07 23:26:04.000000000 +0000
++++ linux-2.4.28/drivers/net/Makefile  2004-12-14 11:43:42.000000000 +0000
+@@ -170,6 +170,7 @@
+ obj-$(CONFIG_STRIP) += strip.o
+ obj-$(CONFIG_DUMMY) += dummy.o
++obj-$(CONFIG_IMQ) += imq.o
+ obj-$(CONFIG_DE600) += de600.o
+ obj-$(CONFIG_DE620) += de620.o
+ obj-$(CONFIG_AT1500) += lance.o
+diff -aurN linux-2.4.28-orig/drivers/net/imq.c linux-2.4.28/drivers/net/imq.c
+--- linux-2.4.28-orig/drivers/net/imq.c        1970-01-01 00:00:00.000000000 +0000
++++ linux-2.4.28/drivers/net/imq.c     2004-12-14 11:43:42.000000000 +0000
+@@ -0,0 +1,321 @@
++/*
++ *             Pseudo-driver for the intermediate queue device.
++ *
++ *             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.
++ *
++ * Authors:    Patrick McHardy, <kaber@trash.net>
++ *
++ *           The first version was written by Martin Devera, <devik@cdi.cz>
++ *
++ * Credits:    Jan Rafaj <imq2t@cedric.vabo.cz>
++ *              - Update patch to 2.4.21
++ *             Sebastian Strollo <sstrollo@nortelnetworks.com>
++ *              - Fix "Dead-loop on netdevice imq"-issue
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/config.h>
++#include <linux/skbuff.h>
++#include <linux/netdevice.h>
++#include <linux/rtnetlink.h>
++#include <linux/if_arp.h>
++#include <linux/netfilter.h>
++#include <linux/netfilter_ipv4.h>
++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
++#include <linux/netfilter_ipv6.h>
++#endif
++#include <linux/imq.h>
++#include <net/pkt_sched.h>
++
++static nf_hookfn imq_nf_hook;
++
++static struct nf_hook_ops imq_ingress_ipv4 = {
++      { NULL, NULL},
++      imq_nf_hook,
++      PF_INET,
++      NF_IP_PRE_ROUTING,
++      NF_IP_PRI_MANGLE + 1
++};
++
++static struct nf_hook_ops imq_egress_ipv4 = {
++      { NULL, NULL},
++      imq_nf_hook,
++      PF_INET,
++      NF_IP_POST_ROUTING,
++      NF_IP_PRI_LAST
++};
++
++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
++static struct nf_hook_ops imq_ingress_ipv6 = {
++      { NULL, NULL},
++      imq_nf_hook,
++      PF_INET6,
++      NF_IP6_PRE_ROUTING,
++      NF_IP6_PRI_MANGLE + 1
++};
++
++static struct nf_hook_ops imq_egress_ipv6 = {
++      { NULL, NULL},
++      imq_nf_hook,
++      PF_INET6,
++      NF_IP6_POST_ROUTING,
++      NF_IP6_PRI_LAST
++};
++#endif
++
++static unsigned int numdevs = 6;
++
++MODULE_PARM(numdevs, "i");
++MODULE_PARM_DESC(numdevs, "number of imq devices");
++
++static struct net_device *imq_devs;
++
++
++static struct net_device_stats *imq_get_stats(struct net_device *dev)
++{
++      return (struct net_device_stats *)dev->priv;
++}
++
++/* called for packets kfree'd in qdiscs at places other than enqueue */
++static void imq_skb_destructor(struct sk_buff *skb)
++{
++      struct nf_info *info = skb->nf_info;
++
++      if (info) {
++              if (info->indev)
++                      dev_put(info->indev);
++              if (info->outdev)
++                      dev_put(info->outdev);
++              kfree(info);
++      }
++}
++
++static int imq_dev_xmit(struct sk_buff *skb, struct net_device *dev)
++{
++      struct net_device_stats *stats = (struct net_device_stats*) dev->priv;
++      
++      stats->tx_bytes += skb->len;
++      stats->tx_packets++;
++
++      skb->imq_flags = 0;
++      skb->destructor = NULL;
++      
++      dev->trans_start = jiffies;
++      nf_reinject(skb, skb->nf_info, NF_ACCEPT);
++      return 0;
++}
++
++static int imq_nf_queue(struct sk_buff *skb, struct nf_info *info,
++                      void *data)
++{
++      struct net_device *dev;
++      struct net_device_stats *stats;
++      struct sk_buff *skb2 = NULL;
++      struct Qdisc *q;
++      unsigned int index = skb->imq_flags&IMQ_F_IFMASK;
++      int ret = -1;
++
++      if (index > numdevs) 
++              return -1;
++      
++      dev = imq_devs + index;
++      if (!(dev->flags & IFF_UP)) {
++              skb->imq_flags = 0;
++              nf_reinject(skb, info, NF_ACCEPT);
++              return 0;
++      }
++      dev->last_rx = jiffies;
++
++      if (skb->destructor) {
++              skb2 = skb;
++              skb = skb_clone(skb, GFP_ATOMIC);
++              if (!skb)
++                      return -1;
++      }
++      skb->nf_info = info;
++
++      stats = (struct net_device_stats *)dev->priv;
++      stats->rx_bytes+= skb->len;
++      stats->rx_packets++;
++      
++      spin_lock_bh(&dev->queue_lock);
++      q = dev->qdisc;
++      if (q->enqueue) {
++              q->enqueue(skb_get(skb), q);
++              if (skb_shared(skb)) {
++                      skb->destructor = imq_skb_destructor;
++                      kfree_skb(skb);
++                      ret = 0;
++              }
++      }
++      if (spin_is_locked(&dev->xmit_lock))
++              netif_schedule(dev);
++      else
++              qdisc_run(dev);
++      spin_unlock_bh(&dev->queue_lock);
++
++      if (skb2)
++              kfree_skb(ret ? skb : skb2);
++
++      return ret;
++}
++
++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff **pskb,
++                 const struct net_device *indev,
++                 const struct net_device *outdev,
++                 int (*okfn)(struct sk_buff *))
++{
++      if ((*pskb)->imq_flags & IMQ_F_ENQUEUE)
++              return NF_QUEUE;
++
++      return NF_ACCEPT;
++}
++
++
++static int __init imq_init_hooks(void)
++{
++      int err;
++
++      if ((err = nf_register_queue_handler(PF_INET, imq_nf_queue, NULL)))
++              goto err1;
++      if ((err = nf_register_hook(&imq_ingress_ipv4)))
++              goto err2;
++      if ((err = nf_register_hook(&imq_egress_ipv4)))
++              goto err3;
++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
++      if ((err = nf_register_queue_handler(PF_INET6, imq_nf_queue, NULL)))
++              goto err4;
++      if ((err = nf_register_hook(&imq_ingress_ipv6)))
++              goto err5;
++      if ((err = nf_register_hook(&imq_egress_ipv6)))
++              goto err6;
++#endif
++      
++      return 0;
++      
++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
++err6:
++      nf_unregister_hook(&imq_ingress_ipv6);
++err5:
++      nf_unregister_queue_handler(PF_INET6);
++err4:
++      nf_unregister_hook(&imq_egress_ipv4);
++#endif
++err3:
++      nf_unregister_hook(&imq_ingress_ipv4);
++err2:
++      nf_unregister_queue_handler(PF_INET);
++err1:
++      return err;
++}
++
++static void __exit imq_unhook(void)
++{
++      nf_unregister_hook(&imq_ingress_ipv4);
++      nf_unregister_hook(&imq_egress_ipv4);
++      nf_unregister_queue_handler(PF_INET);
++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
++      nf_unregister_hook(&imq_ingress_ipv6);
++      nf_unregister_hook(&imq_egress_ipv6);
++      nf_unregister_queue_handler(PF_INET6);
++#endif
++}
++
++static int __init imq_dev_init(struct net_device *dev)
++{
++      dev->hard_start_xmit    = imq_dev_xmit;
++      dev->type               = ARPHRD_VOID;
++      dev->mtu                = 1500;
++      dev->tx_queue_len       = 30;
++      dev->flags              = IFF_NOARP;
++      dev->priv = kmalloc(sizeof(struct net_device_stats), GFP_KERNEL);
++      if (dev->priv == NULL)
++              return -ENOMEM;
++      memset(dev->priv, 0, sizeof(struct net_device_stats));
++      dev->get_stats          = imq_get_stats;
++
++      return 0;
++}
++
++static void imq_dev_uninit(struct net_device *dev)
++{
++      kfree(dev->priv);
++}
++
++static int __init imq_init_devs(void)
++{
++      struct net_device *dev;
++      int i;
++
++      if (!numdevs || numdevs > IMQ_MAX_DEVS) {
++              printk(KERN_ERR "numdevs has to be betweed 1 and %u\n",
++                     IMQ_MAX_DEVS);
++              return -EINVAL;
++      }
++
++      imq_devs = kmalloc(sizeof(struct net_device) * numdevs, GFP_KERNEL);
++      if (!imq_devs)
++              return -ENOMEM;
++      memset(imq_devs, 0, sizeof(struct net_device) * numdevs);
++
++      /* we start counting at zero */
++      numdevs--;
++
++      for (i = 0, dev = imq_devs; i <= numdevs; i++, dev++) {
++              SET_MODULE_OWNER(dev);
++              strcpy(dev->name, "imq%d");
++              dev->init   = imq_dev_init;
++              dev->uninit = imq_dev_uninit;
++
++              if (register_netdev(dev) < 0)
++                      goto err_register;
++      }
++      return 0;
++
++err_register:
++      for (; i; i--)
++              unregister_netdev(--dev);
++      kfree(imq_devs);
++      return -EIO;
++}
++
++static void imq_cleanup_devs(void)
++{
++      int i;
++      struct net_device *dev = imq_devs;
++      
++      for (i = 0; i <= numdevs; i++)
++              unregister_netdev(dev++);
++
++      kfree(imq_devs);
++}
++
++static int __init imq_init_module(void)
++{
++      int err;
++
++      if ((err = imq_init_devs()))
++              return err;
++      if ((err = imq_init_hooks())) {
++              imq_cleanup_devs();
++              return err;
++      }
++
++      printk(KERN_INFO "imq driver loaded.\n");
++
++      return 0;
++}
++
++static void __exit imq_cleanup_module(void)
++{
++      imq_unhook();
++      imq_cleanup_devs();
++}
++
++module_init(imq_init_module);
++module_exit(imq_cleanup_module);
++MODULE_LICENSE("GPL");
+diff -aurN linux-2.4.28-orig/include/linux/imq.h linux-2.4.28/include/linux/imq.h
+--- linux-2.4.28-orig/include/linux/imq.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-2.4.28/include/linux/imq.h   2004-12-14 11:43:42.000000000 +0000
+@@ -0,0 +1,9 @@
++#ifndef _IMQ_H
++#define _IMQ_H
++
++#define IMQ_MAX_DEVS  16
++
++#define IMQ_F_IFMASK  0x7f
++#define IMQ_F_ENQUEUE 0x80
++
++#endif /* _IMQ_H */
+diff -aurN linux-2.4.28-orig/include/linux/netfilter_ipv4/ipt_IMQ.h linux-2.4.28/include/linux/netfilter_ipv4/ipt_IMQ.h
+--- linux-2.4.28-orig/include/linux/netfilter_ipv4/ipt_IMQ.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-2.4.28/include/linux/netfilter_ipv4/ipt_IMQ.h        2004-12-14 11:43:42.000000000 +0000
+@@ -0,0 +1,8 @@
++#ifndef _IPT_IMQ_H
++#define _IPT_IMQ_H
++
++struct ipt_imq_info {
++      unsigned int todev;     /* target imq device */
++};
++
++#endif /* _IPT_IMQ_H */
+diff -aurN linux-2.4.28-orig/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-2.4.28/include/linux/netfilter_ipv6/ip6t_IMQ.h
+--- linux-2.4.28-orig/include/linux/netfilter_ipv6/ip6t_IMQ.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-2.4.28/include/linux/netfilter_ipv6/ip6t_IMQ.h       2004-12-14 11:43:42.000000000 +0000
+@@ -0,0 +1,8 @@
++#ifndef _IP6T_IMQ_H
++#define _IP6T_IMQ_H
++
++struct ip6t_imq_info {
++      unsigned int todev;     /* target imq device */
++};
++
++#endif /* _IP6T_IMQ_H */
+diff -aurN linux-2.4.28-orig/include/linux/skbuff.h linux-2.4.28/include/linux/skbuff.h
+--- linux-2.4.28-orig/include/linux/skbuff.h   2004-08-07 23:26:06.000000000 +0000
++++ linux-2.4.28/include/linux/skbuff.h        2004-12-14 11:43:42.000000000 +0000
+@@ -93,6 +93,9 @@
+       struct nf_conntrack *master;
+ };
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++struct nf_info;
++#endif
+ struct sk_buff_head {
+       /* These two members must be first. */
+@@ -182,7 +185,7 @@
+       unsigned int    len;                    /* Length of actual data                        */
+       unsigned int    data_len;
+       unsigned int    csum;                   /* Checksum                                     */
+-      unsigned char   __unused,               /* Dead field, may be reused                    */
++      unsigned char   imq_flags,              /* intermediate queueing device */
+                       cloned,                 /* head may be cloned (check refcnt to be sure). */
+                       pkt_type,               /* Packet class                                 */
+                       ip_summed;              /* Driver fed us an IP checksum                 */
+@@ -219,6 +222,9 @@
+ #ifdef CONFIG_NET_SCHED
+        __u32           tc_index;               /* traffic control index */
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++       struct nf_info *nf_info;
++#endif
+ };
+ #ifdef __KERNEL__
+diff -aurN linux-2.4.28-orig/net/core/skbuff.c linux-2.4.28/net/core/skbuff.c
+--- linux-2.4.28-orig/net/core/skbuff.c        2003-08-25 11:44:44.000000000 +0000
++++ linux-2.4.28/net/core/skbuff.c     2004-12-14 11:43:42.000000000 +0000
+@@ -202,6 +202,10 @@
+       /* Set up other state */
+       skb->len = 0;
+       skb->cloned = 0;
++#if defined(CONFIG_IMQ) || defined (CONFIG_IMQ_MODULE)
++      skb->imq_flags = 0;
++      skb->nf_info = NULL;
++#endif
+       skb->data_len = 0;
+       atomic_set(&skb->users, 1); 
+@@ -250,6 +254,10 @@
+ #ifdef CONFIG_NET_SCHED
+       skb->tc_index = 0;
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      skb->imq_flags = 0;
++      skb->nf_info = NULL;
++#endif
+ }
+ static void skb_drop_fraglist(struct sk_buff *skb)
+@@ -400,6 +408,10 @@
+ #ifdef CONFIG_NET_SCHED
+       C(tc_index);
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      C(imq_flags);
++      C(nf_info);
++#endif
+       atomic_inc(&(skb_shinfo(skb)->dataref));
+       skb->cloned = 1;
+@@ -444,6 +456,10 @@
+ #ifdef CONFIG_NET_SCHED
+       new->tc_index = old->tc_index;
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      new->imq_flags=old->imq_flags;
++      new->nf_info=old->nf_info;
++#endif
+ }
+ /**
+diff -aurN linux-2.4.28-orig/net/ipv4/netfilter/Config.in linux-2.4.28/net/ipv4/netfilter/Config.in
+--- linux-2.4.28-orig/net/ipv4/netfilter/Config.in     2003-08-25 11:44:44.000000000 +0000
++++ linux-2.4.28/net/ipv4/netfilter/Config.in  2004-12-14 11:43:43.000000000 +0000
+@@ -104,6 +104,7 @@
+     dep_tristate '    DSCP target support' CONFIG_IP_NF_TARGET_DSCP $CONFIG_IP_NF_MANGLE
+  
+     dep_tristate '    MARK target support' CONFIG_IP_NF_TARGET_MARK $CONFIG_IP_NF_MANGLE
++    dep_tristate '    IMQ target support' CONFIG_IP_NF_TARGET_IMQ $CONFIG_IP_NF_MANGLE
+   fi
+   dep_tristate '  LOG target support' CONFIG_IP_NF_TARGET_LOG $CONFIG_IP_NF_IPTABLES
+   dep_tristate '  ULOG target support' CONFIG_IP_NF_TARGET_ULOG $CONFIG_IP_NF_IPTABLES
+diff -aurN linux-2.4.28-orig/net/ipv4/netfilter/Makefile linux-2.4.28/net/ipv4/netfilter/Makefile
+--- linux-2.4.28-orig/net/ipv4/netfilter/Makefile      2003-08-25 11:44:44.000000000 +0000
++++ linux-2.4.28/net/ipv4/netfilter/Makefile   2004-12-14 11:43:43.000000000 +0000
+@@ -94,6 +94,7 @@
+ obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
+ obj-$(CONFIG_IP_NF_TARGET_DSCP) += ipt_DSCP.o
+ obj-$(CONFIG_IP_NF_TARGET_MARK) += ipt_MARK.o
++obj-$(CONFIG_IP_NF_TARGET_IMQ) += ipt_IMQ.o
+ obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o
+ obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o
+ obj-$(CONFIG_IP_NF_NAT_SNMP_BASIC) += ip_nat_snmp_basic.o
+diff -aurN linux-2.4.28-orig/net/ipv4/netfilter/ipt_IMQ.c linux-2.4.28/net/ipv4/netfilter/ipt_IMQ.c
+--- linux-2.4.28-orig/net/ipv4/netfilter/ipt_IMQ.c     1970-01-01 00:00:00.000000000 +0000
++++ linux-2.4.28/net/ipv4/netfilter/ipt_IMQ.c  2004-12-14 11:43:43.000000000 +0000
+@@ -0,0 +1,78 @@
++/* This target marks packets to be enqueued to an imq device */
++#include <linux/module.h>
++#include <linux/skbuff.h>
++#include <linux/netfilter_ipv4/ip_tables.h>
++#include <linux/netfilter_ipv4/ipt_IMQ.h>
++#include <linux/imq.h>
++
++static unsigned int imq_target(struct sk_buff **pskb,
++                             unsigned int hooknum,
++                             const struct net_device *in,
++                             const struct net_device *out,
++                             const void *targinfo,
++                             void *userinfo)
++{
++      struct ipt_imq_info *mr = (struct ipt_imq_info*)targinfo;
++
++      (*pskb)->imq_flags = mr->todev | IMQ_F_ENQUEUE;
++      (*pskb)->nfcache |= NFC_ALTERED;
++
++      return IPT_CONTINUE;
++}
++
++static int imq_checkentry(const char *tablename,
++                        const struct ipt_entry *e,
++                        void *targinfo,
++                        unsigned int targinfosize,
++                        unsigned int hook_mask)
++{
++      struct ipt_imq_info *mr;
++
++      if (targinfosize != IPT_ALIGN(sizeof(struct ipt_imq_info))) {
++              printk(KERN_WARNING "IMQ: invalid targinfosize\n");
++              return 0;
++      }
++      mr = (struct ipt_imq_info*)targinfo;
++
++      if (strcmp(tablename, "mangle") != 0) {
++              printk(KERN_WARNING
++                     "IMQ: IMQ can only be called from \"mangle\" table, not \"%s\"\n",
++                     tablename);
++              return 0;
++      }
++      
++      if (mr->todev > IMQ_MAX_DEVS) {
++              printk(KERN_WARNING
++                     "IMQ: invalid device specified, highest is %u\n",
++                     IMQ_MAX_DEVS);
++              return 0;
++      }
++      
++      return 1;
++}
++
++static struct ipt_target ipt_imq_reg = {
++      { NULL, NULL},
++      "IMQ",
++      imq_target,
++      imq_checkentry,
++      NULL,
++      THIS_MODULE
++};
++
++static int __init init(void)
++{
++      if (ipt_register_target(&ipt_imq_reg))
++              return -EINVAL;
++
++      return 0;
++}
++
++static void __exit fini(void)
++{
++      ipt_unregister_target(&ipt_imq_reg);
++}
++
++module_init(init);
++module_exit(fini);
++MODULE_LICENSE("GPL");
+diff -aurN linux-2.4.28-orig/net/ipv6/netfilter/Config.in linux-2.4.28/net/ipv6/netfilter/Config.in
+--- linux-2.4.28-orig/net/ipv6/netfilter/Config.in     2003-06-13 14:51:39.000000000 +0000
++++ linux-2.4.28/net/ipv6/netfilter/Config.in  2004-12-14 11:43:43.000000000 +0000
+@@ -71,6 +71,7 @@
+   if [ "$CONFIG_IP6_NF_MANGLE" != "n" ]; then
+ #    dep_tristate '    TOS target support' CONFIG_IP6_NF_TARGET_TOS $CONFIG_IP_NF_MANGLE
+     dep_tristate '    MARK target support' CONFIG_IP6_NF_TARGET_MARK $CONFIG_IP6_NF_MANGLE
++    dep_tristate '    IMQ target support' CONFIG_IP6_NF_TARGET_IMQ $CONFIG_IP6_NF_MANGLE
+   fi
+   #dep_tristate '  LOG target support' CONFIG_IP6_NF_TARGET_LOG $CONFIG_IP6_NF_IPTABLES
+ fi
+diff -aurN linux-2.4.28-orig/net/ipv6/netfilter/Makefile linux-2.4.28/net/ipv6/netfilter/Makefile
+--- linux-2.4.28-orig/net/ipv6/netfilter/Makefile      2003-06-13 14:51:39.000000000 +0000
++++ linux-2.4.28/net/ipv6/netfilter/Makefile   2004-12-14 11:43:43.000000000 +0000
+@@ -28,6 +28,7 @@
+ obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.o
+ obj-$(CONFIG_IP6_NF_MANGLE) += ip6table_mangle.o
+ obj-$(CONFIG_IP6_NF_TARGET_MARK) += ip6t_MARK.o
++obj-$(CONFIG_IP6_NF_TARGET_IMQ) += ip6t_IMQ.o
+ obj-$(CONFIG_IP6_NF_QUEUE) += ip6_queue.o
+ obj-$(CONFIG_IP6_NF_TARGET_LOG) += ip6t_LOG.o
+ obj-$(CONFIG_IP6_NF_MATCH_HL) += ip6t_hl.o
+diff -aurN linux-2.4.28-orig/net/ipv6/netfilter/ip6t_IMQ.c linux-2.4.28/net/ipv6/netfilter/ip6t_IMQ.c
+--- linux-2.4.28-orig/net/ipv6/netfilter/ip6t_IMQ.c    1970-01-01 00:00:00.000000000 +0000
++++ linux-2.4.28/net/ipv6/netfilter/ip6t_IMQ.c 2004-12-14 11:43:43.000000000 +0000
+@@ -0,0 +1,78 @@
++/* This target marks packets to be enqueued to an imq device */
++#include <linux/module.h>
++#include <linux/skbuff.h>
++#include <linux/netfilter_ipv6/ip6_tables.h>
++#include <linux/netfilter_ipv6/ip6t_IMQ.h>
++#include <linux/imq.h>
++
++static unsigned int imq_target(struct sk_buff **pskb,
++                             unsigned int hooknum,
++                             const struct net_device *in,
++                             const struct net_device *out,
++                             const void *targinfo,
++                             void *userinfo)
++{
++      struct ip6t_imq_info *mr = (struct ip6t_imq_info*)targinfo;
++
++      (*pskb)->imq_flags = mr->todev | IMQ_F_ENQUEUE;
++      (*pskb)->nfcache |= NFC_ALTERED;
++
++      return IP6T_CONTINUE;
++}
++
++static int imq_checkentry(const char *tablename,
++                        const struct ip6t_entry *e,
++                        void *targinfo,
++                        unsigned int targinfosize,
++                        unsigned int hook_mask)
++{
++      struct ip6t_imq_info *mr;
++
++      if (targinfosize != IP6T_ALIGN(sizeof(struct ip6t_imq_info))) {
++              printk(KERN_WARNING "IMQ: invalid targinfosize\n");
++              return 0;
++      }
++      mr = (struct ip6t_imq_info*)targinfo;
++
++      if (strcmp(tablename, "mangle") != 0) {
++              printk(KERN_WARNING
++                     "IMQ: IMQ can only be called from \"mangle\" table, not \"%s\"\n",
++                     tablename);
++              return 0;
++      }
++      
++      if (mr->todev > IMQ_MAX_DEVS) {
++              printk(KERN_WARNING
++                     "IMQ: invalid device specified, highest is %u\n",
++                     IMQ_MAX_DEVS);
++              return 0;
++      }
++      
++      return 1;
++}
++
++static struct ip6t_target ip6t_imq_reg = {
++      { NULL, NULL},
++      "IMQ",
++      imq_target,
++      imq_checkentry,
++      NULL,
++      THIS_MODULE
++};
++
++static int __init init(void)
++{
++      if (ip6t_register_target(&ip6t_imq_reg))
++              return -EINVAL;
++
++      return 0;
++}
++
++static void __exit fini(void)
++{
++      ip6t_unregister_target(&ip6t_imq_reg);
++}
++
++module_init(init);
++module_exit(fini);
++MODULE_LICENSE("GPL");
+diff -aurN linux-2.4.28-orig/net/sched/sch_generic.c linux-2.4.28/net/sched/sch_generic.c
+--- linux-2.4.28-orig/net/sched/sch_generic.c  2004-11-17 11:54:22.000000000 +0000
++++ linux-2.4.28/net/sched/sch_generic.c       2004-12-14 11:44:27.000000000 +0000
+@@ -29,6 +29,9 @@
+ #include <linux/skbuff.h>
+ #include <linux/rtnetlink.h>
+ #include <linux/init.h>
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++#include <linux/imq.h>
++#endif
+ #include <linux/list.h>
+ #include <net/sock.h>
+ #include <net/pkt_sched.h>
+@@ -90,7 +93,11 @@
+                       spin_unlock(&dev->queue_lock);
+                       if (!netif_queue_stopped(dev)) {
+-                              if (netdev_nit)
++                              if (netdev_nit
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++                                  && !(skb->imq_flags & IMQ_F_ENQUEUE)
++#endif
++                                  )
+                                       dev_queue_xmit_nit(skb, dev);
+                               if (dev->hard_start_xmit(skb, dev) == 0) {
diff --git a/src/patches/linux-2.4.29_r8169clone.patch b/src/patches/linux-2.4.29_r8169clone.patch
new file mode 100644 (file)
index 0000000..a088951
--- /dev/null
@@ -0,0 +1,10 @@
+--- linux-2.4.29/drivers/net/r8169.c.origin    Sun Aug  8 01:26:05 2004
++++ linux-2.4.29/drivers/net/r8169.c   Sat Feb 12 08:08:58 2005
+@@ -145,6 +145,7 @@
+ static struct pci_device_id rtl8169_pci_tbl[] = {
+       {0x10ec, 0x8169, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
++      {0x1186, 0x4300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
+       {0,},
+ };
diff --git a/src/patches/make_devices.patch b/src/patches/make_devices.patch
new file mode 100644 (file)
index 0000000..376e137
--- /dev/null
@@ -0,0 +1,410 @@
+--- make_devices.old   2004-08-16 11:43:04.071634753 +0100
++++ make_devices       2004-08-16 11:38:51.096251388 +0100
+@@ -137,10 +137,10 @@
+ mknod -m $MODE tty6 c 4 6 ; chgrp $GROUP tty6
+ mknod -m $MODE tty7 c 4 7 ; chgrp $GROUP tty7
+ mknod -m $MODE tty8 c 4 8 ; chgrp $GROUP tty8
+-    # mknod -m $MODE tty9 c 4 9 ; chgrp $GROUP tty9
+-    # mknod -m $MODE tty10 c 4 10 ; chgrp $GROUP tty10
+-    # mknod -m $MODE tty11 c 4 11 ; chgrp $GROUP tty11
+-    # mknod -m $MODE tty12 c 4 12 ; chgrp $GROUP tty12
++mknod -m $MODE tty9 c 4 9 ; chgrp $GROUP tty9
++mknod -m $MODE tty10 c 4 10 ; chgrp $GROUP tty10
++mknod -m $MODE tty11 c 4 11 ; chgrp $GROUP tty11
++mknod -m $MODE tty12 c 4 12 ; chgrp $GROUP tty12
+     # mknod -m $MODE tty13 c 4 13 ; chgrp $GROUP tty13
+     # mknod -m $MODE tty14 c 4 14 ; chgrp $GROUP tty14
+     # mknod -m $MODE tty15 c 4 15 ; chgrp $GROUP tty15
+@@ -295,8 +295,8 @@
+ mknod -m $MODE ram0 b 1 0 ; chgrp $GROUP ram0
+     # Second RAM disk
+ mknod -m $MODE ram1 b 1 1 ; chgrp $GROUP ram1
+-    # mknod -m $MODE ram2 b 1 2 ; chgrp $GROUP ram2
+-    # mknod -m $MODE ram3 b 1 3 ; chgrp $GROUP ram3
++mknod -m $MODE ram2 b 1 2 ; chgrp $GROUP ram2
++mknod -m $MODE ram3 b 1 3 ; chgrp $GROUP ram3
+     # ...
+     # Initial RAM disk {2.6} 
+@@ -324,6 +324,8 @@
+ mknod -m $MODE loop0 b 7 0 ; chgrp $GROUP loop0
+     # Second loopback device 
+ mknod -m $MODE loop1 b 7 1 ; chgrp $GROUP loop1
++mknod -m $MODE loop2 b 7 2 ; chgrp $GROUP loop2
++mknod -m $MODE loop3 b 7 3 ; chgrp $GROUP loop3
+     # ...
+ #****************************************************************************
+@@ -357,36 +359,52 @@
+     # ...
+     # Third IDE disk whole disk (or CD-ROM)
+-    # mknod -m $MODE hdc b 22 0 ; chgrp $GROUP hdc
++mknod -m $MODE hdc b 22 0 ; chgrp $GROUP hdc
+     # First partition on hdc
+-    # mknod -m $MODE hdc1 b 22 1 ; chgrp $GROUP hdc1
++mknod -m $MODE hdc1 b 22 1 ; chgrp $GROUP hdc1
+     # Second partition on hdc
+-    # mknod -m $MODE hdc2 b 22 2 ; chgrp $GROUP hdc2
+-    # ...
++mknod -m $MODE hdc2 b 22 2 ; chgrp $GROUP hdc2
++mknod -m $MODE hdc3 b 22 3 ; chgrp $GROUP hdc3
++mknod -m $MODE hdc4 b 22 4 ; chgrp $GROUP hdc4
++mknod -m $MODE hdc5 b 22 5 ; chgrp $GROUP hdc5
++mknod -m $MODE hdc6 b 22 6 ; chgrp $GROUP hdc6
++mknod -m $MODE hdc7 b 22 7 ; chgrp $GROUP hdc7
+     # Fourth IDE disk whole disk (or CD-ROM)
+-    # mknod -m $MODE hdd b 22 64 ; chgrp $GROUP hdd
++mknod -m $MODE hdd b 22 64 ; chgrp $GROUP hdd
+     # First partition on hdd
+-    # mknod -m $MODE hdd1 b 22 65 ; chgrp $GROUP hdd1
++mknod -m $MODE hdd1 b 22 65 ; chgrp $GROUP hdd1
+     # Second partition on hdd
+-    # mknod -m $MODE hdd2 b 22 66 ; chgrp $GROUP hdd2
+-    # ...
++mknod -m $MODE hdd2 b 22 66 ; chgrp $GROUP hdd2
++mknod -m $MODE hdd3 b 22 67 ; chgrp $GROUP hdd3
++mknod -m $MODE hdd4 b 22 68 ; chgrp $GROUP hdd4
++mknod -m $MODE hdd5 b 22 69 ; chgrp $GROUP hdd5
++mknod -m $MODE hdd6 b 22 70 ; chgrp $GROUP hdd6
++mknod -m $MODE hdd7 b 22 71 ; chgrp $GROUP hdd7
+     # Fifth IDE disk whole disk (or CD-ROM)
+-    # mknod -m $MODE hde b 33 0 ; chgrp $GROUP hde
++mknod -m $MODE hde b 33 0 ; chgrp $GROUP hde
+     # First partition on hde
+-    # mknod -m $MODE hde1 b 33 1 ; chgrp $GROUP hde1
++mknod -m $MODE hde1 b 33 1 ; chgrp $GROUP hde1
+     # Second partition on hde
+-    # mknod -m $MODE hde2 b 33 2 ; chgrp $GROUP hde2
+-    # ...
++mknod -m $MODE hde2 b 33 2 ; chgrp $GROUP hde2
++mknod -m $MODE hde3 b 33 3 ; chgrp $GROUP hde3
++mknod -m $MODE hde4 b 33 4 ; chgrp $GROUP hde4
++mknod -m $MODE hde5 b 33 5 ; chgrp $GROUP hde5
++mknod -m $MODE hde6 b 33 6 ; chgrp $GROUP hde6
++mknod -m $MODE hde7 b 33 7 ; chgrp $GROUP hde7
+     # Sixth IDE disk whole disk (or CD-ROM)
+-    # mknod -m $MODE hdf b 33 64 ; chgrp $GROUP hdf
++mknod -m $MODE hdf b 33 64 ; chgrp $GROUP hdf
+     # First partition on hdf
+-    # mknod -m $MODE hdf1 b 33 65 ; chgrp $GROUP hdf1
++mknod -m $MODE hdf1 b 33 65 ; chgrp $GROUP hdf1
+     # Second partition on hdf
+-    # mknod -m $MODE hdf2 b 33 66 ; chgrp $GROUP hdf2
+-    # ...
++mknod -m $MODE hdf2 b 33 66 ; chgrp $GROUP hdf2
++mknod -m $MODE hdf3 b 33 67 ; chgrp $GROUP hdf3
++mknod -m $MODE hdf4 b 33 68 ; chgrp $GROUP hdf4
++mknod -m $MODE hdf5 b 33 69 ; chgrp $GROUP hdf5
++mknod -m $MODE hdf6 b 33 70 ; chgrp $GROUP hdf6
++mknod -m $MODE hdf7 b 33 71 ; chgrp $GROUP hdf7
+     # Seventh IDE disk whole disk (or CD-ROM)
+     # mknod -m $MODE hdg b 34 0 ; chgrp $GROUP hdg
+@@ -435,20 +453,26 @@
+     # ...
+     # Third SCSI disk whole disk
+-    # mknod -m $MODE sdc b 8 32 ; chgrp $GROUP sdc
++mknod -m $MODE sdc b 8 32 ; chgrp $GROUP sdc
+     # First partition on sdc
+-    # mknod -m $MODE sdc1 b 8 33 ; chgrp $GROUP sdc1
++mknod -m $MODE sdc1 b 8 33 ; chgrp $GROUP sdc1
+     # Second partition on sdc
+-    # mknod -m $MODE sdc2 b 8 34 ; chgrp $GROUP sdc2
+-    # mknod -m $MODE sdc3 b 8 35 ; chgrp $GROUP sdc3
+-    # mknod -m $MODE sdc4 b 8 36 ; chgrp $GROUP sdc4
+-    # mknod -m $MODE sdc5 b 8 37 ; chgrp $GROUP sdc5
+-    # mknod -m $MODE sdc6 b 8 38 ; chgrp $GROUP sdc6
+-    # mknod -m $MODE sdc7 b 8 39 ; chgrp $GROUP sdc7
+-    # ...
+-
+-    # mknod -m $MODE sdd b 8 48 ; chgrp $GROUP sdd
+-    # mknod -m $MODE sdd1 b 8 49 ; chgrp $GROUP sdd1
++mknod -m $MODE sdc2 b 8 34 ; chgrp $GROUP sdc2
++mknod -m $MODE sdc3 b 8 35 ; chgrp $GROUP sdc3
++mknod -m $MODE sdc4 b 8 36 ; chgrp $GROUP sdc4
++mknod -m $MODE sdc5 b 8 37 ; chgrp $GROUP sdc5
++mknod -m $MODE sdc6 b 8 38 ; chgrp $GROUP sdc6
++mknod -m $MODE sdc7 b 8 39 ; chgrp $GROUP sdc7
++    # ...
++
++mknod -m $MODE sdd b 8 48 ; chgrp $GROUP sdd
++mknod -m $MODE sdd1 b 8 49 ; chgrp $GROUP sdd1
++mknod -m $MODE sdd2 b 8 50 ; chgrp $GROUP sdd2
++mknod -m $MODE sdd3 b 8 51 ; chgrp $GROUP sdd3
++mknod -m $MODE sdd4 b 8 52 ; chgrp $GROUP sdd4
++mknod -m $MODE sdd5 b 8 53 ; chgrp $GROUP sdd5
++mknod -m $MODE sdd6 b 8 54 ; chgrp $GROUP sdd6
++mknod -m $MODE sdd7 b 8 55 ; chgrp $GROUP sdd7
+     # ...
+     
+     # mknod -m $MODE sde b 8 64 ; chgrp $GROUP sde
+@@ -471,6 +495,35 @@
+     # mknod -m $MODE sdp15 b 8 255 ; chgrp $GROUP sdp15
+ #****************************************************************************
++#                         Raid Array disk devices
++#****************************************************************************
++
++mkdir -p ida
++mknod -m $MODE ida/c0d0 b 72 0 ; chgrp $GROUP ida/c0d0
++mknod -m $MODE ida/c0d0p1 b 72 1 ; chgrp $GROUP ida/c0d0p1
++mknod -m $MODE ida/c0d0p2 b 72 2 ; chgrp $GROUP ida/c0d0p2
++mknod -m $MODE ida/c0d0p3 b 72 3 ; chgrp $GROUP ida/c0d0p3
++mknod -m $MODE ida/c0d0p4 b 72 4 ; chgrp $GROUP ida/c0d0p4
++mkdir -p cciss
++mknod -m $MODE cciss/c0d0 b 104 0 ; chgrp $GROUP cciss/c0d0
++mknod -m $MODE cciss/c0d0p1 b 104 1 ; chgrp $GROUP cciss/c0d0p1
++mknod -m $MODE cciss/c0d0p2 b 104 2 ; chgrp $GROUP cciss/c0d0p2
++mknod -m $MODE cciss/c0d0p3 b 104 3 ; chgrp $GROUP cciss/c0d0p3
++mknod -m $MODE cciss/c0d0p4 b 104 4 ; chgrp $GROUP cciss/c0d0p4
++mkdir -p rd
++mknod -m $MODE rd/c0d0 b 48 0 ; chgrp $GROUP rd/c0d0
++mknod -m $MODE rd/c0d0p1 b 48 1 ; chgrp $GROUP rd/c0d0p1
++mknod -m $MODE rd/c0d0p2 b 48 2 ; chgrp $GROUP rd/c0d0p2
++mknod -m $MODE rd/c0d0p3 b 48 3 ; chgrp $GROUP rd/c0d0p3
++mknod -m $MODE rd/c0d0p4 b 48 4 ; chgrp $GROUP rd/c0d0p4
++mkdir -p ataraid
++mknod -m $MODE ataraid/d0 b 114 0 ; chgrp $GROUP ataraid/d0
++mknod -m $MODE ataraid/d0p1 b 114 1 ; chgrp $GROUP ataraid/d0p1
++mknod -m $MODE ataraid/d0p2 b 114 2 ; chgrp $GROUP ataraid/d0p2
++mknod -m $MODE ataraid/d0p3 b 114 3 ; chgrp $GROUP ataraid/d0p3
++mknod -m $MODE ataraid/d0p4 b 114 4 ; chgrp $GROUP ataraid/d0p4
++
++#****************************************************************************
+ #                         Parallel port IDE disk devices
+ #****************************************************************************
+@@ -810,9 +863,9 @@
+ #****************************************************************************
+     # First generic SCSI device
+-    # mknod -m $MODE sg0 c 21 0 ; chgrp $GROUP sg0
++mknod -m $MODE sg0 c 21 0 ; chgrp $GROUP sg0
+     # Second generic SCSI device 
+-    # mknod -m $MODE sg1 c 21 1 ; chgrp $GROUP sg1
++mknod -m $MODE sg1 c 21 1 ; chgrp $GROUP sg1
+     # mknod -m $MODE sg2 c 21 2 ; chgrp $GROUP sg2
+     # mknod -m $MODE sg3 c 21 3 ; chgrp $GROUP sg3
+     # ...
+@@ -832,11 +885,15 @@
+ mknod -m $MODE scd0 b 11 0 ; chgrp $GROUP scd0
+     # Second SCSI CD-ROM
+ mknod -m $MODE scd1 b 11 1 ; chgrp $GROUP scd1
++mknod -m $MODE scd2 b 11 2 ; chgrp $GROUP scd2
++mknod -m $MODE scd3 b 11 3 ; chgrp $GROUP scd3
+     # ...
+     
+     # Alternative names for SCSI CD-ROMs (_hard_ links)
+ ln -fn scd0 sr0 ; chgrp $GROUP sr0
+ ln -fn scd1 sr1 ; chgrp $GROUP sr1
++ln -fn scd1 sr2 ; chgrp $GROUP sr2
++ln -fn scd1 sr3 ; chgrp $GROUP sr3
+     # ...
+ #****************************************************************************
+@@ -1027,6 +1084,7 @@
+ mknod -m $MODE ttyS1 c 4 65 ; chgrp $GROUP ttyS1
+ mknod -m $MODE ttyS2 c 4 66 ; chgrp $GROUP ttyS2
+ mknod -m $MODE ttyS3 c 4 67 ; chgrp $GROUP ttyS3
++mknod -m $MODE ttyS4 c 4 68 ; chgrp $GROUP ttyS4
+     # ...
+     # 192nd UART serial port 
+     # mknod -m $MODE ttyS191 c 4 255 ; chgrp $GROUP ttyS191
+@@ -1036,16 +1094,16 @@
+ #****************************************************************************
+     # Device independent PPP interface 
+-    # mknod -m $MODE ppp c 108 0 ; chgrp $GROUP ppp    
++mknod -m $MODE ppp c 108 0 ; chgrp $GROUP ppp    
+ #****************************************************************************
+ #                         isdn4linux virtual modem
+ #****************************************************************************
+     # First virtual modem
+-    # mknod -m $MODE ttyI0 c 43 0 ; chgrp $GROUP ttyI0
++mknod -m $MODE ttyI0 c 43 0 ; chgrp $GROUP ttyI0
+     # Second virtual modem
+-    # mknod -m $MODE ttyI1 c 43 1 ; chgrp $GROUP ttyI1
++mknod -m $MODE ttyI1 c 43 1 ; chgrp $GROUP ttyI1
+     # ...
+     # 64th virtual modem 
+     # mknod -m $MODE ttyI63 c 43 63 ; chgrp $GROUP ttyI63
+@@ -1055,37 +1113,37 @@
+ #****************************************************************************
+     # First virtual B channel raw data
+-    # mknod -m $MODE isdn0 c 45 0 ; chgrp $GROUP isdn0
+-    # mknod -m $MODE isdn1 c 45 1 ; chgrp $GROUP isdn1
++mknod -m $MODE isdn0 c 45 0 ; chgrp $GROUP isdn0
++mknod -m $MODE isdn1 c 45 1 ; chgrp $GROUP isdn1
+     # ...
+     # 64th virtual B channel raw data
+     # mknod -m $MODE isdn63 c 45 63 ; chgrp $GROUP isdn63
+     # First channel control/debug
+-    # mknod -m $MODE isdnctrl0 c 45 64 ; chgrp $GROUP isdnctrl0
+-    # mknod -m $MODE isdnctrl1 c 45 65 ; chgrp $GROUP isdnctrl1
++mknod -m $MODE isdnctrl0 c 45 64 ; chgrp $GROUP isdnctrl0
++mknod -m $MODE isdnctrl1 c 45 65 ; chgrp $GROUP isdnctrl1
+     # ...
+     # 64th channel control/debug
+     # mknod -m $MODE isdnctrl63 c 45 127 ; chgrp $GROUP isdnctrl63
+     # First SyncPPP device
+-    # mknod -m $MODE ippp0 c 45 128 ; chgrp $GROUP ippp0
+-    # mknod -m $MODE ippp1 c 45 129 ; chgrp $GROUP ippp1
++mknod -m $MODE ippp0 c 45 128 ; chgrp $GROUP ippp0
++mknod -m $MODE ippp1 c 45 129 ; chgrp $GROUP ippp1
+     # ...
+     # 64th SyncPPP device
+     # mknod -m $MODE ippp63 c 45 191 ; chgrp $GROUP ippp63
+     # ISDN monitor interface 
+-    # mknod -m $MODE isdninfo c 45 255 ; chgrp $GROUP isdninfo
++mknod -m $MODE isdninfo c 45 255 ; chgrp $GROUP isdninfo
+ #****************************************************************************
+ #                         USB serial converters
+ #****************************************************************************
+     # First USB serial converter
+-    # mknod -m $MODE ttyUSB0 c 188 0 ; chgrp $GROUP ttyUSB0
++mknod -m $MODE ttyUSB0 c 188 0 ; chgrp $GROUP ttyUSB0
+     # Second USB serial converter 
+-    # mknod -m $MODE ttyUSB1 c 188 1 ; chgrp $GROUP ttyUSB1
++mknod -m $MODE ttyUSB1 c 188 1 ; chgrp $GROUP ttyUSB1
+     # ...
+ #****************************************************************************
+@@ -1093,9 +1151,9 @@
+ #****************************************************************************
+     # First ACM modem
+-    # mknod -m $MODE ttyACM0 c 166 0 ; chgrp $GROUP ttyACM0
++mknod -m $MODE ttyACM0 c 166 0 ; chgrp $GROUP ttyACM0
+     # Second ACM modem 
+-    # mknod -m $MODE ttyACM1 c 166 1 ; chgrp $GROUP ttyACM1
++mknod -m $MODE ttyACM1 c 166 1 ; chgrp $GROUP ttyACM1
+     # ...
+ #****************************************************************************
+@@ -1123,9 +1181,9 @@
+ #****************************************************************************
+     # First DataComm card
+-    # mknod -m $MODE dcbri0 c 52 0 ; chgrp $GROUP dcbri0
++mknod -m $MODE dcbri0 c 52 0 ; chgrp $GROUP dcbri0
+     # Second DataComm card
+-    # mknod -m $MODE dcbri1 c 52 1 ; chgrp $GROUP dcbri1
++mknod -m $MODE dcbri1 c 52 1 ; chgrp $GROUP dcbri1
+     # Third DataComm card
+     # mknod -m $MODE dcbri2 c 52 2 ; chgrp $GROUP dcbri2
+     # Fourth DataComm card 
+@@ -2144,10 +2202,10 @@
+ #****************************************************************************
+     # Control device
+-    # mknod -m $MODE capi20 c 68 0 ; chgrp $GROUP capi20
++mknod -m $MODE capi20 c 68 0 ; chgrp $GROUP capi20
+     # First CAPI 2.0 application
+-    # mknod -m $MODE capi20.00 c 68 1 ; chgrp $GROUP capi20.00
++mknod -m $MODE capi20.00 c 68 1 ; chgrp $GROUP capi20.00
+     # Second CAPI 2.0 application
+     # mknod -m $MODE capi20.01 c 68 2 ; chgrp $GROUP capi20.01
+     # ...
+@@ -2169,16 +2227,16 @@
+ #****************************************************************************
+     # Filter control device/log file
+-    # mknod -m $MODE ipl c 95 0 ; chgrp $GROUP ipl
++mknod -m $MODE ipl c 95 0 ; chgrp $GROUP ipl
+     # NAT control device/log file
+-    # mknod -m $MODE ipnat c 95 1 ; chgrp $GROUP ipnat
++mknod -m $MODE ipnat c 95 1 ; chgrp $GROUP ipnat
+     # State information log file
+-    # mknod -m $MODE ipstate c 95 2 ; chgrp $GROUP ipstate
++mknod -m $MODE ipstate c 95 2 ; chgrp $GROUP ipstate
+     # Authentication control device/log file 
+-    # mknod -m $MODE ipauth c 95 3 ; chgrp $GROUP ipauth
++mknod -m $MODE ipauth c 95 3 ; chgrp $GROUP ipauth
+ #****************************************************************************
+ #                         Raw keyboard device
+@@ -2316,51 +2374,51 @@
+ #****************************************************************************
+     # First SCSI tape, mode 0
+-    # mknod -m $MODE st0 c 9 0 ; chgrp $GROUP st0
++mknod -m $MODE st0 c 9 0 ; chgrp $GROUP st0
+     # Second SCSI tape, mode 0
+-    # mknod -m $MODE st1 c 9 1 ; chgrp $GROUP st1
++mknod -m $MODE st1 c 9 1 ; chgrp $GROUP st1
+     # ...
+     # First SCSI tape, mode 1
+-    # mknod -m $MODE st0l c 9 32 ; chgrp $GROUP st0l
++mknod -m $MODE st0l c 9 32 ; chgrp $GROUP st0l
+     # Second SCSI tape, mode 1
+-    # mknod -m $MODE st1l c 9 33 ; chgrp $GROUP st1l
++mknod -m $MODE st1l c 9 33 ; chgrp $GROUP st1l
+     # ...
+     # First SCSI tape, mode 2
+-    # mknod -m $MODE st0m c 9 64 ; chgrp $GROUP st0m
++mknod -m $MODE st0m c 9 64 ; chgrp $GROUP st0m
+     # Second SCSI tape, mode 2
+-    # mknod -m $MODE st1m c 9 65 ; chgrp $GROUP st1m
++mknod -m $MODE st1m c 9 65 ; chgrp $GROUP st1m
+     # ...
+     # First SCSI tape, mode 3
+-    # mknod -m $MODE st0a c 9 96 ; chgrp $GROUP st0a
++mknod -m $MODE st0a c 9 96 ; chgrp $GROUP st0a
+     # Second SCSI tape, mode 3
+-    # mknod -m $MODE st1a c 9 97 ; chgrp $GROUP st1a
++mknod -m $MODE st1a c 9 97 ; chgrp $GROUP st1a
+     # ...
+     # First SCSI tape, mode 0, no rewind
+-    # mknod -m $MODE nst0 c 9 128 ; chgrp $GROUP nst0
++mknod -m $MODE nst0 c 9 128 ; chgrp $GROUP nst0
+     # Second SCSI tape, mode 0, no rewind
+-    # mknod -m $MODE nst1 c 9 129 ; chgrp $GROUP nst1
++mknod -m $MODE nst1 c 9 129 ; chgrp $GROUP nst1
+     # ...
+     # First SCSI tape, mode 1, no rewind
+-    # mknod -m $MODE nst0l c 9 160 ; chgrp $GROUP nst0l
++mknod -m $MODE nst0l c 9 160 ; chgrp $GROUP nst0l
+     # Second SCSI tape, mode 1, no rewind
+-    # mknod -m $MODE nst1l c 9 161 ; chgrp $GROUP nst1l
++mknod -m $MODE nst1l c 9 161 ; chgrp $GROUP nst1l
+     # ...
+     # First SCSI tape, mode 2, no rewind
+-    # mknod -m $MODE nst0m c 9 192 ; chgrp $GROUP nst0m
++mknod -m $MODE nst0m c 9 192 ; chgrp $GROUP nst0m
+     # Second SCSI tape, mode 2, no rewind
+-    # mknod -m $MODE nst1m c 9 193 ; chgrp $GROUP nst1m
++mknod -m $MODE nst1m c 9 193 ; chgrp $GROUP nst1m
+     # ...
+     # First SCSI tape, mode 3, no rewind
+-    # mknod -m $MODE nst0a c 9 224 ; chgrp $GROUP nst0a
++mknod -m $MODE nst0a c 9 224 ; chgrp $GROUP nst0a
+     # Second SCSI tape, mode 3, no rewind 
+-    # mknod -m $MODE nst1a c 9 225 ; chgrp $GROUP nst1a
++mknod -m $MODE nst1a c 9 225 ; chgrp $GROUP nst1a
+     # ...
+ #****************************************************************************
diff --git a/src/patches/net-tools-1.60-cleanup-list-handling.patch b/src/patches/net-tools-1.60-cleanup-list-handling.patch
new file mode 100644 (file)
index 0000000..d897158
--- /dev/null
@@ -0,0 +1,61 @@
+diff -u -r1.1 -r1.3
+--- nameif.c   18 Oct 2000 17:26:29 -0000      1.1
++++ nameif.c   6 Mar 2003 23:26:52 -0000       1.3
+@@ -117,7 +117,8 @@
+ }
+ struct change { 
+-      struct change *next,**pprev;
++      struct change *next;
++      int found;
+       char ifname[IFNAMSIZ+1];
+       unsigned char mac[6];
+ }; 
+@@ -139,10 +140,7 @@
+                       ch->ifname, pos); 
+       if (parsemac(p,ch->mac) < 0) 
+               complain(_("cannot parse MAC `%s' at %s"), p, pos); 
+-      if (clist) 
+-              clist->pprev = &ch->next;
+       ch->next = clist;
+-      ch->pprev = &clist;
+       clist = ch;
+       return 0; 
+ }
+@@ -200,7 +198,7 @@
+ void usage(void)
+ {
+-      fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}")); 
++      fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n")); 
+       exit(1); 
+ }
+@@ -277,21 +275,21 @@
+               ch = lookupmac(mac); 
+               if (!ch) 
+                       continue;
+-                      
+-              *ch->pprev = ch->next;
++              
++              ch->found = 1;  
+               if (strcmp(p, ch->ifname)) { 
+                       if (setname(p, ch->ifname) < 0)  
+                               complain(_("cannot change name of %s to %s: %s"),
+                                               p, ch->ifname, strerror(errno)); 
+               } 
+-              free(ch);
+       } 
+       fclose(ifh); 
+       
+       while (clist) { 
+               struct change *ch = clist;
+               clist = clist->next;
+-              warning(_("interface '%s' not found"), ch->ifname); 
++              if (!ch->found)
++                      warning(_("interface '%s' not found"), ch->ifname); 
+               free(ch); 
+       }
+
+
+
diff --git a/src/patches/net-tools-1.60-get_name.patch b/src/patches/net-tools-1.60-get_name.patch
new file mode 100644 (file)
index 0000000..1371c67
--- /dev/null
@@ -0,0 +1,58 @@
+diff -Nrup net-tools-1.60.orig/lib/interface.c net-tools-1.60/lib/interface.c
+--- net-tools-1.60.orig/lib/interface.c        2004-08-12 05:54:09.000000000 -0400
++++ net-tools-1.60/lib/interface.c     2004-08-12 06:03:20.000000000 -0400
+@@ -203,28 +203,34 @@ out:
+ static char *get_name(char *name, char *p)
+ {
+-    while (isspace(*p))
+-      p++;
+-    while (*p) {
+-      if (isspace(*p))
+-          break;
+-      if (*p == ':') {        /* could be an alias */
+-          char *dot = p, *dotname = name;
+-          *name++ = *p++;
+-          while (isdigit(*p))
+-              *name++ = *p++;
+-          if (*p != ':') {    /* it wasn't, backup */
+-              p = dot;
+-              name = dotname;
+-          }
+-          if (*p == '\0')
+-              return NULL;
+-          p++;
+-          break;
++    /* Extract <name>[:<alias>] from nul-terminated p where p matches
++       <name>[:<alias>]: after leading whitespace.
++       If match is not made, set name empty and return unchanged p */
++    int namestart=0, nameend=0, aliasend;
++    while (isspace(p[namestart]))
++      namestart++;
++    nameend=namestart;
++    while (p[nameend] && p[nameend]!=':' && !isspace(p[nameend]))
++      nameend++;
++    if (p[nameend]==':') {
++      aliasend=nameend+1;
++      while (p[aliasend] && isdigit(p[aliasend]))
++          aliasend++;
++      if (p[aliasend]==':') {
++          nameend=aliasend;
++      }
++      if ((nameend-namestart)<IFNAMSIZ) {
++          memcpy(name,&p[namestart],nameend-namestart);
++          name[nameend-namestart]='\0';
++          p=&p[nameend+1];
++      } else {
++          /* Interface name too large */
++          name[0]='\0';
+       }
+-      *name++ = *p++;
++    } else {
++      /* first ':' not found - return empty */
++      name[0]='\0';
+     }
+-    *name++ = '\0';
+     return p;
+ }
diff --git a/src/patches/newt-0.50.17-colors.patch b/src/patches/newt-0.50.17-colors.patch
new file mode 100644 (file)
index 0000000..4cfa344
--- /dev/null
@@ -0,0 +1,103 @@
+diff -ruN newt-0.50.17.old/newt.c newt-0.50.17/newt.c
+--- newt-0.50.17.old/newt.c    Wed Dec  3 10:37:02 2003
++++ newt-0.50.17/newt.c        Wed Dec  3 10:38:00 2003
+@@ -65,31 +65,31 @@
+ "  <Tab>/<Alt-Tab> between elements   |  <Space> selects   |  <F12> next screen"
+ ;
+-const struct newtColors newtDefaultColorPalette = {
+-      "white", "blue",                        /* root fg, bg */
+-      "black", "lightgray",                   /* border fg, bg */
+-      "black", "lightgray",                   /* window fg, bg */
+-      "white", "black",                       /* shadow fg, bg */
+-      "red", "lightgray",                     /* title fg, bg */
+-      "black", "lightgray",                   /* button fg, bg */
+-      "red", "lightgray",                     /* active button fg, bg */
+-      "yellow", "blue",                       /* checkbox fg, bg */
+-      "blue", "brown",                        /* active checkbox fg, bg */
+-      "yellow", "blue",                       /* entry box fg, bg */
+-      "blue", "lightgray",                    /* label fg, bg */
+-      "black", "lightgray",                   /* listbox fg, bg */
+-      "black", "lightgray",                   /* active listbox fg, bg */
+-      "black", "lightgray",                   /* textbox fg, bg */
+-      "lightgray", "black",                   /* active textbox fg, bg */
+-      "white", "blue",                        /* help line */
+-      "yellow", "blue",                       /* root text */
+-      "blue",                                 /* scale empty */
+-      "yellow",                               /* scale full */
+-      "blue", "lightgray",                    /* disabled entry fg, bg */
+-      "white", "blue",                        /* compact button fg, bg */
+-      "yellow", "red",                        /* active & sel listbox */
+-      "yellow", "blue",                       /* selected listbox */
+-      "white", "lightgray"                    /* 3D box */
++const struct newtColors newtDefaultColorPalette = { 
++      "white", "blue",                        /* root fg, bg */ 
++      "black", "lightgray",                   /* border fg, bg */ 
++      "black", "lightgray",                   /* window fg, bg */ 
++      "white", "black",                       /* shadow fg, bg */ 
++      "red", "lightgray",                     /* title fg, bg */ 
++      "lightgray", "red",                     /* button fg, bg */ 
++      "red", "lightgray",                     /* active button fg, bg */ 
++      "yellow", "blue",                       /* checkbox fg, bg */ 
++      "blue", "brown",                        /* active checkbox fg, bg */ 
++      "yellow", "blue",                       /* entry box fg, bg */ 
++      "blue", "lightgray",                    /* label fg, bg */ 
++      "black", "lightgray",                   /* listbox fg, bg */ 
++      "black", "lightgray",                   /* active listbox fg, bg */ 
++      "black", "lightgray",                   /* textbox fg, bg */ 
++      "lightgray", "black",                   /* active textbox fg, bg */ 
++      "white", "blue",                        /* help line */ 
++      "yellow", "blue",                       /* root text */ 
++      "blue",                                 /* scale empty */ 
++      "red",                                  /* scale full */ 
++      "blue", "lightgray",                    /* disabled entry fg, bg */ 
++      "white", "blue",                        /* compact button fg, bg */ 
++      "yellow", "blue",                       /* active & sel listbox */ 
++      "yellow", "blue",                       /* selected listbox */ 
++      "white", "lightgray"                    /* 3D box */ 
+ };
+ static const int color_to_mono[NEWT_COLORSET_MAX+1] = {
+diff -ruN newt-0.50.17.old/scrollbar.c newt-0.50.17/scrollbar.c
+--- newt-0.50.17.old/scrollbar.c       Wed Dec  3 10:37:02 2003
++++ newt-0.50.17/scrollbar.c   Wed Dec  3 10:38:00 2003
+@@ -48,7 +48,7 @@
+     co->data = sb;
+     if (!strcmp(getenv("TERM"), "linux") && height >= 2) {
+-      sb->arrows = 1;
++      sb->arrows = 0;
+       sb->curr = 1;
+     } else {
+       sb->arrows = 0;
+@@ -79,17 +79,17 @@
+     SLsmg_set_char_set(1);
+     if (sb->arrows) {
+       newtGotorc(co->top, co->left);
+-      SLsmg_write_char('\x2d');
++      SLsmg_write_char(SLSMG_UARROW_CHAR);
+       for (i = 1; i < co->height - 1; i++) {
+           newtGotorc(i + co->top, co->left);
+-          SLsmg_write_char('\x61');
++          SLsmg_write_char(SLSMG_CKBRD_CHAR);
+       }
+       newtGotorc(co->top + co->height - 1, co->left);
+-      SLsmg_write_char('\x2e');
++      SLsmg_write_char(SLSMG_DARROW_CHAR);
+     } else {
+       for (i = 0; i < co->height; i++) {
+           newtGotorc(i + co->top, co->left);
+-          SLsmg_write_char('\x61');
++          SLsmg_write_char(SLSMG_CKBRD_CHAR);
+       }
+     }
+@@ -100,7 +100,7 @@
+ static void sbDrawThumb(newtComponent co, int isOn) {
+     struct scrollbar * sb = co->data;
+-    char ch = isOn ? '#' : '\x61';
++    char ch = isOn ? '#' : SLSMG_CKBRD_CHAR;
+     if (!co->isMapped) return;
diff --git a/src/patches/newt-0.50.17-vaend.patch b/src/patches/newt-0.50.17-vaend.patch
new file mode 100644 (file)
index 0000000..03b8893
--- /dev/null
@@ -0,0 +1,20 @@
+--- windows.c.old      2004-02-04 00:03:38.000000000 +0000
++++ windows.c  2004-02-04 00:04:59.000000000 +0000
+@@ -168,7 +168,7 @@
+       buttonName = va_arg(args, char *);
+     }
+-    va_end(button1);
++    va_end(args);
+     buttonBar = newtCreateGrid(numButtons, 1);
+     for (i = 0; i < numButtons; i++) {
+@@ -225,7 +225,7 @@
+       buttonName = va_arg(args, char *);
+     }
+-    va_end(button1);
++    va_end(args);
+     buttonBar = newtCreateGrid(numButtons, 1);
+     for (i = 0; i < numButtons; i++) {
diff --git a/src/patches/ntp-4.2.0-linuxcaps.patch b/src/patches/ntp-4.2.0-linuxcaps.patch
new file mode 100644 (file)
index 0000000..4cc63b3
--- /dev/null
@@ -0,0 +1,139 @@
+diff -u -r ntp-4.2.0/config.h.in ntp-4.2.0-linux-droproot/config.h.in
+--- ntp-4.2.0/config.h.in      2003-10-15 11:02:22.000000000 +0200
++++ ntp-4.2.0-linux-droproot/config.h.in       2003-12-02 10:30:34.000000000 +0100
+@@ -300,9 +300,12 @@
+ /* Do we have the CIOGETEV ioctl (SunOS, Linux)? */
+ #undef HAVE_CIOGETEV
+-/* [Use], [/dev/clockctl?] */
++/* Do we have non-root clock control (via Linux capabilities or NetBSD /dev/clockctl)? */
+ #undef HAVE_CLOCKCTL
++/* Do we get clock access via Linux capabilities? */
++#undef HAVE_LINUX_CAPABILITIES
++
+ /* Define to 1 if you have the `clock_gettime' function. */
+ #undef HAVE_CLOCK_GETTIME
+diff -u -r ntp-4.2.0/configure.in ntp-4.2.0-linux-droproot/configure.in
+--- ntp-4.2.0/configure.in     2003-10-15 10:52:44.000000000 +0200
++++ ntp-4.2.0-linux-droproot/configure.in      2003-12-01 09:53:21.000000000 +0100
+@@ -48,7 +48,7 @@
+ AC_CACHE_CHECK(if we should use /dev/clockctl, ac_clockctl,
+ [AC_ARG_ENABLE(clockctl,
+-   AC_HELP_STRING([--enable-clockctl], [Use /dev/clockctl for non-root time control]),
++   AC_HELP_STRING([--enable-clockctl], [Use NetBSD /dev/clockctl for non-root clock control]),
+     [ans=$enableval],
+     [case "$target" in
+       *-*-netbsd*)
+@@ -63,10 +63,27 @@
+ AC_CHECK_HEADERS(sys/clockctl.h)
+ case "$ac_clockctl$ac_cv_header_sys_clockctl_h" in
+  yesyes)
+-    AC_DEFINE(HAVE_CLOCKCTL, ,[[Use /dev/clockctl?]])
++    AC_DEFINE(HAVE_CLOCKCTL, ,[Non-root clock control allowed via NetBSD /dev/clockctl?])
+     ;;
+ esac
++AC_CACHE_CHECK(if we have linux capabilities (libcap), ac_linuxcaps,
++[AC_ARG_ENABLE(linuxcaps,
++   AC_HELP_STRING([--enable-linuxcaps], [Use Linux capabilities for non-root clock control]),
++    [ans=$enableval],
++    [ans=no])
++ac_linuxcaps=$ans])
++# End of AC_CACHE_CHECK for linuxcaps
++AC_CHECK_HEADERS(sys/capability.h)
++case "$ac_linuxcaps$ac_cv_header_sys_capability_h" in
++ yesyes)
++    AC_DEFINE(HAVE_LINUX_CAPABILITIES, ,[Do we have Linux capabilities?])
++    AC_DEFINE(HAVE_CLOCKCTL, ,[Non-root clock control allowed via Linux capabilities?])
++    LIBS="$LIBS -lcap"
++    ;;
++esac
++
++
+ case "$build" in
+  $host)
+     ;;
+diff -u -r ntp-4.2.0/ntpd/ntpd.c ntp-4.2.0-linux-droproot/ntpd/ntpd.c
+--- ntp-4.2.0/ntpd/ntpd.c      2003-07-17 12:27:28.000000000 +0200
++++ ntp-4.2.0-linux-droproot/ntpd/ntpd.c       2003-12-02 11:11:09.000000000 +0100
+@@ -108,6 +108,10 @@
+ # include <ctype.h>
+ # include <grp.h>
+ # include <pwd.h>
++#ifdef HAVE_LINUX_CAPABILITIES
++# include <sys/capability.h>
++# include <sys/prctl.h>
++#endif
+ #endif
+ /*
+@@ -837,8 +841,18 @@
+ #ifdef HAVE_CLOCKCTL
+       /* 
+        * Drop super-user privileges and chroot now if the OS supports
+-       * non root clock control (only NetBSD for now).
++       * non root clock control (only NetBSD and Linux for now).
+        */
++
++#ifdef HAVE_LINUX_CAPABILITIES
++      /* set flag: keep privileges accross setuid() call (we only really need cap_sys_time): */
++      if( prctl( PR_SET_KEEPCAPS, 1L, 0L, 0L, 0L ) == -1 ) {
++              msyslog( LOG_ERR, "prctl( PR_SET_KEEPCAPS, 1L ) failed: %m" );
++              exit(-1);
++      }
++#endif /* HAVE_LINUX_CAPABILITIES */
++      
++      
+       if (user != NULL) {
+               if (isdigit((unsigned char)*user)) {
+                       sw_uid = (uid_t)strtoul(user, &endp, 0);
+@@ -871,9 +885,17 @@
+                       }
+               }
+       }
+-      if (chrootdir && chroot(chrootdir)) {
+-              msyslog(LOG_ERR, "Cannot chroot to `%s': %m", chrootdir);
+-              exit (-1);
++      
++      if( chrootdir ) {
++              /* make sure cwd is inside the jail: */
++              if( chdir(chrootdir) ) {
++                      msyslog(LOG_ERR, "Cannot chdir() to `%s': %m", chrootdir);
++                      exit (-1);
++              }
++              if( chroot(chrootdir) ) {
++                      msyslog(LOG_ERR, "Cannot chroot() to `%s': %m", chrootdir);
++                      exit (-1);
++              }
+       }
+       if (group && setgid(sw_gid)) {
+               msyslog(LOG_ERR, "Cannot setgid() to group `%s': %m", group);
+@@ -891,6 +913,25 @@
+               msyslog(LOG_ERR, "Cannot seteuid() to user `%s': %m", user);
+               exit (-1);
+       }
++
++#ifdef HAVE_LINUX_CAPABILITIES
++      {
++              /*  We may be running under non-root uid now, but we still hold full root privileges!
++               *  Let's get rid of most of them; we only keep cap_sys_time:
++               */
++              cap_t caps;
++              if( ! ( caps = cap_from_text( "cap_sys_time=ipe" ) ) ) {
++                      msyslog( LOG_ERR, "cap_from_text() failed: %m" );
++                      exit(-1);
++              }
++              if( cap_set_proc( caps ) == -1 ) {
++                      msyslog( LOG_ERR, "cap_set_proc() failed to drop root privileges: %m" );
++                      exit(-1);
++              }
++              cap_free( caps );
++      }
++#endif /* HAVE_LINUX_CAPABILITIES */
++
+ #endif
+       /*
+        * Report that we're up to any trappers
diff --git a/src/patches/openswan-1.0.1-plutoctl.patch b/src/patches/openswan-1.0.1-plutoctl.patch
new file mode 100644 (file)
index 0000000..57bc6c8
--- /dev/null
@@ -0,0 +1,18 @@
+diff -ruN openswan-1.0.1.bak/pluto/server.c openswan-1.0.1/pluto/server.c
+--- openswan-1.0.1.bak/pluto/server.c  2003-11-17 00:32:11.000000000 +0100
++++ openswan-1.0.1/pluto/server.c      2004-03-12 14:58:00.000000000 +0100
+@@ -98,12 +98,13 @@
+     else
+     {
+       /* to keep control socket secure, use umask */
+-      mode_t ou = umask(~S_IRWXU);
++      mode_t ou = umask(~(S_IRWXU | S_IRWXG));
+       if (bind(ctl_fd, (struct sockaddr *)&ctl_addr
+       , offsetof(struct sockaddr_un, sun_path) + strlen(ctl_addr.sun_path)) < 0)
+           failed = "bind";
+       umask(ou);
++      chown(ctl_addr.sun_path, 0, 99);
+     }
+     /* 5 is a haphazardly chosen limit for the backlog.
diff --git a/src/patches/openswan-1.0.6-numif.patch b/src/patches/openswan-1.0.6-numif.patch
new file mode 100644 (file)
index 0000000..0aa266a
--- /dev/null
@@ -0,0 +1,342 @@
+--- openswan-1.0.6.old/klips/net/ipsec/ipsec_tunnel.c  2003-12-04 03:03:24.000000000 +0000
++++ openswan-1.0.6/klips/net/ipsec/ipsec_tunnel.c      2004-09-01 21:20:46.870711465 +0100
+@@ -3186,6 +3186,174 @@
+       return 0;
+ }
++static struct device dev_ipsec15 = 
++{
++      "ipsec15\0  ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec14 = 
++{
++      "ipsec14\0  ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec13 = 
++{
++      "ipsec13\0  ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec12 = 
++{
++      "ipsec12\0  ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec11 = 
++{
++      "ipsec11\0  ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec10 = 
++{
++      "ipsec10\0  ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec9 = 
++{
++      "ipsec9\0   ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec8 = 
++{
++      "ipsec8\0   ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec7 = 
++{
++      "ipsec7\0   ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec6 = 
++{
++      "ipsec6\0   ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec5 = 
++{
++      "ipsec5\0   ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
++static struct device dev_ipsec4 = 
++{
++      "ipsec4\0   ",          /* name */
++      0,                      /* recv memory end */
++      0,                      /* recv memory start */
++      0,                      /* memory end */
++      0,                      /* memory start */
++      0x0,                    /* base I/O address */
++      0,                      /* IRQ */
++      0, 0, 0,                /* flags */
++      NULL,                   /* next device */
++      ipsec_tunnel_probe      /* setup */
++};
++
+ static struct device dev_ipsec3 = 
+ {
+       "ipsec3\0   ",          /* name */
+@@ -3277,6 +3445,102 @@
+ #endif
+       if (register_netdev(&dev_ipsec3) != 0)
+               return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec4.name);
++#endif
++      if (register_netdev(&dev_ipsec4) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec5.name);
++#endif
++      if (register_netdev(&dev_ipsec5) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec6.name);
++#endif
++      if (register_netdev(&dev_ipsec6) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec7.name);
++#endif
++      if (register_netdev(&dev_ipsec7) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec8.name);
++#endif
++      if (register_netdev(&dev_ipsec8) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec9.name);
++#endif
++      if (register_netdev(&dev_ipsec9) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec10.name);
++#endif
++      if (register_netdev(&dev_ipsec10) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec11.name);
++#endif
++      if (register_netdev(&dev_ipsec11) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec12.name);
++#endif
++      if (register_netdev(&dev_ipsec12) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec13.name);
++#endif
++      if (register_netdev(&dev_ipsec13) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec14.name);
++#endif
++      if (register_netdev(&dev_ipsec14) != 0)
++              return -EIO;
++#if 0
++      KLIPS_PRINT(debug_tunnel & DB_TN_INIT,
++                  "klips_debug:ipsec_tunnel_init_devices: "
++                  "registering device %s\n",
++                  dev_ipsec15.name);
++#endif
++      if (register_netdev(&dev_ipsec15) != 0)
++              return -EIO;
+       return 0;
+ }
+@@ -3290,14 +3554,50 @@
+       unregister_netdev(&dev_ipsec1);
+       unregister_netdev(&dev_ipsec2);
+       unregister_netdev(&dev_ipsec3);
++      unregister_netdev(&dev_ipsec4);
++      unregister_netdev(&dev_ipsec5);
++      unregister_netdev(&dev_ipsec6);
++      unregister_netdev(&dev_ipsec7);
++      unregister_netdev(&dev_ipsec8);
++      unregister_netdev(&dev_ipsec9);
++      unregister_netdev(&dev_ipsec10);
++      unregister_netdev(&dev_ipsec11);
++      unregister_netdev(&dev_ipsec12);
++      unregister_netdev(&dev_ipsec13);
++      unregister_netdev(&dev_ipsec14);
++      unregister_netdev(&dev_ipsec15);
+       kfree(dev_ipsec0.priv);
+       kfree(dev_ipsec1.priv);
+       kfree(dev_ipsec2.priv);
+       kfree(dev_ipsec3.priv);
++      kfree(dev_ipsec4.priv);
++      kfree(dev_ipsec5.priv);
++      kfree(dev_ipsec6.priv);
++      kfree(dev_ipsec7.priv);
++      kfree(dev_ipsec8.priv);
++      kfree(dev_ipsec9.priv);
++      kfree(dev_ipsec10.priv);
++      kfree(dev_ipsec11.priv);
++      kfree(dev_ipsec12.priv);
++      kfree(dev_ipsec13.priv);
++      kfree(dev_ipsec14.priv);
++      kfree(dev_ipsec15.priv);
+       dev_ipsec0.priv=NULL;
+       dev_ipsec1.priv=NULL;
+       dev_ipsec2.priv=NULL;
+       dev_ipsec3.priv=NULL;
++      dev_ipsec4.priv=NULL;
++      dev_ipsec5.priv=NULL;
++      dev_ipsec6.priv=NULL;
++      dev_ipsec7.priv=NULL;
++      dev_ipsec8.priv=NULL;
++      dev_ipsec9.priv=NULL;
++      dev_ipsec10.priv=NULL;
++      dev_ipsec11.priv=NULL;
++      dev_ipsec12.priv=NULL;
++      dev_ipsec13.priv=NULL;
++      dev_ipsec14.priv=NULL;
++      dev_ipsec15.priv=NULL;
+       return error;
+ }
+--- openswan-1.0.6.old/klips/net/ipsec/ipsec_tunnel.h  2002-09-05 05:13:17.000000000 +0200
++++ openswan-1.0.6/klips/net/ipsec/ipsec_tunnel.h      2004-08-25 12:30:01.000000000 +0200
+@@ -98,7 +98,7 @@
+       int mtu;        /* What is the desired MTU? */
+ };
+-#define IPSEC_NUM_IF  4
++#define IPSEC_NUM_IF  16
+ extern char ipsec_tunnel_c_version[];
diff --git a/src/patches/openswan-1.0.9-restart.patch b/src/patches/openswan-1.0.9-restart.patch
new file mode 100644 (file)
index 0000000..8e491b6
--- /dev/null
@@ -0,0 +1,73 @@
+diff -rNu pluto.orig/constants.h pluto/constants.h
+--- pluto.orig/constants.h     2004-07-21 16:33:16.000000000 +0200
++++ pluto/constants.h  2004-08-22 22:45:59.000000000 +0200
+@@ -298,8 +298,9 @@
+ /* Dead Peer Detection actions */
+ enum dpd_action {
+-  DPD_ACTION_CLEAR = 0,
+-  DPD_ACTION_HOLD  = 1
++  DPD_ACTION_CLEAR    = 0,
++  DPD_ACTION_HOLD     = 1,
++  DPD_ACTION_RESTART  = 2
+ };
+ /* Timer events */
+diff -rNu pluto.orig/ipsec_doi.c pluto/ipsec_doi.c
+--- pluto.orig/ipsec_doi.c     2004-04-03 18:48:10.000000000 +0200
++++ pluto/ipsec_doi.c  2004-08-22 22:32:15.000000000 +0200
+@@ -5504,7 +5528,7 @@
+     action = st->st_connection->dpd_action;
+-    passert(action == DPD_ACTION_HOLD || action == DPD_ACTION_CLEAR);
++    passert(action == DPD_ACTION_HOLD || action == DPD_ACTION_CLEAR || action == DPD_ACTION_RESTART);
+     loglog(RC_LOG_SERIOUS, "DPD: Info: No response from peer - declaring peer dead");
+@@ -5521,11 +5545,20 @@
+          force an initiation of the conn again.  */
+       loglog(RC_LOG_SERIOUS, "DPD: Info: Putting connection into %%trap");
+-    } else {
++    } else if(action == DPD_ACTION_CLEAR) {
+       /* dpdaction=clear - Wipe the SA, eroute - everything */
+       loglog(RC_LOG_SERIOUS, "DPD: Info: Clearing Connection");
+       unroute_connection(c);
++    } else {
++      /* dpdaction=clear - Wipe the SA, eroute - everything, then restart */
++
++      loglog(RC_LOG_SERIOUS, "DPD: Info: Restarting Connection");
++      unroute_connection(c);
++        if (c->kind == CK_PERMANENT) {
++            c->initiated = TRUE;
++            ipsecdoi_initiate(NULL_FD, c, c->policy, 1, SOS_NOBODY);
++        }
+     }
+ }
+ #endif
+diff -rNu pluto.orig/whack.c pluto/whack.c
+--- pluto.orig/whack.c 2004-03-01 13:54:10.000000000 +0100
++++ pluto/whack.c      2004-08-22 22:34:56.000000000 +0200
+@@ -1033,6 +1033,9 @@
+           if( strcmp(optarg, "hold") == 0) {
+                   msg.dpd_action = DPD_ACTION_HOLD;
+           }
++          if( strcmp(optarg, "restart") == 0) {
++                  msg.dpd_action = DPD_ACTION_RESTART;
++          }
+           continue;
+ #endif
+@@ -1235,8 +1238,8 @@
+           diag("dpddelay specified, but dpdtimeout is zero, both should be specified");
+     if(!msg.dpd_delay && msg.dpd_timeout)
+           diag("dpdtimeout specified, but dpddelay is zero, both should be specified");
+-    if(msg.dpd_action != DPD_ACTION_CLEAR && msg.dpd_action != DPD_ACTION_HOLD) {
+-          diag("dpdaction can only be \"clear\" or \"hold\", defaulting to \"hold\"");
++    if(msg.dpd_action != DPD_ACTION_CLEAR && msg.dpd_action != DPD_ACTION_HOLD && msg.dpd_action != DPD_ACTION_RESTART) {
++          diag("dpdaction can only be \"restart\", \"clear\" or \"hold\", defaulting to \"hold\"");
+           msg.dpd_action = DPD_ACTION_HOLD;
+     }
+ #endif
diff --git a/src/patches/pam-0.99.3.0-hostname.patch b/src/patches/pam-0.99.3.0-hostname.patch
new file mode 100644 (file)
index 0000000..352efdd
--- /dev/null
@@ -0,0 +1,49 @@
+--- Linux-PAM-0.99.3.0/configure.in.host-name-max2005-12-12 19:56:27.000000000 +0300
++++ Linux-PAM-0.99.3.0/configure.in2006-01-28 01:31:58.000000000 +0300
+@@ -395,6 +395,46 @@
+ AC_CHECK_FUNCS(getpwnam_r getpwuid_r getgrnam_r getgrgid_r getspnam_r)
+ AC_CHECK_FUNCS(getgrouplist getline getdelim)
++AH_BOTTOM([#ifndef HAVE_HOST_NAME_MAX
++ #ifdef HAVE_MAXHOSTNAME
++  #include <sys/param.h>
++  #define HOST_NAME_MAX MAXHOSTNAME
++ #else 
++  #define HOST_NAME_MAX 64
++ #endif
++#endif])
++ac_cv_maxhostname_defined=no
++AC_CACHE_CHECK([[whether HOST_NAME_MAX is defined in limits.h]],
++[ac_cv_host_name_max_defined],
++[AC_COMPILE_IFELSE([[#include <limits.h>
++
++char name[HOST_NAME_MAX];
++
++int main()
++{
++  return 0;
++}]], [ac_cv_host_name_max_defined=yes
++ AC_MSG_RESULT([ac_cv_host_name_max_defined])],
++[ac_cv_host_name_max_defined=no
++AC_MSG_RESULT([ac_cv_host_name_max_defined])
++AC_CACHE_CHECK([[whether MAXHOSTNAME is defined in sys/param.h]],
++[ac_cv_maxhostname_defined],
++[AC_COMPILE_IFELSE([[#include <sys/param.h>
++
++char name[MAXHOSTNAME];
++
++int main()
++{
++return 0;
++}]], [ac_cv_maxhostname_defined=yes], [ac_cv_maxhostname_defined=no])])
++AC_MSG_RESULT([ac_cv_maxhostname_defined])])])
++if test $ac_cv_host_name_max_defined = yes; then
++AC_DEFINE([HAVE_HOST_NAME_MAX], 1, [Define if system header limits.h defines HOST_NAME_MAX])
++fi
++if test $ac_cv_maxhostname_defined = yes; then
++AC_DEFINE([HAVE_MAXHOSTNAME], 1, [Define if system header sys/param.h defines MAXHOSTNAME])
++fi
++
+ dnl Checks for programs/utilities
+ AC_CHECK_PROG(SGML2PS, sgml2ps, yes, no)
+ AC_CHECK_PROG(SGML2TXT, sgml2txt, yes, no)
\ No newline at end of file
diff --git a/src/patches/patch-o-matic-ng-20040621_03_2.4.29.patch b/src/patches/patch-o-matic-ng-20040621_03_2.4.29.patch
new file mode 100644 (file)
index 0000000..6fa1566
--- /dev/null
@@ -0,0 +1,97 @@
+diff -urN linux-2.4.25/net/ipv4/netfilter/ip_nat_standalone.c linux-2.4.26/net/ipv4/netfilter/ip_nat_standalone.c
+--- linux-2.4.25/net/ipv4/netfilter/ip_nat_standalone.c        2004-02-18 05:36:32.000000000 -0800
++++ linux-2.4.26/net/ipv4/netfilter/ip_nat_standalone.c        2004-04-14 06:05:41.000000000 -0700
+@@ -114,7 +114,16 @@
+               WRITE_LOCK(&ip_nat_lock);
+               /* Seen it before?  This can happen for loopback, retrans,
+                  or local packets.. */
+-              if (!(info->initialized & (1 << maniptype))) {
++              if (!(info->initialized & (1 << maniptype))
++#ifndef CONFIG_IP_NF_NAT_LOCAL
++                  /* If this session has already been confirmed we must not
++                   * touch it again even if there is no mapping set up.
++                   * Can only happen on local->local traffic with
++                   * CONFIG_IP_NF_NAT_LOCAL disabled.
++                   */
++                  && !(ct->status & IPS_CONFIRMED)
++#endif
++                  ) {
+                       unsigned int ret;
+                       if (ct->master
+diff -urN linux-2.4.25/net/ipv6/netfilter/ip6_tables.c linux-2.4.26/net/ipv6/netfilter/ip6_tables.c
+--- linux-2.4.25/net/ipv6/netfilter/ip6_tables.c       2004-02-18 05:36:32.000000000 -0800
++++ linux-2.4.26/net/ipv6/netfilter/ip6_tables.c       2004-04-14 06:05:41.000000000 -0700
+@@ -1568,8 +1568,10 @@
+         u_int16_t datalen,
+         int *hotdrop)
+ {
+-      const struct tcphdr *tcp = hdr;
++      const struct tcphdr *tcp;
+       const struct ip6t_tcp *tcpinfo = matchinfo;
++      int tcpoff;
++      u8 nexthdr = skb->nh.ipv6h->nexthdr;
+       /* To quote Alan:
+@@ -1590,6 +1592,24 @@
+               return 0;
+       }
++      tcpoff = (u8*)(skb->nh.ipv6h + 1) - skb->data;
++      tcpoff = ipv6_skip_exthdr(skb, tcpoff, &nexthdr, skb->len - tcpoff);
++      if (tcpoff < 0 || tcpoff > skb->len) {
++              duprintf("tcp_match: cannot skip exthdr. Dropping.\n");
++              *hotdrop = 1;
++              return 0;
++      } else if (nexthdr == IPPROTO_FRAGMENT)
++              return 0;
++      else if (nexthdr != IPPROTO_TCP ||
++               skb->len - tcpoff < sizeof(struct tcphdr)) {
++              /* cannot be occured */
++              duprintf("tcp_match: cannot get TCP header. Dropping.\n");
++              *hotdrop = 1;
++              return 0;
++      }
++
++      tcp = (struct tcphdr *)(skb->data + tcpoff);
++
+       /* FIXME: Try tcp doff >> packet len against various stacks --RR */
+ #define FWINVTCP(bool,invflg) ((bool) ^ !!(tcpinfo->invflags & invflg))
+@@ -1640,8 +1660,10 @@
+         u_int16_t datalen,
+         int *hotdrop)
+ {
+-      const struct udphdr *udp = hdr;
++      const struct udphdr *udp;
+       const struct ip6t_udp *udpinfo = matchinfo;
++      int udpoff;
++      u8 nexthdr = skb->nh.ipv6h->nexthdr;
+       if (offset == 0 && datalen < sizeof(struct udphdr)) {
+               /* We've been asked to examine this packet, and we
+@@ -1651,6 +1673,23 @@
+               return 0;
+       }
++      udpoff = (u8*)(skb->nh.ipv6h + 1) - skb->data;
++      udpoff = ipv6_skip_exthdr(skb, udpoff, &nexthdr, skb->len - udpoff);
++      if (udpoff < 0 || udpoff > skb->len) {
++              duprintf("udp_match: cannot skip exthdr. Dropping.\n");
++              *hotdrop = 1;
++              return 0;
++      } else if (nexthdr == IPPROTO_FRAGMENT)
++              return 0;
++      else if (nexthdr != IPPROTO_UDP ||
++               skb->len - udpoff < sizeof(struct udphdr)) {
++              duprintf("udp_match: cannot get UDP header. Dropping.\n");
++              *hotdrop = 1;
++              return 0;
++      }
++
++      udp = (struct udphdr *)(skb->data + udpoff);
++
+       /* Must not be a fragment. */
+       return !offset
+               && port_match(udpinfo->spts[0], udpinfo->spts[1],
diff --git a/src/patches/patch-o-matic-ng-20040621_pptp_2.4.29.patch b/src/patches/patch-o-matic-ng-20040621_pptp_2.4.29.patch
new file mode 100644 (file)
index 0000000..5cf7c03
--- /dev/null
@@ -0,0 +1,8 @@
+--- patch-o-matic-ng-20040621/pptp-conntrack-nat/linux/net/ipv4/netfilter/Config.in.ladd_2.origin      Fri Mar  5 10:30:28 2004
++++ patch-o-matic-ng-20040621/pptp-conntrack-nat/linux/net/ipv4/netfilter/Config.in.ladd_2     Thu Jan 27 00:42:50 2005
+@@ -1,4 +1,4 @@
+-      bool '    NAT of local connections (READ HELP)' CONFIG_IP_NF_NAT_LOCAL
++    dep_tristate '  Full NAT' CONFIG_IP_NF_NAT $CONFIG_IP_NF_IPTABLES $CONFIG_IP_NF_CONNTRACK
+       if [ "$CONFIG_IP_NF_PPTP" = "m" ]; then
+         define_tristate CONFIG_IP_NF_NAT_PPTP m
+       else
diff --git a/src/patches/patch-o-matic-ng-raw_2.4.31.patch b/src/patches/patch-o-matic-ng-raw_2.4.31.patch
new file mode 100644 (file)
index 0000000..e92cdc4
--- /dev/null
@@ -0,0 +1,263 @@
+Patch found at http://patchwork.netfilter.org/netfilter-devel/patch.pl?id=2663
+Thank to Roberto Nibali for his work
+
+diff -Nur linux-2.4.31-orig/include/linux/netfilter_ipv4/ip_conntrack.h linux-2.4.31-pab2/include/linux/netfilter_ipv4/ip_conntrack.h
+--- linux-2.4.31-orig/include/linux/netfilter_ipv4/ip_conntrack.h      2005-04-04 03:42:20 +0200
++++ linux-2.4.31-pab2/include/linux/netfilter_ipv4/ip_conntrack.h      2005-06-29 12:23:37 +0200
+@@ -249,6 +249,9 @@
+ /* Call me when a conntrack is destroyed. */
+ extern void (*ip_conntrack_destroyed)(struct ip_conntrack *conntrack);
++/* Fake conntrack entry for untracked connections */
++extern struct ip_conntrack ip_conntrack_untracked;
++
+ /* Returns new sk_buff, or NULL */
+ struct sk_buff *
+ ip_ct_gather_frags(struct sk_buff *skb, u_int32_t user);
+diff -Nur linux-2.4.31-orig/include/linux/netfilter_ipv4/ipt_conntrack.h linux-2.4.31-pab2/include/linux/netfilter_ipv4/ipt_conntrack.h
+--- linux-2.4.31-orig/include/linux/netfilter_ipv4/ipt_conntrack.h     2002-11-29 00:53:15 +0100
++++ linux-2.4.31-pab2/include/linux/netfilter_ipv4/ipt_conntrack.h     2005-06-29 12:23:37 +0200
+@@ -10,6 +10,7 @@
+ #define IPT_CONNTRACK_STATE_SNAT (1 << (IP_CT_NUMBER + 1))
+ #define IPT_CONNTRACK_STATE_DNAT (1 << (IP_CT_NUMBER + 2))
++#define IPT_CONNTRACK_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 3))
+ /* flags, invflags: */
+ #define IPT_CONNTRACK_STATE   0x01
+diff -Nur linux-2.4.31-orig/include/linux/netfilter_ipv4/ipt_state.h linux-2.4.31-pab2/include/linux/netfilter_ipv4/ipt_state.h
+--- linux-2.4.31-orig/include/linux/netfilter_ipv4/ipt_state.h 2000-04-14 18:37:20 +0200
++++ linux-2.4.31-pab2/include/linux/netfilter_ipv4/ipt_state.h 2005-06-29 12:23:37 +0200
+@@ -3,6 +3,7 @@
+ #define IPT_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1))
+ #define IPT_STATE_INVALID (1 << 0)
++#define IPT_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 1))
+ struct ipt_state_info
+ {
+diff -Nur linux-2.4.31-orig/include/linux/netfilter_ipv4.h linux-2.4.31-pab2/include/linux/netfilter_ipv4.h
+--- linux-2.4.31-orig/include/linux/netfilter_ipv4.h   2002-02-25 20:38:13 +0100
++++ linux-2.4.31-pab2/include/linux/netfilter_ipv4.h   2005-06-29 12:23:37 +0200
+@@ -51,6 +51,8 @@
+ enum nf_ip_hook_priorities {
+       NF_IP_PRI_FIRST = INT_MIN,
++      NF_IP_PRI_CONNTRACK_DEFRAG = -400,
++      NF_IP_PRI_RAW = -300,
+       NF_IP_PRI_CONNTRACK = -200,
+       NF_IP_PRI_MANGLE = -150,
+       NF_IP_PRI_NAT_DST = -100,
+diff -Nur linux-2.4.31-orig/net/ipv4/netfilter/ip_conntrack_core.c linux-2.4.31-pab2/net/ipv4/netfilter/ip_conntrack_core.c
+--- linux-2.4.31-orig/net/ipv4/netfilter/ip_conntrack_core.c   2005-04-04 03:42:20 +0200
++++ linux-2.4.31-pab2/net/ipv4/netfilter/ip_conntrack_core.c   2005-06-29 12:42:09 +0200
+@@ -65,6 +65,7 @@
+ struct list_head *ip_conntrack_hash;
+ static kmem_cache_t *ip_conntrack_cachep;
+ static LIST_HEAD(unconfirmed);
++struct ip_conntrack ip_conntrack_untracked;
+ extern struct ip_conntrack_protocol ip_conntrack_generic_protocol;
+@@ -823,6 +824,19 @@
+       int set_reply;
+       int ret;
++      /* Previously seen (loopback or untracked)?  Ignore. */
++      if ((*pskb)->nfct)
++              return NF_ACCEPT;
++
++      /* Never happen */
++      if ((*pskb)->nh.iph->frag_off & htons(IP_OFFSET)) {
++              if (net_ratelimit()) {
++              printk(KERN_ERR "ip_conntrack_in: Frag of proto %u (hook=%u)\n",
++                     (*pskb)->nh.iph->protocol, hooknum);
++              }
++              return NF_DROP;
++      }
++
+       /* FIXME: Do this right please. --RR */
+       (*pskb)->nfcache |= NFC_UNKNOWN;
+@@ -841,21 +855,6 @@
+       }
+ #endif
+-      /* Previously seen (loopback)?  Ignore.  Do this before
+-           fragment check. */
+-      if ((*pskb)->nfct)
+-              return NF_ACCEPT;
+-
+-      /* Gather fragments. */
+-      if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) {
+-              *pskb = ip_ct_gather_frags(*pskb,
+-                                         hooknum == NF_IP_PRE_ROUTING ?
+-                                         IP_DEFRAG_CONNTRACK_IN :
+-                                         IP_DEFRAG_CONNTRACK_OUT);
+-              if (!*pskb)
+-                      return NF_STOLEN;
+-      }
+-
+       proto = ip_ct_find_proto((*pskb)->nh.iph->protocol);
+       /* It may be an icmp error... */
+@@ -1392,6 +1391,8 @@
+               schedule();
+               goto i_see_dead_people;
+       }
++      while (atomic_read(&ip_conntrack_untracked.ct_general.use) > 1)
++              schedule();
+       kmem_cache_destroy(ip_conntrack_cachep);
+       vfree(ip_conntrack_hash);
+@@ -1459,6 +1460,18 @@
+       /* For use by ipt_REJECT */
+       ip_ct_attach = ip_conntrack_attach;
++
++      /* Set up fake conntrack:
++              - never to be deleted, not in any hashes */
++      atomic_set(&ip_conntrack_untracked.ct_general.use, 1);
++      /*      - and let it look as if it's a confirmed connection */
++      set_bit(IPS_CONFIRMED_BIT, &ip_conntrack_untracked.status);
++      /*      - and prepare the ctinfo field for REJECT/NAT. */
++      ip_conntrack_untracked.infos[IP_CT_NEW].master =
++      ip_conntrack_untracked.infos[IP_CT_RELATED].master =
++      ip_conntrack_untracked.infos[IP_CT_RELATED + IP_CT_IS_REPLY].master =
++              &ip_conntrack_untracked.ct_general;
++
+       return ret;
+ err_free_hash:
+diff -Nur linux-2.4.31-orig/net/ipv4/netfilter/ip_conntrack_standalone.c linux-2.4.31-pab2/net/ipv4/netfilter/ip_conntrack_standalone.c
+--- linux-2.4.31-orig/net/ipv4/netfilter/ip_conntrack_standalone.c     2005-04-04 03:42:20 +0200
++++ linux-2.4.31-pab2/net/ipv4/netfilter/ip_conntrack_standalone.c     2005-06-29 12:23:37 +0200
+@@ -189,6 +189,29 @@
+       return ip_conntrack_confirm(*pskb);
+ }
++static unsigned int ip_conntrack_defrag(unsigned int hooknum,
++                                      struct sk_buff **pskb,
++                                      const struct net_device *in,
++                                      const struct net_device *out,
++                                      int (*okfn)(struct sk_buff *))
++{
++      /* Previously seen (loopback)?  Ignore.  Do this before
++       * fragment check. */
++      if ((*pskb)->nfct)
++              return NF_ACCEPT;
++
++        /* Gather fragments. */
++        if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) {
++                *pskb = ip_ct_gather_frags(*pskb,
++                                           hooknum == NF_IP_PRE_ROUTING ?
++                                           IP_DEFRAG_CONNTRACK_IN :
++                                           IP_DEFRAG_CONNTRACK_OUT);
++                if (!*pskb)
++                        return NF_STOLEN;
++        }
++      return NF_ACCEPT;
++}
++
+ static unsigned int ip_refrag(unsigned int hooknum,
+                             struct sk_buff **pskb,
+                             const struct net_device *in,
+@@ -230,9 +253,15 @@
+ /* Connection tracking may drop packets, but never alters them, so
+    make it the first hook. */
++static struct nf_hook_ops ip_conntrack_defrag_ops
++= { { NULL, NULL }, ip_conntrack_defrag, PF_INET, NF_IP_PRE_ROUTING,
++      NF_IP_PRI_CONNTRACK_DEFRAG };
+ static struct nf_hook_ops ip_conntrack_in_ops
+ = { { NULL, NULL }, ip_conntrack_in, PF_INET, NF_IP_PRE_ROUTING,
+       NF_IP_PRI_CONNTRACK };
++static struct nf_hook_ops ip_conntrack_defrag_local_out_ops
++= { { NULL, NULL }, ip_conntrack_defrag, PF_INET, NF_IP_LOCAL_OUT,
++      NF_IP_PRI_CONNTRACK_DEFRAG };
+ static struct nf_hook_ops ip_conntrack_local_out_ops
+ = { { NULL, NULL }, ip_conntrack_local, PF_INET, NF_IP_LOCAL_OUT,
+       NF_IP_PRI_CONNTRACK };
+@@ -353,10 +382,21 @@
+       if (!proc) goto cleanup_init;
+       proc->owner = THIS_MODULE;
++      ret = nf_register_hook(&ip_conntrack_defrag_ops);
++      if (ret < 0) {
++              printk("ip_conntrack: can't register pre-routing defrag hook.\n");
++              goto cleanup_proc;
++      }
++      ret = nf_register_hook(&ip_conntrack_defrag_local_out_ops);
++      if (ret < 0) {
++              printk("ip_conntrack: can't register local_out defrag hook.\n");
++              goto cleanup_defragops;
++      }
++
+       ret = nf_register_hook(&ip_conntrack_in_ops);
+       if (ret < 0) {
+               printk("ip_conntrack: can't register pre-routing hook.\n");
+-              goto cleanup_proc;
++              goto cleanup_defraglocalops;
+       }
+       ret = nf_register_hook(&ip_conntrack_local_out_ops);
+       if (ret < 0) {
+@@ -394,6 +434,10 @@
+       nf_unregister_hook(&ip_conntrack_local_out_ops);
+  cleanup_inops:
+       nf_unregister_hook(&ip_conntrack_in_ops);
++ cleanup_defraglocalops:
++      nf_unregister_hook(&ip_conntrack_defrag_local_out_ops);
++ cleanup_defragops:
++      nf_unregister_hook(&ip_conntrack_defrag_ops);
+  cleanup_proc:
+       proc_net_remove("ip_conntrack");
+  cleanup_init:
+@@ -483,5 +527,6 @@
+ EXPORT_SYMBOL(ip_conntrack_expect_list);
+ EXPORT_SYMBOL(ip_conntrack_lock);
+ EXPORT_SYMBOL(ip_conntrack_hash);
++EXPORT_SYMBOL(ip_conntrack_untracked);
+ EXPORT_SYMBOL_GPL(ip_conntrack_find_get);
+ EXPORT_SYMBOL_GPL(ip_conntrack_put);
+diff -Nur linux-2.4.31-orig/net/ipv4/netfilter/ip_nat_core.c linux-2.4.31-pab2/net/ipv4/netfilter/ip_nat_core.c
+--- linux-2.4.31-orig/net/ipv4/netfilter/ip_nat_core.c 2005-04-04 03:42:20 +0200
++++ linux-2.4.31-pab2/net/ipv4/netfilter/ip_nat_core.c 2005-06-29 12:23:37 +0200
+@@ -1024,6 +1024,10 @@
+       IP_NF_ASSERT(ip_conntrack_destroyed == NULL);
+       ip_conntrack_destroyed = &ip_nat_cleanup_conntrack;
++      /* Initialize fake conntrack so that NAT will skip it */
++      ip_conntrack_untracked.nat.info.initialized |=
++              (1 << IP_NAT_MANIP_SRC) | (1 << IP_NAT_MANIP_DST);
++
+       return 0;
+ }
+diff -Nur linux-2.4.31-orig/net/ipv4/netfilter/ipt_conntrack.c linux-2.4.31-pab2/net/ipv4/netfilter/ipt_conntrack.c
+--- linux-2.4.31-orig/net/ipv4/netfilter/ipt_conntrack.c       2004-02-18 14:36:32 +0100
++++ linux-2.4.31-pab2/net/ipv4/netfilter/ipt_conntrack.c       2005-06-29 12:23:37 +0200
+@@ -27,7 +27,9 @@
+ #define FWINV(bool,invflg) ((bool) ^ !!(sinfo->invflags & invflg))
+-      if (ct)
++      if (skb->nfct == &ip_conntrack_untracked.infos[IP_CT_NEW])
++              statebit = IPT_CONNTRACK_STATE_UNTRACKED;
++      else if (ct)
+               statebit = IPT_CONNTRACK_STATE_BIT(ctinfo);
+       else
+               statebit = IPT_CONNTRACK_STATE_INVALID;
+diff -Nur linux-2.4.31-orig/net/ipv4/netfilter/ipt_state.c linux-2.4.31-pab2/net/ipv4/netfilter/ipt_state.c
+--- linux-2.4.31-orig/net/ipv4/netfilter/ipt_state.c   2004-02-18 14:36:32 +0100
++++ linux-2.4.31-pab2/net/ipv4/netfilter/ipt_state.c   2005-06-29 12:23:37 +0200
+@@ -21,7 +21,9 @@
+       enum ip_conntrack_info ctinfo;
+       unsigned int statebit;
+-      if (!ip_conntrack_get((struct sk_buff *)skb, &ctinfo))
++      if (skb->nfct == &ip_conntrack_untracked.infos[IP_CT_NEW])
++              statebit = IPT_STATE_UNTRACKED;
++      else if (!ip_conntrack_get((struct sk_buff *)skb, &ctinfo))
+               statebit = IPT_STATE_INVALID;
+       else
+               statebit = IPT_STATE_BIT(ctinfo);
diff --git a/src/patches/pcre-4.5-CAN-2005-2491.patch b/src/patches/pcre-4.5-CAN-2005-2491.patch
new file mode 100644 (file)
index 0000000..cd949ef
--- /dev/null
@@ -0,0 +1,54 @@
+--- pcre-4.5/pcre.c.tn 2003-12-10 17:45:44.000000000 +0100
++++ pcre-4.5/pcre.c    2005-08-19 15:11:17.000000000 +0200
+@@ -1047,7 +1047,18 @@
+ int min = 0;
+ int max = -1;
++/* Read the minimum value and do a paranoid check: a negative value indicates
++an integer overflow. */
++
+ while ((digitab[*p] & ctype_digit) != 0) min = min * 10 + *p++ - '0';
++if (min < 0 || min > 65535)
++  {
++  *errorptr = ERR5;
++  return p;
++  }
++
++/* Read the maximum value if there is one, and again do a paranoid on its size.
++Also, max must not be less than min. */
+ if (*p == '}') max = min; else
+   {
+@@ -1055,6 +1066,11 @@
+     {
+     max = 0;
+     while((digitab[*p] & ctype_digit) != 0) max = max * 10 + *p++ - '0';
++    if (max < 0 || max > 65535)
++      {
++      *errorptr = ERR5;
++      return p;
++      }
+     if (max < min)
+       {
+       *errorptr = ERR4;
+@@ -1063,16 +1079,11 @@
+     }
+   }
+-/* Do paranoid checks, then fill in the required variables, and pass back the
+-pointer to the terminating '}'. */
++/* Fill in the required variables, and pass back the pointer to the terminating
++'}'. */
+-if (min > 65535 || max > 65535)
+-  *errorptr = ERR5;
+-else
+-  {
+-  *minp = min;
+-  *maxp = max;
+-  }
++*minp = min;
++*maxp = max;
+ return p;
+ }
diff --git a/src/patches/perl-5.8.5-perlio_debug_security.patch b/src/patches/perl-5.8.5-perlio_debug_security.patch
new file mode 100644 (file)
index 0000000..2d43ebc
--- /dev/null
@@ -0,0 +1,22 @@
+diff -uwr perl-5.8.5/perlio.c perl-5.8.5-patched/perlio.c
+--- perl-5.8.5/perlio.c        2004-03-16 18:36:08.000000000 +0000
++++ perl-5.8.5-patched/perlio.c        2005-02-05 13:24:58.764830408 +0000
+@@ -448,7 +448,7 @@
+     va_list ap;
+     dSYS;
+     va_start(ap, fmt);
+-    if (!dbg) {
++    if (!dbg && !PL_tainting && PL_uid == PL_euid && PL_gid == PL_egid) {
+       char *s = PerlEnv_getenv("PERLIO_DEBUG");
+       if (s && *s)
+           dbg = PerlLIO_open3(s, O_WRONLY | O_CREAT | O_APPEND, 0666);
+@@ -465,7 +465,7 @@
+       s = CopFILE(PL_curcop);
+       if (!s)
+           s = "(none)";
+-      sprintf(buffer, "%s:%" IVdf " ", s, (IV) CopLINE(PL_curcop));
++      sprintf(buffer, "%.40s:%" IVdf " ", s, (IV) CopLINE(PL_curcop));
+       len = strlen(buffer);
+       vsprintf(buffer+len, fmt, ap);
+       PerlLIO_write(dbg, buffer, strlen(buffer));
+Only in perl-5.8.5-patched: perlio.c.orig
diff --git a/src/patches/perl-5.8.5-tempfiles.patch b/src/patches/perl-5.8.5-tempfiles.patch
new file mode 100644 (file)
index 0000000..be0d64e
--- /dev/null
@@ -0,0 +1,60 @@
+diff -ur perl-5.8.5.orig/lib/ExtUtils/instmodsh perl-5.8.5/lib/ExtUtils/instmodsh
+--- perl-5.8.5.orig/lib/ExtUtils/instmodsh     Tue Sep 30 17:10:47 2003
++++ perl-5.8.5/lib/ExtUtils/instmodsh  Mon Jan 19 20:14:11 2004
+@@ -2,6 +2,7 @@
+ use strict;
+ use IO::File;
++use File::Temp;
+ use ExtUtils::Packlist;
+ use ExtUtils::Installed;
+@@ -58,16 +59,12 @@
+       $reply =~ /^t\s*/ and do
+          {
+          my $file = (split(' ', $reply))[1];
+-         my $tmp = "/tmp/inst.$$";
+-         if (my $fh = IO::File->new($tmp, "w"))
+-            {
+-            $fh->print(join("\n", $Inst->files($module)));
+-            $fh->close();
+-            system("tar cvf $file -I $tmp");
+-            unlink($tmp);
+-            last CASE;
+-            }
+-         else { print("Can't open $file: $!\n"); }
++         my ($fh, $tmp) = File::Temp::tempfile(UNLINK => 1);
++         $fh->print(join("\n", $Inst->files($module)));
++         $fh->close();
++         # This used to use -I which is wrong for GNU tar.
++         system("tar cvf $file -T $tmp");
++         unlink($tmp);
+          last CASE;
+          };
+       $reply eq 'v' and do
+
+diff -ur perl-5.8.5.orig/lib/perl5db.pl perl-5.8.5/lib/perl5db.pl
+--- perl-5.8.5.orig/lib/perl5db.pl     Mon Jan 19 18:46:25 2004
++++ perl-5.8.5/lib/perl5db.pl  Mon Jan 19 20:14:11 2004
+@@ -206,7 +206,7 @@
+ =item * noTTY 
+ if set, goes in NonStop mode.  On interrupt, if TTY is not set,
+-uses the value of noTTY or "/tmp/perldbtty$$" to find TTY using
++uses the value of noTTY or "/var/run/perldbtty$$" to find TTY using
+ Term::Rendezvous.  Current variant is to have the name of TTY in this
+ file.
+@@ -5689,8 +5689,8 @@
+         else {
+             eval "require Term::Rendezvous;" or die;
+             # See if we have anything to pass to Term::Rendezvous.
+-            # Use /tmp/perldbtty$$ if not.
+-            my $rv = $ENV{PERLDB_NOTTY} || "/tmp/perldbtty$$";
++            # Use /var/run/perldbtty$$ if not.
++            my $rv = $ENV{PERLDB_NOTTY} || "/var/run/perldbtty$$";
+             # Rendezvous and get the filehandles.
+             my $term_rv = new Term::Rendezvous $rv;
+
+
diff --git a/src/patches/perl.patch b/src/patches/perl.patch
new file mode 100644 (file)
index 0000000..c89f3fa
--- /dev/null
@@ -0,0 +1,26 @@
+--- perl-5.8.4/lib/CGI.pm.old  2004-03-11 20:55:39.000000000 +0000
++++ perl-5.8.4/lib/CGI.pm      2003-09-30 18:10:42.000000000 +0100
+@@ -328,20 +328,9 @@
+   return $self;
+ }
+-# We provide a DESTROY method so that we can ensure that
+-# temporary files are closed (via Fh->DESTROY) before they
+-# are unlinked (via CGITempFile->DESTROY) because it is not
+-# possible to unlink an open file on Win32. We explicitly
+-# call DESTROY on each, rather than just undefing them and
+-# letting Perl DESTROY them by garbage collection, in case the
+-# user is still holding any reference to them as well.
+-sub DESTROY {
+-  my $self = shift;
+-  foreach my $href (values %{$self->{'.tmpfiles'}}) {
+-    $href->{hndl}->DESTROY if defined $href->{hndl};
+-    $href->{name}->DESTROY if defined $href->{name};
+-  }
+-}
++# We provide a DESTROY method so that the autoloader
++# doesn't bother trying to find it.
++sub DESTROY { }
+ sub r {
+   my $self = shift;
diff --git a/src/patches/pomng.fix b/src/patches/pomng.fix
new file mode 100644 (file)
index 0000000..1e7fd5f
--- /dev/null
@@ -0,0 +1,11 @@
+--- linux-2.4.patch.old        2004-08-11 19:57:22.498678130 +0100
++++ linux-2.4.patch    2004-08-11 19:57:36.474241273 +0100
+@@ -402,7 +402,7 @@
+ +     }
+ +
+ +     /* if threshold is reached, send message to userspace */
+-+     if (qlen >= loginfo.qthreshold) {
+++     if (ub->qlen >= loginfo.qthreshold) {
+ +             if (loginfo.qthreshold > 1)
+ +                     nlh->nlmsg_type = NLMSG_DONE;
+ +     }
diff --git a/src/patches/ppp-2.4.1-oedod.patch b/src/patches/ppp-2.4.1-oedod.patch
new file mode 100644 (file)
index 0000000..e024696
--- /dev/null
@@ -0,0 +1,172 @@
+--- ppp/pppd/demand.c
++++ ppp/pppd/demand.c  2000/06/28 14:54:04
+@@ -25,6 +25,8 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <netdb.h>
++#include <unistd.h>
++#include <syslog.h>
+ #include <sys/param.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+@@ -32,6 +34,8 @@
+ #include <sys/resource.h>
+ #include <sys/stat.h>
+ #include <sys/socket.h>
++#include <netinet/in.h>
++#include <arpa/inet.h>
+ #ifdef PPP_FILTER
+ #include <net/if.h>
+ #include <net/bpf.h>
+@@ -210,6 +214,14 @@
+     int c, rv;
+     rv = 0;
++
++/* check for synchronous connection... */
++
++    if ( (p[0] == 0xFF) && (p[1] == 0x03) ) {
++        rv = loop_frame(p,n);
++        return rv;
++    }
++
+     for (; n > 0; --n) {
+       c = *p++;
+       if (c == PPP_FLAG) {
+@@ -288,17 +300,102 @@
+  * loopback, now that the real serial link is up.
+  */
+ void
+-demand_rexmit(proto)
++demand_rexmit(proto, newip)
+     int proto;
++    u_int32_t newip;
+ {
+     struct packet *pkt, *prev, *nextpkt;
++    unsigned short checksum;
++    unsigned short pkt_checksum = 0;
++    unsigned iphdr;
++    struct timeval tv;
++    char cv = 0;
++    char ipstr[16];
+     prev = NULL;
+     pkt = pend_q;
+     pend_q = NULL;
++    tv.tv_sec = 1;
++    tv.tv_usec = 0;
++    select(0,NULL,NULL,NULL,&tv);     /* Sleep for 1 Seconds */
+     for (; pkt != NULL; pkt = nextpkt) {
+       nextpkt = pkt->next;
+       if (PPP_PROTOCOL(pkt->data) == proto) {
++            if ( (proto == PPP_IP) && newip ) {
++              /* Get old checksum */
++
++              iphdr = (pkt->data[4] & 15) << 2;
++              checksum = *((unsigned short *) (pkt->data+14));
++                if (checksum == 0xFFFF) {
++                    checksum = 0;
++                }
++
++ 
++                if (pkt->data[13] == 17) {
++                    pkt_checksum =  *((unsigned short *) (pkt->data+10+iphdr));
++                  if (pkt_checksum) {
++                        cv = 1;
++                        if (pkt_checksum == 0xFFFF) {
++                            pkt_checksum = 0;
++                        }
++                    }
++                    else {
++                       cv = 0;
++                    }
++                }
++
++              if (pkt->data[13] == 6) {
++                  pkt_checksum = *((unsigned short *) (pkt->data+20+iphdr));
++                  cv = 1;
++                    if (pkt_checksum == 0xFFFF) {
++                        pkt_checksum = 0;
++                    }
++              }
++
++              /* Delete old Source-IP-Address */
++                checksum -= *((unsigned short *) (pkt->data+16)) ^ 0xFFFF;
++                checksum -= *((unsigned short *) (pkt->data+18)) ^ 0xFFFF;
++
++              pkt_checksum -= *((unsigned short *) (pkt->data+16)) ^ 0xFFFF;
++              pkt_checksum -= *((unsigned short *) (pkt->data+18)) ^ 0xFFFF;
++
++              /* Change Source-IP-Address */
++                * ((u_int32_t *) (pkt->data + 16)) = newip;
++
++              /* Add new Source-IP-Address */
++                checksum += *((unsigned short *) (pkt->data+16)) ^ 0xFFFF;
++                checksum += *((unsigned short *) (pkt->data+18)) ^ 0xFFFF;
++
++                pkt_checksum += *((unsigned short *) (pkt->data+16)) ^ 0xFFFF;
++                pkt_checksum += *((unsigned short *) (pkt->data+18)) ^ 0xFFFF;
++
++              /* Write new checksum */
++                if (!checksum) {
++                    checksum = 0xFFFF;
++                }
++                *((unsigned short *) (pkt->data+14)) = checksum;
++              if (pkt->data[13] == 6) {
++                  *((unsigned short *) (pkt->data+20+iphdr)) = pkt_checksum;
++              }
++              if (cv && (pkt->data[13] == 17) ) {
++                  *((unsigned short *) (pkt->data+10+iphdr)) = pkt_checksum;
++              }
++
++              /* Log Packet */
++              strcpy(ipstr,inet_ntoa(*( (struct in_addr *) (pkt->data+16))));
++              if (pkt->data[13] == 1) {
++                  syslog(LOG_INFO,"Open ICMP %s -> %s\n",
++                      ipstr,
++                      inet_ntoa(*( (struct in_addr *) (pkt->data+20))));
++              } else {
++                  syslog(LOG_INFO,"Open %s %s:%d -> %s:%d\n",
++                      pkt->data[13] == 6 ? "TCP" : "UDP",
++                      ipstr,
++                      ntohs(*( (short *) (pkt->data+iphdr+4))),
++                      inet_ntoa(*( (struct in_addr *) (pkt->data+20))),
++                      ntohs(*( (short *) (pkt->data+iphdr+6))));
++                }
++            }
+           output(0, pkt->data, pkt->length);
+           free(pkt);
+       } else {
+--- ppp/pppd/ipcp.c
++++ ppp/pppd/ipcp.c    2000/06/28 12:32:05
+@@ -1454,7 +1454,7 @@
+                   proxy_arp_set[f->unit] = 1;
+       }
+-      demand_rexmit(PPP_IP);
++      demand_rexmit(PPP_IP,go->ouraddr);
+       sifnpmode(f->unit, PPP_IP, NPMODE_PASS);
+     } else {
+--- ppp/pppd/ipv6cp.c
++++ ppp/pppd/ipv6cp.c  2000/06/28 12:32:06
+@@ -1153,7 +1153,7 @@
+           }
+       }
+-      demand_rexmit(PPP_IPV6);
++      demand_rexmit(PPP_IPV6,0);
+       sifnpmode(f->unit, PPP_IPV6, NPMODE_PASS);
+     } else {
+--- ppp/pppd/pppd.h
++++ ppp/pppd/pppd.h    2000/06/28 12:32:06
+@@ -359,7 +359,7 @@
+ 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 */
++void demand_rexmit __P((int, u_int32_t)); /* 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? */
diff --git a/src/patches/ppp-2.4.2-close.patch b/src/patches/ppp-2.4.2-close.patch
new file mode 100644 (file)
index 0000000..5da8265
--- /dev/null
@@ -0,0 +1,15 @@
+diff -ur ppp-2.4.2.old/pppd/main.c ppp-2.4.2/pppd/main.c
+--- ppp-2.4.2.old/pppd/main.c  2004-01-13 04:00:34.000000000 +0000
++++ ppp-2.4.2/pppd/main.c      2004-05-24 19:05:34.000000000 +0100
+@@ -1662,8 +1648,11 @@
+     /* Ensure that nothing of our device environment is inherited. */
+     closelog();
++    /* Some plugins dont have a close function, so just close the devfd */
+     if (the_channel->close)
+       (*the_channel->close)();
++    else
++      close(devfd);
+     /* Don't pass handles to the PPP device, even by accident. */
+     dup2(fd_devnull, 0);
diff --git a/src/patches/ppp-2.4.2-pppoatm-modprobe.patch b/src/patches/ppp-2.4.2-pppoatm-modprobe.patch
new file mode 100644 (file)
index 0000000..310f1c0
--- /dev/null
@@ -0,0 +1,13 @@
+diff -ruN ppp.orig/pppd/plugins/pppoatm.c ppp/pppd/plugins/pppoatm.c
+--- ppp.orig/pppd/plugins/pppoatm.c    2003-10-17 22:03:40.000000000 +0200
++++ ppp/pppd/plugins/pppoatm.c 2003-10-17 22:03:27.000000000 +0200
+@@ -148,7 +148,9 @@
+       int fd;
+       struct atm_qos qos;
++/*
+       system ("/sbin/modprobe pppoatm");
++*/
+       if (!device_got_set)
+               no_device_given_pppoatm();
diff --git a/src/patches/ppp-2.4.2-pppoatm-persist.patch b/src/patches/ppp-2.4.2-pppoatm-persist.patch
new file mode 100644 (file)
index 0000000..a2db1b4
--- /dev/null
@@ -0,0 +1,36 @@
+--- ppp/pppd/plugins/pppoatm.c~        2003-07-19 15:35:24.000000000 +0200
++++ ppp/pppd/plugins/pppoatm.c 2003-07-19 15:42:26.000000000 +0200
+@@ -32,6 +32,7 @@
+ static bool vc_encaps = 0;
+ static int device_got_set = 0;
+ static int pppoatm_max_mtu, pppoatm_max_mru;
++static int pppoatmfd = -1;
+ static int setdevname_pppoatm(const char *cp, const char **argv, int doit);
+ struct channel pppoa_channel;
+@@ -173,9 +174,16 @@
+       pppoatm_max_mru = lcp_wantoptions[0].mru;
+       set_line_discipline_pppoatm(fd);
+       strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
++      pppoatmfd = fd; /* need to save it for disconnect */
+       return fd;
+ }
++static void disconnect_pppoatm(void)
++{
++      close(pppoatmfd);
++      pppoatmfd = -1;
++}
++
+ static void send_config_pppoa(int mtu,
+                             u_int32_t asyncmap,
+                             int pcomp,
+@@ -222,7 +230,7 @@
+     process_extra_options: NULL,
+     check_options: NULL,
+     connect: &connect_pppoatm,
+-    disconnect: NULL,
++    disconnect: &disconnect_pppoatm,
+     establish_ppp: &generic_establish_ppp,
+     disestablish_ppp: &generic_disestablish_ppp,
+     send_config: &send_config_pppoa,
diff --git a/src/patches/ppp-2.4.2-pppoatm.patch b/src/patches/ppp-2.4.2-pppoatm.patch
new file mode 100644 (file)
index 0000000..c79cfd7
--- /dev/null
@@ -0,0 +1,284 @@
+diff -u -r -N a/ppp/pppd/plugins/Makefile.linux ppp/pppd/plugins/Makefile.linux
+--- a/ppp/pppd/plugins/Makefile.linux  2003-02-16 23:31:24.000000000 +0100
++++ b/pppd/plugins/Makefile.linux      2003-07-01 11:39:05.000000000 +0200
+@@ -6,7 +6,7 @@
+ SUBDIRS := rp-pppoe
+ # Uncomment the next line to include the radius authentication plugin
+ # SUBDIRS += radius
+-PLUGINS := minconn.so passprompt.so passwordfd.so
++PLUGINS := minconn.so passprompt.so passwordfd.so pppoatm.so
+ # include dependencies if present
+ ifeq (.depend,$(wildcard .depend))
+@@ -16,6 +16,9 @@
+ all:  $(PLUGINS)
+       for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d all; done
++pppoatm.so: pppoatm.c
++      $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $^ -latm -lresolv
++
+ %.so: %.c
+       $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $^
+diff -u -r -N a/ppp/pppd/plugins/pppoatm.c ppp/pppd/plugins/pppoatm.c
+--- /dev/null  1970-01-01 01:00:00.000000000 +0100
++++ b/pppd/plugins/pppoatm.c   2003-07-01 11:39:37.000000000 +0200
+@@ -0,0 +1,232 @@
++/* pppoatm.c - pppd plugin to implement PPPoATM protocol.
++ *
++ * Copyright 2000 Mitchell Blank Jr.
++ * Based in part on work from Jens Axboe and Paul Mackerras.
++ * Updated to ppp-2.4.1 by Bernhard Kaindl
++ *
++ *  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 <unistd.h>
++#include <string.h>
++#include <stdlib.h>
++#include "pppd.h"
++#include "pathnames.h"
++#include "fsm.h" /* Needed for lcp.h to include cleanly */
++#include "lcp.h"
++#include <atm.h>
++#include <linux/atmdev.h>
++#include <linux/atmppp.h>
++#include <sys/stat.h>
++#include <net/if.h>
++#include <sys/ioctl.h>
++
++const char pppd_version[] = VERSION;
++
++static struct sockaddr_atmpvc pvcaddr;
++static char *qosstr = NULL;
++/* static int pppoatm_accept = 0; */
++static bool llc_encaps = 0;
++static bool vc_encaps = 0;
++static int device_got_set = 0;
++static int pppoatm_max_mtu, pppoatm_max_mru;
++static int setdevname_pppoatm(const char *cp, const char **argv, int doit);
++struct channel pppoa_channel;
++
++static option_t pppoa_options[] = {
++      { "device name", o_wild, (void *) &setdevname_pppoatm,
++        "ATM service provider IDs: VPI.VCI",
++        OPT_DEVNAM | OPT_PRIVFIX | OPT_NOARG  | OPT_A2STRVAL | OPT_STATIC,
++        devnam},
++#if 0
++      { "accept", o_bool, &pppoatm_accept,
++        "set PPPoATM socket to accept incoming connections", 1 },
++#endif
++      { "llc-encaps", o_bool, &llc_encaps,
++        "use LLC encapsulation for PPPoATM", 1},
++      { "vc-encaps", o_bool, &vc_encaps,
++        "use VC multiplexing for PPPoATM (default)", 1},
++      { "qos", o_string, &qosstr,
++        "set QoS for PPPoATM connection", 1},
++      { NULL }
++};
++
++/* returns:
++ *  -1 if there's a problem with setting the device
++ *   0 if we can't parse "cp" as a valid name of a device
++ *   1 if "cp" is a reasonable thing to name a device
++ * Note that we don't actually open the device at this point
++ * We do need to fill in:
++ *   devnam: a string representation of the device
++ *   devstat: a stat structure of the device.  In this case
++ *     we're not opening a device, so we just make sure
++ *     to set up S_ISCHR(devstat.st_mode) != 1, so we
++ *     don't get confused that we're on stdin.
++ */
++int (*old_setdevname_hook)(const char* cp) = NULL;
++static int setdevname_pppoatm(const char *cp, const char **argv, int doit)
++{
++      struct sockaddr_atmpvc addr;
++      extern struct stat devstat;
++      if (device_got_set)
++              return 0;
++      //info("PPPoATM setdevname_pppoatm: '%s'", cp);
++      memset(&addr, 0, sizeof addr);
++      if (text2atm(cp, (struct sockaddr *) &addr, sizeof(addr),
++          T2A_PVC | T2A_NAME) < 0) {
++               if(doit)
++                   info("atm does not recognize: %s", cp);
++              return 0;
++           }
++      if (!doit) return 1;
++      //if (!dev_set_ok()) return -1;
++      memcpy(&pvcaddr, &addr, sizeof pvcaddr);
++      strlcpy(devnam, cp, sizeof devnam);
++      devstat.st_mode = S_IFSOCK;
++      if (the_channel != &pppoa_channel) {
++              static char *bad_options[] = {
++                      "noaccomp", "-ac",
++                      "default-asyncmap", "-am", "asyncmap", "-as", "escape",
++                      "receive-all",
++                      "crtscts", "-crtscts", "nocrtscts",
++                      "cdtrcts", "nocdtrcts",
++                      "xonxoff",
++                      "modem", "local", "sync",
++                      NULL };
++                      char **a;
++              the_channel = &pppoa_channel;
++              info("PPPoATM setdevname - remove unwanted options");
++              for (a = bad_options; *a != NULL; a++)
++                      remove_option(*a);
++              modem = 0;
++              lcp_wantoptions[0].neg_accompression = 0;
++              lcp_allowoptions[0].neg_accompression = 0;
++              lcp_wantoptions[0].neg_asyncmap = 0;
++              lcp_allowoptions[0].neg_asyncmap = 0;
++              lcp_wantoptions[0].neg_pcompression = 0;
++      }
++      info("PPPoATM setdevname_pppoatm - SUCCESS:%s", cp);
++      device_got_set = 1;
++      return 1;
++}
++
++#define pppoatm_overhead() (llc_encaps ? 6 : 2)
++
++static void no_device_given_pppoatm(void)
++{
++      fatal("No vpi.vci specified");
++}
++
++static void set_line_discipline_pppoatm(int fd)
++{
++      struct atm_backend_ppp be;
++      be.backend_num = ATM_BACKEND_PPP;
++      if (!llc_encaps)
++              be.encaps = PPPOATM_ENCAPS_VC;
++      else if (!vc_encaps)
++              be.encaps = PPPOATM_ENCAPS_LLC;
++      else
++              be.encaps = PPPOATM_ENCAPS_AUTODETECT;
++      if (ioctl(fd, ATM_SETBACKEND, &be) < 0)
++              fatal("ioctl(ATM_SETBACKEND): %m");
++}
++
++#if 0
++static void reset_line_discipline_pppoatm(int fd)
++{
++      atm_backend_t be = ATM_BACKEND_RAW;
++      /* 2.4 doesn't support this yet */
++      (void) ioctl(fd, ATM_SETBACKEND, &be);
++}
++#endif
++
++static int connect_pppoatm(void)
++{
++      int fd;
++      struct atm_qos qos;
++
++      system ("/sbin/modprobe pppoatm");
++
++      if (!device_got_set)
++              no_device_given_pppoatm();
++      fd = socket(AF_ATMPVC, SOCK_DGRAM, 0);
++      if (fd < 0)
++              fatal("failed to create socket: %m");
++      memset(&qos, 0, sizeof qos);
++      qos.txtp.traffic_class = qos.rxtp.traffic_class = ATM_UBR;
++      /* TODO: support simplified QoS setting */
++      if (qosstr != NULL)
++              if (text2qos(qosstr, &qos, 0))
++                      fatal("Can't parse QoS: \"%s\"");
++      qos.txtp.max_sdu = lcp_allowoptions[0].mru + pppoatm_overhead();
++      qos.rxtp.max_sdu = lcp_wantoptions[0].mru + pppoatm_overhead();
++      qos.aal = ATM_AAL5;
++      if (setsockopt(fd, SOL_ATM, SO_ATMQOS, &qos, sizeof(qos)) < 0)
++              fatal("setsockopt(SO_ATMQOS): %m");
++      /* TODO: accept on SVCs... */
++      if (connect(fd, (struct sockaddr *) &pvcaddr,
++          sizeof(struct sockaddr_atmpvc)))
++              fatal("connect(%s): %m", devnam);
++      pppoatm_max_mtu = lcp_allowoptions[0].mru;
++      pppoatm_max_mru = lcp_wantoptions[0].mru;
++      set_line_discipline_pppoatm(fd);
++      strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
++      return fd;
++}
++
++static void send_config_pppoa(int mtu,
++                            u_int32_t asyncmap,
++                            int pcomp,
++                            int accomp)
++{
++      int sock;
++      struct ifreq ifr;
++      if (mtu > pppoatm_max_mtu)
++              error("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, (caddr_t) &ifr) < 0)
++              fatal("ioctl(SIOCSIFMTU): %m");
++      (void) close (sock);
++}
++
++static void recv_config_pppoa(int mru,
++                            u_int32_t asyncmap,
++                            int pcomp,
++                            int accomp)
++{
++      if (mru > pppoatm_max_mru)
++              error("Couldn't increase MRU to %d", mru);
++}
++
++void plugin_init(void)
++{
++#if defined(__linux__)
++      extern int new_style_driver;    /* From sys-linux.c */
++      if (!ppp_available() && !new_style_driver)
++              fatal("Kernel doesn't support ppp_generic - "
++                  "needed for PPPoATM");
++#else
++      fatal("No PPPoATM support on this OS");
++#endif
++      info("PPPoATM plugin_init");
++      add_options(pppoa_options);
++}
++struct channel pppoa_channel = {
++    options: pppoa_options,
++    process_extra_options: NULL,
++    check_options: NULL,
++    connect: &connect_pppoatm,
++    disconnect: NULL,
++    establish_ppp: &generic_establish_ppp,
++    disestablish_ppp: &generic_disestablish_ppp,
++    send_config: &send_config_pppoa,
++    recv_config: &recv_config_pppoa,
++    close: NULL,
++    cleanup: NULL
++};
+diff -u -r -N a/ppp/pppd/options.c ppp/pppd/options.c
+--- a/ppp/pppd/options.c       2003-03-03 06:11:46.000000000 +0100
++++ b/pppd/options.c   2003-07-01 11:17:12.000000000 +0200
+@@ -843,6 +843,22 @@
+ }
+ /*
++ * remove_option - permanently remove an option from consideration...
++ * for use by modules to remove choices which no longer make sense.
++ * returns true if found an option
++ */
++int remove_option(const char *name)
++{
++      option_t *o;
++
++      o = find_option(name);
++      if (o == NULL)
++              return 0;
++      o->name = "";
++      return 1;
++}
++
++/*
+  * check_options - check that options are valid and consistent.
+  */
+ void
diff --git a/src/patches/ppp-2.4.2-printstats.patch b/src/patches/ppp-2.4.2-printstats.patch
new file mode 100644 (file)
index 0000000..8ad30b8
--- /dev/null
@@ -0,0 +1,11 @@
+diff -ruN ppp-2.4.2.old/pppd/main.c ppp-2.4.2/pppd/main.c
+--- ppp-2.4.2.old/pppd/main.c  2004-01-13 05:00:34.000000000 +0100
++++ ppp-2.4.2/pppd/main.c      2004-02-19 14:41:23.000000000 +0100
+@@ -1127,7 +1127,6 @@
+ die(status)
+     int status;
+ {
+-      print_link_stats();
+     cleanup();
+     notify(exitnotify, status);
+     syslog(LOG_INFO, "Exit.");
diff --git a/src/patches/ppp-2.4.2-signal.patch b/src/patches/ppp-2.4.2-signal.patch
new file mode 100644 (file)
index 0000000..93c7c22
--- /dev/null
@@ -0,0 +1,13 @@
+diff -ruN ppp-2.4.2.old/pppd/main.c ppp-2.4.2/pppd/main.c
+--- ppp-2.4.2.old/pppd/main.c  2004-01-13 05:00:34.000000000 +0100
++++ ppp-2.4.2/pppd/main.c      2004-02-19 13:41:17.000000000 +0100
+@@ -1338,8 +1338,8 @@
+     act.sa_handler = SIG_IGN;
+     act.sa_flags = 0;
+-    sigaction(sig, &act, &oldact);
+     kill(0, sig);
++    sigaction(sig, &act, &oldact);
+     sigaction(sig, &oldact, NULL);
+ }
diff --git a/src/patches/ppp_generic-ppp-2.4.3_multilink.patch b/src/patches/ppp_generic-ppp-2.4.3_multilink.patch
new file mode 100644 (file)
index 0000000..c257725
--- /dev/null
@@ -0,0 +1,55 @@
+diff -urN linux-2.5/drivers/net/ppp_generic.c pmac-2.5/drivers/net/ppp_generic.c
+--- linux-2.5/drivers/net/ppp_generic.c        2004-10-29 07:03:21.000000000 +1000
++++ pmac-2.5/drivers/net/ppp_generic.c 2004-11-15 08:53:54.000000000 +1100
+@@ -19,7 +19,7 @@
+  * PPP driver, written by Michael Callahan and Al Longyear, and
+  * subsequently hacked by Paul Mackerras.
+  *
+- * ==FILEVERSION 20020217==
++ * ==FILEVERSION 20041108==
+  */
+ #include <linux/config.h>
+@@ -412,6 +412,17 @@
+               ret = 0;
+               if (pf->dead)
+                       break;
++              if (pf->kind == INTERFACE) {
++                      /*
++                       * Return 0 (EOF) on an interface that has no
++                       * channels connected, unless it is looping
++                       * network traffic (demand mode).
++                       */
++                      struct ppp *ppp = PF_TO_PPP(pf);
++                      if (ppp->n_channels == 0
++                          && (ppp->flags & SC_LOOP_TRAFFIC) == 0)
++                              break;
++              }
+               ret = -EAGAIN;
+               if (file->f_flags & O_NONBLOCK)
+                       break;
+@@ -491,6 +502,14 @@
+               mask |= POLLIN | POLLRDNORM;
+       if (pf->dead)
+               mask |= POLLHUP;
++      else if (pf->kind == INTERFACE) {
++              /* see comment in ppp_read */
++              struct ppp *ppp = PF_TO_PPP(pf);
++              if (ppp->n_channels == 0
++                  && (ppp->flags & SC_LOOP_TRAFFIC) == 0)
++                      mask |= POLLIN | POLLRDNORM;
++      }
++                              
+       return mask;
+ }
+@@ -2559,7 +2578,8 @@
+               /* remove it from the ppp unit's list */
+               ppp_lock(ppp);
+               list_del(&pch->clist);
+-              --ppp->n_channels;
++              if (--ppp->n_channels == 0)
++                      wake_up_interruptible(&ppp->file.rwait);
+               ppp_unlock(ppp);
+               if (atomic_dec_and_test(&ppp->file.refcnt))
+                       ppp_destroy_interface(ppp);
diff --git a/src/patches/proc_net_conntrack-permissions.patch b/src/patches/proc_net_conntrack-permissions.patch
new file mode 100644 (file)
index 0000000..56fea86
--- /dev/null
@@ -0,0 +1,22 @@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+#   2004/06/01 02:58:12+02:00 kaber@trash.net 
+#   [NETFILTER]: Change permissions of /proc/net/ip_conntrack to 0440
+# 
+# net/ipv4/netfilter/ip_conntrack_standalone.c
+#   2004/06/01 02:58:02+02:00 kaber@trash.net +1 -1
+#   [NETFILTER]: Change permissions of /proc/net/ip_conntrack to 0440
+# 
+diff -Nru a/net/ipv4/netfilter/ip_conntrack_standalone.c b/net/ipv4/netfilter/ip_conntrack_standalone.c
+--- a/net/ipv4/netfilter/ip_conntrack_standalone.c     2004-06-02 03:23:39 +02:00
++++ b/net/ipv4/netfilter/ip_conntrack_standalone.c     2004-06-02 03:23:39 +02:00
+@@ -502,7 +502,7 @@
+       if (ret < 0)
+               goto cleanup_nothing;
+-      proc = proc_net_create("ip_conntrack",0,list_conntracks);
++      proc = proc_net_create("ip_conntrack", 0440, list_conntracks);
+       if (!proc) goto cleanup_init;
+       proc->owner = THIS_MODULE;
diff --git a/src/patches/speedtouch-1.2-isdn.patch b/src/patches/speedtouch-1.2-isdn.patch
new file mode 100644 (file)
index 0000000..fbc8de4
--- /dev/null
@@ -0,0 +1,11 @@
+--- src/old.modem_run.c        Wed Mar 17 22:52:46 2004
++++ src/modem_run.c    Wed Sep 29 14:11:10 2004
+@@ -268,7 +268,7 @@
+               } else {
+                       report(1, REPORT_INFO, "Modem revision: %04x\n", revision);
+                       switch(revision) {
+-                      case 0x0000:
++                      case 0x0000: case 0x000a:
+                               revision = 0;
+                               break;
+                       case 0x0200:
diff --git a/src/patches/sysklogd-1.3-31-rh-ksyslog-nul.diff b/src/patches/sysklogd-1.3-31-rh-ksyslog-nul.diff
new file mode 100644 (file)
index 0000000..332a06b
--- /dev/null
@@ -0,0 +1,12 @@
+diff -ur sysklogd-1.3-31.orig/klogd.c sysklogd-1.3-31/klogd.c
+--- sysklogd-1.3-31.orig/klogd.c       Tue Jan 19 03:09:12 1999
++++ sysklogd-1.3-31/klogd.c    Tue Sep 12 20:08:57 2000
+@@ -856,7 +856,7 @@
+        * messages into this fresh buffer.
+        */
+       memset(log_buffer, '\0', sizeof(log_buffer));
+-      if ( (rdcnt = ksyslog(2, log_buffer, sizeof(log_buffer))) < 0 )
++      if ( (rdcnt = ksyslog(2, log_buffer, sizeof(log_buffer)-1)) < 0 )
+       {
+               if ( errno == EINTR )
+                       return;
diff --git a/src/patches/sysklogd-1.4.1-caen-owl-klogd-drop-root.diff b/src/patches/sysklogd-1.4.1-caen-owl-klogd-drop-root.diff
new file mode 100644 (file)
index 0000000..bc7169d
--- /dev/null
@@ -0,0 +1,170 @@
+diff -ur sysklogd-1.4.1.orig/klogd.8 sysklogd-1.4.1/klogd.8
+--- sysklogd-1.4.1.orig/klogd.8        Sun Mar 11 22:35:51 2001
++++ sysklogd-1.4.1/klogd.8     Mon Oct  8 09:50:50 2001
+@@ -3,8 +3,9 @@
+ .\" Sun Jul 30 01:35:55 MET: Martin Schulze: Updates
+ .\" Sun Nov 19 23:22:21 MET: Martin Schulze: Updates
+ .\" Mon Aug 19 09:42:08 CDT 1996: Dr. G.W. Wettstein: Updates
++.\" Thu Feb 17 2000: Chris Wing: Unprivileged klogd feature
+ .\"
+-.TH KLOGD 8 "21 August, 1999" "Version 1.4" "Linux System Administration"
++.TH KLOGD 8 "8 October, 2001" "Version 1.4.1+CAEN/OW" "Linux System Administration"
+ .SH NAME
+ klogd \- Kernel Log Daemon
+ .LP
+@@ -17,6 +18,12 @@
+ .RB [ " \-f "
+ .I fname
+ ]
++.RB [ " \-u "
++.I username
++]
++.RB [ " \-j "
++.I chroot_dir
++]
+ .RB [ " \-iI " ]
+ .RB [ " \-n " ]
+ .RB [ " \-o " ]
+@@ -45,6 +52,20 @@
+ .TP
+ .BI "\-f " file
+ Log messages to the specified filename rather than to the syslog facility.
++.TP
++.BI "\-u " username
++Tells klogd to become the specified user and drop root privileges before
++starting logging.
++.TP
++.BI "\-j " chroot_dir
++Tells klogd to
++.BR chroot (2)
++into this directory after initializing.
++This option is only valid if the \-u option is also used to run klogd
++without root privileges.
++Note that the use of this option will prevent \-i and \-I from working
++unless you set up the chroot directory in such a way that klogd can still
++read the kernel module symbols.
+ .TP
+ .BI "\-i \-I"
+ Signal the currently executing klogd daemon.  Both of these switches control
+diff -ur sysklogd-1.4.1.orig/klogd.c sysklogd-1.4.1/klogd.c
+--- sysklogd-1.4.1.orig/klogd.c        Sun Mar 11 22:40:10 2001
++++ sysklogd-1.4.1/klogd.c     Mon Oct  8 09:52:06 2001
+@@ -258,6 +258,8 @@
+ #include <stdarg.h>
+ #include <paths.h>
+ #include <stdlib.h>
++#include <pwd.h>
++#include <grp.h>
+ #include "klogd.h"
+ #include "ksyms.h"
+ #ifndef TESTING
+@@ -308,6 +310,9 @@
+ int debugging = 0;
+ int symbols_twice = 0;
++char *server_user = NULL;
++char *chroot_dir = NULL;
++int log_flags = 0;
+ /* Function prototypes. */
+ extern int ksyslog(int type, char *buf, int len);
+@@ -528,8 +533,9 @@
+        * First do a stat to determine whether or not the proc based
+        * file system is available to get kernel messages from.
+        */
+-      if ( use_syscall ||
+-          ((stat(_PATH_KLOG, &sb) < 0) && (errno == ENOENT)) )
++      if (!server_user &&
++          (use_syscall ||
++          ((stat(_PATH_KLOG, &sb) < 0) && (errno == ENOENT))))
+       {
+               /* Initialize kernel logging. */
+               ksyslog(1, NULL, 0);
+@@ -977,6 +983,27 @@
+ }
++static int drop_root(void)
++{
++      struct passwd *pw;
++
++      if (!(pw = getpwnam(server_user))) return -1;
++
++      if (!pw->pw_uid) return -1;
++
++      if (chroot_dir) {
++              if (chroot(chroot_dir)) return -1;
++              if (chdir("/")) return -1;
++      }
++
++      if (setgroups(0, NULL)) return -1;
++      if (setgid(pw->pw_gid)) return -1;
++      if (setuid(pw->pw_uid)) return -1;
++
++      return 0;
++}
++
++
+ int main(argc, argv)
+       int argc;
+@@ -994,7 +1021,7 @@
+       chdir ("/");
+ #endif
+       /* Parse the command-line. */
+-      while ((ch = getopt(argc, argv, "c:df:iIk:nopsvx2")) != EOF)
++      while ((ch = getopt(argc, argv, "c:df:u:j:iIk:nopsvx2")) != EOF)
+               switch((char)ch)
+               {
+                   case '2':           /* Print lines with symbols twice. */
+@@ -1016,6 +1043,10 @@
+                   case 'I':
+                       SignalDaemon(SIGUSR2);
+                       return(0);
++                  case 'j':           /* chroot 'j'ail */
++                      chroot_dir = optarg;
++                      log_flags |= LOG_NDELAY;
++                      break;
+                   case 'k':           /* Kernel symbol file. */
+                       symfile = optarg;
+                       break;
+@@ -1031,6 +1062,9 @@
+                   case 's':           /* Use syscall interface. */
+                       use_syscall = 1;
+                       break;
++                  case 'u':           /* Run as this user */
++                      server_user = optarg;
++                      break;
+                   case 'v':
+                       printf("klogd %s.%s\n", VERSION, PATCHLEVEL);
+                       exit (1);
+@@ -1039,6 +1073,10 @@
+                       break;
+               }
++      if (chroot_dir && !server_user) {
++              fputs("'-j' is only valid with '-u'", stderr);
++              exit(1);
++      }
+       /* Set console logging level. */
+       if ( log_level != (char *) 0 )
+@@ -1136,7 +1174,7 @@
+               }
+       }
+       else
+-              openlog("kernel", 0, LOG_KERN);
++              openlog("kernel", log_flags, LOG_KERN);
+       /* Handle one-shot logging. */
+@@ -1161,4 +1199,9 @@
+               }
+       }
++
++      if (server_user && drop_root()) {
++              syslog(LOG_ALERT, "klogd: failed to drop root");
++              Terminate();
++      }
+         /* The main loop. */
diff --git a/src/patches/sysklogd-1.4.1-caen-owl-syslogd-bind.diff b/src/patches/sysklogd-1.4.1-caen-owl-syslogd-bind.diff
new file mode 100644 (file)
index 0000000..04ce97a
--- /dev/null
@@ -0,0 +1,111 @@
+diff -ur sysklogd-1.4.1.orig/sysklogd.8 sysklogd-1.4.1/sysklogd.8
+--- sysklogd-1.4.1.orig/sysklogd.8     Sun Mar 11 22:35:51 2001
++++ sysklogd-1.4.1/sysklogd.8  Mon Oct  8 07:20:31 2001
+@@ -2,7 +2,7 @@
+ .\" May be distributed under the GNU General Public License
+ .\" Sun Aug 30 11:35:55 MET: Martin Schulze: Updates
+ .\"
+-.TH SYSKLOGD 8 "12 October 1998" "Version 1.3" "Linux System Administration"
++.TH SYSKLOGD 8 "8 October, 2001" "Version 1.4.1+CAEN/OW" "Linux System Administration"
+ .SH NAME
+ sysklogd \- Linux system logging utilities.
+ .SH SYNOPSIS
+@@ -15,6 +15,9 @@
+ .I config file
+ ]
+ .RB [ " \-h " ] 
++.RB [ " \-i "
++.I IP address
++]
+ .RB [ " \-l "
+ .I hostlist
+ ]
+@@ -103,6 +106,13 @@
+ Specifying this switch on the command line will cause the log daemon to
+ forward any remote messages it receives to forwarding hosts which have been
+ defined.
++.TP
++.BI "\-i " "IP address"
++If
++.B syslogd
++is configured to accept log input from a UDP port, specify an IP address
++to bind to, rather than the default of INADDR_ANY.  The address must be in
++dotted quad notation, DNS host names are not allowed.
+ .TP
+ .BI "\-l " "hostlist"
+ Specify a hostname that should be logged only with its simple hostname
+diff -ur sysklogd-1.4.1.orig/syslogd.c sysklogd-1.4.1/syslogd.c
+--- sysklogd-1.4.1.orig/syslogd.c      Sun Mar 11 22:40:10 2001
++++ sysklogd-1.4.1/syslogd.c   Mon Oct  8 07:24:41 2001
+@@ -736,6 +736,8 @@
+ int   NoHops = 1;             /* Can we bounce syslog messages through an
+                                  intermediate host. */
++char  *bind_addr = NULL;      /* bind UDP port to this interface only */
++
+ extern        int errno;
+ /* Function prototypes. */
+@@ -829,7 +831,7 @@
+               funix[i]  = -1;
+       }
+-      while ((ch = getopt(argc, argv, "a:dhf:l:m:np:rs:v")) != EOF)
++      while ((ch = getopt(argc, argv, "a:dhf:i:l:m:np:rs:v")) != EOF)
+               switch((char)ch) {
+               case 'a':
+                       if (nfunix < MAXFUNIX)
+@@ -846,9 +848,17 @@
+               case 'h':
+                       NoHops = 0;
+                       break;
++              case 'i':
++                      if (bind_addr) {
++                              fprintf(stderr, "Only one -i argument allowed, "
++                                      "the first one is taken.\n");
++                              break;
++                      }
++                      bind_addr = optarg;
++                      break;
+               case 'l':
+                       if (LocalHosts) {
+-                              fprintf (stderr, "Only one -l argument allowed," \
++                              fprintf(stderr, "Only one -l argument allowed, "
+                                       "the first one is taken.\n");
+                               break;
+                       }
+@@ -1175,7 +1185,7 @@
+ int usage()
+ {
+       fprintf(stderr, "usage: syslogd [-drvh] [-l hostlist] [-m markinterval] [-n] [-p path]\n" \
+-              " [-s domainlist] [-f conffile]\n");
++              " [-s domainlist] [-f conffile] [-i IP address]\n");
+       exit(1);
+ }
+@@ -1217,15 +1227,22 @@
+       int fd, on = 1;
+       struct sockaddr_in sin;
++      memset(&sin, 0, sizeof(sin));
++      sin.sin_family = AF_INET;
++      sin.sin_port = LogPort;
++      if (bind_addr) {
++              if (!inet_aton(bind_addr, &sin.sin_addr)) {
++                      logerror("syslog: not a valid IP address to bind to.");
++                      return -1;
++              }
++      }
++
+       fd = socket(AF_INET, SOCK_DGRAM, 0);
+       if (fd < 0) {
+               logerror("syslog: Unknown protocol, suspending inet service.");
+               return fd;
+       }
+-      memset(&sin, 0, sizeof(sin));
+-      sin.sin_family = AF_INET;
+-      sin.sin_port = LogPort;
+       if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, \
+                      (char *) &on, sizeof(on)) < 0 ) {
+               logerror("setsockopt(REUSEADDR), suspending inet");
diff --git a/src/patches/sysklogd-1.4.1-caen-owl-syslogd-drop-root.diff b/src/patches/sysklogd-1.4.1-caen-owl-syslogd-drop-root.diff
new file mode 100644 (file)
index 0000000..b5813c1
--- /dev/null
@@ -0,0 +1,117 @@
+diff -ur sysklogd-1.4.1-caen-owl-syslogd-bind/sysklogd.8 sysklogd-1.4.1/sysklogd.8
+--- sysklogd-1.4.1-caen-owl-syslogd-bind/sysklogd.8    Mon Oct  8 07:26:27 2001
++++ sysklogd-1.4.1/sysklogd.8  Mon Oct  8 07:30:31 2001
+@@ -32,6 +32,9 @@
+ .RB [ " \-s "
+ .I domainlist
+ ]
++.RB [ " \-u"
++.IB username
++]
+ .RB [ " \-v " ]
+ .LP
+ .SH DESCRIPTION
+@@ -159,6 +162,19 @@
+ is specified and the host logging resolves to satu.infodrom.north.de
+ no domain would be cut, you will have to specify two domains like:
+ .BR "\-s north.de:infodrom.north.de" .
++.TP
++.BI "\-u " "username"
++This causes the
++.B syslogd
++daemon to become the named user before starting up logging.
++
++Note that when this option is in use,
++.B syslogd
++will open all log files as root when the daemon is first started;
++however, after a
++.B SIGHUP
++the files will be reopened as the non-privileged user.  You should
++take this into account when deciding the ownership of the log files.
+ .TP
+ .B "\-v"
+ Print version and exit.
+diff -ur sysklogd-1.4.1-caen-owl-syslogd-bind/syslogd.c sysklogd-1.4.1/syslogd.c
+--- sysklogd-1.4.1-caen-owl-syslogd-bind/syslogd.c     Mon Oct  8 07:26:27 2001
++++ sysklogd-1.4.1/syslogd.c   Mon Oct  8 07:40:35 2001
+@@ -491,6 +491,10 @@
+ #include <arpa/nameser.h>
+ #include <arpa/inet.h>
+ #include <resolv.h>
++
++#include <pwd.h>
++#include <grp.h>
++
+ #ifndef TESTING
+ #include "pidfile.h"
+ #endif
+@@ -737,6 +741,7 @@
+                                  intermediate host. */
+ char  *bind_addr = NULL;      /* bind UDP port to this interface only */
++char  *server_user = NULL;    /* user name to run server as */
+ extern        int errno;
+@@ -778,6 +783,21 @@
+ static int create_inet_socket();
+ #endif
++static int drop_root(void)
++{
++      struct passwd *pw;
++
++      if (!(pw = getpwnam(server_user))) return -1;
++
++      if (!pw->pw_uid) return -1;
++
++      if (initgroups(server_user, pw->pw_gid)) return -1;
++      if (setgid(pw->pw_gid)) return -1;
++      if (setuid(pw->pw_uid)) return -1;
++
++      return 0;
++}
++
+ int main(argc, argv)
+       int argc;
+       char **argv;
+@@ -831,7 +851,7 @@
+               funix[i]  = -1;
+       }
+-      while ((ch = getopt(argc, argv, "a:dhf:i:l:m:np:rs:v")) != EOF)
++      while ((ch = getopt(argc, argv, "a:dhf:i:l:m:np:rs:u:v")) != EOF)
+               switch((char)ch) {
+               case 'a':
+                       if (nfunix < MAXFUNIX)
+@@ -884,6 +904,9 @@
+                       }
+                       StripDomains = crunch_list(optarg);
+                       break;
++              case 'u':
++                      server_user = optarg;
++                      break;
+               case 'v':
+                       printf("syslogd %s.%s\n", VERSION, PATCHLEVEL);
+                       exit (0);
+@@ -1031,6 +1054,11 @@
+               kill (ppid, SIGTERM);
+ #endif
++      if (server_user && drop_root()) {
++              dprintf("syslogd: failed to drop root\n");
++              exit(1);
++      }
++
+       /* Main loop begins here. */
+       for (;;) {
+               int nfds;
+@@ -1185,7 +1213,7 @@
+ int usage()
+ {
+       fprintf(stderr, "usage: syslogd [-drvh] [-l hostlist] [-m markinterval] [-n] [-p path]\n" \
+-              " [-s domainlist] [-f conffile] [-i IP address]\n");
++              " [-s domainlist] [-f conffile] [-i IP address] [-u username]\n");
+       exit(1);
+ }
diff --git a/src/patches/sysklogd-1.4.1-owl-syslogd-crunch_list.diff b/src/patches/sysklogd-1.4.1-owl-syslogd-crunch_list.diff
new file mode 100644 (file)
index 0000000..3a10218
--- /dev/null
@@ -0,0 +1,87 @@
+diff -ur sysklogd-1.4.1.orig/syslogd.c sysklogd-1.4.1/syslogd.c
+--- sysklogd-1.4.1.orig/syslogd.c      Sun Mar 11 19:40:10 2001
++++ sysklogd-1.4.1/syslogd.c   Sun Apr 18 01:42:21 2004
+@@ -1254,30 +1254,26 @@
+ crunch_list(list)
+       char *list;
+ {
+-      int count, i;
++      int i, m, n;
+       char *p, *q;
+       char **result = NULL;
+       p = list;
+       
+       /* strip off trailing delimiters */
+-      while (p[strlen(p)-1] == LIST_DELIMITER) {
+-              count--;
++      while (*p && p[strlen(p)-1] == LIST_DELIMITER)
+               p[strlen(p)-1] = '\0';
+-      }
+       /* cut off leading delimiters */
+-      while (p[0] == LIST_DELIMITER) {
+-              count--;
++      while (p[0] == LIST_DELIMITER)
+               p++; 
+-      }
+       
+-      /* count delimiters to calculate elements */
+-      for (count=i=0; p[i]; i++)
+-              if (p[i] == LIST_DELIMITER) count++;
++      /* count delimiters to calculate the number of elements */
++      for (n = i = 0; p[i]; i++)
++              if (p[i] == LIST_DELIMITER) n++;
+       
+-      if ((result = (char **)malloc(sizeof(char *) * count+2)) == NULL) {
++      if ((result = (char **)malloc(sizeof(char *) * (n + 2))) == NULL) {
+               printf ("Sorry, can't get enough memory, exiting.\n");
+-              exit(0);
++              exit(1);
+       }
+       
+       /*
+@@ -1285,30 +1281,28 @@
+        * characters are different from any delimiters,
+        * so we don't have to care about this.
+        */
+-      count = 0;
+-      while ((q=strchr(p, LIST_DELIMITER))) {
+-              result[count] = (char *) malloc((q - p + 1) * sizeof(char));
+-              if (result[count] == NULL) {
++      m = 0;
++      while ((q = strchr(p, LIST_DELIMITER)) && m < n) {
++              result[m] = (char *) malloc((q - p + 1) * sizeof(char));
++              if (result[m] == NULL) {
+                       printf ("Sorry, can't get enough memory, exiting.\n");
+-                      exit(0);
++                      exit(1);
+               }
+-              strncpy(result[count], p, q - p);
+-              result[count][q - p] = '\0';
++              memcpy(result[m], p, q - p);
++              result[m][q - p] = '\0';
+               p = q; p++;
+-              count++;
++              m++;
+       }
+-      if ((result[count] = \
+-           (char *)malloc(sizeof(char) * strlen(p) + 1)) == NULL) {
++      if ((result[m] = strdup(p)) == NULL) {
+               printf ("Sorry, can't get enough memory, exiting.\n");
+-              exit(0);
++              exit(1);
+       }
+-      strcpy(result[count],p);
+-      result[++count] = NULL;
++      result[++m] = NULL;
+ #if 0
+-      count=0;
+-      while (result[count])
+-              dprintf ("#%d: %s\n", count, StripDomains[count++]);
++      m = 0;
++      while (result[m])
++              dprintf ("#%d: %s\n", m, result[m++]);
+ #endif
+       return result;
+ }
diff --git a/src/patches/tcpdump-3.8.2-bgp-dos-2.patch b/src/patches/tcpdump-3.8.2-bgp-dos-2.patch
new file mode 100644 (file)
index 0000000..64f6bae
--- /dev/null
@@ -0,0 +1,18 @@
+borrowed from fedora
+fix for CAN-2005-1267
+
+--- tcpdump-3.8.2/print-bgp.c.old      2005-05-31 11:58:00.000000000 +0200
++++ tcpdump-3.8.2/print-bgp.c  2005-05-31 12:01:01.000000000 +0200
+@@ -1706,9 +1706,10 @@
+               while (dat + length > p) {
+                       char buf[MAXHOSTNAMELEN + 100];
+                       i = decode_prefix4(p, buf, sizeof(buf));
+-                      if (i == -1)
++                      if (i == -1) {
+                               printf("\n\t    (illegal prefix length)");
+-                      else if (i == -2)
++                              break;
++                      } else if (i == -2)
+                               goto trunc;
+                       else {
+                               printf("\n\t    %s", buf);
diff --git a/src/patches/tcpdump-3.8.2-bgp-dos.patch b/src/patches/tcpdump-3.8.2-bgp-dos.patch
new file mode 100644 (file)
index 0000000..99efd3f
--- /dev/null
@@ -0,0 +1,14 @@
+borrowed from fedora
+fix for CAN-2005-1279
+
+--- tcpdump-3.8.2/print-bgp.c.old      2004-03-24 01:01:00.000000000 +0100
++++ tcpdump-3.8.2/print-bgp.c          2005-04-28 12:47:12.000000000 +0200
+@@ -1089,7 +1089,7 @@
+                       printf(", no SNPA");
+                 }
+-              while (len - (tptr - pptr) > 0) {
++              while ((tptr - pptr) > 0 &&  len - (tptr - pptr) > 0) {
+                       switch (af) {
+                       case AFNUM_INET:
+                             switch (safi) {
diff --git a/src/patches/tcpdump-3.8.2-isis-dos.patch b/src/patches/tcpdump-3.8.2-isis-dos.patch
new file mode 100644 (file)
index 0000000..fae1e20
--- /dev/null
@@ -0,0 +1,26 @@
+borrowed from fedora
+fix for CAN-2005-1278
+
+--- tcpdump-3.8.2/print-isoclns.c.old  2005-04-28 12:58:28.000000000 +0200
++++ tcpdump-3.8.2/print-isoclns.c      2005-04-28 13:07:17.000000000 +0200
+@@ -1748,12 +1748,14 @@
+           lan_alen = *tptr++; /* LAN adress length */
+             tmp --;
+             printf("\n\t      LAN address length %u bytes ",lan_alen);
+-          while (tmp >= lan_alen) {
+-                if (!TTEST2(*tptr, lan_alen))
+-                    goto trunctlv;
+-                printf("\n\t\tIS Neighbor: %s",isis_print_id(tptr,lan_alen));
+-                tmp -= lan_alen;
+-                tptr +=lan_alen;
++            if(lan_alen >= SYSTEM_ID_LEN) {
++              while (tmp >= lan_alen) {
++                    if (!TTEST2(*tptr, lan_alen))
++                        goto trunctlv;
++                    printf("\n\t\tIS Neighbor: %s",isis_print_id(tptr,lan_alen));
++                    tmp -= lan_alen;
++                    tptr +=lan_alen;
++                }
+             }
+             break;
diff --git a/src/patches/tcpdump-3.8.2-ldp-dos.patch b/src/patches/tcpdump-3.8.2-ldp-dos.patch
new file mode 100644 (file)
index 0000000..f715548
--- /dev/null
@@ -0,0 +1,42 @@
+borrowed from fedora
+fix for CAN-2005-1279
+
+--- tcpdump-3.8.2/print-ldp.c.t4       2003-11-16 10:36:27.000000000 +0100
++++ tcpdump-3.8.2/print-ldp.c          2005-04-28 14:17:15.000000000 +0200
+@@ -327,7 +327,8 @@
+                LDP_MASK_U_BIT(EXTRACT_16BITS(&ldp_msg_header->type)) ? "continue processing" : "ignore");
+         msg_tptr=tptr+sizeof(struct ldp_msg_header);
+-        msg_tlen=msg_len-sizeof(struct ldp_msg_header)+4; /* Type & Length fields not included */
++       /* Type & Length fields not included */
++        msg_tlen = (msg_len >= (sizeof(struct ldp_msg_header) + 4)) ? (msg_len - sizeof(struct ldp_msg_header) + 4) : 0;
+         /* did we capture enough for fully decoding the message ? */
+         if (!TTEST2(*tptr, msg_len))
+@@ -372,8 +373,12 @@
+             print_unknown_data(tptr+sizeof(sizeof(struct ldp_msg_header)),"\n\t  ",
+                                msg_len);
+-        tptr+=msg_len;
+-        tlen-=msg_len;
++        if(!msg_len)
++            break;
++        else {
++            tptr+=msg_len;
++            tlen-=msg_len;
++        }
+     }
+     return;
+ trunc:
+--- tcpdump-3.8.2/print-ascii.c.t4     2003-12-29 12:05:10.000000000 +0100
++++ tcpdump-3.8.2/print-ascii.c        2005-04-28 14:05:42.000000000 +0200
+@@ -142,6 +142,9 @@
+       register int nshorts;
+       nshorts = (u_int) length / sizeof(u_short);
++        if(!nshorts)
++          return;
++
+       i = 0;
+       while (--nshorts >= 0) {
+               if ((i++ % 8) == 0) {
diff --git a/src/patches/tcpdump-3.8.2-rsvp-dos.patch b/src/patches/tcpdump-3.8.2-rsvp-dos.patch
new file mode 100644 (file)
index 0000000..3a329dd
--- /dev/null
@@ -0,0 +1,34 @@
+borrowed from fedora
+fix for CAN-2005-1280
+
+--- tcpdump-3.8.2/print-rsvp.c.old     2004-03-24 05:00:38.000000000 +0100
++++ tcpdump-3.8.2/print-rsvp.c         2005-04-27 17:09:34.000000000 +0200
+@@ -872,6 +872,8 @@
+         case RSVP_OBJ_RRO:
+         case RSVP_OBJ_ERO:
++            {
++            int step;
+             switch(rsvp_obj_ctype) {
+             case RSVP_CTYPE_IPV4:
+                 while(obj_tlen >= 4 ) {
+@@ -889,15 +891,16 @@
+                                    "none",
+                                    *(obj_tptr+7))); /* rfc3209 says that this field is rsvd. */
+                     }
+-                    obj_tlen-=*(obj_tptr+1);
+-                    obj_tptr+=*(obj_tptr+1);
++                    step = *(obj_tptr+1) ? *(obj_tptr+1) : obj_tlen;
++                    obj_tlen -= step;
++                    obj_tptr += step;
+                 }
+                 break;
+             default:
+                 hexdump=TRUE;
+             }
+             break;
+-
++            }
+         case RSVP_OBJ_HELLO:
+             switch(rsvp_obj_ctype) {
+             case RSVP_CTYPE_1:
diff --git a/src/patches/util-linux-2.12a-umount_CAN-2005-2876.patch b/src/patches/util-linux-2.12a-umount_CAN-2005-2876.patch
new file mode 100644 (file)
index 0000000..4f40de1
--- /dev/null
@@ -0,0 +1,14 @@
+# Fix borrowed from mandriva
+# disable umount -r for non-root users to fix privilege escalation (CAN-2005-2876)
+
+--- util-linux-2.12a/mount/umount.c.can-2005-2876      2005-09-19 20:18:32.011686865 -0600
++++ util-linux-2.12a/mount/umount.c    2005-09-19 20:19:02.699173130 -0600
+@@ -695,7 +695,7 @@
+       if (getuid () != geteuid ()) {
+               suid = 1;
+-              if (all || types || nomtab || force)
++              if (all || types || nomtab || force || remount)
+                       die (2, _("umount: only root can do that"));
+       }
diff --git a/src/patches/viscii10-8x16-new.psfu b/src/patches/viscii10-8x16-new.psfu
new file mode 100644 (file)
index 0000000..d303d87
Binary files /dev/null and b/src/patches/viscii10-8x16-new.psfu differ
diff --git a/src/pcmcia/CVS/Entries b/src/pcmcia/CVS/Entries
new file mode 100644 (file)
index 0000000..58f9560
--- /dev/null
@@ -0,0 +1,3 @@
+/isdnextra.conf/1.1/Tue Jan 27 17:35:28 2004//TIPCOP_v1_4_0
+/netextra.conf/1.1/Mon Jan 26 10:38:20 2004//TIPCOP_v1_4_0
+D
diff --git a/src/pcmcia/CVS/Repository b/src/pcmcia/CVS/Repository
new file mode 100644 (file)
index 0000000..88edf9a
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/pcmcia
diff --git a/src/pcmcia/CVS/Root b/src/pcmcia/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/pcmcia/CVS/Tag b/src/pcmcia/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/pcmcia/isdnextra.conf b/src/pcmcia/isdnextra.conf
new file mode 100644 (file)
index 0000000..f4683ab
--- /dev/null
@@ -0,0 +1,3 @@
+card "Diehl ISDN-DIVA"
+  manfid 0x0121, 0x2032
+  bind "elsa_cs"
diff --git a/src/pcmcia/netextra.conf b/src/pcmcia/netextra.conf
new file mode 100644 (file)
index 0000000..f5dd953
--- /dev/null
@@ -0,0 +1,3 @@
+card "Socket EA Lan Adapter"
+  manfid 0x0104, 0x0008
+  bind "pcnet_cs"
diff --git a/src/ppp/CVS/Entries b/src/ppp/CVS/Entries
new file mode 100644 (file)
index 0000000..2eb71ca
--- /dev/null
@@ -0,0 +1,8 @@
+/demonloginscript/1.1.1.1/Tue Nov 27 08:07:59 2001//TIPCOP_v1_4_0
+/dialer/1.3.2.2/Wed Jan 26 12:23:26 2005//TIPCOP_v1_4_0
+/ioptions/1.1.1.1/Tue Nov 27 08:07:59 2001//TIPCOP_v1_4_0
+/ip-down/1.3.2.9/Wed Jan 26 12:23:26 2005//TIPCOP_v1_4_0
+/ip-up/1.3.2.3/Wed Jan 26 12:23:26 2005//TIPCOP_v1_4_0
+/options/1.1.1.1/Tue Nov 27 08:08:01 2001//TIPCOP_v1_4_0
+/standardloginscript/1.1.1.1/Tue Nov 27 08:08:01 2001//TIPCOP_v1_4_0
+D
diff --git a/src/ppp/CVS/Repository b/src/ppp/CVS/Repository
new file mode 100644 (file)
index 0000000..514edb3
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/ppp
diff --git a/src/ppp/CVS/Root b/src/ppp/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/ppp/CVS/Tag b/src/ppp/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/ppp/demonloginscript b/src/ppp/demonloginscript
new file mode 100644 (file)
index 0000000..882c887
--- /dev/null
@@ -0,0 +1,5 @@
+ogin:--ogin:   USERNAME
+assword:       PASSWORD
+otocol:                '\r'
+HELLO          '\r'
+
diff --git a/src/ppp/dialer b/src/ppp/dialer
new file mode 100644 (file)
index 0000000..21118b1
--- /dev/null
@@ -0,0 +1,89 @@
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+# $Id: dialer,v 1.3.2.2 2005/01/26 12:23:26 riddles Exp $
+#
+
+use strict;
+require 'CONFIG_ROOT/general-functions.pl';
+
+my %pppsettings;
+my %modemsettings;
+
+&General::readhash("${General::swroot}/ppp/settings", \%pppsettings);
+&General::readhash("${General::swroot}/modem/settings", \%modemsettings);
+
+if ($modemsettings{'INIT'} eq '') {
+       $modemsettings{'INIT'} = 'AT'; }
+if ($modemsettings{'HANGUP'} eq '') {
+       $modemsettings{'HANGUP'} = 'AT'; }
+if ($modemsettings{'SPEAKER_ON'} eq '') {
+       $modemsettings{'SPEAKER_ON'} = 'AT'; }
+if ($modemsettings{'SPEAKER_OFF'} eq '') {
+       $modemsettings{'SPEAKER_OFF'} = 'AT'; }
+if ($modemsettings{'TONE_DIAL'} eq '') {
+       $modemsettings{'TONE_DIAL'} = 'ATD'; }
+if ($modemsettings{'PULSE_DIAL'} eq '') {
+       $modemsettings{'PULSE_DIAL'} = 'ATD'; }
+my $telephone = $pppsettings{'TELEPHONE'};
+my $username = $pppsettings{'USERNAME'};
+my $password = $pppsettings{'PASSWORD'};
+
+my ($loginscript, $speaker, $dial, $btfudge);
+
+if ($pppsettings{'AUTH'} eq 'standard-login-script') {
+       $loginscript = 'standardloginscript'; }
+elsif ($pppsettings{'AUTH'} eq 'demon-login-script') {
+       $loginscript = 'demonloginscript'; }
+else {
+       $loginscript = $pppsettings{'LOGINSCRIPT'}; }
+if ($pppsettings{'SPEAKER'} eq 'on') {
+       $speaker = $modemsettings{'SPEAKER_ON'}; }
+else {
+       $speaker = $modemsettings{'SPEAKER_OFF'}; }
+if ($pppsettings{'DIALMODE'} eq 'T') {
+       $dial = $modemsettings{'TONE_DIAL'} }
+else {
+       $dial = $modemsettings{'PULSE_DIAL'} }
+if ($pppsettings{'SENDCR'} eq 'off') {
+       $btfudge = '\\c'; }
+else {
+       $btfudge = ''; }
+
+unlink('/var/log/connect.log');
+
+my $com = "/usr/sbin/chat -v -r /var/log/connect.log                   \
+       TIMEOUT                 3                                       \
+       REPORT                  CONNECT                                 \
+       ABORT                   '\\nBUSY\\r'                            \
+       ABORT                   '\\nNO ANSWER\\r'                       \
+       ABORT                   '\\nRINGING\\r\\n\\r\\nRINGING\\r'      \
+       ABORT                   '\\nNO CARRIER\\r'                      \
+       ''                      '$modemsettings{'INIT'}'                \
+       OK                      '$modemsettings{'HANGUP'}'              \
+       OK                      '$speaker'                              \
+       TIMEOUT                 '$modemsettings{'TIMEOUT'}'             \
+       OK                      '${dial}${telephone}'                   \
+       CONNECT                 '${btfudge}'                            ";
+
+if ($loginscript)
+{
+       if (open(FILE, "/etc/ppp/${loginscript}"))
+       {
+               while (<FILE>) {
+                       $com = "$com $_ "; }
+               close FILE;
+       }
+       $com =~ s/USERNAME/$username/;
+       $com =~ s/PASSWORD/$password/;
+}
+
+$com =~ s/\n//g;
+
+exec $com;
diff --git a/src/ppp/ioptions b/src/ppp/ioptions
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/ppp/ip-down b/src/ppp/ip-down
new file mode 100644 (file)
index 0000000..7b42b1d
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+# $Id: ip-down,v 1.3.2.9 2005/01/26 12:23:26 riddles Exp $
+#
+
+use strict;
+require 'CONFIG_ROOT/general-functions.pl';
+
+&General::log("PPP has gone down on $ARGV[0]");
+
+umask 022;
+
+unlink "${General::swroot}/red/active";
+system "/etc/rc.d/rc.updatered";
+
+# Beep when ppp goes up or down. Silence if 'nobeeps' file exists.
+if ( ! -e "${General::swroot}/ppp/nobeeps") {
+       system('/usr/bin/beep','-l 75', '-f 880', '-n', '-l 75', '-f 440');
+}
+
+if ( -e "${General::swroot}/red/keepconnected") {
+       if ( system ('/bin/ps ax | /bin/grep -q "[r]c.connectioncheck reconnect"') ) {
+               system ('/etc/rc.d/rc.connectioncheck reconnect &');
+       } else {
+               &General::log ('rc.connectioncheck reconnect already running');
+       }
+}
diff --git a/src/ppp/ip-up b/src/ppp/ip-up
new file mode 100644 (file)
index 0000000..dc13533
--- /dev/null
@@ -0,0 +1,58 @@
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+# $Id: ip-up,v 1.3.2.3 2005/01/26 12:23:26 riddles Exp $
+#
+
+use strict;
+require 'CONFIG_ROOT/general-functions.pl';
+
+&General::log("PPP has gone up on $ARGV[0]");
+umask 022;
+
+my %pppsettings;
+
+# read vars back from file.
+&General::readhash("${General::swroot}/ppp/settings", \%pppsettings);
+
+if ( ( $pppsettings{'TYPE'} eq 'isdn') &&
+               ( $pppsettings{'COMPORT'} eq 'isdn2')  && 
+               ( $pppsettings{'USEIBOD'} eq 'off') ) {
+       system('/usr/sbin/isdnctrl', 'dial', 'ippp1');
+}
+
+my $dns = $pppsettings{'DNS'};
+my $primarydns = $pppsettings{'DNS1'};
+my $secondarydns = $pppsettings{'DNS2'};
+if ($dns eq 'Automatic') {
+       if (!($pppsettings{'TYPE'} =~ /^isdn/))
+       {
+               if (open(FILE, ">${General::swroot}/red/dns1")) { print FILE $ENV{'DNS1'}; close FILE; }
+               if (open(FILE, ">${General::swroot}/red/dns2")) { print FILE $ENV{'DNS2'}; close FILE; }
+       }
+       else
+       {
+               if (open(FILE, ">${General::swroot}/red/dns1")) { print FILE $ENV{'MS_DNS1'}; close FILE; }
+               if (open(FILE, ">${General::swroot}/red/dns2")) { print FILE $ENV{'MS_DNS2'}; close FILE; }
+       }
+} else {
+       if (open(FILE, ">${General::swroot}/red/dns1")) { print FILE $pppsettings{'DNS1'}; close FILE; }
+       if (open(FILE, ">${General::swroot}/red/dns2")) { print FILE $pppsettings{'DNS2'}; close FILE; }
+}
+
+if (open(FILE, ">${General::swroot}/red/iface")) { print FILE $ARGV[0]; close (FILE); }
+if (open(FILE, ">${General::swroot}/red/local-ipaddress"))  { print FILE $ARGV[3]; close (FILE); }
+if (open(FILE, ">${General::swroot}/red/remote-ipaddress")) { print FILE $ARGV[4]; close (FILE); }
+
+system('/bin/touch', "${General::swroot}/red/active");
+system('/etc/rc.d/rc.updatered');
+
+# Beep when ppp goes up or down. Silence if 'nobeeps' file exists.
+if ( ! -e "${General::swroot}/ppp/nobeeps") {
+       system "/bin/echo -en '\a' >/dev/console";
+}
diff --git a/src/ppp/options b/src/ppp/options
new file mode 100644 (file)
index 0000000..8d5ca28
--- /dev/null
@@ -0,0 +1,2 @@
+linkname ipcop
+noauth
diff --git a/src/ppp/standardloginscript b/src/ppp/standardloginscript
new file mode 100644 (file)
index 0000000..2be2a53
--- /dev/null
@@ -0,0 +1,3 @@
+ogin:--ogin:   USERNAME
+assword:       PASSWORD
+
diff --git a/src/rc.d/CVS/Entries b/src/rc.d/CVS/Entries
new file mode 100644 (file)
index 0000000..f8b64a6
--- /dev/null
@@ -0,0 +1,26 @@
+/rc.3cp4218usbadsl/1.4.2.3/Thu Jul  7 20:11:57 2005//TIPCOP_v1_4_0
+/rc.alcatelusb/1.7.2.12/Thu Jul  7 20:11:57 2005//TIPCOP_v1_4_0
+/rc.alcatelusbk/1.6.2.11/Thu Jul  7 20:11:57 2005//TIPCOP_v1_4_0
+/rc.amedynusbadsl/1.3.2.5/Thu Jul  7 20:11:57 2005//TIPCOP_v1_4_0
+/rc.bewanadsl/1.5.2.6/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.conexantpciadsl/1.1.2.11/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.conexantusbadsl/1.5.2.4/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.connectioncheck/1.4.2.22/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.eagleusbadsl/1.5.2.11/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.eciadsl/1.4.2.14/Thu Jul 28 16:47:43 2005//TIPCOP_v1_4_0
+/rc.firewall/1.7.2.20/Thu Jan 12 01:24:30 2006//TIPCOP_v1_4_0
+/rc.firewall.local/1.4.2.4/Thu Dec 23 18:36:39 2004//TIPCOP_v1_4_0
+/rc.flash.down/1.2/Thu Dec 11 11:25:54 2003//TIPCOP_v1_4_0
+/rc.flash.up/1.4.2.1/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.fritzdsl/1.2.2.10/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.halt/1.4.2.2/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.isdn/1.7.2.3/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.local/1.2/Thu Dec 11 11:25:54 2003//TIPCOP_v1_4_0
+/rc.netaddress.down/1.3.2.1/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.netaddress.up/1.7.2.14/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.network/1.10.2.6/Mon Jul 11 18:38:02 2005//TIPCOP_v1_4_0
+/rc.pulsardsl/1.3.2.8/Thu Jul  7 20:11:58 2005//TIPCOP_v1_4_0
+/rc.red/1.29.2.56/Sat Dec 17 08:49:01 2005//TIPCOP_v1_4_0
+/rc.sysinit/1.18.2.36/Thu Dec  1 20:13:08 2005//TIPCOP_v1_4_0
+/rc.updatered/1.11.2.15/Thu Dec  1 16:20:37 2005//TIPCOP_v1_4_0
+D/helper////
diff --git a/src/rc.d/CVS/Repository b/src/rc.d/CVS/Repository
new file mode 100644 (file)
index 0000000..e035f14
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/rc.d
diff --git a/src/rc.d/CVS/Root b/src/rc.d/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/rc.d/CVS/Tag b/src/rc.d/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/rc.d/helper/CVS/Entries b/src/rc.d/helper/CVS/Entries
new file mode 100644 (file)
index 0000000..b65e0b2
--- /dev/null
@@ -0,0 +1,3 @@
+/getdnsfromdhcpc.pl/1.4.2.2/Wed Jan 26 12:23:27 2005//TIPCOP_v1_4_0
+/writeipac.pl/1.4.2.3/Wed Jan 26 12:23:27 2005//TIPCOP_v1_4_0
+D
diff --git a/src/rc.d/helper/CVS/Repository b/src/rc.d/helper/CVS/Repository
new file mode 100644 (file)
index 0000000..37045fd
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/rc.d/helper
diff --git a/src/rc.d/helper/CVS/Root b/src/rc.d/helper/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/rc.d/helper/CVS/Tag b/src/rc.d/helper/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/rc.d/helper/getdnsfromdhcpc.pl b/src/rc.d/helper/getdnsfromdhcpc.pl
new file mode 100644 (file)
index 0000000..f14dfcd
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/perl\r
+#\r
+# Helper program to get DNS info from dhcpc .info file.\r
+#\r
+# (c) Lawrence Manning, 2001\r
+\r
+use strict;\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+\r
+my $count = $ARGV[0];\r
+my ($dhcp, $dns, @alldns, %dhcpc);\r
+\r
+if ($count eq "" || $count < 1) {\r
+       die "Bad DNS number given"; }\r
+\r
+if (open(FILE, "${General::swroot}/red/iface")) {\r
+       my $iface = <FILE>;\r
+       close FILE;\r
+       chomp ($iface);\r
+       if (!&General::readhash("${General::swroot}/dhcpc/dhcpcd-$iface.info", \%dhcpc)) {\r
+               die "Could not open dhcpc info file";\r
+       }\r
+} else {\r
+       die "Could not open interface file";\r
+}\r
+\r
+\r
+$dns = $dhcpc{'DNS'};\r
+\r
+@alldns = split(',', $dns);\r
+\r
+print "$alldns[$count - 1]\n";\r
diff --git a/src/rc.d/helper/writeipac.pl b/src/rc.d/helper/writeipac.pl
new file mode 100644 (file)
index 0000000..9e127db
--- /dev/null
@@ -0,0 +1,55 @@
+#!/usr/bin/perl\r
+#\r
+# Helper program to write a new IPAC settings file\r
+#\r
+# (c) Lawrence Manning, 2001\r
+#\r
+# $id\r
+#\r
+\r
+use strict;\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+\r
+my %settings;\r
+my $iface;\r
+\r
+General::readhash("${General::swroot}/ethernet/settings", \%settings);\r
+\r
+if (!open(FILE, '>/etc/ipac-ng/rules.conf')) {\r
+       die "Unable to create /etc/ipac-ng/rules.conf"; }\r
+\r
+if (open(IFACE, "${General::swroot}/red/iface"))\r
+{\r
+       $iface = <IFACE>;\r
+       close IFACE;\r
+       chomp ($iface);\r
+}\r
+\r
+print FILE "incoming GREEN ($settings{'GREEN_DEV'})|ipac~o|$settings{'GREEN_DEV'}|all|||\n";\r
+print FILE "outgoing GREEN ($settings{'GREEN_DEV'})|ipac~i|$settings{'GREEN_DEV'}|all|||\n";\r
+print FILE "forwarded incoming GREEN ($settings{'GREEN_DEV'})|ipac~fi|$settings{'GREEN_DEV'}|all|||\n";\r
+print FILE "forwarded outgoing GREEN ($settings{'GREEN_DEV'})|ipac~fo|$settings{'GREEN_DEV'}|all|||\n";\r
+\r
+if ($settings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/ )\r
+{\r
+        print FILE "incoming ORANGE ($settings{'ORANGE_DEV'})|ipac~o|$settings{'ORANGE_DEV'}|all|||\n";\r
+        print FILE "outgoing ORANGE ($settings{'ORANGE_DEV'})|ipac~i|$settings{'ORANGE_DEV'}|all|||\n";\r
+        print FILE "forwarded incoming ORANGE ($settings{'ORANGE_DEV'})|ipac~fi|$settings{'ORANGE_DEV'}|all|||\n";\r
+        print FILE "forwarded outgoing ORANGE ($settings{'ORANGE_DEV'})|ipac~fo|$settings{'ORANGE_DEV'}|all|||\n";\r
+}\r
+\r
+if ($settings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/ )\r
+{\r
+        print FILE "incoming BLUE ($settings{'BLUE_DEV'})|ipac~o|$settings{'BLUE_DEV'}|all|||\n";\r
+        print FILE "outgoing BLUE ($settings{'BLUE_DEV'})|ipac~i|$settings{'BLUE_DEV'}|all|||\n";\r
+        print FILE "forwarded incoming BLUE ($settings{'BLUE_DEV'})|ipac~fi|$settings{'BLUE_DEV'}|all|||\n";\r
+        print FILE "forwarded outgoing BLUE ($settings{'BLUE_DEV'})|ipac~fo|$settings{'BLUE_DEV'}|all|||\n";\r
+}\r
+if ($iface) {\r
+       print FILE "incoming RED ($iface)|ipac~o|$iface|all|||\n";\r
+       print FILE "outgoing RED ($iface)|ipac~i|$iface|all|||\n";\r
+       print FILE "forwarded incoming RED ($iface)|ipac~fi|$iface|all|||\n";\r
+       print FILE "forwarded outgoing RED ($iface)|ipac~fo|$iface|all|||\n";\r
+}\r
+\r
+close FILE;\r
diff --git a/src/rc.d/rc.3cp4218usbadsl b/src/rc.d/rc.3cp4218usbadsl
new file mode 100644 (file)
index 0000000..5e6b3a2
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/bash
+#
+# $Id: rc.3cp4218usbadsl,v 1.4.2.3 2005/07/07 20:11:57 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "3Com AccessRunner USB: $*"
+       fi
+       echo "$*"
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ -f "/proc/bus/usb/devices" ]; then
+               if ( ! /bin/cat /proc/bus/usb/devices | /bin/grep -q 'Vendor=0506 ProdID=F002' ); then
+                       echo "3Cload"
+                       /usr/sbin/3cload /usr/sbin/ez-usb.bin
+                       if [ $? -ne 0 ]; then
+                               msg "3Cload1 failed"
+                               exit 1
+                       fi
+                       /bin/sleep 5
+                       # OPEN_MODE=: 5 = ANSI T1.413, 7 = ITU-T G.992.2 (G.LITE), 6 = ITU-T G.992.1 (G.DMT), 8 = multimode, 3 = other
+                       case "$MODULATION" in
+                               GDMT)   OPEN_MODE=6 ;;
+                               ANSI)   OPEN_MODE=5 ;;
+                               GLITE)  OPEN_MODE=7 ;;
+                               AUTO)   OPEN_MODE=8 ;;
+                       esac
+                       /usr/sbin/3cload 2 /usr/sbin/3cinit.bin /usr/sbin/3cmain.bin $OPEN_MODE
+                       if [ $? -ne 0 ]; then
+                               msg "3Cload2 failed"
+                               exit 1
+                       fi
+               fi
+
+               /sbin/modprobe 3cp4218 speed=1 open=$OPEN_MODE
+               /bin/sleep 5
+               if [ $? -ne 0 ]; then
+                       msg "3cp4218 loading failed"
+                       exit 2
+               fi
+               /bin/sleep 3
+               /usr/sbin/3cioctl 1
+               if [ $? -ne 0 ]; then
+                       msg "3cioctl failed"
+                       exit 3
+               fi
+               /bin/sleep 3
+       fi
+       exit 0
+       ;;
+stop)
+       msg "stop"
+       /usr/sbin/3cioctl 2
+       ;;
+cleanup)
+       msg "driver cleanup and restarting USB Bus"
+       /usr/sbin/3cioctl 5
+       /sbin/modprobe -r 3cp4218
+       /bin/sleep 4
+       /usr/local/bin/resetusb
+       ;;
+  *)
+       echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.alcatelusb b/src/rc.d/rc.alcatelusb
new file mode 100644 (file)
index 0000000..b19e049
--- /dev/null
@@ -0,0 +1,107 @@
+#!/bin/bash
+#
+# $Id: rc.alcatelusb,v 1.7.2.12 2005/07/07 20:11:57 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash /var/ipcop/ppp/settings)
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "Speedtouch USB: $*"
+       fi
+       /bin/echo "$*"
+}
+
+function wait_for_iface()
+{
+       msg "Waiting for interface: $1"
+       COUNTER=10
+       FLREADY=0
+       TIMES=1
+       while [ $TIMES -le $COUNTER ]; do
+               /sbin/ifconfig $1> /dev/null 2>&1
+               if [ $? -eq 0 ]; then
+                       FLREADY=1
+                       break
+               fi
+               /bin/sleep 1
+               TIMES=$(expr $TIMES + 1)
+       done
+       if [ "$FLREADY" -eq 0 ]; then
+               msg "Interface not found: $1"
+               exit 1
+       fi
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ ! -f "/proc/bus/usb/devices" ]; then
+               msg "No USB enabled"
+               exit 1
+       fi
+       speedtouch=`/bin/cat /proc/bus/usb/devices | /bin/grep 'Vendor=06b9 ProdID=4061' | /usr/bin/cut -d ' ' -f6`
+       case "$speedtouch" in
+               '')
+                       msg "No Speedtouch found"
+                       exit 1
+               ;;
+               '0.00' | '0.01' | '2.00')
+                       modem='v0123'
+                       # Speedtouch 530 aka Rev 3.00 does not work actually
+               ;;
+               '4.00')
+                       modem='v4_b'
+               ;;
+                 *)
+                       msg "Unknown version or unsupported model Rev $speedtouch"
+                       exit 1
+               ;;
+       esac
+       if ( ! /bin/ps -ef | /bin/grep -q [m]odem_run ); then
+               rm -f /var/run/pppoa3-modem*.pid
+               msg "Uploading firmware to modem"
+               /usr/sbin/modem_run -v 1 -t 90 -n 4 -f /var/ipcop/alcatelusb/firmware.$modem.bin
+
+               # Check if Firmware uploaded ok. Reset USB if Failed
+               if [ $? -ne 0 ]; then
+                       msg "Firmware upload failed: Retrying"
+                       /usr/local/bin/resetusb
+                       /usr/sbin/modem_run -v 1 -t 90 -n 4 -f /var/ipcop/alcatelusb/firmware.$modem.bin
+                       if [ $? -ne 0 ]; then
+                               msg "Firmware upload failed: Exiting"
+                               exit 1
+                       fi
+               fi      
+       fi
+
+       # Alcatel USB PPPoE Mode
+       if [ "$PROTOCOL" = "RFC1483" ]; then
+               iface="tap0"
+               /sbin/modprobe tun
+               /usr/sbin/pppoa3 -b -c -m 1 -vpi $VPI -vci $VCI
+               wait_for_iface $iface
+               /sbin/ifconfig $iface up
+               exit $?
+       fi
+       exit 0
+       ;;
+  stop)
+       msg "stop"
+       /bin/killall pppoa3 2>/dev/null
+       /bin/sleep 1
+       /sbin/modprobe -r tun
+       ;;
+  cleanup)
+       msg "driver cleanup and USB Bus reset"
+       /usr/local/bin/resetusb
+       ;;
+  *)
+       /bin/echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.alcatelusbk b/src/rc.d/rc.alcatelusbk
new file mode 100644 (file)
index 0000000..7b33833
--- /dev/null
@@ -0,0 +1,86 @@
+#!/bin/bash
+#
+# $Id: rc.alcatelusbk,v 1.6.2.11 2005/07/07 20:11:57 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "Speedtouch USB K: $*"
+       fi
+       /bin/echo "$*"
+}
+
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ ! -f "/proc/bus/usb/devices" ]; then
+               msg "No USB enabled"
+               exit 1
+       fi
+       speedtouch=`/bin/cat /proc/bus/usb/devices | /bin/grep 'Vendor=06b9 ProdID=4061' | /usr/bin/cut -d ' ' -f6`
+       case "$speedtouch" in
+               '')
+                       msg "No Speedtouch found"
+                       exit 1
+               ;;
+               '0.00' | '0.01' | '2.00')
+                       modem='v0123'
+                       # Speedtouch 530 aka Rev 3.00 does not work actually
+               ;;
+               '4.00')
+                       modem='v4_b'
+               ;;
+                 *)
+                       msg "Unknown version or unsupported model Rev $speedtouch"
+                       exit 1
+               ;;
+       esac
+       if ( ! /bin/ps -ef | /bin/grep -q '[m]odem_run -k'); then
+               # modem_run was killed by "hub.c: already running port x disabled by hub (EMI?), re-enabling..."
+               /sbin/modprobe -r speedtch
+       fi
+       if ( ! /sbin/lsmod | /bin/grep -q [s]peedtch ); then
+               if ( /bin/ps -ef | /bin/grep -q [m]odem_run ); then
+                       # switching from user to kernel mode
+                       msg "need to kill previous modem_run"
+                       /bin/killall /usr/sbin/modem_run
+                       /usr/local/bin/resetusb
+               fi
+               /sbin/modprobe speedtch
+               /usr/sbin/modem_run -k -v 1 -t 90 -n 4 -f CONFIG_ROOT/alcatelusb/firmware.$modem.bin
+               if [ $? -ne 0 ]; then
+                       msg "firmware download failed : will reset USB and try again"
+                       /sbin/modprobe -r speedtch
+                       /usr/local/bin/resetusb
+                       /sbin/modprobe speedtch
+                       /usr/sbin/modem_run -k -v 1 -t 90 -n 4 -f CONFIG_ROOT/alcatelusb/firmware.$modem.bin
+                       if [ $? -ne 0 ]; then
+                               exit 1
+                       fi
+               fi
+               # time to avoid "Ressource temporary unavailable"
+               /bin/sleep 5
+       fi
+       exit 0
+       ;;
+  stop)
+       msg "stop"
+       ;;
+  cleanup)
+       msg "driver cleanup and USB Bus reset"
+       /sbin/modprobe -r speedtch
+       /usr/local/bin/resetusb
+       ;;
+  *)
+       /bin/echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
+
diff --git a/src/rc.d/rc.amedynusbadsl b/src/rc.d/rc.amedynusbadsl
new file mode 100644 (file)
index 0000000..d3ce951
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/bash
+#
+# $Id: rc.amedynusbadsl,v 1.3.2.5 2005/07/07 20:11:57 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "Zyxel 630-11/Asus AAM6000UG: $*"
+       fi
+       /bin/echo "$*"
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ -f "/proc/bus/usb/devices" ]; then
+               if ( ! /bin/cat /proc/bus/usb/devices | /bin/grep -q 'ADSL USB modem' ); then
+                       echo "amload"
+                       /usr/sbin/amload
+                       if [ $? -ne 0 ]; then
+                               msg "amload failed"
+#                              exit 1
+                       fi
+               fi
+
+               /sbin/modprobe amedyn
+               if [ $? -ne 0 ]; then
+                       msg "amedyn loading failed"
+#                      exit 2
+               fi
+               /bin/sleep 3
+               /usr/sbin/amioctl 1
+               if [ $? -ne 0 ]; then
+                       msg "amioctl failed"
+#                      exit 3
+               fi
+               /bin/sleep 3
+       fi
+       exit 0
+       ;;
+stop)
+       msg "stop"
+       /usr/sbin/amioctl 2
+       ;;
+cleanup)
+       msg "driver cleanup and USB Bus reset"
+       /usr/sbin/amioctl 5
+       /sbin/modprobe -r amedyn
+       /bin/sleep 4
+       /usr/local/bin/resetusb
+       ;;
+  *)
+       /bin/echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.bewanadsl b/src/rc.d/rc.bewanadsl
new file mode 100644 (file)
index 0000000..3454f0d
--- /dev/null
@@ -0,0 +1,77 @@
+#!/bin/bash
+#
+# $Id: rc.bewanadsl,v 1.5.2.6 2005/07/07 20:11:58 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "BEWAN ADSL: $*"
+       fi
+       /bin/echo "$*"
+}
+
+function wait_for_showtime() {
+  count=0
+  while [ ! $count = 45 ]; do
+       /bin/sleep 2
+       if ( /bin/cat /proc/net/atm/UNICORN:* | /bin/grep -q "SHOWTIME" ); then
+               return 0
+       fi
+       ((++count))
+  done
+  return 1
+}
+
+if [ "$MODEM" = "PCIST" ]; then
+       UNICORN="unicorn_pci_atm"
+else
+       UNICORN="unicorn_usb_atm"
+       if [ ! -f "/proc/bus/usb/devices" ]; then
+               msg "No USB enabled"
+               exit 1
+       fi
+# commented because actually cat /proc/bus/usb/devices may trigger some verbose error until pppd session start
+#      if ( ! /bin/cat /proc/bus/usb/devices | /bin/grep -q 'Vendor=07fa' ); then
+#              msg "No ST chip : not supported by this driver"
+#              exit 1
+#      fi
+fi
+# See how we were called.
+case "$1" in
+  start)
+       # ActivationMode : ANSI=1,G.lite=2,MULTI=3,G.dmt=4
+       case "$MODULATION" in
+               GDMT)   ActivationMode=4 ;;
+               ANSI)   ActivationMode=1 ;;
+               GLITE)  ActivationMode=2 ;;
+               AUTO)   ActivationMode=3 ;;
+       esac
+       msg "Loading $UNICORN, Modulation=$MODULATION, may take time to uncompress..."
+       /sbin/modprobe "$UNICORN" ActivationMode="$ActivationMode"
+       if [ ! $? = 0 ]; then
+               msg "Loading fail, is the modem plugged in?"
+               exit 1
+       fi
+       wait_for_showtime
+       if [ $? = 1 ]; then
+                exit 1
+       fi
+       ;;
+stop)
+       msg "stop"
+       ;;
+cleanup)
+       msg "cleanup"
+       /sbin/modprobe -r "$UNICORN"
+       ;;
+  *)
+       /bin/echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
\ No newline at end of file
diff --git a/src/rc.d/rc.conexantpciadsl b/src/rc.d/rc.conexantpciadsl
new file mode 100644 (file)
index 0000000..3eb2dec
--- /dev/null
@@ -0,0 +1,80 @@
+#!/bin/bash
+#
+# $Id: rc.conexantpciadsl,v 1.1.2.11 2005/07/07 20:11:58 franck78 Exp $
+#
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "CnxPCI ADSL: $*"
+       fi
+       /bin/echo "$*"
+}
+
+function wait_for_showtime() {
+  msg "waiting for sync"
+  count=0
+  while [ ! $count = 45 ]; do
+       /bin/sleep 2
+       if ( /usr/sbin/cnxadslstatus | /bin/grep -q -F 'Showtime.' ); then
+               msg "sync done"
+               return 0
+       fi
+       ((++count))
+  done
+  return 1
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       msg "starting"
+       # if the driver is not already loaded then
+       if ( /sbin/lsmod | /bin/grep -q CnxADSL ); then
+                       msg "already loaded"
+       else
+               if ( ! /bin/cat /proc/pci | /bin/grep -q '14f1' ); then
+                       msg "no conexant modem"
+                       exit 1
+               fi
+               /sbin/modprobe CnxADSL
+               RETVAL=$?
+               if [ $RETVAL -ne 0 ] ; then
+                       msg "error when loading, card present?"
+               fi
+               if ( /bin/cat /proc/pci | /bin/grep -q '14f1:1611' ); then
+                       # Tigris model
+                       /bin/ln -f -s /etc/Conexant/CnxTgF.hex CONFIG_ROOT/cnx_pci/firmware.hex
+               else
+                       if ( /bin/cat /proc/pci | /bin/grep -q '14f1:1622' ); then
+                               # Yukon model
+                               /bin/ln -f -s /etc/Conexant/CnxYkF.hex CONFIG_ROOT/cnx_pci/firmware.hex
+                       else
+                               msg "don't know this model"
+                               exit 1
+                       fi
+               fi
+
+               # Initialize the firmware and start training
+               /bin/ln -f -s /etc/Conexant/cnxadsl.conf CONFIG_ROOT/cnx_pci/cnxadsl.conf
+               /etc/Conexant/cnxadslload CONFIG_ROOT/cnx_pci
+       fi
+       wait_for_showtime
+       exit $?
+       ;;
+stop)
+       msg "stop"
+       ;;
+cleanup)
+       msg "cleanup"
+       /bin/killall cnxadslload 2>/dev/null
+       /sbin/modprobe -r CnxADSL
+       ;;
+  *)
+       echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.conexantusbadsl b/src/rc.d/rc.conexantusbadsl
new file mode 100644 (file)
index 0000000..85d1b5c
--- /dev/null
@@ -0,0 +1,61 @@
+#!/bin/bash
+#
+# $Id: rc.conexantusbadsl,v 1.5.2.4 2005/07/07 20:11:58 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "Conexant USB: $*"
+       fi
+       /bin/echo "$*"
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ -f "/proc/bus/usb/devices" ]; then
+               if ( ! /bin/cat /proc/bus/usb/devices | /bin/grep -q xdslusb ); then
+                       echo "cxload"
+                       /usr/sbin/cxload
+                       if [ $? -ne 0 ]; then
+                               msg "cxload failed"
+                               exit 1
+                       fi
+               fi
+               eval $(/usr/local/bin/readhash /tmp/cxacru.params)
+               /sbin/modprobe cxacru open=$PARAM_0a
+               if [ $? -ne 0 ]; then
+                       msg "cxacru loading failed"
+                       exit 2
+               fi
+               /bin/sleep 12
+               /usr/sbin/cxioctl 1
+               if [ $? -ne 0 ]; then
+                       msg "cxioctl failed"
+                       exit 3
+               fi
+               /bin/sleep 3
+       fi
+       ;;
+stop)
+       msg "stop"
+       /usr/sbin/cxioctl 2
+       ;;
+cleanup)
+       msg "driver cleanup and USB Bus reset"
+       /usr/sbin/cxioctl 5
+       /sbin/modprobe -r cxacru
+       /bin/sleep 4
+       /usr/local/bin/resetusb
+       ;;
+  *)
+       /bin/echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.connectioncheck b/src/rc.d/rc.connectioncheck
new file mode 100644 (file)
index 0000000..81003c6
--- /dev/null
@@ -0,0 +1,135 @@
+#!/bin/bash
+#
+# $Id: rc.connectioncheck,v 1.4.2.22 2005/07/07 20:11:58 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+
+# MAXRETRIES is now a count before rc.red clear and if reconnection fail, eventually switching to a backup profil
+MAXCONFIGURE=160
+if [ ! $HOLDOFF ]; then
+       HOLDOFF=30
+fi
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "Connectioncheck: $*"
+       fi
+       /bin/echo "$*"
+}
+
+if [ -s "CONFIG_ROOT/red/keepconnected" ]; then
+       ATTEMPTS=$(/bin/cat CONFIG_ROOT/red/keepconnected)
+else
+       echo "0" > CONFIG_ROOT/red/keepconnected
+fi
+
+case "$1" in
+  start)
+       # waiting pppd start or sync timout set at 90 s when available in driver
+       #rc.eciadsl/eci-load2 timout after 60s and 5 eci-load2 maximum attempts are done in rc.eciadsl.
+       #So just wait 5 s after 'rc.red start' end where pppd should have been started
+       TIMETOSTART=0
+       while ( ! /bin/ps ax | /bin/grep -q [p]ppd ); do
+               if [ ! -e "CONFIG_ROOT/red/keepconnected" ]; then
+                       # user pressed disconnect in gui
+                       exit 0
+               fi
+               RCREDSTART=`/bin/ps ax | /bin/grep '[r]c.red start'`
+               if [ "$TIMETOSTART" -eq 1 ]; then
+                       msg "fail before pppd start : no sync, trying again"
+                       /etc/rc.d/rc.red stop
+                       /etc/rc.d/rc.red clear
+                       /etc/rc.d/rc.red start
+                       exit
+               fi
+               # give 5 s more at pppd to be visible  with ps ax after 'rc.red start' end
+               if [ "$RCREDSTART" = '' ]; then
+                       TIMETOSTART=1
+               fi
+               /bin/sleep 5
+       done
+
+       #watching if an IP is received in $MAXCONFIGURE time to avoid some pppoa waiting forever even after LCP timeout
+       COUNT=0
+       while [ "$COUNT" -le "$MAXCONFIGURE" ]; do
+               if [ ! -e "CONFIG_ROOT/red/keepconnected" ]; then
+                       # user pressed disconnect in gui
+                       exit 0
+               fi
+               if [ -e "CONFIG_ROOT/red/active" ]; then
+                       # connected in time so exit
+                       echo "0" > CONFIG_ROOT/red/keepconnected
+                       exit 0
+               fi
+               if [ -e "CONFIG_ROOT/red/dial-on-demand" ]; then
+                       # Don't count time when dial-on-demand is not really connected
+                       if ( ! /sbin/ifconfig | /bin/grep -q addr:10.64.64.64 ); then
+                               (( COUNT += 5 ))
+                       fi
+               else
+                       (( COUNT += 5 ))
+               fi
+               if ( ! /bin/ps ax | /bin/grep -q [p]ppd ); then
+                       #pppd exit, so don't need to wait MAXCONFIGURE
+                       break
+               fi
+               /bin/sleep 5
+       done
+       msg "RED fail to connect"
+       RCREDSTART=`/bin/ps ax | /bin/grep '[r]c.red start' | /usr/bin/cut -f1 -d ' '`
+       if [ "$RCREDSTART" != '' ]; then
+               /bin/kill "$RCREDSTART"
+       fi
+       # this attempt to connect fail, so retry
+
+       #Don't erase keepconnected because it is used to watch user actions
+       /bin/touch CONFIG_ROOT/red/redial
+       /etc/rc.d/rc.red stop
+       while ( /bin/ps ax | /bin/grep -q [p]ppd ); do
+               msg "waiting pppd exit"
+               /bin/sleep 2
+       done
+       /bin/sleep $HOLDOFF
+       if [ ! -e "CONFIG_ROOT/red/keepconnected" ]; then
+               # user pressed disconnect in gui
+               exit 0
+       fi
+       (( ATTEMPTS += 1 ))
+       msg "Restarting $ATTEMPTS/$MAXRETRIES"
+       if [ "$ATTEMPTS" -ge "$MAXRETRIES" ]; then
+               echo "0" > CONFIG_ROOT/red/keepconnected
+               msg "Clearing RED interface"
+               /etc/rc.d/rc.red clear
+               if [ "$BACKUPPROFILE" != '' ]; then
+                       /bin/rm -f CONFIG_ROOT/ppp/settings
+                       /bin/cp "CONFIG_ROOT/ppp/settings-$BACKUPPROFILE" CONFIG_ROOT/ppp/settings
+               fi
+       else
+               echo $ATTEMPTS > CONFIG_ROOT/red/keepconnected
+       fi
+       /etc/rc.d/rc.red start
+       ;;
+  reconnect)
+       while ( /bin/ps ax | /bin/grep -q [p]ppd ); do
+               /bin/sleep 2
+       done
+       if [ "$PROTOCOL" = RFC1483 ]; then
+               # remove bridged/routed user-space programs
+               if [ "$TYPE" = eciadsl ]; then
+                       /etc/rc.d/rc.eciadsl stop
+               fi
+               if [ "$TYPE" = alcatelusb ]; then
+                       /etc/rc.d/rc.alcatelusb stop
+               fi
+       fi
+       msg "will connect again"
+       /etc/rc.d/rc.red start
+       ;;
+  *)
+       /bin/echo "Usage: $0 {start|reconnect}"
+       exit 1
+       ;;
+esac
diff --git a/src/rc.d/rc.eagleusbadsl b/src/rc.d/rc.eagleusbadsl
new file mode 100644 (file)
index 0000000..4c7a418
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/bash
+#
+# $Id: rc.eagleusbadsl,v 1.5.2.11 2005/07/07 20:11:58 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "EAGLE-USB: $*"
+       fi
+       /bin/echo "$*"
+}
+IFACE="eth3"
+DSPstr="Please send DSP (eaglectrl -d)"
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ ! -f "/proc/bus/usb/devices" ]; then
+               msg "No USB enabled"
+               exit 1
+       fi
+       
+       if [ "$LINE" != "WO" -a "$LINE" != "FR" -a "$LINE" != "IT" -a "$LINE" != "ES" ]; then
+               LINE='WO' # default CMV value
+       fi
+       
+       /bin/ln -f -s /etc/eagle-usb/CMVep$LINE.txt /etc/eagle-usb/CMVep.txt
+       /bin/ln -f -s /etc/eagle-usb/CMVeiWO.txt /etc/eagle-usb/CMVei.txt
+
+       if ( /sbin/ifconfig | /bin/grep -q "$IFACE" ); then
+               /sbin/ifconfig "$IFACE" down
+       fi
+       if ( ! /sbin/lsmod | /bin/grep -q [e]agle-usb ); then
+               /sbin/modprobe eagle-usb if_name="$IFACE"
+               # let some time to load firmware
+               /bin/sleep 8
+       fi
+       if [[ ( -e CONFIG_ROOT/ppp/updatesettings) ||
+                       ( `/usr/sbin/eaglestat | /bin/grep "$DSPstr"` = "$DSPstr" ) ]]; then
+               /usr/sbin/eaglectrl -d -oCONFIG_ROOT/eagle-usb/eagle-usb.conf
+               if [ $? -ne 0 ]; then
+                       msg "init fail"
+                       exit 1
+               fi
+       fi
+       /usr/sbin/eaglectrl -s90
+       if [ $? -ne 0 ]; then
+               msg "synchronisation fail"
+               exit 1
+       fi
+       /sbin/ifconfig `/usr/sbin/eaglectrl -i` 10.0.0.139 netmask 255.255.255.254 up
+       if [ $? -ne 0 ]; then
+               msg "ifconfig fail"
+               exit 1
+       fi
+       ;;
+  stop)
+       msg "stop"
+       ;;
+  cleanup)
+       msg "driver cleanup"
+       /sbin/ifconfig "$IFACE" down
+       /sbin/modprobe -r eagle-usb
+       ;;
+  *)
+       /bin/echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.eciadsl b/src/rc.d/rc.eciadsl
new file mode 100644 (file)
index 0000000..c6eca4c
--- /dev/null
@@ -0,0 +1,151 @@
+#!/bin/bash
+#
+# $Id: rc.eciadsl,v 1.4.2.14 2005/07/28 16:47:43 gespinasse Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "ECI USB: $*"
+       fi
+       /bin/echo "$*"
+}
+
+# Function to wait for interface to become ready
+# Borrowed from eciadsl startmodem script
+function wait_for_iface()
+{
+       msg "Waiting for interface: $1"
+       COUNTER=10
+       FLREADY=0
+       TIMES=1
+       while [ $TIMES -le $COUNTER ]; do
+               /sbin/ifconfig $1> /dev/null 2>&1
+               if [ $? -eq 0 ]; then
+                       FLREADY=1
+                       break
+               fi
+               /bin/sleep 1
+               TIMES=$(expr $TIMES + 1)
+       done
+       if [ "$FLREADY" -eq 0 ]; then
+               msg "Interface not found: $1"
+               exit 1
+       fi
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ ! -f "CONFIG_ROOT/eciadsl/synch.bin" ]; then
+               msg "Synch.bin not uploaded"
+               exit 1
+       fi
+
+       if [ ! -f "/proc/bus/usb/devices" ]; then
+               msg "No USB enabled"
+               exit 1
+       fi
+
+       VID1="$(/bin/grep "$MODEM       " "/etc/eciadsl/modems.db" | /usr/bin/tr -s "\t" "|" | /usr/bin/cut -d '|' -f 2)"
+       PID1="$(/bin/grep "$MODEM       " "/etc/eciadsl/modems.db" | /usr/bin/tr -s "\t" "|" | /usr/bin/cut -d '|' -f 3)"
+       VID2="$(/bin/grep "$MODEM       " "/etc/eciadsl/modems.db" | /usr/bin/tr -s "\t" "|" | /usr/bin/cut -d '|' -f 4)"
+       PID2="$(/bin/grep "$MODEM       " "/etc/eciadsl/modems.db" | /usr/bin/tr -s "\t" "|" | /usr/bin/cut -d '|' -f 5)"
+       CHIP="$(/bin/grep "$MODEM       " "/etc/eciadsl/modems.db" | /usr/bin/tr -s "\t" "|" | /usr/bin/cut -d '|' -f 6)"
+       ALTS="$(/bin/grep "$MODEM       " "/etc/eciadsl/modems.db" | /usr/bin/tr -s "\t" "|" | /usr/bin/cut -d '|' -f 7)"
+       ALTP="$(/bin/grep "$MODEM       " "/etc/eciadsl/modems.db" | /usr/bin/tr -s "\t" "|" | /usr/bin/cut -d '|' -f 8)"
+
+       if [ "$CHIP" = '' ]; then
+               msg "error in modems.db reading for $MODEM no CHIP found"
+               exit 1
+       fi
+
+       # Firmware
+       if [ "$CHIP" = 'GS7070' ]; then
+               if ( /bin/grep -q "^P:  Vendor=$VID1 ProdID=$PID1" /proc/bus/usb/devices ); then
+                       /bin/rm -f /var/ipcop/red/eciadsl-synch-done
+                       /bin/sleep 2
+                       msg "Loading Firmware for $MODEM"
+                       /usr/sbin/eciadsl-firmware 0x$VID1 0x$PID1 0x$VID2 0x$PID2 /etc/eciadsl/firmware00.bin
+                       RET=$?
+                       if [ "$RET" -ne "0" ]; then
+                               msg "$MODEM failed to load firmware, reason: $RET"
+                               exit 1
+                       fi
+                       /bin/sleep 2
+               fi
+       fi
+
+       if ( ! /bin/grep -q "^P:  Vendor=$VID2 ProdID=$PID2" /proc/bus/usb/devices ); then
+               msg "$MODEM modem not found ready"
+               exit 1
+       fi
+
+       # Modem synch
+       if [ ! -e "CONFIG_ROOT/red/eciadsl-synch-done" ]; then
+               /usr/sbin/eciadsl-synch -alt $ALTS -mc $CHIP 0x$VID2 0x$PID2 CONFIG_ROOT/eciadsl/synch.bin
+               RET=$?
+               if [ "$RET" -ne "0" ]; then
+                       msg "$MODEM failed to get synchronization, reason:$RET"
+                       exit 1
+               else
+                       /bin/touch CONFIG_ROOT/red/eciadsl-synch-done
+               fi
+       fi
+
+       if [ "$PROTOCOL" = "RFC1483" ]; then
+               case "$ENCAP" in
+                   0) ECIMODE="LLC_SNAP_RFC1483_BRIDGED_ETH_NO_FCS"
+                       ;;
+                   1) ECIMODE="VCM_RFC_1483_BRIDGED_ETH"
+                       ;;
+                   2) ECIMODE="LLC_RFC1483_ROUTED_IP"
+                       ;;
+                   3) ECIMODE="VCM_RFC1483_ROUTED_IP"
+                       ;;
+                   *) msg "Unknown encapsulation: $ENCAP"
+                       exit 1
+                       ;;
+               esac
+
+               # Start pppoeci
+               if [ "$ENCAP" = "0" -o "$ENCAP" = "1" ]; then
+                       ECIIF="tap0"
+               else
+                       ECIIF="tun0"
+               fi
+               /sbin/modprobe tun
+               /usr/sbin/eciadsl-pppoeci -alt $ALTP -vpi $VPI -vci $VCI -vendor 0x$VID2 -product 0x$PID2 -mode $ECIMODE
+               wait_for_iface $ECIIF
+               /sbin/ifconfig $ECIIF up
+               exit $?
+       fi
+       exit 0
+       ;;
+  stop)
+       msg "stop"
+       # Avoid possibility of multiple 'rc.eciadsl start' as only one prog can claim interface at a time
+       # and time for the full eci-load2 loop may be too long for the user to wait until to try once again
+       RCECIADSLSTART=`/bin/ps ax | /bin/grep '[r]c.eciadsl start' | /usr/bin/cut -f1 -d ' '`
+       [ "$RCECIADSLSTART" != '' ] && /bin/kill "$RCECIADSLSTART"
+
+       # -KILL is necessary because pppoeci ignores sigint
+       /bin/killall -KILL eciadsl-pppoeci eciadsl-firmware eciadsl-synch 2> /dev/null
+       /bin/sleep 1
+       /sbin/modprobe -r tun
+       ;;
+  cleanup)
+       msg "driver cleanup and USB Bus reset"
+       /usr/local/bin/resetusb
+       /bin/rm -f CONFIG_ROOT/red/eciadsl-synch-done
+       ;;
+  *)
+       /bin/echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.firewall b/src/rc.d/rc.firewall
new file mode 100644 (file)
index 0000000..8a9b0d5
--- /dev/null
@@ -0,0 +1,293 @@
+#!/bin/sh
+#
+# $Id: rc.firewall,v 1.7.2.20 2006/01/12 01:24:30 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ethernet/settings)
+IFACE=`/bin/cat CONFIG_ROOT/red/iface 2> /dev/null | /usr/bin/tr -d '\012'`
+
+if [ -f CONFIG_ROOT/red/device ]; then
+       DEVICE=`/bin/cat CONFIG_ROOT/red/device 2> /dev/null | /usr/bin/tr -d '\012'`
+fi
+
+iptables_init() {
+       # Flush all rules and delete all custom chains
+       /sbin/iptables -F
+       /sbin/iptables -t nat -F
+       /sbin/iptables -t mangle -F
+       /sbin/iptables -X
+       /sbin/iptables -t nat -X
+       /sbin/iptables -t mangle -X
+
+       # Set up policies
+       /sbin/iptables -P INPUT DROP
+       /sbin/iptables -P FORWARD DROP
+       /sbin/iptables -P OUTPUT ACCEPT
+
+       # Empty LOG_DROP and LOG_REJECT chains
+       /sbin/iptables -N LOG_DROP
+       /sbin/iptables -A LOG_DROP   -m limit --limit 10/minute -j LOG
+       /sbin/iptables -A LOG_DROP   -j DROP
+       /sbin/iptables -N LOG_REJECT
+       /sbin/iptables -A LOG_REJECT -m limit --limit 10/minute -j LOG
+       /sbin/iptables -A LOG_REJECT -j REJECT
+
+       # This chain will log, then DROPs packets with certain bad combinations
+       # of flags might indicate a port-scan attempt (xmas, null, etc)
+       /sbin/iptables -N PSCAN
+       /sbin/iptables -A PSCAN -p tcp  -m limit --limit 10/minute -j LOG --log-prefix "TCP Scan? "
+       /sbin/iptables -A PSCAN -p udp  -m limit --limit 10/minute -j LOG --log-prefix "UDP Scan? "
+       /sbin/iptables -A PSCAN -p icmp -m limit --limit 10/minute -j LOG --log-prefix "ICMP Scan? "
+       /sbin/iptables -A PSCAN -f      -m limit --limit 10/minute -j LOG --log-prefix "FRAG Scan? "
+       /sbin/iptables -A PSCAN -j DROP
+
+       # New tcp packets without SYN set - could well be an obscure type of port scan
+       # that's not covered above, may just be a broken windows machine
+       /sbin/iptables -N NEWNOTSYN
+       /sbin/iptables -A NEWNOTSYN  -m limit --limit 10/minute -j LOG  --log-prefix "NEW not SYN? "
+       /sbin/iptables -A NEWNOTSYN  -j DROP
+
+       # Chain to contain all the rules relating to bad TCP flags
+       /sbin/iptables -N BADTCP
+
+       # Disallow packets frequently used by port-scanners
+       # nmap xmas
+       /sbin/iptables -A BADTCP -p tcp --tcp-flags ALL FIN,URG,PSH  -j PSCAN
+       # Null
+       /sbin/iptables -A BADTCP -p tcp --tcp-flags ALL NONE -j PSCAN
+       # FIN
+       /sbin/iptables -A BADTCP -p tcp --tcp-flags ALL FIN -j PSCAN
+       # SYN/RST (also catches xmas variants that set SYN+RST+...)
+       /sbin/iptables -A BADTCP -p tcp --tcp-flags SYN,RST SYN,RST -j PSCAN
+       # SYN/FIN (QueSO or nmap OS probe)
+       /sbin/iptables -A BADTCP -p tcp --tcp-flags SYN,FIN SYN,FIN -j PSCAN
+       # NEW TCP without SYN
+       /sbin/iptables -A BADTCP -p tcp ! --syn -m state --state NEW -j NEWNOTSYN
+
+       /sbin/iptables -A INPUT   -j BADTCP
+       /sbin/iptables -A FORWARD -j BADTCP
+
+}
+
+iptables_red() {
+       /sbin/iptables -F REDINPUT
+       /sbin/iptables -F REDFORWARD
+       /sbin/iptables -t nat -F REDNAT
+
+       # PPPoE / PPTP Device
+       if [ "$IFACE" != "" ]; then
+               # PPPoE / PPTP
+               if [ "$DEVICE" != "" ]; then
+                       /sbin/iptables -A REDINPUT -i $DEVICE -j ACCEPT
+               fi
+               if [ "$RED_TYPE" == "PPTP" -o "$RED_TYPE" == "PPPOE" ]; then
+                       if [ "$RED_DEV" != "" ]; then
+                               /sbin/iptables -A REDINPUT -i $RED_DEV -j ACCEPT
+                       fi
+               fi
+       fi
+
+       # PPTP over DHCP
+       if [ "$DEVICE" != "" -a "$TYPE" == "PPTP" -a "$METHOD" == "DHCP" ]; then
+               /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $DEVICE -j ACCEPT
+               /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $DEVICE -j ACCEPT
+       fi
+
+       # Orange pinholes
+       if [ "$ORANGE_DEV" != "" ]; then
+               # This rule enables a host on ORANGE network to connect to the outside
+               # (only if we have a red connection)
+               if [ "$IFACE" != "" ]; then
+                       /sbin/iptables -A REDFORWARD -i $ORANGE_DEV -p tcp -o $IFACE -j ACCEPT
+                       /sbin/iptables -A REDFORWARD -i $ORANGE_DEV -p udp -o $IFACE -j ACCEPT
+               fi
+       fi
+
+       if [ "$IFACE" != "" -a -f CONFIG_ROOT/red/active ]; then
+               # DHCP
+               if [ "$RED_DEV" != "" -a "$RED_TYPE" == "DHCP" ]; then
+                       /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT
+                       /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT
+               fi
+               if [ "$METHOD" == "DHCP"  -a "$PROTOCOL" == "RFC1483" ]; then
+                       /sbin/iptables -A REDINPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT
+                       /sbin/iptables -A REDINPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT
+               fi
+
+               # Outgoing masquerading
+               /sbin/iptables -t nat -A REDNAT -o $IFACE -j MASQUERADE
+
+       fi
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       iptables_init
+
+       # Limit Packets- helps reduce dos/syn attacks
+       # original do nothing line
+       #/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 10/sec
+       # the correct one, but the negative '!' do nothing...
+       #/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit ! --limit 10/sec -j DROP
+
+       # Fix for braindead ISP's
+       /sbin/iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
+
+       # CUSTOM chains, can be used by the users themselves
+       /sbin/iptables -N CUSTOMINPUT
+       /sbin/iptables -A INPUT -j CUSTOMINPUT
+       /sbin/iptables -N CUSTOMFORWARD
+       /sbin/iptables -A FORWARD -j CUSTOMFORWARD
+       /sbin/iptables -N CUSTOMOUTPUT
+       /sbin/iptables -A OUTPUT -j CUSTOMOUTPUT
+       /sbin/iptables -t nat -N CUSTOMPREROUTING
+       /sbin/iptables -t nat -A PREROUTING -j CUSTOMPREROUTING
+       /sbin/iptables -t nat -N CUSTOMPOSTROUTING
+       /sbin/iptables -t nat -A POSTROUTING -j CUSTOMPOSTROUTING
+
+       # filtering from GUI
+       /sbin/iptables -N GUIINPUT
+       /sbin/iptables -A INPUT -j GUIINPUT
+
+       # Accept everything connected
+       /sbin/iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
+       /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
+
+       # localhost and ethernet.
+       /sbin/iptables -A INPUT   -i lo          -m state --state NEW -j ACCEPT
+       /sbin/iptables -A INPUT   -s 127.0.0.0/8 -m state --state NEW -j DROP   # Loopback not on lo
+       /sbin/iptables -A INPUT   -d 127.0.0.0/8 -m state --state NEW -j DROP
+       /sbin/iptables -A FORWARD -i lo          -m state --state NEW -j ACCEPT
+       /sbin/iptables -A FORWARD -s 127.0.0.0/8 -m state --state NEW -j DROP
+       /sbin/iptables -A FORWARD -d 127.0.0.0/8 -m state --state NEW -j DROP
+       /sbin/iptables -A INPUT   -i $GREEN_DEV  -m state --state NEW -j ACCEPT -p ! icmp
+       /sbin/iptables -A FORWARD -i $GREEN_DEV  -m state --state NEW -j ACCEPT
+
+       # If a host on orange tries to initiate a connection to IPCop's red IP and
+       # the connection gets DNATed back through a port forward to a server on orange
+       # we end up with orange -> orange traffic passing through IPCop
+       [ "$ORANGE_DEV" != "" ] && /sbin/iptables -A FORWARD -i $ORANGE_DEV -o $ORANGE_DEV -m state --state NEW -j ACCEPT
+
+       # accept all traffic from ipsec interfaces
+       /sbin/iptables -A INPUT   -i ipsec+ -j ACCEPT
+       /sbin/iptables -A FORWARD -i ipsec+ -j ACCEPT
+
+       # allow DHCP on BLUE to be turned on/off
+       /sbin/iptables -N DHCPBLUEINPUT 
+       /sbin/iptables -A INPUT -j DHCPBLUEINPUT
+
+       # IPSec chains
+       /sbin/iptables -N IPSECRED
+       /sbin/iptables -A INPUT -j IPSECRED
+       /sbin/iptables -N IPSECBLUE
+       /sbin/iptables -A INPUT -j IPSECBLUE
+
+       # WIRELESS chains
+       /sbin/iptables -N WIRELESSINPUT
+       /sbin/iptables -A INPUT -m state --state NEW -j WIRELESSINPUT
+       /sbin/iptables -N WIRELESSFORWARD
+       /sbin/iptables -A FORWARD -m state --state NEW -j WIRELESSFORWARD
+
+       # RED chain, used for the red interface
+       /sbin/iptables -N REDINPUT
+       /sbin/iptables -A INPUT -j REDINPUT
+       /sbin/iptables -N REDFORWARD
+       /sbin/iptables -A FORWARD -j REDFORWARD
+       /sbin/iptables -t nat -N REDNAT
+       /sbin/iptables -t nat -A POSTROUTING -j REDNAT
+
+       iptables_red
+
+       # DMZ pinhole chain.  setdmzholes setuid prog adds rules here to allow
+       # ORANGE to talk to GREEN / BLUE.
+       /sbin/iptables -N DMZHOLES
+       if [ "$ORANGE_DEV" != "" ]; then
+               /sbin/iptables -A FORWARD -i $ORANGE_DEV -m state --state NEW -j DMZHOLES
+       fi
+
+       # XTACCESS chain, used for external access
+       /sbin/iptables -N XTACCESS
+       /sbin/iptables -A INPUT -m state --state NEW -j XTACCESS
+
+       # PORTFWACCESS chain, used for portforwarding
+       /sbin/iptables -N PORTFWACCESS
+       /sbin/iptables -A FORWARD -m state --state NEW -j PORTFWACCESS
+
+       # Custom prerouting chains (for transparent proxy and port forwarding)
+       /sbin/iptables -t nat -N SQUID
+       /sbin/iptables -t nat -A PREROUTING -j SQUID
+       /sbin/iptables -t nat -N PORTFW
+       /sbin/iptables -t nat -A PREROUTING -j PORTFW
+
+
+       # Custom mangle chain (for port fowarding)
+       /sbin/iptables -t mangle -N PORTFWMANGLE
+       /sbin/iptables -t mangle -A PREROUTING -j PORTFWMANGLE
+
+       # Postrouting rules (for port forwarding)
+       /sbin/iptables -t nat -A POSTROUTING -m mark --mark 1 -j SNAT \
+        --to-source $GREEN_ADDRESS
+       if [ "$BLUE_DEV" != "" ]; then
+               /sbin/iptables -t nat -A POSTROUTING -m mark --mark 2 -j SNAT --to-source $BLUE_ADDRESS
+       fi
+       if [ "$ORANGE_DEV" != "" ]; then
+               /sbin/iptables -t nat -A POSTROUTING -m mark --mark 3 -j SNAT --to-source $ORANGE_ADDRESS
+       fi
+
+
+       # run local firewall configuration, if present
+       if [ -x /etc/rc.d/rc.firewall.local ]; then
+               /etc/rc.d/rc.firewall.local start
+       fi
+       
+       # last rule in input and forward chain is for logging.
+       /sbin/iptables -A INPUT   -m limit --limit 10/minute -j LOG --log-prefix "INPUT "
+       /sbin/iptables -A FORWARD -m limit --limit 10/minute -j LOG --log-prefix "OUTPUT "
+        ;;
+  stop)
+       iptables_init
+       # Accept everyting connected
+       /sbin/iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
+
+       # localhost and ethernet.
+       /sbin/iptables -A INPUT -i lo -j ACCEPT
+       /sbin/iptables -A INPUT -i $GREEN_DEV -m state --state NEW -j ACCEPT
+
+       if [ "$RED_DEV" != "" -a "$RED_TYPE" == "DHCP" ]; then
+               /sbin/iptables -A INPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT
+               /sbin/iptables -A INPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT
+       fi
+       if [ "$PROTOCOL" == "RFC1483" -a "$METHOD" == "DHCP" ]; then
+               /sbin/iptables -A INPUT -p tcp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT
+               /sbin/iptables -A INPUT -p udp --source-port 67 --destination-port 68 -i $IFACE -j ACCEPT
+       fi
+
+       # run local firewall configuration, if present
+       if [ -x /etc/rc.d/rc.firewall.local ]; then
+               /etc/rc.d/rc.firewall.local stop
+       fi
+
+       /sbin/iptables -A INPUT   -m limit --limit 10/minute -j LOG --log-prefix "INPUT "
+       /sbin/iptables -A FORWARD -m limit --limit 10/minute -j LOG --log-prefix "OUTPUT "
+        ;;
+  reload)
+       iptables_red
+
+       # run local firewall configuration, if present
+       if [ -x /etc/rc.d/rc.firewall.local ]; then
+               /etc/rc.d/rc.firewall.local reload
+       fi
+       ;;
+  restart)
+       $0 stop
+       $0 start
+       ;;
+  *)
+        echo "Usage: $0 {start|stop|reload|restart}"
+        exit 1
+       ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.firewall.local b/src/rc.d/rc.firewall.local
new file mode 100644 (file)
index 0000000..148e0be
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+# Used for private firewall rules
+
+# See how we were called.
+case "$1" in
+  start)
+        ## add your 'start' rules here
+        ;;
+  stop)
+        ## add your 'stop' rules here
+        ;;
+  reload)
+        $0 stop
+        $0 start
+        ## add your 'reload' rules here
+        ;;
+  *)
+        echo "Usage: $0 {start|stop|reload}"
+        ;;
+esac
\ No newline at end of file
diff --git a/src/rc.d/rc.flash.down b/src/rc.d/rc.flash.down
new file mode 100644 (file)
index 0000000..570d52a
--- /dev/null
@@ -0,0 +1 @@
+tar -czf /var/log_compressed/log.tgz --exclude=/var/log/cache/* /var/log/*
diff --git a/src/rc.d/rc.flash.up b/src/rc.d/rc.flash.up
new file mode 100644 (file)
index 0000000..1c903c2
--- /dev/null
@@ -0,0 +1,51 @@
+#
+# $Id: rc.flash.up,v 1.4.2.1 2005/07/07 20:11:58 franck78 Exp $
+#
+umount -n /dev/ramdisk
+mke2fs -b 1024 -m 0 /dev/ramdisk
+
+rm -rf /tmp/
+rm -rf /var/log
+rm -rf /var/log/cache/
+
+mount -n /dev/ramdisk /ram/
+mkdir -p /ram/{log,squid,tmp}
+
+chown squid:squid /ram/squid
+chmod ugo+rwx,o+t /ram/tmp/
+
+if [ -e /var/log_compressed/log.tgz ]; then
+       tar -xzf /var/log_compressed/log.tgz -C /ram
+       rm -rf /var/log/cache
+fi
+
+if [ ! -e /ram/var/log ]; then
+       mkdir -p /ram/var/log
+fi
+
+ln -s /ram/var/log /var/log
+ln -s /ram/squid /var/log/cache
+ln -s /ram/tmp /tmp
+
+if [ ! -e /var/log/ip-acct ]; then
+       mkdir /var/log/ip-acct
+fi
+
+if [ ! -e /var/log/httpd ]; then
+       mkdir /var/log/httpd
+fi
+
+if [ ! -e /var/log/rrd ]; then
+       mkdir /var/log/rrd
+fi
+
+if [ ! -e /var/log/snort ]; then
+       mkdir /var/log/snort
+fi
+chown -R snort:snort /var/log/snort
+
+if [ ! -e /var/log/squid ]; then
+       mkdir /var/log/squid
+       touch /var/log/squid/access.log
+fi
+chown -R squid:squid /var/log/squid
diff --git a/src/rc.d/rc.fritzdsl b/src/rc.d/rc.fritzdsl
new file mode 100644 (file)
index 0000000..629d3a2
--- /dev/null
@@ -0,0 +1,77 @@
+#!/bin/sh
+#
+# $Id: rc.fritzdsl,v 1.2.2.10 2005/07/07 20:11:58 franck78 Exp $
+#
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "FRITZDSL: $*"
+       fi
+       /bin/echo "$*"
+}
+
+if [ -e /var/run/need-depmod-`uname -r` ]; then
+       echo "Update modules dependencies, may take time..."
+       /sbin/depmod -a
+       /bin/rm -f /var/run/need-depmod-`uname -r`
+fi
+
+# ID borrowed from Gentoo ebuild,
+# should work with 'Card DSL','Card DSL v2.0', 'Card DSL SL', 'Card DSL USB','Card DSL SL USB'
+# pcmcia card not compiled
+if ( /bin/grep "1244:2700" -q /proc/pci ); then
+       FCDSLMODEM='sl'
+elif ( /bin/grep "1244:2900" -q /proc/pci ); then
+       FCDSLMODEM='2'
+elif ( /bin/grep "1131:5402" -q /proc/pci ); then
+       FCDSLMODEM=''
+elif ( /bin/grep "Vendor=057c ProdID=2300" -q /proc/bus/usb/devices ); then
+       FCDSLMODEM='usb'
+elif ( /bin/grep "Vendor=057c ProdID=3500" -q /proc/bus/usb/devices ); then
+       FCDSLMODEM='slusb'
+else 
+       FCDSLMODEM='none'
+fi
+
+# See how we were called.
+case "$1" in
+  start)
+       if ( /bin/grep -q "fcdsl" /proc/modules >/dev/null ); then
+               exit 0;
+       fi
+       if [ "$FCDSLMODEM" = 'none' ]; then
+               msg "No supported modem found"
+               exit 1
+       fi
+
+       if [ ! -f "/lib/modules/`/bin/uname -r`/misc/fcdsl$FCDSLMODEM.o.gz" ]; then
+               msg "Driver not uploaded"
+               exit 1
+       else
+               # should use drdsl and drdsl.ini for parameters autoconfiguration or use pppsetup.cgi?
+               /usr/sbin/capiinit -c "/etc/fcdsl/fcdsl$FCDSLMODEM.conf" start
+       fi
+       ;;
+  stop)
+       msg "stop"
+       ;;
+  cleanup)
+       msg "driver cleanup"
+       if [ "$FCDSLMODEM" = 'none' ]; then
+               FCDSLMODEM=''
+       fi
+       /sbin/modprobe -r fcdslusb fcdslslusb
+       /usr/sbin/capiinit -c "/etc/fcdsl/fcdsl$FCDSLMODEM.conf" stop
+       if [ "$FCDSLMODEM" = 'slusb' -o "$FCDSLMODEM" = 'usb' ]; then
+               /usr/local/bin/resetusb
+       fi
+       ;;
+  *)
+       /bin/echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.halt b/src/rc.d/rc.halt
new file mode 100644 (file)
index 0000000..6269ece
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# $Id: rc.halt,v 1.4.2.2 2005/07/07 20:11:58 franck78 Exp $
+#
+echo "Stopping the RED interface..."
+/etc/rc.d/rc.red stop 2>/dev/null
+/etc/rc.d/rc.red clear 2>/dev/null
+echo "Shutting down..."
+sleep 3
+echo "Saving the clock"
+/sbin/hwclock --systohc
+echo "Sending all processes the TERM signal..." 
+/sbin/killall5 -15
+sleep 3
+echo "Sending all processes the KILL signal..."
+/sbin/killall5 -9
+sleep 3
+
+if [ -e /etc/FLASH ]; then
+       if [ -e /etc/rc.d/rc.flash.down ]; then
+               echo "Compressing logs"
+               . /etc/rc.d/rc.flash.down
+       fi
+fi
+
+echo "Turning off swap"
+swapoff -a
+echo "Unmounting others"
+umount -n -a
+echo "Unmounting root"
+mount -n -o remount,ro /
+
+# Send nice shutdown beep now
+/usr/bin/beep -l 75 -f 3000
+/usr/bin/beep -l 75 -f 2000
+/usr/bin/beep -l 75 -f 1000
+/usr/bin/beep -l 75 -f 500
+
+if [ "$1" = "halt" ]; then
+       halt -i -d -p
+else
+       reboot -i -d
+fi
diff --git a/src/rc.d/rc.isdn b/src/rc.d/rc.isdn
new file mode 100644 (file)
index 0000000..5f7fc9d
--- /dev/null
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# $Id: rc.isdn,v 1.7.2.3 2005/07/07 20:11:58 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/isdn/settings)
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+        if [ "z$DEBUG" != "z" ] ; then
+                /usr/bin/logger -t red "ISDN: $*"
+        fi
+        echo "$*"
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ "$ENABLED" = "on" ]; then
+               /sbin/rmmod hisax_st5481           2>/dev/null
+                /sbin/rmmod hisax_fcpcipnp         2>/dev/null
+                /sbin/rmmod hisax_isac             2>/dev/null
+               /sbin/rmmod hisax                  2>/dev/null
+               if [ "$TYPE" = "998" ]; then
+                       /sbin/modprobe hisax_st5481 protocol=$PROTOCOL $MODULE_PARAMS
+                       exit $?
+               elif [ "$TYPE" = "999" ]; then
+                       /sbin/modprobe hisax_fcpcipnp protocol=$PROTOCOL $MODULE_PARAMS
+                       exit $?
+               else
+                       /sbin/modprobe hisax protocol=$PROTOCOL type=$TYPE $MODULE_PARAMS
+                       exit $?
+               fi
+       else
+               msg "No ISDN enabled"
+               exit 1
+       fi
+        ;;
+  stop)
+       /sbin/ifconfig ippp1 down       2>/dev/null
+       /sbin/ifconfig ippp0 down       2>/dev/null
+       /usr/sbin/isdnctrl delif ippp1  2>/dev/null
+       /usr/sbin/isdnctrl delif ippp0  2>/dev/null
+       /bin/killall ipppd              2>/dev/null
+       /bin/killall ibod               2>/dev/null
+       /sbin/rmmod hisax_st5481        2>/dev/null
+        /sbin/rmmod hisax_fcpcipnp     2>/dev/null
+        /sbin/rmmod hisax_isac         2>/dev/null
+       /sbin/rmmod hisax               2>/dev/null
+        ;;
+  *)
+        echo "Usage: $0 {start|stop}"
+        exit 1
+        ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.local b/src/rc.d/rc.local
new file mode 100644 (file)
index 0000000..13f4793
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+
diff --git a/src/rc.d/rc.netaddress.down b/src/rc.d/rc.netaddress.down
new file mode 100644 (file)
index 0000000..515d332
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# $Id: rc.netaddress.down,v 1.3.2.1 2005/07/07 20:11:58 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ethernet/settings)
+eval $(/usr/local/bin/readhash CONFIG_ROOT/dhcp/settings)
+
+# GREEN
+if [ "$1" != "NOTGREEN" ]; then
+       ifconfig $GREEN_DEV down 2> /dev/null
+fi
+
+# ORANGE
+if [ "$ORANGE_DEV" != "" ]; then
+       ifconfig $ORANGE_DEV down 2> /dev/null
+fi
+
+# BLUE
+if [ "$BLUE_DEV" != "" ]; then
+       ifconfig $BLUE_DEV down 2> /dev/null
+fi
+
+# RED
+/etc/rc.d/rc.red stop
+sleep 3
+/etc/rc.d/rc.red clear
diff --git a/src/rc.d/rc.netaddress.up b/src/rc.d/rc.netaddress.up
new file mode 100644 (file)
index 0000000..d656827
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/sh
+#
+# $Id: rc.netaddress.up,v 1.7.2.14 2005/07/07 20:11:58 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ethernet/settings)
+
+if [ "$1" != "NOTGREEN" ]; then
+       if [ "$GREEN_DEV" != "" ]; then
+               ifconfig $GREEN_DEV $GREEN_ADDRESS netmask $GREEN_NETMASK broadcast $GREEN_BROADCAST up
+       else
+               echo "WARNING: No driver set for GREEN"
+       fi
+fi
+
+if [ "$CONFIG_TYPE" = "1" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "7" ]; then
+       if [ "$ORANGE_DEV" != "" ]; then
+               ifconfig $ORANGE_DEV $ORANGE_ADDRESS netmask $ORANGE_NETMASK broadcast $ORANGE_BROADCAST up
+       fi
+fi
+
+if [ "$CONFIG_TYPE" = "4" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then
+       if [ "$BLUE_DEV" != "" ]; then
+               ifconfig $BLUE_DEV $BLUE_ADDRESS netmask $BLUE_NETMASK broadcast $BLUE_BROADCAST up
+       fi
+fi
+
+
+# If RED is ethernet then check furthur...
+if [ "$CONFIG_TYPE" == "2" -o "$CONFIG_TYPE" == "3" -o "$CONFIG_TYPE" == "6" -o "$CONFIG_TYPE" == "7" ]; then
+       # If we are DHCP or STATIC we have to start automatically
+       if [ "$RED_TYPE" == "DHCP" -o "$RED_TYPE" == "STATIC" ]; then
+               AUTOCONNECT="on"
+       fi
+fi
+
+
+# Start DNSMASQ with defaults
+if [ "$DOMAIN_NAME_GREEN" == "" ]; then
+       /usr/sbin/dnsmasq -l /var/state/dhcp/dhcpd.leases
+else 
+       /usr/sbin/dnsmasq -l /var/state/dhcp/dhcpd.leases -s "$DOMAIN_NAME_GREEN"
+fi
+
+# Only when AUTOCONNECT is off, do we not bother dialing but start local dns server
+if [ "$AUTOCONNECT" == "off" ]; then
+       # Start VPN Connections         # bug 1177572 might be corrected because this
+       # /usr/local/bin/ipsecctrl S    # call was done to much earlier (before RED start)
+                                       # Presently commented because I'm not sure VPN is usefull without RED
+       echo -n                         # bash do not like empty then ... else
+
+else
+       /etc/rc.d/rc.red start
+fi
diff --git a/src/rc.d/rc.network b/src/rc.d/rc.network
new file mode 100644 (file)
index 0000000..6cede16
--- /dev/null
@@ -0,0 +1,82 @@
+#!/bin/sh
+#
+# $Id: rc.network,v 1.10.2.6 2005/07/11 18:38:02 franck78 Exp $
+#
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ethernet/settings)
+
+echo "Setting up loopback"
+ifconfig lo localhost up
+
+echo "Loading MASQ helper modules"
+modprobe iptable_nat
+modprobe ip_conntrack
+modprobe ip_conntrack_ftp
+modprobe ip_nat_ftp
+modprobe ip_conntrack_h323
+modprobe ip_nat_h323
+modprobe ip_conntrack_irc
+modprobe ip_nat_irc
+modprobe ip_conntrack_mms
+modprobe ip_nat_mms
+modprobe ip_conntrack_pptp
+modprobe ip_nat_pptp
+modprobe ip_conntrack_proto_gre
+modprobe ip_nat_proto_gre
+modprobe ip_conntrack_quake3
+modprobe ip_nat_quake3
+
+# Remove possible leftover files
+rm -f CONFIG_ROOT/red/{active,device,dial-on-demand,dns1,dns2,local-ipaddress,remote-ipaddress,resolv.conf}
+
+# This won't actually do anything unless a PCMCIA controller was
+# detected at install time, because /etc/pcmcia.conf won't exist.
+/etc/rc.d/rc.pcmcia start
+# Now, just in case we found a PCMCIA USB controller, we'll need to reload
+# the USB here.
+/usr/local/bin/resetusb
+
+# The 'for' loop force driver loading order
+for NIC in 0 1 2 3; do
+    ETHX="eth${NIC}"
+    if [ "$GREEN_DEV" == "$ETHX" ]; then
+       if [ "$GREEN_DRIVER" != "" ]; then
+           modprobe $GREEN_DRIVER $GREEN_DRIVER_OPTIONS
+        fi
+    fi
+    if [ "$ORANGE_DEV" == "$ETHX" ]; then
+        if [ "$ORANGE_DRIVER" != "" ]; then
+           modprobe $ORANGE_DRIVER $ORANGE_DRIVER_OPTIONS
+       fi
+    fi
+    if [ "$BLUE_DEV" == "$ETHX" ]; then
+       if [ "$BLUE_DRIVER" != "" ]; then
+           modprobe $BLUE_DRIVER $BLUE_DRIVER_OPTIONS
+       fi
+    fi
+    if [ "$RED_DEV" == "$ETHX" ]; then
+       if [ "$RED_DRIVER" != "" ]; then
+           modprobe $RED_DRIVER $RED_DRIVER_OPTIONS
+       fi
+    fi
+done
+
+if [ -d /proc/bus/pccard ]; then
+       echo "Initializing PCMCIA cardbus modems"
+       modprobe serial_cb
+fi
+
+echo "Setting up IPCOP firewall rules"
+/etc/rc.d/rc.firewall start
+echo "Setting up IP Accounting"
+/etc/rc.d/helper/writeipac.pl
+/usr/sbin/fetchipac -S
+echo "Setting IPCOP DMZ pinholes"
+/usr/local/bin/setdmzholes
+
+if [ "$BLUE_DEV" != "" ]; then
+       echo "Setting up wireless firewall rules"
+       /usr/local/bin/restartwireless
+fi
+
+echo "Bringing network up"
+. /etc/rc.d/rc.netaddress.up
diff --git a/src/rc.d/rc.pulsardsl b/src/rc.d/rc.pulsardsl
new file mode 100644 (file)
index 0000000..cf3b114
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/bash
+#
+# $Id: rc.pulsardsl,v 1.3.2.8 2005/07/07 20:11:58 franck78 Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+
+# Debugging. Comment it out to stop logging
+DEBUG="yes"
+msg() {
+       if [ "z$DEBUG" != "z" ] ; then
+               /usr/bin/logger -t red "Pulsar DSL: $*"
+       fi
+       echo "$*"
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       if ( ! /sbin/lsmod | /bin/grep -q pulsar ); then
+               /sbin/modprobe pulsar
+               if [ $? -ne 0 ]; then
+                       msg "Pulsar loading failed"
+                       exit 2
+               else
+                       # arbitrary fixed time until the driver support a way to know that the modem is synchronised
+                       /bin/sleep 60
+               fi
+       fi
+       exit 0
+       ;;
+stop)
+       msg "stop"
+       ;;
+cleanup)
+       msg "driver cleanup"
+       /sbin/modprobe -r pulsar
+       ;;
+  *)
+       echo "Usage: $0 {start|stop|cleanup}"
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/src/rc.d/rc.red b/src/rc.d/rc.red
new file mode 100644 (file)
index 0000000..6c3765a
--- /dev/null
@@ -0,0 +1,1169 @@
+#!/usr/bin/perl
+#
+# This file is part of the IPCop Firewall.
+#
+# IPCop 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.
+#
+# IPCop 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 IPCop; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# (c) The SmoothWall Team
+#
+# $Id: rc.red,v 1.29.2.56 2005/12/17 08:49:01 gespinasse Exp $
+
+
+# Clean up our environment (we're running SUID!)
+delete @ENV{qw(IFS CDPATH ENV BASH_ENV PATH)};
+$< = $>;
+
+use strict;
+require 'CONFIG_ROOT/general-functions.pl';
+
+my %pppsettings;
+my %isdnsettings;
+my %netsettings;
+my %dhcpsettings;
+my $iface;
+
+# read vars back from file.
+&General::readhash("${General::swroot}/ppp/settings", \%pppsettings);
+&General::readhash("${General::swroot}/isdn/settings", \%isdnsettings);
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
+&General::readhash("${General::swroot}/dhcp/settings", \%dhcpsettings);
+
+sub dodhcpdial($;$) {
+       my ($iface,$dhcp_name)=@_;
+
+       system ('/sbin/iptables', '-A', 'REDINPUT', '-p', 'tcp', '--source-port', '67', 
+               '--destination-port', '68', '-i', $iface, '-j', 'ACCEPT');
+       system ('/sbin/iptables', '-A', 'REDINPUT', '-p', 'udp', '--source-port', '67', 
+               '--destination-port', '68', '-i', $iface, '-j', 'ACCEPT');
+
+       foreach ("<${General::swroot}/dhcpc/*.info>") { unlink $1 if ( $_ =~ /^([\/\w.-]+)$/ ); }
+       my @dhcpcommand = ('/usr/sbin/dhcpcd');
+       push(@dhcpcommand, ('-N', '-R', "$iface",'-L', "${General::swroot}/dhcpc"));
+
+       #FIXME the only way actually to set debug use is in pppsetup.cgi and 'RED is modem/isdn' interface
+       if ($pppsettings{'DEBUG'} eq 'on') {
+               push(@dhcpcommand, ('-d'));
+       }
+
+       if ($dhcp_name ne '') { push(@dhcpcommand, ('-h', "$dhcp_name")); }
+       if ($netsettings{'RED_TYPE'} eq 'PPTP') { push(@dhcpcommand, '-G'); }
+
+       if (system (@dhcpcommand)) {
+               &General::log('dhcpcd fail');
+               exit 1;
+       } else {
+               &General::log('dhcpcd success');
+       }
+}
+
+sub doupdatesettings {
+       # complete cleanup only if settings were changed or clear is ordered
+       system('/sbin/modprobe', '-r', 'pppoatm');
+       system('/sbin/modprobe', '-r', 'pppoe');
+       system('/bin/killall /usr/bin/br2684ctl 2>/dev/null');
+       system('/sbin/modprobe', '-r', 'br2684');
+       system('/sbin/modprobe', '-r', 'clip');
+
+       if ($pppsettings{'TYPE'} ne '3cp4218usbadsl')   { system('/sbin/modprobe', '-r', '3cp4218');}
+       if ($pppsettings{'TYPE'} ne 'alcatelusbk')      { system('/sbin/modprobe', '-r', 'speedtch');}
+       if ($pppsettings{'TYPE'} ne 'amedynusbadsl')    { system('/sbin/modprobe', '-r', 'amedyn');}
+       if ($pppsettings{'TYPE'} ne 'bewanadsl') {
+               system('/sbin/modprobe', '-r', 'unicorn_pci_atm', 'unicorn_usb_atm');}
+       if ($pppsettings{'TYPE'} ne 'conexantpciadsl')  { system('/sbin/modprobe', '-r', 'CnxADSL');}
+       if ($pppsettings{'TYPE'} ne 'conexantusbadsl')  { system('/sbin/modprobe', '-r', 'cxacru');}
+       if ($pppsettings{'TYPE'} ne 'eagleusbadsl')     { system('/sbin/modprobe', '-r', 'eagle-usb');}
+       if ($pppsettings{'TYPE'} ne 'fritzdsl')         { 
+               system('/sbin/modprobe', '-r', 'fcdsl', 'fcdsl2', 'fcdslsl', 'fcdslusb', 'fcdslslusb');}
+       if ($pppsettings{'TYPE'} ne 'pulsardsl')        { system('/sbin/modprobe', '-r', 'pulsar');}
+       sleep 1;
+       if ($pppsettings{'TYPE'} !=~ /^(3cp4218usbadsl|alcatelusbk|amedynusbadsl|bewanadsl|conexantpciadsl|pulsardsl)$/) {
+               system('/sbin/modprobe', '-r', 'atm');
+
+       # remove existing default route (for static address) if it was been changed from setup or web interface SF1175052
+       system ('/sbin/route del default 2>/dev/null');
+
+       # erase in case it was created once with 'persistent' selected but rc.red stop never used : SF1171610
+       unlink ("${General::swroot}/red/iface");
+       }
+}
+
+# No output should be sent to the webclient
+open STDIN, '</dev/zero' or die "Can't read from /dev/zero";
+open STDOUT, '>/dev/null' or die "Can't write to /dev/null";
+
+if ($ARGV[0] eq 'start') {
+       if (-e "${General::swroot}/red/active" ||
+           -e '/var/run/ppp-ipcop.pid')
+       {
+               &General::log ("ERROR: Can't start RED when it's still active");
+               exit 1;
+       }
+
+       if ( ( ( ($netsettings{'RED_TYPE'} =~ /^(PPPOE|PPTP)$/) && ($netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/) ) ||
+                 ( ( ($pppsettings{'METHOD'} =~ /^(PPPOE|PPPOE_PLUGIN)$/) || ($pppsettings{'PROTOCOL'} eq 'RFC2364') ) &&
+                 ($netsettings{'CONFIG_TYPE'} =~ /^(0|1|4|5)$/) ) ) && ($pppsettings{'RECONNECTION'} ne 'manual') ) {
+               system ('/etc/rc.d/rc.connectioncheck start &');
+       }
+
+       ###
+       ### Red device is ethernet
+       ###
+       if ($netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/)
+       {
+               if ($netsettings{'RED_DEV'} ne '')
+               {
+                       &General::log("Starting RED device $netsettings{'RED_DEV'}."); 
+
+                       if ( $netsettings{'RED_TYPE'} eq 'DHCP')
+                       {
+                               if (open(FILE, ">${General::swroot}/red/iface")) { print FILE $netsettings{'RED_DEV'}; close FILE; }
+                               dodhcpdial($netsettings{'RED_DEV'},$netsettings{'RED_DHCP_HOSTNAME'});
+                               exit 0;
+                       }
+                       elsif   ( ( $netsettings{'RED_TYPE'} eq 'PPTP') && ( $pppsettings{'METHOD'} eq 'DHCP') )
+                       {
+                               if (open(FILE, ">${General::swroot}/red/device")) { print FILE $netsettings{'RED_DEV'}; close FILE; }
+                               unlink ("${General::swroot}/red/iface");
+                               dodhcpdial($netsettings{'RED_DEV'},$netsettings{'RED_DHCP_HOSTNAME'});
+                       }
+                       elsif ( ( $netsettings{'RED_TYPE'} eq 'STATIC') ||
+                               ( $netsettings{'RED_TYPE'} eq 'PPTP') && ( $pppsettings{'METHOD'} ne 'DHCP') )
+                       {
+                               system ("/sbin/ifconfig",
+                                       $netsettings{'RED_DEV'}, $netsettings{'RED_ADDRESS'},
+                                       "netmask", $netsettings{'RED_NETMASK'},
+                                       "broadcast", $netsettings{'RED_BROADCAST'},"up");
+                               if ( $netsettings{'RED_TYPE'} eq 'STATIC')
+                               {
+                                       system("/usr/local/bin/setaliases");
+                                       system("echo $netsettings{'DNS1'}    > ${General::swroot}/red/dns1");
+                                       system("echo $netsettings{'DNS2'}    > ${General::swroot}/red/dns2");
+                                       system("echo $netsettings{'RED_ADDRESS'} > ${General::swroot}/red/local-ipaddress");
+                                       system("echo $netsettings{'DEFAULT_GATEWAY'} > ${General::swroot}/red/remote-ipaddress");
+                               } elsif ( $netsettings{'RED_TYPE'} eq 'PPTP' ) {
+                                       if (open(FILE, ">${General::swroot}/red/device")) { print FILE $netsettings{'RED_DEV'}; close FILE; }
+                                       unlink ("${General::swroot}/red/iface");
+                               }
+                               if ( $netsettings{'DEFAULT_GATEWAY'} ne '' )
+                               {
+                                       system ("/sbin/route","add","default","gw",
+                                               $netsettings{'DEFAULT_GATEWAY'});
+                               }
+                       }
+                       else
+                       {
+                               # PPPoE
+                               system ("/sbin/ifconfig", $netsettings{'RED_DEV'}, "1.1.1.1",
+                                       "netmask", "255.255.255.0", "broadcast", "1.1.1.255", "up");
+                       }
+
+                       if ( $netsettings{'RED_TYPE'} eq 'STATIC')
+                       {
+                               if (open(FILE, ">${General::swroot}/red/iface")) { print FILE $netsettings{'RED_DEV'}; close FILE; }
+                               system ("/bin/touch", "${General::swroot}/red/active");
+                               system ("/etc/rc.d/rc.updatered");
+                               exit 0;
+                       }
+               }
+               else
+               {
+                       &General::log ("ERROR: Can't start RED when RED device not set!");
+                       exit 1;
+               }
+       }
+
+       
+       if ($pppsettings{'RECONNECTION'} eq 'dialondemand')
+       {
+               system ('/bin/touch', "${General::swroot}/red/dial-on-demand");
+       }
+
+       if ($pppsettings{'VALID'} ne 'yes') {
+               &General::log("Profile has errors.");
+               exit 1;
+       }
+
+       if (-e "${General::swroot}/ppp/updatesettings") {
+               &doupdatesettings;
+       }
+
+       if (( $pppsettings{'METHOD'} eq 'STATIC') && ( $pppsettings{'DNS'} eq 'Manual')) {
+               system("/usr/local/bin/setaliases");
+               if (open(FILE, ">${General::swroot}/red/dns1")) { print FILE $pppsettings{'DNS1'}; close FILE; }
+               if (open(FILE, ">${General::swroot}/red/dns2")) { print FILE $pppsettings{'DNS2'}; close FILE; }
+               if (open(FILE, ">${General::swroot}/red/local-ipaddress")) { print FILE $pppsettings{'IP'}; close FILE; }
+               if (open(FILE, ">${General::swroot}/red/remote-ipaddress")) { print FILE $pppsettings{'GATEWAY'}; close FILE; }
+       }
+       if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+               &General::log("Dial-on-Demand waiting to dial $pppsettings{'PROFILENAME'}.");
+       } else {
+               &General::log("Dialling $pppsettings{'PROFILENAME'}.");
+       }
+
+       if ($pppsettings{'TYPE'} eq 'modem')                    { &domodemdial(); }
+       elsif ($pppsettings{'TYPE'} eq 'serial')                { &doserialdial(); }
+       elsif ($pppsettings{'TYPE'} eq 'isdn')                  { &doisdndial(); }
+       elsif ($pppsettings{'TYPE'} eq 'pppoe')                 { &dopppoedial(); }
+       elsif ($pppsettings{'TYPE'} eq 'pptp')                  { &dopptpdial(); }
+       elsif ($pppsettings{'TYPE'} eq 'alcatelusbk')           { &doalcatelusbkdial(); }
+       elsif ($pppsettings{'TYPE'} eq 'alcatelusb')            { &doalcatelusbdial(); }
+       elsif ($pppsettings{'TYPE'} eq 'pulsardsl')             { &dopulsardsldial(); }
+       elsif ($pppsettings{'TYPE'} eq 'eciadsl')               { &doeciadsldial(); }
+       elsif ($pppsettings{'TYPE'} eq 'fritzdsl')              { &dofritzdsldial(); }
+       elsif ($pppsettings{'TYPE'} eq 'bewanadsl')             { &dobewanadsldial(); }
+       elsif ($pppsettings{'TYPE'} eq 'eagleusbadsl')          { &doeagleusbadsldial(); }
+       elsif ($pppsettings{'TYPE'} eq 'conexantusbadsl')       { &doconexantusbadsldial(); }
+       elsif ($pppsettings{'TYPE'} eq 'conexantpciadsl')       { &doconexantpciadsldial(); }
+       elsif ($pppsettings{'TYPE'} eq 'amedynusbadsl')         { &doamedynusbadsldial(); }
+       elsif ($pppsettings{'TYPE'} eq '3cp4218usbadsl')        { &do3cp4218usbadsldial(); }
+
+       if (-e "${General::swroot}/ppp/updatesettings") {
+               # erase update mark only after specific script had run, allowing specific script to treat the update
+               unlink ("${General::swroot}/ppp/updatesettings");
+       }
+       if ( ($pppsettings{'RECONNECTION'} eq 'dialondemand') || ($pppsettings{'METHOD'} eq 'STATIC') ){
+               system ("/etc/rc.d/rc.updatered");
+       }
+}
+elsif ($ARGV[0] eq 'stop')
+{
+       if (open(IFACE, "${General::swroot}/red/iface")) {
+               $iface = <IFACE>;
+               close IFACE;
+               chomp ($iface);
+               $iface =~ /([a-zA-Z0-9]*)/; $iface = $1;
+       }
+
+       my $device;
+       if (open(FILE, "${General::swroot}/red/device")) {
+               $device = <FILE>;
+               close FILE;
+               chomp ($device);
+               $device =~ /([a-zA-Z0-9]*)/; $device = $1;
+       }
+
+       unlink "${General::swroot}/red/dial-on-demand";
+       unlink "${General::swroot}/red/active";
+       unlink "${General::swroot}/red/local-ipaddress";
+       unlink "${General::swroot}/red/remote-ipaddress";
+       unlink "${General::swroot}/red/dns1";
+       unlink "${General::swroot}/red/dns2";
+       unlink "${General::swroot}/red/resolv.conf";
+       unlink "${General::swroot}/red/device";
+
+       # stay with keepconnected during transitional rc.red stop ordered by rc.connectioncheck
+       if ( ! -e "${General::swroot}/red/redial") {
+               unlink "${General::swroot}/red/keepconnected";
+       }
+       unlink "${General::swroot}/red/redial";
+
+       # Kill PPPD
+       if (open(FILE, "/var/run/ppp-ipcop.pid")) {
+               my $pid = <FILE>;
+               close FILE;
+               chomp ($pid);
+               $pid =~ /(\d*)/; $pid = $1;
+               system ('/bin/kill', $pid);
+       }
+
+       # Bring down Ethernet interfaces & Kill DHCPC daemons
+       if (($netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/) && ( $netsettings{'RED_TYPE'} eq 'PPPOE') && $iface ) {
+               system ("/sbin/ifconfig", $iface, "down");
+       }
+       if ($device) {
+               system ("/sbin/ifconfig", $device, "down");
+       }
+
+       my $file;
+       while (($file = glob("${General::swroot}/dhcpc/dhcpcd-*.pid") )) {
+               if (open(FILE, $file)) {
+                       my $pid = <FILE>;
+                       close FILE;
+                       chomp ($pid);
+                       $pid =~ /(\d*)/; $pid = $1;
+                       system ('/bin/kill', $pid);
+               }
+       }
+
+       if (!system ('/bin/ps -ef | /bin/grep -q [a]tmarpd')) {
+               if ($pppsettings{'GATEWAY'} ne '') {
+                       system("/usr/sbin/atmarp -d $pppsettings{'GATEWAY'} 2>/dev/null"); }
+               system('/bin/killall /usr/sbin/atmarpd 2>/dev/null');
+               system ('/sbin/ifconfig', 'atm0', 'down');
+       }
+
+       if ($pppsettings{'TYPE'} eq 'isdn')             { system('/etc/rc.d/rc.isdn','stop'); }
+       if ($pppsettings{'TYPE'} eq 'eciadsl')          { system('/etc/rc.d/rc.eciadsl', 'stop'); }
+       if ($pppsettings{'TYPE'} eq 'alcatelusbk')      { system('/etc/rc.d/rc.alcatelusbk', 'stop'); }
+       if ($pppsettings{'TYPE'} eq 'alcatelusb')       { system('/etc/rc.d/rc.alcatelusb', 'stop'); }
+       if ($pppsettings{'TYPE'} eq 'amedynusbadsl')    { system('/etc/rc.d/rc.amedynusbadsl', 'stop'); }
+       if ($pppsettings{'TYPE'} eq 'bewanadsl')        { system('/etc/rc.d/rc.bewanadsl', 'stop'); }
+       if ($pppsettings{'TYPE'} eq 'conexantpciadsl')  { system('/etc/rc.d/rc.conexantpciadsl', 'stop'); }
+       if ($pppsettings{'TYPE'} eq 'conexantusbadsl')  { system('/etc/rc.d/rc.conexantusbadsl', 'stop'); }
+       if ($pppsettings{'TYPE'} eq 'eagleusbadsl')     { system('/etc/rc.d/rc.eagleusbadsl', 'stop'); }
+       if ($pppsettings{'TYPE'} eq 'fritzdsl')         { system ('/etc/rc.d/rc.fritzdsl','stop'); }
+       if ($pppsettings{'TYPE'} eq 'pulsardsl')        { system('/etc/rc.d/rc.pulsardsl', 'stop'); }
+       if ($pppsettings{'TYPE'} eq '3cp4218usbadsl')   { system('/etc/rc.d/rc.3cp4218usbadsl', 'stop'); }
+
+       if (    ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} eq 'STATIC') ||
+               ( $netsettings{'CONFIG_TYPE'} =~ /^(0|1|4|5)$/ && $pppsettings{'PROTOCOL'} eq 'RFC1483' &&
+                 $pppsettings{'METHOD'} eq 'STATIC' ) ) {
+           system ("/etc/rc.d/rc.updatered");
+       }
+}
+elsif ($ARGV[0] eq 'clear')
+{
+       &doupdatesettings();
+       &docleanup();
+}
+
+exit 0;
+
+sub docleanup
+{
+       if ($pppsettings{'TYPE'} eq 'alcatelusbk')      { system('/etc/rc.d/rc.alcatelusbk', 'cleanup'); }
+       if ($pppsettings{'TYPE'} eq 'alcatelusb')       { system('/etc/rc.d/rc.alcatelusb', 'cleanup'); }
+       if ($pppsettings{'TYPE'} eq 'eciadsl')          { system('/etc/rc.d/rc.eciadsl', 'cleanup'); }
+       if ($pppsettings{'TYPE'} eq 'pulsardsl')        { system('/etc/rc.d/rc.pulsardsl', 'cleanup'); }
+       if ($pppsettings{'TYPE'} eq 'fritzdsl')         { system ('/etc/rc.d/rc.fritzdsl','cleanup'); }
+       if ($pppsettings{'TYPE'} eq 'bewanadsl')        { system('/etc/rc.d/rc.bewanadsl', 'cleanup'); }
+       if ($pppsettings{'TYPE'} eq 'eagleusbadsl')     { system('/etc/rc.d/rc.eagleusbadsl', 'cleanup'); }
+       if ($pppsettings{'TYPE'} eq 'conexantusbadsl')  { system('/etc/rc.d/rc.conexantusbadsl', 'cleanup'); }
+       if ($pppsettings{'TYPE'} eq 'conexantpciadsl')  { system('/etc/rc.d/rc.conexantpciadsl', 'cleanup'); }
+       if ($pppsettings{'TYPE'} eq 'amedynusbadsl')    { system('/etc/rc.d/rc.amedynusbadsl', 'cleanup'); }
+       if ($pppsettings{'TYPE'} eq '3cp4218usbadsl')   { system('/etc/rc.d/rc.3cp4218usbadsl', 'cleanup'); }
+}
+
+sub domodemdial
+{
+       my @pppcommand = ('/usr/sbin/pppd');
+       my $loginscript = '';
+
+       if ($pppsettings{'COMPORT'} =~ /ttyACM/) {
+               system ('/sbin/rmmod acm');
+               sleep 1;
+               system ('/sbin/modprobe acm');
+       }
+
+       my $device = "/dev/${pppsettings{'COMPORT'}}";
+
+       if ($pppsettings{'DNS'} eq 'Automatic') {
+                push(@pppcommand, ('usepeerdns')); }
+
+       if ($pppsettings{'AUTH'} eq 'pap') {
+               push(@pppcommand, ('-chap'));
+       } elsif ($pppsettings{'AUTH'} eq 'chap') {
+               push(@pppcommand, ('-pap'));
+       } elsif ($pppsettings{'AUTH'} eq 'standard-login-script') {
+               $loginscript = 'standardloginscript';
+       } elsif ($pppsettings{'AUTH'} eq 'demon-login-script') {
+               $loginscript = 'demonloginscript';
+       } else {
+               $loginscript = $pppsettings{'LOGINSCRIPT'};
+       }
+
+       if ($pppsettings{'RECONNECTION'} ne 'persistent') {
+               if ($pppsettings{'TIMEOUT'} != 0)
+               {
+                       my $seconds = $pppsettings{'TIMEOUT'} * 60;
+                       push (@pppcommand, ('idle', $seconds));
+               }
+               if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+                       push (@pppcommand, ('demand', 'nopersist'));
+               }
+               push (@pppcommand, 
+                       ('active-filter',
+                        'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0 ' ));
+       }
+
+       push (@pppcommand, ('novj', 'novjccomp'));
+
+       push (@pppcommand, ('lock', 'modem', 'crtscts', $device,
+               $pppsettings{'DTERATE'}, 'noipdefault',
+               'defaultroute', 'user', $pppsettings{'USERNAME'},
+               'maxfail', $pppsettings{'MAXRETRIES'}, 'connect',
+               '/etc/ppp/dialer'));
+       if ($pppsettings{'DEBUG'} eq 'on') {
+               push(@pppcommand, ('debug'));
+       }
+
+       system @pppcommand;
+}
+
+sub doserialdial
+{
+       my @pppcommand = ('/usr/sbin/pppd');
+       my $loginscript = '';
+
+       if ($pppsettings{'COMPORT'} =~ /ttyACM/) {
+               system ('/sbin/rmmod acm');
+               sleep 1;
+               system ('/sbin/modprobe acm');
+       }
+
+       my $device = "/dev/${pppsettings{'COMPORT'}}";
+
+       if ($pppsettings{'DNS'} eq 'Automatic') {
+                push(@pppcommand, ('usepeerdns')); }
+
+       if ($pppsettings{'AUTH'} eq 'pap') {
+               push(@pppcommand, ('-chap'));
+       } elsif ($pppsettings{'AUTH'} eq 'chap') {
+               push(@pppcommand, ('-pap'));
+       }
+
+       if ($pppsettings{'RECONNECTION'} ne 'persistent') {
+               if ($pppsettings{'TIMEOUT'} != 0)
+               {
+                       my $seconds = $pppsettings{'TIMEOUT'} * 60;
+                       push (@pppcommand, ('idle', $seconds));
+               }
+               if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+                       push (@pppcommand, ('demand', 'nopersist'));
+               }
+               push (@pppcommand, 
+                       ('active-filter',
+                        'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0 ' ));
+       }
+
+       push (@pppcommand, ('novj', 'novjccomp'));
+
+       push (@pppcommand, ('lock', 'modem', 'crtscts', $device,
+               $pppsettings{'DTERATE'}, 'noipdefault',
+               'defaultroute', 'user', $pppsettings{'USERNAME'},
+               'maxfail', $pppsettings{'MAXRETRIES'}, 'connect',
+               '/bin/true'));
+       if ($pppsettings{'DEBUG'} eq 'on') {
+               push(@pppcommand, ('debug'));
+       }
+
+       system @pppcommand;
+}
+
+sub doisdndial
+{
+       my $pppoptions;
+       my $seconds;
+       my $phone;
+
+       if (system ('/etc/rc.d/rc.isdn', 'start')) {
+               &General::log ("ERROR: ISDN module failed to load");
+               exit 1;
+       }
+
+       $seconds = $pppsettings{'TIMEOUT'} * 60;
+       if ($pppsettings{'USEDOV'} eq 'on')
+       {
+               $phone = 'v' . $pppsettings{'TELEPHONE'};               
+       }
+       else
+       {
+               $phone = $pppsettings{'TELEPHONE'};             
+       };
+
+       if ($pppsettings{'COMPORT'} eq 'isdn2')
+       {
+               system('/usr/sbin/isdnctrl','addif','ippp0');
+               system('/usr/sbin/isdnctrl','addslave','ippp0','ippp1');
+               system('/usr/sbin/isdnctrl','l2_prot','ippp0','hdlc');
+               system('/usr/sbin/isdnctrl','l3_prot','ippp0','trans');
+               system('/usr/sbin/isdnctrl','encap','ippp0','syncppp');
+               system('/usr/sbin/isdnctrl','dialmax','ippp0',$pppsettings{'MAXRETRIES'});
+               system('/usr/sbin/isdnctrl','eaz','ippp0',$isdnsettings{'MSN'});
+               system('/usr/sbin/isdnctrl','addphone','ippp0','out',$phone);
+               system('/usr/sbin/isdnctrl','huptimeout','ippp0',$seconds);
+               system('/usr/sbin/isdnctrl','l2_prot','ippp1','hdlc');
+               system('/usr/sbin/isdnctrl','l3_prot','ippp1','trans');
+               system('/usr/sbin/isdnctrl','encap','ippp1','syncppp');
+               system('/usr/sbin/isdnctrl','dialmax','ippp1',$pppsettings{'MAXRETRIES'});
+               system('/usr/sbin/isdnctrl','eaz','ippp0',$isdnsettings{'MSN'});
+               system('/usr/sbin/isdnctrl','addphone','ippp1','out',$phone);
+               system('/usr/sbin/isdnctrl','huptimeout','ippp1',$seconds);
+               system('/usr/sbin/isdnctrl','dialmode','ippp1','auto');
+
+               my @pppcommand = ('/usr/sbin/ipppd','ms-get-dns','noipdefault','+mp',
+                       'defaultroute','user',$pppsettings{'USERNAME'},
+                       'name',$pppsettings{'USERNAME'},
+                       'active-filter','outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0',
+                       'pidfile','/var/run/ppp-ipcop.pid','/dev/ippp0','/dev/ippp1');
+               if ($pppsettings{'DEBUG'} eq 'on') {
+                       push(@pppcommand, ('debug'));
+               }
+               if ($pppsettings{'AUTH'} eq 'pap') {
+                       push(@pppcommand, ('-chap'));
+               } elsif ($pppsettings{'AUTH'} eq 'chap') {
+                       push(@pppcommand, ('-pap'));
+               }
+               system (@pppcommand);
+       }
+       else
+       {
+               system('/usr/sbin/isdnctrl','addif','ippp0');
+               system('/usr/sbin/isdnctrl','l2_prot','ippp0','hdlc');
+               system('/usr/sbin/isdnctrl','l3_prot','ippp0','trans');
+               system('/usr/sbin/isdnctrl','encap','ippp0','syncppp');
+               system('/usr/sbin/isdnctrl','dialmax','ippp0',$pppsettings{'MAXRETRIES'});
+               system('/usr/sbin/isdnctrl','eaz','ippp0',$isdnsettings{'MSN'});
+               system('/usr/sbin/isdnctrl','addphone','ippp0','out',$phone);
+               system('/usr/sbin/isdnctrl','huptimeout','ippp0',$seconds);
+
+               my @pppcommand = ('/usr/sbin/ipppd','ms-get-dns','noipdefault',
+                               'defaultroute','user',$pppsettings{'USERNAME'},
+                               'name',$pppsettings{'USERNAME'},
+                               'active-filter','outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0',
+                               'pidfile','/var/run/ppp-ipcop.pid','/dev/ippp0');
+               if ($pppsettings{'DEBUG'} eq 'on') {
+                       push(@pppcommand, ('debug'));
+               }
+               if ($pppsettings{'AUTH'} eq 'pap') {
+                       push(@pppcommand, ('-chap'));
+               } elsif ($pppsettings{'AUTH'} eq 'chap') {
+                       push(@pppcommand, ('-pap'));
+               }
+               system (@pppcommand);
+       }
+
+       sleep 1;
+
+       if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+               system('/usr/sbin/isdnctrl','dialmode','ippp0','auto');
+               system('/sbin/ifconfig','ippp0','10.112.112.112','pointopoint','10.112.112.113');
+               system('/sbin/ifconfig','ippp0','-arp','-broadcast');
+               system('/sbin/route','add','default','dev','ippp0');
+       } else {
+               system('/usr/sbin/isdnctrl', 'dial', 'ippp0');
+
+       }
+
+       system('/bin/killall', 'ibod');
+       if ($pppsettings{'COMPORT'} eq 'isdn2') {
+               if ($pppsettings{'USEIBOD'} eq 'on') {
+                       system("/usr/sbin/ibod &");
+               } else {
+                       system('/usr/sbin/isdnctrl', 'addlink', 'ippp0');
+               }
+       }
+}
+
+sub dopppoedial
+{
+       if ($pppsettings{'METHOD'} ne 'PPPOE_PLUGIN') {
+               my @pppcommand = ('/usr/sbin/pppd', 'pty');
+               my @pppoecommand = ('/usr/sbin/pppoe', '-p','/var/run/pppoe.pid','-I',
+                       $netsettings{'RED_DEV'}, '-T', '80', '-U', '-m', '1412');
+       
+               if ($pppsettings{'SERVICENAME'}) {
+                       push(@pppoecommand, ('-S', $pppsettings{'SERVICENAME'})); }
+               if ($pppsettings{'CONCENTRATORNAME'}) {
+                       push(@pppoecommand, ('-C', $pppsettings{'CONCENTRATORNAME'})); }
+       
+               push(@pppcommand, "@pppoecommand");
+       
+               if ($pppsettings{'DNS'} eq 'Automatic') {
+                       push(@pppcommand, ('usepeerdns'));
+               }
+
+               if ($pppsettings{'AUTH'} eq 'pap') {
+                       push(@pppcommand, ('-chap'));
+               } elsif ($pppsettings{'AUTH'} eq 'chap') {
+                       push(@pppcommand, ('-pap'));
+               }
+
+               if ($pppsettings{'RECONNECTION'} ne 'persistent') {
+                       if ($pppsettings{'TIMEOUT'} != 0) {
+                               my $seconds = $pppsettings{'TIMEOUT'} * 60;  
+                               push(@pppcommand, ('idle', "$seconds"));
+                       }
+                       if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+                               push (@pppcommand, ('demand','nopersist','connect','/bin/true'));
+                       }
+                       push (@pppcommand, 
+                               ('active-filter',
+                                'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0 ' ));
+               }
+       
+               push(@pppcommand, ('noipdefault', 'default-asyncmap',  
+                       'defaultroute', 'hide-password', 'local',
+                       'mtu', '1492', 'mru', '1492', 'noaccomp', 'noccp',
+                       'nobsdcomp', 'nodeflate', 'nopcomp', 'novj', 'novjccomp',
+                       'user', $pppsettings{'USERNAME'}, 'lcp-echo-interval', '20',
+                       'lcp-echo-failure', '3', 'lcp-max-configure', '50',
+                       'maxfail',$pppsettings{'MAXRETRIES'}));
+               if ($pppsettings{'DEBUG'} eq 'on') {
+                       push(@pppcommand, ('debug'));
+               }
+
+               system (@pppcommand);
+       } else {
+               # PPPoE plugin
+               system ('/sbin/modprobe pppoe');
+               my @pppcommand = ('/usr/sbin/pppd');
+               push(@pppcommand,'plugin','rp-pppoe.so',"$netsettings{'RED_DEV'}");
+               if ($pppsettings{'DNS'} eq 'Automatic') {
+                       push(@pppcommand, ('usepeerdns'));
+               }
+               if ($pppsettings{'AUTH'} eq 'pap') {
+                       push(@pppcommand, ('-chap'));
+               } elsif ($pppsettings{'AUTH'} eq 'chap') {
+                       push(@pppcommand, ('-pap'));
+               }
+               if ($pppsettings{'RECONNECTION'} ne 'persistent') {
+                       if ($pppsettings{'TIMEOUT'} != 0) {
+                               my $seconds = $pppsettings{'TIMEOUT'} * 60;  
+                               push(@pppcommand, ('idle', "$seconds"));
+                       }
+                       if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+                               push (@pppcommand, ('demand','nopersist'));
+                       }
+                       push (@pppcommand, 
+                               ('active-filter',
+                               'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0 ' ));
+               }
+               push(@pppcommand, ('noipdefault', 'defaultroute', 'hide-password', 'ipcp-accept-local',
+                       'ipcp-accept-remote', 'passive', 'noccp','nopcomp', 'novjccomp',
+                       'user', $pppsettings{'USERNAME'}, 'lcp-echo-interval', '20',
+                       'lcp-echo-failure', '3', 'lcp-max-configure', '50', 
+                       'maxfail',$pppsettings{'MAXRETRIES'}));
+               if ($pppsettings{'DEBUG'} eq 'on') {
+                       push(@pppcommand, ('debug'));
+               }
+
+               system (@pppcommand);
+       }
+}
+
+sub dopptpdial
+{
+       my %pptpdhcpc;
+       my $routerip = $pppsettings{'ROUTERIP'} ? $pppsettings{'ROUTERIP'} : "10.0.0.138";
+       if ( $pppsettings{'METHOD'} eq 'DHCP' && open(FILE, "${General::swroot}/red/device")) {
+               my $device = <FILE>;
+               close FILE;
+               chomp ($device);
+               $device =~ /([a-zA-Z0-9]*)/; $device = $1;
+               if (&General::readhash("${General::swroot}/dhcpc/dhcpcd-$device.info", \%pptpdhcpc)) {
+                       system("/sbin/route add -host $routerip gw $pptpdhcpc{'GATEWAY'}");
+               } else {
+                       system("/sbin/route add -host $routerip dev $device");
+               }
+       }
+
+       my @pppcommand = ('/usr/sbin/pppd', 'pty');
+       my @pptpcommand = ('/usr/sbin/pptp', $routerip, '--nobuffer', '--nolaunchpppd', '--sync');
+       if ($pppsettings{'PHONEBOOK'}) {
+               push (@pptpcommand, ('--phone ', $pppsettings{'PHONEBOOK'}));
+       }
+
+       push(@pppcommand, "@pptpcommand");
+
+       if ($pppsettings{'DNS'} eq 'Automatic') {
+               push(@pppcommand, ('usepeerdns'));
+       }
+       if ($pppsettings{'AUTH'} eq 'pap') {
+               push(@pppcommand, ('-chap'));
+       } elsif ($pppsettings{'AUTH'} eq 'chap') {
+               push(@pppcommand, ('-pap'));
+       }
+
+       if ($pppsettings{'RECONNECTION'} ne 'persistent') {
+               if ($pppsettings{'TIMEOUT'} != 0) {
+                       my $seconds = $pppsettings{'TIMEOUT'} * 60;
+                       push(@pppcommand, ('idle', "$seconds"));
+               }
+               if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+                       push (@pppcommand, ('demand','nopersist','connect','/bin/true'));
+               }
+               push (@pppcommand, 
+                       ('active-filter',
+                        'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0 ' ));
+       }
+
+       push(@pppcommand, ('noipdefault', 'default-asyncmap',
+               'defaultroute', 'hide-password', 'local','noaccomp', 'noccp',
+               'nobsdcomp', 'nodeflate', 'nopcomp', 'novj', 'novjccomp',
+               'user', $pppsettings{'USERNAME'}, 'lcp-echo-interval', '20',
+               'lcp-echo-failure', '3', 'lcp-max-configure', '50',
+               'maxfail',$pppsettings{'MAXRETRIES'},'sync'));
+       if ($pppsettings{'DEBUG'} eq 'on') {
+               push(@pppcommand, ('debug'));
+       }
+
+       system (@pppcommand);
+}
+
+sub doalcatelusbdial
+{
+       if (system ('/etc/rc.d/rc.alcatelusb','start')) {
+               &General::log( "ERROR: Failed to connect to Alcatel USB modem");
+               exit 1;
+       }
+
+       if ($pppsettings{'PROTOCOL'} eq 'RFC1483') { 
+               if (open(FILE, ">${General::swroot}/red/device")) { print FILE 'tap0'; close FILE; }
+                       $netsettings{'RED_DEV'} = 'tap0';
+                       &dopppoedial();
+       } else {
+               # PPPoA
+               my @pppcommand = ('/usr/sbin/pppd', 'pty');
+               my @pppoacommand = ('/usr/sbin/pppoa3','-c','-m','1','-vpi',$pppsettings{'VPI'},'-vci',$pppsettings{'VCI'});
+       
+               push(@pppcommand, "@pppoacommand");
+       
+               if ($pppsettings{'DNS'} eq 'Automatic') {
+                       push(@pppcommand, ('usepeerdns'));
+               }
+               if ($pppsettings{'AUTH'} eq 'pap') {
+                       push(@pppcommand, ('-chap'));
+               } elsif ($pppsettings{'AUTH'} eq 'chap') {
+                       push(@pppcommand, ('-pap'));
+               }
+       
+               if ($pppsettings{'RECONNECTION'} ne 'persistent') {
+                       if ($pppsettings{'TIMEOUT'} != 0) {
+                               my $seconds = $pppsettings{'TIMEOUT'} * 60;  
+                               push(@pppcommand, ('idle', "$seconds"));
+                       }
+                       if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+                               push (@pppcommand, ('demand','nopersist','connect','/bin/true'));
+                       }
+                       push (@pppcommand, 
+                               ('active-filter',
+                                'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0 ' ));
+               }
+       
+               push(@pppcommand, ('noipdefault', 'defaultroute', 'sync', 'user',
+                       $pppsettings{'USERNAME'}, 'ipcp-accept-local', 'ipcp-accept-remote', 'passive',
+                       'noaccomp', 'nopcomp', 'noccp', 'novj', 'nobsdcomp',
+                       'nodeflate', 'lcp-echo-interval', '20', 'lcp-echo-failure', '3', 
+                       'lcp-max-configure', '50', 'maxfail', $pppsettings{'MAXRETRIES'}));
+               if ($pppsettings{'DEBUG'} eq 'on') {
+                       push(@pppcommand, ('debug'));
+               }
+       
+               system (@pppcommand);
+       }
+}
+
+sub doeciadsldial
+{
+       if (system ('/etc/rc.d/rc.eciadsl','start')) {
+               &General::log ("ERROR: ECI ADSL failed to start");
+               exit 1;
+       }
+       if ($pppsettings {'PROTOCOL'} eq 'RFC1483') {
+               if ($pppsettings {'ENCAP'} =~ /^(0|1)$/) {
+                        $iface = "tap0";
+               } else {
+                        $iface = "tun0";
+               }
+
+               if (open(FILE, ">${General::swroot}/red/iface")) { print FILE $iface; close FILE; }
+
+               if ($pppsettings {'METHOD'} =~ /^(PPPOE|PPPOE_PLUGIN)$/) {
+                       if (open(FILE, ">${General::swroot}/red/device")) { print FILE $iface; close FILE; }
+                       $netsettings{'RED_DEV'} = $iface;
+                       &dopppoedial();
+               } elsif ($pppsettings{'METHOD'} eq 'STATIC') {
+                       my @staticcommand = ('/sbin/ifconfig');
+                       push(@staticcommand, ($iface, $pppsettings{'IP'},'netmask', $pppsettings{'NETMASK'}));
+                       if ($pppsettings{'BROADCAST'} ne '') {
+                               push(@staticcommand, ('broadcast', $pppsettings{'BROADCAST'}));
+                       }
+                       system (@staticcommand);
+                       system ("/sbin/route","add","default","gw",$pppsettings{'GATEWAY'});
+                       system ("/bin/touch", "${General::swroot}/red/active");
+                       if (open(FILE, ">${General::swroot}/red/iface")) { print FILE $iface; close FILE; }
+               } elsif ($pppsettings {'METHOD'} eq 'DHCP') {
+                       # FIXME dhcp does not support tun0 interface (routed IP)
+                       dodhcpdial($iface,$pppsettings{'DHCP_HOSTNAME'});
+               }
+       } else {
+               # PPPoA
+               my ($VID2, $PID2, $CHIP, $ALTP, $ECIMODE);
+               open (MODEMS, "/etc/eciadsl/modems.db") or die 'Unable to open modems database.';
+               while (my $line = <MODEMS>) {
+                       $line =~ s/\s*\t+\s*/|/g;
+                       $line =~ /^(.+)\|(.+)\|(.+)\|(.+)\|(.+)\|(.+)\|(.+)\|(.+)$/;
+                       if ( $1 eq $pppsettings{'MODEM'} ) {
+                               $VID2=$4 ; $PID2=$5; $CHIP=$6; $ALTP=$8;
+                       }
+               }
+               close (MODEMS);
+               if ( $VID2 eq '') {
+                       &General::log("$pppsettings{'MODEM'} not found in modems.db");
+                       exit 1;
+               }
+               if ( $CHIP eq '' ) {
+                       &General::log ("error in modems.db reading for $pppsettings{'MODEM'}");
+                       exit 1;
+               }
+               if ($pppsettings {'ENCAP'} eq '1') {
+                       $ECIMODE = "LLC_RFC2364";
+               } else {
+                       $ECIMODE = "VCM_RFC2364";
+               }
+       
+               my @pppcommand = ('/usr/sbin/pppd', 'pty');
+               my @pppoecicommand = ("/usr/sbin/eciadsl-pppoeci",'-alt', "$ALTP",'-vpi',$pppsettings{'VPI'},'-vci',$pppsettings{'VCI'},
+                                       '-vendor',"0x$VID2",'-product',"0x$PID2",'-mode',$ECIMODE);
+               push(@pppcommand, "@pppoecicommand");
+       
+               if ($pppsettings{'DNS'} eq 'Automatic') {
+                       push(@pppcommand, ('usepeerdns'));
+               }
+               if ($pppsettings{'AUTH'} eq 'pap') {
+                       push(@pppcommand, ('-chap'));
+               } elsif ($pppsettings{'AUTH'} eq 'chap') {
+                       push(@pppcommand, ('-pap'));
+               }
+       
+               if ($pppsettings{'RECONNECTION'} ne 'persistent') {
+                       if ($pppsettings{'TIMEOUT'} != 0) {
+                               my $seconds = $pppsettings{'TIMEOUT'} * 60;  
+                               push(@pppcommand, ('idle', "$seconds"));
+                       }
+                       if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+                               push (@pppcommand, ('demand','nopersist','connect','/bin/true'));
+                       }
+                       push (@pppcommand, 
+                               ('active-filter',
+                                'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0 ' ));
+               }
+       
+               push(@pppcommand, ('noipdefault', 'defaultroute', 'sync', 'user',
+                       $pppsettings{'USERNAME'}, 'ipcp-accept-local', 'ipcp-accept-remote', 'passive',
+                       'noaccomp', 'nopcomp', 'noccp', 'novj', 'nobsdcomp',
+                       'nodeflate', 'lcp-echo-interval', '20', 'lcp-echo-failure', '3', 
+                       'lcp-max-configure', '50', 'maxfail', $pppsettings{'MAXRETRIES'}));
+               if ($pppsettings{'DEBUG'} eq 'on') {
+                       push(@pppcommand, ('debug'));
+               }
+       
+               system (@pppcommand);
+       }
+}
+
+sub dofritzdsldial
+{
+       my $controller;
+
+       if (system ('/etc/rc.d/rc.fritzdsl','start')) {
+               &General::log ("ERROR: Fritz DSL module failed to load");
+               exit 1;
+       }
+
+       # controller number
+       if ($pppsettings{'TYPE'} eq 'fritzdsl') {
+               if ( ! system ('/bin/grep', '1244:2700', '/proc/pci')) {
+                       $controller=1; # fcdslsl
+               } elsif (! system('/bin/grep', '1244:2900', '/proc/pci')) {
+                       $controller=2; # fcdsl2
+               } elsif (! system('/bin/grep', '1131:5402', '/proc/pci')) {
+                       $controller=2; # fdsl
+               } elsif (! system('/bin/grep', 'Vendor=057c ProdID=2300', '/proc/bus/usb/devices')) {
+                       $controller=1; # fcdslusb
+               } elsif (! system('/bin/grep', 'Vendor=057c ProdID=3500', '/proc/bus/usb/devices')) {
+                       $controller=1; # fcdslslusb
+               }
+       }
+       my @pppcommand = ('/usr/sbin/pppd');
+       my @capiplugin;
+
+       if ($pppsettings{'DNS'} eq 'Automatic') {
+               push(@pppcommand, ('usepeerdns'));
+       }
+
+       if ($pppsettings{'RECONNECTION'} ne 'persistent') {
+               if ($pppsettings{'TIMEOUT'} != 0) {
+                       my $seconds = $pppsettings{'TIMEOUT'} * 60;  
+                       push(@pppcommand, ('idle', "$seconds"));
+               }
+               if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+                       push (@pppcommand, ('demand','nopersist','connect','/bin/true'));
+               }
+               push (@pppcommand, 
+                       ('active-filter',
+                        'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0 ' ));
+       }
+
+       push(@pppcommand, ('noipdefault', 'defaultroute', 'sync', 'user', 
+               $pppsettings{'USERNAME'}, 'ipcp-accept-local', 'ipcp-accept-remote', 'passive',
+               'noaccomp', 'nopcomp', 'noccp', 'novj', 'nobsdcomp',
+               'nodeflate', 'lcp-echo-interval', '20', 'lcp-echo-failure', '3', 
+               'lcp-max-configure', '50', 'maxfail', $pppsettings{'MAXRETRIES'}));
+
+       if ($pppsettings{'DEBUG'} eq 'on') {
+               push(@pppcommand, ('debug'));
+       }
+
+       if ($pppsettings {'PROTOCOL'} eq 'RFC1483') {
+               @capiplugin = ('plugin', 'capiplugin.so', 'protocol', 'adslpppoe',
+                       'controller', $controller, 'vpi', $pppsettings{'VPI'},'vci',$pppsettings{'VCI'});
+       } else {
+               if ($pppsettings {'ENCAP'} eq '1') {
+                       @capiplugin = ('plugin', 'capiplugin.so', 'protocol', 'adslpppoallc',
+                               'controller', $controller, 'vpi', $pppsettings{'VPI'},'vci',$pppsettings{'VCI'});
+               } else {
+                       @capiplugin = ('plugin', 'capiplugin.so', 'protocol', 'adslpppoa',
+                               'controller', $controller,'vpi', $pppsettings{'VPI'},'vci',$pppsettings{'VCI'});
+               }
+       }
+       push(@pppcommand, @capiplugin);
+       push(@pppcommand, '/dev/null');
+
+       system (@pppcommand);
+}
+
+sub doeagleusbadsldial
+{
+       if (system ('/etc/rc.d/rc.eagleusbadsl','start')) {
+               &General::log ("ERROR: EAGLE-USB ADSL MODEM failed to start");
+               exit 1;
+       }
+       $iface=`/usr/sbin/eaglectrl -i 2>/dev/null | /usr/bin/tr -d '\012'`;
+       $iface =~ /([a-zA-Z0-9]*)/; $iface = $1;
+
+       if ($pppsettings {'PROTOCOL'} eq 'RFC1483') {
+               if (open(FILE, ">${General::swroot}/red/iface")) { print FILE $iface; close FILE; }
+               if ($pppsettings {'METHOD'} =~ /^(PPPOE|PPPOE_PLUGIN)$/) {
+                       if (open(FILE, ">${General::swroot}/red/device")) { print FILE $iface; close FILE; }
+                       $netsettings{'RED_DEV'} = $iface;
+                       &dopppoedial();
+               } elsif ($pppsettings{'METHOD'} eq 'STATIC') {
+                       my @staticcommand = ('/sbin/ifconfig');
+                       push(@staticcommand, ($iface, $pppsettings{'IP'},'netmask', $pppsettings{'NETMASK'}));
+                       if ($pppsettings{'BROADCAST'} ne '') {
+                               push(@staticcommand, ('broadcast', $pppsettings{'BROADCAST'}));
+                       }
+                       system (@staticcommand);
+                       system ("/sbin/route","add","default","gw",$pppsettings{'GATEWAY'});
+                       system ("/bin/touch", "${General::swroot}/red/active");
+               } elsif ($pppsettings {'METHOD'} eq 'DHCP') {
+                       dodhcpdial($iface,$pppsettings{'DHCP_HOSTNAME'});
+               }
+       } else {
+               # PPPoA
+               if (open(FILE, ">${General::swroot}/red/device")) { print FILE $iface; close FILE; }
+               $netsettings{'RED_DEV'} = $iface;
+               my @pppcommand = ('/usr/sbin/pppd','pty');
+               push(@pppcommand,"/usr/sbin/pppoa -I $iface ");
+       
+               if ($pppsettings{'DNS'} eq 'Automatic') { push(@pppcommand, ('usepeerdns'));}
+       
+               if ($pppsettings{'AUTH'} eq 'pap') {
+                       push(@pppcommand, ('-chap'));
+               } elsif ($pppsettings{'AUTH'} eq 'chap') {
+                       push(@pppcommand, ('-pap'));
+               }
+       
+               if ($pppsettings{'RECONNECTION'} ne 'persistent') {
+                       if ($pppsettings{'TIMEOUT'} != 0) {
+                               my $seconds = $pppsettings{'TIMEOUT'} * 60;  
+                               push(@pppcommand, ('idle', "$seconds"));
+                       }
+                       if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+                               push (@pppcommand, ('demand','nopersist','connect','/bin/true'));
+                       }
+                       push (@pppcommand, 
+                               ('active-filter',
+                                'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0 ' ));
+               }
+               push(@pppcommand, ('noipdefault', 'defaultroute', 'user', 
+                       $pppsettings{'USERNAME'}, 'ipcp-accept-local', 'ipcp-accept-remote', 'passive',
+                       'noaccomp', 'nopcomp', 'noccp', 'novj', 'nobsdcomp',
+                       'nodeflate', 'lcp-echo-interval', '20', 'lcp-echo-failure', '3', 
+                       'lcp-max-configure', '50', 'maxfail', $pppsettings{'MAXRETRIES'}));
+       
+               if ($pppsettings{'DEBUG'} eq 'on') {
+                       push(@pppcommand, ('debug'));
+               }
+       
+               system (@pppcommand);
+       }
+}
+
+sub dopulsardsldial
+{
+       if (system ('/etc/rc.d/rc.pulsardsl','start')) {
+               &General::log ("ERROR: PULSAR ADSL modem failed to start");
+               exit 1;
+       }
+       doatmdial();
+}
+
+sub dobewanadsldial
+{
+       if (system ('/etc/rc.d/rc.bewanadsl','start')) {
+               &General::log ("ERROR: Bewan ADSL MODEM failed to start");
+               exit 1;
+       }
+       doatmdial();
+}
+
+sub doalcatelusbkdial
+{
+       if (system ('/etc/rc.d/rc.alcatelusbk','start')) {
+               &General::log ("ERROR: Alcatel USB kernel mode driver failed to start");
+               exit 1;
+       }
+       doatmdial();
+}
+
+sub doconexantusbadsldial
+{
+       if (system ('/etc/rc.d/rc.conexantusbadsl','start')) {
+               &General::log ("ERROR: Conexant USB ADSL modem failed to start");
+               exit 1;
+       }
+       doatmdial();
+
+}
+
+sub doconexantpciadsldial
+{
+       if (system ('/etc/rc.d/rc.conexantpciadsl','start')) {
+               &General::log ("ERROR: Conexant PCI ADSL modem failed to start");
+               exit 1;
+       }
+       doatmdial();
+
+}
+
+sub doamedynusbadsldial
+{
+       if (system ('/etc/rc.d/rc.amedynusbadsl','start')) {
+               &General::log ("ERROR: Zyxel 630-11/Asus AAM6000UG USB ADSL modem failed to start");
+               exit 1;
+       }
+       doatmdial();
+
+}
+
+sub do3cp4218usbadsldial
+{
+       if (system ('/etc/rc.d/rc.3cp4218usbadsl','start')) {
+               &General::log ("ERROR: 3Com USB AccessRunner modem failed to start");
+               exit 1;
+       }
+       doatmdial();
+}
+
+sub doatmdial
+{
+       my $ENCAP;
+       if ($pppsettings {'PROTOCOL'} eq 'RFC2364') {
+               system ('/sbin/modprobe pppoatm');
+               my @pppcommand = ('/usr/sbin/pppd');
+               if ($pppsettings{'ENCAP'} eq '0') { $ENCAP='vc-encaps'; } else { $ENCAP='llc-encaps'; }
+               push(@pppcommand,'plugin', 'pppoatm.so',$pppsettings{'VPI'}.".".$pppsettings{'VCI'},"$ENCAP");
+               if ($pppsettings{'DNS'} eq 'Automatic') { push(@pppcommand, ('usepeerdns'));}
+               if ($pppsettings{'AUTH'} eq 'pap') {
+                       push(@pppcommand, ('-chap'));
+               } elsif ($pppsettings{'AUTH'} eq 'chap') {
+                       push(@pppcommand, ('-pap'));
+               }
+               if ($pppsettings{'RECONNECTION'} ne 'persistent') {
+                       if ($pppsettings{'TIMEOUT'} != 0) {
+                               my $seconds = $pppsettings{'TIMEOUT'} * 60;
+                               push(@pppcommand, ('idle', "$seconds"));
+                       }
+                       if ($pppsettings{'RECONNECTION'} eq 'dialondemand') {
+                               push (@pppcommand, ('demand','nopersist'));
+                       }
+                       push (@pppcommand, 
+                               ('active-filter',
+                               'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0 ' ));
+               }
+               push(@pppcommand, ('noipdefault', 'defaultroute', 'user', 
+                       $pppsettings{'USERNAME'}, 'ipcp-accept-local', 'ipcp-accept-remote', 'passive',
+                        'nopcomp', 'noccp', 'novj', 'nobsdcomp',
+                       'nodeflate', 'lcp-echo-interval', '20', 'lcp-echo-failure', '3', 
+                       'lcp-max-configure', '50', 'maxfail', $pppsettings{'MAXRETRIES'}));
+
+               if ($pppsettings{'DEBUG'} eq 'on') {
+                       push(@pppcommand, ('debug'));
+               }
+
+               system (@pppcommand);
+       } elsif ($pppsettings {'PROTOCOL'} eq 'RFC1483') {
+               if ($pppsettings {'METHOD'} =~ /^(PPPOE|PPPOE_PLUGIN)$/) {
+                       my $itf='0';
+                       my $device = "nas$itf";
+                       if (open(FILE, ">${General::swroot}/red/device")) { print FILE $device; close FILE; }
+                       $netsettings{'RED_DEV'} = $device;
+                       if (system ('/bin/ps -ef | /bin/grep -q [b]r2684ctl')) {
+                               system ('/sbin/modprobe br2684');
+                               system ('/usr/bin/br2684ctl', '-b', '-c', "$itf", '-e', $pppsettings{'ENCAP'}, '-a', "$itf.$pppsettings{'VPI'}.$pppsettings{'VCI'}");
+                               sleep 3;
+                       }
+                       system ('/sbin/ifconfig',"$device",'up');
+                       &dopppoedial();
+               } elsif ($pppsettings{'ENCAP'} =~ /^(0|1)$/) {
+                       my $itf='0';
+                       $iface = "nas$itf";
+                       if (open(FILE, ">${General::swroot}/red/iface")) { print FILE $iface; close FILE; }
+                       if (system ('/bin/ps -ef | /bin/grep -q [b]r2684ctl')) {
+                               system ('/sbin/modprobe br2684');
+                               system ('/usr/bin/br2684ctl', '-b', '-c', "$itf", '-e', $pppsettings{'ENCAP'}, '-a', "$itf.$pppsettings{'VPI'}.$pppsettings{'VCI'}");
+                               sleep 3;
+                       }
+                       system ('/sbin/ifconfig',"$iface",'up');
+
+                       if ($pppsettings{'METHOD'} eq 'STATIC') {
+                               my @staticcommand = ('/sbin/ifconfig');
+                               push(@staticcommand, ($iface, $pppsettings{'IP'},'netmask', $pppsettings{'NETMASK'}));
+                               if ($pppsettings{'BROADCAST'} ne '') {
+                                       push(@staticcommand, ('broadcast', $pppsettings{'BROADCAST'}));
+                               }
+                               system (@staticcommand);
+                               system ("/sbin/route","add","default","gw",$pppsettings{'GATEWAY'});
+                               system ("/bin/touch", "${General::swroot}/red/active");
+                               system ("/etc/rc.d/rc.updatered");
+                       } elsif ($pppsettings {'METHOD'} eq 'DHCP') {
+                               dodhcpdial($iface,$pppsettings{'DHCP_HOSTNAME'});
+                       }
+               } elsif ($pppsettings{'ENCAP'} =~ /^(2|3)$/) {
+                       my $itf='0';
+                       $iface = "atm$itf";
+                       if (open(FILE, ">${General::swroot}/red/iface")) { print FILE $iface; close FILE; }
+                       if (system ('/bin/ps -ef | /bin/grep -q [a]tmarpd')) {
+                               if (system ('/usr/sbin/atmarpd -b -l syslog')) {
+                                       &General::log('atmarpd fail');
+                                       exit 1;
+                               }
+                               # it will fail on all attempt after the first because interface still exist
+                               system ("/usr/sbin/atmarp -c $iface 2>/dev/null");
+                               
+                               if ($pppsettings{'METHOD'} eq 'STATIC') {
+                                       my @staticcommand = ('/sbin/ifconfig');
+                                       push(@staticcommand, ($iface, $pppsettings{'IP'},'netmask', $pppsettings{'NETMASK'}, 'up'));
+                                       if ($pppsettings{'BROADCAST'} ne '') {
+                                               push(@staticcommand, ('broadcast', $pppsettings{'BROADCAST'}));
+                                       }
+                                       system (@staticcommand);
+                                       # we have to wait a bit before launching atmarp -s
+                                       sleep 2;
+                                       my @atmarp = ('/usr/sbin/atmarp', '-s', $pppsettings{'GATEWAY'}, "$itf.$pppsettings{'VPI'}.$pppsettings{'VCI'}");
+                                       if ($pppsettings{'ENCAP'} eq '3') {
+                                               push(@atmarp, 'null' ); # routed ip vc encap
+                                       }
+                                       system (@atmarp);
+                                       system ("/sbin/route", "add", "default", "gw", $pppsettings{'GATEWAY'});
+                                       system ("/bin/touch", "${General::swroot}/red/active");
+                               }
+                       }
+               }
+       }
+}
diff --git a/src/rc.d/rc.sysinit b/src/rc.d/rc.sysinit
new file mode 100644 (file)
index 0000000..5cb0d47
--- /dev/null
@@ -0,0 +1,267 @@
+#!/bin/sh
+#
+# $Id: rc.sysinit,v 1.18.2.36 2005/12/01 20:13:08 eoberlander Exp $
+#
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/main/settings)
+
+umask 022
+
+PATH=/bin:/sbin:/usr/bin:/usr/sbin
+export PATH
+
+echo "Mounting /proc filesystem"
+mount -n -t proc /proc /proc
+
+# Unmount the initrd, if necessary
+if grep -q /initrd /proc/mounts && ! grep -q /initrd/loopfs /proc/mounts ; then
+   umount /initrd >/dev/null 2>&1
+   blockdev --flushbufs /dev/ram0 >/dev/null 2>&1
+fi
+
+echo "Setting hostname"
+if [ -z "$DOMAINNAME" ]; then
+       hostname $HOSTNAME
+else
+       hostname ${HOSTNAME}.${DOMAINNAME}
+fi
+
+if [ "$KEYMAP" != "" ]; then
+       loadkeys $KEYMAP
+fi
+
+# Initializing Power Management ACPI first, then APM.
+# APM won't load if ACPI is initialized anyway.
+echo "Initializing Power Management"
+modprobe ac > /dev/null 2>&1
+modprobe battery > /dev/null 2>&1
+modprobe button > /dev/null 2>&1
+modprobe fan > /dev/null 2>&1
+modprobe processor > /dev/null 2>&1
+modprobe thermal > /dev/null 2>&1
+modprobe apm > /dev/null 2>&1
+
+# Initialize USB controllers
+echo "Initializing USB controllers"
+aliases=`/sbin/modprobe -c | awk '/^alias usb-controller/ { print $3 }'`
+if [ -n "$aliases" -a "$aliases" != "off" ] ; then
+    modprobe usbcore
+    mount -n -t usbdevfs usbdevfs /proc/bus/usb
+    for alias in $aliases ; do
+        [ "$alias" != "off" ] && modprobe $alias
+    done
+
+    echo "Initializing USB storage devices"
+    modprobe usb-storage
+    modprobe sd_mod
+
+    echo "Initializing USB keyboard"
+    modprobe hid
+    modprobe keybdev
+
+    echo "Initializing USB modems"
+    modprobe acm
+fi
+
+STRING="Checking root filesystem"
+
+fsck -R -T -a -C /
+RC=$?  
+
+if [ "$RC" = "0" ]; then
+       echo "$STRING: Success"
+elif [ "$RC" = "1" ]; then
+       echo "$STRING: Passed"
+fi
+
+# A return of 2 or higher means there were serious problems.
+if [ $RC -gt 1 ]; then
+       echo "$STRING: Failed"
+       echo "*** An error occurred during the file system check."
+       echo "*** Dropping you to a shell; the system will reboot"
+       echo "*** when you leave the shell."
+       export PS1="(Repair filesystem) \# # "
+       sulogin
+       echo "Unmounting filesystems"
+       umount -a
+       mount -n -o remount,ro /
+       echo "Automatic reboot in progress."
+       reboot -f
+fi
+
+echo "Mounting root read/write"
+mount -n -o remount,rw /
+
+STRING="Checking other filesystems"
+fsck -R -T -a -C -A
+RC=$?  
+
+if [ "$RC" = "0" ]; then
+        echo "$STRING: Success"
+elif [ "$RC" = "1" ]; then
+        echo "$STRING: Passed"
+fi
+  
+# A return of 2 or higher means there were serious problems.
+if [ $RC -gt 1 ]; then
+        echo "$STRING: Failed"
+        echo "*** An error occurred during the file system check."
+       echo "*** Dropping you to a shell; the system will reboot"
+       echo "*** when you leave the shell."
+       export PS1="(Repair filesystem) \# # "
+       sulogin
+       echo "Unmounting filesystems"
+       umount -n -a
+       mount -n -o remount,ro /
+       echo "Automatic reboot in progress."
+       reboot -f
+fi
+
+echo "Mounting other filesystems"
+mount -a -n
+
+if [ -e /swapfile ]; then
+       echo "Turning on swap"
+       chmod 600 /swapfile
+       swapon /swapfile
+fi
+
+echo "Updating System.map file location"
+if [ -L /boot/System.map -a -r /boot/System.map-`uname -r` -a \
+       ! /boot/System.map -ef /boot/System.map-`uname -r` ]; then
+       ln -s -f System.map-`uname -r` /boot/System.map
+fi
+if [ ! -e /boot/System.map -a -r /boot/System.map-`uname -r` ]; then
+       ln -s -f System.map-`uname -r` /boot/System.map
+fi
+
+echo "Updating /etc/fstab to reflect removable devices"
+/usr/sbin/updfstab
+
+echo "Setting kernel settings"
+/sbin/sysctl -e -p /etc/sysctl.conf >/dev/null
+
+if [ -e /etc/FLASH ]; then
+       if [ -e /etc/rc.d/rc.flash.up ]; then
+               echo "Decompressing Flash"
+               . /etc/rc.d/rc.flash.up
+       fi
+fi
+
+echo "Setting locale"
+LANG=en_US.utf8
+export LANG
+
+echo "Setting consolefonts"
+eval $(/usr/local/bin/readhash CONFIG_ROOT/main/settings)
+for i in 2 3 4 5 6; do
+       > /dev/tty$i
+done
+if [ "$LANGUAGE" = "el" ]; then
+       /usr/bin/unicode_start iso07u-16
+elif [ "$LANGUAGE" = "pt" -o "$LANGUAGE" = "bz" ]; then
+       /usr/bin/unicode_start lat1-16
+elif [ "$LANGUAGE" = "cs" -o "$LANGUAGE" = "hu" -o "$LANGUAGE" = "pl" -o "$LANGUAGE" = "sk" ]; then
+       /usr/bin/unicode_start lat2-16
+elif [ "$LANGUAGE" = "tr" ]; then
+       /usr/bin/unicode_start lat5-16
+elif [ "$LANGUAGE" = "vi" ]; then
+       /usr/bin/unicode_start viscii10-8x16
+else
+       /usr/bin/unicode_start lat0-16
+fi
+
+echo "Update modules dependencies when necessary"
+if [ -e /var/run/need-depmod-`uname -r` ]; then
+       /sbin/depmod -a
+       /bin/rm -f /var/run/need-depmod-`uname -r`
+fi
+
+echo "Clearing old files"
+rm -f /var/run/{*.pid,*.sem,*.tdb}
+rm -f /var/run/dhcpcd-*.pid
+rm -f /var/lock/{LCK..tty*,rc.updatered.lock}
+rm -f CONFIG_ROOT/dhcpc/{*.pid,*.cache,*.info}
+rm -f CONFIG_ROOT/red/{active,eciadsl-synch-done}
+
+echo "Setting the clock"
+/sbin/hwclock --hctosys
+
+# Cleaning up wtmp/utmp files
+>/var/run/utmp
+touch /var/log/wtmp
+chgrp utmp /var/run/utmp /var/log/wtmp
+chmod 0664 /var/run/utmp /var/log/wtmp
+
+if [ -x /usr/sbin/isapnp -a -f CONFIG_ROOT/isapnp/isapnp.conf -a ! -f /proc/isapnp ]; then
+       echo "Running isapnp"
+       /usr/sbin/isapnp CONFIG_ROOT/isapnp/isapnp.conf 2>/dev/null
+fi
+
+if [ ! -e /etc/ssh/ssh_host_key ]; then
+       echo "Generating SSH RSA1 key.  This may take several minutes."
+       /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N ""
+fi
+if [ ! -e /etc/ssh/ssh_host_rsa_key ]; then
+       echo "Generating SSH RSA key.  This may take several minutes."
+       /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
+fi
+if [ ! -e /etc/ssh/ssh_host_dsa_key ]; then
+       echo "Generating SSH DSA key.  This may take several minutes."
+       /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N "" 
+fi
+
+# https certificate
+if [ -f /etc/httpd/server.key -a -f /etc/httpd/server.crt -a -f /etc/httpd/server.csr ]; then
+       /usr/local/bin/httpscert read
+else
+       /usr/local/bin/httpscert new
+fi
+
+echo "Rotating logs"
+/usr/sbin/logrotate /etc/logrotate.conf
+
+echo "Starting syslogd"
+/usr/sbin/syslogd -m 0
+echo "Starting klogd"
+/usr/sbin/klogd -u klogd -j /var/empty
+
+echo "Running /etc/rc.d/rc.network"
+. /etc/rc.d/rc.network
+
+echo "Dumping boot messages"
+dmesg > /var/log/dmesg
+
+if [ -e /var/log/rrd/disk.rrd ]; then
+       echo "Adjusting graphs to compensate for boot"
+       /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk.rrd","-t","readsect:writesect","N:U:U");'
+fi
+
+echo "Starting crond"
+/usr/sbin/fcron
+echo "Starting Snort (if enabled)"
+/usr/local/bin/restartsnort red blue orange green
+echo "Starting httpd"
+/usr/sbin/httpd
+echo "Starting dhcpd (if enabled)"
+/usr/local/bin/restartdhcp
+echo "Starting sshd (if enabled)"
+/usr/local/bin/restartssh
+echo "Starting ntpd (if enabled)"
+/usr/local/bin/restartntpd
+
+if [ -e "CONFIG_ROOT/proxy/squid.conf" ]; then
+       echo "Starting squid (if enabled)"
+       /usr/local/bin/restartsquid
+fi
+
+echo "Running rc.local"
+. /etc/rc.d/rc.local
+
+logger -t ipcop "IPCop started."
+
+# Send nice startup beep now
+/usr/bin/beep -l 75 -f 500
+/usr/bin/beep -l 75 -f 1000
+/usr/bin/beep -l 75 -f 2000
+/usr/bin/beep -l 75 -f 3000
diff --git a/src/rc.d/rc.updatered b/src/rc.d/rc.updatered
new file mode 100644 (file)
index 0000000..f7bfbc6
--- /dev/null
@@ -0,0 +1,154 @@
+#!/bin/sh
+#
+# $Id: rc.updatered,v 1.11.2.15 2005/12/01 16:20:37 franck78 Exp $
+#
+
+if [ ! -e /var/lock/rc.updatered.lock ]; then
+       /bin/touch /var/lock/rc.updatered.lock
+       /usr/bin/logger -s -p local0.info -t rc.updatered "$0 locking for $$"
+else
+       count=0
+       while [ ! $count = 5 ]; do
+               sleep 3
+               if [ ! -e /var/lock/rc.updatered.lock ]; then
+                       break
+               else
+                       /usr/bin/logger -s -p local0.info -t rc.updatered "$0 $$ waiting unlock"
+               fi
+               ((++count))
+       done
+fi
+
+eval $(/usr/local/bin/readhash CONFIG_ROOT/vpn/settings)
+eval $(/usr/local/bin/readhash CONFIG_ROOT/dhcp/settings)
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ethernet/settings)
+eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+
+IFACE=`/bin/cat CONFIG_ROOT/red/iface 2>/dev/null | /usr/bin/tr -d '\012'`
+REMOTE=`/bin/cat CONFIG_ROOT/red/remote-ipaddress 2>/dev/null | /usr/bin/tr -d '\012'`
+
+###
+### Retrieve DHCP Settings
+###
+if [ "$CONFIG_TYPE" = "2" -o "$CONFIG_TYPE" = "3"  -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then
+       if [ "$RED_TYPE" = "DHCP" ]; then
+               unset DNS1 DNS2
+               eval $(/usr/local/bin/readhash CONFIG_ROOT/ethernet/settings)
+               if [ "$DNS1" = "" ]; then
+                       echo -n `/etc/rc.d/helper/getdnsfromdhcpc.pl 1` > CONFIG_ROOT/red/dns1
+                       echo -n `/etc/rc.d/helper/getdnsfromdhcpc.pl 2` > CONFIG_ROOT/red/dns2
+               else 
+                       echo "$DNS1" > CONFIG_ROOT/red/dns1
+                       echo "$DNS2" > CONFIG_ROOT/red/dns2
+               fi
+               . CONFIG_ROOT/dhcpc/dhcpcd-${RED_DEV}.info
+               echo "$IPADDR"  > CONFIG_ROOT/red/local-ipaddress
+               echo "$GATEWAY" > CONFIG_ROOT/red/remote-ipaddress
+       fi
+else
+       if [ "$PROTOCOL" = "RFC1483" -a "$METHOD" = "DHCP" ]; then
+               unset DNS1 DNS2
+               eval $(/usr/local/bin/readhash CONFIG_ROOT/ppp/settings)
+               if [ "$DNS" = "Automatic" ]; then
+                       echo -n `/etc/rc.d/helper/getdnsfromdhcpc.pl 1` > CONFIG_ROOT/red/dns1
+                       echo -n `/etc/rc.d/helper/getdnsfromdhcpc.pl 2` > CONFIG_ROOT/red/dns2
+               else 
+                       echo "$DNS1" > CONFIG_ROOT/red/dns1
+                       echo "$DNS2" > CONFIG_ROOT/red/dns2
+               fi
+               . CONFIG_ROOT/dhcpc/dhcpcd-${IFACE}.info
+               echo $IPADDR  > CONFIG_ROOT/red/local-ipaddress
+               echo $GATEWAY > CONFIG_ROOT/red/remote-ipaddress
+       fi
+fi
+
+###
+### Retrieve DNS settings
+###
+DNS1=`/bin/cat CONFIG_ROOT/red/dns1 2>/dev/null | /usr/bin/tr -d '\012'`
+DNS2=`/bin/cat CONFIG_ROOT/red/dns2 2>/dev/null | /usr/bin/tr -d '\012'`
+echo > CONFIG_ROOT/red/resolv.conf    #clear it
+[ "$DNS1" != "" ] && echo "nameserver $DNS1" >  CONFIG_ROOT/red/resolv.conf
+[ "$DNS2" != "" ] && echo "nameserver $DNS2" >> CONFIG_ROOT/red/resolv.conf
+
+
+###
+### Restart DNSMASQ
+###
+/bin/killall -KILL dnsmasq 2> /dev/null
+sleep 1
+
+DOMopt=""
+[ "$DOMAIN_NAME_GREEN" ] && DOMopt="-s $DOMAIN_NAME_GREEN"
+if [ -e "CONFIG_ROOT/red/dial-on-demand" -a "$DIALONDEMANDDNS" == "on" -a ! -e "CONFIG_ROOT/red/active" ]; then
+    /usr/sbin/dnsmasq -l /var/state/dhcp/dhcpd.leases $DOMopt -r CONFIG_ROOT/ppp/fake-resolv.conf
+else
+    /usr/sbin/dnsmasq -l /var/state/dhcp/dhcpd.leases $DOMopt -r CONFIG_ROOT/red/resolv.conf
+fi
+unset DOMopt
+
+
+# Reset default route to ippp0 for dial on demand
+if [ -e "CONFIG_ROOT/red/dial-on-demand" -a "$TYPE" == "isdn" -a ! -e "CONFIG_ROOT/red/active" ]; then
+       /sbin/route del default 2> /dev/null
+       if [ ! -z "$REMOTE" ]; then
+               /sbin/route add default gw $REMOTE 2> /dev/null
+       else
+               /sbin/route add default dev ippp0  2> /dev/null
+       fi
+fi
+
+if ( echo $0 | /bin/grep -q 'dhcpcd.exe' ); then
+       eval $(/usr/local/bin/readhash "$1")
+       case "$2" in
+        up)    /usr/bin/logger -s -p local0.info -t dhcpcd.exe "${INTERFACE} has been configured with old IP=${IPADDR}"
+               if [ "$RED_TYPE" != 'PPTP' ]; then
+                       /bin/touch CONFIG_ROOT/red/active
+               fi
+               ;;
+        new)   /usr/bin/logger -s -p local0.info -t dhcpcd.exe "${INTERFACE} has been configured with new IP=${IPADDR}"
+               if [ -e "CONFIG_ROOT/red/active" ]; then
+                       /usr/local/bin/setfilters
+                       /usr/local/bin/setportfw
+                       /usr/local/bin/setxtaccess
+                       /usr/local/bin/setddns.pl -f
+                       /usr/local/bin/restartsnort red
+                       sleep $VPN_DELAYED_START && /usr/local/bin/ipsecctrl S &
+                       /bin/rm -f /var/lock/rc.updatered.lock
+                       /usr/bin/logger -s -p local0.info -t rc.updatered "unlocking from $$"
+                       exit 0
+               else
+                       if [ "$RED_TYPE" != 'PPTP' ]; then
+                               /bin/touch CONFIG_ROOT/red/active
+                       fi
+               fi
+               ;;
+        down)  /usr/bin/logger -s -p local0.info -t dhcpcd.exe "${INTERFACE} has been brought down"
+               rm -f CONFIG_ROOT/red/active
+               ;;
+       esac
+fi
+
+if [ -e "CONFIG_ROOT/red/active" ]; then
+       [ "$IFACE" != "" ] && /sbin/ifconfig $IFACE -multicast
+       /etc/rc.d/rc.firewall reload
+       /usr/local/bin/setfilters
+       /usr/local/bin/updatelists.pl &
+       /usr/local/bin/restartsnort red
+       unset ENABLE
+       eval $(/usr/local/bin/readhash CONFIG_ROOT/shaping/settings)
+       if [ "$ENABLE" == "on" ]; then
+               /usr/local/bin/restartshaping
+       fi
+       /usr/local/bin/setportfw
+       /usr/local/bin/setxtaccess
+       /usr/local/bin/setddns.pl -f
+       /etc/rc.d/helper/writeipac.pl
+       /usr/sbin/fetchipac -S
+       sleep $VPN_DELAYED_START && /usr/local/bin/ipsecctrl S &
+else
+       /usr/local/bin/ipsecctrl D
+       /etc/rc.d/rc.firewall reload
+fi
+/bin/rm -f /var/lock/rc.updatered.lock
+/usr/bin/logger -s -p local0.info -t rc.updatered "unlocking from $$"
diff --git a/src/scripts/CVS/Entries b/src/scripts/CVS/Entries
new file mode 100644 (file)
index 0000000..bfd0eef
--- /dev/null
@@ -0,0 +1,12 @@
+/httpscert/1.1.2.2/Thu Dec 15 21:59:57 2005//TIPCOP_v1_4_0
+/makegraphs/1.19.2.18/Sun Jan  8 13:41:04 2006//TIPCOP_v1_4_0
+/readhash/1.4/Sat Jan 31 08:05:42 2004//TIPCOP_v1_4_0
+/resetusb/1.1.2.2/Wed Nov 24 23:27:29 2004//TIPCOP_v1_4_0
+/setddns.pl/1.4.2.32/Tue Feb  7 01:29:47 2006//TIPCOP_v1_4_0
+/setreservedports/1.1.2.3/Wed Sep  7 21:38:50 2005//TIPCOP_v1_4_0
+/settime/1.3/Fri Dec 19 19:24:54 2003//TIPCOP_v1_4_0
+/timecheck/1.3/Tue Dec 16 20:32:10 2003//TIPCOP_v1_4_0
+/tunerrd.pl/1.1.2.4/Wed Jan 26 12:23:27 2005//TIPCOP_v1_4_0
+/updatelists.pl/1.4.2.5/Wed Jun 29 19:28:44 2005//TIPCOP_v1_4_0
+/updatesetup/1.1.2.2/Mon Oct  3 20:49:05 2005//TIPCOP_v1_4_0
+D
diff --git a/src/scripts/CVS/Repository b/src/scripts/CVS/Repository
new file mode 100644 (file)
index 0000000..34ac476
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/scripts
diff --git a/src/scripts/CVS/Root b/src/scripts/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/scripts/CVS/Tag b/src/scripts/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/scripts/httpscert b/src/scripts/httpscert
new file mode 100644 (file)
index 0000000..97c6c3c
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# $Id: httpscert,v 1.1.2.2 2005/12/15 21:59:57 eoberlander Exp $
+# new : generate new certificate
+# read: read issuer in certificate and verify if it is the same as hostname
+
+# See how we were called.
+case "$1" in
+  new)
+       # set temporary random file
+       export RANDFILE=/root/.rnd
+       if [ ! -f /etc/httpd/server.key ]; then
+               echo "Generating https server key."
+               /usr/bin/openssl genrsa -rand \
+                       /boot/vmlinuz:CONFIG_ROOT/ethernet/settings -out \
+                       /etc/httpd/server.key 1024
+       fi
+       echo "Generating CSR"
+       /bin/cat /etc/certparams | sed "s/HOSTNAME/`hostname -f`/" | /usr/bin/openssl \
+               req -new -key /etc/httpd/server.key -out /etc/httpd/server.csr
+       echo "Signing certificate"
+       /usr/bin/openssl x509 -req -days 999999 -in \
+               /etc/httpd/server.csr -signkey /etc/httpd/server.key -out \
+               /etc/httpd/server.crt
+       # unset and remove random file
+       export -n RANDFILE
+       rm -f /root/.rnd
+       ;;
+  read)
+       if [ -f /etc/httpd/server.key -a -f /etc/httpd/server.crt -a -f /etc/httpd/server.csr ]; then
+               ISSUER=`openssl x509 -in /etc/httpd/server.crt -text -noout | grep Issuer | /usr/bin/cut -f2 -d '='`
+               HOSTNAME=`/bin/hostname -f`
+               if [ "$ISSUER" != "$HOSTNAME" ]; then
+                       echo "Certificate issuer '$ISSUER' is not the same as the hostname'$HOSTNAME'"
+                       echo "Probably host or domain name has been changed in setup"
+                       echo "You could remake server certificate with '/usr/local/bin/httpscert new'"
+                       exit 1
+               else
+                       echo "https certificate issuer match $HOSTNAME"
+               fi
+       else
+               echo "Certificate not found"
+               exit 1
+       fi
+       ;;
+  *)
+       /bin/echo "Usage: $0 {read|new}"
+       exit 1
+       ;;
+esac
diff --git a/src/scripts/makegraphs b/src/scripts/makegraphs
new file mode 100644 (file)
index 0000000..2c8bf47
--- /dev/null
@@ -0,0 +1,487 @@
+#!/usr/bin/perl
+
+############################################################################
+#                                                                          #
+# This file is part of the IPCop Firewall.                                 #
+#                                                                          #
+# IPCop 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.                                      #
+#                                                                          #
+# IPCop 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 IPCop; if not, write to the Free Software                     #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2004-01-19 Mark Wormgoor <mark@wormgoor.com>.              #
+#                                                                          #
+############################################################################
+#
+# $Id: makegraphs,v 1.19.2.18 2006/01/08 13:41:04 eoberlander Exp $
+#
+use strict;
+#use warnings;
+
+use RRDs;
+require "CONFIG_ROOT/general-functions.pl";
+require "${General::swroot}/lang.pl";
+
+my (%settings, @ipacsum, $iface, $ERROR);
+&General::readhash("${General::swroot}/ethernet/settings", \%settings);
+
+# Added for conversion of utf-8 characters
+use Encode 'from_to';
+my %tr=();
+
+# Force language back to English (ugly hack!)
+# Modified to only force if we are unable to convert charset 
+# from utf-8
+if ((${Lang::language} eq 'el') || 
+    (${Lang::language} eq 'fa') ||
+    (${Lang::language} eq 'ru') ||
+    (${Lang::language} eq 'th') || 
+    (${Lang::language} eq 'vi') ||
+    (${Lang::language} eq 'zh') ||
+    (${Lang::language} eq 'zt')) {
+       eval `/bin/cat "${General::swroot}/langs/en.pl"`;
+} else {
+       %tr=%Lang::tr;          # use translated version for other languages
+}
+
+# Settings
+my $rrdlog = "/var/log/rrd";
+my $graphs = "/home/httpd/html/graphs";
+$ENV{PATH}="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin";
+
+sub gettraffic {
+       my $interface = $_[0];
+
+       my $bytesin=0;
+       my $bytesout=0;
+
+       foreach (@ipacsum)
+       {
+               # Incoming...
+               $bytesin += $1 if (/^[\* ]\s+incoming\s+${interface}.+\:\s+(\d+)/);
+
+               # Forwarded Incoming...
+               $bytesin += $1 if (/^[\* ]\s+forwarded\s+incoming\s+${interface}.+\:\s+(\d+)/);
+
+               # Outgoing...
+               $bytesout += $1 if (/^[* ]\s+outgoing\s+${interface}.+\:\s+(\d+)/);
+
+               # Forwarded Outgoing...
+               $bytesout += $1 if (/^[* ]\s+forwarded\s+outgoing\s+${interface}.+\:\s+(\d+)/);
+       }
+       return "$bytesin:$bytesout";
+}
+
+sub updatecpugraph {
+       my $period    = $_[0];
+
+       RRDs::graph ("$graphs/cpu-$period.png",
+               "--start", "-1$period", "-aPNG", "-i", "-z",
+               "--alt-y-grid", "-w 600", "-h 100", "-l 0", "-u 100", "-r",
+               "--color", "SHADEA#EAE9EE",
+               "--color", "SHADEB#EAE9EE",
+               "--color", "BACK#EAE9EE",
+               "-t $tr{'cpu usage per'} $tr{$period}",
+               "DEF:user=$rrdlog/cpu.rrd:user:AVERAGE",
+               "DEF:system=$rrdlog/cpu.rrd:system:AVERAGE",
+               "DEF:idle=$rrdlog/cpu.rrd:idle:AVERAGE",
+               "CDEF:total=user,system,idle,+,+",
+               "CDEF:userpct=100,user,total,/,*",
+               "CDEF:systempct=100,system,total,/,*",
+               "CDEF:idlepct=100,idle,total,/,*",
+               "AREA:userpct#0000FF:$tr{'user cpu usage'}\\j",
+               "STACK:systempct#FF0000:$tr{'system cpu usage'}\\j",
+               "STACK:idlepct#00FF00:$tr{'idle cpu usage'}\\j",
+               "GPRINT:userpct:MAX:$tr{'maximal'} $tr{'user cpu'}\\:%3.2lf%%",
+               "GPRINT:userpct:AVERAGE:$tr{'average'} $tr{'user cpu'}\\:%3.2lf%%",
+               "GPRINT:userpct:LAST:$tr{'current'} $tr{'user cpu'}\\:%3.2lf%%\\j",
+               "GPRINT:systempct:MAX:$tr{'maximal'} $tr{'system cpu'}\\:%3.2lf%%",
+               "GPRINT:systempct:AVERAGE:$tr{'average'} $tr{'system cpu'}\\:%3.2lf%%",
+               "GPRINT:systempct:LAST:$tr{'current'} $tr{'system cpu'}\\:%3.2lf%%\\j",
+               "GPRINT:idlepct:MAX:$tr{'maximal'} $tr{'idle cpu'}\\:%3.2lf%%",
+               "GPRINT:idlepct:AVERAGE:$tr{'average'} $tr{'idle cpu'}\\:%3.2lf%%",
+               "GPRINT:idlepct:LAST:$tr{'current'} $tr{'idle cpu'}\\:%3.2lf%%\\j");
+       $ERROR = RRDs::error;
+       print "Error in RRD::graph for cpu: $ERROR\n" if $ERROR;
+}
+
+sub updatecpudata {
+       if ( ! -e "$rrdlog/cpu.rrd") {
+               RRDs::create ("$rrdlog/cpu.rrd", "--step=300",
+                       "DS:user:COUNTER:600:0:500000000",
+                       "DS:system:COUNTER:600:0:500000000",
+                       "DS:idle:COUNTER:600:0:500000000",
+                       "RRA:AVERAGE:0.5:1:576",
+                       "RRA:AVERAGE:0.5:6:672",
+                       "RRA:AVERAGE:0.5:24:732",
+                       "RRA:AVERAGE:0.5:144:1460");
+               $ERROR = RRDs::error;
+               print "Error in RRD::create for cpu: $ERROR\n" if $ERROR;
+       }
+
+       my ($cpu, $user, $nice, $system, $idle);
+
+       open STAT, "/proc/stat";
+       while(<STAT>) {
+               chomp;
+               /^cpu\s/ or next;
+               ($cpu, $user, $nice, $system, $idle) = split /\s+/;
+               last;
+       }
+       close STAT;
+       $user += $nice;
+
+       RRDs::update ("$rrdlog/cpu.rrd",
+               "-t", "user:system:idle", 
+               "N:$user:$system:$idle");
+       $ERROR = RRDs::error;
+       print "Error in RRD::update for cpu: $ERROR\n" if $ERROR;
+
+}
+
+sub updatememgraph {
+       my $period    = $_[0];
+
+       RRDs::graph ("$graphs/memory-$period.png",
+               "--start", "-1$period", "-aPNG", "-i", "-z",
+               "--alt-y-grid", "-w 600", "-h 100", "-l 0", "-u 100", "-r",
+               "--color", "SHADEA#EAE9EE",
+               "--color", "SHADEB#EAE9EE",
+               "--color", "BACK#EAE9EE",
+               "-t $tr{'memory usage per'} $tr{$period}",
+               "DEF:used=$rrdlog/mem.rrd:memused:AVERAGE",
+               "DEF:free=$rrdlog/mem.rrd:memfree:AVERAGE",
+               "DEF:shared=$rrdlog/mem.rrd:memshared:AVERAGE",
+               "DEF:buffer=$rrdlog/mem.rrd:membuffers:AVERAGE",
+               "DEF:cache=$rrdlog/mem.rrd:memcache:AVERAGE",
+               "CDEF:total=used,free,+",
+               "CDEF:used2=used,buffer,cache,shared,+,+,-",
+               "CDEF:usedpct=100,used2,total,/,*",
+               "CDEF:sharedpct=100,shared,total,/,*",
+               "CDEF:bufferpct=100,buffer,total,/,*",
+               "CDEF:cachepct=100,cache,total,/,*",
+               "CDEF:freepct=100,free,total,/,*",
+               "AREA:usedpct#0000FF:$tr{'used memory'}\\j",
+               "STACK:sharedpct#FF0000:$tr{'shared memory'}\\j",
+               "STACK:bufferpct#FF00FF:$tr{'buffered memory'}\\j",
+               "STACK:cachepct#FFFF00:$tr{'cached memory'}\\j",
+               "STACK:freepct#00FF00:$tr{'free memory'}\\j",
+               "GPRINT:usedpct:MAX:$tr{'maximal'} $tr{'used memory'}\\:%3.2lf%%",
+               "GPRINT:usedpct:AVERAGE:$tr{'average'} $tr{'used memory'}\\:%3.2lf%%",
+               "GPRINT:usedpct:LAST:$tr{'current'} $tr{'used memory'}\\:%3.2lf%%\\j",
+               "GPRINT:sharedpct:MAX:$tr{'maximal'} $tr{'shared memory'}\\:%3.2lf%%",
+               "GPRINT:sharedpct:AVERAGE:$tr{'average'} $tr{'shared memory'}\\:%3.2lf%%",
+               "GPRINT:sharedpct:LAST:$tr{'current'} $tr{'shared memory'}\\:%3.2lf%%\\j",
+               "GPRINT:bufferpct:MAX:$tr{'maximal'} $tr{'buffered memory'}\\:%3.2lf%%",
+               "GPRINT:bufferpct:AVERAGE:$tr{'average'} $tr{'buffered memory'}\\:%3.2lf%%",
+               "GPRINT:bufferpct:LAST:$tr{'current'} $tr{'buffered memory'}\\:%3.2lf%%\\j",
+               "GPRINT:cachepct:MAX:$tr{'maximal'} $tr{'cached memory'}\\:%3.2lf%%",
+               "GPRINT:cachepct:AVERAGE:$tr{'average'} $tr{'cached memory'}\\:%3.2lf%%",
+               "GPRINT:cachepct:LAST:$tr{'current'} $tr{'cached memory'}\\:%3.2lf%%\\j",
+               "GPRINT:freepct:MAX:$tr{'maximal'} $tr{'free memory'}\\:%3.2lf%%",
+               "GPRINT:freepct:AVERAGE:$tr{'average'} $tr{'free memory'}\\:%3.2lf%%",
+               "GPRINT:freepct:LAST:$tr{'current'} $tr{'free memory'}\\:%3.2lf%%\\j");
+       $ERROR = RRDs::error;
+       print "Error in RRD::graph for mem: $ERROR\n" if $ERROR;
+
+       RRDs::graph ("$graphs/swap-$period.png",
+               "--start", "-1$period", "-aPNG", "-i", "-z",
+               "--alt-y-grid", "-w 600", "-h 100", "-l 0", "-u 100", "-r",
+               "--color", "SHADEA#EAE9EE",
+               "--color", "SHADEB#EAE9EE",
+               "--color", "BACK#EAE9EE",
+               "-t $tr{'swap usage per'} $tr{$period}",
+               "DEF:used=$rrdlog/mem.rrd:swapused:AVERAGE",
+               "DEF:free=$rrdlog/mem.rrd:swapfree:AVERAGE",
+               "CDEF:total=used,free,+",
+               "CDEF:usedpct=100,used,total,/,*",
+               "CDEF:freepct=100,free,total,/,*",
+               "AREA:usedpct#0000FF:$tr{'used swap'}\\j",
+               "STACK:freepct#00FF00:$tr{'free swap'}\\j",
+               "GPRINT:usedpct:MAX:$tr{'maximal'} $tr{'used swap'}\\:%3.2lf%%",
+               "GPRINT:usedpct:AVERAGE:$tr{'average'} $tr{'used swap'}\\:%3.2lf%%",
+               "GPRINT:usedpct:LAST:$tr{'current'} $tr{'used swap'}\\:%3.2lf%%\\j",
+               "GPRINT:freepct:MAX:$tr{'maximal'} $tr{'free swap'}\\:%3.2lf%%",
+               "GPRINT:freepct:AVERAGE:$tr{'average'} $tr{'free swap'}\\:%3.2lf%%",
+               "GPRINT:freepct:LAST:$tr{'current'} $tr{'free swap'}\\:%3.2lf%%\\j");
+       $ERROR = RRDs::error;
+       print "Error in RRD::graph for swap: $ERROR\n" if $ERROR;
+}
+
+sub updatememdata {
+       my ($memused, $memfree, $memshared, $membuffers, $memcache, $swapused, $swapfree);
+       if ( ! -e "$rrdlog/mem.rrd") {
+               RRDs::create ("$rrdlog/mem.rrd", "--step=300",
+                       "DS:memused:ABSOLUTE:600:0:5000000000",
+                       "DS:memfree:ABSOLUTE:600:0:5000000000",
+                       "DS:memshared:ABSOLUTE:600:0:5000000000",
+                       "DS:membuffers:ABSOLUTE:600:0:5000000000",
+                       "DS:memcache:ABSOLUTE:600:0:5000000000",
+                       "DS:swapused:ABSOLUTE:600:0:5000000000",
+                       "DS:swapfree:ABSOLUTE:600:0:5000000000",
+                       "RRA:AVERAGE:0.5:1:576",
+                       "RRA:AVERAGE:0.5:6:672",
+                       "RRA:AVERAGE:0.5:24:732",
+                       "RRA:AVERAGE:0.5:144:1460");
+               $ERROR = RRDs::error;
+               print "Error in RRD::create for mem: $ERROR\n" if $ERROR;
+       }
+
+       open MEM, "/proc/meminfo";
+       while(<MEM>) {
+               chomp;
+               if ($_ =~ /^Mem:/) {
+                       my @temp = split (/\s+/, $_);
+                       $memused    = $temp[2];
+                       $memfree    = $temp[3];
+                       $memshared  = $temp[4];
+                       $membuffers = $temp[5];
+                       $memcache   = $temp[6];
+               } elsif ($_ =~ /^Swap:/) {
+                       my @temp = split (/\s+/, $_);
+                       $swapused = $temp[2];
+                       $swapfree = $temp[3];
+               }
+       }
+       close MEM;
+
+       RRDs::update ("$rrdlog/mem.rrd",
+               "-t", "memused:memfree:memshared:membuffers:memcache:swapused:swapfree",
+               "N:$memused:$memfree:$memshared:$membuffers:$memcache:$swapused:$swapfree");
+       $ERROR = RRDs::error;
+       print "Error in RRD::update for mem: $ERROR\n" if $ERROR;
+}
+
+sub updatediskgraph {
+       my $period    = $_[0];
+
+       RRDs::graph ("$graphs/disk-$period.png",
+               "--start", "-1$period", "-aPNG", "-i", "-z",
+               "--alt-y-grid", "-w 600", "-h 100", "-l 0", "-r",
+               "--color", "SHADEA#EAE9EE",
+               "--color", "SHADEB#EAE9EE",
+               "--color", "BACK#EAE9EE",
+               "-t $tr{'disk access per'} $tr{$period}",
+               "DEF:read=$rrdlog/disk.rrd:readsect:AVERAGE",
+               "DEF:write=$rrdlog/disk.rrd:writesect:AVERAGE",
+               "AREA:read#0000FF:$tr{'sectors read from disk per second'}\\j",
+               "STACK:write#00FF00:$tr{'sectors written to disk per second'}\\j",
+               "GPRINT:read:MAX:$tr{'maximal'} $tr{'read sectors'}\\:%8.0lf",
+               "GPRINT:read:AVERAGE:$tr{'average'} $tr{'read sectors'}\\:%8.0lf",
+               "GPRINT:read:LAST:$tr{'current'} $tr{'read sectors'}\\:%8.0lf\\j",
+               "GPRINT:write:MAX:$tr{'maximal'} $tr{'written sectors'}\\:%8.0lf",
+               "GPRINT:write:AVERAGE:$tr{'average'} $tr{'written sectors'}\\:%8.0lf",
+               "GPRINT:write:LAST:$tr{'current'} $tr{'written sectors'}\\:%8.0lf\\j");
+       $ERROR = RRDs::error;
+       print "Error in RRD::graph for disk: $ERROR\n" if $ERROR;
+}
+
+sub updatediskdata {
+       my ($readwritereq, $readreq, $readsect, $writereq, $writesect);
+       if ( ! -e "$rrdlog/disk.rrd") {
+               RRDs::create ("$rrdlog/disk.rrd", "--step=300",
+                       "DS:readsect:COUNTER:600:0:5000000000",
+                       "DS:writesect:COUNTER:600:0:5000000000",
+                       "RRA:AVERAGE:0.5:1:576",
+                       "RRA:AVERAGE:0.5:6:672",
+                       "RRA:AVERAGE:0.5:24:732",
+                       "RRA:AVERAGE:0.5:144:1460");
+               $ERROR = RRDs::error;
+               print "Error in RRD::create for disk: $ERROR\n" if $ERROR;
+       }
+
+       my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,
+               $atime, $mtime, $ctime, $blksize, $blocks) = stat("/dev/harddisk");
+
+       my $major = $rdev >> 8;
+       my $minor = $rdev & 0xFF;
+
+       open STAT, "/proc/stat";
+       my @diskstat = <STAT>;
+       close (STAT);
+       foreach my $line (@diskstat)
+       {
+               chomp ($line);
+               my @temp = split(/\:\ /,$line);
+               if ($temp[1]) {
+                       my @devicestat = split(/\ /,$temp[1]);
+                       foreach my $stats (@devicestat)
+                       {
+                               chomp ($stats);
+                               my @fields = split(/\((\d+),(\d+)\):\((\d+),(\d+),(\d+),(\d+),(\d+)/,$stats);
+                               if ($major eq $fields[1] and $minor eq $fields[2])
+                               {
+                                       $readwritereq = $fields[3];
+                                       $readreq      = $fields[4];
+                                       $readsect     = $fields[5];
+                                       $writereq     = $fields[6];
+                                       $writesect    = $fields[7];
+                               }
+                       }
+               }
+       }
+
+       if ($readsect && $writesect) {
+               RRDs::update ("$rrdlog/disk.rrd",
+                       "-t", "readsect:writesect",
+                       "N:$readsect:$writesect");
+               $ERROR = RRDs::error;
+               print "Error in RRD::update for disk: $ERROR\n" if $ERROR;
+       } else {
+               print "Error in RRD::update for disk: no data available\n";
+       }
+}
+
+sub updateifgraph {
+       my $interface = $_[0];
+       my $period    = $_[1];
+
+       RRDs::graph ("$graphs/$interface-$period.png",
+               "--start", "-1$period", "-aPNG", "-i", "-z",
+               "--alt-y-grid", "-w 600", "-h 100",
+               "--color", "SHADEA#EAE9EE",
+               "--color", "SHADEB#EAE9EE",
+               "--color", "BACK#EAE9EE",
+               "-t $tr{'traffic on'} $interface ($tr{'graph per'} $tr{$period})",
+               "-v$tr{'bytes per second'}",
+               "DEF:incoming=$rrdlog/$interface.rrd:incoming:AVERAGE",
+               "DEF:outgoing=$rrdlog/$interface.rrd:outgoing:AVERAGE",
+               "AREA:incoming#00FF00:$tr{'incoming traffic in bytes per second'}\\j",
+               "LINE1:outgoing#0000FF:$tr{'outgoing traffic in bytes per second'}\\j",
+               "GPRINT:incoming:MAX:$tr{'maximal'} $tr{'in'}\\:%8.3lf %sBps",
+               "GPRINT:incoming:AVERAGE:$tr{'average'} $tr{'in'}\\:%8.3lf %sBps",
+               "GPRINT:incoming:LAST:$tr{'current'} $tr{'in'}\\:%8.3lf %sBps\\j",
+               "GPRINT:outgoing:MAX:$tr{'maximal'} $tr{'out'}\\:%8.3lf %sBps",
+               "GPRINT:outgoing:AVERAGE:$tr{'average'} $tr{'out'}\\:%8.3lf %sBps",
+               "GPRINT:outgoing:LAST:$tr{'current'} $tr{'out'}\\:%8.3lf %sBps\\j");
+       $ERROR = RRDs::error;
+       print "Error in RRD::graph for $interface: $ERROR\n" if $ERROR;
+}
+
+sub updateifdata {
+       my $interface = $_[0];
+
+       if ( ! -e "$rrdlog/$interface.rrd") {
+               RRDs::create ("$rrdlog/$interface.rrd", "--step=300",
+                       "DS:incoming:ABSOLUTE:600:0:12500000",
+                       "DS:outgoing:ABSOLUTE:600:0:12500000",
+                       "RRA:AVERAGE:0.5:1:576",
+                       "RRA:AVERAGE:0.5:6:672",
+                       "RRA:AVERAGE:0.5:24:732",
+                       "RRA:AVERAGE:0.5:144:1460");
+               $ERROR = RRDs::error;
+               print "Error in RRD::create for $interface: $ERROR\n" if $ERROR;
+       }
+
+       my $traffic = gettraffic ($interface);
+       RRDs::update ("$rrdlog/$interface.rrd",
+               "-t", "incoming:outgoing", 
+               "N:$traffic");
+       $ERROR = RRDs::error;
+       print "Error in RRD::update for $interface: $ERROR\n" if $ERROR;
+}
+
+## Update ipac logs
+system ('/usr/sbin/fetchipac');
+sleep 8;
+
+###
+### Squid Graphs
+###
+if ( -e "/var/log/squid/access.log") {
+       system ("/usr/bin/squid-graph -o=/home/httpd/html/sgraph --tcp-only < /var/log/squid/access.log >/dev/null 2>&1");
+}
+
+###
+### utf8 conversion
+###
+if ((${Lang::language} eq 'cs') || 
+    (${Lang::language} eq 'hu') || 
+    (${Lang::language} eq 'pl') || 
+    (${Lang::language} eq 'sk')) {
+       # Czech, Hungarian, Polish and Slovak character set
+       foreach my $key(keys %Lang::tr) {
+               from_to($tr{$key}, "utf-8", "iso-8859-2");
+       }
+} elsif (${Lang::language} eq 'tr') {
+       # Turkish
+       foreach my $key(keys %Lang::tr) {
+               from_to($tr{$key}, "utf-8", "iso-8859-9");
+       }
+} else {
+       foreach my $key(keys %Lang::tr) {
+               from_to($tr{$key}, "utf-8", "iso-8859-1"); 
+       }
+}
+
+###
+### System graphs
+###
+updatecpudata();
+updatecpugraph ("day");
+updatecpugraph ("week");
+updatecpugraph ("month");
+updatecpugraph ("year");
+
+updatememdata();
+updatememgraph ("day");
+updatememgraph ("week");
+updatememgraph ("month");
+updatememgraph ("year");
+
+updatediskdata();
+updatediskgraph ("day");
+updatediskgraph ("week");
+updatediskgraph ("month");
+updatediskgraph ("year");
+
+###
+### Network Graphs
+###
+@ipacsum = `/usr/sbin/ipacsum --exact -s 5m 2>/dev/null`;
+if (@ipacsum) {
+       updateifdata  ("GREEN");
+       updateifdata  ("RED");
+       if ($settings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/ ) {
+               updateifdata  ("ORANGE");
+       }
+       if ($settings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/ ) {
+               updateifdata  ("BLUE");
+       }
+}
+if ( -e "$rrdlog/GREEN.rrd") {
+       updateifgraph ("GREEN", "day");
+       updateifgraph ("GREEN", "week");
+       updateifgraph ("GREEN", "month");
+       updateifgraph ("GREEN", "year");
+}
+
+if ( -e "$rrdlog/RED.rrd") {
+       updateifgraph ("RED", "day");
+       updateifgraph ("RED", "week");
+       updateifgraph ("RED", "month");
+       updateifgraph ("RED", "year");
+}
+
+if ($settings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/ && -e "$rrdlog/ORANGE.rrd") {
+       updateifgraph ("ORANGE", "day");
+       updateifgraph ("ORANGE", "week");
+       updateifgraph ("ORANGE", "month");
+       updateifgraph ("ORANGE", "year");
+}
+
+if ($settings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/ && -e "$rrdlog/BLUE.rrd") {
+       updateifgraph ("BLUE", "day");
+       updateifgraph ("BLUE", "week");
+       updateifgraph ("BLUE", "month");
+       updateifgraph ("BLUE", "year");
+}
diff --git a/src/scripts/readhash b/src/scripts/readhash
new file mode 100644 (file)
index 0000000..b3428d4
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# This script reads in variables from a config file, and produces a list of
+# commands to run to set these as shell environment variables, it is
+# intended to be used as follows:
+#
+#   eval $(readhash /var/ipcop/main/settings)
+#
+
+# shell variables must consist of alphanumeric characters and underscores,
+# and begin with an alphabetic character or underscore.
+VARNAME='[A-Za-z_][A-zA-z0-9_]*'
+
+# For the assigned value we only accept a limited number of characters - none
+# of which are shell metachars
+VARCHARS='A-Za-z0-9=/,._@#+-'
+VARVAL="[${VARCHARS}]*"
+
+sed -ne "s/^\(${VARNAME}\)=\(${VARVAL}\)$/\1=\2/p" $1
+
+# Accept space only if it's quoted
+sed -ne "s/^\(${VARNAME}\)=\('[ ${VARCHARS}]*'\)$/\1=\2/p" $1
diff --git a/src/scripts/resetusb b/src/scripts/resetusb
new file mode 100644 (file)
index 0000000..cb35517
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/bash
+#
+#
+
+aliases=`/sbin/modprobe -c | awk '/^alias usb-controller/ { print $3 }'`
+if [ -n "$aliases" -a "$aliases" != "off" ] ; then
+       for alias in $aliases ; do
+               [ "$alias" != "off" ] && /sbin/modprobe -r $alias
+       done
+       /bin/sleep 2
+       for alias in $aliases ; do
+               [ "$alias" != "off" ] && /sbin/modprobe $alias
+       done
+fi
+/bin/sleep 6
diff --git a/src/scripts/setddns.pl b/src/scripts/setddns.pl
new file mode 100644 (file)
index 0000000..b8777a5
--- /dev/null
@@ -0,0 +1,625 @@
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: setddns.pl,v 1.4.2.32 2006/02/07 01:29:47 franck78 Exp $\r
+#\r
+\r
+#close(STDIN);\r
+#close(STDOUT);\r
+#close(STDERR);\r
+\r
+use strict;\r
+use IO::Socket;\r
+use Net::SSLeay;\r
+\r
+require '/var/ipcop/general-functions.pl';\r
+\r
+#Prototypes functions\r
+sub encode_base64 ($;$);\r
+\r
+my %settings;\r
+my $filename = "${General::swroot}/ddns/config";\r
+my $cachefile = "${General::swroot}/ddns/ipcache";\r
+my $ipcache = 0;\r
+my @current = ();\r
+\r
+if (open(FILE, "$filename")) {\r
+    @current = <FILE>;\r
+    close(FILE);\r
+    unless(@current) { \r
+       exit 0; \r
+    }\r
+} else {\r
+    &General::log('Dynamic DNS failure : unable to open config file.');\r
+    exit 0;\r
+}\r
+\r
+&General::readhash("${General::swroot}/ddns/settings", \%settings);\r
+\r
+# ignore monthly update if not in minimize update mode\r
+exit 0 if (($settings{'MINIMIZEUPDATES'} ne 'on') && ($ARGV[1] eq '-m'));\r
+\r
+my $ip;\r
+if (open(IP, "${General::swroot}/red/local-ipaddress")) {\r
+    $ip = <IP>;\r
+    close(IP);\r
+    chomp $ip;\r
+} else {\r
+    &General::log('Dynamic DNS failure : unable to open local-ipaddress file.');\r
+    exit 0;\r
+}\r
+\r
+#If IP is reserved network, we are behind a router. May we ask for our real public IP ?\r
+if ( &General::IpInSubnet ($ip,'10.0.0.0','255.0.0.0') ||\r
+     &General::IpInSubnet ($ip,'172.16.0.0','255.240.0.0') ||\r
+     &General::IpInSubnet ($ip,'192.168.0.0','255.255.0.0')) {\r
+    # We can, but are we authorized by GUI ?\r
+    if ($settings{'BEHINDROUTER'} eq 'FETCH_IP') {\r
+       if ($ARGV[0] eq '-f'){\r
+           $settings{'BEHINDROUTERWAITLOOP'} = -1; # When forced option, fectch PublicIP now\r
+       }\r
+\r
+       # Increment counter modulo 4. When it is zero, fetch ip else exit\r
+       # This divides by 4 the requests to the dyndns server.\r
+       $settings{'BEHINDROUTERWAITLOOP'} = ($settings{'BEHINDROUTERWAITLOOP'}+1) %4;\r
+       &General::writehash("${General::swroot}/ddns/settings", \%settings);\r
+       exit 0 if ( $settings{'BEHINDROUTERWAITLOOP'} ne 0 );\r
+       my $RealIP = &General::FetchPublicIp;\r
+       $ip = (&General::validip ($RealIP) ?  $RealIP : 'unavailable');\r
+       &General::log ("Dynamic DNS public router IP is:$ip");\r
+    }\r
+}\r
+\r
+\r
+if ($ARGV[0] eq '-f') {\r
+       unlink ($cachefile);    # next regular calls will try again if this force update fails.\r
+} else {\r
+       open(IPCACHE, "$cachefile");\r
+       $ipcache = <IPCACHE>;\r
+       close(IPCACHE);\r
+       chomp $ipcache;\r
+}\r
+\r
+if ($ip ne $ipcache) {\r
+       my $id = 0;\r
+       my $success = 0;\r
+       my $line;\r
+       my $lines = @current;\r
+\r
+       foreach $line (@current) {\r
+               $id++;\r
+               chomp($line);\r
+               my @temp = split(/\,/,$line);\r
+               unless ($temp[7] ne "on") {\r
+                       $settings{'SERVICE'} = $temp[0];\r
+                       $settings{'HOSTNAME'} = $temp[1];\r
+                       $settings{'DOMAIN'} = $temp[2];\r
+                       $settings{'PROXY'} = $temp[3];\r
+                       $settings{'WILDCARDS'} = $temp[4];\r
+                       $settings{'LOGIN'} = $temp[5];\r
+                       $settings{'PASSWORD'} = $temp[6];\r
+                       $settings{'ENABLED'} = $temp[7];\r
+\r
+                       #Some connection are very stable (more than 40 days). Finally force\r
+                       #one update / month to avoid account lost\r
+                       #cron call once/week with -f & once/month with -f -m options\r
+                       #minimize update ?\r
+                       if ( ($settings{'MINIMIZEUPDATES'} eq 'on') && ($ARGV[1] ne '-m') ) {\r
+                           if (General::DyndnsServiceSync($ip, $settings{'HOSTNAME'},$settings{'DOMAIN'})) {\r
+                               &General::log ("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} is uptodate [$ip]");\r
+                               $success++;\r
+                               next;           # do not update, go to test next service\r
+                           }\r
+                       }\r
+                       my @service = split(/\./, "$settings{'SERVICE'}");\r
+                       $settings{'SERVICE'} = "$service[0]";\r
+                       if ($settings{'SERVICE'} eq 'no-ip') {\r
+                               open(F, ">${General::swroot}/ddns/noipsettings");\r
+                               flock F, 2;\r
+                               print F "PROXY=" . ($settings{'PROXY'} eq 'on' ? "Y\n" : "N\n");\r
+                               print F "PASSWORD=$settings{'PASSWORD'}\n";\r
+                               print F "NAT=N\n";\r
+                               print F "LOGIN=$settings{'LOGIN'}\n";\r
+                               print F "INTERVAL=1\n";\r
+                               if ($settings{'HOSTNAME'} !~ s/$General::noipprefix//) {\r
+                                   print F "HOSTNAME=$settings{'HOSTNAME'}\n";\r
+                                   print F "GROUP=\n";\r
+                               } else {\r
+                                   print F "HOSTNAME=\n";\r
+                                   print F "GROUP=$settings{'HOSTNAME'}\n";\r
+                               }\r
+                               print F "DOMAIN=$settings{'DOMAIN'}\n";\r
+                               print F "DEVICE=\n";\r
+                               print F "DAEMON=N\n";\r
+                               close(F);\r
+\r
+                               my @ddnscommand = ('/usr/bin/noip','-c',"${General::swroot}/ddns/noipsettings",'-i',"$ip");\r
+\r
+                               my $result = system(@ddnscommand);\r
+                               if ( $result != 0) { \r
+                                       &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : failure");\r
+                               } else {\r
+                                       &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : success");\r
+                                       $success++;\r
+                               }\r
+                       }\r
+\r
+                       elsif ($settings{'SERVICE'} eq 'cjb') {\r
+                           # use proxy ?\r
+                           my %proxysettings;\r
+                           &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+                           if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+                               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+                               Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );\r
+                           }\r
+\r
+                           my ($out, $response) = Net::SSLeay::get_http(  'www.cjb.net',\r
+                                                                           80,\r
+                                                                           "/cgi-bin/dynip.cgi?username=$settings{'LOGIN'}&password=$settings{'PASSWORD'}&ip=$ip",\r
+                                                                           Net::SSLeay::make_headers('User-Agent' => 'Ipcop' )\r
+                                                                        );\r
+\r
+                           if ($response =~ m%HTTP/1\.. 200 OK%) {\r
+                               if ( $out !~ m/has been updated to point to/ ) {\r
+                                   &General::log("Dynamic DNS ip-update for cjb.net ($settings{'LOGIN'}) : failure (bad password or login)");\r
+                               } else {\r
+                                   &General::log("Dynamic DNS ip-update for cjb.net ($settings{'LOGIN'}) : success");\r
+                                   $success++;\r
+                               }\r
+                           } else {\r
+                               &General::log("Dynamic DNS ip-update for cjb.net ($settings{'LOGIN'}) : failure (could not connect to server)");\r
+                           }\r
+                       }\r
+                       elsif ($settings{'SERVICE'} eq 'selfhost') {\r
+                           # use proxy ?\r
+                           my %proxysettings;\r
+                           &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+                           if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+                               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+                               Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );\r
+                           }\r
+\r
+                           my ($out, $response) = Net::SSLeay::get_https(  'carol.selfhost.de',\r
+                                                                           443,\r
+                                                                           "/update?username=$settings{'LOGIN'}&password=$settings{'PASSWORD'}&textmodi=1",\r
+                                                                           Net::SSLeay::make_headers('User-Agent' => 'Ipcop' )\r
+                                                                        );\r
+\r
+                           if ($response =~ m%HTTP/1\.. 200 OK%) {\r
+                               if ( $out !~ m/status=(200|204)/ ) {\r
+                                   $out =~ s/\n/ /g;\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : failure ($out)");\r
+                               } else {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : success");\r
+                                   $success++;\r
+                               }\r
+                           } else {\r
+                               &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : failure (could not connect to server)");\r
+                           }\r
+                       }\r
+                       elsif ($settings{'SERVICE'} eq 'dnspark') {\r
+                           # use proxy ?\r
+                           my %proxysettings;\r
+                           &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+                           if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+                               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+                               Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );\r
+                           }\r
+\r
+                           if ($settings{'HOSTNAME'} eq '') {\r
+                               $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'};\r
+                           } else {\r
+                               $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}";\r
+                           }\r
+\r
+                           my ($out, $response) = Net::SSLeay::get_https(  "www.dnspark.net",\r
+                                                                           443,\r
+                                                                           "/api/dynamic/update.php?hostname=$settings{'HOSTDOMAIN'}&ip=$ip",\r
+                                                                           Net::SSLeay::make_headers('User-Agent' => 'Ipcop',\r
+                                                                                                     'Authorization' => 'Basic ' . encode_base64("$settings{'LOGIN'}:$settings{'PASSWORD'}")\r
+                                                                            )\r
+                                                                        );\r
+                           # Valid response are 'ok'   'nochange'\r
+                           if ($response =~ m%HTTP/1\.. 200 OK%) {\r
+                               if ( $out !~ m/^(ok|nochange)/ ) {\r
+                                   $out =~ s/\n/ /g;\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure ($out)");\r
+                               } else {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : success");\r
+                                   $success++;\r
+                               }\r
+                           } else {\r
+                               &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server, check your credentials)");\r
+                           }\r
+                       }\r
+                       elsif ($settings{'SERVICE'} eq 'enom') {\r
+                           # use proxy ?\r
+                           my %proxysettings;\r
+                           &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+                           if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+                               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+                               Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );\r
+                           }\r
+                           if ($settings{'HOSTNAME'} eq '') {\r
+                               $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'};\r
+                           } else {\r
+                               $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}";\r
+                           }\r
+\r
+                           my ($out, $response) = Net::SSLeay::get_http(  'dynamic.name-services.com',\r
+                                                                           80,\r
+                                                                           "/interface.asp?Command=SetDNSHost&Zone=$settings{'DOMAIN'}&DomainPassword=$settings{'PASSWORD'}&Address=$ip",\r
+                                                                           Net::SSLeay::make_headers('User-Agent' => 'Ipcop' )\r
+                                                                        );\r
+\r
+                           if ($response =~ m%HTTP/1\.. 200 OK%) {\r
+                               #Valid responses from update => ErrCount=0\r
+                               if ( $out !~ m/ErrCount=0/ ) {\r
+                                    $out =~ s/(\n|\x0D)/ /g;\r
+                                   $out =~ /Err1=([\w ]+)  /;\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : failure ($1)");\r
+                               } else {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : success");\r
+                                   $success++;\r
+                               }\r
+                           } else {\r
+                               &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : failure (could not connect to server)");\r
+                           }\r
+                       }\r
+                       elsif ($settings{'SERVICE'} eq 'nsupdate') {\r
+                               # Fetch UI configurable values and assemble the host name.\r
+\r
+                               my $hostName="$settings{'DOMAIN'}";\r
+                               if ($settings{'HOSTNAME'} ne "") {\r
+                                       $hostName="$settings{'HOSTNAME'}.$hostName";\r
+                               }\r
+                               my $keyName=$settings{'LOGIN'};\r
+                               my $keySecret=$settings{'PASSWORD'};\r
+\r
+                               # Use a relatively long TTL value to reduce load on DNS.\r
+                               # Some public Dynamic DNS servers use values around 4 hours,\r
+                               # some use values as low as 60 seconds.\r
+                               # XXX Maybe we could fetch the master value from the server\r
+                               # (not the timed-down version supplied by DNS cache)\r
+\r
+                               my $timeToLive="3600";\r
+\r
+                               # Internal setting that can be used to override the DNS server\r
+                               # where the update is applied. It can be of use when testing\r
+                               # against a private DNS server.\r
\r
+                               my $masterServer="";\r
+\r
+                               # Prepare the nsupdate command script to remove and re-add the\r
+                               # updated A record for the domain.\r
+\r
+                               my $cmdFile="/tmp/nsupdate-$hostName-commands";\r
+                               my $logFile="/tmp/nsupdate-$hostName-result";\r
+                               open(TF, ">$cmdFile");\r
+                               if ($masterServer ne "") {\r
+                                       print TF "server $masterServer\n";\r
+                               }\r
+                               if ($keyName ne "" && $keySecret ne "") {\r
+                                       print TF "key $keyName $keySecret\n";\r
+                               }\r
+                               print TF "update delete $hostName A\n";\r
+                               print TF "update add $hostName $timeToLive A $ip\n";\r
+                               print TF "send\n";\r
+                               close(TF);\r
+\r
+                               # Run nsupdate with -v to use TCP instead of UDP because we're\r
+                               # issuing multiple cmds and potentially long keys, and -d to\r
+                               # get diagnostic result output.\r
+\r
+                               my $result = system("/usr/bin/nsupdate -v -d $cmdFile 2>$logFile");\r
+                               if ($result != 0) {\r
+                                       &General::log("Dynamic DNS ip-update for $hostName : failure");\r
+                                       open(NSLOG, "$logFile");\r
+                                       my @nsLog = <NSLOG>;\r
+                                       close(NSLOG);\r
+                                       my $logLine;\r
+                                       foreach $logLine (@nsLog) {\r
+                                               chomp($logLine);\r
+                                               if ($logLine ne "") {\r
+                                                       &General::log("... $logLine");\r
+                                               }\r
+                                       }\r
+                               } else {\r
+                                       &General::log("Dynamic DNS ip-update for $hostName : success");\r
+                                       $success++;\r
+                               }\r
+                               unlink $cmdFile, $logFile;\r
+                       }\r
+                       elsif ($settings{'SERVICE'} eq 'freedns') {\r
+                           # use proxy ?\r
+                           my %proxysettings;\r
+                           &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+                           if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+                               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+                               Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );\r
+                           }\r
+\r
+                           my ($out, $response) = Net::SSLeay::get_https(  'freedns.afraid.org',\r
+                                                                           443,\r
+                                                                           "/dynamic/update.php?$settings{'LOGIN'}",\r
+                                                                           Net::SSLeay::make_headers('User-Agent' => 'Ipcop' )\r
+                                                                        );\r
+                           #Valid responses from service are:\r
+                            #Updated n host(s) <domain>\r
+                            #ERROR: <ip> has not changed.\r
+                           if ($response =~ m%HTTP/1\.. 200 OK%) {\r
+                               #Valid responses from update => ErrCount=0\r
+                               if ( $out !~ m/(^Updated|Address .* has not changed)/ig ) {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : failure ($out)");\r
+                               } else {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : success");\r
+                                   $success++;\r
+                               }\r
+                           } else {\r
+                               &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : failure (could not connect to server)");\r
+                           }\r
+                       }\r
+                       elsif ($settings{'SERVICE'} eq 'regfish') {\r
+                           # use proxy ?\r
+                           my %proxysettings;\r
+                           &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+                           if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+                               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+                               Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );\r
+                           }\r
+\r
+\r
+                           my ($out, $response) = Net::SSLeay::get_https(  'www.regfish.com',\r
+                                                                           443,\r
+                                                                           "/dyndns/2/?fqdn=$settings{'DOMAIN'}&ipv4=$ip&forcehost=1&authtype=secure&token=$settings{'LOGIN'}",\r
+                                                                           Net::SSLeay::make_headers('User-Agent' => 'Ipcop' )\r
+                                                                        );\r
+                           #Valid responses from service are:\r
+                           #success|100|update succeeded!\r
+                           #success|101|no update needed at this time..\r
+                           if ($response =~ m%HTTP/1\.. 200 OK%) {\r
+                               if ( $out !~ m/(success\|(100|101)\|)/ig ) {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'DOMAIN'} : failure ($out)");\r
+                               } else {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'DOMAIN'} : success");\r
+                                   $success++;\r
+                               }\r
+                           } else {\r
+                               &General::log("Dynamic DNS ip-update for $settings{'DOMAIN'} : failure (could not connect to server)");\r
+                           }\r
+                       }\r
+                       elsif ($settings{'SERVICE'} eq 'ovh') {\r
+                               my %proxysettings;\r
+                               &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+\r
+                               my $peer = 'www.ovh.com';\r
+                               my $peerport = 80;\r
+\r
+                               if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+                                       ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+                               }\r
+\r
+                               my $sock;\r
+                               unless($sock = new IO::Socket::INET (PeerAddr => $peer, PeerPort => $peerport, Proto => 'tcp', Timeout => 5)) {\r
+                                       &General::log("Dynamic DNS failure : could not connect to $peer:$peerport: $@");\r
+                                       next;\r
+                               }\r
+\r
+                               if ($settings{'HOSTNAME'} eq '') {\r
+                                       $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'};\r
+                               } else {\r
+                                       $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}";\r
+                               }\r
+\r
+                               my ($GET_CMD, $code64);\r
+                               $GET_CMD  = "GET http://www.ovh.com/nic/update?system=dyndns&hostname=$settings{'HOSTDOMAIN'}&myip=$ip HTTP/1.1\r\n";\r
+                               $GET_CMD .= "Host: www.ovh.com\r\n";\r
+                               chomp($code64 = encode_base64("$settings{'LOGIN'}:$settings{'PASSWORD'}"));\r
+                               $GET_CMD .= "Authorization: Basic $code64\r\n";\r
+                               $GET_CMD .= "User-Agent: ipcop\r\n";\r
+                              #$GET_CMD .= "Content-Type: application/x-www-form-urlencoded\r\n";\r
+                               $GET_CMD .= "\r\n";\r
+                               print $sock "$GET_CMD";\r
+                                                                                                                                                                                                                               \r
+                               my $out = '';\r
+                               while(<$sock>) {\r
+                                       $out .= $_;\r
+                               }\r
+                               close($sock);\r
+\r
+                                #HTTP response => error (in  Title tag) else text response\r
+                               #Valid responses from service:good,nochg  (ez-ipupdate like)\r
+                               #Should use ez-ipdate but "system=dyndns" is not present\r
+                               if ( $out =~ m/<Title>(.*)<\/Title>/ig ) {\r
+                                       &General::log("Dynamic DNS ovh.com : failure ($1)");\r
+                               }\r
+                               elsif ($out !~ m/good |nochg /ig) {\r
+                                       $out =~ s/.+?\015?\012\015?\012//s;    # header HTTP\r
+                                       my @out = split("\r", $out);\r
+                                       &General::log("Dynamic DNS ip-update for $settings{'DOMAIN'} : failure ($out[1])");\r
+                               } else {\r
+                                       &General::log("Dynamic DNS ip-update for $settings{'DOMAIN'} : success");\r
+                                       $success++;\r
+                               }\r
+                       }\r
+                       elsif ($settings{'SERVICE'} eq 'dtdns') {\r
+                           # use proxy ?\r
+                           my %proxysettings;\r
+                           &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+                           if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+                               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+                               Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );\r
+                           }\r
+\r
+                           if ($settings{'HOSTNAME'} eq '') {\r
+                               $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'};\r
+                           } else {\r
+                               $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}";\r
+                           }\r
+\r
+                           my ($out, $response) = Net::SSLeay::get_http(  'www.dtdns.com',\r
+                                                                           80,\r
+                                                                           "/api/autodns.cfm?id=$settings{'HOSTDOMAIN'}&pw=$settings{'PASSWORD'}",\r
+                                                                           Net::SSLeay::make_headers('User-Agent' => 'Ipcop' )\r
+                                                                        );\r
+                           #Valid responses from service are:\r
+                           #   now points to\r
+                           #\r
+                           if ($response =~ m%HTTP/1\.. 200 OK%) {\r
+                               if ( $out !~ m/Host .* now points to/ig ) {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure ($out)");\r
+                               } else {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : success");\r
+                                   $success++;\r
+                               }\r
+                           } else {\r
+                               &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server)");\r
+                           }\r
+                       }\r
+                       elsif ($settings{'SERVICE'} eq 'dynu') {\r
+                           # use proxy ?\r
+                           my %proxysettings;\r
+                           &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+                           if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+                               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+                               Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );\r
+                           }\r
+\r
+                           if ($settings{'HOSTNAME'} eq '') {\r
+                               $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'};\r
+                           } else {\r
+                               $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}";\r
+                           }\r
+\r
+                           my ($out, $response) = Net::SSLeay::get_http(  'dynserv.ca',\r
+                                                                           80,\r
+                                                                           "/dyn/dynengine.cgi?func=set&name=$settings{'LOGIN'}&pass=$settings{'PASSWORD'}&ip=$ip&domain=$settings{'DOMAIN'}",\r
+                                                                           Net::SSLeay::make_headers('User-Agent' => 'Ipcop' )\r
+                                                                        );\r
+                           #Valid responses from service are:\r
+                           # 02 == Domain already exists, refreshing data for ... => xxx.xxx.xxx.xxx\r
+                           #\r
+                           if ($response =~ m%HTTP/1\.. 200 OK%) {\r
+                               if ( $out !~ m/Domain already exists, refreshing data for/ig ) {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure ($out)");\r
+                               } else {\r
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : success");\r
+                                   $success++;\r
+                               }\r
+                           } else {\r
+                               &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server)");\r
+                           }\r
+                       } else {\r
+                               if ($settings{'WILDCARDS'} eq 'on') {\r
+                                   $settings{'WILDCARDS'} = '-w';\r
+                               } else {\r
+                                   $settings{'WILDCARDS'} = '';\r
+                               }\r
+\r
+                               if (($settings{'SERVICE'} eq 'dyndns-custom' ||\r
+                                   $settings{'SERVICE'} eq 'easydns' ||  \r
+                                   $settings{'SERVICE'} eq 'zoneedit') && $settings{'HOSTNAME'} eq '') {\r
+                                   $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'};\r
+                               } else {\r
+                                   $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}";\r
+                               }\r
+\r
+                               my @ddnscommand = ('/usr/bin/ez-ipupdate', '-a', "$ip", '-S', "$settings{'SERVICE'}", '-u', "$settings{'LOGIN'}:$settings{'PASSWORD'}", '-h', "$settings{'HOSTDOMAIN'}", "$settings{'WILDCARDS'}", '-q');\r
+\r
+                               my $result = system(@ddnscommand);\r
+                               if ( $result != 0) { \r
+                                       &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'}: failure");\r
+                               } else {\r
+                                       &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'}: success");\r
+                                       $success++;\r
+                               }\r
+                       }\r
+               } else {\r
+                       # If a line is disabled, then we should discount it\r
+                       $lines--;\r
+               }\r
+       }\r
+\r
+       if ($lines == $success) {\r
+               open(IPCACHE, ">$cachefile");\r
+               flock IPCACHE, 2;\r
+               print IPCACHE $ip;\r
+               close(IPCACHE);\r
+               exit 1;\r
+       }\r
+       \r
+}\r
+exit 0;\r
+\r
+# Extracted from Base64.pm\r
+sub encode_base64 ($;$) {\r
+    my $res = "";\r
+    my $eol = $_[1];\r
+    $eol = "\n" unless defined $eol;\r
+    pos($_[0]) = 0;                          # ensure start at the beginning\r
+    while ($_[0] =~ /(.{1,45})/gs) {\r
+        $res .= substr(pack('u', $1), 1);\r
+        chop($res);\r
+    }\r
+    $res =~ tr|` -_|AA-Za-z0-9+/|;               # `# help emacs\r
+    # fix padding at the end\r
+    my $padding = (3 - length($_[0]) % 3) % 3;\r
+    $res =~ s/.{$padding}$/'=' x $padding/e if $padding;\r
+    # break encoded string into lines of no more than 76 characters each\r
+    if (length $eol) {\r
+        $res =~ s/(.{1,76})/$1$eol/g;\r
+    }\r
+    $res;\r
+}\r
+\r
+\r
+\r
+__END__\r
+old code for selfhost.de\r
+\r
+                               my %proxysettings;\r
+                               &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);\r
+\r
+                               my $peer = 'carol.selfhost.de';\r
+                               my $peerport = 80;\r
+\r
+                               if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+                                   ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+                               }\r
+\r
+                               my $sock;\r
+                               unless($sock = new IO::Socket::INET (PeerAddr => $peer, PeerPort => $peerport, Proto => 'tcp', Timeout => 5)) {\r
+                                   die "Could not connect to $peer:$peerport: $@";\r
+                                   return 1;\r
+                               }\r
+\r
+                               my $GET_CMD;\r
+                               $GET_CMD  = "GET https://carol.selfhost.de/update?username=$settings{'LOGIN'}&password=$settings{'PASSWORD'}&myip=$ip&textmodi=1 HTTP/1.1\r\n";\r
+                               $GET_CMD .= "Host: carol.selfhost.de\r\n";\r
+                               $GET_CMD .= "User-Agent: ipcop\r\n";\r
+                               $GET_CMD .= "Connection: close\r\n\r\n";\r
+                               print $sock "$GET_CMD";\r
+\r
+                               my $out = '';\r
+                               while(<$sock>) {\r
+                                       $out .= $_;\r
+                               }\r
+                               close($sock);\r
+\r
+                               if ( $out !~ m/status=(200|204)/ ) {\r
+                                       #cleanup http response...\r
+                                       $out =~ s/.+?\015?\012\015?\012//s;    # header HTTP\r
+                                       my @out = split("\r", $out);\r
+                                       &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : failure ($out[1])");\r
+                               } else {\r
+                                       &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : success");\r
+                                       $success++;\r
+                               }\r
+\r
+\r
+                       \r
diff --git a/src/scripts/setreservedports b/src/scripts/setreservedports
new file mode 100644 (file)
index 0000000..1a219ac
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/sh
+#
+# $Id: setreservedports,v 1.1.2.3 2005/09/07 21:38:50 eoberlander Exp $
+# Change https server port only at this time,
+# it will be integrate in web interface later
+# suggested port for https interface could be 5445
+
+SSH=222
+
+if [ $# -lt 1 ]; then
+       echo "Give an https port number, recommended value is non-assigned port 5445"
+else
+       if [ "$1" -lt "445" -o "$1" -gt "65535" ]; then
+               echo "support only a port value from 445 to 65535"
+               echo "recommended value is non-assigned port 5445"
+       else
+               HTTPS=$1
+               /bin/sed -i -e "s+# TCP 67,68,81.*$+# TCP 67,68,81,$SSH,$HTTPS+" \
+               -e "s+my @tcp_reserved = (81.*$+my @tcp_reserved = (81,$SSH,$HTTPS);+" \
+               /home/httpd/cgi-bin/portfw.cgi
+               
+               # only the second Listen only has {3,5} digits if the first is 81
+               /bin/sed -i -e "+s+Listen [0-9]\{3,5\}$+Listen $HTTPS+" \
+               -e "s+<VirtualHost _default_.*$+<VirtualHost _default_:$HTTPS>+" \
+               /etc/httpd/conf/httpd.conf
+               
+               /bin/sed -i -e "s+:[0-9]\{3,5\}/\$ENV{'PATH_INFO'}+:$HTTPS/\$ENV{'PATH_INFO'}+" \
+               /var/ipcop/header.pl
+               
+               /bin/sed -i -e "s+acl IPCop_https port.*$+acl IPCop_https port $HTTPS+" \
+               /var/ipcop/proxy/acl
+               /bin/chown nobody:nobody /var/ipcop/proxy/acl
+               
+               /bin/sed -i -e "s+acl IPCop_https port.*$+acl IPCop_https port $HTTPS+" \
+               /var/ipcop/proxy/squid.conf
+               /bin/chown nobody:nobody /var/ipcop/proxy/squid.conf
+               
+               # restart everything impacted
+               /bin/killall httpd
+               sleep 2
+               /usr/sbin/httpd
+               /usr/local/bin/restartsquid
+               /usr/bin/logger -s -p local0.info "$0 :https port shift to $HTTPS"
+       fi
+fi
diff --git a/src/scripts/settime b/src/scripts/settime
new file mode 100644 (file)
index 0000000..e0869f2
--- /dev/null
@@ -0,0 +1,84 @@
+#!/bin/sh
+#
+# IPCop CGIs
+#
+# This file is part of the IPCop Project
+# 
+# This code is distributed under the terms of the GPL
+#
+# (c) Eric Oberlander June 2002
+# (c) Eric Oberlander December 2002 - internationalisation added
+#
+# /usr/local/bin/settime
+
+ongreen=1
+green=$(cat /var/ipcop/ethernet/settings | grep GREEN_NETADDRESS)
+if [ -z "$green" ]; then
+       :               # no Green subnet
+else
+       green=${green##*=}; green="${green%.*}.[0-9]"
+       if [ -n "$(cat /var/ipcop/time/settime.conf | grep $green)" ]; then
+               ongreen=0       # NTP on Green
+       fi
+fi
+
+onorange=1
+orange=$(cat /var/ipcop/ethernet/settings | grep ORANGE_NETADDRESS)
+if [ -z "$orange" ]; then
+       :               # no Orange subnet
+else
+       orange=${orange##*=}; orange="${orange%.*}.[0-9]"
+       if [ -n "$(cat /var/ipcop/time/settime.conf | grep $orange)" ]; then
+               onorange=0      # NTP on Orange
+       fi
+fi
+
+# find out language
+tlanguage=$(cat /var/ipcop/main/settings | grep LANGUAGE)
+tlanguage=${tlanguage##*=}
+
+if [ -n "$1" ]; then
+       if [ -e /var/ipcop/red/active ] || [ "$ongreen" -eq 0 ] || [ "$onorange" -eq 0 ]; then
+               /usr/bin/ntpdate -su $1 $2
+               ntpdatetest=$?
+
+               if [ "$ntpdatetest" -eq 0 ]; then
+                       case $tlanguage in
+                               en ) date "+%X %Z on %d %B %Y" > /var/ipcop/time/lastset ;
+                                       logger -t ipcop "NTP synchronisation event" ;;
+                               da ) date "+%k:%M:%S på %d/%m/%y" > /var/ipcop/time/lastset ;
+                                       logger -t ipcop "NTP synkronisering" ;;
+                               de ) date "+%X Uhr am %d.%m.%Y" > /var/ipcop/time/lastset ;
+                                       logger -t ipcop "NTP Synchronisierung" ;;
+                               fr ) date "+%X le %e/%m/%y" > /var/ipcop/time/lastset ;
+                                       logger -t ipcop "synchronisation NTP" ;;
+                               it ) date "+%X il %d-%m-%Y" > /var/ipcop/time/lastset ;
+                                       logger -t ipcop "sincronizzazione NTP" ;;
+                               nl ) date "+%X %e-%m-%Y" > /var/ipcop/time/lastset ;
+                                       logger -t ipcop "NTP synchronisatie" ;;
+                               no ) date "+%X på %d-%m-%y" > /var/ipcop/time/lastset ;
+                                       logger -t ipcop "NTP synkronisering" ;;
+                               sv ) date "+%H.%M.%S på %y-%m-%d" > /var/ipcop/time/lastset ;
+                                       logger -t ipcop "NTP synkronisering" ;;
+                               es ) date "+%X %e/%-m/%y" > /var/ipcop/time/lastset ;
+                                       logger -t ipcop "NTP sincronizado" ;;
+                               *  ) date "+%X %Z, %Y-%m-%d" > /var/ipcop/time/lastset ;
+                                       logger -t ipcop "NTP synchronisation" ;;
+                       esac
+
+                       /sbin/hwclock --systohc
+                       rm -f /var/ipcop/time/settimenow
+                       # reset counter variable
+                       cp /var/ipcop/time/counter.conf /var/ipcop/time/counter
+               else
+                       case $tlanguage in
+                               de ) logger -t ipcop "ntpdate fehlerhaft" ;;
+                               fr ) logger -t ipcop "ntpdate erreur" ;;
+                               it ) logger -t ipcop "ntpdate errato" ;;
+                               *  ) logger -t ipcop "ntpdate error" ;;
+                       esac
+               fi
+       fi              
+else
+       echo Missing parameter
+fi
diff --git a/src/scripts/timecheck b/src/scripts/timecheck
new file mode 100644 (file)
index 0000000..4778a3f
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# IPCop CGIs
+#
+# This file is part of the IPCop Project
+# 
+# This code is distributed under the terms of the GPL
+#
+# (c) Eric Oberlander June 2002
+#
+# /usr/local/bin/timecheck
+
+if [ -e /var/ipcop/time/enable ]; then
+       if [ $(cat /var/ipcop/time/settings | grep period) ] && [ -e /var/ipcop/time/counter ]; then
+               if [ $(cat /var/ipcop/time/counter) -gt 0 ]; then
+                       echo $(($(cat /var/ipcop/time/counter)-5)) > /var/ipcop/time/counter
+               else
+                       touch /var/ipcop/time/settimenow
+                       rm -f /var/ipcop/time/counter
+               fi
+       else
+               # EAO added 2003-08-14 for v1.3.1
+               # if settings are restored from a backup
+               # /var/ipcop/time/counter will not exist
+               if [ $(cat /var/ipcop/time/settings | grep periodic) ]; then
+                       touch /var/ipcop/time/settimenow
+               fi
+       fi
+
+       if [ -e /var/ipcop/time/settimenow ]; then
+               if      [ -e /var/ipcop/time/settime.conf ]; then
+                       /usr/local/bin/settime $(cat /var/ipcop/time/settime.conf)
+               fi
+       fi
+fi             
diff --git a/src/scripts/tunerrd.pl b/src/scripts/tunerrd.pl
new file mode 100644 (file)
index 0000000..758f717
--- /dev/null
@@ -0,0 +1,34 @@
+#!/usr/bin/perl\r
+\r
+use RRDs;\r
+\r
+# Settings\r
+my $rrdlog = "/var/log/rrd";\r
+$ENV{PATH}="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin";\r
+\r
+RRDs::tune ("$rrdlog/cpu.rrd",\r
+"-h", "user:600",\r
+"-h", "system:600",\r
+"-h", "idle:600");\r
+\r
+RRDs::tune ("$rrdlog/mem.rrd",\r
+"-h", "memused:600",\r
+"-h", "memfree:600",\r
+"-h", "memshared:600",\r
+"-h", "membuffers:600",\r
+"-h", "memcache:600",\r
+"-h", "swapused:600",\r
+"-h", "swapfree:600");\r
+\r
+RRDs::tune ("$rrdlog/disk.rrd",\r
+"-h", "readsect:600",\r
+"-h", "writesect:600");\r
+\r
+RRDs::tune ("$rrdlog/RED.rrd",\r
+"-h", "incoming:600",\r
+"-h", "outgoing:600");\r
+\r
+RRDs::tune ("$rrdlog/GREEN.rrd",\r
+"-h", "incoming:600",\r
+"-h", "outgoing:600");\r
+# end of script\r
diff --git a/src/scripts/updatelists.pl b/src/scripts/updatelists.pl
new file mode 100644 (file)
index 0000000..9b534d8
--- /dev/null
@@ -0,0 +1,42 @@
+#!/usr/bin/perl\r
+\r
+use strict;\r
+use LWP::UserAgent;\r
+require "CONFIG_ROOT/general-functions.pl";\r
+\r
+my @this;\r
+my $return = &downloadlist();\r
+if($return && $return->is_success) {\r
+       unless(open(LIST, ">CONFIG_ROOT/patches/available")) {\r
+               die "Could not open available lists database.";\r
+       }\r
+       flock LIST, 2;\r
+       @this = split(/----START LIST----\n/,$return->content);\r
+       print LIST $this[1];\r
+       close(LIST);\r
+} else {\r
+       die "Could not download patches list.";\r
+}\r
+\r
+sub downloadlist {\r
+       unless(-e "CONFIG_ROOT/red/active") {\r
+               die "Not connected.";\r
+       }\r
+\r
+       my $downloader = LWP::UserAgent->new;\r
+       $downloader->timeout(5);\r
+\r
+       my %proxysettings;\r
+       &General::readhash("CONFIG_ROOT/proxy/settings", \%proxysettings);\r
+\r
+       if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
+               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
+               if ($proxysettings{'UPSTREAM_USER'}) {\r
+                       $downloader->proxy("http","http://$proxysettings{'UPSTREAM_USER'}:$proxysettings{'UPSTREAM_PASSWORD'}@"."$peer:$peerport/");\r
+               } else {\r
+                       $downloader->proxy("http","http://$peer:$peerport/");\r
+               }\r
+       }\r
+\r
+       return $downloader->get("http://www.ipcop.org/patches/${General::version}", 'Cache-Control', 'no-cache');\r
+}\r
diff --git a/src/scripts/updatesetup b/src/scripts/updatesetup
new file mode 100644 (file)
index 0000000..45054a2
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+UPGRADEVERSION="1.4.x" # configured by ./make.sh newupdate
+PREVIOUSVERSION="1.4."$((`echo $UPGRADEVERSION | /usr/bin/cut -f3 -d '.'`-1))
+echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing."
+
+CURRENTVERSION=`perl -e "require '/var/ipcop/general-functions.pl';print \\$General::version;"`
+if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then
+       echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+# general-functions might not be overwrited by patch...
+/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipcop/general-functions.pl
+
+/bin/tar -zxpf patch.tar.gz -C /
+
+#build cachelang file after all "lang/*.pl" updates
+perl -e "require '/var/ipcop/lang.pl'; &Lang::BuildCacheLang"
+
+killall mingetty  #redisplay correct version
+echo "end of $UPGRADEVERSION update"
diff --git a/src/uClibc/CVS/Entries b/src/uClibc/CVS/Entries
new file mode 100644 (file)
index 0000000..f5bd9d0
--- /dev/null
@@ -0,0 +1,3 @@
+/Makefile/1.4.2.1/Tue Apr 20 12:42:54 2004//TIPCOP_v1_4_0
+D/make////
+D/sources////
diff --git a/src/uClibc/CVS/Repository b/src/uClibc/CVS/Repository
new file mode 100644 (file)
index 0000000..2d421d5
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/uClibc
diff --git a/src/uClibc/CVS/Root b/src/uClibc/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/uClibc/CVS/Tag b/src/uClibc/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/uClibc/Makefile b/src/uClibc/Makefile
new file mode 100644 (file)
index 0000000..b9c847e
--- /dev/null
@@ -0,0 +1,238 @@
+# Makefile for to build gcc for uClibc
+#
+# Copyright (C) 2002-2003 Erik Andersen <andersen@uclibc.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
+#
+
+#############################################################
+#
+# EDIT this stuff to suit your system and preferences
+#
+# Use := when possible to get precomputation, thereby 
+# speeding up the build process.
+#
+#############################################################
+
+# What sortof target system shall we compile this for?
+ARCH:=i386
+#ARCH:=arm
+#ARCH:=mips
+#ARCH:=mipsel
+# Possible issues remaining with powerpc and soft float.
+#ARCH:=powerpc
+#ARCH:=sh4
+# Busybox link failing due to needing libgcc functions that are statics.
+#ARCH:=cris
+
+# The following currently fail to build since no shared lib support.
+#ARCH:=sh64
+#ARCH:=m68k
+#ARCH:=v850
+#ARCH:=sparc
+#ARCH:=whatever
+
+# Enable this to use the uClibc daily snapshot instead of a released
+# version.  Daily snapshots may contain new features and bugfixes. Or
+# they may not even compile at all, depending on what Erik is doing...
+USE_UCLIBC_SNAPSHOT:=false
+
+# Enable this to use the busybox daily snapshot instead of a released
+# version.  Daily snapshots may contain new features and bugfixes. Or
+# they may not even compile at all....
+USE_BUSYBOX_SNAPSHOT:=true
+
+# Enable large file (files > 2 GB) support
+BUILD_WITH_LARGEFILE:=true
+
+# Command used to download source code
+WGET:=wget --passive-ftp
+
+# Soft floating point options.
+# Notes:
+#   Currently builds with gcc 3.3 for i386, arm, mips, mipsel.
+#   Only tested with multilib enabled.
+#   For i386, long double is the same as double (64 bits).  While this
+#      is unusual for x86, it seemed the best approach considering the
+#      limitations in the gcc floating point emulation library.
+#   For arm, soft float uses the usual libfloat routines.
+#   The uClibc built will support _only_ applications compiled with the
+#      -msoft-float flag.  To avoid CFLAGS problems, you may want to use
+#      scripts similar to those in the build*/staging_dir/bin directory.
+# (Un)comment the appropriate line below.
+#SOFT_FLOAT:=true
+SOFT_FLOAT:=false
+
+# Any additional gcc options you may want to include....
+EXTRA_GCC_CONFIG_OPTIONS:=
+
+# Enable the following if you want locale/gettext/i18n support.
+# NOTE!  Currently the pregnerated locale stuff only works for x86!
+#ENABLE_LOCALE:=true
+ENABLE_LOCALE:=false
+
+# If you want multilib enabled, enable this...
+MULTILIB:=--enable-multilib
+
+# Build/install c++ compiler and libstdc++?
+INSTALL_LIBSTDCPP:=false
+
+# For SMP machines some stuff can be run in parallel
+JLEVEL=-j3
+
+#############################################################
+#
+# You should probably leave this stuff alone unless you know 
+# what you are doing.
+#
+#############################################################
+USE_UCLIBC_TOOLCHAIN:=true
+TARGETS:=uclibc-configured binutils gcc3_3
+
+# Optimize toolchain for which type of CPU?
+# WARNING!!!  CURRENTLY BROKEN!!! LEAVE IT AS $(ARCH)!!!
+OPTIMIZE_FOR_CPU=$(ARCH)
+
+ifeq ($(SOFT_FLOAT),true)
+SOFT_FLOAT_CONFIG_OPTION:=--without-float
+TARGET_SOFT_FLOAT:=-msoft-float
+ARCH_FPU_SUFFIX:=_nofpu
+else
+SOFT_FLOAT_CONFIG_OPTION:=
+TARGET_SOFT_FLOAT:=
+ARCH_FPU_SUFFIX:=
+endif
+
+ifeq ($(ENABLE_LOCALE),true)
+EXTRA_GCC_CONFIG_OPTIONS += --enable-clocale=gnu
+endif
+
+# WARNING -- uClibc currently disables large file support on cris.
+ifeq ("$(strip $(ARCH))","cris")
+BUILD_WITH_LARGEFILE:=false
+endif
+
+ifneq ($(BUILD_WITH_LARGEFILE),true)
+DISABLE_LARGEFILE= --disable-largefile 
+endif
+TARGET_OPTIMIZATION=-Os
+TARGET_DEBUGGING= #-g
+TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) $(TARGET_SOFT_FLOAT)
+
+HOSTCC:=gcc
+SED:=sed -i -e
+BASE_DIR:=${shell pwd}
+SOURCE_DIR:=$(BASE_DIR)/sources
+#DL_DIR:=$(SOURCE_DIR)/dl
+DL_DIR:=/usr/src/cache
+PATCH_DIR=$(SOURCE_DIR)/patches
+#BUILD_DIR=$(BASE_DIR)/toolchain_$(ARCH)$(ARCH_FPU_SUFFIX)
+BUILD_DIR=/opt/$(ARCH)-uClibc
+STAGING_DIR=$(BUILD_DIR)
+TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)
+TARGET_PATH=/usr/local/bin:$(STAGING_DIR)/bin:/bin:/sbin:/usr/bin:/usr/sbin
+#TARGET_CROSS=$(STAGING_DIR)/bin/$(ARCH)-uclibc-
+TARGET_CROSS=$(STAGING_DIR)/bin/$(ARCH)-linux-
+TARGET_CC=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT)
+STRIP=$(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note
+#STRIP:=/bin/true
+IMAGE:=$(BASE_DIR)/root_fs_$(ARCH)$(ARCH_FPU_SUFFIX)
+GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
+#KERNEL_CROSS=$(STAGING_DIR)/bin/$(ARCH)-uclibc-
+KERNEL_CROSS=$(STAGING_DIR)/bin/$(ARCH)-linux-
+HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
+       -e 's/sparc.*/sparc/' \
+       -e 's/arm.*/arm/g' \
+       -e 's/m68k.*/m68k/' \
+       -e 's/alpha.*/alpha/' \
+       -e 's/ppc/powerpc/g' \
+       -e 's/v850.*/v850/g' \
+       -e 's/sh[234]/sh/' \
+       -e 's/mips-.*/mips/' \
+       -e 's/mipsel-.*/mipsel/' \
+       -e 's/cris.*/cris/' \
+       -e 's/i[3-9]86/i386/' \
+       )
+GNU_HOST_NAME:=$(HOST_ARCH)-pc-linux-gnu
+TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
+               AR=$(TARGET_CROSS)ar \
+               AS=$(TARGET_CROSS)as \
+               LD=$(TARGET_CROSS)ld \
+               NM=$(TARGET_CROSS)nm \
+               CC=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
+               GCC=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
+               CXX=$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) \
+               RANLIB=$(TARGET_CROSS)ranlib
+ifeq ($(ENABLE_LOCALE),true)
+DISABLE_NLS:=
+else
+DISABLE_NLS:=--disable-nls
+endif
+
+
+all:   world
+
+TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
+TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS))
+TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
+
+world: $(DL_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGETS)
+
+.PHONY: all world clean dirclean distclean source $(TARGETS) \
+       $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE)
+
+include make/*.mk
+
+#############################################################
+#
+# staging and target directories do NOT list these as 
+# dependancies anywhere else
+#
+#############################################################
+$(DL_DIR):
+       mkdir $(DL_DIR)
+
+$(STAGING_DIR):
+       rm -rf $(STAGING_DIR)
+       mkdir -p $(BUILD_DIR)
+       mkdir -p $(TOOL_BUILD_DIR)
+       mkdir -p $(STAGING_DIR)/lib
+       mkdir -p $(STAGING_DIR)/usr
+#      mkdir -p $(STAGING_DIR)/include
+       ln -fs ../lib $(STAGING_DIR)/usr/lib
+
+source: $(TARGETS_SOURCE)
+
+#############################################################
+#
+# Cleanup and misc junk
+#
+#############################################################
+clean: $(TARGETS_CLEAN)
+       rm -rf $(STAGING_DIR) $(IMAGE)
+
+dirclean: $(TARGETS_DIRCLEAN)
+       rm -rf $(STAGING_DIR) $(IMAGE)
+
+distclean:
+       rm -rf $(DL_DIR) $(BUILD_DIR) $(LINUX_KERNEL) $(IMAGE)
+
+sourceball: 
+       rm -rf $(BUILD_DIR)
+       set -e; \
+       cd ..; \
+       rm -f buildroot.tar.bz2; \
+       tar -cvf buildroot.tar buildroot; \
+       bzip2 -9 buildroot.tar; \
diff --git a/src/uClibc/make/CVS/Entries b/src/uClibc/make/CVS/Entries
new file mode 100644 (file)
index 0000000..a847c14
--- /dev/null
@@ -0,0 +1,4 @@
+/binutils.mk/1.1.2.1/Thu Jul  1 22:24:28 2004//TIPCOP_v1_4_0
+/gcc-3.3.mk/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/uclibc.mk/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+D
diff --git a/src/uClibc/make/CVS/Repository b/src/uClibc/make/CVS/Repository
new file mode 100644 (file)
index 0000000..d64b14f
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/uClibc/make
diff --git a/src/uClibc/make/CVS/Root b/src/uClibc/make/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/uClibc/make/CVS/Tag b/src/uClibc/make/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/uClibc/make/binutils.mk b/src/uClibc/make/binutils.mk
new file mode 100644 (file)
index 0000000..09b5b67
--- /dev/null
@@ -0,0 +1,209 @@
+#############################################################
+#
+# build binutils for use on the host system
+#
+#############################################################
+#BINUTILS_SITE:=http://ftp.kernel.org/pub/linux/devel/binutils
+BINUTILS_SOURCE:=binutils-2.15.90.0.3.tar.bz2
+BINUTILS_DIR:=$(TOOL_BUILD_DIR)/binutils-2.15.90.0.3
+BINUTILS_CAT:=bzcat
+
+BINUTILS_DIR1:=$(TOOL_BUILD_DIR)/binutils-build
+
+$(DL_DIR)/$(BINUTILS_SOURCE):
+#      $(WGET) -P $(DL_DIR) $(BINUTILS_SITE)/$(BINUTILS_SOURCE)
+
+$(BINUTILS_DIR)/.unpacked: $(DL_DIR)/$(BINUTILS_SOURCE)
+       mkdir -p $(TOOL_BUILD_DIR)
+       mkdir -p $(DL_DIR)
+       mkdir -p $(STAGING_DIR)
+       mkdir -p $(STAGING_DIR)/lib/gcc-lib
+       mkdir -p $(STAGING_DIR)/usr/bin;
+       mkdir -p $(STAGING_DIR)/$(GNU_TARGET_NAME)/
+       (cd $(STAGING_DIR)/$(GNU_TARGET_NAME); ln -fs ../lib)
+       (cd $(STAGING_DIR)/$(GNU_TARGET_NAME); ln -fs ../include)
+       (cd $(STAGING_DIR)/$(GNU_TARGET_NAME); ln -fs ../include sys-include)
+       $(BINUTILS_CAT) $(DL_DIR)/$(BINUTILS_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf -
+       touch $(BINUTILS_DIR)/.unpacked
+
+$(BINUTILS_DIR)/.patched: $(BINUTILS_DIR)/.unpacked
+       # Apply any files named binutils-*.patch from the source directory to binutils
+       $(SOURCE_DIR)/patch-kernel.sh $(BINUTILS_DIR) $(SOURCE_DIR) binutils-*.patch
+       touch $(BINUTILS_DIR)/.patched
+
+$(BINUTILS_DIR1)/.configured: $(BINUTILS_DIR)/.patched
+       mkdir -p $(BINUTILS_DIR1)
+       (cd $(BINUTILS_DIR1); CC="$(HOSTCC)" \
+               CC_FOR_HOST="$(HOSTCC)" \
+               CXX_FOR_HOST="$(HOSTCC)" \
+               LDFLAGS="$(HOSTLDFLAGS)" \
+               $(BINUTILS_DIR)/configure \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_HOST_NAME) \
+               --build=$(GNU_HOST_NAME) \
+               --prefix=$(STAGING_DIR) \
+               --exec-prefix=$(STAGING_DIR) \
+               --bindir=$(STAGING_DIR)/bin \
+               --sbindir=$(STAGING_DIR)/sbin \
+               --sysconfdir=$(STAGING_DIR)/etc \
+               --datadir=$(STAGING_DIR)/share \
+               --includedir=$(STAGING_DIR)/include \
+               --libdir=$(STAGING_DIR)/lib \
+               --localstatedir=$(STAGING_DIR)/var \
+               --mandir=$(STAGING_DIR)/man \
+               --infodir=$(STAGING_DIR)/info \
+               --enable-targets=$(GNU_TARGET_NAME) \
+               --with-sysroot=$(STAGING_DIR) \
+               $(MULTILIB) \
+               $(SOFT_FLOAT_CONFIG_OPTION) \
+               --program-prefix=$(ARCH)-linux-);
+       touch $(BINUTILS_DIR1)/.configured
+
+$(BINUTILS_DIR1)/binutils/objdump: $(BINUTILS_DIR1)/.configured
+       $(MAKE) $(JLEVEL) CC_FOR_HOST="$(HOSTCC)" \
+               CXX_FOR_HOST="$(HOSTCC)" LDFLAGS="$(HOSTLDFLAGS)" \
+               -C $(BINUTILS_DIR1);
+
+$(STAGING_DIR)/$(GNU_TARGET_NAME)/bin/ld: $(BINUTILS_DIR1)/binutils/objdump 
+       $(MAKE) $(JLEVEL) CC_FOR_HOST="$(HOSTCC)" \
+               CXX_FOR_HOST="$(HOSTCC)" LDFLAGS="$(HOSTLDFLAGS)" \
+               -C $(BINUTILS_DIR1) install;
+       rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc \
+               $(STAGING_DIR)/share/locale
+       mkdir -p $(STAGING_DIR)/usr/bin;
+       set -e; \
+       for app in addr2line ar as c++filt gprof ld nm objcopy \
+                   objdump ranlib readelf size strings strip ; \
+       do \
+               if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-$${app} ] ; then \
+                   (cd $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin; \
+                       ln -fs ../../bin/$(ARCH)-linux-$${app} $${app}; \
+                   ); \
+                   (cd $(STAGING_DIR)/usr/bin; \
+                       ln -fs ../../bin/$(ARCH)-linux-$${app} $${app}; \
+                   ); \
+               fi; \
+       done;
+
+$(STAGING_DIR)/lib/libg.a:
+       mkdir -p $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin
+       mkdir -p $(STAGING_DIR)/usr/include/
+       mkdir -p $(STAGING_DIR)/usr/lib/
+       $(TARGET_CROSS)ar rv $(STAGING_DIR)/lib/libg.a;
+       cp $(BINUTILS_DIR)/include/ansidecl.h $(STAGING_DIR)/usr/include/
+       cp $(BINUTILS_DIR)/include/bfdlink.h $(STAGING_DIR)/usr/include/
+       cp $(BINUTILS_DIR)/include/dis-asm.h $(STAGING_DIR)/usr/include/
+       cp $(BINUTILS_DIR)/include/libiberty.h $(STAGING_DIR)/usr/include/
+       cp $(BINUTILS_DIR)/include/symcat.h $(STAGING_DIR)/usr/include/
+       cp $(BINUTILS_DIR1)/bfd/bfd.h $(STAGING_DIR)/usr/include/
+       cp -a $(BINUTILS_DIR1)/bfd/.libs/* $(STAGING_DIR)/usr/lib/
+       cp -a $(BINUTILS_DIR1)/opcodes/.libs/* $(STAGING_DIR)/usr/lib/
+       cp -a $(BINUTILS_DIR1)/libiberty/libiberty.a $(STAGING_DIR)/usr/lib/
+
+binutils: $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin/ld $(STAGING_DIR)/lib/libg.a
+
+binutils-source: $(DL_DIR)/$(BINUTILS_SOURCE)
+
+binutils-clean:
+       rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)*
+       -$(MAKE) -C $(BINUTILS_DIR1) clean
+
+binutils-dirclean:
+       rm -rf $(BINUTILS_DIR1)
+
+
+
+#############################################################
+#
+# build binutils for use on the target system
+#
+#############################################################
+BINUTILS_DIR2:=$(BUILD_DIR)/binutils-target
+$(BINUTILS_DIR2)/.configured: $(BINUTILS_DIR)/.patched
+       mkdir -p $(BINUTILS_DIR2)
+       mkdir -p $(TARGET_DIR)/usr/include
+       mkdir -p $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/
+       (cd $(BINUTILS_DIR2); \
+               $(TARGET_CONFIGURE_OPTS) \
+               CFLAGS="$(TARGET_CFLAGS)" \
+               CC_FOR_BUILD="$(HOSTCC)" \
+               CXX_FOR_BUILD="$(HOSTCC)" \
+               LDFLAGS="$(HOSTLDFLAGS)" \
+               AR_FOR_TARGET=$(TARGET_CROSS)ar \
+               AS_FOR_TARGET=$(TARGET_CROSS)as \
+               LD_FOR_TARGET=$(TARGET_CROSS)ld \
+               NM_FOR_TARGET=$(TARGET_CROSS)nm \
+               CC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
+               GCC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
+               CXX_FOR_TARGET=$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) \
+               RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib \
+               $(BINUTILS_DIR)/configure \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_TARGET_NAME) \
+               --build=$(ARCH)-linux \
+               --prefix=/usr \
+               --mandir=/usr/man \
+               --infodir=/usr/info \
+               $(MULTILIB) \
+               $(SOFT_FLOAT_CONFIG_OPTION) \
+       );
+       touch $(BINUTILS_DIR2)/.configured
+
+$(BINUTILS_DIR2)/binutils/objdump: $(BINUTILS_DIR2)/.configured
+       $(MAKE) $(JLEVEL) -C $(BINUTILS_DIR2) \
+               CC_FOR_BUILD="$(HOSTCC)" \
+               CXX_FOR_BUILD="$(HOSTCC)" \
+               LDFLAGS="$(HOSTLDFLAGS)" \
+               AR_FOR_TARGET=$(TARGET_CROSS)ar \
+               AS_FOR_TARGET=$(TARGET_CROSS)as \
+               LD_FOR_TARGET=$(TARGET_CROSS)ld \
+               NM_FOR_TARGET=$(TARGET_CROSS)nm \
+               CC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
+               GCC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
+               CXX_FOR_TARGET=$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) \
+               RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib
+       touch -c $(BINUTILS_DIR2)/binutils/objdump
+
+$(TARGET_DIR)/usr/bin/ld: $(BINUTILS_DIR2)/binutils/objdump 
+       $(MAKE) $(JLEVEL) -C $(BINUTILS_DIR2) \
+               CC_FOR_BUILD="$(HOSTCC)" \
+               CXX_FOR_BUILD="$(HOSTCC)" \
+               LDFLAGS="$(HOSTLDFLAGS)" \
+               AR_FOR_TARGET=$(TARGET_CROSS)ar \
+               AS_FOR_TARGET=$(TARGET_CROSS)as \
+               LD_FOR_TARGET=$(TARGET_CROSS)ld \
+               NM_FOR_TARGET=$(TARGET_CROSS)nm \
+               CC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
+               GCC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
+               CXX_FOR_TARGET=$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) \
+               RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib \
+               prefix=/usr \
+               infodir=/usr/info \
+               mandir=/usr/man \
+               DESTDIR=$(TARGET_DIR) install
+       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
+               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+       -$(STRIP) $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/bin/* > /dev/null 2>&1
+       -$(STRIP) $(TARGET_DIR)/usr/bin/* > /dev/null 2>&1 
+
+$(TARGET_DIR)/usr/lib/libg.a:
+       $(TARGET_CROSS)ar rv $(TARGET_DIR)/usr/lib/libg.a;
+       cp $(BINUTILS_DIR)/include/ansidecl.h $(TARGET_DIR)/usr/include/
+       cp $(BINUTILS_DIR)/include/bfdlink.h $(TARGET_DIR)/usr/include/
+       cp $(BINUTILS_DIR)/include/dis-asm.h $(TARGET_DIR)/usr/include/
+       cp $(BINUTILS_DIR)/include/libiberty.h $(TARGET_DIR)/usr/include/
+       cp $(BINUTILS_DIR)/include/symcat.h $(TARGET_DIR)/usr/include/
+       cp $(BINUTILS_DIR2)/bfd/bfd.h $(TARGET_DIR)/usr/include/
+       cp -a $(BINUTILS_DIR2)/bfd/.libs/* $(TARGET_DIR)/usr/lib/
+       cp -a $(BINUTILS_DIR2)/opcodes/.libs/* $(TARGET_DIR)/usr/lib/
+       cp -a $(BINUTILS_DIR2)/libiberty/libiberty.a $(TARGET_DIR)/usr/lib/
+
+binutils_target: $(GCC_DEPENDANCY) $(TARGET_DIR)/usr/bin/ld $(TARGET_DIR)/usr/lib/libg.a
+
+binutils_target-clean:
+       rm -f $(TARGET_DIR)/bin/$(GNU_TARGET_NAME)*
+       -$(MAKE) -C $(BINUTILS_DIR2) clean
+
+binutils_target-dirclean:
+       rm -rf $(BINUTILS_DIR2)
+
diff --git a/src/uClibc/make/gcc-3.3.mk b/src/uClibc/make/gcc-3.3.mk
new file mode 100644 (file)
index 0000000..d4f747e
--- /dev/null
@@ -0,0 +1,457 @@
+# Makefile for to build a gcc/uClibc toolchain
+#
+# Copyright (C) 2002-2003 Erik Andersen <andersen@uclibc.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
+
+ifneq ($(GCC_2_95_TOOLCHAIN),true)
+
+# Older stuff...
+#GCC_SITE:=ftp://ftp.gnu.org/gnu/gcc/
+#GCC_SOURCE:=gcc-3.3.tar.gz
+#GCC_DIR:=$(TOOL_BUILD_DIR)/gcc-3.3
+#GCC_CAT:=zcat
+
+# Shiny new stuff...
+GCC_VERSION:=3.3.1
+#GCC_SITE:=ftp://ftp.gnu.org/gnu/gcc/gcc-$(GCC_VERSION)
+#GCC_SITE:=http://www.binarycode.org/gcc/releases/gcc-$(GCC_VERSION)
+GCC_SITE:=http://gcc.get-software.com/releases/gcc-$(GCC_VERSION)
+
+#
+# snapshots....
+#GCC_VERSION:=3.3-20031013
+#GCC_SITE:=http://gcc.get-software.com/snapshots/$(GCC_VERSION)
+#
+GCC_SOURCE:=gcc-$(GCC_VERSION).tar.gz
+GCC_DIR:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)
+GCC_CAT:=gzip -dc
+
+#############################################################
+#
+# Setup some initial stuff
+#
+#############################################################
+
+ifeq ($(INSTALL_LIBSTDCPP),true)
+TARGET_LANGUAGES:=c,c++
+else
+TARGET_LANGUAGES:=c
+endif
+
+#############################################################
+#
+# build the first pass gcc compiler
+#
+#############################################################
+GCC_BUILD_DIR1:=$(TOOL_BUILD_DIR)/gcc-3.3-initial
+
+$(DL_DIR)/$(GCC_SOURCE):
+#      $(WGET) -P $(DL_DIR) $(GCC_SITE)/$(GCC_SOURCE)
+
+$(GCC_DIR)/.unpacked: $(DL_DIR)/$(GCC_SOURCE)
+       $(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf -
+       touch $(GCC_DIR)/.unpacked
+
+$(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked
+       # Apply any files named gcc-*.patch from the source directory to gcc
+       $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) gcc-*.patch
+ifeq ($(SOFT_FLOAT),true)
+ifeq ("$(strip $(ARCH))","i386")
+       $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) i386-gcc-soft-float.patch
+endif
+endif
+       touch $(GCC_DIR)/.patched
+
+$(GCC_DIR)/.gcc3_3_build_hacks: $(GCC_DIR)/.patched
+       #
+       # Hack things to use the correct shared lib loader
+       #
+       (cd $(GCC_DIR); set -e; export LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" *`;\
+               if [ -n "$$LIST" ] ; then \
+               $(SED) "s,-dynamic-linker.*\.so[\.0-9]*},\
+                   -dynamic-linker /lib/ld-uClibc.so.0},;" $$LIST; fi);
+       #
+       # Prevent gcc from using the unwind-dw2-fde-glibc code used for
+       # unwinding stack frames for C++ exception handling.  The
+       # unwind-dw2-fde-glibc code depends on glibc's ldso, we want to
+       # use the generic version instead.
+       #
+       $(SED) "s,^#ifndef inhibit_libc,#define inhibit_libc\n\
+               #ifndef inhibit_libc,g;" $(GCC_DIR)/gcc/unwind-dw2-fde-glibc.c;
+       #
+       # Prevent system glibc start files from leaking in uninvited...
+       #
+       $(SED) "s,standard_startfile_prefix_1 = \".*,standard_startfile_prefix_1 =\
+               \"$(STAGING_DIR)/lib/\";,;" $(GCC_DIR)/gcc/gcc.c;
+       $(SED) "s,standard_startfile_prefix_2 = \".*,standard_startfile_prefix_2 =\
+               \"$(STAGING_DIR)/usr/lib/\";,;" $(GCC_DIR)/gcc/gcc.c;
+       #
+       # Prevent system glibc include files from leaking in uninvited...
+       #
+       $(SED) "s,^NATIVE_SYSTEM_HEADER_DIR.*,NATIVE_SYSTEM_HEADER_DIR=\
+               $(STAGING_DIR)/include,;" $(GCC_DIR)/gcc/Makefile.in;
+       $(SED) "s,^CROSS_SYSTEM_HEADER_DIR.*,CROSS_SYSTEM_HEADER_DIR=\
+               $(STAGING_DIR)/include,;" $(GCC_DIR)/gcc/Makefile.in;
+       $(SED) "s,^#define.*STANDARD_INCLUDE_DIR.*,#define STANDARD_INCLUDE_DIR \
+               \"$(STAGING_DIR)/include\",;" $(GCC_DIR)/gcc/cppdefault.h;
+       #
+       # Prevent system glibc libraries from being found by collect2 
+       # when it calls locatelib() and rummages about the system looking 
+       # for libraries with the correct name...
+       #
+       $(SED) "s,\"/lib,\"$(STAGING_DIR)/lib,g;" $(GCC_DIR)/gcc/collect2.c
+       $(SED) "s,\"/usr/,\"$(STAGING_DIR)/usr/,g;" $(GCC_DIR)/gcc/collect2.c
+       touch $(GCC_DIR)/.gcc3_3_build_hacks
+
+# The --without-headers option stopped working with gcc 3.0 and has never been
+# # fixed, so we need to actually have working C library header files prior to
+# # the step or libgcc will not build...
+$(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.gcc3_3_build_hacks
+       mkdir -p $(GCC_BUILD_DIR1)
+       echo -e "#!/bin/sh\nexec $(GCC_BUILD_DIR1)/gcc/xgcc -B$(GCC_BUILD_DIR1)/gcc/ -B$(STAGING_DIR)/$(ARCH)-linux/bin/ -B$(STAGING_DIR)/$(ARCH)-linux/lib/ -isystem $(STAGING_DIR)/$(ARCH)-linux/include $(TARGET_SOFT_FLOAT) \$$@" > $(GCC_BUILD_DIR1)/target_gcc
+       chmod a+x $(GCC_BUILD_DIR1)/target_gcc
+       (cd $(GCC_BUILD_DIR1); PATH=$(TARGET_PATH) AR=$(TARGET_CROSS)ar \
+               RANLIB=$(TARGET_CROSS)ranlib \
+               CC="$(HOSTCC)" \
+               LDFLAGS="$(HOSTLDFLAGS)" \
+               gcc_cv_as_hidden=no \
+               $(GCC_DIR)/configure \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_HOST_NAME) \
+               --build=$(GNU_HOST_NAME) \
+               --prefix=$(STAGING_DIR) \
+               --exec-prefix=$(STAGING_DIR) \
+               --bindir=$(STAGING_DIR)/bin \
+               --sbindir=$(STAGING_DIR)/sbin \
+               --sysconfdir=$(STAGING_DIR)/etc \
+               --datadir=$(STAGING_DIR)/share \
+               --includedir=$(STAGING_DIR)/include \
+               --libdir=$(STAGING_DIR)/lib \
+               --localstatedir=$(STAGING_DIR)/var \
+               --mandir=$(STAGING_DIR)/man \
+               --infodir=$(STAGING_DIR)/info \
+               --with-local-prefix=$(STAGING_DIR)/usr/local \
+               --oldincludedir=$(STAGING_DIR)/include $(MULTILIB) \
+               --enable-target-optspace $(DISABLE_NLS) --with-gnu-ld \
+               --disable-shared --enable-languages=c --disable-__cxa_atexit \
+               $(SOFT_FLOAT_CONFIG_OPTION) \
+               $(EXTRA_GCC_CONFIG_OPTIONS) --program-prefix=$(ARCH)-linux-);
+       touch $(GCC_BUILD_DIR1)/.configured
+
+$(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
+       PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) -C $(GCC_BUILD_DIR1) \
+           CC="$(HOSTCC)" \
+           LDFLAGS="$(HOSTLDFLAGS)" \
+           AR_FOR_TARGET=$(STAGING_DIR)/bin/$(ARCH)-linux-ar \
+           RANLIB_FOR_TARGET=$(STAGING_DIR)/bin/$(ARCH)-linux-ranlib \
+           CC_FOR_TARGET=$(GCC_BUILD_DIR1)/target_gcc \
+           GCC_FOR_TARGET=$(GCC_BUILD_DIR1)/target_gcc
+       touch $(GCC_BUILD_DIR1)/.compiled
+
+$(STAGING_DIR)/bin/$(ARCH)-linux-gcc: $(GCC_BUILD_DIR1)/.compiled
+       PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) \
+           CC="$(HOSTCC)" \
+           LDFLAGS="$(HOSTLDFLAGS)" \
+           -C $(GCC_BUILD_DIR1) install;
+       #Cleanup then mess when --program-prefix mysteriously fails 
+       -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-cpp $(STAGING_DIR)/bin/$(ARCH)-linux-cpp
+       -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gcc $(STAGING_DIR)/bin/$(ARCH)-linux-gcc
+       if [ -n "$(strip $(TARGET_SOFT_FLOAT))" ] ; then \
+               for app in gcc c++ g++ ; do \
+                       if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-$${app} ] ; then \
+                           (cd $(STAGING_DIR)/bin; \
+                               rm -f $(ARCH)-linux-$${app}$(TARGET_SOFT_FLOAT); \
+                               echo -e "#!/bin/sh\nexec $(STAGING_DIR)/bin/$(ARCH)-linux-$${app} -msoft-float \$$@" > $(ARCH)-linux-$${app}$(TARGET_SOFT_FLOAT); \
+                               chmod a+x $(ARCH)-linux-$${app}$(TARGET_SOFT_FLOAT); \
+                           ); \
+                       fi; \
+               done; \
+       fi; \
+       rm -f $(STAGING_DIR)/bin/gccbug $(STAGING_DIR)/bin/gcov
+       rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc \
+               $(STAGING_DIR)/share/locale
+
+gcc3_3_initial: binutils uclibc-configured $(STAGING_DIR)/bin/$(ARCH)-linux-gcc
+
+gcc3_3_initial-clean:
+       rm -rf $(GCC_BUILD_DIR1)
+       rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)*
+
+gcc3_3_initial-dirclean:
+       rm -rf $(GCC_BUILD_DIR1)
+
+#############################################################
+#
+# second pass compiler build.  Build the compiler targeting 
+# the newly built shared uClibc library.
+#
+#############################################################
+GCC_BUILD_DIR2:=$(TOOL_BUILD_DIR)/gcc-3.3-final
+$(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
+       mkdir -p $(GCC_BUILD_DIR2)
+       echo -e "#!/bin/sh\nexec $(GCC_BUILD_DIR2)/gcc/xgcc -B$(GCC_BUILD_DIR2)/gcc/ -B$(STAGING_DIR)/$(ARCH)-linux/bin/ -B$(STAGING_DIR)/$(ARCH)-linux/lib/ -isystem $(STAGING_DIR)/$(ARCH)-linux/include $(TARGET_SOFT_FLOAT) \$$@" > $(GCC_BUILD_DIR2)/target_g++
+       chmod a+x $(GCC_BUILD_DIR2)/target_g++
+       echo -e "#!/bin/sh\nexec $(GCC_BUILD_DIR2)/gcc/xgcc -B$(GCC_BUILD_DIR2)/gcc/ -B$(STAGING_DIR)/$(ARCH)-linux/bin/ -B$(STAGING_DIR)/$(ARCH)-linux/lib/ -isystem $(STAGING_DIR)/$(ARCH)-linux/include $(TARGET_SOFT_FLOAT) \$$@" > $(GCC_BUILD_DIR2)/target_gcc
+       chmod a+x $(GCC_BUILD_DIR2)/target_gcc
+       (cd $(GCC_BUILD_DIR2); PATH=$(TARGET_PATH) AR=$(TARGET_CROSS)ar \
+               RANLIB=$(TARGET_CROSS)ranlib LD=$(TARGET_CROSS)ld \
+               NM=$(TARGET_CROSS)nm \
+               CC="$(HOSTCC)" \
+               LDFLAGS="$(HOSTLDFLAGS)" \
+               gcc_cv_as_hidden=no \
+               $(GCC_DIR)/configure \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_HOST_NAME) \
+               --build=$(GNU_HOST_NAME) \
+               --prefix=$(STAGING_DIR) \
+               --exec-prefix=$(STAGING_DIR) \
+               --bindir=$(STAGING_DIR)/bin \
+               --sbindir=$(STAGING_DIR)/sbin \
+               --sysconfdir=$(STAGING_DIR)/etc \
+               --datadir=$(STAGING_DIR)/share \
+               --localstatedir=$(STAGING_DIR)/var \
+               --mandir=$(STAGING_DIR)/man \
+               --infodir=$(STAGING_DIR)/info \
+               --with-local-prefix=$(STAGING_DIR)/usr/local \
+               --libdir=$(STAGING_DIR)/lib \
+               --includedir=$(STAGING_DIR)/include \
+               --with-gxx-include-dir=$(STAGING_DIR)/include/c++ \
+               --oldincludedir=$(STAGING_DIR)/include \
+               --enable-shared $(MULTILIB) \
+               --enable-target-optspace $(DISABLE_NLS) \
+               --with-gnu-ld --disable-__cxa_atexit \
+               --enable-languages=$(TARGET_LANGUAGES) \
+               $(EXTRA_GCC_CONFIG_OPTIONS) \
+               --program-prefix=$(ARCH)-linux- \
+       );
+       touch $(GCC_BUILD_DIR2)/.configured
+
+$(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured
+       $(SED) 's/\-lc//' $(GCC_BUILD_DIR2)/gcc/Makefile
+       PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) \
+           CC="$(HOSTCC)" \
+           LDFLAGS="$(HOSTLDFLAGS)" \
+           AR_FOR_TARGET=$(TARGET_CROSS)ar RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib \
+           LD_FOR_TARGET=$(TARGET_CROSS)ld NM_FOR_TARGET=$(TARGET_CROSS)nm \
+           CC_FOR_TARGET=$(GCC_BUILD_DIR2)/target_gcc \
+           GCC_FOR_TARGET=$(GCC_BUILD_DIR2)/target_gcc \
+           CXX_FOR_TARGET=$(GCC_BUILD_DIR2)/target_g++ \
+           -C $(GCC_BUILD_DIR2)
+       touch $(GCC_BUILD_DIR2)/.compiled
+
+$(GCC_BUILD_DIR2)/.installed: $(GCC_BUILD_DIR2)/.compiled $(STAGING_DIR)/lib/libc.a
+       PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) \
+           CC="$(HOSTCC)" \
+           LDFLAGS="$(HOSTLDFLAGS)" \
+           -C $(GCC_BUILD_DIR2) install;
+       -mv $(STAGING_DIR)/bin/gcc $(STAGING_DIR)/usr/bin;
+       -mv $(STAGING_DIR)/bin/protoize $(STAGING_DIR)/usr/bin;
+       -mv $(STAGING_DIR)/bin/unprotoize $(STAGING_DIR)/usr/bin;
+       -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-cpp $(STAGING_DIR)/bin/$(ARCH)-linux-cpp
+       -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gcc $(STAGING_DIR)/bin/$(ARCH)-linux-gcc
+       -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-c++ $(STAGING_DIR)/bin/$(ARCH)-linux-c++
+       -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-g++ $(STAGING_DIR)/bin/$(ARCH)-linux-g++
+       -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-c++filt $(STAGING_DIR)/bin/$(ARCH)-linux-c++filt
+       rm -f $(STAGING_DIR)/bin/cpp $(STAGING_DIR)/bin/gcov $(STAGING_DIR)/bin/*gccbug
+       rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-$(ARCH)-linux-*
+       rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc \
+               $(STAGING_DIR)/share/locale
+       # Strip the host binaries
+       -strip --strip-all -R .note -R .comment $(STAGING_DIR)/bin/*
+       if [ -n "$(strip $(TARGET_SOFT_FLOAT))" ] ; then \
+               for app in gcc c++ g++ ; do \
+                       if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-$${app} ] ; then \
+                           (cd $(STAGING_DIR)/bin; \
+                               rm -f $(ARCH)-linux-$${app}$(TARGET_SOFT_FLOAT); \
+                               echo -e "#!/bin/sh\nexec $(STAGING_DIR)/bin/$(ARCH)-linux-$${app} -msoft-float \$$@" > $(ARCH)-linux-$${app}$(TARGET_SOFT_FLOAT); \
+                               chmod a+x $(ARCH)-linux-$${app}$(TARGET_SOFT_FLOAT); \
+                           ); \
+                       fi; \
+               done; \
+       fi; \
+       set -e; \
+       for app in cc gcc c89 cpp c++ g++ ; do \
+               if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-$${app} ] ; then \
+                   (cd $(STAGING_DIR)/usr/bin; \
+                       ln -fs ../../bin/$(ARCH)-linux-$${app} $${app}; \
+                   ); \
+               fi; \
+       done;
+       (cd $(STAGING_DIR)/usr/bin; \
+               ln -fs gcc cc; \
+       )
+       touch $(GCC_BUILD_DIR2)/.installed
+
+ifneq ($(TARGET_DIR),)
+$(TARGET_DIR)/lib/libstdc++.so.5.0.5: $(GCC_BUILD_DIR2)/.installed
+       cp -a $(STAGING_DIR)/lib/libstdc++.so* $(TARGET_DIR)/lib/
+
+$(GCC_BUILD_DIR2)/.shared_libgcc: $(GCC_BUILD_DIR2)/.installed
+       # Make sure a copy of libgcc_s is in the target's /lib.
+       if [ -f $(STAGING_DIR)/lib/libgcc_s.so.0.9.9 ] ; then \
+               cp -a $(STAGING_DIR)/lib/libgcc_s.so* $(TARGET_DIR)/lib/ ; \
+       fi
+       touch $(GCC_BUILD_DIR2)/.shared_libgcc
+
+GCC_TARGETS:=$(GCC_BUILD_DIR2)/.shared_libgcc
+ifeq ($(INSTALL_LIBSTDCPP),true)
+GCC_TARGETS+=$(TARGET_DIR)/lib/libstdc++.so.5.0.5
+endif
+
+endif
+
+gcc3_3: binutils uclibc-configured gcc3_3_initial $(LIBFLOAT_TARGET) uclibc \
+       $(GCC_BUILD_DIR2)/.installed $(GCC_TARGETS)
+
+gcc3_3-source: $(DL_DIR)/$(GCC_SOURCE)
+
+gcc3_3-clean:
+       rm -rf $(GCC_BUILD_DIR2)
+       rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)*
+
+gcc3_3-dirclean:
+       rm -rf $(GCC_BUILD_DIR2)
+
+#############################################################
+#
+# Next build target gcc compiler
+#
+#############################################################
+GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-3.3-target
+
+TARGET_GCC_ARGS= $(TARGET_CONFIGURE_OPTS) \
+               AR_FOR_BUILD=ar \
+               AS_FOR_BUILD=as \
+               LD_FOR_BUILD=ld \
+               NM_FOR_BUILD=nm \
+               RANLIB_FOR_BUILD=ranlib \
+               CC="$(HOSTCC)" \
+               LDFLAGS="$(HOSTLDFLAGS)" \
+               CC_FOR_BUILD="$(HOSTCC)" \
+               GCC_FOR_BUILD="$(HOSTCC)" \
+               CXX_FOR_BUILD="$(HOSTCC)" \
+               AR_FOR_TARGET=$(TARGET_CROSS)ar \
+               AS_FOR_TARGET=$(TARGET_CROSS)as \
+               LD_FOR_TARGET=$(TARGET_CROSS)ld \
+               NM_FOR_TARGET=$(TARGET_CROSS)nm \
+               CC="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
+               GCC="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
+               CXX="$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
+               CC_FOR_TARGET="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
+               GCC_FOR_TARGET="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
+               CXX_FOR_TARGET="$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
+               RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib
+
+# We need to unpack a pristine source tree to avoid some of
+# the previously applied hacks, which do not apply here...
+$(GCC_BUILD_DIR3)/.unpacked: $(DL_DIR)/$(GCC_SOURCE)
+       $(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+       mv $(BUILD_DIR)/gcc-$(GCC_VERSION) $(GCC_BUILD_DIR3)
+       touch $(GCC_BUILD_DIR3)/.unpacked
+
+$(GCC_BUILD_DIR3)/.patched: $(GCC_BUILD_DIR3)/.unpacked
+       # Apply any files named gcc-*.patch from the source directory to gcc
+       $(SOURCE_DIR)/patch-kernel.sh $(GCC_BUILD_DIR3) $(SOURCE_DIR) gcc-*.patch
+ifeq ("$(strip $(ARCH))","i386")
+       $(SOURCE_DIR)/patch-kernel.sh $(GCC_BUILD_DIR3) $(SOURCE_DIR) i386-gcc-*.patch
+endif
+       touch $(GCC_BUILD_DIR3)/.patched
+
+$(GCC_BUILD_DIR3)/.gcc3_3_build_hacks: $(GCC_BUILD_DIR3)/.patched
+       #
+       # Hack things to use the correct shared lib loader
+       #
+       (cd $(GCC_BUILD_DIR3); set -e; export LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" *`;\
+               if [ -n "$$LIST" ] ; then \
+               $(SED) "s,-dynamic-linker.*\.so[\.0-9]*},\
+                   -dynamic-linker /lib/ld-uClibc.so.0},;" $$LIST; fi);
+       #
+       # Prevent gcc from using the unwind-dw2-fde-glibc code used for
+       # unwinding stack frames for C++ exception handling.  The
+       # unwind-dw2-fde-glibc code depends on glibc's ldso, we want to
+       # use the generic version instead.
+       #
+       $(SED) "s,^#ifndef inhibit_libc,#define inhibit_libc\n\
+               #ifndef inhibit_libc,g;" $(GCC_BUILD_DIR3)/gcc/unwind-dw2-fde-glibc.c;
+       touch $(GCC_BUILD_DIR3)/.gcc3_3_build_hacks
+
+$(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.gcc3_3_build_hacks
+       mkdir -p $(GCC_BUILD_DIR3)
+       #(cd $(GCC_BUILD_DIR3); ln -fs $(ARCH)-linux build-$(GNU_TARGET_NAME))
+       (cd $(GCC_BUILD_DIR3); \
+               $(TARGET_GCC_ARGS) \
+               gcc_cv_as_hidden=no \
+               ./configure \
+               --verbose \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_TARGET_NAME) \
+               --build=`./config.guess` \
+               --prefix=/usr \
+               --mandir=/usr/man \
+               --infodir=/usr/info \
+               --with-gxx-include-dir=/usr/include/c++/3.3 \
+               --enable-target-optspace \
+               --enable-shared \
+               $(MULTILIB) \
+               $(DISABLE_NLS) \
+               --with-gnu-ld --disable-__cxa_atexit \
+               --enable-languages=$(TARGET_LANGUAGES) \
+               $(EXTRA_GCC_CONFIG_OPTIONS) \
+       );
+       touch $(GCC_BUILD_DIR3)/.configured
+
+$(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
+       $(MAKE) $(JLEVEL) $(TARGET_GCC_ARGS) -C $(GCC_BUILD_DIR3)
+       touch $(GCC_BUILD_DIR3)/.compiled
+
+$(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled
+       $(MAKE) $(JLEVEL) $(TARGET_GCC_ARGS) DESTDIR=$(TARGET_DIR) \
+               -C $(GCC_BUILD_DIR3) install
+       (cd $(TARGET_DIR)/usr/bin; ln -fs gcc cc)
+       (cd $(TARGET_DIR)/lib; ln -fs /usr/bin/cpp)
+       rm -rf $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/include
+       rm -rf $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/sys-include
+       rm -rf $(TARGET_DIR)/usr/include/include $(TARGET_DIR)/usr/usr
+       -mv $(TARGET_DIR)/lib/*.a $(TARGET_DIR)/usr/lib/
+       -mv $(TARGET_DIR)/lib/*.la $(TARGET_DIR)/usr/lib/
+       rm -f $(TARGET_DIR)/lib/libstdc++.so*
+       # Make sure gcc does not think we are cross compiling
+       $(SED) "s/^1/0/;" $(TARGET_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION)/specs
+       -(cd $(TARGET_DIR)/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1)
+       -(cd $(TARGET_DIR)/usr/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1)
+       -(cd $(TARGET_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION); $(STRIP) cc1 cc1plus collect2 > /dev/null 2>&1)
+       -(cd $(TARGET_DIR)/usr/lib; $(STRIP) libstdc++.so.*.*.* > /dev/null 2>&1)
+       -(cd $(TARGET_DIR)/lib; $(STRIP) libgcc_s.so.*.*.* > /dev/null 2>&1)
+       #
+       rm -f $(TARGET_DIR)/usr/lib/*.la*
+       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
+               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+       # Work around problem of missing syslimits.h
+       cp -f $(STAGING_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION)/include/syslimits.h  $(TARGET_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION)/include/
+       # These are in /lib, so...
+       rm -rf $(TARGET_DIR)/usr/lib/libgcc_s.so*
+       touch -c $(TARGET_DIR)/usr/bin/gcc
+
+gcc3_3_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc
+
+gcc3_3_target-clean:
+       rm -rf $(GCC_BUILD_DIR3)
+       rm -f $(TARGET_DIR)/bin/$(GNU_TARGET_NAME)*
+
+gcc3_3_target-dirclean:
+       rm -rf $(GCC_BUILD_DIR3)
+
+endif
diff --git a/src/uClibc/make/uclibc.mk b/src/uClibc/make/uclibc.mk
new file mode 100644 (file)
index 0000000..d9981a4
--- /dev/null
@@ -0,0 +1,144 @@
+#############################################################
+#
+# uClibc (the C library)
+#
+#############################################################
+ifeq ($(USE_UCLIBC_SNAPSHOT),true)
+# Be aware that this changes daily....
+UCLIBC_DIR=$(TOOL_BUILD_DIR)/uClibc
+UCLIBC_SOURCE=uClibc-snapshot.tar.gz
+UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots
+else
+UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc-0.9.26
+UCLIBC_SOURCE:=uClibc-0.9.26.tar.gz
+UCLIBC_SITE:=http://www.uclibc.org/downloads
+endif
+LINUX_DIR:=/usr/src/linux
+
+UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \
+                -e 's/i.86/i386/' \
+               -e 's/sparc.*/sparc/' \
+               -e 's/arm.*/arm/g' \
+               -e 's/m68k.*/m68k/' \
+               -e 's/ppc/powerpc/g' \
+               -e 's/v850.*/v850/g' \
+               -e 's/sh64/sh/' \
+               -e 's/sh[234]/sh/' \
+               -e 's/mips.*/mips/' \
+               -e 's/mipsel.*/mips/' \
+               -e 's/cris.*/cris/' \
+)
+
+
+$(DL_DIR)/$(UCLIBC_SOURCE):
+#      $(WGET) -P $(DL_DIR) $(UCLIBC_SITE)/$(UCLIBC_SOURCE)
+
+$(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
+       gzip -dc $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf -
+       touch $(UCLIBC_DIR)/.unpacked
+
+$(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked 
+       $(MAKE) -C $(UCLIBC_DIR) defconfig;
+       cp $(SOURCE_DIR)/uClibc.config $(UCLIBC_DIR)/.config
+       cp $(SOURCE_DIR)/locales.txt $(UCLIBC_DIR)/extra/locale
+       cp $(SOURCE_DIR)/codesets.txt $(UCLIBC_DIR)/extra/locale
+       $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(STAGING_DIR) headers;
+       (cd $(UCLIBC_DIR)/extra/locale; \
+               $(MAKE); \
+       )
+       $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(STAGING_DIR) install_dev;
+       rm -rf $(STAGING_DIR)/include
+       ln -s $(STAGING_DIR)/usr/include $(STAGING_DIR)/include
+       touch $(UCLIBC_DIR)/.configured
+
+$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(LIBFLOAT_TARGET)
+       $(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(UCLIBC_DIR)/Rules.mak
+       $(MAKE) -C $(UCLIBC_DIR) oldconfig
+       $(MAKE) -C $(UCLIBC_DIR) headers
+       -$(MAKE) -C $(UCLIBC_DIR) pregen
+       (cd $(UCLIBC_DIR)/extra/locale; \
+               $(MAKE); \
+       )
+       $(MAKE) -C $(UCLIBC_DIR)
+
+$(STAGING_DIR)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
+       $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(STAGING_DIR) install_dev install_runtime
+       $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(STAGING_DIR) utils install_utils
+       # Clean up the host compiled utils...
+       $(MAKE) -C $(UCLIBC_DIR)/utils clean
+       (cd $(STAGING_DIR)/lib; \
+               ln -fs libc.so.0 libc.so; \
+               ln -fs libdl.so.0 libdl.so; \
+               ln -fs libcrypt.so.0 libcrypt.so; \
+               ln -fs libresolv.so.0 libresolv.so; \
+               ln -fs libutil.so.0 libutil.so; \
+               ln -fs libm.so.0 libm.so; \
+               ln -fs libpthread.so.0 libpthread.so; \
+               ln -fs libnsl.so.0 libnsl.so; \
+               ln -fs libthread_db.so.1 libthread_db.so; \
+       )
+
+ifneq ($(TARGET_DIR),)
+$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/lib/libc.a
+       $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(TARGET_DIR) install_runtime
+
+$(TARGET_DIR)/usr/bin/ldd: $(TARGET_DIR)/lib/libc.so.0
+       $(MAKE) -C $(UCLIBC_DIR) $(TARGET_CONFIGURE_OPTS) \
+               PREFIX=$(TARGET_DIR) utils install_utils
+
+UCLIBC_TARGETS=$(TARGET_DIR)/lib/libc.so.0 $(TARGET_DIR)/usr/bin/ldd
+endif
+
+uclibc-configured: $(UCLIBC_DIR)/.configured
+
+uclibc: $(STAGING_DIR)/bin/$(ARCH)-linux-gcc $(STAGING_DIR)/lib/libc.a \
+       $(UCLIBC_TARGETS)
+
+uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE)
+
+uclibc-configured-source: uclibc-source
+
+uclibc-clean:
+       -$(MAKE) -C $(UCLIBC_DIR) clean
+       rm -f $(UCLIBC_DIR)/.config
+
+uclibc-dirclean:
+       rm -rf $(UCLIBC_DIR)
+
+
+
+
+#############################################################
+#
+# uClibc for the target just needs its header files
+# and whatnot installed.
+#
+#############################################################
+
+$(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/lib/libc.a
+       $(MAKE) -C $(UCLIBC_DIR) $(TARGET_CONFIGURE_OPTS) \
+               PREFIX=$(TARGET_DIR) install_dev
+       (cd $(TARGET_DIR)/usr/lib; \
+               ln -fs /lib/libc.so.0 libc.so; \
+               ln -fs /lib/libdl.so.0 libdl.so; \
+               ln -fs /lib/libcrypt.so.0 libcrypt.so; \
+               ln -fs /lib/libresolv.so.0 libresolv.so; \
+               ln -fs /lib/libutil.so.0 libutil.so; \
+               ln -fs /lib/libm.so.0 libm.so; \
+               ln -fs /lib/libpthread.so.0 libpthread.so; \
+               ln -fs /lib/libnsl.so.0 libnsl.so; \
+               ln -fs /lib/libthread_db.so.1 libthread_db.so; \
+       )
+
+ifeq ($(GCC_2_95_TOOLCHAIN),true)
+uclibc_target: gcc2_95 uclibc $(TARGET_DIR)/usr/lib/libc.a
+else
+uclibc_target: gcc3_3 uclibc $(TARGET_DIR)/usr/lib/libc.a
+endif
+
+uclibc_target-clean:
+       rm -f $(TARGET_DIR)/include
+
+uclibc_target-dirclean:
+       rm -f $(TARGET_DIR)/include
+
diff --git a/src/uClibc/sources/CVS/Entries b/src/uClibc/sources/CVS/Entries
new file mode 100644 (file)
index 0000000..27fada5
--- /dev/null
@@ -0,0 +1,13 @@
+/binutils-001-debian.patch/1.1.2.1/Thu Jul  1 22:24:28 2004//TIPCOP_v1_4_0
+/binutils-002-uclibc.patch/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/codesets.txt/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/gcc-001-disable-mathf.patch/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/gcc-006-include-search.patch/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/gcc-810-libstd++-locale.patch/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/gcc-830-nonhidden.patch/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/gcc-840-abi_check.patch/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/i386-gcc-soft-float.patch/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/locales.txt/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/patch-kernel.sh/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+/uClibc.config/1.1/Thu Jan 15 11:23:40 2004//TIPCOP_v1_4_0
+D
diff --git a/src/uClibc/sources/CVS/Repository b/src/uClibc/sources/CVS/Repository
new file mode 100644 (file)
index 0000000..db2fbf3
--- /dev/null
@@ -0,0 +1 @@
+ipcop/src/uClibc/sources
diff --git a/src/uClibc/sources/CVS/Root b/src/uClibc/sources/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/src/uClibc/sources/CVS/Tag b/src/uClibc/sources/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/src/uClibc/sources/binutils-001-debian.patch b/src/uClibc/sources/binutils-001-debian.patch
new file mode 100644 (file)
index 0000000..77b602b
--- /dev/null
@@ -0,0 +1,161 @@
+--- binutils-2.11.90.0.19.orig/ld/Makefile.am
++++ binutils-2.11.90.0.19/ld/Makefile.am
+@@ -19,7 +19,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ EMUL = @EMUL@
+ EMULATION_OFILES = @EMULATION_OFILES@
+--- binutils-2.11.90.0.19.orig/ld/Makefile.in
++++ binutils-2.11.90.0.19/ld/Makefile.in
+@@ -123,7 +123,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ EMUL = @EMUL@
+ EMULATION_OFILES = @EMULATION_OFILES@
+diff -urN binutils-2.11.90.0.27/gprof/gprof.texi binutils-2.11.90.0.27.new/gprof/gprof.texi
+--- binutils-2.11.90.0.27/gprof/gprof.texi     Tue Jun 19 14:57:58 2001
++++ binutils-2.11.90.0.27.new/gprof/gprof.texi Mon Aug 27 10:27:23 2001
+@@ -137,6 +137,10 @@
+ If more than one profile file is specified, the @code{gprof}
+ output shows the sum of the profile information in the given profile files.
++If you use gcc 2.95.x or 3.0 to compile your binaries, you may need
++to add the @samp{-fprofile-arcs} to the compile command line in order
++for the call graphs to be properly stored in gmon.out.
++
+ @code{Gprof} calculates the amount of time spent in each routine.
+ Next, these times are propagated along the edges of the call graph.
+ Cycles are discovered, and calls into a cycle are made to share the time
+@@ -266,6 +270,11 @@
+ to do the linking, simply specify @samp{-pg} in addition to your usual
+ options.  The same option, @samp{-pg}, alters either compilation or linking
+ to do what is necessary for profiling.  Here are examples:
++
++If you use gcc 2.95.x or 3.0.x, you may need to add the
++@samp{-fprofile-arcs} option to the compile line along with @samp{-pg}
++in order to allow the call-graphs to be properly included in the gmon.out
++file.
+ @example
+ cc -g -c myprog.c utils.c -pg
+diff -urN binutils-2.11.92.0.5/bfd/opncls.c binutils-2.11.92.0.5.new/bfd/opncls.c
+--- binutils-2.11.92.0.5/bfd/opncls.c  Mon Oct  1 18:25:21 2001
++++ binutils-2.11.92.0.5.new/bfd/opncls.c      Sat Oct 13 11:26:59 2001
+@@ -127,6 +127,13 @@
+ {
+   bfd *nbfd;
+   const bfd_target *target_vec;
++  struct stat s;
++
++  if (stat (filename, &s) == 0)
++    if (S_ISDIR(s.st_mode)) {
++      bfd_set_error (bfd_error_file_not_recognized);
++      return NULL;
++    }
+   nbfd = _bfd_new_bfd ();
+   if (nbfd == NULL)
+diff -urN binutils-2.11.92.0.12.3/opcodes/i386-dis.c binutils-2.11.92.0.12.3.new/opcodes/i386-dis.c
+--- binutils-2.11.92.0.12.3/opcodes/i386-dis.c Fri Nov 16 17:05:55 2001
++++ binutils-2.11.92.0.12.3.new/opcodes/i386-dis.c     Mon Dec 31 15:55:04 2001
+@@ -1830,7 +1830,7 @@
+  * The function returns the length of this instruction in bytes.
+  */
+-static char intel_syntax;
++static signed char intel_syntax;
+ static char open_char;
+ static char close_char;
+ static char separator_char;
+diff -urN binutils-2.12.90.0.12/ld/emultempl/elf32.em binutils-2.12.90.0.12.new/ld/emultempl/elf32.em
+--- binutils-2.12.90.0.12/ld/emultempl/elf32.em        Wed Jun 19 00:41:59 2002
++++ binutils-2.12.90.0.12.new/ld/emultempl/elf32.em    Wed Jun 26 10:00:26 2002
+@@ -692,6 +692,8 @@
+             && command_line.rpath == NULL)
+           {
+             lib_path = (const char *) getenv ("LD_RUN_PATH");
++            if ((lib_path) && (strlen (lib_path) == 0))
++                lib_path = NULL;
+             if (gld${EMULATION_NAME}_search_needed (lib_path, l->name,
+                                                     force))
+               break;
+@@ -871,6 +873,8 @@
+   rpath = command_line.rpath;
+   if (rpath == NULL)
+     rpath = (const char *) getenv ("LD_RUN_PATH");
++  if ((rpath) && (strlen (rpath) == 0))
++      rpath = NULL;
+   if (! (bfd_elf_size_dynamic_sections
+        (output_bfd, command_line.soname, rpath,
+         command_line.filter_shlib,
+diff -urN binutils-2.13.90.0.18/gprof/gprof.texi binutils-2.13.90.0.18.new/gprof/gprof.texi
+--- binutils-2.13.90.0.18/gprof/gprof.texi     2003-02-02 18:29:09.000000000 -0500
++++ binutils-2.13.90.0.18.new/gprof/gprof.texi 2003-02-02 18:28:37.000000000 -0500
+@@ -185,7 +185,7 @@
+ @c man end
+ @c man begin SEEALSO
+-monitor(3), profil(2), cc(1), prof(1), and the Info entry for @file{gprof}.
++profil(2), cc(1), prof(1), and the Info entry for @file{gprof}.
+ ``An Execution Profiler for Modular Programs'',
+ by S. Graham, P. Kessler, M. McKusick;
+--- binutils-2.13.90.0.18/bfd/elf64-alpha.c    2003-01-21 19:21:32.000000000 +0100
++++ binutils-2.13.90.0.18-modif/bfd/elf64-alpha.c      2003-04-11 01:24:26.000000000 +0200
+@@ -4184,9 +4184,12 @@
+   loc = srel->contents;
+   loc += srel->reloc_count++ * sizeof (Elf64_External_Rela);
+-  bfd_elf64_swap_reloca_out (abfd, &outrel, loc);
+-  BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count
+-            <= srel->_cooked_size);
++  if (loc)
++    {
++      bfd_elf64_swap_reloca_out (abfd, &outrel, loc);
++      BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count
++                <= srel->_cooked_size);
++    }
+ }
+ /* Relocate an Alpha ELF section for a relocatable link.
+2003-05-23  H.J. Lu <hongjiu.lu@intel.com>
+
+       * ltmain.sh: Make symlink for shared library if needed.
+
+opcodes/
+
+2003-07-14  H.J. Lu <hongjiu.lu@intel.com>
+
+       * Makefile.in: Regenerated.
+
+2003-06-11  H.J. Lu <hongjiu.lu@intel.com>
+
+       * Makefile.in: Regenerated.
+
+2003-05-23  H.J. Lu <hongjiu.lu@intel.com>
+
+       * Makefile.am (libopcodes_la_LIBADD): Use "-L../bfd -lbfd"
+       instead of "../bfd/libbfd.la".
+       * Makefile.in: Regenerated.
+
+--- binutils/ltmain.sh.dso     2002-03-22 00:16:20.000000000 -0800
++++ binutils/ltmain.sh 2003-07-14 12:50:17.000000000 -0700
+@@ -4413,6 +4413,10 @@ relink_command=\"$relink_command\""
+       # LD_LIBRARY_PATH before the program is installed.
+       $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+       $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
++      if test -n "$linkname"; then
++        $show "(cd $output_objdir && $rm ../$linkname && $LN_S $output_objdir/$linkname ../$linkname)"
++        $run eval '(cd $output_objdir && $rm ../$linkname && $LN_S $output_objdir/$linkname ../$linkname)' || exit $?
++      fi
+       ;;
+     esac
+     exit 0
diff --git a/src/uClibc/sources/binutils-002-uclibc.patch b/src/uClibc/sources/binutils-002-uclibc.patch
new file mode 100644 (file)
index 0000000..77d20a2
--- /dev/null
@@ -0,0 +1,240 @@
+diff -urN binutils-2.13.90.0.14/bfd/configure binutils-2.13.90.0.14.new/bfd/configure
+--- binutils-2.13.90.0.14/bfd/configure        2002-11-14 12:37:55.000000000 -0500
++++ binutils-2.13.90.0.14.new/bfd/configure    2002-11-19 16:15:42.000000000 -0500
+@@ -1208,7 +1208,7 @@
+ bfd_version_string="\"${VERSION}\""
+ if test x${is_release} = x; then
+   bfd_version_date=`sed -n -e 's/.*DATE //p' < ${srcdir}/version.h`
+-  bfd_version_string="\"${VERSION} ${bfd_version_date}\""
++  bfd_version_string="\"${VERSION} ${bfd_version_date} uClibc\""
+ fi
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-arm.h binutils-2.14.90.0.6/bfd/elf32-arm.h
+--- binutils-2.14.90.0.6.orig/bfd/elf32-arm.h  2003-08-21 09:28:47.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-arm.h       2003-10-13 21:05:03.000000000 -0600
+@@ -117,7 +117,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER     "/usr/lib/ld.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* The size in bytes of an entry in the procedure linkage table.  */
+ #define PLT_ENTRY_SIZE 16
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-cris.c binutils-2.14.90.0.6/bfd/elf32-cris.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-cris.c 2003-08-21 09:28:47.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-cris.c      2003-10-13 21:05:03.000000000 -0600
+@@ -536,7 +536,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* The size in bytes of an entry in the procedure linkage table.  */
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-hppa.c binutils-2.14.90.0.6/bfd/elf32-hppa.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-hppa.c 2003-08-21 09:28:47.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-hppa.c      2003-10-13 21:05:03.000000000 -0600
+@@ -115,7 +115,7 @@
+ #define PLT_ENTRY_SIZE 8
+ #define GOT_ENTRY_SIZE 4
+-#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ static const bfd_byte plt_stub[] =
+ {
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-i370.c binutils-2.14.90.0.6/bfd/elf32-i370.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-i370.c 2003-07-23 09:08:08.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-i370.c      2003-10-13 21:05:03.000000000 -0600
+@@ -305,7 +305,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+     section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* Set the howto pointer for an i370 ELF reloc.  */
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-i386.c binutils-2.14.90.0.6/bfd/elf32-i386.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-i386.c 2003-08-21 09:28:47.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-i386.c      2003-10-13 21:05:03.000000000 -0600
+@@ -423,7 +423,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
+    copying dynamic variables from a shared lib into an app's dynbss
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-m68k.c binutils-2.14.90.0.6/bfd/elf32-m68k.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-m68k.c 2003-08-21 09:28:47.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-m68k.c      2003-10-13 21:05:03.000000000 -0600
+@@ -187,7 +187,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* The size in bytes of an entry in the procedure linkage table.  */
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-ppc.c binutils-2.14.90.0.6/bfd/elf32-ppc.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-ppc.c  2003-08-21 09:28:47.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-ppc.c       2003-10-13 21:05:03.000000000 -0600
+@@ -49,7 +49,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* The size in bytes of an entry in the procedure linkage table.  */
+ #define PLT_ENTRY_SIZE 12
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-s390.c binutils-2.14.90.0.6/bfd/elf32-s390.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-s390.c 2003-08-21 09:28:47.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-s390.c      2003-10-13 21:05:03.000000000 -0600
+@@ -452,7 +452,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
+    copying dynamic variables from a shared lib into an app's dynbss
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-sh.c binutils-2.14.90.0.6/bfd/elf32-sh.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-sh.c   2003-08-21 09:28:47.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-sh.c        2003-10-13 21:05:03.000000000 -0600
+@@ -113,7 +113,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ static reloc_howto_type sh_elf_howto_table[] =
+ {
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-sparc.c binutils-2.14.90.0.6/bfd/elf32-sparc.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-sparc.c        2003-08-21 09:28:48.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-sparc.c     2003-10-13 21:05:03.000000000 -0600
+@@ -507,7 +507,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* The nop opcode we use.  */
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-vax.c binutils-2.14.90.0.6/bfd/elf32-vax.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-vax.c  2003-08-21 09:28:48.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-vax.c       2003-10-13 21:05:03.000000000 -0600
+@@ -347,7 +347,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/usr/libexec/ld.elf_so"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* The size in bytes of an entry in the procedure linkage table.  */
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-xtensa.c binutils-2.14.90.0.6/bfd/elf32-xtensa.c
+--- binutils-2.14.90.0.6.orig/bfd/elf32-xtensa.c       2003-08-21 09:28:48.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf32-xtensa.c    2003-10-13 21:05:03.000000000 -0600
+@@ -404,7 +404,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* The size in bytes of an entry in the procedure linkage table.
+    (This does _not_ include the space for the literals associated with
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-alpha.c binutils-2.14.90.0.6/bfd/elf64-alpha.c
+--- binutils-2.14.90.0.6.orig/bfd/elf64-alpha.c        2003-08-21 09:28:48.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf64-alpha.c     2003-10-13 21:05:03.000000000 -0600
+@@ -2328,7 +2328,7 @@
+ #define MAX_GOT_SIZE          (64*1024)
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
\f
+ /* Handle an Alpha specific section when reading an object file.  This
+    is called when elfcode.h finds a section with an unknown type.
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-hppa.c binutils-2.14.90.0.6/bfd/elf64-hppa.c
+--- binutils-2.14.90.0.6.orig/bfd/elf64-hppa.c 2003-08-21 09:28:48.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf64-hppa.c      2003-10-13 21:05:03.000000000 -0600
+@@ -31,7 +31,7 @@
+ #define DLT_ENTRY_SIZE 0x8
+ #define OPD_ENTRY_SIZE 0x20
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/pa20_64/dld.sl"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* The stub is supposed to load the target address and target's DP
+    value out of the PLT, then do an external branch to the target
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-ppc.c binutils-2.14.90.0.6/bfd/elf64-ppc.c
+--- binutils-2.14.90.0.6.orig/bfd/elf64-ppc.c  2003-08-21 09:28:48.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf64-ppc.c       2003-10-13 21:05:03.000000000 -0600
+@@ -94,7 +94,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* The size in bytes of an entry in the procedure linkage table.  */
+ #define PLT_ENTRY_SIZE 24
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-s390.c binutils-2.14.90.0.6/bfd/elf64-s390.c
+--- binutils-2.14.90.0.6.orig/bfd/elf64-s390.c 2003-08-21 09:28:48.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf64-s390.c      2003-10-13 21:05:03.000000000 -0600
+@@ -473,7 +473,7 @@
+ /* The name of the dynamic interpreter.  This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
+    copying dynamic variables from a shared lib into an app's dynbss
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-sh64.c binutils-2.14.90.0.6/bfd/elf64-sh64.c
+--- binutils-2.14.90.0.6.orig/bfd/elf64-sh64.c 2003-08-21 09:28:48.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf64-sh64.c      2003-10-13 21:05:03.000000000 -0600
+@@ -54,7 +54,7 @@
+ /* Return offset of the relocation in PLT entry.  */
+ #define elf_sh64_plt_reloc_offset(info) (info->shared ? 52 : 44)
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* The sh linker needs to keep track of the number of relocs that it
+    decides to copy in check_relocs for each symbol.  This is so that
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-sparc.c binutils-2.14.90.0.6/bfd/elf64-sparc.c
+--- binutils-2.14.90.0.6.orig/bfd/elf64-sparc.c        2003-08-21 09:28:48.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf64-sparc.c     2003-10-13 21:05:03.000000000 -0600
+@@ -959,7 +959,7 @@
+ #define LARGE_PLT_THRESHOLD   32768
+ #define GOT_RESERVED_ENTRIES  1
+-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/sparcv9/ld.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* Fill in the .plt section.  */
+diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-x86-64.c binutils-2.14.90.0.6/bfd/elf64-x86-64.c
+--- binutils-2.14.90.0.6.orig/bfd/elf64-x86-64.c       2003-08-21 09:28:48.000000000 -0600
++++ binutils-2.14.90.0.6/bfd/elf64-x86-64.c    2003-10-13 21:05:03.000000000 -0600
+@@ -258,7 +258,7 @@
+ /* The name of the dynamic interpreter.        This is put in the .interp
+    section.  */
+-#define ELF_DYNAMIC_INTERPRETER "/lib/ld64.so.1"
++#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
+ /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
+    copying dynamic variables from a shared lib into an app's dynbss
diff --git a/src/uClibc/sources/codesets.txt b/src/uClibc/sources/codesets.txt
new file mode 100644 (file)
index 0000000..3e69b72
--- /dev/null
@@ -0,0 +1,2 @@
+./charmaps/ASCII.pairs\r
+./charmaps/ISO-8859-1.pairs\r
diff --git a/src/uClibc/sources/gcc-001-disable-mathf.patch b/src/uClibc/sources/gcc-001-disable-mathf.patch
new file mode 100644 (file)
index 0000000..4772927
--- /dev/null
@@ -0,0 +1,117 @@
+--- gcc-3.3/libstdc++-v3/configure     2003-05-01 20:37:25.000000000 -0600
++++ gcc-3.3-patched/libstdc++-v3/configure     2003-06-21 00:22:02.000000000 -0600
+@@ -5163,10 +5163,6 @@
+ EOF
+       cat >> confdefs.h <<\EOF
+-#define HAVE_FREXPF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+ #define HAVE_HYPOTF 1
+ EOF
+@@ -10293,103 +10289,6 @@
+ #define HAVE_MMAP 1
+ EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_ACOSF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_ASINF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_ATAN2F 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_ATANF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_CEILF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_COPYSIGN 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_COPYSIGNF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_COSF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_COSHF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_EXPF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_FABSF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_FLOORF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_FMODF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_FREXPF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_LDEXPF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_LOG10F 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_LOGF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_MODFF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_POWF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_SINF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_SINHF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_SQRTF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_TANF 1
+-EOF
+-
+-      cat >> confdefs.h <<\EOF
+-#define HAVE_TANHF 1
+-EOF
+-
+       ;;
+   esac
diff --git a/src/uClibc/sources/gcc-006-include-search.patch b/src/uClibc/sources/gcc-006-include-search.patch
new file mode 100644 (file)
index 0000000..44a310a
--- /dev/null
@@ -0,0 +1,18 @@
+--- gcc-3.3.1/gcc/cppinit.c.old        2003-08-29 17:08:57.000000000 -0500
++++ gcc-3.3.1/gcc/cppinit.c    2003-08-29 16:53:36.000000000 -0500
+@@ -787,6 +787,7 @@
+   if (path != 0 && *path != 0)
+     path_include (pfile, path, SYSTEM);
++#if 0
+   /* Search "translated" versions of GNU directories.
+      These have /usr/local/lib/gcc... replaced by specd_prefix.  */
+   if (specd_prefix != 0 && cpp_GCC_INCLUDE_DIR_len)
+@@ -824,6 +825,7 @@
+           }
+       }
+     }
++#endif
+   /* Search ordinary names for GNU include directories.  */
+   for (p = cpp_include_defaults; p->fname; p++)
diff --git a/src/uClibc/sources/gcc-810-libstd++-locale.patch b/src/uClibc/sources/gcc-810-libstd++-locale.patch
new file mode 100644 (file)
index 0000000..d43b950
--- /dev/null
@@ -0,0 +1,283 @@
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.cc
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.cc   2003-02-28 00:09:52.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.cc       2003-08-31 10:55:17.000000000 -0500
+@@ -195,12 +195,15 @@
+       "LC_TIME", 
+       "LC_COLLATE", 
+       "LC_MONETARY",
+-      "LC_MESSAGES", 
++      "LC_MESSAGES"
++#if _GLIBCPP_NUM_CATEGORIES != 0
++      , 
+       "LC_PAPER", 
+       "LC_NAME", 
+       "LC_ADDRESS",
+       "LC_TELEPHONE", 
+       "LC_MEASUREMENT", 
+       "LC_IDENTIFICATION" 
++#endif
+     };
+ }  // namespace std
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.h gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.h
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.h    2003-01-23 12:56:16.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.h        2003-08-31 10:55:17.000000000 -0500
+@@ -46,6 +46,10 @@
+ #define _GLIBCPP_C_LOCALE_GNU 1
+ #define _GLIBCPP_NUM_CATEGORIES 6
++#ifdef __UCLIBC__
++#undef _GLIBCPP_NUM_CATEGORIES
++#define _GLIBCPP_NUM_CATEGORIES 0
++#endif
+ #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+ namespace __gnu_cxx
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c++locale_internal.h gcc-3.3.1/libstdc++-v3/config/locale/gnu/c++locale_internal.h
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c++locale_internal.h  2002-09-05 02:46:16.000000000 -0500
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c++locale_internal.h      2003-08-31 10:55:17.000000000 -0500
+@@ -48,7 +48,9 @@
+ extern "C" __typeof(towlower_l) __towlower_l;
+ extern "C" __typeof(towupper_l) __towupper_l;
+ extern "C" __typeof(wcscoll_l) __wcscoll_l;
++#ifdef HAVE_WCSFTIME
+ extern "C" __typeof(wcsftime_l) __wcsftime_l;
++#endif
+ extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
+ extern "C" __typeof(wctype_l) __wctype_l;
+ extern "C" __typeof(newlocale) __newlocale;
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.cc
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.cc   2003-02-28 00:09:52.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.cc       2003-08-31 10:55:17.000000000 -0500
+@@ -36,6 +36,13 @@
+ #include <locale>
+ #include <bits/c++locale_internal.h>
++#ifdef __UCLIBC__
++extern "C" char *__dcgettext(const char *domainname,
++                           const char *msgid, int category);
++#undef gettext
++#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
++#endif
++
+ namespace std
+ {
+   // Specializations.
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.h gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.h
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.h    2003-01-06 16:20:03.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.h        2003-08-31 10:55:17.000000000 -0500
+@@ -33,6 +33,12 @@
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
++#ifdef __UCLIBC__
++extern "C" char *__textdomain(const char *domainname);
++extern "C" char *__bindtextdomain(const char *domainname,
++                                const char *dirname);
++#endif
++
+   // Non-virtual member functions.
+   template<typename _CharT>
+      messages<_CharT>::messages(size_t __refs)
+@@ -61,7 +67,11 @@
+     messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, 
+                          const char* __dir) const
+     { 
++#ifdef __UCLIBC__
++      __bindtextdomain(__s.c_str(), __dir);
++#else
+       bindtextdomain(__s.c_str(), __dir);
++#endif
+       return this->do_open(__s, __loc); 
+     }
+@@ -83,7 +93,11 @@
+     { 
+       // No error checking is done, assume the catalog exists and can
+       // be used.
++#ifdef __UCLIBC__
++      __textdomain(__s.c_str());
++#else
+       textdomain(__s.c_str());
++#endif
+       return 0;
+     }
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/numeric_members.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/numeric_members.cc
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/numeric_members.cc    2003-02-28 00:09:52.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/numeric_members.cc        2003-08-31 10:55:18.000000000 -0500
+@@ -86,8 +86,13 @@
+       else
+       {
+         // Named locale.
++#ifdef __UCLIBC__
++        _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __cloc->decimal_point_wc }).__w);
++        _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __cloc->thousands_sep_wc }).__w);
++#else
+         _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w);
+         _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w);
++#endif
+         if (_M_thousands_sep == L'\0')
+           _M_grouping = "";
+         else
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/time_members.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/time_members.cc
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/time_members.cc       2003-02-28 00:09:52.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/time_members.cc   2003-08-31 10:55:18.000000000 -0500
+@@ -183,6 +183,7 @@
+       }
+     }
++#ifndef __UCLIBC__
+ #ifdef _GLIBCPP_USE_WCHAR_T
+   template<>
+     void
+@@ -328,4 +329,5 @@
+       }
+     }
+ #endif
++#endif
+ }
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/os/gnu-linux/ctype_base.h gcc-3.3.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h
+--- gcc-3.3.1-old/libstdc++-v3/config/os/gnu-linux/ctype_base.h        2002-09-09 15:26:41.000000000 -0500
++++ gcc-3.3.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h    2003-08-31 10:55:18.000000000 -0500
+@@ -36,11 +36,18 @@
+   struct ctype_base
+   {
+     // Non-standard typedefs.
++#ifdef __UCLIBC__
++    typedef const __ctype_touplow_t* __to_type;
++    // NB: Offsets into ctype<char>::_M_table force a particular size
++    // on the mask type. Because of this, we don't use an enum.
++    typedef __ctype_mask_t    mask;   
++#else
+     typedef const int*                __to_type;
+-
+     // NB: Offsets into ctype<char>::_M_table force a particular size
+     // on the mask type. Because of this, we don't use an enum.
+     typedef unsigned short    mask;   
++#endif
++
+     static const mask upper           = _ISupper;
+     static const mask lower   = _ISlower;
+     static const mask alpha   = _ISalpha;
+diff -urN gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cstdlib.h gcc-3.3.1/libstdc++-v3/include/c_std/std_cstdlib.h
+--- gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cstdlib.h     2003-04-18 05:08:05.000000000 -0500
++++ gcc-3.3.1/libstdc++-v3/include/c_std/std_cstdlib.h 2003-08-31 10:55:18.000000000 -0500
+@@ -101,9 +101,11 @@
+   using ::labs;
+   using ::ldiv;
+   using ::malloc;
++#if _GLIBCPP_USE_WCHAR_T
+   using ::mblen;
+   using ::mbstowcs;
+   using ::mbtowc;
++#endif
+   using ::qsort;
+   using ::rand;
+   using ::realloc;
+@@ -112,8 +114,10 @@
+   using ::strtol;
+   using ::strtoul;
+   using ::system;
++#if _GLIBCPP_USE_WCHAR_T
+   using ::wcstombs;
+   using ::wctomb;
++#endif
+   inline long 
+   abs(long __i) { return labs(__i); }
+diff -urN gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cwchar.h gcc-3.3.1/libstdc++-v3/include/c_std/std_cwchar.h
+--- gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cwchar.h      2003-04-18 05:08:05.000000000 -0500
++++ gcc-3.3.1/libstdc++-v3/include/c_std/std_cwchar.h  2003-08-31 10:55:18.000000000 -0500
+@@ -165,7 +165,9 @@
+   using ::wcscoll;
+   using ::wcscpy;
+   using ::wcscspn;
++#ifdef HAVE_WCSFTIME
+   using ::wcsftime;
++#endif
+   using ::wcslen;
+   using ::wcsncat;
+   using ::wcsncmp;
+diff -urN gcc-3.3.2-old/libstdc++-v3/config/locale/gnu/ctype_members.cc gcc-3.3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc
+--- gcc-3.3.2-old/libstdc++-v3/config/locale/gnu/ctype_members.cc      2003-10-07 03:40:58.000000000 -0500
++++ gcc-3.3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc  2003-11-10 14:21:45.000000000 -0600
+@@ -36,6 +36,14 @@
+ #include <locale>
+ #include <bits/c++locale_internal.h>
++#ifdef __UCLIBC_HAS_XLOCALE__
++struct __uclibc_locale_struct_header {
++        const __ctype_mask_t *__ctype_b;
++        const __ctype_touplow_t *__ctype_tolower;
++        const __ctype_touplow_t *__ctype_toupper;
++};
++#endif
++
+ namespace std
+ {
+   // NB: The other ctype<char> specializations are in src/locale.cc and
+@@ -46,9 +54,9 @@
+     {         
+       _S_destroy_c_locale(_M_c_locale_ctype);
+       _S_create_c_locale(_M_c_locale_ctype, __s); 
+-      _M_toupper = _M_c_locale_ctype->__ctype_toupper;
+-      _M_tolower = _M_c_locale_ctype->__ctype_tolower;
+-      _M_table = _M_c_locale_ctype->__ctype_b;
++      _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper;
++      _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower;
++      _M_table = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b;
+     }
+ #ifdef _GLIBCPP_USE_WCHAR_T  
+diff -urN gcc-3.3.2-old/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h gcc-3.3.2/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h
+--- gcc-3.3.2-old/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h   2002-10-08 18:32:22.000000000 -0500
++++ gcc-3.3.2/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h       2003-11-10 14:20:37.000000000 -0600
+@@ -35,11 +35,21 @@
+ // Information as gleaned from /usr/include/ctype.h
+ #if _GLIBCPP_C_LOCALE_GNU
++#ifdef __UCLIBC_HAS_XLOCALE__
++struct __uclibc_locale_struct_header {
++      const __ctype_mask_t *__ctype_b;
++      const __ctype_touplow_t *__ctype_tolower;
++      const __ctype_touplow_t *__ctype_toupper;
++};
++#endif
++#endif
++
++#if _GLIBCPP_C_LOCALE_GNU
+   const ctype_base::mask*
+   ctype<char>::classic_table() throw()
+   {
+     locale::classic();
+-    return _S_c_locale->__ctype_b;
++    return ((struct __uclibc_locale_struct_header *)_S_c_locale)->__ctype_b;
+   }
+ #else
+   const ctype_base::mask*
+@@ -65,9 +75,9 @@
+   : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
+   {
+     _M_c_locale_ctype = _S_clone_c_locale(__cloc);
+-    _M_toupper = _M_c_locale_ctype->__ctype_toupper;
+-    _M_tolower = _M_c_locale_ctype->__ctype_tolower;
+-    _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b;
++    _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper;
++    _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower;
++    _M_table = __table ? __table : ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b;
+   }
+ #else
+   ctype<char>::ctype(__c_locale, const mask* __table, bool __del, 
+@@ -96,9 +106,9 @@
+   __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
+   {
+     _M_c_locale_ctype = _S_c_locale; 
+-    _M_toupper = _M_c_locale_ctype->__ctype_toupper;
+-    _M_tolower = _M_c_locale_ctype->__ctype_tolower;
+-    _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b;
++    _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper;
++    _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower;
++    _M_table = __table ? __table : ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b;
+   }
+ #else
+   ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) : 
diff --git a/src/uClibc/sources/gcc-830-nonhidden.patch b/src/uClibc/sources/gcc-830-nonhidden.patch
new file mode 100644 (file)
index 0000000..649a3dc
--- /dev/null
@@ -0,0 +1,14 @@
+diff -urN gcc-3.3.2-orig/gcc/mklibgcc.in gcc-3.3.2/gcc/mklibgcc.in
+--- gcc-3.3.2-orig/gcc/mklibgcc.in     2003-09-08 19:37:34.000000000 -0500
++++ gcc-3.3.2/gcc/mklibgcc.in  2003-10-22 02:27:34.000000000 -0500
+@@ -296,7 +296,9 @@
+   libgcc_a_objs="$libgcc_objs $libgcc_st_objs"
+-  if [ "@libgcc_visibility@" = yes -a "$SHLIB_LINK" ]; then
++  #if [ "@libgcc_visibility@" = yes -a "$SHLIB_LINK" ]; then
++  if [ "@libgcc_visibility@" = I_AM_DISABLED -a "$SHLIB_LINK" ]; then
++    echo "OUCH!!!!! : @libgcc_visibility@ : $SHLIB_LINK : OUCH!!!!!"
+     libgcc_a_objs=
+     echo ""
+     for o in $libgcc_objs $libgcc_st_objs; do
diff --git a/src/uClibc/sources/gcc-840-abi_check.patch b/src/uClibc/sources/gcc-840-abi_check.patch
new file mode 100644 (file)
index 0000000..e4dfd9a
--- /dev/null
@@ -0,0 +1,14 @@
+--- gcc-3.3.2/libstdc++-v3/testsuite/Makefile.in.dist  2003-10-26 00:07:43.000000000 -0500
++++ gcc-3.3.2/libstdc++-v3/testsuite/Makefile.in       2003-10-26 00:06:35.000000000 -0500
+@@ -204,9 +204,9 @@
+ PROGRAMS =  $(noinst_PROGRAMS)
+ abi_check_OBJECTS =  abi_check.$(OBJEXT)
+-abi_check_LDADD = $(LDADD)
++abi_check_LDADD = -lstdc++ $(LDADD)
+ abi_check_DEPENDENCIES = 
+-abi_check_LDFLAGS = 
++abi_check_LDFLAGS = -L../src
+ CXXFLAGS = @CXXFLAGS@
+ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+ LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
diff --git a/src/uClibc/sources/i386-gcc-soft-float.patch b/src/uClibc/sources/i386-gcc-soft-float.patch
new file mode 100644 (file)
index 0000000..805d9bf
--- /dev/null
@@ -0,0 +1,61 @@
+diff -urN gcc-3.3.2-orig/gcc/config/i386/i386.h gcc-3.3.2/gcc/config/i386/i386.h
+--- gcc-3.3.2-orig/gcc/config/i386/i386.h      2003-06-25 16:18:31.000000000 -0500
++++ gcc-3.3.2/gcc/config/i386/i386.h   2003-10-22 01:46:57.000000000 -0500
+@@ -653,6 +653,7 @@
+ /* Define for XFmode or TFmode extended real floating point support.
+    The XFmode is specified by i386 ABI, while TFmode may be faster
+    due to alignment and simplifications in the address calculations.  */
++#if 0
+ #define LONG_DOUBLE_TYPE_SIZE (TARGET_128BIT_LONG_DOUBLE ? 128 : 96)
+ #define MAX_LONG_DOUBLE_TYPE_SIZE 128
+ #ifdef __x86_64__
+@@ -660,6 +661,17 @@
+ #else
+ #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 96
+ #endif
++#else
++        /* Set up for x86 soft float with 64-bit long doubles, since that's
++         * all the soft float emulation supports. */
++#define LONG_DOUBLE_TYPE_SIZE (TARGET_128BIT_LONG_DOUBLE ? 128 : (TARGET_80387 ? 96 : 64))
++#define MAX_LONG_DOUBLE_TYPE_SIZE 128
++#ifdef __x86_64__
++#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128
++#else
++#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE (TARGET_80387 ? 96 : 64)
++#endif
++#endif
+ /* Set the value of FLT_EVAL_METHOD in float.h.  When using only the
+    FPU, assume that the fpcw is set to extended precision; when using
+diff -urN gcc-3.3.2-orig/gcc/config/t-linux gcc-3.3.2/gcc/config/t-linux
+--- gcc-3.3.2-orig/gcc/config/t-linux  2003-06-04 11:56:11.000000000 -0500
++++ gcc-3.3.2/gcc/config/t-linux       2003-10-22 01:46:39.000000000 -0500
+@@ -14,3 +14,28 @@
+ LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
+   $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
+ LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
++
++##############################################
++# We want fine grained libraries, so use the new code to build the
++# floating point emulation libraries.
++FPBIT = fp-bit.c
++DPBIT = dp-bit.c
++
++#LIB2FUNCS_EXTRA = xp-bit.c
++
++dp-bit.c: $(srcdir)/config/fp-bit.c
++      echo '#ifdef __LITTLE_ENDIAN__' > dp-bit.c
++      echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c
++      echo '#endif'           >> dp-bit.c
++      cat $(srcdir)/config/fp-bit.c >> dp-bit.c
++
++fp-bit.c: $(srcdir)/config/fp-bit.c
++      echo '#define FLOAT' > fp-bit.c
++      echo '#ifdef __LITTLE_ENDIAN__' >> fp-bit.c
++      echo '#define FLOAT_BIT_ORDER_MISMATCH' >>fp-bit.c
++      echo '#endif'           >> fp-bit.c
++      cat $(srcdir)/config/fp-bit.c >> fp-bit.c
++
++#MULTILIB_OPTIONS = msoft-float
++#MULTILIB_DIRNAMES = soft-float
++
diff --git a/src/uClibc/sources/locales.txt b/src/uClibc/sources/locales.txt
new file mode 100644 (file)
index 0000000..acfc4b6
--- /dev/null
@@ -0,0 +1,7 @@
+@euro e\r
+@cyrillic c\r
+#---------------------------------------------------------------------------\r
+UTF-8 yes\r
+8-BIT yes\r
+#---------------------------------------------------------------------------\r
+en_US.UTF-8 UTF-8\r
diff --git a/src/uClibc/sources/patch-kernel.sh b/src/uClibc/sources/patch-kernel.sh
new file mode 100644 (file)
index 0000000..d9a76e7
--- /dev/null
@@ -0,0 +1,53 @@
+#! /bin/sh\r
+# A little script I whipped up to make it easy to\r
+# patch source trees and have sane error handling\r
+# -Erik\r
+#\r
+# (c) 2002 Erik Andersen <andersen@codepoet.org>\r
+\r
+# Set directories from arguments, or use defaults.\r
+targetdir=${1-.}\r
+patchdir=${2-../kernel-patches}\r
+patchpattern=${3-*}\r
+\r
+if [ ! -d "${targetdir}" ] ; then\r
+    echo "Aborting.  '${targetdir}' is not a directory."\r
+    exit 1\r
+fi\r
+if [ ! -d "${patchdir}" ] ; then\r
+    echo "Aborting.  '${patchdir}' is not a directory."\r
+    exit 1\r
+fi\r
+    \r
+for i in ${patchdir}/${patchpattern} ; do \r
+    case "$i" in\r
+       *.gz)\r
+       type="gzip"; uncomp="gunzip -dc"; ;; \r
+       *.bz)\r
+       type="bzip"; uncomp="bunzip -dc"; ;; \r
+       *.bz2)\r
+       type="bzip2"; uncomp="bunzip2 -dc"; ;; \r
+       *.zip)\r
+       type="zip"; uncomp="unzip -d"; ;; \r
+       *.Z)\r
+       type="compress"; uncomp="uncompress -c"; ;; \r
+       *)\r
+       type="plaintext"; uncomp="cat"; ;; \r
+    esac\r
+    echo ""\r
+    echo "Applying ${i} using ${type}: " \r
+    ${uncomp} ${i} | patch -p1 -E -d ${targetdir} \r
+    if [ $? != 0 ] ; then\r
+        echo "Patch failed!  Please fix $i!"\r
+       exit 1\r
+    fi\r
+done\r
+\r
+# Check for rejects...\r
+if [ "`find $targetdir/ '(' -name '*.rej' -o -name '.*.rej' ')' -print`" ] ; then\r
+    echo "Aborting.  Reject files found."\r
+    exit 1\r
+fi\r
+\r
+# Remove backup files\r
+find $targetdir/ '(' -name '*.orig' -o -name '.*.orig' ')' -exec rm -f {} \;\r
diff --git a/src/uClibc/sources/uClibc.config b/src/uClibc/sources/uClibc.config
new file mode 100644 (file)
index 0000000..11174bd
--- /dev/null
@@ -0,0 +1,146 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_h8300 is not set
+TARGET_i386=y
+# TARGET_i960 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+TARGET_ARCH="i386"
+# CONFIG_GENERIC_386 is not set
+CONFIG_386=y
+# CONFIG_486 is not set
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+ARCH_LITTLE_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+# ARCH_HAS_NO_MMU is not set
+UCLIBC_HAS_MMU=y
+# UCLIBC_HAS_FLOATS is not set
+WARNINGS="-Wall"
+KERNEL_SOURCE="/usr/src/linux"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+# UCLIBC_PIE_SUPPORT is not set
+LDSO_LDD_SUPPORT=y
+# UCLIBC_CTOR_DTOR is not set
+# UCLIBC_PROPOLICE is not set
+# UCLIBC_PROFILING is not set
+# HAS_NO_THREADS is not set
+# UCLIBC_HAS_THREADS is not set
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+# MALLOC_GLIBC_COMPAT is not set
+# UCLIBC_DYNAMIC_ATEXIT is not set
+# HAS_SHADOW is not set
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+# UCLIBC_HAS_IPV6 is not set
+# UCLIBC_HAS_RPC is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+UCLIBC_HAS_CTYPE_UNSAFE=y
+# UCLIBC_HAS_CTYPE_CHECKED is not set
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_LOCALE=y
+# UCLIBC_PREGENERATED_LOCALE_DATA is not set
+# UCLIBC_HAS_XLOCALE is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
+# UCLIBC_HAS_PRINTF_M_SPEC is not set
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+UCLIBC_HAS_SYS_SIGLIST=y
+# UCLIBC_HAS_GETTEXT_AWARENESS is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_WORDEXP is not set
+# UCLIBC_HAS_FTW is not set
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr"
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/tools/CVS/Entries b/tools/CVS/Entries
new file mode 100644 (file)
index 0000000..61c3815
--- /dev/null
@@ -0,0 +1,7 @@
+/check_langs.sh/1.2/Thu Dec 11 11:08:47 2003//TIPCOP_v1_4_0
+/check_strings.pl/1.1.2.4/Mon Feb 28 19:35:03 2005//TIPCOP_v1_4_0
+/cvs2cl.pl/1.1.2.1/Thu Aug 12 23:40:08 2004//TIPCOP_v1_4_0
+/cvs2sql.pl/1.2/Thu Dec 11 11:08:47 2003//TIPCOP_v1_4_0
+/fetchlangs.pl/1.2/Thu Dec 11 11:08:47 2003//TIPCOP_v1_4_0
+/perfTest.sh/1.1.2.1/Wed Jan 26 19:43:36 2005//TIPCOP_v1_4_0
+D/mkflash////
diff --git a/tools/CVS/Repository b/tools/CVS/Repository
new file mode 100644 (file)
index 0000000..e07469c
--- /dev/null
@@ -0,0 +1 @@
+ipcop/tools
diff --git a/tools/CVS/Root b/tools/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/tools/CVS/Tag b/tools/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/tools/check_langs.sh b/tools/check_langs.sh
new file mode 100644 (file)
index 0000000..8bf794a
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash\r
+\r
+if [ ! -d ./langs/ ]; then\r
+       echo "Script can only be started from IPCop Source base directory"\r
+       exit 1\r
+fi\r
+\r
+cat ./langs/en/cgi-bin/en.pl | grep \'.*\' | awk -F\' '{print $2}'| sort > /tmp/en_cgi-bin.$$\r
+cat ./langs/en/install/lang_en.c | grep TR_ | awk -F\  '{print $2}' > /tmp/en_install.$$\r
+\r
+for i in ./langs/[a-z]*; do\r
+    if [ "$i" == "./langs/CVS" ] ; then continue; fi\r
+    language=`echo "$i" | awk -F/  '{ print $3 }'`\r
+\r
+    echo "############################################################################"\r
+    echo "# Checking install/setup translations for language: ${language}                     #"\r
+    echo "############################################################################"\r
+    cat ./langs/${language}/install/lang_${language}.c | grep TR_ | awk -F\  '{print $2}' | \\r
+        diff /tmp/en_install.$$ - |  grep \<\r
+\r
+    echo "############################################################################"\r
+    echo "# Checking cgi-bin translations for language: ${language}                           #"\r
+    echo "############################################################################"\r
+    cat ./langs/${language}/cgi-bin/${language}.pl | grep \'.*\' | awk -F\' '{print $2}' | sort | \\r
+        diff /tmp/en_cgi-bin.$$ - | grep \<\r
+done\r
+\r
+rm -f /tmp/en_cgi-bin.$$\r
+rm -f /tmp/en_install.$$\r
+\r
+exit 0\r
+\r
diff --git a/tools/check_strings.pl b/tools/check_strings.pl
new file mode 100644 (file)
index 0000000..f9f57d6
--- /dev/null
@@ -0,0 +1,62 @@
+#!/usr/bin/perl\r
+#\r
+############################################################################\r
+#                                                                          #\r
+# This file is part of the IPCop Firewall.                                 #\r
+#                                                                          #\r
+# IPCop is free software; you can redistribute it and/or modify            #\r
+# it under the terms of the GNU General Public License as published by     #\r
+# the Free Software Foundation; either version 2 of the License, or        #\r
+# (at your option) any later version.                                      #\r
+#                                                                          #\r
+# IPCop is distributed in the hope that it will be useful,                 #\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #\r
+# GNU General Public License for more details.                             #\r
+#                                                                          #\r
+# You should have received a copy of the GNU General Public License        #\r
+# along with IPCop; if not, write to the Free Software                     #\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #\r
+#                                                                          #\r
+# Copyright (C) 2004-03-12 Mark Wormgoor <mark@wormgoor.com>               #\r
+#                                                                          #\r
+############################################################################\r
+#\r
+# $Id: check_strings.pl,v 1.1.2.4 2005/02/28 19:35:03 eoberlander Exp $\r
+#\r
+\r
+my (%tr2, $basedir);\r
+\r
+use Cwd;\r
+use File::Find;\r
+\r
+$basedir = cwd();\r
+require "${basedir}/langs/en/cgi-bin/en.pl";\r
+\r
+sub wanted {\r
+       if ( -f $File::Find::name && open(FILE, $File::Find::name)) {\r
+               while (<FILE>) {\r
+                       while ($_ =~ /\$Lang::tr{'([A-Za-z0-9,:_\s\/\.-]+)'}/g) {\r
+                               $tr2{$1} = 'empty string';\r
+                       }\r
+               }\r
+               close(FILE);\r
+       }\r
+}\r
+\r
+## Main\r
+find (\&wanted, $basedir );\r
+\r
+for my $key ( sort (keys %tr) ) {\r
+       my $value = $tr{$key};\r
+       if (! $tr2{$key}) {\r
+               print "WARNING: translation string unused: $key\n";\r
+       }\r
+}\r
+\r
+for my $key ( sort(keys %tr2) ) {\r
+       my $value = $tr2{$key};\r
+       if (! $tr{$key}) {\r
+               print "WARNING: untranslated string: $key\n";\r
+       }\r
+}\r
diff --git a/tools/cvs2cl.pl b/tools/cvs2cl.pl
new file mode 100644 (file)
index 0000000..67d52ce
--- /dev/null
@@ -0,0 +1,3174 @@
+#!/bin/sh\r
+exec perl -w -x $0 ${1+"$@"} # -*- mode: perl; perl-indent-level: 2; -*-\r
+#!perl -w\r
+\r
+\r
+##############################################################\r
+###                                                        ###\r
+### cvs2cl.pl: produce ChangeLog(s) from `cvs log` output. ###\r
+###                                                        ###\r
+##############################################################\r
+\r
+## $Revision: 1.1.2.1 $\r
+## $Date: 2004/08/12 23:40:08 $\r
+## $Author: gespinasse $\r
+##\r
+\r
+use strict;\r
+\r
+use File::Basename qw( fileparse );\r
+use Getopt::Long   qw( GetOptions );\r
+use Text::Wrap     qw( );\r
+use User::pwent    qw( getpwnam );\r
+\r
+# The Plan:\r
+#\r
+# Read in the logs for multiple files, spit out a nice ChangeLog that\r
+# mirrors the information entered during `cvs commit'.\r
+#\r
+# The problem presents some challenges. In an ideal world, we could\r
+# detect files with the same author, log message, and checkin time --\r
+# each <filelist, author, time, logmessage> would be a changelog entry.\r
+# We'd sort them; and spit them out.  Unfortunately, CVS is *not atomic*\r
+# so checkins can span a range of times.  Also, the directory structure\r
+# could be hierarchical.\r
+#\r
+# Another question is whether we really want to have the ChangeLog\r
+# exactly reflect commits. An author could issue two related commits,\r
+# with different log entries, reflecting a single logical change to the\r
+# source. GNU style ChangeLogs group these under a single author/date.\r
+# We try to do the same.\r
+#\r
+# So, we parse the output of `cvs log', storing log messages in a\r
+# multilevel hash that stores the mapping:\r
+#   directory => author => time => message => filelist\r
+# As we go, we notice "nearby" commit times and store them together\r
+# (i.e., under the same timestamp), so they appear in the same log\r
+# entry.\r
+#\r
+# When we've read all the logs, we twist this mapping into\r
+# a time => author => message => filelist mapping for each directory.\r
+#\r
+# If we're not using the `--distributed' flag, the directory is always\r
+# considered to be `./', even as descend into subdirectories.\r
+\r
+# Call Tree\r
+\r
+# name                         number of lines (10.xii.03)\r
+# parse_options                         192\r
+# derive_changelog                       13\r
+# +-maybe_grab_accumulation_date         38\r
+# +-read_changelog                      277\r
+#   +-maybe_read_user_map_file           94\r
+#     +-run_ext                           9\r
+#   +-read_file_path                     29\r
+#   +-read_symbolic_name                 43\r
+#   +-read_revision                      49\r
+#   +-read_date_author_and_state         25\r
+#     +-parse_date_author_and_state      20\r
+#   +-read_branches                      36\r
+# +-output_changelog                    424\r
+#   +-pretty_file_list                  290\r
+#     +-common_path_prefix               35\r
+#   +-preprocess_msg_text                30\r
+#     +-min                               1\r
+#   +-mywrap                             16\r
+#   +-last_line_len                       5\r
+#   +-wrap_log_entry                    177\r
+#\r
+# Utilities\r
+#\r
+# xml_escape                              6\r
+# slurp_file                             11\r
+# debug                                   5\r
+# version                                 2\r
+# usage                                 142\r
+\r
+# -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*-\r
+#\r
+# Note about a bug-slash-opportunity:\r
+# -----------------------------------\r
+#\r
+# There's a bug in Text::Wrap, which affects cvs2cl.  This script\r
+# reveals it:\r
+#\r
+#   #!/usr/bin/perl -w\r
+#\r
+#   use Text::Wrap;\r
+#\r
+#   my $test_text =\r
+#   "This script demonstrates a bug in Text::Wrap.  The very long line\r
+#   following this paragraph will be relocated relative to the surrounding\r
+#   text:\r
+#\r
+#   ====================================================================\r
+#\r
+#   See?  When the bug happens, we'll get the line of equal signs below\r
+#   this paragraph, even though it should be above.";\r
+#\r
+#\r
+#   # Print out the test text with no wrapping:\r
+#   print "$test_text";\r
+#   print "\n";\r
+#   print "\n";\r
+#\r
+#   # Now print it out wrapped, and see the bug:\r
+#   print wrap ("\t", "        ", "$test_text");\r
+#   print "\n";\r
+#   print "\n";\r
+#\r
+# If the line of equal signs were one shorter, then the bug doesn't\r
+# happen.  Interesting.\r
+#\r
+# Anyway, rather than fix this in Text::Wrap, we might as well write a\r
+# new wrap() which has the following much-needed features:\r
+#\r
+# * initial indentation, like current Text::Wrap()\r
+# * subsequent line indentation, like current Text::Wrap()\r
+# * user chooses among: force-break long words, leave them alone, or die()?\r
+# * preserve existing indentation: chopped chunks from an indented line\r
+#   are indented by same (like this line, not counting the asterisk!)\r
+# * optional list of things to preserve on line starts, default ">"\r
+#\r
+# Note that the last two are essentially the same concept, so unify in\r
+# implementation and give a good interface to controlling them.\r
+#\r
+# And how about:\r
+#\r
+# Optionally, when encounter a line pre-indented by same as previous\r
+# line, then strip the newline and refill, but indent by the same.\r
+# Yeah...\r
+\r
+# Globals --------------------------------------------------------------------\r
+\r
+# In case we have to print it out:\r
+my $VERSION = '$Revision: 1.1.2.1 $';\r
+$VERSION =~ s/\S+\s+(\S+)\s+\S+/$1/;\r
+\r
+## Vars set by options:\r
+\r
+# Print debugging messages?\r
+my $Debug = 0;\r
+\r
+# Just show version and exit?\r
+my $Print_Version = 0;\r
+\r
+# Just print usage message and exit?\r
+my $Print_Usage = 0;\r
+\r
+# What file should we generate (defaults to "ChangeLog")?\r
+my $Log_File_Name = "ChangeLog";\r
+\r
+# Grab most recent entry date from existing ChangeLog file, just add\r
+# to that ChangeLog.\r
+my $Cumulative = 0;\r
+\r
+# `cvs log -d`, this will repeat the last entry in the old log.  This is OK,\r
+# as it guarantees at least one entry in the update changelog, which means\r
+# that there will always be a date to extract for the next update.  The repeat\r
+# entry can be removed in postprocessing, if necessary.\r
+\r
+# MJP 2003-08-02\r
+# I don't think this actually does anything useful\r
+my $Update = 0;\r
+\r
+# Expand usernames to email addresses based on a map file?\r
+my $User_Map_File = '';\r
+my $User_Passwd_File;\r
+my $Mail_Domain;\r
+\r
+# Output log in chronological order? [default is reverse chronological order]\r
+my $Chronological_Order = 0;\r
+\r
+# Grab user details via gecos\r
+my $Gecos = 0;\r
+\r
+# User domain for gecos email addresses\r
+my $Domain;\r
+\r
+# Output to a file or to stdout?\r
+my $Output_To_Stdout = 0;\r
+\r
+# Eliminate empty log messages?\r
+my $Prune_Empty_Msgs = 0;\r
+\r
+# Tags of which not to output\r
+my %ignore_tags;\r
+\r
+# Show only revisions with Tags\r
+my %show_tags;\r
+\r
+# Don't call Text::Wrap on the body of the message\r
+my $No_Wrap = 0;\r
+\r
+# Indentation of log messages\r
+my $Indent = "\t";\r
+\r
+# Don't do any pretty print processing\r
+my $Summary = 0;\r
+\r
+# Separates header from log message.  Code assumes it is either " " or\r
+# "\n\n", so if there's ever an option to set it to something else,\r
+# make sure to go through all conditionals that use this var.\r
+my $After_Header = " ";\r
+\r
+# XML Encoding\r
+my $XML_Encoding = '';\r
+\r
+# Format more for programs than for humans.\r
+my $XML_Output = 0;\r
+my $No_XML_Namespace = 0;\r
+my $No_XML_ISO_Date = 0;\r
+\r
+# Do some special tweaks for log data that was written in FSF\r
+# ChangeLog style.\r
+my $FSF_Style = 0;\r
+\r
+# Show times in UTC instead of local time\r
+my $UTC_Times = 0;\r
+\r
+# Show times in output?\r
+my $Show_Times = 1;\r
+\r
+# Show day of week in output?\r
+my $Show_Day_Of_Week = 0;\r
+\r
+# Show revision numbers in output?\r
+my $Show_Revisions = 0;\r
+\r
+# Show dead files in output?\r
+my $Show_Dead = 0;\r
+\r
+# Hide dead trunk files which were created as a result of additions on a\r
+# branch?\r
+my $Hide_Branch_Additions = 1;\r
+\r
+# Show tags (symbolic names) in output?\r
+my $Show_Tags = 0;\r
+\r
+# Show tags separately in output?\r
+my $Show_Tag_Dates = 0;\r
+\r
+# Show branches by symbolic name in output?\r
+my $Show_Branches = 0;\r
+\r
+# Show only revisions on these branches or their ancestors.\r
+my @Follow_Branches;\r
+# Show only revisions on these branches or their ancestors; ignore descendent\r
+# branches.\r
+my @Follow_Only;\r
+\r
+# Don't bother with files matching this regexp.\r
+my @Ignore_Files;\r
+\r
+# How exactly we match entries.  We definitely want "o",\r
+# and user might add "i" by using --case-insensitive option.\r
+my $Case_Insensitive = 0;\r
+\r
+# Maybe only show log messages matching a certain regular expression.\r
+my $Regexp_Gate = '';\r
+\r
+# Pass this global option string along to cvs, to the left of `log':\r
+my $Global_Opts = '';\r
+\r
+# Pass this option string along to the cvs log subcommand:\r
+my $Command_Opts = '';\r
+\r
+# Read log output from stdin instead of invoking cvs log?\r
+my $Input_From_Stdin = 0;\r
+\r
+# Don't show filenames in output.\r
+my $Hide_Filenames = 0;\r
+\r
+# Don't shorten directory names from filenames.\r
+my $Common_Dir = 1;\r
+\r
+# Max checkin duration. CVS checkin is not atomic, so we may have checkin\r
+# times that span a range of time. We assume that checkins will last no\r
+# longer than $Max_Checkin_Duration seconds, and that similarly, no\r
+# checkins will happen from the same users with the same message less\r
+# than $Max_Checkin_Duration seconds apart.\r
+my $Max_Checkin_Duration = 180;\r
+\r
+# What to put at the front of [each] ChangeLog.\r
+my $ChangeLog_Header = '';\r
+\r
+# Whether to enable 'delta' mode, and for what start/end tags.\r
+my $Delta_Mode = 0;\r
+my $Delta_From = '';\r
+my $Delta_To = '';\r
+\r
+my $TestCode;\r
+\r
+# Whether to parse filenames from the RCS filename, and if so what\r
+# prefix to strip.\r
+my $RCS_Root;\r
+\r
+# Whether to output information on the # of lines added and removed\r
+# by each file modification.\r
+my $Show_Lines_Modified = 0;\r
+\r
+## end vars set by options.\r
+\r
+# latest observed times for the start/end tags in delta mode\r
+my $Delta_StartTime = 0;\r
+my $Delta_EndTime = 0;\r
+\r
+my $No_Ancestors = 0;\r
+\r
+my $No_Extra_Indent = 0;\r
+\r
+my $GroupWithinDate = 0;\r
+\r
+# ----------------------------------------------------------------------------\r
+\r
+package CVS::Utils::ChangeLog::EntrySet;\r
+\r
+sub new {\r
+  my $class = shift;\r
+  my %self;\r
+  bless \%self, $class;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub output_changelog {\r
+  my $output_type = $XML_Output ? 'XML' : 'Text';\r
+  my $output_class = "CVS::Utils::ChangeLog::EntrySet::Output::${output_type}";\r
+  my $output = $output_class->new(follow_branches => \@Follow_Branches,\r
+                                  follow_only     => \@Follow_Only,\r
+                                  ignore_tags     => \%ignore_tags,\r
+                                  show_tags       => \%show_tags,\r
+                                 );\r
+  $output->output_changelog(@_);\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub add_fileentry {\r
+  my ($self, $file_full_path, $time, $revision, $state, $lines,\r
+      $branch_names, $branch_roots, $branch_numbers,\r
+      $symbolic_names, $author, $msg_txt) = @_;\r
+\r
+      my $qunk =\r
+        CVS::Utils::ChangeLog::FileEntry->new($file_full_path, $time, $revision,\r
+                                              $state, $lines,\r
+                                              $branch_names, $branch_roots,\r
+                                              $branch_numbers,\r
+                                              $symbolic_names);\r
+\r
+      # We might be including revision numbers and/or tags and/or\r
+      # branch names in the output.  Most of the code from here to\r
+      # loop-end deals with organizing these in qunk.\r
+\r
+      unless ( $Hide_Branch_Additions\r
+               and\r
+               $msg_txt =~ /file .+ was initially added on branch \S+./ ) {\r
+        # Add this file to the list\r
+        # (We use many spoonfuls of autovivication magic. Hashes and arrays\r
+        # will spring into existence if they aren't there already.)\r
+\r
+        &main::debug ("(pushing log msg for ". $qunk->dir_key . $qunk->filename . ")\n");\r
+\r
+        # Store with the files in this commit.  Later we'll loop through\r
+        # again, making sure that revisions with the same log message\r
+        # and nearby commit times are grouped together as one commit.\r
+        $self->{$qunk->dir_key}{$author}{$time}{$msg_txt} =\r
+          CVS::Utils::ChangeLog::Message->new($msg_txt)\r
+              unless exists $self->{$qunk->dir_key}{$author}{$time}{$msg_txt};\r
+        $self->{$qunk->dir_key}{$author}{$time}{$msg_txt}->add_fileentry($qunk);\r
+      }\r
+\r
+}\r
+\r
+# ----------------------------------------------------------------------------\r
+\r
+package CVS::Utils::ChangeLog::EntrySet::Output::Text;\r
+\r
+use base qw( CVS::Utils::ChangeLog::EntrySet::Output );\r
+\r
+use File::Basename qw( fileparse );\r
+\r
+sub new {\r
+  my $class = shift;\r
+  my $self = $class->SUPER::new(@_);\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub wday {\r
+  my $self = shift; my $class = ref $self;\r
+  my ($wday) = @_;\r
+\r
+  return $Show_Day_Of_Week ? ' ' . $class->weekday_en($wday) : '';\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub header_line {\r
+  my $self = shift;\r
+  my ($time, $author, $lastdate) = @_;\r
+\r
+  my $header_line = '';\r
+\r
+  my (undef,$min,$hour,$mday,$mon,$year,$wday)\r
+    = $UTC_Times ? gmtime($time) : localtime($time);\r
+\r
+  my $date = $self->fdatetime($time);\r
+\r
+  if ($Show_Times) {\r
+    $header_line =\r
+      sprintf "%s  %s\n\n", $date, $author;\r
+  } else {\r
+    if ( ! defined $lastdate or $date ne $lastdate or ! $GroupWithinDate ) {\r
+      if ( $GroupWithinDate ) {\r
+        $header_line = "$date\n\n";\r
+      } else {\r
+        $header_line = "$date  $author\n\n";\r
+      }\r
+    } else {\r
+      $header_line = '';\r
+    }\r
+  }\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub preprocess_msg_text {\r
+  my $self = shift;\r
+  my ($text) = @_;\r
+\r
+  $text = $self->SUPER::preprocess_msg_text($text);\r
+\r
+  unless ( $No_Wrap ) {\r
+    # Strip off lone newlines, but only for lines that don't begin with\r
+    # whitespace or a mail-quoting character, since we want to preserve\r
+    # that kind of formatting.  Also don't strip newlines that follow a\r
+    # period; we handle those specially next.  And don't strip\r
+    # newlines that precede an open paren.\r
+    1 while $text =~ s/(^|\n)([^>\s].*[^.\n])\n([^>\n])/$1$2 $3/g;\r
+\r
+    # If a newline follows a period, make sure that when we bring up the\r
+    # bottom sentence, it begins with two spaces.\r
+    1 while $text =~ s/(^|\n)([^>\s].*)\n([^>\n])/$1$2  $3/g;\r
+  }\r
+\r
+  return $text;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+# Here we take a bunch of qunks and convert them into printed\r
+# summary that will include all the information the user asked for.\r
+sub pretty_file_list {\r
+  my $self = shift;\r
+\r
+  return ''\r
+    if $Hide_Filenames;\r
+\r
+  my $qunksref = shift;\r
+\r
+  my @filenames;\r
+  my $beauty = '';          # The accumulating header string for this entry.\r
+  my %non_unanimous_tags;   # Tags found in a proper subset of qunks\r
+  my %unanimous_tags;       # Tags found in all qunks\r
+  my %all_branches;         # Branches found in any qunk\r
+  my $fbegun = 0;           # Did we begin printing filenames yet?\r
+\r
+  my ($common_dir, $qunkrefs) =\r
+    $self->_pretty_file_list(\(%unanimous_tags, %non_unanimous_tags, %all_branches), $qunksref);\r
+\r
+  my @qunkrefs = @$qunkrefs;\r
+\r
+  # Not XML output, so complexly compactify for chordate consumption.  At this\r
+  # point we have enough global information about all the qunks to organize\r
+  # them non-redundantly for output.\r
+\r
+  if ($common_dir) {\r
+    # Note that $common_dir still has its trailing slash\r
+    $beauty .= "$common_dir: ";\r
+  }\r
+\r
+  if ($Show_Branches)\r
+  {\r
+    # For trailing revision numbers.\r
+    my @brevisions;\r
+\r
+    foreach my $branch (keys (%all_branches))\r
+    {\r
+      foreach my $qunkref (@qunkrefs)\r
+      {\r
+        if ((defined ($qunkref->branch))\r
+            and ($qunkref->branch eq $branch))\r
+        {\r
+          if ($fbegun) {\r
+            # kff todo: comma-delimited in XML too?  Sure.\r
+            $beauty .= ", ";\r
+          }\r
+          else {\r
+            $fbegun = 1;\r
+          }\r
+          my $fname = substr ($qunkref->filename, length ($common_dir));\r
+          $beauty .= $fname;\r
+          $qunkref->{'printed'} = 1;  # Just setting a mark bit, basically\r
+\r
+          if ( $Show_Tags and defined $qunkref->tags ) {\r
+            my @tags = grep ($non_unanimous_tags{$_}, @{$qunkref->tags});\r
+\r
+            if (@tags) {\r
+              $beauty .= " (tags: ";\r
+              $beauty .= join (', ', @tags);\r
+              $beauty .= ")";\r
+            }\r
+          }\r
+\r
+          if ($Show_Revisions) {\r
+            # Collect the revision numbers' last components, but don't\r
+            # print them -- they'll get printed with the branch name\r
+            # later.\r
+            $qunkref->revision =~ /.+\.([\d]+)$/;\r
+            push (@brevisions, $1);\r
+\r
+            # todo: we're still collecting branch roots, but we're not\r
+            # showing them anywhere.  If we do show them, it would be\r
+            # nifty to just call them revision "0" on a the branch.\r
+            # Yeah, that's the ticket.\r
+          }\r
+        }\r
+      }\r
+      $beauty .= " ($branch";\r
+      if (@brevisions) {\r
+        if ((scalar (@brevisions)) > 1) {\r
+          $beauty .= ".[";\r
+          $beauty .= (join (',', @brevisions));\r
+          $beauty .= "]";\r
+        }\r
+        else {\r
+          # Square brackets are spurious here, since there's no range to\r
+          # encapsulate\r
+          $beauty .= ".$brevisions[0]";\r
+        }\r
+      }\r
+      $beauty .= ")";\r
+    }\r
+  }\r
+\r
+  # Okay; any qunks that were done according to branch are taken care\r
+  # of, and marked as printed.  Now print everyone else.\r
+\r
+  my %fileinfo_printed;\r
+  foreach my $qunkref (@qunkrefs)\r
+  {\r
+    next if (defined ($qunkref->{'printed'}));   # skip if already printed\r
+\r
+    my $b = substr ($qunkref->filename, length ($common_dir));\r
+    # todo: Shlomo's change was this:\r
+    # $beauty .= substr ($qunkref->filename,\r
+    #              (($common_dir eq "./") ? '' : length ($common_dir)));\r
+    $qunkref->{'printed'} = 1;  # Set a mark bit.\r
+\r
+    if ($Show_Revisions || $Show_Tags || $Show_Dead)\r
+    {\r
+      my $started_addendum = 0;\r
+\r
+      if ($Show_Revisions) {\r
+        $started_addendum = 1;\r
+        $b .= " (";\r
+        $b .= $qunkref->revision;\r
+      }\r
+      if ($Show_Dead && $qunkref->state =~ /dead/)\r
+      {\r
+        # Deliberately not using $started_addendum. Keeping it simple.\r
+        $b .= "[DEAD]";\r
+      }\r
+      if ($Show_Tags && (defined $qunkref->tags)) {\r
+        my @tags = grep ($non_unanimous_tags{$_}, @{$qunkref->tags});\r
+        if ((scalar (@tags)) > 0) {\r
+          if ($started_addendum) {\r
+            $b .= ", ";\r
+          }\r
+          else {\r
+            $b .= " (tags: ";\r
+          }\r
+          $b .= join (', ', @tags);\r
+          $started_addendum = 1;\r
+        }\r
+      }\r
+      if ($started_addendum) {\r
+        $b .= ")";\r
+      }\r
+    }\r
+\r
+    unless ( exists $fileinfo_printed{$b} ) {\r
+      if ($fbegun) {\r
+        $beauty .= ", ";\r
+      } else {\r
+        $fbegun = 1;\r
+      }\r
+      $beauty .= $b, $fileinfo_printed{$b} = 1;\r
+    }\r
+  }\r
+\r
+  # Unanimous tags always come last.\r
+  if ($Show_Tags && %unanimous_tags)\r
+  {\r
+    $beauty .= " (utags: ";\r
+    $beauty .= join (', ', sort keys (%unanimous_tags));\r
+    $beauty .= ")";\r
+  }\r
+\r
+  # todo: still have to take care of branch_roots?\r
+\r
+  $beauty = "$beauty:";\r
+\r
+  return $beauty;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub output_tagdate {\r
+  my $self = shift;\r
+  my ($fh, $time, $tag) = @_;\r
+\r
+  my $fdatetime = $self->fdatetime($time);\r
+  print $fh "$fdatetime  tag $tag\n\n";\r
+  return;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub format_body {\r
+  my $self = shift;\r
+  my ($msg, $files, $qunklist) = @_;\r
+\r
+  my $body;\r
+\r
+  if ( $No_Wrap and ! $Summary ) {\r
+    $msg = $self->preprocess_msg_text($msg);\r
+    $files = $self->mywrap("\t", "\t  ", "* $files");\r
+    $msg =~ s/\n(.+)/\n$Indent$1/g;\r
+    unless ($After_Header eq " ") {\r
+      $msg =~ s/^(.+)/$Indent$1/g;\r
+    }\r
+    if ( $Hide_Filenames ) {\r
+      $body = $After_Header . $msg;\r
+    } else {\r
+      $body = $files . $After_Header . $msg;\r
+    }\r
+  } elsif ( $Summary ) {\r
+    my ($filelist, $qunk);\r
+    my (@DeletedQunks, @AddedQunks, @ChangedQunks);\r
+\r
+    $msg = $self->preprocess_msg_text($msg);\r
+    #\r
+    #     Sort the files (qunks) according to the operation that was\r
+    # performed.  Files which were added have no line change\r
+    # indicator, whereas deleted files have state dead.\r
+    #\r
+    foreach $qunk ( @$qunklist ) {\r
+      if ( "dead" eq $qunk->state) {\r
+        push @DeletedQunks, $qunk;\r
+      } elsif ( ! defined $qunk->lines ) {\r
+        push @AddedQunks, $qunk;\r
+      } else {\r
+        push @ChangedQunks, $qunk;\r
+      }\r
+    }\r
+    #\r
+    #     The qunks list was  originally in tree search order.  Let's\r
+    # get that back.  The lists, if they exist, will be reversed upon\r
+    # processing.\r
+    #\r
+\r
+    #\r
+    #     Now write the three sections onto $filelist\r
+    #\r
+    if ( @DeletedQunks ) {\r
+      $filelist .= "\tDeleted:\n";\r
+      foreach $qunk ( @DeletedQunks ) {\r
+        $filelist .= "\t\t" . $qunk->filename;\r
+        $filelist .= " (" . $qunk->revision . ")";\r
+        $filelist .= "\n";\r
+      }\r
+      undef @DeletedQunks;\r
+    }\r
+\r
+    if ( @AddedQunks ) {\r
+      $filelist .= "\tAdded:\n";\r
+      foreach $qunk (@AddedQunks) {\r
+        $filelist .= "\t\t" . $qunk->filename;\r
+        $filelist .= " (" . $qunk->revision . ")";\r
+        $filelist .= "\n";\r
+      }\r
+      undef @AddedQunks ;\r
+    }\r
+\r
+    if ( @ChangedQunks ) {\r
+      $filelist .= "\tChanged:\n";\r
+      foreach $qunk (@ChangedQunks) {\r
+        $filelist .= "\t\t" . $qunk->filename;\r
+        $filelist .= " (" . $qunk->revision . ")";\r
+        $filelist .= ", \"" . $qunk->state . "\"";\r
+        $filelist .= ", lines: " . $qunk->lines;\r
+        $filelist .= "\n";\r
+      }\r
+      undef @ChangedQunks;\r
+    }\r
+\r
+    chomp $filelist;\r
+\r
+    if ( $Hide_Filenames ) {\r
+      $filelist = '';\r
+    }\r
+\r
+    $msg =~ s/\n(.*)/\n$Indent$1/g;\r
+    unless ( $After_Header eq " " or $FSF_Style ) {\r
+      $msg =~ s/^(.*)/$Indent$1/g;\r
+    }\r
+\r
+    unless ( $No_Wrap ) {\r
+      if ( $FSF_Style ) {\r
+        $msg = $self->wrap_log_entry($msg, '', 69, 69);\r
+        chomp($msg);\r
+        chomp($msg);\r
+      } else {\r
+        $msg = $self->mywrap('', $Indent, "$msg");\r
+        $msg =~ s/[ \t]+\n/\n/g;\r
+      }\r
+    }\r
+\r
+    $body = $filelist . $After_Header . $msg;\r
+  } else {  # do wrapping, either FSF-style or regular\r
+    my $latter_wrap = $No_Extra_Indent ? $Indent : "$Indent  ";\r
+\r
+    if ( $FSF_Style ) {\r
+      $files = $self->mywrap($Indent, $latter_wrap, "* $files");\r
+\r
+      my $files_last_line_len = 0;\r
+      if ( $After_Header eq " " ) {\r
+        $files_last_line_len = $self->last_line_len($files);\r
+        $files_last_line_len += 1;  # for $After_Header\r
+      }\r
+\r
+      $msg = $self->wrap_log_entry($msg, $latter_wrap, 69-$files_last_line_len, 69);\r
+      $body = $files . $After_Header . $msg;\r
+    } else {  # not FSF-style\r
+      $msg = $self->preprocess_msg_text($msg);\r
+      $body = $files . $After_Header . $msg;\r
+      $body = $self->mywrap($Indent, $latter_wrap, "* $body");\r
+      $body =~ s/[ \t]+\n/\n/g;\r
+    }\r
+  }\r
+\r
+  return $body;\r
+}\r
+\r
+# ----------------------------------------------------------------------------\r
+\r
+package CVS::Utils::ChangeLog::EntrySet::Output::XML;\r
+\r
+use base qw( CVS::Utils::ChangeLog::EntrySet::Output );\r
+\r
+use File::Basename qw( fileparse );\r
+\r
+sub new {\r
+  my $class = shift;\r
+  my $self = $class->SUPER::new(@_);\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub header_line {\r
+  my $self = shift;\r
+  my ($time, $author, $lastdate) = @_;\r
+\r
+  my $header_line = '';\r
+\r
+  my $isoDate;\r
+\r
+  my ($y, $m, $d, $H, $M, $S) = (gmtime($time))[5,4,3,2,1,0];\r
+\r
+  # Ideally, this would honor $UTC_Times and use +HH:MM syntax\r
+  $isoDate = sprintf("%04d-%02d-%02dT%02d:%02d:%02dZ",\r
+                     $y + 1900, $m + 1, $d, $H, $M, $S);\r
+\r
+  my (undef,$min,$hour,$mday,$mon,$year,$wday)\r
+    = $UTC_Times ? gmtime($time) : localtime($time);\r
+\r
+  my $date = $self->fdatetime($time);\r
+  $wday = $self->wday($wday);\r
+\r
+  $header_line =\r
+    sprintf ("<date>%4u-%02u-%02u</date>\n${wday}<time>%02u:%02u</time>\n",\r
+             $year+1900, $mon+1, $mday, $hour, $min);\r
+  $header_line .= "<isoDate>$isoDate</isoDate>\n"\r
+    unless $No_XML_ISO_Date;\r
+  $header_line .= sprintf("<author>%s</author>\n" , $author);\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub wday {\r
+  my $self = shift; my $class = ref $self;\r
+  my ($wday) = @_;\r
+\r
+  return '<weekday>' . $class->weekday_en($wday) . "</weekday>\n";\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub escape {\r
+  my $self = shift;\r
+\r
+  my $txt = shift;\r
+  $txt =~ s/&/&amp;/g;\r
+  $txt =~ s/</&lt;/g;\r
+  $txt =~ s/>/&gt;/g;\r
+  return $txt;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub output_header {\r
+  my $self = shift;\r
+  my ($fh) = @_;\r
+\r
+  my $encoding    =\r
+    length $XML_Encoding ? qq'encoding="$XML_Encoding"' : '';\r
+  my $version     = 'version="1.0"';\r
+  my $declaration =\r
+    sprintf '<?xml %s?>', join ' ', grep length, $version, $encoding;\r
+  my $root        =\r
+    $No_XML_Namespace ?\r
+      '<changelog>'     :\r
+        '<changelog xmlns="http://www.red-bean.com/xmlns/cvs2cl/">';\r
+  print $fh "$declaration\n\n$root\n\n";\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub output_footer {\r
+  my $self = shift;\r
+  my ($fh) = @_;\r
+\r
+  print $fh "</changelog>\n";\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub preprocess_msg_text {\r
+  my $self = shift;\r
+  my ($text) = @_;\r
+\r
+  $text = $self->SUPER::preprocess_msg_text($text);\r
+\r
+  $text = $self->escape($text);\r
+  chomp $text;\r
+  $text = "<msg>${text}</msg>\n";\r
+\r
+  return $text;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+# Here we take a bunch of qunks and convert them into a printed\r
+# summary that will include all the information the user asked for.\r
+sub pretty_file_list {\r
+  my $self = shift;\r
+  my ($qunksref) = @_;\r
+\r
+  my $beauty = '';          # The accumulating header string for this entry.\r
+  my %non_unanimous_tags;   # Tags found in a proper subset of qunks\r
+  my %unanimous_tags;       # Tags found in all qunks\r
+  my %all_branches;         # Branches found in any qunk\r
+  my $fbegun = 0;           # Did we begin printing filenames yet?\r
+\r
+  my ($common_dir, $qunkrefs) =\r
+    $self->_pretty_file_list(\(%unanimous_tags, %non_unanimous_tags, %all_branches),\r
+      $qunksref);\r
+\r
+  my @qunkrefs = @$qunkrefs;\r
+\r
+  # If outputting XML, then our task is pretty simple, because we\r
+  # don't have to detect common dir, common tags, branch prefixing,\r
+  # etc.  We just output exactly what we have, and don't worry about\r
+  # redundancy or readability.\r
+\r
+  foreach my $qunkref (@qunkrefs)\r
+  {\r
+    my $filename    = $qunkref->filename;\r
+    my $state       = $qunkref->state;\r
+    my $revision    = $qunkref->revision;\r
+    my $tags        = $qunkref->tags;\r
+    my $branch      = $qunkref->branch;\r
+    my $branchroots = $qunkref->roots;\r
+    my $lines       = $qunkref->lines;\r
+\r
+    $filename = $self->escape($filename);   # probably paranoia\r
+    $revision = $self->escape($revision);   # definitely paranoia\r
+\r
+    $beauty .= "<file>\n";\r
+    $beauty .= "<name>${filename}</name>\n";\r
+    $beauty .= "<cvsstate>${state}</cvsstate>\n";\r
+    $beauty .= "<revision>${revision}</revision>\n";\r
+\r
+    if ($Show_Lines_Modified\r
+        && $lines && $lines =~ m/\+(\d+)\s+-(\d+)/) {\r
+        $beauty .= "<linesadded>$1</linesadded>\n";\r
+        $beauty .= "<linesremoved>$2</linesremoved>\n";\r
+    }\r
+\r
+    if ($branch) {\r
+      $branch   = $self->escape($branch);     # more paranoia\r
+      $beauty .= "<branch>${branch}</branch>\n";\r
+    }\r
+    foreach my $tag (@$tags) {\r
+      $tag = $self->escape($tag);  # by now you're used to the paranoia\r
+      $beauty .= "<tag>${tag}</tag>\n";\r
+    }\r
+    foreach my $root (@$branchroots) {\r
+      $root = $self->escape($root);  # which is good, because it will continue\r
+      $beauty .= "<branchroot>${root}</branchroot>\n";\r
+    }\r
+    $beauty .= "</file>\n";\r
+  }\r
+\r
+  # Theoretically, we could go home now.  But as long as we're here,\r
+  # let's print out the common_dir and utags, as a convenience to\r
+  # the receiver (after all, earlier code calculated that stuff\r
+  # anyway, so we might as well take advantage of it).\r
+\r
+  if ((scalar (keys (%unanimous_tags))) > 1) {\r
+    foreach my $utag ((keys (%unanimous_tags))) {\r
+      $utag = $self->escape($utag);   # the usual paranoia\r
+      $beauty .= "<utag>${utag}</utag>\n";\r
+    }\r
+  }\r
+  if ($common_dir) {\r
+    $common_dir = $self->escape($common_dir);\r
+    $beauty .= "<commondir>${common_dir}</commondir>\n";\r
+  }\r
+\r
+  # That's enough for XML, time to go home:\r
+  return $beauty;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub output_tagdate {\r
+  # NOT YET DONE\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub output_entry {\r
+  my $self = shift;\r
+  my ($fh, $entry) = @_;\r
+  print $fh "<entry>\n$entry</entry>\n\n";\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub format_body {\r
+  my $self = shift;\r
+  my ($msg, $files, $qunklist) = @_;\r
+\r
+  $msg = $self->preprocess_msg_text($msg);\r
+  return $files . $msg;\r
+}\r
+\r
+# ----------------------------------------------------------------------------\r
+\r
+package CVS::Utils::ChangeLog::EntrySet::Output;\r
+\r
+use Carp           qw( croak );\r
+use File::Basename qw( fileparse );\r
+\r
+# Class Utility Functions -------------\r
+\r
+{ # form closure\r
+\r
+my @weekdays = (qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday));\r
+sub weekday_en {\r
+  my $class = shift;\r
+  return $weekdays[$_[0]];\r
+}\r
+\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub new {\r
+  my ($proto, %args) = @_;\r
+  my $class = ref $proto || $proto;\r
+\r
+  my $follow_branches = delete $args{follow_branches};\r
+  my $follow_only     = delete $args{follow_only};\r
+  my $ignore_tags     = delete $args{ignore_tags};\r
+  my $show_tags       = delete $args{show_tags};\r
+  die "Unrecognized arg to EntrySet::Output::new: '$_'\n"\r
+    for keys %args;\r
+\r
+  bless +{follow_branches => $follow_branches,\r
+          follow_only     => $follow_only,\r
+          show_tags       => $show_tags,\r
+          ignore_tags     => $ignore_tags,\r
+         }, $class;\r
+}\r
+\r
+# Abstract Subrs ----------------------\r
+\r
+sub wday               { croak "Whoops.  Abtract method call (wday).\n" }\r
+sub pretty_file_list   { croak "Whoops.  Abtract method call (pretty_file_list).\n" }\r
+sub output_tagdate     { croak "Whoops.  Abtract method call (output_tagdate).\n" }\r
+sub header_line        { croak "Whoops.  Abtract method call (header_line).\n" }\r
+\r
+# Instance Subrs ----------------------\r
+\r
+sub output_header { }\r
+\r
+# -------------------------------------\r
+\r
+sub output_entry {\r
+  my $self = shift;\r
+  my ($fh, $entry) = @_;\r
+  print $fh "$entry\n";\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub output_footer { }\r
+\r
+# -------------------------------------\r
+\r
+sub escape { return $_[1] }\r
+\r
+# -------------------------------------\r
+\r
+sub _revision_is_wanted {\r
+  my ($self, $qunk) = @_;\r
+\r
+  my ($revision, $branch_numbers) = @{$qunk}{qw( revision branch_numbers )};\r
+  my $follow_branches = $self->{follow_branches};\r
+  my $follow_only     = $self->{follow_only};\r
+\r
+#print STDERR "IG: ", join(',', keys %{$self->{ignore_tags}}), "\n";\r
+#print STDERR "IX: ", join(',', @{$qunk->{tags}}), "\n" if defined $qunk->{tags};\r
+#print STDERR "IQ: ", join(',', keys %{$qunk->{branch_numbers}}), "\n" if defined $qunk->{branch_numbers};\r
+#use Data::Dumper; print STDERR Dumper $qunk;\r
+\r
+  for my $ignore_tag (keys %{$self->{ignore_tags}}) {\r
+    return\r
+      if defined $qunk->{tags} and grep $_ eq $ignore_tag, @{$qunk->{tags}};\r
+  }\r
+\r
+  if ( keys %{$self->{show_tags}} ) {\r
+    for my $show_tag (keys %{$self->{show_tags}}) {\r
+      return\r
+        if ! defined $qunk->{tags} or ! grep $_ eq $show_tag, @{$qunk->{tags}};\r
+    }\r
+  }\r
+\r
+  return 1\r
+    unless @$follow_branches + @$follow_only; # no follow is follow all\r
+\r
+  for my $x (map([$_, 1], @$follow_branches),\r
+             map([$_, 0], @$follow_only    )) {\r
+    my ($branch, $followsub) = @$x;\r
+\r
+    # Special case for following trunk revisions\r
+    return 1\r
+      if $branch =~ /^trunk$/i and $revision =~ /^[0-9]+\.[0-9]+$/;\r
+\r
+    if ( my $branch_number = $branch_numbers->{$branch} ) {\r
+      # Are we on one of the follow branches or an ancestor of same?\r
+\r
+      # If this revision is a prefix of the branch number, or possibly is less\r
+      # in the minormost number, OR if this branch number is a prefix of the\r
+      # revision, then yes.  Otherwise, no.\r
+\r
+      # So below, we determine if any of those conditions are met.\r
+\r
+      # Trivial case: is this revision on the branch?  (Compare this way to\r
+      # avoid regexps that screw up Emacs indentation, argh.)\r
+      if ( substr($revision, 0, (length($branch_number) + 1))\r
+           eq\r
+           ($branch_number . ".") ) {\r
+        if ( $followsub ) {\r
+          return 1;\r
+        } elsif (length($revision) == length($branch_number)+2 ) {\r
+          return 1;\r
+        }\r
+      } elsif ( length($branch_number) > length($revision)\r
+                and\r
+                $No_Ancestors ) {\r
+        # Non-trivial case: check if rev is ancestral to branch\r
+\r
+        # r_left still has the trailing "."\r
+        my ($r_left, $r_end) = ($revision =~ /^((?:\d+\.)+)(\d+)$/);\r
+\r
+        # b_left still has trailing "."\r
+        # b_mid has no trailing "."\r
+        my ($b_left, $b_mid) = ($branch_number =~ /^((?:\d+\.)+)(\d+)\.\d+$/);\r
+        return 1\r
+          if $r_left eq $b_left and $r_end <= $b_mid;\r
+      }\r
+    }\r
+  }\r
+\r
+  return;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub output_changelog {\r
+my $self = shift; my $class = ref $self;\r
+  my ($grand_poobah) = @_;\r
+  ### Process each ChangeLog\r
+\r
+  while (my ($dir,$authorhash) = each %$grand_poobah)\r
+  {\r
+    &main::debug ("DOING DIR: $dir\n");\r
+\r
+    # Here we twist our hash around, from being\r
+    #   author => time => message => filelist\r
+    # in %$authorhash to\r
+    #   time => author => message => filelist\r
+    # in %changelog.\r
+    #\r
+    # This is also where we merge entries.  The algorithm proceeds\r
+    # through the timeline of the changelog with a sliding window of\r
+    # $Max_Checkin_Duration seconds; within that window, entries that\r
+    # have the same log message are merged.\r
+    #\r
+    # (To save space, we zap %$authorhash after we've copied\r
+    # everything out of it.)\r
+\r
+    my %changelog;\r
+    while (my ($author,$timehash) = each %$authorhash)\r
+    {\r
+      my %stamptime;\r
+      foreach my $time (sort {$a <=> $b} (keys %$timehash))\r
+      {\r
+        my $msghash = $timehash->{$time};\r
+        while (my ($msg,$qunklist) = each %$msghash)\r
+        {\r
+          my $stamptime = $stamptime{$msg};\r
+          if ((defined $stamptime)\r
+              and (($time - $stamptime) < $Max_Checkin_Duration)\r
+              and (defined $changelog{$stamptime}{$author}{$msg}))\r
+          {\r
+            push(@{$changelog{$stamptime}{$author}{$msg}}, $qunklist->files);\r
+          }\r
+          else {\r
+            $changelog{$time}{$author}{$msg} = $qunklist->files;\r
+            $stamptime{$msg} = $time;\r
+          }\r
+        }\r
+      }\r
+    }\r
+    undef (%$authorhash);\r
+\r
+    ### Now we can write out the ChangeLog!\r
+\r
+    my ($logfile_here, $logfile_bak, $tmpfile);\r
+    my $lastdate;\r
+\r
+    if (! $Output_To_Stdout) {\r
+      $logfile_here =  $dir . $Log_File_Name;\r
+      $logfile_here =~ s/^\.\/\//\//;   # fix any leading ".//" problem\r
+      $tmpfile      = "${logfile_here}.cvs2cl$$.tmp";\r
+      $logfile_bak  = "${logfile_here}.bak";\r
+\r
+      open (LOG_OUT, ">$tmpfile") or die "Unable to open \"$tmpfile\"";\r
+    }\r
+    else {\r
+      open (LOG_OUT, ">-") or die "Unable to open stdout for writing";\r
+    }\r
+\r
+    print LOG_OUT $ChangeLog_Header;\r
+\r
+    my %tag_date_printed;\r
+\r
+    $self->output_header(\*LOG_OUT);\r
+\r
+    my @key_list = ();\r
+    if($Chronological_Order) {\r
+        @key_list = sort {$a <=> $b} (keys %changelog);\r
+    } else {\r
+        @key_list = sort {$b <=> $a} (keys %changelog);\r
+    }\r
+    foreach my $time (@key_list)\r
+    {\r
+      next if ($Delta_Mode &&\r
+               (($time <= $Delta_StartTime) ||\r
+                ($time > $Delta_EndTime && $Delta_EndTime)));\r
+\r
+      # Set up the date/author line.\r
+      # kff todo: do some more XML munging here, on the header\r
+      # part of the entry:\r
+      my (undef,$min,$hour,$mday,$mon,$year,$wday)\r
+          = $UTC_Times ? gmtime($time) : localtime($time);\r
+\r
+      $wday = $self->wday($wday);\r
+      # XML output includes everything else, we might as well make\r
+      # it always include Day Of Week too, for consistency.\r
+      my $authorhash = $changelog{$time};\r
+      if ($Show_Tag_Dates) {\r
+        my %tags;\r
+        while (my ($author,$mesghash) = each %$authorhash) {\r
+          while (my ($msg,$qunk) = each %$mesghash) {\r
+            foreach my $qunkref2 (@$qunk) {\r
+              if (defined ($qunkref2->tags)) {\r
+                foreach my $tag (@{$qunkref2->tags}) {\r
+                  $tags{$tag} = 1;\r
+                }\r
+              }\r
+            }\r
+          }\r
+        }\r
+        # Sort here for determinism to ease testing\r
+        foreach my $tag (sort keys %tags) {\r
+          if ( ! defined $tag_date_printed{$tag} ) {\r
+            $tag_date_printed{$tag} = $time;\r
+            $self->output_tagdate(\*LOG_OUT, $time, $tag);\r
+          }\r
+        }\r
+      }\r
+      while (my ($author,$mesghash) = each %$authorhash)\r
+      {\r
+        # If XML, escape in outer loop to avoid compound quoting:\r
+        $author = $self->escape($author);\r
+\r
+      FOOBIE:\r
+        # We sort here to enable predictable ordering for the testing porpoises\r
+        for my $msg (sort keys %$mesghash)\r
+        {\r
+          my $qunklist = $mesghash->{$msg};\r
+\r
+          my @qunklist =\r
+            grep $self->_revision_is_wanted($_), @$qunklist;\r
+\r
+          next FOOBIE unless @qunklist;\r
+\r
+          my $files               = $self->pretty_file_list(\@qunklist);\r
+          my $header_line;          # date and author\r
+          my $wholething;           # $header_line + $body\r
+\r
+          my $date = $self->fdatetime($time);\r
+          $header_line = $self->header_line($time, $author, $lastdate);\r
+          $lastdate = $date;\r
+\r
+          $Text::Wrap::huge = 'overflow'\r
+            if $Text::Wrap::VERSION >= 2001.0130;\r
+          # Reshape the body according to user preferences.\r
+          my $body = $self->format_body($msg, $files, \@qunklist);\r
+\r
+          $body =~ s/[ \t]+\n/\n/g;\r
+          $wholething = $header_line . $body;\r
+\r
+          # One last check: make sure it passes the regexp test, if the\r
+          # user asked for that.  We have to do it here, so that the\r
+          # test can match against information in the header as well\r
+          # as in the text of the log message.\r
+\r
+          # How annoying to duplicate so much code just because I\r
+          # can't figure out a way to evaluate scalars on the trailing\r
+          # operator portion of a regular expression.  Grrr.\r
+          if ($Case_Insensitive) {\r
+            unless ( $Regexp_Gate and ( $wholething !~ /$Regexp_Gate/oi ) ) {\r
+              $self->output_entry(\*LOG_OUT, $wholething);\r
+            }\r
+          }\r
+          else {\r
+            unless ( $Regexp_Gate and ( $wholething !~ /$Regexp_Gate/o ) ) {\r
+              $self->output_entry(\*LOG_OUT, $wholething);\r
+            }\r
+          }\r
+        }\r
+      }\r
+    }\r
+\r
+    $self->output_footer(\*LOG_OUT);\r
+\r
+    close (LOG_OUT);\r
+\r
+    if ( ! $Output_To_Stdout ) {\r
+      # If accumulating, append old data to new before renaming.  But\r
+      # don't append the most recent entry, since it's already in the\r
+      # new log due to CVS's idiosyncratic interpretation of "log -d".\r
+      if ($Cumulative && -f $logfile_here) {\r
+        open NEW_LOG, ">>$tmpfile"\r
+          or die "trouble appending to $tmpfile ($!)";\r
+\r
+        open OLD_LOG, "<$logfile_here"\r
+          or die "trouble reading from $logfile_here ($!)";\r
+\r
+        my $started_first_entry = 0;\r
+        my $passed_first_entry = 0;\r
+        while (<OLD_LOG>) {\r
+          if ( ! $passed_first_entry ) {\r
+            if ( ( ! $started_first_entry )\r
+                and /^(\d\d\d\d-\d\d-\d\d\s+\d\d:\d\d)/ ) {\r
+              $started_first_entry = 1;\r
+            } elsif ( /^(\d\d\d\d-\d\d-\d\d\s+\d\d:\d\d)/ ) {\r
+              $passed_first_entry = 1;\r
+              print NEW_LOG $_;\r
+            }\r
+          } else {\r
+            print NEW_LOG $_;\r
+          }\r
+        }\r
+\r
+        close NEW_LOG;\r
+        close OLD_LOG;\r
+      }\r
+\r
+      if ( -f $logfile_here ) {\r
+        rename $logfile_here, $logfile_bak;\r
+      }\r
+      rename $tmpfile, $logfile_here;\r
+    }\r
+  }\r
+}\r
+\r
+# -------------------------------------\r
+\r
+# Don't call this wrap, because with 5.5.3, that clashes with the\r
+# (unconditional :-( ) export of wrap() from Text::Wrap\r
+sub mywrap {\r
+  my $self = shift;\r
+  my ($indent1, $indent2, @text) = @_;\r
+  # If incoming text looks preformatted, don't get clever\r
+  my $text = Text::Wrap::wrap($indent1, $indent2, @text);\r
+  if ( grep /^\s+/m, @text ) {\r
+    return $text;\r
+  }\r
+  my @lines = split /\n/, $text;\r
+  $indent2 =~ s!^((?: {8})+)!"\t" x (length($1)/8)!e;\r
+  $lines[0] =~ s/^$indent1\s+/$indent1/;\r
+  s/^$indent2\s+/$indent2/\r
+    for @lines[1..$#lines];\r
+  my $newtext = join "\n", @lines;\r
+  $newtext .= "\n"\r
+    if substr($text, -1) eq "\n";\r
+  return $newtext;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub preprocess_msg_text {\r
+  my $self = shift;\r
+  my ($text) = @_;\r
+\r
+  # Strip out carriage returns (as they probably result from DOSsy editors).\r
+  $text =~ s/\r\n/\n/g;\r
+  # If it *looks* like two newlines, make it *be* two newlines:\r
+  $text =~ s/\n\s*\n/\n\n/g;\r
+\r
+  return $text;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub last_line_len {\r
+  my $self = shift;\r
+\r
+  my $files_list = shift;\r
+  my @lines = split (/\n/, $files_list);\r
+  my $last_line = pop (@lines);\r
+  return length ($last_line);\r
+}\r
+\r
+# -------------------------------------\r
+\r
+# A custom wrap function, sensitive to some common constructs used in\r
+# log entries.\r
+sub wrap_log_entry {\r
+  my $self = shift;\r
+\r
+  my $text = shift;                  # The text to wrap.\r
+  my $left_pad_str = shift;          # String to pad with on the left.\r
+\r
+  # These do NOT take left_pad_str into account:\r
+  my $length_remaining = shift;      # Amount left on current line.\r
+  my $max_line_length  = shift;      # Amount left for a blank line.\r
+\r
+  my $wrapped_text = '';             # The accumulating wrapped entry.\r
+  my $user_indent = '';              # Inherited user_indent from prev line.\r
+\r
+  my $first_time = 1;                # First iteration of the loop?\r
+  my $suppress_line_start_match = 0; # Set to disable line start checks.\r
+\r
+  my @lines = split (/\n/, $text);\r
+  while (@lines)   # Don't use `foreach' here, it won't work.\r
+  {\r
+    my $this_line = shift (@lines);\r
+    chomp $this_line;\r
+\r
+    if ($this_line =~ /^(\s+)/) {\r
+      $user_indent = $1;\r
+    }\r
+    else {\r
+      $user_indent = '';\r
+    }\r
+\r
+    # If it matches any of the line-start regexps, print a newline now...\r
+    if ($suppress_line_start_match)\r
+    {\r
+      $suppress_line_start_match = 0;\r
+    }\r
+    elsif (($this_line =~ /^(\s*)\*\s+[a-zA-Z0-9]/)\r
+           || ($this_line =~ /^(\s*)\* [a-zA-Z0-9_\.\/\+-]+/)\r
+           || ($this_line =~ /^(\s*)\([a-zA-Z0-9_\.\/\+-]+(\)|,\s*)/)\r
+           || ($this_line =~ /^(\s+)(\S+)/)\r
+           || ($this_line =~ /^(\s*)- +/)\r
+           || ($this_line =~ /^()\s*$/)\r
+           || ($this_line =~ /^(\s*)\*\) +/)\r
+           || ($this_line =~ /^(\s*)[a-zA-Z0-9](\)|\.|\:) +/))\r
+    {\r
+      # Make a line break immediately, unless header separator is set\r
+      # and this line is the first line in the entry, in which case\r
+      # we're getting the blank line for free already and shouldn't\r
+      # add an extra one.\r
+      unless (($After_Header ne " ") and ($first_time))\r
+      {\r
+        if ($this_line =~ /^()\s*$/) {\r
+          $suppress_line_start_match = 1;\r
+          $wrapped_text .= "\n${left_pad_str}";\r
+        }\r
+\r
+        $wrapped_text .= "\n${left_pad_str}";\r
+      }\r
+\r
+      $length_remaining = $max_line_length - (length ($user_indent));\r
+    }\r
+\r
+    # Now that any user_indent has been preserved, strip off leading\r
+    # whitespace, so up-folding has no ugly side-effects.\r
+    $this_line =~ s/^\s*//;\r
+\r
+    # Accumulate the line, and adjust parameters for next line.\r
+    my $this_len = length ($this_line);\r
+    if ($this_len == 0)\r
+    {\r
+      # Blank lines should cancel any user_indent level.\r
+      $user_indent = '';\r
+      $length_remaining = $max_line_length;\r
+    }\r
+    elsif ($this_len >= $length_remaining) # Line too long, try breaking it.\r
+    {\r
+      # Walk backwards from the end.  At first acceptable spot, break\r
+      # a new line.\r
+      my $idx = $length_remaining - 1;\r
+      if ($idx < 0) { $idx = 0 };\r
+      while ($idx > 0)\r
+      {\r
+        if (substr ($this_line, $idx, 1) =~ /\s/)\r
+        {\r
+          my $line_now = substr ($this_line, 0, $idx);\r
+          my $next_line = substr ($this_line, $idx);\r
+          $this_line = $line_now;\r
+\r
+          # Clean whitespace off the end.\r
+          chomp $this_line;\r
+\r
+          # The current line is ready to be printed.\r
+          $this_line .= "\n${left_pad_str}";\r
+\r
+          # Make sure the next line is allowed full room.\r
+          $length_remaining = $max_line_length - (length ($user_indent));\r
+\r
+          # Strip next_line, but then preserve any user_indent.\r
+          $next_line =~ s/^\s*//;\r
+\r
+          # Sneak a peek at the user_indent of the upcoming line, so\r
+          # $next_line (which will now precede it) can inherit that\r
+          # indent level.  Otherwise, use whatever user_indent level\r
+          # we currently have, which might be none.\r
+          my $next_next_line = shift (@lines);\r
+          if ((defined ($next_next_line)) && ($next_next_line =~ /^(\s+)/)) {\r
+            $next_line = $1 . $next_line if (defined ($1));\r
+            # $length_remaining = $max_line_length - (length ($1));\r
+            $next_next_line =~ s/^\s*//;\r
+          }\r
+          else {\r
+            $next_line = $user_indent . $next_line;\r
+          }\r
+          if (defined ($next_next_line)) {\r
+            unshift (@lines, $next_next_line);\r
+          }\r
+          unshift (@lines, $next_line);\r
+\r
+          # Our new next line might, coincidentally, begin with one of\r
+          # the line-start regexps, so we temporarily turn off\r
+          # sensitivity to that until we're past the line.\r
+          $suppress_line_start_match = 1;\r
+\r
+          last;\r
+        }\r
+        else\r
+        {\r
+          $idx--;\r
+        }\r
+      }\r
+\r
+      if ($idx == 0)\r
+      {\r
+        # We bottomed out because the line is longer than the\r
+        # available space.  But that could be because the space is\r
+        # small, or because the line is longer than even the maximum\r
+        # possible space.  Handle both cases below.\r
+\r
+        if ($length_remaining == ($max_line_length - (length ($user_indent))))\r
+        {\r
+          # The line is simply too long -- there is no hope of ever\r
+          # breaking it nicely, so just insert it verbatim, with\r
+          # appropriate padding.\r
+          $this_line = "\n${left_pad_str}${this_line}";\r
+        }\r
+        else\r
+        {\r
+          # Can't break it here, but may be able to on the next round...\r
+          unshift (@lines, $this_line);\r
+          $length_remaining = $max_line_length - (length ($user_indent));\r
+          $this_line = "\n${left_pad_str}";\r
+        }\r
+      }\r
+    }\r
+    else  # $this_len < $length_remaining, so tack on what we can.\r
+    {\r
+      # Leave a note for the next iteration.\r
+      $length_remaining = $length_remaining - $this_len;\r
+\r
+      if ($this_line =~ /\.$/)\r
+      {\r
+        $this_line .= "  ";\r
+        $length_remaining -= 2;\r
+      }\r
+      else  # not a sentence end\r
+      {\r
+        $this_line .= " ";\r
+        $length_remaining -= 1;\r
+      }\r
+    }\r
+\r
+    # Unconditionally indicate that loop has run at least once.\r
+    $first_time = 0;\r
+\r
+    $wrapped_text .= "${user_indent}${this_line}";\r
+  }\r
+\r
+  # One last bit of padding.\r
+  $wrapped_text .= "\n";\r
+\r
+  return $wrapped_text;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub _pretty_file_list {\r
+  my $self = shift;\r
+\r
+  my ($unanimous_tags, $non_unanimous_tags, $all_branches, $qunksref) = @_;\r
+\r
+  my @qunkrefs =\r
+    grep +( ( ! $_->tags_exists\r
+              or\r
+              ! grep exists $ignore_tags{$_}, @{$_->tags})\r
+            and\r
+            ( ! keys %show_tags\r
+              or\r
+              ( $_->tags_exists\r
+                and\r
+                grep exists $show_tags{$_}, @{$_->tags} )\r
+            )\r
+          ),\r
+    @$qunksref;\r
+\r
+  my $common_dir;           # Dir prefix common to all files ('' if none)\r
+\r
+  # First, loop over the qunks gathering all the tag/branch names.\r
+  # We'll put them all in non_unanimous_tags, and take out the\r
+  # unanimous ones later.\r
+ QUNKREF:\r
+  foreach my $qunkref (@qunkrefs)\r
+  {\r
+    # Keep track of whether all the files in this commit were in the\r
+    # same directory, and memorize it if so.  We can make the output a\r
+    # little more compact by mentioning the directory only once.\r
+    if ($Common_Dir && (scalar (@qunkrefs)) > 1)\r
+    {\r
+      if (! (defined ($common_dir)))\r
+      {\r
+        my ($base, $dir);\r
+        ($base, $dir, undef) = fileparse ($qunkref->filename);\r
+\r
+        if ((! (defined ($dir)))  # this first case is sheer paranoia\r
+            or ($dir eq '')\r
+            or ($dir eq "./")\r
+            or ($dir eq ".\\"))\r
+        {\r
+          $common_dir = '';\r
+        }\r
+        else\r
+        {\r
+          $common_dir = $dir;\r
+        }\r
+      }\r
+      elsif ($common_dir ne '')\r
+      {\r
+        # Already have a common dir prefix, so how much of it can we preserve?\r
+        $common_dir = &main::common_path_prefix ($qunkref->filename, $common_dir);\r
+      }\r
+    }\r
+    else  # only one file in this entry anyway, so common dir not an issue\r
+    {\r
+      $common_dir = '';\r
+    }\r
+\r
+    if (defined ($qunkref->branch)) {\r
+      $all_branches->{$qunkref->branch} = 1;\r
+    }\r
+    if (defined ($qunkref->tags)) {\r
+      foreach my $tag (@{$qunkref->tags}) {\r
+        $non_unanimous_tags->{$tag} = 1;\r
+      }\r
+    }\r
+  }\r
+\r
+  # Any tag held by all qunks will be printed specially... but only if\r
+  # there are multiple qunks in the first place!\r
+  if ((scalar (@qunkrefs)) > 1) {\r
+    foreach my $tag (keys (%$non_unanimous_tags)) {\r
+      my $everyone_has_this_tag = 1;\r
+      foreach my $qunkref (@qunkrefs) {\r
+        if ((! (defined ($qunkref->tags)))\r
+            or (! (grep ($_ eq $tag, @{$qunkref->tags})))) {\r
+          $everyone_has_this_tag = 0;\r
+        }\r
+      }\r
+      if ($everyone_has_this_tag) {\r
+        $unanimous_tags->{$tag} = 1;\r
+        delete $non_unanimous_tags->{$tag};\r
+      }\r
+    }\r
+  }\r
+\r
+  return $common_dir, \@qunkrefs;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub fdatetime {\r
+  my $self = shift;\r
+\r
+  my ($year, $mday, $mon, $wday, $hour, $min);\r
+\r
+  if ( @_ > 1 ) {\r
+    ($year, $mday, $mon, $wday, $hour, $min) = @_;\r
+  } else {\r
+    my ($time) = @_;\r
+    (undef, $min, $hour, $mday, $mon, $year, $wday) =\r
+      $UTC_Times ? gmtime($time) : localtime($time);\r
+\r
+    $year += 1900;\r
+    $mon  += 1;\r
+    $wday  = $self->wday($wday);\r
+  }\r
+\r
+  my $fdate = $self->fdate($year, $mon, $mday, $wday);\r
+\r
+  if ($Show_Times) {\r
+    my $ftime = $self->ftime($hour, $min);\r
+    return "$fdate $ftime";\r
+  } else {\r
+    return $fdate;\r
+  }\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub fdate {\r
+  my $self = shift;\r
+\r
+  my ($year, $mday, $mon, $wday);\r
+\r
+  if ( @_ > 1 ) {\r
+    ($year, $mon, $mday, $wday) = @_;\r
+  } else {\r
+    my ($time) = @_;\r
+    (undef, undef, undef, $mday, $mon, $year, $wday) =\r
+      $UTC_Times ? gmtime($time) : localtime($time);\r
+\r
+    $year += 1900;\r
+    $mon  += 1;\r
+    $wday  = $self->wday($wday);\r
+  }\r
+\r
+  return sprintf '%4u-%02u-%02u%s', $year, $mon, $mday, $wday;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub ftime {\r
+  my $self = shift;\r
+\r
+  my ($hour, $min);\r
+\r
+  if ( @_ > 1 ) {\r
+    ($hour, $min) = @_;\r
+  } else {\r
+    my ($time) = @_;\r
+    (undef, $min, $hour) = $UTC_Times ? gmtime($time) : localtime($time);\r
+  }\r
+\r
+  return sprintf '%02u:%02u', $hour, $min;\r
+}\r
+\r
+# ----------------------------------------------------------------------------\r
+\r
+package CVS::Utils::ChangeLog::Message;\r
+\r
+sub new {\r
+  my $class = shift;\r
+  my ($msg) = @_;\r
+\r
+  my %self = (msg => $msg, files => []);\r
+\r
+  bless \%self, $class;\r
+}\r
+\r
+sub add_fileentry {\r
+  my $self = shift;\r
+  my ($fileentry) = @_;\r
+\r
+  die "Not a fileentry: $fileentry"\r
+    unless $fileentry->isa('CVS::Utils::ChangeLog::FileEntry');\r
+\r
+  push @{$self->{files}}, $fileentry;\r
+}\r
+\r
+sub files { wantarray ? @{$_[0]->{files}} : $_[0]->{files} }\r
+\r
+# ----------------------------------------------------------------------------\r
+\r
+package CVS::Utils::ChangeLog::FileEntry;\r
+\r
+use File::Basename qw( fileparse );\r
+\r
+# Each revision of a file has a little data structure (a `qunk')\r
+# associated with it.  That data structure holds not only the\r
+# file's name, but any additional information about the file\r
+# that might be needed in the output, such as the revision\r
+# number, tags, branches, etc.  The reason to have these things\r
+# arranged in a data structure, instead of just appending them\r
+# textually to the file's name, is that we may want to do a\r
+# little rearranging later as we write the output.  For example,\r
+# all the files on a given tag/branch will go together, followed\r
+# by the tag in parentheses (so trunk or otherwise non-tagged\r
+# files would go at the end of the file list for a given log\r
+# message).  This rearrangement is a lot easier to do if we\r
+# don't have to reparse the text.\r
+#\r
+# A qunk looks like this:\r
+#\r
+#   {\r
+#     filename    =>    "hello.c",\r
+#     revision    =>    "1.4.3.2",\r
+#     time        =>    a timegm() return value (moment of commit)\r
+#     tags        =>    [ "tag1", "tag2", ... ],\r
+#     branch      =>    "branchname" # There should be only one, right?\r
+#     roots       =>    [ "branchtag1", "branchtag2", ... ]\r
+#     lines       =>    "+x -y" # or undefined; x and y are integers\r
+#   }\r
+\r
+# Single top-level ChangeLog, or one per subdirectory?\r
+my $distributed;\r
+sub distributed { $#_ ? ($distributed = $_[1]) : $distributed; }\r
+\r
+sub new {\r
+  my $class = shift;\r
+  my ($path, $time, $revision, $state, $lines,\r
+      $branch_names, $branch_roots, $branch_numbers, $symbolic_names) = @_;\r
+\r
+  my %self = (time     => $time,\r
+              revision => $revision,\r
+              state    => $state,\r
+              lines    => $lines,\r
+              branch_numbers => $branch_numbers,\r
+             );\r
+\r
+  if ( $distributed ) {\r
+    @self{qw(filename dir_key)} = fileparse($path);\r
+  } else {\r
+    @self{qw(filename dir_key)} = ($path, './');\r
+  }\r
+\r
+  { # Scope for $branch_prefix\r
+    (my ($branch_prefix) = ($revision =~ /((?:\d+\.)+)\d+/));\r
+    $branch_prefix =~ s/\.$//;\r
+    if ( $branch_names->{$branch_prefix} ) {\r
+      my $branch_name = $branch_names->{$branch_prefix};\r
+      $self{branch}   = $branch_name;\r
+      $self{branches} = [$branch_name];\r
+    }\r
+    while ( $branch_prefix =~ s/^(\d+(?:\.\d+\.\d+)+)\.\d+\.\d+$/$1/ ) {\r
+      push @{$self{branches}}, $branch_names->{$branch_prefix}\r
+        if exists $branch_names->{$branch_prefix};\r
+    }\r
+  }\r
+\r
+  # If there's anything in the @branch_roots array, then this\r
+  # revision is the root of at least one branch.  We'll display\r
+  # them as branch names instead of revision numbers, the\r
+  # substitution for which is done directly in the array:\r
+  $self{'roots'} = [ map { $branch_names->{$_} } @$branch_roots ]\r
+    if @$branch_roots;\r
+\r
+  if ( exists $symbolic_names->{$revision} ) {\r
+    $self{tags} = delete $symbolic_names->{$revision};\r
+    &main::delta_check($time, $self{tags});\r
+  }\r
+\r
+  bless \%self, $class;\r
+}\r
+\r
+sub filename       { $_[0]->{filename}       }\r
+sub dir_key        { $_[0]->{dir_key}        }\r
+sub revision       { $_[0]->{revision}       }\r
+sub branch         { $_[0]->{branch}         }\r
+sub state          { $_[0]->{state}          }\r
+sub lines          { $_[0]->{lines}          }\r
+sub roots          { $_[0]->{roots}          }\r
+sub branch_numbers { $_[0]->{branch_numbers} }\r
+\r
+sub tags        { $_[0]->{tags}     }\r
+sub tags_exists {\r
+  exists $_[0]->{tags};\r
+}\r
+\r
+# This may someday be used in a more sophisticated calculation of what other\r
+# files are involved in this commit.  For now, we don't use it much except for\r
+# delta mode, because the common-commit-detection algorithm is hypothesized to\r
+# be "good enough" as it stands.\r
+sub time     { $_[0]->{time}     }\r
+\r
+# ----------------------------------------------------------------------------\r
+\r
+package CVS::Utils::ChangeLog::EntrySetBuilder;\r
+\r
+use File::Basename qw( fileparse );\r
+use Time::Local    qw( timegm );\r
+\r
+use constant MAILNAME => "/etc/mailname";\r
+\r
+# In 'cvs log' output, one long unbroken line of equal signs separates files:\r
+use constant FILE_SEPARATOR => '=' x 77;# . "\n";\r
+# In 'cvs log' output, a shorter line of dashes separates log messages within\r
+# a file:\r
+use constant REV_SEPARATOR  => '-' x 28;# . "\n";\r
+\r
+use constant EMPTY_LOG_MESSAGE => '*** empty log message ***';\r
+\r
+# -------------------------------------\r
+\r
+sub new {\r
+  my ($proto) = @_;\r
+  my $class = ref $proto || $proto;\r
+\r
+  my $poobah  = CVS::Utils::ChangeLog::EntrySet->new;\r
+  my $self = bless +{ grand_poobah => $poobah }, $class;\r
+\r
+  $self->clear_file;\r
+  $self->maybe_read_user_map_file;\r
+  return $self;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub clear_msg {\r
+  my ($self) = @_;\r
+\r
+  # Make way for the next message\r
+  undef $self->{rev_msg};\r
+  undef $self->{rev_time};\r
+  undef $self->{rev_revision};\r
+  undef $self->{rev_author};\r
+  undef $self->{rev_state};\r
+  undef $self->{lines};\r
+  $self->{rev_branch_roots} = [];       # For showing which files are branch\r
+                                        # ancestors.\r
+  $self->{collecting_symbolic_names} = 0;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub clear_file {\r
+  my ($self) = @_;\r
+  $self->clear_msg;\r
+\r
+  undef $self->{filename};\r
+  $self->{branch_names}   = +{};        # We'll grab branch names while we're\r
+                                        # at it.\r
+  $self->{branch_numbers} = +{};        # Save some revisions for\r
+                                        # @Follow_Branches\r
+  $self->{symbolic_names} = +{};        # Where tag names get stored.\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub grand_poobah { $_[0]->{grand_poobah} }\r
+\r
+# -------------------------------------\r
+\r
+sub read_changelog {\r
+  my ($self, $command) = @_;\r
+\r
+#  my $grand_poobah = CVS::Utils::ChangeLog::EntrySet->new;\r
+\r
+  if (! $Input_From_Stdin) {\r
+    my $Log_Source_Command = join(' ', @$command);\r
+    &main::debug ("(run \"${Log_Source_Command}\")\n");\r
+    open (LOG_SOURCE, "$Log_Source_Command |")\r
+        or die "unable to run \"${Log_Source_Command}\"";\r
+  }\r
+  else {\r
+    open (LOG_SOURCE, "-") or die "unable to open stdin for reading";\r
+  }\r
+\r
+  binmode LOG_SOURCE;\r
+\r
+ XX_Log_Source:\r
+  while (<LOG_SOURCE>) {\r
+    chomp;\r
+    s!\r$!!;\r
+\r
+    # If on a new file and don't see filename, skip until we find it, and\r
+    # when we find it, grab it.\r
+    if ( ! defined $self->{filename} ) {\r
+      $self->read_file_path($_);\r
+    } elsif ( /^symbolic names:$/ ) {\r
+      $self->{collecting_symbolic_names} = 1;\r
+    } elsif ( $self->{collecting_symbolic_names} ) {\r
+      $self->read_symbolic_name($_);\r
+    } elsif ( $_ eq FILE_SEPARATOR and ! defined $self->{rev_revision} ) {\r
+      $self->clear_file;\r
+    } elsif ( ! defined $self->{rev_revision} ) {\r
+        # If have file name, but not revision, and see revision, then grab\r
+        # it.  (We collect unconditionally, even though we may or may not\r
+        # ever use it.)\r
+      $self->read_revision($_);\r
+    } elsif ( ! defined $self->{rev_time} ) { # and /^date: /) {\r
+      $self->read_date_author_and_state($_);\r
+    } elsif ( /^branches:\s+(.*);$/ ) {\r
+      $self->read_branches($1);\r
+    } elsif ( ! ( $_ eq FILE_SEPARATOR or $_ eq REV_SEPARATOR ) ) {\r
+      # If have file name, time, and author, then we're just grabbing\r
+      # log message texts:\r
+      $self->{rev_msg} .= $_ . "\n";   # Normally, just accumulate the message...\r
+    } else {\r
+      if ( ! $self->{rev_msg}\r
+           or $self->{rev_msg} =~ /^\s*(\.\s*)?$/\r
+           or index($self->{rev_msg}, EMPTY_LOG_MESSAGE) > -1 ) {\r
+        # ... until a msg separator is encountered:\r
+        # Ensure the message contains something:\r
+        $self->clear_msg\r
+          if $Prune_Empty_Msgs;\r
+        $self->{rev_msg} = "[no log message]\n";\r
+      }\r
+\r
+      $self->add_file_entry;\r
+\r
+      if ( $_ eq FILE_SEPARATOR ) {\r
+        $self->clear_file;\r
+      } else {\r
+        $self->clear_msg;\r
+      }\r
+    }\r
+  }\r
+\r
+  close LOG_SOURCE\r
+    or die sprintf("Problem reading log input (exit/signal/core: %d/%d/%d)\n",\r
+                   $? >> 8, $? & 127, $? & 128);\r
+  return;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub add_file_entry {\r
+  $_[0]->grand_poobah->add_fileentry(@{$_[0]}{qw(filename rev_time rev_revision\r
+                                                 rev_state lines branch_names\r
+                                                 rev_branch_roots\r
+                                                 branch_numbers\r
+                                                 symbolic_names\r
+                                                 rev_author rev_msg)});\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub maybe_read_user_map_file {\r
+  my ($self) = @_;\r
+\r
+  my %expansions;\r
+  my $User_Map_Input;\r
+\r
+  if ($User_Map_File)\r
+  {\r
+    if ( $User_Map_File =~ m{^([-\w\@+=.,\/]+):([-\w\@+=.,\/:]+)} and\r
+         !-f $User_Map_File )\r
+    {\r
+      my $rsh = (exists $ENV{'CVS_RSH'} ? $ENV{'CVS_RSH'} : 'ssh');\r
+      $User_Map_Input = "$rsh $1 'cat $2' |";\r
+      &main::debug ("(run \"${User_Map_Input}\")\n");\r
+    }\r
+    else\r
+    {\r
+      $User_Map_Input = "<$User_Map_File";\r
+    }\r
+\r
+    open (MAPFILE, $User_Map_Input)\r
+        or die ("Unable to open $User_Map_File ($!)");\r
+\r
+    while (<MAPFILE>)\r
+    {\r
+      next if /^\s*#/;  # Skip comment lines.\r
+      next if not /:/;  # Skip lines without colons.\r
+\r
+      # It is now safe to split on ':'.\r
+      my ($username, $expansion) = split ':';\r
+      chomp $expansion;\r
+      $expansion =~ s/^'(.*)'$/$1/;\r
+      $expansion =~ s/^"(.*)"$/$1/;\r
+\r
+      # If it looks like the expansion has a real name already, then\r
+      # we toss the username we got from CVS log.  Otherwise, keep\r
+      # it to use in combination with the email address.\r
+\r
+      if ($expansion =~ /^\s*<{0,1}\S+@.*/) {\r
+        # Also, add angle brackets if none present\r
+        if (! ($expansion =~ /<\S+@\S+>/)) {\r
+          $expansions{$username} = "$username <$expansion>";\r
+        }\r
+        else {\r
+          $expansions{$username} = "$username $expansion";\r
+        }\r
+      }\r
+      else {\r
+        $expansions{$username} = $expansion;\r
+      }\r
+    } # fi ($User_Map_File)\r
+\r
+    close (MAPFILE);\r
+  }\r
+\r
+  if (defined $User_Passwd_File)\r
+  {\r
+    if ( ! defined $Domain ) {\r
+      if ( -e MAILNAME ) {\r
+        chomp($Domain = slurp_file(MAILNAME));\r
+      } else {\r
+      MAILDOMAIN_CMD:\r
+        for ([qw(hostname -d)], 'dnsdomainname', 'domainname') {\r
+          my ($text, $exit, $sig, $core) = run_ext($_);\r
+          if ( $exit == 0 && $sig == 0 && $core == 0 ) {\r
+            chomp $text;\r
+            if ( length $text ) {\r
+              $Domain = $text;\r
+              last MAILDOMAIN_CMD;\r
+            }\r
+          }\r
+        }\r
+      }\r
+    }\r
+\r
+    die "No mail domain found\n"\r
+      unless defined $Domain;\r
+\r
+    open (MAPFILE, "<$User_Passwd_File")\r
+        or die ("Unable to open $User_Passwd_File ($!)");\r
+    while (<MAPFILE>)\r
+    {\r
+      # all lines are valid\r
+      my ($username, $pw, $uid, $gid, $gecos, $homedir, $shell) = split ':';\r
+      my $expansion = '';\r
+      ($expansion) = split (',', $gecos)\r
+        if defined $gecos && length $gecos;\r
+\r
+      my $mailname = $Domain eq '' ? $username : "$username\@$Domain";\r
+      $expansions{$username} = "$expansion <$mailname>";\r
+    }\r
+    close (MAPFILE);\r
+  }\r
+\r
+ $self->{usermap} = \%expansions;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub read_file_path {\r
+  my ($self, $line) = @_;\r
+\r
+  my $path;\r
+\r
+  if ( $line =~ /^Working file: (.*)/ ) {\r
+    $path = $1;\r
+  } elsif ( defined $RCS_Root\r
+            and\r
+            $line =~ m|^RCS file: $RCS_Root[/\\](.*),v$| ) {\r
+    $path = $1;\r
+    $path =~ s!Attic/!!;\r
+  } else {\r
+    return;\r
+  }\r
+\r
+  if ( @Ignore_Files ) {\r
+    my $base;\r
+    ($base, undef, undef) = fileparse($path);\r
+\r
+    my $xpath = $Case_Insensitive ? lc($path) : $path;\r
+    if ( grep index($path, $_) > -1, @Ignore_Files ) {\r
+      return;\r
+    }\r
+  }\r
+\r
+  $self->{filename} = $path;\r
+  return;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub read_symbolic_name {\r
+  my ($self, $line) = @_;\r
+\r
+  # All tag names are listed with whitespace in front in cvs log\r
+  # output; so if see non-whitespace, then we're done collecting.\r
+  if ( /^\S/ ) {\r
+    $self->{collecting_symbolic_names} = 0;\r
+    return;\r
+  } else {\r
+    # we're looking at a tag name, so parse & store it\r
+\r
+    # According to the Cederqvist manual, in node "Tags", tag names must start\r
+    # with an uppercase or lowercase letter and can contain uppercase and\r
+    # lowercase letters, digits, `-', and `_'.  However, it's not our place to\r
+    # enforce that, so we'll allow anything CVS hands us to be a tag:\r
+    my ($tag_name, $tag_rev) = ($line =~ /^\s+([^:]+): ([\d.]+)$/);\r
+\r
+    # A branch number either has an odd number of digit sections\r
+    # (and hence an even number of dots), or has ".0." as the\r
+    # second-to-last digit section.  Test for these conditions.\r
+    my $real_branch_rev = '';\r
+    if ( $tag_rev =~ /^(\d+\.\d+\.)+\d+$/             # Even number of dots...\r
+         and\r
+         $tag_rev !~ /^(1\.)+1$/ ) {                  # ...but not "1.[1.]1"\r
+      $real_branch_rev = $tag_rev;\r
+    } elsif ($tag_rev =~ /(\d+\.(\d+\.)+)0.(\d+)/) {  # Has ".0."\r
+      $real_branch_rev = $1 . $3;\r
+    }\r
+\r
+    # If we got a branch, record its number.\r
+    if ( $real_branch_rev ) {\r
+      $self->{branch_names}->{$real_branch_rev} = $tag_name;\r
+      $self->{branch_numbers}->{$tag_name} = $real_branch_rev;\r
+    } else {\r
+      # Else it's just a regular (non-branch) tag.\r
+      push @{$self->{symbolic_names}->{$tag_rev}}, $tag_name;\r
+    }\r
+  }\r
+\r
+  $self->{collecting_symbolic_names} = 1;\r
+  return;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub read_revision {\r
+  my ($self, $line) = @_;\r
+\r
+  my ($revision) = ( $line =~ /^revision (\d+\.[\d.]+)/ );\r
+\r
+  return\r
+    unless $revision;\r
+\r
+  $self->{rev_revision} = $revision;\r
+  return;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+{ # Closure over %gecos_warned\r
+my %gecos_warned;\r
+sub read_date_author_and_state {\r
+  my ($self, $line) = @_;\r
+\r
+  my ($time, $author, $state) = $self->parse_date_author_and_state($line);\r
+\r
+  if ( defined($self->{usermap}->{$author}) and $self->{usermap}->{$author} ) {\r
+    $author = $self->{usermap}->{$author};\r
+  } elsif ( defined $Domain or $Gecos == 1 ) {\r
+    my $email = $author;\r
+    $email = $author."@".$Domain\r
+      if defined $Domain && $Domain ne '';\r
+\r
+    my $pw = getpwnam($author);\r
+    my ($fullname, $office, $workphone, $homephone, $gcos);\r
+    if ( defined $pw ) {\r
+      $gcos = (getpwnam($author))[6];\r
+      ($fullname, $office, $workphone, $homephone) =\r
+        split /\s*,\s*/, $gcos;\r
+    } else {\r
+      warn "Couldn't find gecos info for author '$author'\n"\r
+        unless $gecos_warned{$author}++;\r
+      $fullname = '';\r
+    }\r
+    for (grep defined, $fullname, $office, $workphone, $homephone) {\r
+      s/&/ucfirst(lc($pw->name))/ge;\r
+    }\r
+    $author = $fullname . "  <" . $email . ">"\r
+      if $fullname ne '';\r
+  }\r
+\r
+  $self->{rev_state}  = $state;\r
+  $self->{rev_time}   = $time;\r
+  $self->{rev_author} = $author;\r
+  return;\r
+}\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub read_branches {\r
+  # A "branches: ..." line here indicates that one or more branches\r
+  # are rooted at this revision.  If we're showing branches, then we\r
+  # want to show that fact as well, so we collect all the branches\r
+  # that this is the latest ancestor of and store them in\r
+  # $self->[rev_branch_roots}.  Just for reference, the format of the\r
+  # line we're seeing at this point is:\r
+  #\r
+  #    branches:  1.5.2;  1.5.4;  ...;\r
+  #\r
+  # Okay, here goes:\r
+  my ($self, $line) = @_;\r
+\r
+  # Ugh.  This really bothers me.  Suppose we see a log entry\r
+  # like this:\r
+  #\r
+  #    ----------------------------\r
+  #    revision 1.1\r
+  #    date: 1999/10/17 03:07:38;  author: jrandom;  state: Exp;\r
+  #    branches:  1.1.2;\r
+  #    Intended first line of log message begins here.\r
+  #    ----------------------------\r
+  #\r
+  # The question is, how we can tell the difference between that\r
+  # log message and a *two*-line log message whose first line is\r
+  #\r
+  #    "branches:  1.1.2;"\r
+  #\r
+  # See the problem?  The output of "cvs log" is inherently\r
+  # ambiguous.\r
+  #\r
+  # For now, we punt: we liberally assume that people don't\r
+  # write log messages like that, and just toss a "branches:"\r
+  # line if we see it but are not showing branches.  I hope no\r
+  # one ever loses real log data because of this.\r
+  if ( $Show_Branches ) {\r
+    $line =~ s/(1\.)+1;|(1\.)+1$//;  # ignore the trivial branch 1.1.1\r
+    $self->{rev_branch_roots} = [split /;\s+/, $line]\r
+      if length $line;\r
+  }\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub parse_date_author_and_state {\r
+  my ($self, $line) = @_;\r
+  # Parses the date/time and author out of a line like:\r
+  #\r
+  # date: 1999/02/19 23:29:05;  author: apharris;  state: Exp;\r
+  #\r
+  # or, in CVS 1.12.9:\r
+  #\r
+  # date: 2004-06-05 16:10:32 +0000; author: somebody; state: Exp;\r
+\r
+  my ($year, $mon, $mday, $hours, $min, $secs, $utcOffset, $author, $state, $rest) =\r
+    $line =~\r
+      m!(\d+)[-/](\d+)[-/](\d+)\s+(\d+):(\d+):(\d+)(\s+[+-]\d{4})?;\s+\r
+        author:\s+([^;]+);\s+state:\s+([^;]+);(.*)!x\r
+    or  die "Couldn't parse date ``$line''";\r
+  die "Bad date or Y2K issues"\r
+    unless $year > 1969 and $year < 2258;\r
+  # Kinda arbitrary, but useful as a sanity check\r
+  my $time = timegm($secs, $min, $hours, $mday, $mon-1, $year-1900);\r
+  if ( defined $utcOffset ) {\r
+    my ($plusminus, $hour, $minute) = ($utcOffset =~ m/([+-])(\d\d)(\d\d)/);\r
+    my $offset = (($hour * 60) + $minute) * 60 * ($plusminus eq '+' ? -1 : 1);\r
+    $time += $offset;\r
+  }\r
+  if ( $rest =~ m!\s+lines:\s+(.*)! ) {\r
+    $self->{lines} = $1;\r
+  }\r
+\r
+  return $time, $author, $state;\r
+}\r
+\r
+# Subrs ----------------------------------------------------------------------\r
+\r
+package main;\r
+\r
+sub delta_check {\r
+  my ($time, $tags) = @_;\r
+\r
+  # If we're in 'delta' mode, update the latest observed times for the\r
+  # beginning and ending tags, and when we get around to printing output, we\r
+  # will simply restrict ourselves to that timeframe...\r
+  return\r
+    unless $Delta_Mode;\r
+\r
+  $Delta_StartTime = $time\r
+    if $time > $Delta_StartTime and grep { $_ eq $Delta_From } @$tags;\r
+\r
+  $Delta_EndTime = $time\r
+    if $time > $Delta_EndTime and grep { $_ eq $Delta_To } @$tags;\r
+}\r
+\r
+sub run_ext {\r
+  my ($cmd) = @_;\r
+  $cmd = [$cmd]\r
+    unless ref $cmd;\r
+  local $" = ' ';\r
+  my $out = qx"@$cmd 2>&1";\r
+  my $rv  = $?;\r
+  my ($sig, $core, $exit) = ($? & 127, $? & 128, $? >> 8);\r
+  return $out, $exit, $sig, $core;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+# If accumulating, grab the boundary date from pre-existing ChangeLog.\r
+sub maybe_grab_accumulation_date {\r
+  if (! $Cumulative || $Update) {\r
+    return '';\r
+  }\r
+\r
+  # else\r
+\r
+  open (LOG, "$Log_File_Name")\r
+      or die ("trouble opening $Log_File_Name for reading ($!)");\r
+\r
+  my $boundary_date;\r
+  while (<LOG>)\r
+  {\r
+    if (/^(\d\d\d\d-\d\d-\d\d\s+\d\d:\d\d)/)\r
+    {\r
+      $boundary_date = "$1";\r
+      last;\r
+    }\r
+  }\r
+\r
+  close (LOG);\r
+\r
+  # convert time from utc to local timezone if the ChangeLog has\r
+  # dates/times in utc\r
+  if ($UTC_Times && $boundary_date)\r
+  {\r
+    # convert the utc time to a time value\r
+    my ($year,$mon,$mday,$hour,$min) = $boundary_date =~\r
+      m#(\d+)-(\d+)-(\d+)\s+(\d+):(\d+)#;\r
+    my $time = timegm(0,$min,$hour,$mday,$mon-1,$year-1900);\r
+    # print the timevalue in the local timezone\r
+    my ($ignore,$wday);\r
+    ($ignore,$min,$hour,$mday,$mon,$year,$wday) = localtime($time);\r
+    $boundary_date=sprintf ("%4u-%02u-%02u %02u:%02u",\r
+                            $year+1900,$mon+1,$mday,$hour,$min);\r
+  }\r
+\r
+  return $boundary_date;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+# Fills up a ChangeLog structure in the current directory.\r
+sub derive_changelog {\r
+  my ($command) = @_;\r
+\r
+  # See "The Plan" above for a full explanation.\r
+\r
+  # Might be adding to an existing ChangeLog\r
+  my $accumulation_date = maybe_grab_accumulation_date;\r
+  if ($accumulation_date) {\r
+    # Insert -d immediately after 'cvs log'\r
+    my $Log_Date_Command = "-d\'>${accumulation_date}\'";\r
+\r
+    my ($log_index) = grep $command->[$_] eq 'log', 0..$#$command;\r
+    splice @$command, $log_index+1, 0, $Log_Date_Command;\r
+    &debug ("(adding log msg starting from $accumulation_date)\n");\r
+  }\r
+\r
+#  output_changelog(read_changelog($command));\r
+  my $builder = CVS::Utils::ChangeLog::EntrySetBuilder->new;\r
+  $builder->read_changelog($command);\r
+  $builder->grand_poobah->output_changelog;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub min { $_[0] < $_[1] ? $_[0] : $_[1] }\r
+\r
+# -------------------------------------\r
+\r
+sub common_path_prefix {\r
+  my ($path1, $path2) = @_;\r
+\r
+  # For compatibility (with older versions of cvs2cl.pl), we think in UN*X\r
+  # terms, and mould windoze filenames to match.  Is this really appropriate?\r
+  # If a file is checked in under UN*X, and cvs log run on windoze, which way\r
+  # do the path separators slope?  Can we use fileparse as per the local\r
+  # conventions?  If so, we should probably have a user option to specify an\r
+  # OS to emulate to handle stdin-fed logs.  If we did this, we could avoid\r
+  # the nasty \-/ transmogrification below.\r
+\r
+  my ($dir1, $dir2) = map +(fileparse($_))[1], $path1, $path2;\r
+\r
+  # Transmogrify Windows filenames to look like Unix.\r
+  # (It is far more likely that someone is running cvs2cl.pl under\r
+  # Windows than that they would genuinely have backslashes in their\r
+  # filenames.)\r
+  tr!\\!/!\r
+    for $dir1, $dir2;\r
+\r
+  my ($accum1, $accum2, $last_common_prefix) = ('') x 3;\r
+\r
+  my @path1 = grep length($_), split qr!/!, $dir1;\r
+  my @path2 = grep length($_), split qr!/!, $dir2;\r
+\r
+  my @common_path;\r
+  for (0..min($#path1,$#path2)) {\r
+    if ( $path1[$_] eq $path2[$_]) {\r
+      push @common_path, $path1[$_];\r
+    } else {\r
+      last;\r
+    }\r
+  }\r
+\r
+  return join '', map "$_/", @common_path;\r
+}\r
+\r
+# -------------------------------------\r
+sub parse_options {\r
+  # Check this internally before setting the global variable.\r
+  my $output_file;\r
+\r
+  # If this gets set, we encountered unknown options and will exit at\r
+  # the end of this subroutine.\r
+  my $exit_with_admonishment = 0;\r
+\r
+  # command to generate the log\r
+  my @log_source_command = qw( cvs log );\r
+\r
+  my (@Global_Opts, @Local_Opts);\r
+\r
+  Getopt::Long::Configure(qw( bundling permute no_getopt_compat\r
+                              pass_through no_ignore_case ));\r
+  GetOptions('help|usage|h'   => \$Print_Usage,\r
+             'debug'          => \$Debug,        # unadvertised option, heh\r
+             'version'        => \$Print_Version,\r
+\r
+             'file|f=s'       => \$output_file,\r
+             'accum'          => \$Cumulative,\r
+             'update'         => \$Update,\r
+             'fsf'            => \$FSF_Style,\r
+             'rcs=s'          => \$RCS_Root,\r
+             'usermap|U=s'    => \$User_Map_File,\r
+             'gecos'          => \$Gecos,\r
+             'domain=s'       => \$Domain,\r
+             'passwd=s'       => \$User_Passwd_File,\r
+             'window|W=i'     => \$Max_Checkin_Duration,\r
+             'chrono'         => \$Chronological_Order,\r
+             'ignore|I=s'     => \@Ignore_Files,\r
+             'case-insensitive|C' => \$Case_Insensitive,\r
+             'regexp|R=s'     => \$Regexp_Gate,\r
+             'stdin'          => \$Input_From_Stdin,\r
+             'stdout'         => \$Output_To_Stdout,\r
+             'distributed|d'  => sub { CVS::Utils::ChangeLog::FileEntry->distributed(1) },\r
+             'prune|P'        => \$Prune_Empty_Msgs,\r
+             'no-wrap'        => \$No_Wrap,\r
+             'gmt|utc'        => \$UTC_Times,\r
+             'day-of-week|w'  => \$Show_Day_Of_Week,\r
+             'revisions|r'    => \$Show_Revisions,\r
+             'show-dead'      => \$Show_Dead,\r
+             'tags|t'         => \$Show_Tags,\r
+             'tagdates|T'     => \$Show_Tag_Dates,\r
+             'branches|b'     => \$Show_Branches,\r
+             'follow|F=s'     => \@Follow_Branches,\r
+             'follow-only=s'  => \@Follow_Only,\r
+             'xml-encoding=s' => \$XML_Encoding,\r
+             'xml'            => \$XML_Output,\r
+             'noxmlns'        => \$No_XML_Namespace,\r
+             'no-xml-iso-date' => \$No_XML_ISO_Date,\r
+             'no-ancestors'   => \$No_Ancestors,\r
+             'lines-modified' => \$Show_Lines_Modified,\r
+\r
+             'no-indent'    => sub {\r
+               $Indent = '';\r
+             },\r
+\r
+             'summary'      => sub {\r
+               $Summary = 1;\r
+               $After_Header = "\n\n"; # Summary implies --separate-header\r
+             },\r
+\r
+             'no-times'     => sub {\r
+               $Show_Times = 0;\r
+             },\r
+\r
+             'no-hide-branch-additions' => sub {\r
+               $Hide_Branch_Additions = 0;\r
+             },\r
+\r
+             'no-common-dir'  => sub {\r
+               $Common_Dir = 0;\r
+             },\r
+\r
+             'ignore-tag=s'   => sub {\r
+               $ignore_tags{$_[1]} = 1;\r
+             },\r
+\r
+             'show-tag=s'     => sub {\r
+               $show_tags{$_[1]} = 1;\r
+             },\r
+\r
+             # Deliberately undocumented.  This is not a public interface, and\r
+             # may change/disappear at any time.\r
+             'test-code=s'    => \$TestCode,\r
+\r
+             'delta=s'        => sub {\r
+               my $arg = $_[1];\r
+               if ( $arg =~\r
+                    /^([A-Za-z][A-Za-z0-9_\-\]\[]*):([A-Za-z][A-Za-z0-9_\-\]\[]*)$/ ) {\r
+                 $Delta_From = $1;\r
+                 $Delta_To = $2;\r
+                 $Delta_Mode = 1;\r
+               } else {\r
+                 die "--delta FROM_TAG:TO_TAG is what you meant to say.\n";\r
+               }\r
+             },\r
+\r
+             'FSF'             => sub {\r
+               $Show_Times = 0;\r
+               $Common_Dir = 0;\r
+               $No_Extra_Indent = 1;\r
+               $Indent = "\t";\r
+             },\r
+\r
+             'header=s'        => sub {\r
+               my $narg = $_[1];\r
+               $ChangeLog_Header = &slurp_file ($narg);\r
+               if (! defined ($ChangeLog_Header)) {\r
+                 $ChangeLog_Header = '';\r
+               }\r
+             },\r
+\r
+             'global-opts|g=s' => sub {\r
+               my $narg = $_[1];\r
+               push @Global_Opts, $narg;\r
+               splice @log_source_command, 1, 0, $narg;\r
+             },\r
+\r
+             'log-opts|l=s' => sub {\r
+               my $narg = $_[1];\r
+               push @Local_Opts, $narg;\r
+               push @log_source_command, $narg;\r
+             },\r
+\r
+             'mailname=s'   => sub {\r
+               my $narg = $_[1];\r
+               warn "--mailname is deprecated; please use --domain instead\n";\r
+               $Domain = $narg;\r
+             },\r
+\r
+             'separate-header|S' => sub {\r
+               $After_Header = "\n\n";\r
+               $No_Extra_Indent = 1;\r
+             },\r
+\r
+             'group-within-date' => sub {\r
+               $GroupWithinDate = 1;\r
+               $Show_Times = 0;\r
+             },\r
+\r
+             'hide-filenames' => sub {\r
+               $Hide_Filenames = 1;\r
+               $After_Header = '';\r
+             },\r
+            )\r
+    or die "options parsing failed\n";\r
+\r
+  push @log_source_command, map "'$_'", @ARGV;\r
+\r
+  ## Check for contradictions...\r
+\r
+  if ($Output_To_Stdout && CVS::Utils::ChangeLog::FileEntry->distributed) {\r
+    print STDERR "cannot pass both --stdout and --distributed\n";\r
+    $exit_with_admonishment = 1;\r
+  }\r
+\r
+  if ($Output_To_Stdout && $output_file) {\r
+    print STDERR "cannot pass both --stdout and --file\n";\r
+    $exit_with_admonishment = 1;\r
+  }\r
+\r
+  if ($Input_From_Stdin && @Global_Opts) {\r
+    print STDERR "cannot pass both --stdin and -g\n";\r
+    $exit_with_admonishment = 1;\r
+  }\r
+\r
+  if ($Input_From_Stdin && @Local_Opts) {\r
+    print STDERR "cannot pass both --stdin and -l\n";\r
+    $exit_with_admonishment = 1;\r
+  }\r
+\r
+  if ($XML_Output && $Cumulative) {\r
+    print STDERR "cannot pass both --xml and --accum\n";\r
+    $exit_with_admonishment = 1;\r
+  }\r
+\r
+  # Other consistency checks and option-driven logic\r
+\r
+  # Bleargh.  Compensate for a deficiency of custom wrapping.\r
+  if ( ($After_Header ne " ") and $FSF_Style ) {\r
+    $After_Header .= "\t";\r
+  }\r
+\r
+  @Ignore_Files = map lc, @Ignore_Files\r
+    if $Case_Insensitive;\r
+\r
+  # Or if any other error message has already been printed out, we\r
+  # just leave now:\r
+  if ($exit_with_admonishment) {\r
+    &usage ();\r
+    exit (1);\r
+  }\r
+  elsif ($Print_Usage) {\r
+    &usage ();\r
+    exit (0);\r
+  }\r
+  elsif ($Print_Version) {\r
+    &version ();\r
+    exit (0);\r
+  }\r
+\r
+  ## Else no problems, so proceed.\r
+\r
+  if ($output_file) {\r
+    $Log_File_Name = $output_file;\r
+  }\r
+\r
+  return \@log_source_command;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub slurp_file {\r
+  my $filename = shift || die ("no filename passed to slurp_file()");\r
+  my $retstr;\r
+\r
+  open (SLURPEE, "<${filename}") or die ("unable to open $filename ($!)");\r
+  local $/ = undef;\r
+  $retstr = <SLURPEE>;\r
+  close (SLURPEE);\r
+  return $retstr;\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub debug {\r
+  if ($Debug) {\r
+    my $msg = shift;\r
+    print STDERR $msg;\r
+  }\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub version {\r
+  print "cvs2cl.pl version ${VERSION}; distributed under the GNU GPL.\n";\r
+}\r
+\r
+# -------------------------------------\r
+\r
+sub usage {\r
+  &version ();\r
+\r
+  eval "use Pod::Usage qw( pod2usage )";\r
+\r
+   if ( $@ ) {\r
+    print <<'END';\r
+\r
+* Pod::Usage was not found.  The formatting may be suboptimal.  Consider\r
+  upgrading your Perl --- Pod::Usage is standard from 5.6 onwards, and\r
+  versions of perl prior to 5.6 are getting rather rusty, now.  Alternatively,\r
+  install Pod::Usage direct from CPAN.\r
+END\r
+\r
+    local $/ = undef;\r
+    my $message = <DATA>;\r
+    $message =~ s/^=(head1|item) //gm;\r
+    $message =~ s/^=(over|back).*\n//gm;\r
+    $message =~ s/\n{3,}/\n\n/g;\r
+    print $message;\r
+  } else {\r
+    print "\n";\r
+    pod2usage( -exitval => 'NOEXIT',\r
+               -verbose => 1,\r
+               -output  => \*STDOUT,\r
+             );\r
+  }\r
+\r
+  return;\r
+}\r
+\r
+# Main -----------------------------------------------------------------------\r
+\r
+my $log_source_command = parse_options;\r
+if ( defined $TestCode ) {\r
+  eval $TestCode;\r
+  die "Eval failed: '$@'\n"\r
+    if $@;\r
+} else {\r
+  derive_changelog($log_source_command);\r
+}\r
+\r
+__DATA__\r
+\r
+=head1 NAME\r
+\r
+cvs2cl.pl - convert cvs log messages to changelogs\r
+\r
+=head1 SYNOPSIS\r
+\r
+B<cvs2cl> [I<options>] [I<FILE1> [I<FILE2> ...]]\r
+\r
+=head1 DESCRIPTION\r
+\r
+cvs2cl produces a GNU-style ChangeLog for CVS-controlled sources by\r
+running "cvs log" and parsing the output. Duplicate log messages get\r
+unified in the Right Way.\r
+\r
+The default output of cvs2cl is designed to be compact, formally unambiguous,\r
+but still easy for humans to read.  It should be largely self-explanatory; the\r
+one abbreviation that might not be obvious is "utags".  That stands for\r
+"universal tags" -- a universal tag is one held by all the files in a given\r
+change entry.\r
+\r
+If you need output that's easy for a program to parse, use the B<--xml> option.\r
+Note that with XML output, just about all available information is included\r
+with each change entry, whether you asked for it or not, on the theory that\r
+your parser can ignore anything it's not looking for.\r
+\r
+If filenames are given as arguments cvs2cl only shows log information for the\r
+named files.\r
+\r
+=head1 OPTIONS\r
+\r
+=over 4\r
+\r
+=item B<-h>, B<-help>, B<--help>, B<-?>\r
+\r
+Show a short help and exit.\r
+\r
+=item B<--version>\r
+\r
+Show version and exit.\r
+\r
+=item B<-r>, B<--revisions>\r
+\r
+Show revision numbers in output.\r
+\r
+=item B<-b>, B<--branches>\r
+\r
+Show branch names in revisions when possible.\r
+\r
+=item B<-t>, B<--tags>\r
+\r
+Show tags (symbolic names) in output.\r
+\r
+=item B<-T>, B<--tagdates>\r
+\r
+Show tags in output on their first occurance.\r
+\r
+=item B<--show-dead>\r
+\r
+Show dead files.\r
+\r
+=item B<--stdin>\r
+\r
+Read from stdin, don't run cvs log.\r
+\r
+=item B<--stdout>\r
+\r
+Output to stdout not to ChangeLog.\r
+\r
+=item B<-d>, B<--distributed>\r
+\r
+Put ChangeLogs in subdirs.\r
+\r
+=item B<-f> I<FILE>, B<--file> I<FILE>\r
+\r
+Write to I<FILE> instead of ChangeLog.\r
+\r
+=item B<--fsf>\r
+\r
+Use this if log data is in FSF ChangeLog style.\r
+\r
+=item B<--FSF>\r
+\r
+Attempt strict FSF-standard compatible output.\r
+\r
+=item B<-W> I<SECS>, B<--window> I<SECS>\r
+\r
+Window of time within which log entries unify.\r
+\r
+=item -B<U> I<UFILE>, B<--usermap> I<UFILE>\r
+\r
+Expand usernames to email addresses from I<UFILE>.\r
+\r
+=item B<--passwd> I<PASSWORDFILE>\r
+\r
+Use system passwd file for user name expansion.  If no mail domain is provided\r
+(via B<--domain>), it tries to read one from B</etc/mailname>, output of B<hostname\r
+-d>, B<dnsdomainname>, or B<domain-name>.  cvs2cl exits with an error if none of\r
+those options is successful. Use a domain of '' to prevent the addition of a\r
+mail domain.\r
+\r
+=item B<--domain> I<DOMAIN>\r
+\r
+Domain to build email addresses from.\r
+\r
+=item B<--gecos>\r
+\r
+Get user information from GECOS data.\r
+\r
+=item B<-R> I<REGEXP>, B<--regexp> I<REGEXP>\r
+\r
+Include only entries that match I<REGEXP>.  This option may be used multiple\r
+times.\r
+\r
+=item B<-I> I<REGEXP>, B<--ignore> I<REGEXP>\r
+\r
+Ignore files whose names match I<REGEXP>.  This option may be used multiple\r
+times.\r
+\r
+=item B<-C>, B<--case-insensitive>\r
+\r
+Any regexp matching is done case-insensitively.\r
+\r
+=item B<-F> I<BRANCH>, B<--follow> I<BRANCH>\r
+\r
+Show only revisions on or ancestral to I<BRANCH>.\r
+\r
+=item B<--follow-only> I<BRANCH>\r
+\r
+Like --follow, but sub-branches are not followed.\r
+\r
+=item B<--no-ancestors>\r
+\r
+When using B<-F>, only track changes since the I<BRANCH> started.\r
+\r
+=item B<--no-hide-branch-additions>\r
+\r
+By default, entries generated by cvs for a file added on a branch (a dead 1.1\r
+entry) are not shown.  This flag reverses that action.\r
+\r
+=item B<-S>, B<--separate-header>\r
+\r
+Blank line between each header and log message.\r
+\r
+=item B<--summary>\r
+\r
+Add CVS change summary information.\r
+\r
+=item B<--no-wrap>\r
+\r
+Don't auto-wrap log message (recommend B<-S> also).\r
+\r
+=item B<--no-indent>\r
+\r
+Don't indent log message\r
+\r
+=item B<--gmt>, B<--utc>\r
+\r
+Show times in GMT/UTC instead of local time.\r
+\r
+=item B<--accum>\r
+\r
+Add to an existing ChangeLog (incompatible with B<--xml>).\r
+\r
+=item B<-w>, B<--day-of-week>\r
+\r
+Show day of week.\r
+\r
+=item B<--no-times>\r
+\r
+Don't show times in output.\r
+\r
+=item B<--chrono>\r
+\r
+Output log in chronological order (default is reverse chronological order).\r
+\r
+=item B<--header> I<FILE>\r
+\r
+Get ChangeLog header from I<FILE> ("B<->" means stdin).\r
+\r
+=item B<--xml>\r
+\r
+Output XML instead of ChangeLog format.\r
+\r
+=item B<--xml-encoding> I<ENCODING.>\r
+\r
+Insert encoding clause in XML header.\r
+\r
+=item B<--noxmlns>\r
+\r
+Don't include xmlns= attribute in root element.\r
+\r
+=item B<--hide-filenames>\r
+\r
+Don't show filenames (ignored for XML output).\r
+\r
+=item B<--no-common-dir>\r
+\r
+Don't shorten directory names from filenames.\r
+\r
+=item B<--rcs> I<CVSROOT>\r
+\r
+Handle filenames from raw RCS, for instance those produced by "cvs rlog"\r
+output, stripping the prefix I<CVSROOT>.\r
+\r
+=item B<-P>, B<--prune>\r
+\r
+Don't show empty log messages.\r
+\r
+=item B<--lines-modified>\r
+\r
+Output the number of lines added and the number of lines removed for\r
+each checkin (if applicable). At the moment, this only affects the\r
+XML output mode.\r
+\r
+=item B<--ignore-tag> I<TAG>\r
+\r
+Ignore individual changes that are associated with a given tag.\r
+May be repeated, if so, changes that are associated with any of\r
+the given tags are ignored.\r
+\r
+=item B<--show-tag> I<TAG>\r
+\r
+Log only individual changes that are associated with a given\r
+tag.  May be repeated, if so, changes that are associated with\r
+any of the given tags are logged.\r
+\r
+=item B<--delta> I<FROM_TAG>B<:>I<TO_TAG>\r
+\r
+Attempt a delta between two tags (since I<FROM_TAG> up to and\r
+including I<TO_TAG>).  The algorithm is a simple date-based one\r
+(this is a hard problem) so results are imperfect.\r
+\r
+=item B<-g> I<OPTS>, B<--global-opts> I<OPTS>\r
+\r
+Pass I<OPTS> to cvs like in "cvs I<OPTS> log ...".\r
+\r
+=item B<-l> I<OPTS>, B<--log-opts> I<OPTS>\r
+\r
+Pass I<OPTS> to cvs log like in "cvs ... log I<OPTS>".\r
+\r
+=back\r
+\r
+Notes about the options and arguments:\r
+\r
+=over 4\r
+\r
+=item *\r
+\r
+The B<-I> and B<-F> options may appear multiple times.\r
+\r
+=item *\r
+\r
+To follow trunk revisions, use "B<-F trunk>" ("B<-F TRUNK>" also works).  This is\r
+okay because no would ever, ever be crazy enough to name a branch "trunk",\r
+right?  Right.\r
+\r
+=item *\r
+\r
+For the B<-U> option, the I<UFILE> should be formatted like CVSROOT/users. That is,\r
+each line of I<UFILE> looks like this:\r
+\r
+       jrandom:jrandom@red-bean.com\r
+\r
+or maybe even like this\r
+\r
+       jrandom:'Jesse Q. Random <jrandom@red-bean.com>'\r
+\r
+Don't forget to quote the portion after the colon if necessary.\r
+\r
+=item *\r
+\r
+Many people want to filter by date.  To do so, invoke cvs2cl.pl like this:\r
+\r
+       cvs2cl.pl -l "-d'DATESPEC'"\r
+\r
+where DATESPEC is any date specification valid for "cvs log -d".  (Note that\r
+CVS 1.10.7 and below requires there be no space between -d and its argument).\r
+\r
+=item *\r
+\r
+Dates/times are interpreted in the local time zone.\r
+\r
+=item *\r
+\r
+Remember to quote the argument to `B<-l>' so that your shell doesn't interpret\r
+spaces as argument separators.\r
+\r
+=item *\r
+\r
+See the 'Common Options' section of the cvs manual ('info cvs' on UNIX-like\r
+systems) for more information.\r
+\r
+=item *\r
+\r
+Note that the rules for quoting under windows shells are different.\r
+\r
+=back\r
+\r
+=head1 EXAMPLES\r
+\r
+Some examples (working on UNIX shells):\r
+\r
+      # logs after 6th March, 2003 (inclusive)\r
+      cvs2cl.pl -l "-d'>2003-03-06'"\r
+      # logs after 4:34PM 6th March, 2003 (inclusive)\r
+      cvs2cl.pl -l "-d'>2003-03-06 16:34'"\r
+      # logs between 4:46PM 6th March, 2003 (exclusive) and\r
+      # 4:34PM 6th March, 2003 (inclusive)\r
+      cvs2cl.pl -l "-d'2003-03-06 16:46>2003-03-06 16:34'"\r
+\r
+Some examples (on non-UNIX shells):\r
+\r
+      # Reported to work on windows xp/2000\r
+      cvs2cl.pl -l  "-d"">2003-10-18;today<"""\r
+\r
+=head1 AUTHORS\r
+\r
+=over 4\r
+\r
+=item Karl Fogel\r
+\r
+=item Melissa O'Neill\r
+\r
+=item Martyn J. Pearce\r
+\r
+=back\r
+\r
+Contributions from\r
+\r
+=over 4\r
+\r
+=item Mike Ayers\r
+\r
+=item Tim Bradshaw\r
+\r
+=item Richard Broberg\r
+\r
+=item Nathan Bryant\r
+\r
+=item Oswald Buddenhagen\r
+\r
+=item Neil Conway\r
+\r
+=item Arthur de Jong\r
+\r
+=item Mark W. Eichin\r
+\r
+=item Dave Elcock\r
+\r
+=item Reid Ellis\r
+\r
+=item Simon Josefsson\r
+\r
+=item Robin Hugh Johnson\r
+\r
+=item Terry Kane\r
+\r
+=item Akos Kiss\r
+\r
+=item Claus Klein\r
+\r
+=item Eddie Kohler\r
+\r
+=item Richard Laager\r
+\r
+=item Kevin Lilly\r
+\r
+=item Karl-Heinz Marbaise\r
+\r
+=item Mitsuaki Masuhara\r
+\r
+=item Henrik Nordstrom\r
+\r
+=item Joe Orton\r
+\r
+=item Peter Palfrader\r
+\r
+=item Thomas Parmelan\r
+\r
+=item Johanne Stezenbach\r
+\r
+=item Joseph Walton\r
+\r
+=item Ernie Zapata\r
+\r
+=back\r
+\r
+=head1 BUGS\r
+\r
+Please report bugs to C<bug-cvs2cl@red-bean.com>.\r
+\r
+=head1 PREREQUISITES\r
+\r
+This script requires C<Text::Wrap>, C<Time::Local>, and C<File::Basename>.  It\r
+also seems to require C<Perl 5.004_04> or higher.\r
+\r
+=head1 OPERATING SYSTEM COMPATIBILITY\r
+\r
+Should work on any OS.\r
+\r
+=head1 SCRIPT CATEGORIES\r
+\r
+Version_Control/CVS\r
+\r
+=head1 COPYRIGHT\r
+\r
+(C) 2001,2002,2003,2004 Martyn J. Pearce <fluffy@cpan.org>, under the GNU GPL.\r
+\r
+(C) 1999 Karl Fogel <kfogel@red-bean.com>, under the GNU GPL.\r
+\r
+cvs2cl.pl is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
+\r
+cvs2cl.pl is distributed in the hope that it will be useful,\r
+but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+GNU General Public License for more details.\r
+\r
+You may have received a copy of the GNU General Public License\r
+along with cvs2cl.pl; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place - Suite 330,\r
+Boston, MA 02111-1307, USA.\r
+\r
+=head1 SEE ALSO\r
+\r
+cvs(1)\r
+\r
+\r
diff --git a/tools/cvs2sql.pl b/tools/cvs2sql.pl
new file mode 100644 (file)
index 0000000..9cf69c8
--- /dev/null
@@ -0,0 +1,89 @@
+#!/usr/bin/perl\r
+#\r
+# This file is part of the IPCop Firewall.\r
+#\r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+#\r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+#\r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+#\r
+# Copyright (C) 2003-02-04 Mark Wormgoor <mark@wormgoor.com>\r
+#\r
+\r
+# Usage:\r
+#\r
+# ./tools/cvs2sql.pl | grep -e INSERT -e UPDATE > lang_data.sql\r
+#\r
+\r
+# Get time\r
+($sec, $min, $hour, $day, $month, $year, $weekday, $dayofyear, $isdst) = localtime(time);\r
+$year += 1900;\r
+if ($month < 10) { $month = "0" . $month; }\r
+if ($day   < 10) { $day   = "0" . $day;   }\r
+if ($hour  < 10) { $hour  = "0" . $hour;  }\r
+if ($min   < 10) { $min   = "0" . $min;   }\r
+if ($sec   < 10) { $sec   = "0" . $sec;   }\r
+$lastchange = "$year$month$day$hour$sec";\r
+\r
+# Read English install file\r
+  undef $/;\r
+  open (FILE, "langs/en/install/lang_en.c") or die "Couldn't open English language file";\r
+  $file = <FILE>;\r
+  close (FILE);\r
+  $file =~ s/"\s*\\\s*\n"//g;\r
+  $file =~ s/",/"/g;\r
+  $file =~ s/\\n/\\\\n/g;\r
+  $file =~ s/^.*(TR_[\w]+).*$/$1/gm;\r
+  $file =~ s/(TR_\w+)\n(.*$)/INSERT INTO Lang_Data (VarName, EN_Word, Section, LastChange) Values ("$1", $2, "SETUP", "$lastchange");/gm;\r
+  print "$file";\r
+\r
+# Read English Perl file\r
+  do "langs/en/cgi-bin/en.pl" or die "Failed to open English web language file";\r
+  while( my ($key, $value) = each(%tr) ) {\r
+       $key = lc($key);\r
+       $value =~ s/\n//mg;\r
+       $value =~ s/\\*\"/\\"/g;\r
+       print "INSERT INTO Lang_Data (VarName, EN_Word, Section, LastChange) Values (\"$key\", \"$value\", \"WEB\", \"$lastchange\");\n";\r
+  }\r
+\r
+# Other language install files\r
+  while (($trans = glob("langs/*/install/lang_*.c") ))  {\r
+       if ( $trans =~ /lang_en.c/ ) { next; }\r
+       if ( $trans =~ /lang_el.c/ ) { next; }\r
+       open (FILE, "$trans") or die "Couldn't open language file: $trans";\r
+       $file = <FILE>;\r
+       close (FILE);\r
+       $trans =~ s/.*lang_(.*).c/$1/;\r
+       $trans = uc($trans);\r
+       $file =~ s/"\s*\\\s*\n"//g;\r
+       $file =~ s/",/"/g;\r
+       $file =~ s/\\n/\\\\n/g;\r
+       $file =~ s/^.*(TR_[\w]+).*$/$1/gm;\r
+       $file =~ s/(TR_\w+)\n(.*$)/UPDATE Lang_Data set ${trans}_Word = $2 where VarName = "$1";/gm;\r
+       print "$file";\r
+  }\r
+\r
+# Other language perl files\r
+  while (($trans = glob("langs/*/cgi-bin/*.pl") ))  {\r
+       if ( $trans =~ /en.pl/ ) { next; }\r
+       if ( $trans =~ /el.pl/ ) { next; }\r
+       %tr=();\r
+       do "$trans" or die "Failed to load translation file: $trans";\r
+       $trans =~ s/.*\/(\w+).pl/$1/;\r
+       $trans = uc($trans);\r
+       while( my ($key, $value) = each(%tr) ) {\r
+               $key = lc($key);\r
+               $value =~ s/\n//mg;\r
+               $value =~ s/\\*\"/\\"/g;\r
+               print "UPDATE Lang_Data set ${trans}_Word = \"$value\" where VarName = \"$key\";\n";\r
+       }\r
+  }\r
diff --git a/tools/fetchlangs.pl b/tools/fetchlangs.pl
new file mode 100644 (file)
index 0000000..1709d5a
--- /dev/null
@@ -0,0 +1,37 @@
+#!/usr/bin/perl\r
+#\r
+# This file is part of the IPCop Firewall.\r
+#\r
+# IPCop is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+#\r
+# IPCop is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+#\r
+# You should have received a copy of the GNU General Public License\r
+# along with IPCop; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+#\r
+# Copyright (C) 2003-03-09 Mark Wormgoor <mark@wormgoor.com>\r
+#\r
+\r
+open(LIST, "./langs/list") or die 'Unable to open language list ./langs/list';\r
+\r
+while (<LIST>) {\r
+       next if $_ =~ m/^#/;\r
+       @temp = split(/:/,$_);\r
+       $lang = $temp[0];\r
+       $uclang = uc($lang);\r
+       print "Downloading files for " . $temp[1] . "\n";\r
+       system ('wget','--quiet','-N','-c','--cache=off',"http://www.ipcop.org/langs/create-c.php?Lang=${uclang}");\r
+       rename ("create-c.php?Lang=${uclang}", "langs/${lang}/install/lang_${lang}.c") or die\r
+               'Failed to rename downloaded file: langs/${lang}/install/lang_${lang}.c';\r
+       system ('wget','--quiet','-N','-c','--cache=off',"http://www.ipcop.org/langs/create-pl.php?Lang=${uclang}");\r
+       rename ("create-pl.php?Lang=${uclang}", "langs/${lang}/cgi-bin/${lang}.pl") or die\r
+               'Failed to rename downloaded file: langs/${lang}/cgi-bin/${lang}.pl';\r
+}\r
+close (LIST)\r
diff --git a/tools/mkflash/CVS/Entries b/tools/mkflash/CVS/Entries
new file mode 100644 (file)
index 0000000..2476193
--- /dev/null
@@ -0,0 +1,4 @@
+/logrotate.conf/1.3/Fri Jan 30 08:48:14 2004//TIPCOP_v1_4_0
+/mkflash/1.6.2.12/Sat Aug 13 15:15:54 2005//TIPCOP_v1_4_0
+/settings.8139/1.1.2.1/Tue Aug 31 13:06:44 2004//TIPCOP_v1_4_0
+D
diff --git a/tools/mkflash/CVS/Repository b/tools/mkflash/CVS/Repository
new file mode 100644 (file)
index 0000000..d884ca2
--- /dev/null
@@ -0,0 +1 @@
+ipcop/tools/mkflash
diff --git a/tools/mkflash/CVS/Root b/tools/mkflash/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/tools/mkflash/CVS/Tag b/tools/mkflash/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/tools/mkflash/logrotate.conf b/tools/mkflash/logrotate.conf
new file mode 100644 (file)
index 0000000..f136a66
--- /dev/null
@@ -0,0 +1,84 @@
+# rotate log files weekly
+weekly
+
+# keep 2 weeks worth of backlogs
+rotate 2
+
+# create new (empty) log files after rotating old ones
+create
+
+# Maximum logfile size of 1MB
+size 1M
+
+# uncomment this if you want your log files compressed
+compress
+
+# wtmp
+/var/log/wtmp {
+    weekly
+    create 0664 root utmp
+    rotate 1
+}
+
+/var/log/httpd/access_log /var/log/httpd/error_log /var/log/httpd/ssl_request_log /var/log/httpd/ssl_engine_log {
+    missingok
+    sharedscripts
+    postrotate
+       /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
+    endscript
+}
+
+/var/log/snort/alert {
+    weekly
+    copytruncate
+    ifempty
+    missingok
+}
+
+/var/log/snort/scan.log  {
+    weekly
+    copytruncate
+    compress
+    ifempty
+    missingok
+    postrotate
+       /usr/bin/find /var/log/snort -path '/var/log/snort/[0-9]*' -prune -exec rm -rf {} \;
+       /usr/local/bin/restartsnort
+    endscript
+}
+
+/var/log/squid/access.log {
+    weekly
+    copytruncate
+    ifempty
+    missingok
+}
+
+/var/log/squid/cache.log {
+    weekly
+    rotate 3
+    copytruncate
+    compress
+    missingok
+}
+
+/var/log/squid/store.log {
+    weekly
+    rotate 3
+    copytruncate
+    compress
+    missingok
+    postrotate
+       /bin/chmod -R ugo+rX /var/log/squid
+       /usr/sbin/squid -k rotate
+    endscript
+}
+
+/var/log/messages /var/log/boot.log {
+    sharedscripts
+    ifempty
+    postrotate
+       /bin/chmod ugo+rX /var/log/messages
+       /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
+    endscript
+}
diff --git a/tools/mkflash/mkflash b/tools/mkflash/mkflash
new file mode 100644 (file)
index 0000000..87c51f2
--- /dev/null
@@ -0,0 +1,460 @@
+#!/bin/bash
+#
+# This file is part of the IPCop Firewall.
+#
+# IPCop 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.
+#
+# IPCop 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 IPCop; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# Originally by Guy Ellis and Steve Bauer
+# Copyright 2001 Traverse Technologies Australia - http://www.traverse.com.au/
+#
+# Copyright (C) 2002-04-08 Mark Wormgoor <mark@wormgoor.com>
+#               - Modified to use loopback filesystem
+#              - Modified to easily change partition sizes
+# Copyright (C) 2003-04-04 Nick Shore <nick.shore@multithread.co.uk>
+#              - Added disksize calculations
+# Copyright (C) 2003-04-09 Simon Turner <simont@angledata.co.uk>
+#              - Modified to easily change partition sizes and fix
+#                some bugs.
+# Copyright (C) 2004-01-29 Mark Wormgoor <mark@wormgoor.com>
+#               - Modified for IPCop 1.4 (grub, etc)
+# Copyright (C) 2004-08-17 Dale Haag <dhaag@net-defender.net>
+#               - Fixed grub stage2 problem for CF disks
+#               - Added command line option to select target CF drive
+#               - Modified for creating 256mb, 512mb and 1gb CF disks
+#               - Modified routines for building sym links
+#               - Added ability to define kernel loading parameters needed for large CF disks
+#               - Added ability to define grub install parameters needed for large CF disks
+#               - Flash file is created as /tmp/[size]flash.img to allow storing multiple development images
+# Copyright (C) 2004-08-30 Dale Haag <dhaag@net-defender.net>        
+#               - Fixed issue with ramdisk sym link not properly being created for rc.flash.up
+#               - Added ability to configure ethernet settings for a LEX with 3 RTL8139 during flash build
+# Copyright (C) 2005-08-13 Gilles Espinasse <g.esp.ipcop@free.fr>
+#               - Use a bigger /boot partition to allow easier kernel upgrade and support smp kernel
+#               - Define zlog_MB at 30MB for 512 and 1gb like with 256 flash
+# Features
+# - ext3 file system
+# - auto grub install to CF
+# - compressed logs on flash + log to ramdisk
+#
+#   Some SiS chipset don't like ide=nodma parameter (bug SF 1098510), remove in case of problem
+
+VERSION="0.4.3"
+SIZE="$1"
+CF="$2"
+
+# See what we're supposed to do
+# 32 & 64 are too small now for this current script and IPCop 1.4.0
+case "$SIZE" in
+#32)
+#      echo "`date '+%b %e %T'`: Creating 32MB Compact Flash"
+#      flash_MB=30
+#      ramdisk_MB=64
+#      boot_MB=3
+#      zlog_MB=4
+#      root_MB=$(( $flash_MB - $boot_MB - $zlog_MB ))
+#      heads=8
+#      sectors=32
+#      ;;
+#64)
+#      echo "`date '+%b %e %T'`: Creating 64MB Compact Flash"
+#      flash_MB=61
+#      ramdisk_MB=64
+#      boot_MB=3
+#      zlog_MB=4
+#      root_MB=$(( $flash_MB - $boot_MB - $zlog_MB ))
+#      heads=8
+#      sectors=32
+#      ;;
+128)
+       echo "`date '+%b %e %T'`: Creating 128MB Compact Flash"
+       flash_MB=122
+       ramdisk_MB=64
+       boot_MB=8
+       zlog_MB=10
+       root_MB=$(( $flash_MB - $boot_MB - $zlog_MB ))
+       heads=8
+       sectors=32
+       ;;
+256)
+       echo "`date '+%b %e %T'`: Creating 256MB Compact Flash"
+       flash_MB=222
+       ramdisk_MB=64
+       boot_MB=8
+       zlog_MB=30
+       root_MB=$(( $flash_MB - $boot_MB - $zlog_MB ))
+       heads=16
+       sectors=32
+       #kernel_PARMS="idebus=100 ide=nodma ide0=0x177-0x177,0x376" #specific to LEX with CF on secondary master
+       #kernel_PARMS=""                # Sis chipset workaround, don't use nodma
+       kernel_PARMS="ide=nodma"        # Generic
+       grub_PARMS="--force-lba"
+       ;;
+512)
+       echo "`date '+%b %e %T'`: Creating 512MB Compact Flash"
+       flash_MB=485
+       ramdisk_MB=64
+       boot_MB=8
+       zlog_MB=30
+       root_MB=$(( $flash_MB - $boot_MB - $zlog_MB ))
+       heads=16
+       sectors=32
+       #kernel_PARMS="idebus=100 ide=nodma ide0=0x177-0x177,0x376" #specific to LEX with CF on secondary master
+       #kernel_PARMS=""                # Sis chipset workaround, don't use nodma
+       kernel_PARMS="ide=nodma"        # Generic
+       grub_PARMS="--force-lba"
+       ;;
+1gb)
+       echo "`date '+%b %e %T'`: Creating 1 Gigabyte Compact Flash"
+       flash_MB=978
+       ramdisk_MB=64
+       boot_MB=8
+       zlog_MB=30
+       root_MB=$(( $flash_MB - $boot_MB - $zlog_MB ))
+       heads=16
+       sectors=32
+       #kernel_PARMS="idebus=100 ide=nodma ide0=0x177-0x177,0x376" #specific to LEX with CF on secondary master
+       #kernel_PARMS=""                # Sis chipset workaround, don't use nodma
+       kernel_PARMS="ide=nodma"        Generic
+       grub_PARMS="--force-lba"
+       ;;
+
+*)
+#      echo "Usage: $0 {32|64|128|256|512|1gb} {hda|hdb|hdc|hdd}"
+       echo "Usage: $0 {128|256|512|1gb} {hda|hdb|hdc|hdd}"
+       exit 1
+       ;;
+esac
+
+case "$CF" in
+hda)
+       echo "`date '+%b %e %T'`: Creating hda Compact Flash"
+       drive_ID=hda4
+       ;;
+hdb)
+       echo "`date '+%b %e %T'`: Creating hdb Compact Flash"
+       drive_ID=hdb4
+       ;;
+hdc)
+       echo "`date '+%b %e %T'`: Creating hdc Compact Flash"
+       drive_ID=hdc4
+       ;;
+hdd)
+       echo "`date '+%b %e %T'`: Creating hdd Compact Flash"
+       drive_ID=hdd4
+       ;;
+*)
+       echo "Usage: $0 {32|64|128|256|512|1gb} {hda|hdb|hdc|hdd}"
+       exit 1
+       ;;
+esac
+
+
+# Calculate all the required derived variables...
+bs=512         # do not change!
+
+flash_blocks=$(( $flash_MB * 1024 * 1024 / $bs ))
+
+boot_blocks=$(( $boot_MB * 1024 * 1024 / $bs - 1 ))
+zlog_blocks=$(( $zlog_MB * 1024 * 1024 / $bs ))
+root_blocks=$(( $root_MB * 1024 * 1024 / $bs ))
+
+boot_block_offset=1
+zlog_block_offset=$(( $boot_block_offset + $boot_blocks ))
+root_block_offset=$(( $zlog_block_offset + $zlog_blocks ))
+
+boot_byte_offset=$(( $boot_block_offset * $bs ))
+zlog_byte_offset=$(( $zlog_block_offset * $bs ))
+root_byte_offset=$(( $root_block_offset * $bs ))
+
+cylinders=$(( $flash_blocks / $heads / $sectors ))
+
+# RAM Disk
+ramdisk_KB=$(( $ramdisk_MB * 1024 ))
+
+############################################################################
+#                                                                          #
+# Loading loopback kernel module                                           #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Loading loopback kernel module"
+modprobe loop
+
+
+############################################################################
+#                                                                          #
+# Creating empty flash image in /tmp/cf-image                              #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Creating empty flash image in /tmp"
+dd if=/dev/zero of=/tmp/flash.img bs=$bs count=$flash_blocks >/dev/null
+dd if=/dev/zero of=/var/log/part1.img bs=$bs count=$boot_blocks  >/dev/null
+dd if=/dev/zero of=/var/log/part2.img bs=$bs count=$zlog_blocks  >/dev/null
+dd if=/dev/zero of=/var/log/part3.img bs=$bs count=$root_blocks  >/dev/null
+
+
+############################################################################
+#                                                                          #
+# Making filesystems                                                       #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Making filesystems"
+mke2fs -F -j -m 0 -b 1024 /var/log/part1.img >/dev/null
+mke2fs -F -j -m 0 -b 1024 /var/log/part2.img >/dev/null
+mke2fs -F -j -m 0 -b 1024 /var/log/part3.img >/dev/null
+
+
+############################################################################
+#                                                                          #
+# Creating and partitioning Compact Flash image                            #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Creating and partitioning Compact Flash image"
+sfdisk -H $heads -S $sectors -C $cylinders -uM /tmp/flash.img <<EOF >/dev/null 2>&1
+# Start Size    Type    Bootable
+,$boot_MB,,*                   # /boot
+,$zlog_MB,,                    # /var/log_compressed
+,0,,                           # Unused
+,$root_MB,,                    # /
+EOF
+dd if=/var/log/part1.img of=/tmp/flash.img seek=$boot_block_offset  bs=$bs
+dd if=/var/log/part2.img of=/tmp/flash.img seek=$zlog_block_offset  bs=$bs
+dd if=/var/log/part3.img of=/tmp/flash.img seek=$root_block_offset  bs=$bs
+rm -f /var/log/part?.img
+
+
+############################################################################
+#                                                                          #
+# Mounting loopback flash image under /mnt                                 #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Mounting loopback flash image under /mnt"
+rm -rf /mnt/flash
+mkdir -p /mnt/flash
+mount -o loop,offset=$root_byte_offset /tmp/flash.img /mnt/flash
+mkdir -p /mnt/flash/boot
+mount -o loop,offset=$boot_byte_offset /tmp/flash.img /mnt/flash/boot
+mkdir -p /mnt/flash/var/log_compressed
+mount -o loop,offset=$zlog_byte_offset /tmp/flash.img /mnt/flash/var/log_compressed
+
+
+############################################################################
+#                                                                          #
+# Creating flash image directory structure                                 #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Creating flash image directory structure"
+mkdir -p /mnt/flash/{ram/,proc/,mnt/}
+
+
+############################################################################
+#                                                                          #
+# Copying files into flash image                                           #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Copying files into flash image"
+# /boot
+cp -a /boot /mnt/flash/
+
+# /var
+mkdir -p /mnt/flash/var/{log,log_compressed,spool,www/icons}
+cp -a /var/ipcop /var/lib /var/state /var/lock /var/log /mnt/flash/var
+
+#######################################################################################
+# Configure flash image ethernet settings                                             #
+# this allows you to stage on one system and build flash for LEX with 3 RTL8139 NIC's #
+# if a settings file named settings.8139 is placed in your /root directory it will be #
+# used to configure the flash image with the correct ethernet settings for the LEX    #
+# a default settings.8139 file is provided for your use                               # 
+#######################################################################################
+if [ -f /root/settings.8139 ]
+then
+       /bin/echo ""    
+    /bin/echo "Configuring Flash With LEX RTL8139 Ethernet Settings"
+    /bin/echo ""
+    /bin/echo ""
+    cat /root/settings.8139 > /mnt/flash/var/ipcop/ethernet/settings
+else
+    /bin/echo ""    
+    /bin/echo "Flash Is Using Build System Ethernet Settings"
+    /bin/echo ""
+    /bin/echo ""
+
+fi
+
+rm -rf /mnt/flash/var/log/lost+found
+cp -a  /var/run /var/empty /mnt/flash/var
+cp -a  /var/spool/cron /mnt/flash/var/spool
+ln -s  /tmp /mnt/flash/var/patches
+ln -sf /ram/squid /var/log/cache
+rm -f  /mnt/flash/var/lib/logrotate.status
+rm -f  /mnt/flash/var/state/dhcp/*
+touch  /mnt/flash/var/state/dhcp/dhcpd.leases
+find /mnt/flash/var/run \( -type f -o -type s \) -exec rm -f {} \;
+touch /mnt/flash/var/run/utmp
+chmod 644 /mnt/flash/var/run/utmp
+chown root:utmp /mnt/flash/var/run/utmp
+touch /mnt/flash/var/log/wtmp
+chmod 664 /mnt/flash/var/log/wtmp
+chown root:utmp /mnt/flash/var/log/wtmp
+
+# /var/log
+rm -rf /mnt/flash/var/log/snort/*
+find /mnt/flash/var/log -type f -exec rm -f {} \;
+tar -C /mnt/flash -czf /mnt/flash/var/log_compressed/log.tgz var/log/
+rm -rf /mnt/flash/var/log/
+ln -sf /ram/log /mnt/flash/var/log
+
+# Other files
+cp -a  /sbin /mnt/flash/
+cp -a  /bin  /mnt/flash/
+cp -a  /lib  /mnt/flash/
+cp -a  /dev  /mnt/flash/
+
+# create the symlinks
+echo "`date '+%b %e %T'`: Creating $CF Sym Link"
+ln -sf /dev/"$CF" /mnt/flash/dev/harddisk
+
+echo "`date '+%b %e %T'`: Creating "$CF'1'" Sym Link"
+ln -sf /dev/$CF'1' /mnt/flash/dev/harddisk1
+
+echo "`date '+%b %e %T'`: Creating "$CF'2'" Sym Link"
+ln -sf /dev/$CF'2' /mnt/flash/dev/harddisk2
+
+echo "`date '+%b %e %T'`: Creating "$CF'3'" Sym Link"
+ln -sf /dev/$CF'3' /mnt/flash/dev/harddisk3
+
+echo "`date '+%b %e %T'`: Creating "$CF'4'" Sym Link"
+ln -sf /dev/$CF'4' /mnt/flash/dev/harddisk4
+
+
+cp -a  /root /mnt/flash/
+rm -f  /mnt/flash/root/.bash_history
+cp -a  /etc  /mnt/flash/
+rm -rf /mnt/flash/etc/{httpd/conf/ssl*,makedev.d/}
+rm -f  /mnt/flash/etc/ssh/*key
+rm -f  /mnt/flash/etc/httpd/server.*
+cp -a  /home /mnt/flash/
+rm -f  /home/httpd/html/graphs/*
+rm -f  /home/httpd/html/sgraph/*
+cp -a  /usr /mnt/flash
+rm -rf /mnt/flash/{tmp/,usr/tmp/,var/tmp/}
+ln -sf /ram/tmp/ /mnt/flash/tmp
+ln -sf /ram/tmp/ /mnt/flash/usr/tmp
+ln -sf /ram/tmp/ /mnt/flash/var/tmp
+ln -sf /dev/ram0 /mnt/flash/dev/ramdisk
+
+############################################################################
+#                                                                          #
+# Installing log backup cron job                                           #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Installing log backup cron job"
+cat >> /mnt/flash/var/spool/cron/root.orig <<EOF
+
+# Backup logs to flash
+02 * * * *     /etc/rc.d/rc.flash.down
+EOF
+chroot /mnt/flash /usr/bin/fcrontab -z >/dev/null 2>&1
+
+
+############################################################################
+#                                                                          #
+# Reconfiguring logrotate                                                  #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Reconfiguring logrotate"
+cp -pf logrotate.conf /mnt/flash/etc/
+
+
+############################################################################
+#                                                                          #
+# Installing new fstab                                                     #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Installing new fstab"
+cat /etc/fstab | sed -e 's/log\t/log_compressed/' > /mnt/flash/etc/fstab
+df | grep /mnt/flash
+
+
+############################################################################
+#                                                                          #
+# Touching /etc/FLASH                                                      #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Touching /etc/FLASH"
+touch /mnt/flash/etc/FLASH
+
+############################################################################
+#                                                                          #
+# Create the Grub.conf file with our parameters                            #
+#                                                                          #
+############################################################################
+cat > /mnt/flash/boot/grub/grub.conf <<EOF
+timeout 5
+default saved
+foreground = 16064e
+background = ffffff
+splashimage (hd0,0)/grub/ipcop.xpm.gz
+title IPCop
+  root (hd0,0)
+  kernel /vmlinuz root=/dev/$drive_ID panic=10 acpi=off ro $kernel_PARMS ramdisk_size=$ramdisk_KB
+  savedefault
+title IPCop SMP
+  root (hd0,0)
+  kernel /vmlinuz-smp root=/dev/$drive_ID panic=10 acpi=off ro $kernel_PARMS ramdisk_size=$ramdisk_KB
+  savedefault
+title IPCop (ACPI enabled)
+  root (hd0,0)
+  kernel /vmlinuz root=/dev/$drive_ID panic=10 ro $kernel_PARMS ramdisk_size=$ramdisk_KB
+  savedefault
+title IPCop SMP (ACPI HT enabled)
+  root (hd0,0)
+  kernel /vmlinuz-smp root=/dev/$drive_ID panic=10 acpi=ht ro $kernel_PARMS ramdisk_size=$ramdisk_KB
+  savedefault
+EOF
+
+
+############################################################################
+#                                                                          #
+# Installing grub                                                          #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Installing Grub"
+
+/usr/sbin/grub --batch <<EOF >/dev/null 2>&1
+device (hd0) /tmp/flash.img
+geometry (hd0)
+root (hd0,0)
+makeactive
+install $grub_PARMS (hd0,0)/grub/stage1 (hd0) (hd0,0)/grub/stage2 0x8000 p /grub/grub.conf
+quit
+EOF
+
+############################################################################
+#                                                                          #
+# Cleaning up                                                              #
+#                                                                          #
+############################################################################
+echo "`date '+%b %e %T'`: Cleaning up"
+rm -f verinfo
+umount /mnt/flash/var/log_compressed
+umount /mnt/flash/boot
+umount /mnt/flash
+losetup -d /dev/loop0
+losetup -d /dev/loop1
+losetup -d /dev/loop2
+mv /tmp/flash.img /tmp/$SIZE'flash.img'
+
+echo "`date '+%b %e %T'`: Mkflash For $SIZE Flash Drive On $CF Complete"
diff --git a/tools/mkflash/settings.8139 b/tools/mkflash/settings.8139
new file mode 100644 (file)
index 0000000..43d2be7
--- /dev/null
@@ -0,0 +1,30 @@
+CONFIG_TYPE=3
+GREEN_DRIVER=8139too
+GREEN_DRIVER_OPTIONS=
+GREEN_DEV=eth0
+GREEN_DISPLAYDRIVER=8139too
+GREEN_ADDRESS=192.168.1.254
+GREEN_NETMASK=255.255.255.0
+GREEN_NETADDRESS=192.168.1.0
+GREEN_BROADCAST=192.168.1.255
+ORANGE_DEV=eth1
+RED_DEV=eth2
+RED_DRIVER=8139too
+RED_DRIVER_OPTIONS=
+RED_DISPLAYDRIVER=8139too
+ORANGE_DRIVER=8139too
+ORANGE_DRIVER_OPTIONS=
+ORANGE_DISPLAYDRIVER=8139too
+ORANGE_ADDRESS=192.168.2.254
+ORANGE_NETMASK=255.255.255.0
+ORANGE_NETADDRESS=192.168.2.0
+ORANGE_BROADCAST=192.168.2.255
+RED_DHCP_HOSTNAME=ipcop
+RED_ADDRESS=10.0.0.254
+RED_NETMASK=255.255.255.0
+RED_TYPE=STATIC
+RED_NETADDRESS=10.0.0.0
+RED_BROADCAST=10.0.0.255
+DNS1=10.0.0.1
+DNS2=10.0.0.1
+DEFAULT_GATEWAY=10.0.0.1
diff --git a/tools/perfTest.sh b/tools/perfTest.sh
new file mode 100644 (file)
index 0000000..c9140ac
--- /dev/null
@@ -0,0 +1,84 @@
+#!/bin/bash\r
+#\r
+############################################################################\r
+#                                                                          #\r
+# This file is part of the IPCop Firewall.                                 #\r
+#                                                                          #\r
+# IPCop is free software; you can redistribute it and/or modify            #\r
+# it under the terms of the GNU General Public License as published by     #\r
+# the Free Software Foundation; either version 2 of the License, or        #\r
+# (at your option) any later version.                                      #\r
+#                                                                          #\r
+# IPCop is distributed in the hope that it will be useful,                 #\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #\r
+# GNU General Public License for more details.                             #\r
+#                                                                          #\r
+# You should have received a copy of the GNU General Public License        #\r
+# along with IPCop; if not, write to the Free Software                     #\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #\r
+#                                                                          #\r
+# Copyright (C) 2005 Mark Wormgoor <mark@wormgoor.com>.                    #\r
+#                                                                          #\r
+############################################################################\r
+#\r
+# $Id: perfTest.sh,v 1.1.2.1 2005/01/26 19:43:36 riddles Exp $\r
+#\r
+# This script will do a get request for all links on an IPCop box.\r
+# You can time this using:\r
+#      time ./perfTest.sh\r
+#\r
+# This will give you a basic idea of the speed of your IPCop machine\r
+# and will make it possible for you to test new updates for performance.\r
+# With just network overhead on a sufficiently fast machine, expect \r
+# something around 5 seconds for the entire test.\r
+#\r
+## Basic settings\r
+CGI_HOST=192.168.1.1\r
+CGI_PORT=445\r
+CGI_URL="https://$CGI_HOST:$CGI_PORT/cgi-bin"\r
+USER=admin\r
+PASS=password\r
+CMD="wget -q -O /dev/null --http-user=$USER --http-passwd=$PASS"\r
+\r
+doTest() {\r
+       $CMD $CGI_URL/aliases.cgi\r
+       $CMD $CGI_URL/backup.cgi\r
+       $CMD $CGI_URL/changepw.cgi\r
+       $CMD $CGI_URL/connections.cgi\r
+       $CMD $CGI_URL/credits.cgi\r
+       $CMD $CGI_URL/ddns.cgi\r
+       $CMD $CGI_URL/dhcp.cgi\r
+       $CMD $CGI_URL/dial.cgi\r
+       $CMD $CGI_URL/dmzholes.cgi\r
+       $CMD $CGI_URL/graphs.cgi\r
+       $CMD $CGI_URL/gui.cgi\r
+       $CMD $CGI_URL/hosts.cgi\r
+       $CMD $CGI_URL/ids.cgi\r
+       $CMD $CGI_URL/index.cgi\r
+       $CMD $CGI_URL/ipinfo.cgi\r
+       $CMD $CGI_URL/modem.cgi\r
+       $CMD $CGI_URL/netstatus.cgi\r
+       $CMD $CGI_URL/portfw.cgi\r
+       $CMD $CGI_URL/pppsetup.cgi\r
+       $CMD $CGI_URL/proxy.cgi\r
+       $CMD $CGI_URL/proxygraphs.cgi\r
+       $CMD $CGI_URL/remote.cgi\r
+       $CMD $CGI_URL/shaping.cgi\r
+       $CMD $CGI_URL/shutdown.cgi\r
+       $CMD $CGI_URL/status.cgi\r
+       $CMD $CGI_URL/time.cgi\r
+       $CMD $CGI_URL/updates.cgi\r
+       $CMD $CGI_URL/upload.cgi\r
+       $CMD $CGI_URL/vpnmain.cgi\r
+       $CMD $CGI_URL/wireless.cgi\r
+       $CMD $CGI_URL/xtaccess.cgi\r
+       $CMD $CGI_URL/logs.cgi/config.dat\r
+       $CMD $CGI_URL/logs.cgi/firewalllog.dat\r
+       $CMD $CGI_URL/logs.cgi/ids.dat\r
+       $CMD $CGI_URL/logs.cgi/log.dat\r
+       $CMD $CGI_URL/logs.cgi/proxylog.dat\r
+       $CMD $CGI_URL/logs.cgi/summary.dat\r
+}\r
+\r
+doTest\r
diff --git a/updates/1.4.1/.cvsignore b/updates/1.4.1/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.1/CVS/Entries b/updates/1.4.1/CVS/Entries
new file mode 100644 (file)
index 0000000..ea32e30
--- /dev/null
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Sat Jan  1 16:34:27 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.1/1.1.2.31/Tue Nov 16 20:13:28 2004//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.1/1.1.2.32/Tue Nov 16 20:13:28 2004//TIPCOP_v1_4_0
+/information/1.1.2.5/Wed Nov 10 20:13:27 2004//TIPCOP_v1_4_0
+/setup/1.1.2.20/Tue Nov 16 16:01:00 2004//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.1/CVS/Repository b/updates/1.4.1/CVS/Repository
new file mode 100644 (file)
index 0000000..143e16d
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.1
diff --git a/updates/1.4.1/CVS/Root b/updates/1.4.1/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.1/CVS/Tag b/updates/1.4.1/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.1/ROOTFILES.alpha-1.4.1 b/updates/1.4.1/ROOTFILES.alpha-1.4.1
new file mode 100644 (file)
index 0000000..c8de670
--- /dev/null
@@ -0,0 +1,189 @@
+home/httpd/cgi-bin/connections.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dmzholes.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/hosts.cgi
+home/httpd/cgi-bin/ids.cgi
+home/httpd/cgi-bin/index.cgi
+home/httpd/cgi-bin/netstatus.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/status.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/upload.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+var/ipcop/header.pl
+var/ipcop/langs/list
+var/ipcop/langs/bz.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/es.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/pl.pl
+var/ipcop/langs/so.pl
+var/ipcop/langs/zh.pl
+var/ipcop/langs/cs.pl
+var/ipcop/langs/da.pl
+var/ipcop/langs/fi.pl
+var/ipcop/langs/hu.pl
+var/ipcop/langs/la.pl
+var/ipcop/langs/nl.pl
+var/ipcop/langs/pt.pl
+var/ipcop/langs/ro.pl
+var/ipcop/langs/sv.pl
+var/ipcop/langs/tr.pl
+var/ipcop/langs/vi.pl
+usr/bin/eciadsl-firmware
+usr/bin/eciadsl-synch
+usr/bin/eciadsl-pppoeci
+usr/local/sbin/setup
+usr/local/bin/installfcdsl
+usr/local/bin/ipsecctrl
+usr/local/bin/makegraphs
+usr/local/bin/restartdhcp
+usr/local/bin/restartshaping
+usr/local/bin/restartsnort
+usr/local/bin/restartsquid
+usr/local/bin/setddns.pl
+usr/local/bin/setdmzholes
+usr/local/bin/tunerrd.pl
+usr/local/bin/updatelists.pl
+usr/sbin/modem_run
+etc/issue
+etc/httpd/conf/httpd.conf
+etc/rc.d/rc.alcatelusb
+etc/rc.d/rc.alcatelusbk
+etc/rc.d/rc.eagleusbadsl
+etc/rc.d/rc.fritzdsl
+etc/rc.d/rc.red
+etc/rc.d/rc.sysinit
+etc/rc.d/rc.updatered
+etc/rc.d/rc.netaddress.up
+etc/rc.d/rc.network
+##
+## capi4k-utils-2004-10-06
+##
+usr/lib/pppd/2.4.2/capiplugin.so
+usr/lib/pppd/2.4.2/userpass.so
+usr/lib/libcapi20.so.2.0.9
+usr/lib/libcapi20.so.2
+usr/lib/libcapi20.so
+usr/sbin/capiinit
+##
+## squid-2.5.STABLE7
+##
+etc/squid/mime.conf
+etc/squid/msntauth.conf
+etc/squid/squid.conf
+usr/lib/squid/errors/English
+usr/lib/squid/icons
+usr/lib/squid/msnt_auth
+usr/lib/squid/ncsa_auth
+usr/lib/squid/ntlm_auth
+usr/lib/squid/smb_auth
+usr/lib/squid/smb_auth.sh
+usr/lib/squid/unlinkd
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
+##
+## eciadsl-nortek-2021
+##
+usr/sbin/eciadsl-synch
+usr/sbin/eciadsl-pppoeci
+var/ipcop/eciadsl/modems.db
+etc/rc.d/rc.eciadsl
+##
+## net-tools-1.60 (patched)
+##
+bin/dnsdomainname
+#bin/domainname
+bin/hostname
+bin/netstat
+#bin/nisdomainname
+#bin/ypdomainname
+sbin/arp
+sbin/ifconfig
+sbin/nameif
+#sbin/plipconfig
+sbin/rarp
+sbin/route
+sbin/slattach
+sbin/mii-tool
+##
+## iptables-1.2.11
+##
+sbin/iptables
+sbin/iptables-save
+sbin/iptables-restore
+##
+## dnsmasq-2.17
+##
+usr/sbin/dnsmasq
+##
+## openssl-0.9.7e
+##
+etc/ssl/openssl.cnf
+usr/bin/openssl
+usr/lib/libcrypto.so
+usr/lib/libcrypto.so.0
+usr/lib/libcrypto.so.0.9.7
+usr/lib/libssl.so
+usr/lib/libssl.so.0
+usr/lib/libssl.so.0.9.7
+##
+## apache_1.3.33
+##
+usr/bin/htpasswd
+usr/sbin/httpd
+##
+## linux-2.4.27 
+##
+lib/modules/2.4.27/kernel/drivers/usb/usbnet.o.gz
+lib/modules/2.4.27/kernel/drivers/net/aironet4500_core.o.gz
+lib/modules/2.4.27/kernel/drivers/net/aironet4500_card.o.gz
+lib/modules/2.4.27/kernel/drivers/net/arlan-proc.o.gz
+lib/modules/2.4.27/kernel/drivers/net/arlan.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wavelan.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/orinoco_cs.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/orinoco_tmd.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/orinoco_pci.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/orinoco.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/hermes.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/orinoco_plx.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/usb/usbnet.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/aironet4500_core.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/aironet4500_card.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/arlan-proc.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/arlan.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wavelan.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/orinoco_cs.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/orinoco_tmd.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/orinoco_pci.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/orinoco.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/hermes.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/orinoco_plx.o.gz
+##
+## eagle-usb-2.0.0 and smp
+##
+etc/eagle-usb/CMVepES.txt
+etc/eagle-usb/CMVepFR.txt
+etc/eagle-usb/CMVepIT.txt
+etc/eagle-usb/CMVeiWO.txt
+etc/eagle-usb/CMVepWO.txt
+#etc/eagle-usb
+usr/sbin/eaglectrl
+usr/sbin/eaglestat
+lib/modules/2.4.27/misc/eagle-usb.o.gz
+lib/modules/2.4.27-smp/misc/eagle-usb.o.gz
+##
+## iputils-ss020927
+##
+usr/bin/ping
+##
+## ez-ipupdate-3.0.11b8
+##
+usr/bin/ez-ipupdate
diff --git a/updates/1.4.1/ROOTFILES.i386-1.4.1 b/updates/1.4.1/ROOTFILES.i386-1.4.1
new file mode 100644 (file)
index 0000000..e2c6938
--- /dev/null
@@ -0,0 +1,213 @@
+home/httpd/cgi-bin/connections.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dmzholes.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/hosts.cgi
+home/httpd/cgi-bin/ids.cgi
+home/httpd/cgi-bin/index.cgi
+home/httpd/cgi-bin/netstatus.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/status.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/upload.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+var/ipcop/header.pl
+var/ipcop/langs/list
+var/ipcop/langs/bz.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/es.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/pl.pl
+var/ipcop/langs/so.pl
+var/ipcop/langs/zh.pl
+var/ipcop/langs/cs.pl
+var/ipcop/langs/da.pl
+var/ipcop/langs/fi.pl
+var/ipcop/langs/hu.pl
+var/ipcop/langs/la.pl
+var/ipcop/langs/nl.pl
+var/ipcop/langs/pt.pl
+var/ipcop/langs/ro.pl
+var/ipcop/langs/sv.pl
+var/ipcop/langs/tr.pl
+var/ipcop/langs/vi.pl
+usr/bin/eciadsl-firmware
+usr/bin/eciadsl-synch
+usr/bin/eciadsl-pppoeci
+usr/local/sbin/setup
+usr/local/bin/installfcdsl
+usr/local/bin/ipsecctrl
+usr/local/bin/makegraphs
+usr/local/bin/restartdhcp
+usr/local/bin/restartshaping
+usr/local/bin/restartsnort
+usr/local/bin/restartsquid
+usr/local/bin/setddns.pl
+usr/local/bin/setdmzholes
+usr/local/bin/tunerrd.pl
+usr/local/bin/updatelists.pl
+usr/sbin/modem_run
+etc/issue
+etc/httpd/conf/httpd.conf
+etc/rc.d/rc.alcatelusb
+etc/rc.d/rc.alcatelusbk
+etc/rc.d/rc.conexantpciadsl
+etc/rc.d/rc.eagleusbadsl
+etc/rc.d/rc.fritzdsl
+etc/rc.d/rc.red
+etc/rc.d/rc.sysinit
+etc/rc.d/rc.updatered
+etc/rc.d/rc.netaddress.up
+etc/rc.d/rc.network
+##
+## capi4k-utils-2004-10-06
+##
+usr/lib/pppd/2.4.2/capiplugin.so
+usr/lib/pppd/2.4.2/userpass.so
+usr/lib/libcapi20.so.2.0.9
+usr/lib/libcapi20.so.2
+usr/lib/libcapi20.so
+usr/sbin/capiinit
+##
+## pulsar-4.0.15
+##
+lib/modules/2.4.27/misc/pulsar.o.gz
+##
+## pulsar-4.0.15-smp
+##
+lib/modules/2.4.27-smp/misc/pulsar.o.gz
+##
+## squid-2.5.STABLE7
+##
+etc/squid/mime.conf
+etc/squid/msntauth.conf
+etc/squid/squid.conf
+usr/lib/squid/errors/English
+usr/lib/squid/icons
+usr/lib/squid/msnt_auth
+usr/lib/squid/ncsa_auth
+usr/lib/squid/ntlm_auth
+usr/lib/squid/smb_auth
+usr/lib/squid/smb_auth.sh
+usr/lib/squid/unlinkd
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
+lib/modules/2.4.27/modules.dep
+lib/modules/2.4.27-smp/modules.dep
+##
+## eciadsl-nortek-2021
+##
+usr/sbin/eciadsl-synch
+usr/sbin/eciadsl-pppoeci
+var/ipcop/eciadsl/modems.db
+etc/rc.d/rc.eciadsl
+##
+## net-tools-1.60 (patched)
+##
+bin/dnsdomainname
+#bin/domainname
+bin/hostname
+bin/netstat
+#bin/nisdomainname
+#bin/ypdomainname
+sbin/arp
+sbin/ifconfig
+sbin/nameif
+#sbin/plipconfig
+sbin/rarp
+sbin/route
+sbin/slattach
+sbin/mii-tool
+##
+## iptables-1.2.11
+##
+sbin/iptables
+sbin/iptables-save
+sbin/iptables-restore
+##
+## dnsmasq-2.17
+##
+usr/sbin/dnsmasq
+##
+## openssl-0.9.7e
+##
+etc/ssl/openssl.cnf
+usr/bin/openssl
+usr/lib/libcrypto.so
+usr/lib/libcrypto.so.0
+usr/lib/libcrypto.so.0.9.7
+usr/lib/libssl.so
+usr/lib/libssl.so.0
+usr/lib/libssl.so.0.9.7
+##
+## apache_1.3.33
+##
+usr/bin/htpasswd
+usr/sbin/httpd
+##
+## linux-2.4.27 
+##
+lib/modules/2.4.27/kernel/drivers/usb/usbnet.o.gz
+lib/modules/2.4.27/kernel/drivers/net/aironet4500_core.o.gz
+lib/modules/2.4.27/kernel/drivers/net/aironet4500_card.o.gz
+lib/modules/2.4.27/kernel/drivers/net/arlan-proc.o.gz
+lib/modules/2.4.27/kernel/drivers/net/arlan.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wavelan.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/orinoco_cs.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/orinoco_tmd.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/orinoco_pci.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/orinoco.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/hermes.o.gz
+lib/modules/2.4.27/kernel/drivers/net/wireless/orinoco_plx.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/usb/usbnet.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/aironet4500_core.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/aironet4500_card.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/arlan-proc.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/arlan.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wavelan.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/orinoco_cs.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/orinoco_tmd.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/orinoco_pci.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/orinoco.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/hermes.o.gz
+lib/modules/2.4.27-smp/kernel/drivers/net/wireless/orinoco_plx.o.gz
+##
+## eagle-usb-2.0.0 and smp
+##
+etc/eagle-usb/CMVepES.txt
+etc/eagle-usb/CMVepFR.txt
+etc/eagle-usb/CMVepIT.txt
+etc/eagle-usb/CMVeiWO.txt
+etc/eagle-usb/CMVepWO.txt
+#etc/eagle-usb
+usr/sbin/eaglectrl
+usr/sbin/eaglestat
+lib/modules/2.4.27/misc/eagle-usb.o.gz
+lib/modules/2.4.27-smp/misc/eagle-usb.o.gz
+##
+## iputils-ss020927
+##
+usr/bin/ping
+##
+## ez-ipupdate-3.0.11b8
+##
+usr/bin/ez-ipupdate
+##
+## CnxADSL-TgrATMcln-20041004 and smp
+#etc/Conexant
+#etc/Conexant/CnxTgF.hex
+#etc/Conexant/CnxYkF.hex
+etc/Conexant/cnxadsl.conf
+#etc/Conexant/cnxadslctl.conf
+etc/Conexant/cnxadslload
+usr/sbin/cnxadslconfig
+usr/sbin/cnxadslstatus
+#usr/sbin/cnxadslautolog
+lib/modules/2.4.27/misc/CnxADSL.o.gz
+lib/modules/2.4.27-smp/misc/CnxADSL.o.gz
diff --git a/updates/1.4.1/information b/updates/1.4.1/information
new file mode 100644 (file)
index 0000000..2ca260a
--- /dev/null
@@ -0,0 +1 @@
+001|1.4.1 update|This update includes squid-2.5STABLE7, new fcdsl and eciadsl-nortek hardware support, Speedtouch 0.01 support, adds Somali language, fixes some translations, and fixes the gaps in graph generation,  .................................|2004-11-20
diff --git a/updates/1.4.1/setup b/updates/1.4.1/setup
new file mode 100644 (file)
index 0000000..a0319d9
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+echo "This is the 1.4.1 update patch for IPCop 1.4.0 installing."
+
+CURRENTVERSION=`cat /etc/issue | awk '{ print $2 }' | sed -e 's/v//'`
+UPGRADEVERSION="1.4.1"
+
+if [ "$CURRENTVERSION" != "1.4.0" ]; then
+       echo "You are not running IPCop v1.4.0 for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+/bin/rm -rf    /etc/capi.conf \
+               /var/ipcop/{pulsardsl,fritzdsl} \
+               /usr/lib/libcapi20.so* \
+               /usr/bin/{pppoeci,eci-load1,eci-load2} \
+               /usr/sbin/cnxadslautolog
+/bin/tar -zxpf patch.tar.gz -C /
+
+# Fix the graphs heartbeat
+/usr/local/bin/tunerrd.pl
+rm -f /usr/local/bin/tunerrd.pl
+
+# update linker cache
+/sbin/ldconfig
+
+# Fix dhcpd.conf for bootp problem
+if grep -q "range dynamic-bootp" /var/ipcop/dhcp/dhcpd.conf; then
+       sed -i -e 's/range\ dynamic-bootp/range/g' /var/ipcop/dhcp/dhcpd.conf
+       chown 99:99 /var/ipcop/dhcp/dhcpd.conf
+fi
+
+if [ -e /var/ipcop/dhcp/enable ]; then
+       mv /var/ipcop/dhcp/enable /var/ipcop/dhcp/enable_green
+fi
+
+sed -i -e 's/START_ADDR=/START_ADDR_GREEN=/' \
+       -e 's/END_ADDR=/END_ADDR_GREEN=/' \
+       -e 's/DOMAIN_NAME=/DOMAIN_NAME_GREEN=/' \
+       -e 's/DEFAULT_LEASE_TIME=/DEFAULT_LEASE_TIME_GREEN=/' \
+       -e 's/MAX_LEASE_TIME=/MAX_LEASE_TIME_GREEN=/' \
+       -e 's/DNS1=/DNS1_GREEN=/' \
+       -e 's/DNS2=/DNS2_GREEN=/' \
+       -e 's/WINS1=/WINS1_GREEN=/' \
+       -e 's/WINS2=/WINS2_GREEN=/' \
+       -e 's/ENABLE=/ENABLE_GREEN=/' /var/ipcop/dhcp/settings
+chown 99:99 /var/ipcop/dhcp/settings
+
+if [ -e /var/ipcop/eagle-usb/eagle-usb.conf ]; then
+       sed -i -e 's/Linetype=00000001/Linetype=0A/' /var/ipcop/eagle-usb/eagle-usb.conf
+       chown 99:99 /var/ipcop/eagle-usb/eagle-usb.conf
+fi
+
+mkdir -p /var/ipcop/isapnp
+chown 99:99 /var/ipcop/isapnp
+if [ -e /etc/isapnp.conf ]; then
+       mv /etc/isapnp.conf /var/ipcop/isapnp/isapnp.conf
+else
+       touch /var/ipcop/isapnp/isapnp.conf
+       chown 99:99 /var/ipcop/isapnp/isapnp.conf
+fi
diff --git a/updates/1.4.10/.cvsignore b/updates/1.4.10/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.10/CVS/Entries b/updates/1.4.10/CVS/Entries
new file mode 100644 (file)
index 0000000..f4cc3f5
--- /dev/null
@@ -0,0 +1,7 @@
+/.cvsignore/1.1.2.1/Tue Oct  4 11:48:29 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.10/1.1.2.25/Sat Nov  5 23:42:00 2005//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.10/1.1.2.25/Sat Nov  5 23:42:00 2005//TIPCOP_v1_4_0
+/fixbackups.sh/1.1.2.1/Mon Nov  7 01:29:55 2005//TIPCOP_v1_4_0
+/information/1.1.2.10/Mon Nov  7 01:29:55 2005//TIPCOP_v1_4_0
+/setup/1.1.2.12/Mon Nov  7 01:29:55 2005//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.10/CVS/Repository b/updates/1.4.10/CVS/Repository
new file mode 100644 (file)
index 0000000..84ddc86
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.10
diff --git a/updates/1.4.10/CVS/Root b/updates/1.4.10/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.10/CVS/Tag b/updates/1.4.10/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.10/ROOTFILES.alpha-1.4.10 b/updates/1.4.10/ROOTFILES.alpha-1.4.10
new file mode 100644 (file)
index 0000000..47e794e
--- /dev/null
@@ -0,0 +1,48 @@
+etc/issue
+etc/logrotate.conf
+etc/rc.d/rc.red
+etc/rc.d/rc.updatered
+home/httpd/cgi-bin/aliases.cgi
+home/httpd/cgi-bin/backup.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/dmzholes.cgi
+home/httpd/cgi-bin/hosts.cgi
+home/httpd/cgi-bin/netstatus.cgi
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/shutdown.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+usr/local/bin/ipcopbkcfg
+usr/local/bin/ipcoprscfg
+usr/local/bin/ipcopreboot
+usr/local/bin/restartsnort
+usr/local/bin/setdmzholes
+var/ipcop/backup/exclude.system
+var/ipcop/lang.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/es.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/la.pl
+var/ipcop/langs/lt.pl
+var/ipcop/langs/nl.pl
+var/ipcop/langs/pl.pl
+var/ipcop/langs/sv.pl
+##
+## apache_1.3.34 mod_ssl-2.8.25-1.3.34 mm-1.4.0
+usr/sbin/httpd
+##
+## openssl-0.9.7i
+usr/bin/openssl
+usr/lib/libcrypto.so.0.9.7
+usr/lib/libssl.so.0.9.7
+usr/bin/ssh-keygen
+usr/sbin/sshd
+##
+## squid-2.5.STABLE11 patched (CAN-2005-3258 and bug#1405)
+usr/lib/squid/ntlm_auth
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
diff --git a/updates/1.4.10/ROOTFILES.i386-1.4.10 b/updates/1.4.10/ROOTFILES.i386-1.4.10
new file mode 100644 (file)
index 0000000..47e794e
--- /dev/null
@@ -0,0 +1,48 @@
+etc/issue
+etc/logrotate.conf
+etc/rc.d/rc.red
+etc/rc.d/rc.updatered
+home/httpd/cgi-bin/aliases.cgi
+home/httpd/cgi-bin/backup.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/dmzholes.cgi
+home/httpd/cgi-bin/hosts.cgi
+home/httpd/cgi-bin/netstatus.cgi
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/shutdown.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+usr/local/bin/ipcopbkcfg
+usr/local/bin/ipcoprscfg
+usr/local/bin/ipcopreboot
+usr/local/bin/restartsnort
+usr/local/bin/setdmzholes
+var/ipcop/backup/exclude.system
+var/ipcop/lang.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/es.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/la.pl
+var/ipcop/langs/lt.pl
+var/ipcop/langs/nl.pl
+var/ipcop/langs/pl.pl
+var/ipcop/langs/sv.pl
+##
+## apache_1.3.34 mod_ssl-2.8.25-1.3.34 mm-1.4.0
+usr/sbin/httpd
+##
+## openssl-0.9.7i
+usr/bin/openssl
+usr/lib/libcrypto.so.0.9.7
+usr/lib/libssl.so.0.9.7
+usr/bin/ssh-keygen
+usr/sbin/sshd
+##
+## squid-2.5.STABLE11 patched (CAN-2005-3258 and bug#1405)
+usr/lib/squid/ntlm_auth
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
diff --git a/updates/1.4.10/fixbackups.sh b/updates/1.4.10/fixbackups.sh
new file mode 100644 (file)
index 0000000..072d32c
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh\r
+\r
+# fix for 1.4.9 web backup\r
+\r
+function fix_backup() {\r
+       /bin/gunzip -d -f $backup\r
+       path=${backup%/*}\r
+\r
+       # remove files wich should not have been include starting from 1.4.9\r
+       # --delete accept only one -T each time\r
+       /bin/tar --delete --file=$path/$name.tar -T /var/ipcop/backup/exclude.system\r
+       /bin/tar --delete --file=$path/$name.tar -T /var/ipcop/backup/exclude.user\r
+       # add missing hardware settings since v1.4.0\r
+       /bin/tar --append --file=$path/$name.tar -C / -T /var/ipcop/backup/exclude.hardware\r
+\r
+       #create backup again\r
+       /bin/gzip $path/$name.tar\r
+       # create encrypted backup again\r
+       /usr/bin/openssl des3 -e -salt -in $backup -out $path/$name.dat -kfile /var/ipcop/backup/backup.key\r
+       /bin/chown 99:99 $backup\r
+       /bin/chown 99:99 $path/$name.dat\r
+}\r
+\r
+name=`hostname`\r
+\r
+backups="`/usr/bin/find /var/ipcop/backup/sets -name $name.tar.gz`"\r
+if [ $backup !='' ]; then\r
+       for backup in $backups; do\r
+               fix_backup $backup\r
+       done\r
+fi\r
+\r
+backup="/home/httpd/html/backup/$name.tar.gz"\r
+if [ -s $backup ]; then\r
+       fix_backup $backup\r
+fi\r
diff --git a/updates/1.4.10/information b/updates/1.4.10/information
new file mode 100644 (file)
index 0000000..86097ab
--- /dev/null
@@ -0,0 +1 @@
+010|1.4.10 update|Web backup : tighten security (SF 1344032/1344047), fix hardware settings never included in backup, fix excluded files not working in 1.4.9. Web backup set on disk will be fixed.<br>Patch squid-2.5.STABLE11 (CAN-2005-3258 and bug#1405). Upgrade to apache_1.3.34 mod_ssl-2.8.25-1.3.34 mm-1.4.0, openssl-0.9.7i (CAN-2005-2969).<br>Correct transparent proxy squid for Blue only SF1327461.<br>Replace ipcopdeath and ipcoprebirth with ipcopreboot.<br>Accept IP masks (pool) for IP fields in DMZ Pinholes.<br>Add option to schedule reboot of IPCop.<br>Fix VPN adv options not used. Add an optional delay between connection and VPN start to allow dyndns name to propagate.<br>Use binary logging for Snort IDS.|2005-11-09
diff --git a/updates/1.4.10/setup b/updates/1.4.10/setup
new file mode 100644 (file)
index 0000000..608d5bc
--- /dev/null
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+UPGRADEVERSION=1.4.10
+PREVIOUSVERSION="1.4."$((`echo $UPGRADEVERSION | /usr/bin/cut -f3 -d '.'`-1))
+echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing."
+
+CURRENTVERSION=`perl -e "require '/var/ipcop/general-functions.pl';print \\$General::version;"`
+if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then
+       echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+# general-functions might not be overwrited by patch...
+/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipcop/general-functions.pl
+
+#protect backup key fix for SF1344032 restrict access to root only
+[ -e /var/ipcop/backup/backup.key ] && /bin/chmod 400 /var/ipcop/backup/backup.key && ./fixbackups.sh
+
+/bin/tar -zxpf patch.tar.gz -C /
+
+# update linker cache (openssl CAN-2005-2969)
+/sbin/ldconfig
+
+#New option for vpn
+echo "VPN_DELAYED_START=0" >> /var/ipcop/vpn/settings
+
+#replaces ipcoprebirth/ipcopdeath with ipcopreboot
+/bin/rm -f /usr/local/bin/{ipcopdeath,ipcoprebirth}
+
+# restart new httpd apache_1.3.34 mod_ssl-2.8.25-1.3.34 mm-1.4.0
+/bin/killall httpd
+sleep 2
+/usr/sbin/httpd
+
+# missing from 1.4.9 update
+/usr/local/bin/setdmzholes
+
+# patched squid (CAN-2005-3258 and bug#1405)
+[ -e /var/ipcop/proxy/squid.conf ] && /usr/local/bin/restartsquid
+
+# snort now use binary logging
+/usr/local/bin/restartsnort
+# avoid 'too many arguments' on cleanup
+for i in `seq 1 9`; do 
+       /bin/rm -rf /var/log/snort/$i*
+done
+
+#Insert missing advanced values for VPN settings.
+#If user never went to adv screen, they are empty.
+#Whitout them, ipsec uses 3des-(sha|md5)-(768|1024|1536)
+#as default ike and esp algorythm.
+#This correction does not add 'aes128' as vpnmain,
+#so user will see effective algorythm selected.
+cp /var/ipcop/vpn/config /var/ipcop/vpn/oldconfig
+/usr/bin/perl -e "\
+use strict; \
+if (open(FILE, '/var/ipcop/vpn/oldconfig')){\
+    my @lines = <FILE>;\
+    close (FILE);\
+    foreach my \$line (@lines){\
+       my @confighash=split(',' ,\$line);\
+       \$confighash[15] = 'on'           if (\$confighash[15] eq '');\
+       \$confighash[14] = 'off'          if (\$confighash[14] eq '');\
+       \$confighash[19] = '3des'         if (\$confighash[19] eq '');\
+       \$confighash[20] = 'sha|md5'      if (\$confighash[20] eq '');\
+       \$confighash[21] = '1536|1024|768'if (\$confighash[21] eq '');\
+       \$confighash[17] = '1'            if (\$confighash[17] eq '');\
+       \$confighash[22] = 'aes128|3des'  if (\$confighash[22] eq '');\
+       \$confighash[23] = 'sha1|md5'     if (\$confighash[23] eq '');\
+       \$confighash[18] = '8'            if (\$confighash[18] eq '');\
+       \$confighash[25] = 'off'          if (\$confighash[25] eq '');\
+       print join (',', @confighash); }}" >/var/ipcop/vpn/config
+rm /var/ipcop/vpn/oldconfig
+
+#build cachelang file after all "lang/*.pl" updates
+perl -e "require '/var/ipcop/lang.pl'; &Lang::BuildCacheLang"
+
+killall mingetty  #redisplay correct version
+echo "end of $UPGRADEVERSION update"
diff --git a/updates/1.4.11/.cvsignore b/updates/1.4.11/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.11/CVS/Entries b/updates/1.4.11/CVS/Entries
new file mode 100644 (file)
index 0000000..ee768b0
--- /dev/null
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Wed Nov  9 23:48:01 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.11/1.1.2.45/Wed Feb  8 09:35:29 2006//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.11/1.1.2.43/Wed Feb  8 09:35:29 2006//TIPCOP_v1_4_0
+/information/1.1.2.13/Mon Jan 30 22:54:33 2006//TIPCOP_v1_4_0
+/setup/1.1.2.8/Sat Feb  4 00:01:28 2006//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.11/CVS/Repository b/updates/1.4.11/CVS/Repository
new file mode 100644 (file)
index 0000000..ab292b8
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.11
diff --git a/updates/1.4.11/CVS/Root b/updates/1.4.11/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.11/CVS/Tag b/updates/1.4.11/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.11/ROOTFILES.alpha-1.4.11 b/updates/1.4.11/ROOTFILES.alpha-1.4.11
new file mode 100644 (file)
index 0000000..64c1b7b
--- /dev/null
@@ -0,0 +1,228 @@
+etc/issue
+etc/rc.d/rc.red
+etc/rc.d/rc.updatered
+home/httpd/cgi-bin/backup.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/shutdown.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+home/httpd/cgi-bin/logs.cgi/log.dat
+usr/local/bin/httpscert
+usr/local/bin/ipcopbackup
+usr/local/bin/ipcopbkcfg
+usr/local/bin/ipcoprscfg
+usr/local/bin/makegraphs
+usr/local/bin/setddns.pl
+usr/local/bin/setfilters
+var/ipcop/general-functions.pl
+var/ipcop/lang.pl
+var/ipcop/langs/list
+var/ipcop/langs/da.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/es.pl
+var/ipcop/langs/fa.pl
+var/ipcop/langs/fi.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/sk.pl
+var/ipcop/langs/sv.pl
+##
+## hdparm-6.3
+##
+sbin/hdparm
+##
+## iptables-1.3.4
+##
+lib/iptables/libipt_CLASSIFY.so
+lib/iptables/libipt_CONNMARK.so
+lib/iptables/libipt_DNAT.so
+lib/iptables/libipt_DSCP.so
+lib/iptables/libipt_ECN.so
+lib/iptables/libipt_IPV4OPTSSTRIP.so
+lib/iptables/libipt_LOG.so
+lib/iptables/libipt_MARK.so
+lib/iptables/libipt_MASQUERADE.so
+lib/iptables/libipt_MIRROR.so
+lib/iptables/libipt_NETLINK.so
+lib/iptables/libipt_NETMAP.so
+lib/iptables/libipt_NFQUEUE.so
+lib/iptables/libipt_NOTRACK.so
+lib/iptables/libipt_POOL.so
+lib/iptables/libipt_REDIRECT.so
+lib/iptables/libipt_REJECT.so
+lib/iptables/libipt_SAME.so
+lib/iptables/libipt_SET.so
+lib/iptables/libipt_SNAT.so
+lib/iptables/libipt_TARPIT.so
+lib/iptables/libipt_TCPMSS.so
+lib/iptables/libipt_TOS.so
+lib/iptables/libipt_TRACE.so
+lib/iptables/libipt_TTL.so
+lib/iptables/libipt_ULOG.so
+lib/iptables/libipt_addrtype.so
+lib/iptables/libipt_ah.so
+lib/iptables/libipt_comment.so
+lib/iptables/libipt_connlimit.so
+lib/iptables/libipt_connmark.so
+lib/iptables/libipt_conntrack.so
+lib/iptables/libipt_dscp.so
+lib/iptables/libipt_dstlimit.so
+lib/iptables/libipt_ecn.so
+lib/iptables/libipt_esp.so
+lib/iptables/libipt_fuzzy.so
+lib/iptables/libipt_hashlimit.so
+lib/iptables/libipt_helper.so
+lib/iptables/libipt_icmp.so
+lib/iptables/libipt_iprange.so
+lib/iptables/libipt_ipv4options.so
+lib/iptables/libipt_length.so
+lib/iptables/libipt_limit.so
+lib/iptables/libipt_mac.so
+lib/iptables/libipt_mark.so
+lib/iptables/libipt_mport.so
+lib/iptables/libipt_multiport.so
+lib/iptables/libipt_nth.so
+lib/iptables/libipt_osf.so
+lib/iptables/libipt_owner.so
+lib/iptables/libipt_physdev.so
+lib/iptables/libipt_pkttype.so
+lib/iptables/libipt_pool.so
+lib/iptables/libipt_psd.so
+lib/iptables/libipt_quota.so
+lib/iptables/libipt_random.so
+lib/iptables/libipt_realm.so
+lib/iptables/libipt_recent.so
+lib/iptables/libipt_rpc.so
+lib/iptables/libipt_sctp.so
+lib/iptables/libipt_set.so
+lib/iptables/libipt_standard.so
+lib/iptables/libipt_state.so
+lib/iptables/libipt_string.so
+lib/iptables/libipt_tcp.so
+lib/iptables/libipt_tcpmss.so
+lib/iptables/libipt_time.so
+lib/iptables/libipt_tos.so
+lib/iptables/libipt_ttl.so
+lib/iptables/libipt_u32.so
+lib/iptables/libipt_udp.so
+lib/iptables/libipt_unclean.so
+sbin/iptables
+##
+## ipac-ng-1.31 patched
+##
+usr/sbin/fetchipac
+usr/sbin/ipacsum
+##
+## linux-2.4.31 updated netfilter modules
+lib/modules/2.4.31/kernel/net/ipv4/netfilter
+##
+## cleaned configuration file
+etc/ssl/openssl.cnf
+##
+## openswan 1.0.10
+##
+usr/sbin/ipsec
+usr/lib/ipsec
+##
+## enable Latin2 character set support in rrdtool
+##
+usr/lib/perl5/site_perl/5.8.5/alpha-linux/auto/RRDs/RRDs.so
+##
+## vlan.1.9
+sbin/vconfig
+##
+## core utils 5.93
+bin/basename
+bin/chgrp
+bin/chmod
+bin/chown
+bin/cp
+bin/date
+bin/dd
+bin/df
+bin/du
+bin/echo
+bin/false
+bin/head
+bin/install
+bin/ln
+bin/ls
+bin/mkdir
+bin/mkfifo
+bin/mknod
+bin/mv
+bin/rm
+bin/rmdir
+bin/sleep
+bin/su
+bin/sync
+bin/test
+bin/touch
+bin/true
+bin/uname.bak
+usr/bin/cut
+usr/bin/dirname
+usr/bin/env
+usr/bin/expr
+usr/bin/groups
+usr/bin/hostid
+usr/bin/id
+usr/bin/join
+usr/bin/md5sum
+usr/bin/nice
+usr/bin/nohup
+usr/bin/paste
+usr/bin/seq
+usr/bin/sort
+usr/bin/split
+usr/bin/stat
+usr/bin/tail
+usr/bin/tee
+usr/bin/tr
+usr/bin/uniq
+usr/bin/uptime
+usr/bin/wc
+usr/bin/who
+usr/bin/whoami
+usr/bin/yes
+usr/sbin/chroot
+##
+## util-linux-2.12r
+##
+bin/dmesg
+bin/more
+bin/mount
+bin/umount
+etc/fdprm
+sbin/blockdev
+sbin/cfdisk
+sbin/ctrlaltdel
+sbin/fdisk
+sbin/hwclock
+sbin/losetup
+sbin/mkswap
+sbin/sfdisk
+sbin/swapoff
+sbin/swapon
+usr/bin/fdformat
+usr/bin/getopt
+usr/bin/logger
+usr/bin/pg
+usr/bin/rename
+usr/bin/renice
+usr/sbin/rdev
+##
+## Add 'single' user to init
+##
+etc/inittab
+##
+## iana-etc 2.00
+##
+etc/protocols
+etc/services
diff --git a/updates/1.4.11/ROOTFILES.i386-1.4.11 b/updates/1.4.11/ROOTFILES.i386-1.4.11
new file mode 100644 (file)
index 0000000..6469031
--- /dev/null
@@ -0,0 +1,235 @@
+etc/issue
+etc/rc.d/rc.red
+etc/rc.d/rc.updatered
+home/httpd/cgi-bin/backup.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/shutdown.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/logs.cgi/log.dat
+home/httpd/cgi-bin/vpnmain.cgi
+usr/local/bin/httpscert
+usr/local/bin/ipcopbackup
+usr/local/bin/ipcopbkcfg
+usr/local/bin/ipcoprscfg
+usr/local/bin/makegraphs
+usr/local/bin/setddns.pl
+usr/local/bin/setfilters
+var/ipfire/general-functions.pl
+var/ipfire/lang.pl
+var/ipfire/langs/list
+var/ipfire/langs/da.pl
+var/ipfire/langs/de.pl
+var/ipfire/langs/el.pl
+var/ipfire/langs/en.pl
+var/ipfire/langs/es.pl
+var/ipfire/langs/fa.pl
+var/ipfire/langs/fi.pl
+var/ipfire/langs/fr.pl
+var/ipfire/langs/no.pl
+var/ipfire/langs/sk.pl
+var/ipfire/langs/sv.pl
+##
+## hdparm-6.3
+##
+sbin/hdparm
+##
+## iptables-1.3.4
+##
+lib/iptables/libipt_CLASSIFY.so
+lib/iptables/libipt_CONNMARK.so
+lib/iptables/libipt_DNAT.so
+lib/iptables/libipt_DSCP.so
+lib/iptables/libipt_ECN.so
+lib/iptables/libipt_IPV4OPTSSTRIP.so
+lib/iptables/libipt_LOG.so
+lib/iptables/libipt_MARK.so
+lib/iptables/libipt_MASQUERADE.so
+lib/iptables/libipt_MIRROR.so
+lib/iptables/libipt_NETLINK.so
+lib/iptables/libipt_NETMAP.so
+lib/iptables/libipt_NFQUEUE.so
+lib/iptables/libipt_NOTRACK.so
+lib/iptables/libipt_POOL.so
+lib/iptables/libipt_REDIRECT.so
+lib/iptables/libipt_REJECT.so
+lib/iptables/libipt_SAME.so
+lib/iptables/libipt_SET.so
+lib/iptables/libipt_SNAT.so
+lib/iptables/libipt_TARPIT.so
+lib/iptables/libipt_TCPMSS.so
+lib/iptables/libipt_TOS.so
+lib/iptables/libipt_TRACE.so
+lib/iptables/libipt_TTL.so
+lib/iptables/libipt_ULOG.so
+lib/iptables/libipt_addrtype.so
+lib/iptables/libipt_ah.so
+lib/iptables/libipt_comment.so
+lib/iptables/libipt_connlimit.so
+lib/iptables/libipt_connmark.so
+lib/iptables/libipt_conntrack.so
+lib/iptables/libipt_dscp.so
+lib/iptables/libipt_dstlimit.so
+lib/iptables/libipt_ecn.so
+lib/iptables/libipt_esp.so
+lib/iptables/libipt_fuzzy.so
+lib/iptables/libipt_hashlimit.so
+lib/iptables/libipt_helper.so
+lib/iptables/libipt_icmp.so
+lib/iptables/libipt_iprange.so
+lib/iptables/libipt_ipv4options.so
+lib/iptables/libipt_length.so
+lib/iptables/libipt_limit.so
+lib/iptables/libipt_mac.so
+lib/iptables/libipt_mark.so
+lib/iptables/libipt_mport.so
+lib/iptables/libipt_multiport.so
+lib/iptables/libipt_nth.so
+lib/iptables/libipt_osf.so
+lib/iptables/libipt_owner.so
+lib/iptables/libipt_physdev.so
+lib/iptables/libipt_pkttype.so
+lib/iptables/libipt_pool.so
+lib/iptables/libipt_psd.so
+lib/iptables/libipt_quota.so
+lib/iptables/libipt_random.so
+lib/iptables/libipt_realm.so
+lib/iptables/libipt_recent.so
+lib/iptables/libipt_rpc.so
+lib/iptables/libipt_sctp.so
+lib/iptables/libipt_set.so
+lib/iptables/libipt_standard.so
+lib/iptables/libipt_state.so
+lib/iptables/libipt_string.so
+lib/iptables/libipt_tcp.so
+lib/iptables/libipt_tcpmss.so
+lib/iptables/libipt_time.so
+lib/iptables/libipt_tos.so
+lib/iptables/libipt_ttl.so
+lib/iptables/libipt_u32.so
+lib/iptables/libipt_udp.so
+lib/iptables/libipt_unclean.so
+sbin/iptables
+##
+## ipac-ng-1.31 patched
+##
+usr/sbin/fetchipac
+usr/sbin/ipacsum
+##
+## linux-2.4.31 updated netfilter modules
+lib/modules/2.4.31/kernel/net/ipv4/netfilter
+lib/modules/2.4.31-smp/kernel/net/ipv4/netfilter
+##
+## openssl-0.9.7i recompilated for 386 (sf1363150)
+##
+usr/bin/openssl
+usr/lib/libssl.so.0.9.7
+usr/lib/libcrypto.so.0.9.7
+## cleaned configuration file
+etc/ssl/openssl.cnf
+##
+##
+## openswan 1.0.10
+##
+usr/sbin/ipsec
+usr/lib/ipsec
+##
+## enable Latin2 character set support in rrdtool
+##
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/RRDs/RRDs.so
+##
+## vlan.1.9
+sbin/vconfig
+##
+## core utils 5.93
+bin/basename
+bin/chgrp
+bin/chmod
+bin/chown
+bin/cp
+bin/date
+bin/dd
+bin/df
+bin/du
+bin/echo
+bin/false
+bin/head
+bin/install
+bin/ln
+bin/ls
+bin/mkdir
+bin/mkfifo
+bin/mknod
+bin/mv
+bin/rm
+bin/rmdir
+bin/sleep
+bin/su
+bin/sync
+bin/test
+bin/touch
+bin/true
+bin/uname.bak
+usr/bin/cut
+usr/bin/dirname
+usr/bin/env
+usr/bin/expr
+usr/bin/groups
+usr/bin/hostid
+usr/bin/id
+usr/bin/join
+usr/bin/md5sum
+usr/bin/nice
+usr/bin/nohup
+usr/bin/paste
+usr/bin/seq
+usr/bin/sort
+usr/bin/split
+usr/bin/stat
+usr/bin/tail
+usr/bin/tee
+usr/bin/tr
+usr/bin/uniq
+usr/bin/uptime
+usr/bin/wc
+usr/bin/who
+usr/bin/whoami
+usr/bin/yes
+usr/sbin/chroot
+##
+## util-linux-2.12r
+##
+bin/dmesg
+bin/more
+bin/mount
+bin/umount
+etc/fdprm
+sbin/blockdev
+sbin/cfdisk
+sbin/ctrlaltdel
+sbin/fdisk
+sbin/hwclock
+sbin/losetup
+sbin/mkswap
+sbin/sfdisk
+sbin/swapoff
+sbin/swapon
+usr/bin/fdformat
+usr/bin/getopt
+usr/bin/logger
+usr/bin/pg
+usr/bin/rename
+usr/bin/renice
+usr/sbin/rdev
+##
+## Add 'single' user to init
+##
+etc/inittab
+##
+## iana-etc 2.00
+##
+etc/protocols
+etc/services
diff --git a/updates/1.4.11/information b/updates/1.4.11/information
new file mode 100644 (file)
index 0000000..a6b513d
--- /dev/null
@@ -0,0 +1 @@
+011|1.4.11 update|New iso for installing+restore from usb-storage (usb-key),<br>Fix issue with Nx586 and ssl (sf1363150). Upgrade to hdparm-6.3, iptables-1.3.4, ipac-ng-1.31, openswan-1.0.10, vlan.1.9. <br>Web backup tighten security, continued: new interface, no more unencrypted files, <b>save your backup key !</b>,<br>Some DHCP server improvements.<br>Add Slovak and Persian (Farsi) languages. Enable support for Latin-2 characters in graphs created with rrdtool.<br>Added leftid & rightid options in VPN configuration|2005-11-09
diff --git a/updates/1.4.11/patch.tar.gz b/updates/1.4.11/patch.tar.gz
new file mode 100644 (file)
index 0000000..dded6c7
Binary files /dev/null and b/updates/1.4.11/patch.tar.gz differ
diff --git a/updates/1.4.11/setup b/updates/1.4.11/setup
new file mode 100644 (file)
index 0000000..d25e16c
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+UPGRADEVERSION=1.4.11
+PREVIOUSVERSION="1.4."$((`echo $UPGRADEVERSION | /usr/bin/cut -f3 -d '.'`-1))
+echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing."
+
+CURRENTVERSION=`perl -e "require '/var/ipcop/general-functions.pl';print \\$General::version;"`
+if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then
+       echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+# general-functions might not be overwrited by patch...
+/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipcop/general-functions.pl
+
+/bin/tar -zxpf patch.tar.gz -C /
+
+# Backup have changed a little. Sets are located under Apache to facilitate
+# their exportation. Unencrypted backups do not exists any more
+find /var/ipcop/backup/sets/* -type d  -exec  mv {} /home/httpd/html/backup \;
+# delete gz
+find /home/httpd/html/backup -iname *gz -exec rm {} \;
+
+#bug sf #1369531
+sed -i -e 's/port 800/port __PROXY_PORT__/' /var/ipcop/proxy/acl
+
+# patch rc.sysinit to include Slovak
+/bin/sed -i -e 's/-o "$LANGUAGE" = "pl" ]/-o "$LANGUAGE" = "pl" -o "$LANGUAGE" = "sk" ]/' /etc/rc.d/rc.sysinit
+
+# move randfile out of this dir, cause it annoys openswann
+[ -e /var/ipcop/ca/.rnd ] && mv -f /var/ipcop/ca/.rnd /var/tmp/.rnd
+# idem for private key cakey.pem
+mkdir /var/ipcop/private
+chown nobody:nobody /var/ipcop/private
+[ -e /var/ipcop/ca/cakey.pem ] && mv -f /var/ipcop/ca/cakey.pem /var/ipcop/private/cakey.pem
+
+#create variable missing
+settings=/var/ipcop/vpn/settings
+grep -q "VPN_DELAYED_START" $settings || echo "VPN_DELAYED_START=0">>$settings
+
+
+#build cachelang file after all "lang/*.pl" updates
+perl -e "require '/var/ipcop/lang.pl'; &Lang::BuildCacheLang"
+
+killall mingetty  #redisplay correct version
+echo "end of $UPGRADEVERSION update"
diff --git a/updates/1.4.2/.cvsignore b/updates/1.4.2/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.2/CVS/Entries b/updates/1.4.2/CVS/Entries
new file mode 100644 (file)
index 0000000..b572f19
--- /dev/null
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Sat Jan  1 16:34:27 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.2/1.1.2.24/Mon Dec 13 18:08:43 2004//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.2/1.1.2.27/Mon Dec 13 18:08:43 2004//TIPCOP_v1_4_0
+/information/1.1.2.9/Thu Dec  9 15:01:37 2004//TIPCOP_v1_4_0
+/setup/1.1.2.11/Sat Dec 11 08:55:38 2004//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.2/CVS/Repository b/updates/1.4.2/CVS/Repository
new file mode 100644 (file)
index 0000000..44c490a
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.2
diff --git a/updates/1.4.2/CVS/Root b/updates/1.4.2/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.2/CVS/Tag b/updates/1.4.2/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.2/ROOTFILES.alpha-1.4.2 b/updates/1.4.2/ROOTFILES.alpha-1.4.2
new file mode 100644 (file)
index 0000000..f9682b8
--- /dev/null
@@ -0,0 +1,39 @@
+var/ipcop/header.pl
+var/ipcop/langs/list
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/pl.pl
+var/ipcop/langs/ro.pl
+var/ipcop/langs/sv.pl
+etc/issue
+etc/logrotate.conf
+etc/eciadsl/firmware00.bin
+etc/eciadsl/modems.db
+etc/rc.d/rc.eciadsl
+etc/rc.d/rc.red
+etc/rc.d/rc.sysinit
+etc/rc.d/rc.netaddress.up
+etc/rc.d/rc.updatered
+etc/rc.d/rc.firewall
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/wireless.cgi
+home/httpd/cgi-bin/logs.cgi/proxylog.dat
+usr/bin/eciadsl-synch
+usr/local/bin/rebuildhosts
+usr/local/bin/restartsyslogd
+usr/local/bin/resetusb
+usr/local/sbin/setup
+##
+## bind-9.2.3
+##
+usr/bin/host
+##
+## fcron-2.0.2
+##
+usr/bin/fcronsighup
+usr/bin/fcrontab
+usr/sbin/fcron
diff --git a/updates/1.4.2/ROOTFILES.i386-1.4.2 b/updates/1.4.2/ROOTFILES.i386-1.4.2
new file mode 100644 (file)
index 0000000..2afea2c
--- /dev/null
@@ -0,0 +1,50 @@
+var/ipcop/header.pl
+var/ipcop/langs/list
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/pl.pl
+var/ipcop/langs/ro.pl
+var/ipcop/langs/sv.pl
+etc/issue
+etc/logrotate.conf
+etc/eciadsl/firmware00.bin
+etc/eciadsl/modems.db
+etc/rc.d/rc.eciadsl
+etc/rc.d/rc.fritzdsl
+etc/rc.d/rc.red
+etc/rc.d/rc.sysinit
+etc/rc.d/rc.netaddress.up
+etc/rc.d/rc.updatered
+etc/rc.d/rc.firewall
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/wireless.cgi
+home/httpd/cgi-bin/logs.cgi/proxylog.dat
+usr/bin/eciadsl-synch
+usr/local/bin/rebuildhosts
+usr/local/bin/restartsyslogd
+usr/local/bin/resetusb
+usr/local/sbin/setup
+##
+## bind-9.2.3
+##
+usr/bin/host
+##
+## fcron-2.0.2
+##
+usr/bin/fcronsighup
+usr/bin/fcrontab
+usr/sbin/fcron
+##
+## pulsar-4.0.18
+##
+lib/modules/2.4.27/misc/pulsar.o.gz
+var/run/need-depmod-2.4.27
+var/run/need-depmod-2.4.27-smp
+##
+## pulsar-4.0.18-smp
+##
+lib/modules/2.4.27-smp/misc/pulsar.o.gz
diff --git a/updates/1.4.2/information b/updates/1.4.2/information
new file mode 100644 (file)
index 0000000..6fedd7b
--- /dev/null
@@ -0,0 +1 @@
+001|1.4.2 update|Fix KA Advisory 0411291 in proxylog.dat. Fix dhcp.cgi bug in header.pl. Fix insecure dependency with fritzdsl modems in rc.red. Upgrade fcdsl2, pulsardsl and fcron. Change log size from 10 to 30MB with 256MB flash. Fix snort log rotation. Others changes in the announce or Changelog. Rebooting or unloading module is necessary for fcdls2, pulsardsl.|2004-12-10
diff --git a/updates/1.4.2/setup b/updates/1.4.2/setup
new file mode 100644 (file)
index 0000000..621143f
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+echo "This is the 1.4.2 update patch for IPCop 1.4.1 installing."
+
+CURRENTVERSION=`cat /etc/issue | awk '{ print $2 }' | sed -e 's/v//'`
+UPGRADEVERSION="1.4.2"
+
+if [ "$CURRENTVERSION" != "1.4.1" -a "$CURRENTVERSION" != "1.4.2" ]; then
+       echo "You are not running IPCop v1.4.1 for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+/bin/tar -zxpf patch.tar.gz -C /
+/sbin/depmod -a
+/bin/rm -f /var/run/need-depmod-`uname -r`
+
+# shift eciadsl data to /etc (modems.db use a different format)
+/bin/rm -f /var/ipcop/eciadsl/{firmware00.bin,modems.db}
+
+# Fix leases problem (ends never) should have been done in 1.4.1 upgrade
+killall dhcpd
+rm -f /var/state/dhcp/*
+touch /var/state/dhcp/dhcpd.leases
+/usr/local/bin/restartdhcp 
diff --git a/updates/1.4.3/.cvsignore b/updates/1.4.3/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.3/CVS/Entries b/updates/1.4.3/CVS/Entries
new file mode 100644 (file)
index 0000000..71301b9
--- /dev/null
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Sat Jan  1 16:34:27 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.3/1.1.2.46/Sun Mar 13 07:53:44 2005//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.3/1.1.2.49/Sun Mar 13 07:53:44 2005//TIPCOP_v1_4_0
+/information/1.1.2.10/Tue Mar 15 22:09:18 2005//TIPCOP_v1_4_0
+/setup/1.1.2.16/Sun Feb 27 23:18:48 2005//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.3/CVS/Repository b/updates/1.4.3/CVS/Repository
new file mode 100644 (file)
index 0000000..11e5a97
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.3
diff --git a/updates/1.4.3/CVS/Root b/updates/1.4.3/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.3/CVS/Tag b/updates/1.4.3/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.3/ROOTFILES.alpha-1.4.3 b/updates/1.4.3/ROOTFILES.alpha-1.4.3
new file mode 100644 (file)
index 0000000..534a39a
--- /dev/null
@@ -0,0 +1,126 @@
+var/ipcop/header.pl
+var/ipcop/general-functions.pl
+var/ipcop/lang.pl
+var/ipcop/countries.pl
+var/ipcop/backup/exclude.system
+var/ipcop/langs/bz.pl
+var/ipcop/langs/da.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/es.pl
+var/ipcop/langs/fi.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/la.pl
+var/ipcop/langs/pl.pl
+var/ipcop/langs/sv.pl
+var/ipcop/langs/zh.pl
+var/ipcop/modem/defaults
+etc/issue
+etc/ppp/dialer
+etc/ppp/ip-up
+etc/ppp/ip-down
+etc/rc.d/rc.red
+etc/rc.d/rc.sysinit
+etc/rc.d/rc.updatered
+etc/rc.d/helper/getdnsfromdhcpc.pl
+etc/rc.d/helper/writeipac.pl
+home/httpd/cgi-bin/aliases.cgi
+home/httpd/cgi-bin/backup.cgi
+home/httpd/cgi-bin/changepw.cgi
+home/httpd/cgi-bin/connections.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/dial.cgi
+home/httpd/cgi-bin/dmzholes.cgi
+home/httpd/cgi-bin/graphs.cgi
+home/httpd/cgi-bin/gui.cgi
+home/httpd/cgi-bin/hosts.cgi
+home/httpd/cgi-bin/ids.cgi
+home/httpd/cgi-bin/index.cgi
+home/httpd/cgi-bin/ipinfo.cgi
+home/httpd/cgi-bin/logs.cgi/config.dat
+home/httpd/cgi-bin/logs.cgi/firewalllog.dat
+home/httpd/cgi-bin/logs.cgi/ids.dat
+home/httpd/cgi-bin/logs.cgi/log.dat
+home/httpd/cgi-bin/logs.cgi/proxylog.dat
+home/httpd/cgi-bin/logs.cgi/summary.dat
+home/httpd/cgi-bin/modem.cgi
+home/httpd/cgi-bin/netstatus.cgi
+home/httpd/cgi-bin/portfw.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/proxygraphs.cgi
+home/httpd/cgi-bin/remote.cgi
+home/httpd/cgi-bin/shaping.cgi
+home/httpd/cgi-bin/shutdown.cgi
+home/httpd/cgi-bin/status.cgi
+home/httpd/cgi-bin/time.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/upload.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+home/httpd/cgi-bin/wireless.cgi
+home/httpd/cgi-bin/xtaccess.cgi
+home/httpd/html/images/forward.gif
+##
+## misc-progs
+usr/local/bin/installpackage
+usr/local/bin/makegraphs
+usr/local/bin/restartshaping
+usr/local/bin/setddns.pl
+usr/local/bin/setxtaccess
+usr/local/bin/updatelists.pl
+##
+## dhcp-3.0.2
+usr/sbin/dhcpd
+##
+## dnsmasq 2.20
+usr/sbin/dnsmasq
+##
+## eagle-usb-2.1.1
+etc/eagle-usb/CMVepES.txt
+etc/eagle-usb/CMVepFR.txt
+etc/eagle-usb/CMVepIT.txt
+etc/eagle-usb/CMVeiWO.txt
+etc/eagle-usb/CMVepWO.txt
+lib/modules/2.4.29/misc/eagle-usb.o.gz
+usr/sbin/eaglectrl
+usr/share/eagle-usb/dsp/dsp_code_isdn.bin
+usr/share/eagle-usb/dsp/dsp_code_pots.bin
+##
+## eciadsl-nortek-2021 updated
+##
+etc/eciadsl/modems.db
+usr/sbin/eciadsl-pppoeci
+usr/sbin/eciadsl-synch
+##
+## libpng-1.2.8
+usr/lib/libpng.so.3.1.2.8
+##
+## pciutils-2.1.11 fixed from stack smashing attack just with lspci -vvv and AGP
+usr/sbin/lspci
+##
+## perl security fixes CAN-2004-0452 CAN-2005-0155,0156
+usr/bin/perl
+usr/bin/sperl5.8.5
+##
+## setup
+usr/local/sbin/setup
+##
+## squid-2.5.STABLE9
+usr/lib/squid/errors/English/ERR_INVALID_RESP
+usr/lib/squid/msnt_auth
+usr/lib/squid/ncsa_auth
+usr/lib/squid/ntlm_auth
+usr/lib/squid/smb_auth
+usr/lib/squid/unlinkd
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
+##
+## tar-1.13.25 patched CAN-2002-0399
+bin/tar
+##
+## zlib-1.2.2
+lib/libz.so.1.2.2
diff --git a/updates/1.4.3/ROOTFILES.i386-1.4.3 b/updates/1.4.3/ROOTFILES.i386-1.4.3
new file mode 100644 (file)
index 0000000..06c8d07
--- /dev/null
@@ -0,0 +1,140 @@
+var/ipcop/header.pl
+var/ipcop/general-functions.pl
+var/ipcop/lang.pl
+var/ipcop/countries.pl
+var/ipcop/backup/exclude.system
+var/ipcop/langs/bz.pl
+var/ipcop/langs/da.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/es.pl
+var/ipcop/langs/fi.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/la.pl
+var/ipcop/langs/pl.pl
+var/ipcop/langs/sv.pl
+var/ipcop/langs/zh.pl
+var/ipcop/modem/defaults
+etc/ppp/dialer
+etc/ppp/ip-up
+etc/ppp/ip-down
+etc/rc.d/rc.red
+etc/rc.d/rc.sysinit
+etc/rc.d/rc.updatered
+etc/rc.d/helper/getdnsfromdhcpc.pl
+etc/rc.d/helper/writeipac.pl
+home/httpd/cgi-bin/aliases.cgi
+home/httpd/cgi-bin/backup.cgi
+home/httpd/cgi-bin/changepw.cgi
+home/httpd/cgi-bin/connections.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/dial.cgi
+home/httpd/cgi-bin/dmzholes.cgi
+home/httpd/cgi-bin/graphs.cgi
+home/httpd/cgi-bin/gui.cgi
+home/httpd/cgi-bin/hosts.cgi
+home/httpd/cgi-bin/ids.cgi
+home/httpd/cgi-bin/index.cgi
+home/httpd/cgi-bin/ipinfo.cgi
+home/httpd/cgi-bin/logs.cgi/config.dat
+home/httpd/cgi-bin/logs.cgi/firewalllog.dat
+home/httpd/cgi-bin/logs.cgi/ids.dat
+home/httpd/cgi-bin/logs.cgi/log.dat
+home/httpd/cgi-bin/logs.cgi/proxylog.dat
+home/httpd/cgi-bin/logs.cgi/summary.dat
+home/httpd/cgi-bin/modem.cgi
+home/httpd/cgi-bin/netstatus.cgi
+home/httpd/cgi-bin/portfw.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/proxygraphs.cgi
+home/httpd/cgi-bin/remote.cgi
+home/httpd/cgi-bin/shaping.cgi
+home/httpd/cgi-bin/shutdown.cgi
+home/httpd/cgi-bin/status.cgi
+home/httpd/cgi-bin/time.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/upload.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+home/httpd/cgi-bin/wireless.cgi
+home/httpd/cgi-bin/xtaccess.cgi
+##
+## misc-progs
+usr/local/bin/installpackage
+usr/local/bin/makegraphs
+usr/local/bin/restartshaping
+usr/local/bin/setddns.pl
+usr/local/bin/setxtaccess
+usr/local/bin/updatelists.pl
+##
+## dhcp-3.0.2
+usr/sbin/dhcpd
+##
+## dnsmasq 2.20
+usr/sbin/dnsmasq
+##
+## eagle-usb-2.1.1 std and smp
+etc/eagle-usb/CMVepES.txt
+etc/eagle-usb/CMVepFR.txt
+etc/eagle-usb/CMVepIT.txt
+etc/eagle-usb/CMVeiWO.txt
+etc/eagle-usb/CMVepWO.txt
+usr/sbin/eaglectrl
+usr/share/eagle-usb/dsp/dsp_code_isdn.bin
+usr/share/eagle-usb/dsp/dsp_code_pots.bin
+##
+## eciadsl-nortek-2021 updated
+##
+etc/eciadsl/modems.db
+usr/sbin/eciadsl-pppoeci
+usr/sbin/eciadsl-synch
+##
+## libpng-1.2.8
+usr/lib/libpng.so.3.1.2.8
+##
+## pciutils-2.1.11 fixed from stack smashing attack just with lspci -vvv and AGP
+usr/sbin/lspci
+##
+## perl security fixes CAN-2004-0452 CAN-2005-0155,0156
+usr/bin/perl
+usr/bin/sperl5.8.5
+##
+## setup
+usr/local/sbin/setup
+##
+## squid-2.5.STABLE9
+usr/lib/squid/errors/English/ERR_INVALID_RESP
+usr/lib/squid/msnt_auth
+usr/lib/squid/ncsa_auth
+usr/lib/squid/ntlm_auth
+usr/lib/squid/smb_auth
+usr/lib/squid/unlinkd
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
+##
+## tar-1.13.25 patched CAN-2002-0399
+bin/tar
+##
+## bast-0.9.0
+usr/bin/unicorn_status
+usr/bin/oam_ping
+##
+## zlib-1.2.2
+lib/libz.so.1.2.2
+##
+## linux-2.4.29
+lib/modules/2.4.29/kernel
+lib/modules/2.4.29/modules.dep
+lib/modules/2.4.29/modules.generic_string
+lib/modules/2.4.29/modules.pcimap
+lib/modules/2.4.29/modules.isapnpmap
+lib/modules/2.4.29/modules.usbmap
+lib/modules/2.4.29/misc/CnxADSL.o.gz
+lib/modules/2.4.29/misc/eagle-usb.o.gz
+lib/modules/2.4.29/misc/pulsar.o.gz
+lib/modules/2.4.29/extra/unicorn_pci_atm.o.gz
+lib/modules/2.4.29/extra/unicorn_usb_atm.o.gz
diff --git a/updates/1.4.3/information b/updates/1.4.3/information
new file mode 100644 (file)
index 0000000..5cae21a
--- /dev/null
@@ -0,0 +1 @@
+003|1.4.3 update|Upgrade to squid-2.5.STABLE9, kernel-2.4.29 (part1), dhcp-3.0.2, dnsmasq-2.20, libpng-1.2.8,bewan st v0.9.0 eagle-usb-2.1.1(EagleIII support), fresh eciadsl-nortek-0.10, zlib-1.2.2. Fix for tar (dot_dot issue). Bug fixes to VPN page. Better perl scripts speed. Enhance controls on GUI Settings page. Minor cosmetic changes to GUI. You need more than 24 MB free on / to be able to apply both 1.4.3 and 1.4.4 updates.Apply both 1.4.3 and 1.4.4 updates and reboot|2005-03-15
diff --git a/updates/1.4.3/setup b/updates/1.4.3/setup
new file mode 100644 (file)
index 0000000..71e0238
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+UPGRADEVERSION="1.4.3"
+PREVIOUSVERSION="1.4.2"
+echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing."
+
+CURRENTVERSION=`cat /etc/issue | awk '{ print $2 }' | sed -e 's/v//'`
+
+if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then
+       echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+# Make some space first
+/sbin/tune2fs -m 0 /dev/harddisk1
+/sbin/tune2fs -m 1 /dev/harddisk4
+/bin/rm -rf /var/patches/patch-*.tar.gz.gpg
+/bin/rm -rf /etc/eagle-usb/dsp
+
+/bin/tar -zxpf patch.tar.gz -C /
+
+# update linker cache
+/bin/rm -rf /lib/libz.so.1.2.1
+/bin/rm -rf /usr/lib/libpng.so.3.1.2.7
+/sbin/ldconfig
+
+# Change tar.gz to tgz.gpg in language files. 
+# Completes fix for SF Bug 1077494
+for file in /var/ipcop/langs/*.pl
+do
+       sed -i -e '/to install an update/s/.tar.gz/.tgz.gpg/' $file
+done
+
+touch /var/ipcop/ddns/settings
+chown 99:99 /var/ipcop/ddns/settings
+
+# Fix file permissions of updated files
+chown 99:99 /var/ipcop/modem/defaults
+
+#this is in general v1.4.4 and we want v1.4.3 be displayed
+/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipcop/header.pl
+echo "IPCop v1.4.3 - The Bad Packets Stop Here" > /etc/issue
diff --git a/updates/1.4.4/.cvsignore b/updates/1.4.4/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.4/CVS/Entries b/updates/1.4.4/CVS/Entries
new file mode 100644 (file)
index 0000000..bd4e5a6
--- /dev/null
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Sun Feb 27 23:18:48 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.4/1.1.2.1/Sun Feb 27 23:18:48 2005//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.4/1.1.2.1/Sun Feb 27 23:18:48 2005//TIPCOP_v1_4_0
+/information/1.1.2.4/Tue Mar 15 22:09:26 2005//TIPCOP_v1_4_0
+/setup/1.1.2.2/Tue Mar  1 06:06:10 2005//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.4/CVS/Repository b/updates/1.4.4/CVS/Repository
new file mode 100644 (file)
index 0000000..322d06e
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.4
diff --git a/updates/1.4.4/CVS/Root b/updates/1.4.4/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.4/CVS/Tag b/updates/1.4.4/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.4/ROOTFILES.alpha-1.4.4 b/updates/1.4.4/ROOTFILES.alpha-1.4.4
new file mode 100644 (file)
index 0000000..9729571
--- /dev/null
@@ -0,0 +1,14 @@
+etc/issue
+##
+## linux-2.4.29
+boot/vmlinuz-2.4.29
+boot/System.map-2.4.29
+boot/vmlinuz
+boot/System.map
+lib/modules/2.4.29/kernel
+lib/modules/2.4.29/modules.dep
+lib/modules/2.4.29/modules.generic_string
+lib/modules/2.4.29/modules.pcimap
+lib/modules/2.4.29/modules.isapnpmap
+lib/modules/2.4.29/modules.usbmap
+lib/modules/2.4.29/misc/eagle-usb.o.gz
diff --git a/updates/1.4.4/ROOTFILES.i386-1.4.4 b/updates/1.4.4/ROOTFILES.i386-1.4.4
new file mode 100644 (file)
index 0000000..7f162ee
--- /dev/null
@@ -0,0 +1,21 @@
+etc/issue
+##
+## linux-2.4.29
+boot/vmlinuz-2.4.29
+boot/System.map-2.4.29
+boot/vmlinuz
+boot/System.map
+boot/vmlinuz-2.4.29-smp
+boot/System.map-2.4.29-smp
+boot/vmlinuz-smp
+lib/modules/2.4.29-smp/kernel
+lib/modules/2.4.29-smp/modules.dep
+lib/modules/2.4.29-smp/modules.generic_string
+lib/modules/2.4.29-smp/modules.pcimap
+lib/modules/2.4.29-smp/modules.isapnpmap
+lib/modules/2.4.29-smp/modules.usbmap
+lib/modules/2.4.29-smp/misc/CnxADSL.o.gz
+lib/modules/2.4.29-smp/misc/eagle-usb.o.gz
+lib/modules/2.4.29-smp/misc/pulsar.o.gz
+lib/modules/2.4.29-smp/extra/unicorn_usb_atm.o.gz
+lib/modules/2.4.29-smp/extra/unicorn_pci_atm.o.gz
diff --git a/updates/1.4.4/information b/updates/1.4.4/information
new file mode 100644 (file)
index 0000000..e7ef5cf
--- /dev/null
@@ -0,0 +1 @@
+004|1.4.4 update|Upgrade to kernel 2.4.29 (part 2): fix many local security vulnerabilities. D-link GSE-528T support as a R8169 clone. Apply both 1.4.3 and 1.4.4 updates and reboot.|2005-03-15
diff --git a/updates/1.4.4/setup b/updates/1.4.4/setup
new file mode 100644 (file)
index 0000000..d3db821
--- /dev/null
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+UPGRADEVERSION="1.4.4"
+PREVIOUSVERSION="1.4.3"
+echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing."
+
+CURRENTVERSION=`cat /etc/issue | awk '{ print $2 }' | sed -e 's/v//'`
+
+if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then
+       echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+/bin/rm -rf /var/patches/patch-*.tar.gz.gpg
+
+# Fix grub
+ROOTDEV=`/bin/ls -l /dev/harddisk4 | /usr/bin/awk '{ print $NF }'`
+echo "title IPCop old (2.4.27)"                                                >> /boot/grub/grub.conf
+echo "  root (hd0,0)"                                                  >> /boot/grub/grub.conf
+echo "  kernel /vmlinuz-2.4.27 root=${ROOTDEV} panic=10 acpi=off ro"   >> /boot/grub/grub.conf
+if [ -f /boot/ipcoprd.img ]; then
+       echo "  initrd /ipcoprd-2.4.27.img"                             >> /boot/grub/grub.conf
+fi
+echo "  savedefault"                                                   >> /boot/grub/grub.conf
+
+# Fix initrd
+if [ -f /boot/ipcoprd.img ]; then
+       # Find out scsi module
+       IMAGE=`/usr/bin/mktemp /tmp/ipcoprd.img.XXXXXX`
+       MNTPOINT=`/usr/bin/mktemp -d /tmp/ipcoprd.mnt.XXXXXX`
+       /bin/gzip -d -c /boot/ipcoprd.img > $IMAGE
+       /bin/mount -o loop $IMAGE $MNTPOINT
+       SCSIDRIVER=`/bin/ls -1 $MNTPOINT/lib | \
+               /bin/grep -v sd_mod.o.gz |\
+               /bin/grep -v sg.o.gz |\
+               /bin/grep -v sr_mod.o.gz |\
+               /bin/grep -v 53c700.o.gz |\
+               /bin/grep -v NCR53C9x.o.gz |\
+               /bin/grep -v libata.o.gz  |\
+               /bin/grep -v scsi_mod.o.gz |\
+               /bin/grep -v ataraid.o.gz |\
+               /bin/grep -v mptbase.o.gz |\
+               /bin/grep -v isa-pnp.o |\
+               /bin/grep -v ds.o.gz |\
+               /bin/grep -v pcmcia_core.o.gz |\
+               /bin/sed 's/.o.gz//'`
+       /bin/umount $MNTPOINT
+       /bin/rm -rf $MNTPOINT $IMAGE    
+       /bin/mv -f /boot/ipcoprd.img /boot/ipcoprd-2.4.27.img
+       /bin/mv -f /boot/ipcoprd-smp.img /boot/ipcoprd-smp-2.4.27.img
+       if [ "$SCSIDRIVER" ]; then
+               /sbin/mkinitrd --with=scsi_mod --with=${SCSIDRIVER} --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipcoprd.img 2.4.29
+               /sbin/mkinitrd --with=scsi_mod --with=${SCSIDRIVER} --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipcoprd-smp.img 2.4.29-smp
+       fi
+fi
+
+/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipcop/header.pl
+/bin/tar -zxpf patch.tar.gz -C /
+
diff --git a/updates/1.4.5/.cvsignore b/updates/1.4.5/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.5/CVS/Entries b/updates/1.4.5/CVS/Entries
new file mode 100644 (file)
index 0000000..60a201f
--- /dev/null
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Wed Mar 16 07:45:18 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.5/1.1.2.9/Mon Mar 28 10:54:41 2005//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.5/1.1.2.9/Mon Mar 28 10:54:41 2005//TIPCOP_v1_4_0
+/information/1.1.2.2/Tue Mar 29 23:31:19 2005//TIPCOP_v1_4_0
+/setup/1.1.2.3/Tue Mar 22 21:25:55 2005//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.5/CVS/Repository b/updates/1.4.5/CVS/Repository
new file mode 100644 (file)
index 0000000..ed88d5f
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.5
diff --git a/updates/1.4.5/CVS/Root b/updates/1.4.5/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.5/CVS/Tag b/updates/1.4.5/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.5/ROOTFILES.alpha-1.4.5 b/updates/1.4.5/ROOTFILES.alpha-1.4.5
new file mode 100644 (file)
index 0000000..da76601
--- /dev/null
@@ -0,0 +1,15 @@
+etc/issue
+etc/logrotate.conf
+var/ipcop/langs/en.pl
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/logs.cgi/ids.dat
+home/httpd/cgi-bin/portfw.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+home/httpd/html/images/web-support.png
+##
+## dnsmasq-2.21
+##
+usr/sbin/dnsmasq
+##
+## misc-progs
+usr/local/bin/setddns.pl
diff --git a/updates/1.4.5/ROOTFILES.i386-1.4.5 b/updates/1.4.5/ROOTFILES.i386-1.4.5
new file mode 100644 (file)
index 0000000..34ea3b3
--- /dev/null
@@ -0,0 +1,19 @@
+etc/issue
+etc/logrotate.conf
+var/ipcop/langs/en.pl
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/logs.cgi/ids.dat
+home/httpd/cgi-bin/portfw.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+home/httpd/html/images/forward.gif
+home/httpd/html/images/web-support.png
+##
+## dnsmasq-2.21
+##
+usr/sbin/dnsmasq
+##
+## pulsardsl 4.0.18 with gcc3 lib
+lib/modules/2.4.29-smp/misc/pulsar.o.gz
+##
+## misc-progs
+usr/local/bin/setddns.pl
diff --git a/updates/1.4.5/information b/updates/1.4.5/information
new file mode 100644 (file)
index 0000000..d853d67
--- /dev/null
@@ -0,0 +1 @@
+005|1.4.5 update|Fix pulsardsl by using the correct gcc3 lib. Fix vpn SF 1167658. Fix dhcpc.cgi with start and end address comparison. Upgrade dnsmasq to 2.21. Update snort sid URL. Start a new online help system in portfw.cgi|2005-03-30
diff --git a/updates/1.4.5/setup b/updates/1.4.5/setup
new file mode 100644 (file)
index 0000000..58d3b0b
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+UPGRADEVERSION="1.4.5"
+PREVIOUSVERSION="1.4.4"
+echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing."
+
+CURRENTVERSION=`cat /etc/issue | awk '{ print $2 }' | sed -e 's/v//'`
+
+if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then
+       echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+
+/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipcop/general-functions.pl
+# Fix typo in PrintActualLeases subroutine
+/bin/sed -i -e 's/colourbox/table2colour/' /var/ipcop/header.pl
+/bin/tar -zxpf patch.tar.gz -C /
+
diff --git a/updates/1.4.6/.cvsignore b/updates/1.4.6/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.6/CVS/Entries b/updates/1.4.6/CVS/Entries
new file mode 100644 (file)
index 0000000..143f95c
--- /dev/null
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Sat Apr  9 08:46:29 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.6/1.1.2.37/Mon Jul 18 20:40:38 2005//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.6/1.1.2.37/Mon Jul 18 20:40:38 2005//TIPCOP_v1_4_0
+/information/1.1.2.4/Sat May  7 17:40:28 2005//TIPCOP_v1_4_0
+/setup/1.1.2.7/Tue Apr 26 17:59:37 2005//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.6/CVS/Repository b/updates/1.4.6/CVS/Repository
new file mode 100644 (file)
index 0000000..3d1301c
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.6
diff --git a/updates/1.4.6/CVS/Root b/updates/1.4.6/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.6/CVS/Tag b/updates/1.4.6/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.6/ROOTFILES.alpha-1.4.6 b/updates/1.4.6/ROOTFILES.alpha-1.4.6
new file mode 100644 (file)
index 0000000..fb6b450
--- /dev/null
@@ -0,0 +1,93 @@
+etc/issue
+etc/httpd/conf/httpd.conf
+etc/rc.d/rc.halt
+etc/rc.d/rc.red
+etc/rc.d/rc.updatered
+etc/rc.d/rc.netaddress.up
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/hosts.cgi
+home/httpd/cgi-bin/ids.cgi
+home/httpd/cgi-bin/index.cgi
+home/httpd/cgi-bin/logs.cgi/ids.dat
+home/httpd/cgi-bin/logs.cgi/log.dat
+home/httpd/cgi-bin/portfw.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/upload.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+var/ipcop/general-functions.pl
+var/ipcop/langs/list
+var/ipcop/langs/bz.pl
+var/ipcop/langs/da.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/fi.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/la.pl
+var/ipcop/langs/nl.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/sv.pl
+usr/local/sbin/setup
+##
+## dnsmasq-2.22 (fixe bugs introduced in 2.21)
+##
+usr/sbin/dnsmasq
+##
+## misc-progs
+usr/local/bin/setddns.pl
+usr/local/bin/restartsnort
+usr/local/bin/restartsquid
+##
+## gzip patched for CAN-2005-1228 CAN-2005-0988
+##
+bin/gzip
+##
+## oinkmaster-1.2
+##
+usr/local/bin/oinkmaster.pl
+var/ipcop/snort/oinkmaster.conf
+##
+## pptp-1.6.0
+##
+usr/sbin/pptp
+##
+## snort-2.3.3
+##
+etc/snort
+usr/sbin/snort
+##
+## configroot
+##
+var/ipcop/dhcp/advoptions-list
+##
+## wireless_tools.27
+##
+usr/lib/libiw.so
+usr/lib/libiw.so.27
+usr/sbin/ifrename
+usr/sbin/iwconfig
+usr/sbin/iwevent
+usr/sbin/iwgetid
+usr/sbin/iwlist
+usr/sbin/iwpriv
+usr/sbin/iwspy
+##
+## vim-6.3 patched for CAN-2005-1138
+##
+usr/bin/vim
+##
+## bind 9.2.5
+##
+usr/bin/host
+usr/bin/nsupdate
+##
+## tcpdump 3.8.3 patched for CAN-2005-12{78|79|80}
+##
+usr/sbin/tcpdump
+##
+## ibod security fixes
+##
+usr/sbin/ibod
diff --git a/updates/1.4.6/ROOTFILES.i386-1.4.6 b/updates/1.4.6/ROOTFILES.i386-1.4.6
new file mode 100644 (file)
index 0000000..1375d1a
--- /dev/null
@@ -0,0 +1,93 @@
+etc/issue
+etc/httpd/conf/httpd.conf
+etc/rc.d/rc.halt
+etc/rc.d/rc.red
+etc/rc.d/rc.updatered
+etc/rc.d/rc.netaddress.up
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/hosts.cgi
+home/httpd/cgi-bin/ids.cgi
+home/httpd/cgi-bin/index.cgi
+home/httpd/cgi-bin/logs.cgi/ids.dat
+home/httpd/cgi-bin/logs.cgi/log.dat
+home/httpd/cgi-bin/portfw.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/upload.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+var/ipcop/general-functions.pl
+var/ipcop/langs/list
+var/ipcop/langs/bz.pl
+var/ipcop/langs/da.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/fi.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/la.pl
+var/ipcop/langs/nl.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/sv.pl
+usr/local/sbin/setup
+##
+## misc-progs
+usr/local/bin/setddns.pl
+usr/local/bin/restartsnort
+usr/local/bin/restartsquid
+##
+## dnsmasq-2.22 (fixe bugs introduced in 2.21)
+##
+usr/sbin/dnsmasq
+##
+## gzip patched for CAN-2005-1228 CAN-2005-0988
+##
+bin/gzip
+##
+## oinkmaster-1.2
+##
+usr/local/bin/oinkmaster.pl
+var/ipcop/snort/oinkmaster.conf
+##
+## pptp-1.6.0
+##
+usr/sbin/pptp
+##
+## snort-2.3.3
+##
+etc/snort
+usr/sbin/snort
+##
+## configroot
+##
+var/ipcop/dhcp/advoptions-list
+##
+## wireless_tools.27
+##
+usr/lib/libiw.so
+usr/lib/libiw.so.27
+usr/sbin/ifrename
+usr/sbin/iwconfig
+usr/sbin/iwevent
+usr/sbin/iwgetid
+usr/sbin/iwlist
+usr/sbin/iwpriv
+usr/sbin/iwspy
+##
+## vim-6.3 patched for CAN-2005-1138
+##
+usr/bin/vim
+##
+## bind 9.2.5
+##
+usr/bin/host
+usr/bin/nsupdate
+##
+## tcpdump 3.8.3 patched for CAN-2005-12{78|79|80}
+##
+usr/sbin/tcpdump
+##
+## ibod security fixes
+##
+usr/sbin/ibod
diff --git a/updates/1.4.6/information b/updates/1.4.6/information
new file mode 100644 (file)
index 0000000..8d79c03
--- /dev/null
@@ -0,0 +1 @@
+006|1.4.6 update|Upgrade snort, add oinkmaster to update rules. Patch tcpdump, gzip, vim, ibod. Upgrade to bind-9.2.5, dnsmasq-2.22, pptp-1.6.0, wireless-tools.27. Allow easydns and zoneedit to update without a HOSTNAME. Use english language in setup for (zh,lt,ro,ru,th). Allow correct default gateway change with static IP. Remove sitefinder workaround. Allow new options to dhcp.cgi. Fix some vpnmain.cgi errors. Fix dyndns ip behind router, erase ipcache file when force update. Fix wrong firmware speedtouch selection during upload. Fix start squid if enabled on blue or green. Fix various typo with vpnmain.cgi, a possible crash of the interface on a click on erase. Remove in rc.netaddress.up call to dsnmask and ipsecctrl (fix SF11752 ??) Stop and clear module help on reboot for Conexant PCI and usb adsl. |2005-05-10
diff --git a/updates/1.4.6/setup b/updates/1.4.6/setup
new file mode 100644 (file)
index 0000000..aece06c
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+UPGRADEVERSION="1.4.6"
+PREVIOUSVERSION="1.4.5"
+echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing."
+
+CURRENTVERSION=`cat /etc/issue | awk '{ print $2 }' | sed -e 's/v//'`
+
+if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then
+       echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+
+/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipcop/general-functions.pl
+
+/bin/tar -zxpf patch.tar.gz -C /
+/usr/local/bin/restartsnort
+
+# Fix for SF Bug 1174069
+# "Invalid fixed MAC address" error message appears when trying to 
+# add or edit fixed leases in dhcp.cgi. Bug introduced in v1.4.4.
+sed -i -e '/FIX_/d' /var/ipcop/dhcp/settings
+chown 99:99 /var/ipcop/dhcp/settings
+
+#DHCP need 2 new files. advoptions-list is in the patch
+#                      advoptions created empty 
+touch /var/ipcop/dhcp/advoptions
+chown nobody:nobody /var/ipcop/dhcp/advoptions
+chown nobody:nobody /var/ipcop/dhcp/advoptions-list
+chmod 644 /var/ipcop/dhcp/advoptions
+chmod 444 /var/ipcop/dhcp/advoptions-list
+
+# create a file in the update allow to remove the touch in setddns.pl
+touch /var/ipcop/ddns/settings
+chown nobody:nobody /var/ipcop/ddns/settings
+chmod 644 /var/ipcop/ddns/settings
+
+# Stop redirection in crontab
+# this file is always empty and serve nothing
+rm /var/log/dynupdate.log
diff --git a/updates/1.4.7/.cvsignore b/updates/1.4.7/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.7/CVS/Entries b/updates/1.4.7/CVS/Entries
new file mode 100644 (file)
index 0000000..d515321
--- /dev/null
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Fri Jun 10 22:03:48 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.7/1.1.2.49/Thu Aug 25 21:55:56 2005//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.7/1.1.2.49/Thu Aug 25 21:55:56 2005//TIPCOP_v1_4_0
+/information/1.1.2.12/Tue Aug 23 05:45:26 2005//TIPCOP_v1_4_0
+/setup/1.1.2.27/Fri Sep 16 11:45:02 2005//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.7/CVS/Repository b/updates/1.4.7/CVS/Repository
new file mode 100644 (file)
index 0000000..85351d3
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.7
diff --git a/updates/1.4.7/CVS/Root b/updates/1.4.7/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.7/CVS/Tag b/updates/1.4.7/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.7/ROOTFILES.alpha-1.4.7 b/updates/1.4.7/ROOTFILES.alpha-1.4.7
new file mode 100644 (file)
index 0000000..77ffd96
--- /dev/null
@@ -0,0 +1,374 @@
+etc/rc.d/rc.eciadsl
+etc/rc.d/rc.firewall
+etc/rc.d/rc.netaddress.up
+etc/rc.d/rc.red
+etc/rc.d/rc.sysinit
+etc/rc.d/rc.network
+home/httpd/cgi-bin/aliases.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/gui.cgi
+home/httpd/cgi-bin/ids.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/time.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/upload.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+home/httpd/cgi-bin/wireless.cgi
+home/httpd/cgi-bin/logs.cgi/config.dat
+home/httpd/cgi-bin/logs.cgi/firewalllog.dat
+home/httpd/cgi-bin/logs.cgi/ids.dat
+home/httpd/cgi-bin/logs.cgi/log.dat
+home/httpd/cgi-bin/logs.cgi/proxylog.dat
+home/httpd/cgi-bin/logs.cgi/summary.dat
+home/httpd/html/images/addblue.gif
+usr/local/bin/httpscert
+usr/local/bin/setreservedports
+usr/local/bin/updatelists.pl
+usr/local/sbin/setup
+var/ipcop/general-functions.pl
+var/ipcop/backup/exclude.system
+var/ipcop/lang.pl
+var/ipcop/langs/list
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/es.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/la.pl
+var/ipcop/langs/nl.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/pt.pl
+var/ipcop/langs/ru.pl
+var/ipcop/langs/sl.pl
+var/ipcop/langs/vi.pl
+##
+## bzip2-1.0.3 patched (CAN-2005-1260 CAN-2005-0953)
+##
+bin/bzip2
+lib/libbz2.so.1.0.3
+##
+## dhcpcd-1.3.22-pl4 patched (CAN-2005-1896)
+usr/sbin/dhcpcd
+##
+## zlib-1.2.3 (fix CAN-2005-2096)
+##
+lib/libz.so.1.2.3
+##
+## ethtool-3
+##
+usr/sbin/ethtool
+##
+## logwatch-6.1.2
+##
+etc/log.d/conf/ignore.conf
+etc/log.d/conf/logfiles/http.conf
+etc/log.d/conf/logfiles/messages.conf
+etc/log.d/conf/logfiles/secure.conf
+etc/log.d/conf/logwatch.conf
+etc/log.d/conf/services/dhcpd.conf
+etc/log.d/conf/services/http.conf
+etc/log.d/conf/services/init.conf
+etc/log.d/conf/services/kernel.conf
+etc/log.d/conf/services/modprobe.conf
+etc/log.d/conf/services/pam_unix.conf
+etc/log.d/conf/services/pluto.conf
+etc/log.d/conf/services/raid.conf
+etc/log.d/conf/services/scsi.conf
+etc/log.d/conf/services/secure.conf
+etc/log.d/conf/services/sshd.conf
+etc/log.d/conf/services/syslogd.conf
+etc/log.d/conf/services/zz-disk_space.conf
+etc/log.d/lib/Logwatch.pm
+etc/log.d/scripts/logwatch.pl
+etc/log.d/scripts/services/dhcpd
+etc/log.d/scripts/services/http
+etc/log.d/scripts/services/init
+etc/log.d/scripts/services/kernel
+etc/log.d/scripts/services/modprobe
+etc/log.d/scripts/services/pam_unix
+etc/log.d/scripts/services/pluto
+etc/log.d/scripts/services/raid
+etc/log.d/scripts/services/scsi
+etc/log.d/scripts/services/secure
+etc/log.d/scripts/services/sshd
+etc/log.d/scripts/services/syslogd
+etc/log.d/scripts/services/zz-disk_space
+etc/log.d/scripts/shared/applyhttpdate
+etc/log.d/scripts/shared/applystddate
+etc/log.d/scripts/shared/applyusdate
+etc/log.d/scripts/shared/expandrepeats
+etc/log.d/scripts/shared/hosthash
+etc/log.d/scripts/shared/hostlist
+etc/log.d/scripts/shared/multiservice
+etc/log.d/scripts/shared/onlycontains
+etc/log.d/scripts/shared/onlyhost
+etc/log.d/scripts/shared/onlyservice
+etc/log.d/scripts/shared/remove
+etc/log.d/scripts/shared/removeheaders
+etc/log.d/scripts/shared/removeservice
+##
+## misc-progs
+##
+usr/local/bin/installpackage
+usr/local/bin/ipsecctrl
+usr/local/bin/rebuildhosts
+usr/local/bin/setportfw
+usr/local/bin/setddns.pl
+etc/ssl/openssl.cnf
+var/spool/cron/root.orig
+##
+## pcmcia-cs-3.2.8
+##
+etc/pcmcia/config
+etc/pcmcia/isdnextra.conf
+etc/pcmcia/netextra.conf
+etc/pcmcia/network
+etc/pcmcia/network.opts
+etc/pcmcia/serial
+etc/rc.d/rc.pcmcia
+sbin/cardctl
+sbin/cardmgr
+##
+## squid-2.5.STABLE10
+##
+usr/lib/squid/msnt_auth
+usr/lib/squid/ncsa_auth
+usr/lib/squid/ntlm_auth
+usr/lib/squid/smb_auth
+usr/lib/squid/unlinkd
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
+##
+## tcpdump 3.8.3 patched again (for CAN-2005-1267)
+##
+usr/sbin/tcpdump
+##
+## Compress-Zlib-1.34
+##
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Compress/Zlib/Zlib.so
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Compress/Zlib/autosplit.ix
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/Compress/Zlib.pm
+##
+## URI-1.35
+##
+usr/lib/perl5/site_perl/5.8.5/URI.pm
+usr/lib/perl5/site_perl/5.8.5/URI/QueryParam.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_generic.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_query.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_login.pm
+usr/lib/perl5/site_perl/5.8.5/URI/URL.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_server.pm
+usr/lib/perl5/site_perl/5.8.5/URI/https.pm
+usr/lib/perl5/site_perl/5.8.5/URI/WithBase.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Heuristic.pm
+usr/lib/perl5/site_perl/5.8.5/URI/ftp.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Escape.pm
+usr/lib/perl5/site_perl/5.8.5/URI/http.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_foreign.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Split.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_segment.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_userpass.pm
+##
+## libwww-perl-5.803
+##
+usr/lib/perl5/site_perl/5.8.5/LWP.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/MediaTypes.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Debug.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Simple.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/UserAgent.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/media.types
+usr/lib/perl5/site_perl/5.8.5/LWP/MemberMixin.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Ntlm.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Basic.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Digest.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/http10.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/https.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/ftp.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/https10.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/http.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTPS.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP/NB.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP/Methods.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Date.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Status.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Request.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Negotiate.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Response.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Message.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Request/Common.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/Util.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/Auth.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/ETag.pm
+usr/lib/perl5/site_perl/5.8.5/File/Listing.pm
+##
+## iptstate-1.4
+##
+usr/sbin/iptstate
+#usr/share/man/man1/iptstate.1
+##
+## Net_SSLeay-1.2.5
+##
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/Net/SSLeay
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/Net/SSLeay.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-alpha/Net/SSLeay/Handle.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-alpha/Net/ptrtstrun.pl
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay
+#usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/.packlist
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/SSLeay.bs
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/SSLeay.so
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/autosplit.ix
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/debug_read.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/do_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/do_https2.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/do_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/do_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/do_httpx2.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/do_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/do_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/dump_peer_certificate.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/get_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/get_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/get_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/get_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/get_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/get_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/get_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/get_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/get_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/head_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/head_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/head_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/head_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/head_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/head_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/head_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/head_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/head_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/http_cat.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/https_cat.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/httpx_cat.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/make_form.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/make_headers.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/new_x_ctx.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/open_proxy_tcp_connection.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/open_tcp_connection.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/post_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/post_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/post_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/post_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/post_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/post_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/post_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/post_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/post_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/put_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/put_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/put_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/put_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/put_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/put_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/put_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/put_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/put_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/randomize.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/set_cert_and_key.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/set_proxy.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/set_server_cert_and_key.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/ssl_read_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/ssl_read_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/ssl_read_until.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/ssl_write_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/ssl_write_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/sslcat.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/tcp_read_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/tcp_read_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/tcp_read_until.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/tcp_write_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/tcp_write_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/tcpcat.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/tcpxcat.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/want_X509_lookup.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/want_nothing.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/want_read.al
+usr/lib/perl5/site_perl/5.8.5/i386-alpha/auto/Net/SSLeay/want_write.al
+#usr/share/man/man3/Net::SSLeay.3
+#usr/share/man/man3/Net::SSLeay::Handle.3
+#
+# Procps-3.2.5
+#
+bin/kill
+bin/ps
+lib/libproc-3.2.5.so
+sbin/sysctl
+usr/bin/free
+usr/bin/top
+usr/bin/vmstat
+usr/bin/w
+##
+## arping-2.0.5
+##
+usr/sbin/arping
+##
+## vlan.1.8
+##
+sbin/vconfig
+##
+## iana-etc 1.10
+##
+etc/services
+etc/protocols
+##
+## gnupg 1.4.2
+##
+usr/bin/gpg
+##
+## sysvinit-2.86
+##
+sbin/halt
+sbin/init
+sbin/killall5
+sbin/poweroff
+sbin/reboot
+sbin/runlevel
+sbin/shutdown
+sbin/sulogin
+sbin/telinit
+usr/bin/last
+usr/bin/lastb
+usr/bin/mesg
+usr/bin/utmpdump
+usr/bin/wall
+##
+## eagle-usb-2.3.2
+##
+etc/eagle-usb/CMVepES03.txt
+etc/eagle-usb/CMVepFR04.txt
+etc/eagle-usb/CMVepFR10.txt
+etc/eagle-usb/CMVepIT.txt
+etc/eagle-usb/CMVepWO.txt
+lib/modules/2.4.31/misc/eagle-usb.o.gz
+usr/sbin/eaglectrl
+usr/sbin/pppoa
+##
+## eciadsl-usermode-0.11beta1
+##
+etc/eciadsl/modems.db
+usr/sbin/eciadsl-firmware
+usr/sbin/eciadsl-pppoeci
+usr/sbin/eciadsl-synch
+##
+## openswan 1.0.10rc2
+##
+usr/sbin/ipsec
+usr/lib/ipsec
+##
+## patch net-tools-1.60
+##
+sbin/ifconfig
diff --git a/updates/1.4.7/ROOTFILES.i386-1.4.7 b/updates/1.4.7/ROOTFILES.i386-1.4.7
new file mode 100644 (file)
index 0000000..6a267d7
--- /dev/null
@@ -0,0 +1,380 @@
+etc/rc.d/rc.eciadsl
+etc/rc.d/rc.firewall
+etc/rc.d/rc.netaddress.up
+etc/rc.d/rc.red
+etc/rc.d/rc.sysinit
+etc/rc.d/rc.network
+home/httpd/cgi-bin/aliases.cgi
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/ddns.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/gui.cgi
+home/httpd/cgi-bin/ids.cgi
+home/httpd/cgi-bin/pppsetup.cgi
+home/httpd/cgi-bin/proxy.cgi
+home/httpd/cgi-bin/time.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/upload.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+home/httpd/cgi-bin/wireless.cgi
+home/httpd/cgi-bin/logs.cgi/config.dat
+home/httpd/cgi-bin/logs.cgi/firewalllog.dat
+home/httpd/cgi-bin/logs.cgi/ids.dat
+home/httpd/cgi-bin/logs.cgi/log.dat
+home/httpd/cgi-bin/logs.cgi/proxylog.dat
+home/httpd/cgi-bin/logs.cgi/summary.dat
+home/httpd/html/images/addblue.gif
+usr/local/bin/httpscert
+usr/local/bin/setreservedports
+usr/local/bin/updatelists.pl
+usr/local/sbin/setup
+var/ipcop/general-functions.pl
+var/ipcop/backup/exclude.system
+var/ipcop/lang.pl
+var/ipcop/langs/list
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/en.pl
+var/ipcop/langs/es.pl
+var/ipcop/langs/fr.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/la.pl
+var/ipcop/langs/nl.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/pt.pl
+var/ipcop/langs/ru.pl
+var/ipcop/langs/sl.pl
+var/ipcop/langs/vi.pl
+##
+## bzip2-1.0.3 patched (CAN-2005-1260 CAN-2005-0953)
+##
+bin/bzip2
+lib/libbz2.so.1.0.3
+##
+## dhcpcd-1.3.22-pl4 patched (CAN-2005-1896)
+usr/sbin/dhcpcd
+##
+## zlib-1.2.3 (fix CAN-2005-2096)
+##
+lib/libz.so.1.2.3
+##
+## ethtool-3
+##
+usr/sbin/ethtool
+##
+## logwatch-6.1.2
+##
+etc/log.d/conf/ignore.conf
+etc/log.d/conf/logfiles/http.conf
+etc/log.d/conf/logfiles/messages.conf
+etc/log.d/conf/logfiles/secure.conf
+etc/log.d/conf/logwatch.conf
+etc/log.d/conf/services/dhcpd.conf
+etc/log.d/conf/services/http.conf
+etc/log.d/conf/services/init.conf
+etc/log.d/conf/services/kernel.conf
+etc/log.d/conf/services/modprobe.conf
+etc/log.d/conf/services/pam_unix.conf
+etc/log.d/conf/services/pluto.conf
+etc/log.d/conf/services/raid.conf
+etc/log.d/conf/services/scsi.conf
+etc/log.d/conf/services/secure.conf
+etc/log.d/conf/services/sshd.conf
+etc/log.d/conf/services/syslogd.conf
+etc/log.d/conf/services/zz-disk_space.conf
+etc/log.d/lib/Logwatch.pm
+etc/log.d/scripts/logwatch.pl
+etc/log.d/scripts/services/dhcpd
+etc/log.d/scripts/services/http
+etc/log.d/scripts/services/init
+etc/log.d/scripts/services/kernel
+etc/log.d/scripts/services/modprobe
+etc/log.d/scripts/services/pam_unix
+etc/log.d/scripts/services/pluto
+etc/log.d/scripts/services/raid
+etc/log.d/scripts/services/scsi
+etc/log.d/scripts/services/secure
+etc/log.d/scripts/services/sshd
+etc/log.d/scripts/services/syslogd
+etc/log.d/scripts/services/zz-disk_space
+etc/log.d/scripts/shared/applyhttpdate
+etc/log.d/scripts/shared/applystddate
+etc/log.d/scripts/shared/applyusdate
+etc/log.d/scripts/shared/expandrepeats
+etc/log.d/scripts/shared/hosthash
+etc/log.d/scripts/shared/hostlist
+etc/log.d/scripts/shared/multiservice
+etc/log.d/scripts/shared/onlycontains
+etc/log.d/scripts/shared/onlyhost
+etc/log.d/scripts/shared/onlyservice
+etc/log.d/scripts/shared/remove
+etc/log.d/scripts/shared/removeheaders
+etc/log.d/scripts/shared/removeservice
+##
+## misc-progs
+##
+usr/local/bin/installpackage
+usr/local/bin/ipsecctrl
+usr/local/bin/rebuildhosts
+usr/local/bin/setportfw
+usr/local/bin/setddns.pl
+etc/ssl/openssl.cnf
+var/spool/cron/root.orig
+##
+## pcmcia-cs-3.2.8
+##
+etc/pcmcia/config
+etc/pcmcia/isdnextra.conf
+etc/pcmcia/netextra.conf
+etc/pcmcia/network
+etc/pcmcia/network.opts
+etc/pcmcia/serial
+etc/rc.d/rc.pcmcia
+sbin/cardctl
+sbin/cardmgr
+##
+## squid-2.5.STABLE10
+##
+usr/lib/squid/msnt_auth
+usr/lib/squid/ncsa_auth
+usr/lib/squid/ntlm_auth
+usr/lib/squid/smb_auth
+usr/lib/squid/unlinkd
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
+##
+## tcpdump 3.8.3 patched again (for CAN-2005-1267)
+##
+usr/sbin/tcpdump
+##
+## Compress-Zlib-1.34
+##
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Compress/Zlib/Zlib.so
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Compress/Zlib/autosplit.ix
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Compress/Zlib.pm
+##
+## URI-1.35
+##
+usr/lib/perl5/site_perl/5.8.5/URI.pm
+usr/lib/perl5/site_perl/5.8.5/URI/QueryParam.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_generic.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_query.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_login.pm
+usr/lib/perl5/site_perl/5.8.5/URI/URL.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_server.pm
+usr/lib/perl5/site_perl/5.8.5/URI/https.pm
+usr/lib/perl5/site_perl/5.8.5/URI/WithBase.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Heuristic.pm
+usr/lib/perl5/site_perl/5.8.5/URI/ftp.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Escape.pm
+usr/lib/perl5/site_perl/5.8.5/URI/http.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_foreign.pm
+usr/lib/perl5/site_perl/5.8.5/URI/Split.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_segment.pm
+usr/lib/perl5/site_perl/5.8.5/URI/_userpass.pm
+##
+## libwww-perl-5.803
+##
+usr/lib/perl5/site_perl/5.8.5/LWP.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/MediaTypes.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Debug.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Simple.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/UserAgent.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/media.types
+usr/lib/perl5/site_perl/5.8.5/LWP/MemberMixin.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Ntlm.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Basic.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Authen/Digest.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/http10.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/https.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/ftp.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/https10.pm
+usr/lib/perl5/site_perl/5.8.5/LWP/Protocol/http.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTPS.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP/NB.pm
+usr/lib/perl5/site_perl/5.8.5/Net/HTTP/Methods.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Date.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Status.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Request.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Negotiate.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Response.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Message.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Request/Common.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/Util.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/Auth.pm
+usr/lib/perl5/site_perl/5.8.5/HTTP/Headers/ETag.pm
+usr/lib/perl5/site_perl/5.8.5/File/Listing.pm
+##
+## iptstate-1.4
+##
+usr/sbin/iptstate
+#usr/share/man/man1/iptstate.1
+##
+## Net_SSLeay-1.2.5
+##
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/SSLeay
+usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/SSLeay.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/SSLeay/Handle.pm
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/Net/ptrtstrun.pl
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay
+#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/.packlist
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/SSLeay.bs
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/SSLeay.so
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/autosplit.ix
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/debug_read.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_https2.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_httpx2.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/do_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/dump_peer_certificate.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/get_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/head_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/http_cat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/https_cat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/httpx_cat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/make_form.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/make_headers.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/new_x_ctx.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/open_proxy_tcp_connection.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/open_tcp_connection.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/post_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_http.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_http3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_http4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_https.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_https3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_https4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_httpx.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_httpx3.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/put_httpx4.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/randomize.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/set_cert_and_key.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/set_proxy.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/set_server_cert_and_key.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/ssl_read_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/ssl_read_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/ssl_read_until.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/ssl_write_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/ssl_write_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/sslcat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcp_read_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcp_read_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcp_read_until.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcp_write_CRLF.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcp_write_all.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcpcat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/tcpxcat.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/want_X509_lookup.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/want_nothing.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/want_read.al
+usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Net/SSLeay/want_write.al
+#usr/share/man/man3/Net::SSLeay.3
+#usr/share/man/man3/Net::SSLeay::Handle.3
+#
+# Procps-3.2.5
+#
+bin/kill
+bin/ps
+lib/libproc-3.2.5.so
+sbin/sysctl
+usr/bin/free
+usr/bin/top
+usr/bin/vmstat
+usr/bin/w
+##
+## arping-2.0.5
+##
+usr/sbin/arping
+##
+## vlan.1.8
+##
+sbin/vconfig
+##
+## iana-etc 1.10
+##
+etc/services
+etc/protocols
+##
+## gnupg 1.4.2
+##
+usr/bin/gpg
+##
+## sysvinit-2.86
+##
+sbin/halt
+sbin/init
+sbin/killall5
+sbin/poweroff
+sbin/reboot
+sbin/runlevel
+sbin/shutdown
+sbin/sulogin
+sbin/telinit
+usr/bin/last
+usr/bin/lastb
+usr/bin/mesg
+usr/bin/utmpdump
+usr/bin/wall
+##
+## eagle-usb-2.3.2
+##
+etc/eagle-usb/CMVepES03.txt
+etc/eagle-usb/CMVepFR04.txt
+etc/eagle-usb/CMVepFR10.txt
+etc/eagle-usb/CMVepIT.txt
+etc/eagle-usb/CMVepWO.txt
+lib/modules/2.4.31/misc/eagle-usb.o.gz
+lib/modules/2.4.31-smp/misc/eagle-usb.o.gz
+usr/sbin/eaglectrl
+usr/sbin/pppoa
+##
+## eciadsl-usermode-0.11beta1
+##
+etc/eciadsl/modems.db
+usr/sbin/eciadsl-firmware
+usr/sbin/eciadsl-pppoeci
+usr/sbin/eciadsl-synch
+##
+## openswan 1.0.10rc2
+##
+usr/sbin/ipsec
+usr/lib/ipsec
+##
+## pulsar-4.0.19
+##
+lib/modules/2.4.31-smp/misc/pulsar.o.gz
+lib/modules/2.4.31/misc/pulsar.o.gz
+##
+## patch net-tools-1.60
+##
+sbin/ifconfig
diff --git a/updates/1.4.7/information b/updates/1.4.7/information
new file mode 100644 (file)
index 0000000..f5e039b
--- /dev/null
@@ -0,0 +1 @@
+007|1.4.7 update|Upgrade to bzip2 patched (CAN-2005-1260 CAN-2005-0953). Patch dhcpcd (CAN-2005-1896), tcpdump (CAN-2005-1267), zlib(CAN-2005-2096). Fix IDS Log bug (SF 1213547). Upgrade logwatch to 6.1.2, squid to 2.5.STABLE10, pcmcia-cs to 3.2.8, pulsardsl to 4.0.19. <br>Add ethtool-3, iptstate-1.4, libwww-perl-5.8.03, Compress-Zlib-1.35, URI-1.35, Net_SSLeay-1.2.5. <br>Improve dynamic DNS & add provider. Enable/disable ping from new Firewall Options page. Improve support for addon and language files. Improve DHCP option support. <br>Openswan 1.0.10rc2, VPN PFS=yes/no, VPN users with dynamic IP, you can choose new dead peer detection=restart!. Fix VPN interface bugs. Add usr/local/bin/setreservedports script to shift ipcop https port away from 445. <br>You need to <b>run kernel-2.4.29{,-smp}</b> for the update to work. For flash disk with 5MB /boot, only 2.4.29 (not smp) allowed during update. <br>Apply both 1.4.7 and 1.4.8 updates (eventually load fcdsl-1.4.8 package if needed) and reboot!!!|2005-08-25
diff --git a/updates/1.4.7/setup b/updates/1.4.7/setup
new file mode 100644 (file)
index 0000000..56170b3
--- /dev/null
@@ -0,0 +1,211 @@
+#!/bin/bash
+
+UPGRADEVERSION="1.4.7"
+PREVIOUSVERSION="1.4.6"
+echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing."
+
+CURRENTVERSION=`perl -e "require '/var/ipcop/general-functions.pl';print \\$General::version;"`
+if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then
+       echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+KVER=`uname -r`
+
+#we could have supported removing the 'not running' kernel but it will be much harder with each new kernel
+#so be simple and update only from the last one
+if [ "$KVER" = "2.4.27" -o "$KVER" = "2.4.27-smp" ]; then
+               echo "Kernel-2.4.29 is required to install this update"
+               echo "Old kernel 2.4.27 need to be removed to make place for kernel 2.4.31"
+               exit 1
+fi
+#cleanup /boot/grub of unused files (necessary for flash with only 5Mb on /boot)
+rm -f /boot/grub/{fat,ffs,iso9660,jfs,vstafs,minix,reiserfs,ufs2,xfs}_stage1_5 \
+       /boot/grub/stage2_eltorito \
+       /boot/grub/{scsigrub.conf,grubbatch}
+
+#suppress the kernel not in use to make place for a new kernel
+rm -rf /lib/modules/2.4.27{,-smp}      \
+       /boot/vmlinuz-2.4.27{,-smp}     \
+       /boot/System.map-2.4.27{,-smp}  \
+       /boot/ipcoprd-2.4.27.img        \
+       /boot/ipcoprd-smp-2.4.27.img
+
+#save active crontab
+mv /var/spool/cron/root.orig /tmp/root.orig
+
+# install udpated files
+/bin/tar -zxpf patch.tar.gz -C /
+
+# general-functions might not be overwrited by patch
+/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipcop/general-functions.pl
+
+# unneeded,updated, unified (old eci driver)
+/bin/rm -f /lib{libbz2.so.1.0.2,libz.so.1.2.2,libproc.so.3.2.1} /usr/bin/eciadsl-{firmware,synch,pppoeci}
+
+# update linker cache
+/sbin/ldconfig
+
+# Adjust limits in traffic RRDs to support 100Mbit uplinks
+for i in /var/log/rrd/{RED,GREEN,ORANGE,BLUE}.rrd; do
+       if [ -e $i ]; then
+               /usr/bin/perl -e "use RRDs;RRDs::tune('$i','--maximum','incoming:12500000');"
+               /usr/bin/perl -e "use RRDs;RRDs::tune('$i','--maximum','outgoing:12500000');"
+       fi
+done
+
+# optionsfw (ping disable, logging limitation
+mkdir -p               /var/ipcop/optionsfw
+chmod 550              /var/ipcop/optionsfw
+touch                  /var/ipcop/optionsfw/settings
+chown nobody:nobody    /var/ipcop/optionsfw
+chown nobody:nobody    /var/ipcop/optionsfw/settings
+chmod 644 /var/ipcop/optionsfw/settings
+
+#Add a directory for language files installed by addons
+mkdir -p               /var/ipcop/addon-lang
+chmod 550              /var/ipcop/addon-lang
+chown nobody:nobody /var/ipcop/addon-lang
+
+# Strip colon from end of 'section' string in all language files.
+for file in /var/ipcop/langs/*.pl
+do
+       sed -i -e '/section/s/://' $file
+done
+
+# Start of patch update to header.pl
+#
+# Use patch -N switch to apply patches only once
+#
+# First, upgrade to match v1.4.6 iso, if required 
+patch -N /var/ipcop/header.pl <<\END
+105c105,107
+<                              [ $Lang::tr{'blue access'} , '/cgi-bin/wireless.cgi', "IPCop $Lang::tr{'blue access'}" ]]
+---
+>                              [ $Lang::tr{'blue access'} , '/cgi-bin/wireless.cgi', "IPCop $Lang::tr{'blue access'}" ]
+>              #              ,[ $Lang::tr{'options fw'} , '/cgi-bin/optionsfw.cgi', "IPCop $Lang::tr{'options fw'}" ]
+>                             ]
+END
+
+# Uncomment firewall options menu item
+patch -N /var/ipcop/header.pl <<\END
+106c106
+<              #              ,[ $Lang::tr{'options fw'} , '/cgi-bin/optionsfw.cgi', "IPCop $Lang::tr{'options fw'}" ]
+---
+>                             ,[ $Lang::tr{'options fw'} , '/cgi-bin/optionsfw.cgi', "IPCop $Lang::tr{'options fw'}" ]
+END
+
+# Apply 'ends never' patch to PrintActualLeases subroutine
+patch -N /var/ipcop/header.pl <<\END
+752,754c752,754
+<      }
+< 
+<      if ($line =~ /^\s*ends/) {
+---
+>      } elsif ($line =~ /^\s*ends never;/) {
+>          $endtime = 'never';
+>      } elsif ($line =~ /^\s*ends/) {
+757,759c757
+<      }
+< 
+<      if ($line =~ /^\s*hardware ethernet/) {
+---
+>      } elsif ($line =~ /^\s*hardware ethernet/) {
+762,766c760,762
+<      }
+< 
+<      if ($line =~ /^\s*client-hostname/) {
+<           shift (@temp);
+<           $hostname = join (' ',@temp);
+---
+>      } elsif ($line =~ /^\s*client-hostname/) {
+>          shift (@temp);
+>          $hostname = join (' ',@temp);
+769,771c765
+<      }
+< 
+<      if ($line eq "}") {
+---
+>      } elsif ($line eq "}") {
+776c770
+<      }
+---
+>      } #unknown format line...
+803,808c797,798
+<      my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst);
+<      ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst) = localtime ($entries{$key}->{ENDTIME});
+<      my $enddate = sprintf ("%02d/%02d/%d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec);
+< 
+<      if ($entries{$key}->{ENDTIME} < time() ){
+<          print "<strike>$enddate</strike>";
+---
+>      if ($entries{$key}->{ENDTIME} eq 'never') {
+>          print "$Lang::tr{'no time limit'}";
+810c800,808
+<          print "$enddate";
+---
+>          my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst);
+>          ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst) = localtime ($entries{$key}->{ENDTIME});
+>          my $enddate = sprintf ("%02d/%02d/%d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec);
+> 
+>          if ($entries{$key}->{ENDTIME} < time() ){
+>              print "<strike>$enddate</strike>";
+>          } else {
+>              print "$enddate";
+>          }
+END
+
+# Clean up any rejects
+rm -f /var/ipcop/header.pl.rej
+
+# End of update to header.pl
+
+# removing optionsfw.cgi from the menu because it is not ready
+/bin/sed -i -e 'optionsfw.cgi/       ,[ /#       ,[ /' /var/ipcop/header.pl
+#
+# new crontab (supporting minimize ddns updates)
+#
+sum=`md5sum /tmp/root.orig | awk '{print $1}' `
+# if version 1.9.2.1 or 1.9.2.2 is untouched, just replace it else add the new entry only
+if [ "$sum" == "918ec891f5436c0e34ce4ba213a9fbe1" ] || 
+   [ "$sum" == "b18e7567915e576655815fb409145f1a" ] ;  then
+       echo "Upgrade original crontab"
+       #file come from the update
+else
+       cat<<END>>/var/spool/cron/root.orig
+
+# ipcop update 1.4.7 addition to not original crontab
+# force update (even if name match IP) once a month if minimize option selected
+
+3 2 1 * *     [ -f "/var/ipcop/red/active" ] && /usr/local/bin/setddns.pl -f -m
+END
+fi
+/usr/bin/fcrontab -z
+
+/bin/rm -f /tmp/root.orig
+
+#change in service name to conform to real name
+sed -i -e 's/freedns-afraid/freedns.afraid/' /var/ipcop/ddns/config
+chown nobody:nobody /var/ipcop/ddns/config
+
+#build cachelang file   use this call after all "lang/*.pl" updates !
+perl -e "require '/var/ipcop/lang.pl'; &Lang::BuildCacheLang"
+
+cd /bin
+ln -s gzip zcat #logwatch.pl may use it
+ln -s bzip2 bzcat
+
+#fix init update : no more / is busy during shutdown
+/sbin/telinit u
+
+# adjust vpn config for new options DPD_ACTION & PFS
+# if config is 'host' set dpd_action=clear else set hold. Add always yes for PFS
+cp /var/ipcop/vpn/config /var/ipcop/vpn/config.old
+perl -e "while (<>) { chomp; \$V=(/,host,/?'clear':'hold'); print \"\$_,\$V,yes\n\"; }" /var/ipcop/vpn/config.old > /var/ipcop/vpn/config
+chown nobody:nobody /var/ipcop/vpn/config
+
+echo "IPCop v$UPGRADEVERSION - The Bad Packets Stop Here">/etc/issue
+killall mingetty  #redisplay correct version
+echo "end of $UPGRADEVERSION update"
+exit 0
diff --git a/updates/1.4.8/.cvsignore b/updates/1.4.8/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.8/CVS/Entries b/updates/1.4.8/CVS/Entries
new file mode 100644 (file)
index 0000000..53aab90
--- /dev/null
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Tue Aug 16 06:40:51 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.8/1.1.2.1/Thu Aug 18 18:59:57 2005//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.8/1.1.2.1/Tue Aug 16 06:40:51 2005//TIPCOP_v1_4_0
+/information/1.1.2.4/Fri Aug 26 04:41:31 2005//TIPCOP_v1_4_0
+/setup/1.1.2.4/Thu Aug 18 18:59:57 2005//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.8/CVS/Repository b/updates/1.4.8/CVS/Repository
new file mode 100644 (file)
index 0000000..228a424
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.8
diff --git a/updates/1.4.8/CVS/Root b/updates/1.4.8/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.8/CVS/Tag b/updates/1.4.8/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.8/ROOTFILES.alpha-1.4.8 b/updates/1.4.8/ROOTFILES.alpha-1.4.8
new file mode 100644 (file)
index 0000000..ac0620a
--- /dev/null
@@ -0,0 +1,13 @@
+##
+## kernel 2.4.31
+##
+boot/vmlinuz-2.4.31
+boot/System.map-2.4.31
+boot/vmlinuz
+boot/System.map
+lib/modules/2.4.31/kernel
+lib/modules/2.4.31/modules.dep
+lib/modules/2.4.31/modules.generic_string
+lib/modules/2.4.31/modules.pcimap
+lib/modules/2.4.31/modules.isapnpmap
+lib/modules/2.4.31/modules.usbmap
diff --git a/updates/1.4.8/ROOTFILES.i386-1.4.8 b/updates/1.4.8/ROOTFILES.i386-1.4.8
new file mode 100644 (file)
index 0000000..66cb144
--- /dev/null
@@ -0,0 +1,29 @@
+##
+## kernel 2.4.31
+##
+boot/vmlinuz-2.4.31
+boot/System.map-2.4.31
+boot/vmlinuz
+boot/System.map
+boot/vmlinuz-2.4.31-smp
+boot/System.map-2.4.31-smp
+boot/vmlinuz-smp
+lib/modules/2.4.31/kernel
+lib/modules/2.4.31/modules.dep
+lib/modules/2.4.31/modules.generic_string
+lib/modules/2.4.31/modules.pcimap
+lib/modules/2.4.31/modules.isapnpmap
+lib/modules/2.4.31/modules.usbmap
+lib/modules/2.4.31-smp/kernel
+lib/modules/2.4.31-smp/modules.dep
+lib/modules/2.4.31-smp/modules.generic_string
+lib/modules/2.4.31-smp/modules.pcimap
+lib/modules/2.4.31-smp/modules.isapnpmap
+lib/modules/2.4.31-smp/modules.usbmap
+## other kernel external modules not upgraded
+lib/modules/2.4.31/misc/CnxADSL.o.gz
+lib/modules/2.4.31/extra/unicorn_pci_atm.o.gz
+lib/modules/2.4.31/extra/unicorn_usb_atm.o.gz
+lib/modules/2.4.31-smp/misc/CnxADSL.o.gz
+lib/modules/2.4.31-smp/extra/unicorn_pci_atm.o.gz
+lib/modules/2.4.31-smp/extra/unicorn_usb_atm.o.gz
diff --git a/updates/1.4.8/information b/updates/1.4.8/information
new file mode 100644 (file)
index 0000000..caab3a0
--- /dev/null
@@ -0,0 +1 @@
+008|1.4.8 update|Upgrade to kernel 2.4.31.<br>Apply both 1.4.7 and 1.4.8 updates (eventually load fcdsl-1.4.8 package if needed) and reboot!!!|2005-08-25
diff --git a/updates/1.4.8/setup b/updates/1.4.8/setup
new file mode 100644 (file)
index 0000000..e0dab4e
--- /dev/null
@@ -0,0 +1,127 @@
+#!/bin/bash
+
+UPGRADEVERSION="1.4.8"
+PREVIOUSVERSION="1.4.7"
+echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing."
+
+CURRENTVERSION=`perl -e "require '/var/ipcop/general-functions.pl';print \\$General::version;"`
+if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then
+       echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+# general-functions might not be overwrited by patch...
+/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipcop/general-functions.pl
+
+BOOT=`/bin/df | grep "/boot" | /usr/bin/awk '{ print $2 }'`
+KVER=`uname -r`
+
+# /boot is too small on flash disk with only 5MB size
+# because smp files are bigger, we can't support upgrade from smp kernel with flash on small /boot
+if [ "$BOOT" -le 7000 ]; then
+       if [ "$KVER" = "2.4.27-smp" -o "$KVER" = "2.4.29-smp" ]; then
+               echo "can't support kernel upgrade on smp machine with only 5MB on /boot"
+               echo "have 8MB on /boot with flash if you really need to use -smp during upgrade"
+               exit 1
+       else
+               rm -rf  /boot/{vmlinuz,System.map}-2.4.27-smp   \
+                       /boot/{vmlinuz,System.map}-2.4.29-smp   \
+                       /boot/System.map-2.4.29-smp             \
+                       /boot/System.map-2.4.29-smp             \
+                       /boot/ipcoprd-smp-2.4.{27,29}.img
+       fi
+fi
+# make files really be erased or new files write may fail with flash on boot with 5MB
+/bin/sync
+
+# Install kernel 2.4.31 modules & k dependants files
+# kernel modules are necessary to rebuild initrd
+/bin/tar -zxpf patch.tar.gz -C /
+
+ROOTDEV=`/bin/ls -l /dev/harddisk4 | /usr/bin/awk '{ print $NF }'`
+# for IPCop without a kernel upgrade
+if ( ! /bin/grep -q '2.4.27' /boot/grub/grub.conf ); then
+       echo "title IPCop old (2.4.27)"                                         >> /boot/grub/grub.conf
+       echo "  root (hd0,0)"                                                   >> /boot/grub/grub.conf
+       echo "  kernel /vmlinuz-2.4.27 root=${ROOTDEV} panic=10 acpi=off ro"    >> /boot/grub/grub.conf
+       if [ -f /boot/ipcoprd.img ]; then
+               echo "  initrd /ipcoprd-2.4.27.img"                             >> /boot/grub/grub.conf
+       fi
+       echo "  savedefault"                                                    >> /boot/grub/grub.conf
+fi
+
+# fix grub missing smp menu entries for old kernel on non flash /boot
+if [ "$BOOT" -gt 7000 ]; then
+       echo "title IPCop old (2.4.27-smp)"                                     >> /boot/grub/grub.conf
+       echo "  root (hd0,0)"                                                   >> /boot/grub/grub.conf
+       echo "  kernel /vmlinuz-2.4.27-smp root=${ROOTDEV} panic=10 acpi=off ro">> /boot/grub/grub.conf
+       if [ -f /boot/ipcoprd-smp.img ]; then
+               echo "  initrd /ipcoprd-smp-2.4.27.img"                         >> /boot/grub/grub.conf
+       fi
+       echo "  savedefault"                                                    >> /boot/grub/grub.conf
+fi
+echo "title IPCop old (2.4.27 ACPI enabled)"                           >> /boot/grub/grub.conf
+echo "  root (hd0,0)"                                                  >> /boot/grub/grub.conf
+echo "  kernel /vmlinuz-2.4.27 root=${ROOTDEV} panic=10 ro"            >> /boot/grub/grub.conf
+if [ -f /boot/ipcoprd.img ]; then
+       echo "  initrd /ipcoprd-2.4.27.img"                             >> /boot/grub/grub.conf
+fi
+echo "  savedefault"                                                   >> /boot/grub/grub.conf
+# only on non flash /boot
+if [ "$BOOT" -gt 7000 ]; then
+       echo "title IPCop old (2.4.27-smp ACPI HT enabled)"                     >> /boot/grub/grub.conf
+       echo "  root (hd0,0)"                                                   >> /boot/grub/grub.conf
+       echo "  kernel /vmlinuz-2.4.27-smp root=${ROOTDEV} panic=10 acpi=ht ro" >> /boot/grub/grub.conf
+       if [ -f /boot/ipcoprd.img ]; then
+               echo "  initrd /ipcoprd-smp-2.4.27.img"                         >> /boot/grub/grub.conf
+       fi
+       echo "  savedefault"                                                    >> /boot/grub/grub.conf
+fi
+
+# Upgrade grub and fix strange looking smp version name
+sed -i -e 's/ipcoprd-smp-2.4.27/ipcoprd-2.4.27-smp/' \
+       -e 's/2.4.27/2.4.29/' /boot/grub/grub.conf
+
+# Fix initrd
+if [ -f /boot/ipcoprd.img ]; then
+       # Find out scsi module
+       IMAGE=`/usr/bin/mktemp /tmp/ipcoprd.img.XXXXXX`
+       MNTPOINT=`/usr/bin/mktemp -d /tmp/ipcoprd.mnt.XXXXXX`
+       /bin/gzip -d -c /boot/ipcoprd.img > $IMAGE
+       /bin/mount -o loop $IMAGE $MNTPOINT
+       SCSIDRIVER=`/bin/ls -1 $MNTPOINT/lib | \
+               /bin/grep -v sd_mod.o.gz |\
+               /bin/grep -v sg.o.gz |\
+               /bin/grep -v sr_mod.o.gz |\
+               /bin/grep -v 53c700.o.gz |\
+               /bin/grep -v NCR53C9x.o.gz |\
+               /bin/grep -v libata.o.gz  |\
+               /bin/grep -v scsi_mod.o.gz |\
+               /bin/grep -v ataraid.o.gz |\
+               /bin/grep -v mptbase.o.gz |\
+               /bin/grep -v isa-pnp.o |\
+               /bin/grep -v ds.o.gz |\
+               /bin/grep -v pcmcia_core.o.gz |\
+               /bin/sed 's/.o.gz//'`
+       /bin/umount -d $MNTPOINT
+       /bin/rm -rf $MNTPOINT $IMAGE    
+       /bin/mv -f /boot/ipcoprd.img /boot/ipcoprd-2.4.29.img
+       /bin/mv -f /boot/ipcoprd-smp.img /boot/ipcoprd-2.4.29-smp.img
+       if [ "$SCSIDRIVER" ]; then
+               if [ ! -f ipcoprd-2.4.29-smp.img ]; then
+                       # on 1.4.3/1.4.4 update, ipcoprd-smp.img has failed, so do it now
+                       /sbin/mkinitrd --with=scsi_mod --with=${SCSIDRIVER} --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipcoprd-2.4.29-smp.img 2.4.29-smp
+               fi
+               /sbin/mkinitrd --with=scsi_mod --with=${SCSIDRIVER} --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipcoprd.img 2.4.31
+               /sbin/mkinitrd --with=scsi_mod --with=${SCSIDRIVER} --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipcoprd-smp.img 2.4.31-smp
+       fi
+fi
+
+# fix etc/modules.conf is more recent than ...modules.dep for 2.4.29 and 2.4.31
+touch /lib/modules/*/modules.dep
+
+echo "IPCop v$UPGRADEVERSION - The Bad Packets Stop Here">/etc/issue
+killall mingetty  #redisplay correct version
+echo "end of $UPGRADEVERSION update"
+exit 0
diff --git a/updates/1.4.9/.cvsignore b/updates/1.4.9/.cvsignore
new file mode 100644 (file)
index 0000000..7b3631a
--- /dev/null
@@ -0,0 +1 @@
+patch.tar.gz
diff --git a/updates/1.4.9/CVS/Entries b/updates/1.4.9/CVS/Entries
new file mode 100644 (file)
index 0000000..61647af
--- /dev/null
@@ -0,0 +1,7 @@
+/.cvsignore/1.1.2.1/Sat Sep 10 10:06:29 2005//TIPCOP_v1_4_0
+/ROOTFILES.alpha-1.4.9/1.1.2.20/Mon Oct  3 00:34:12 2005//TIPCOP_v1_4_0
+/ROOTFILES.i386-1.4.9/1.1.2.20/Mon Oct  3 00:34:12 2005//TIPCOP_v1_4_0
+/header.pl.patch/1.1.2.1/Sat Sep 17 23:34:33 2005//TIPCOP_v1_4_0
+/information/1.1.2.10/Mon Oct  3 22:49:44 2005//TIPCOP_v1_4_0
+/setup/1.1.2.10/Mon Oct  3 20:01:05 2005//TIPCOP_v1_4_0
+D
diff --git a/updates/1.4.9/CVS/Repository b/updates/1.4.9/CVS/Repository
new file mode 100644 (file)
index 0000000..e0359f0
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates/1.4.9
diff --git a/updates/1.4.9/CVS/Root b/updates/1.4.9/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/1.4.9/CVS/Tag b/updates/1.4.9/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0
diff --git a/updates/1.4.9/ROOTFILES.alpha-1.4.9 b/updates/1.4.9/ROOTFILES.alpha-1.4.9
new file mode 100644 (file)
index 0000000..e1c3f06
--- /dev/null
@@ -0,0 +1,55 @@
+etc/issue
+etc/rc.d/rc.firewall
+etc/rc.d/rc.updatered
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/index.cgi
+home/httpd/cgi-bin/optionsfw.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+var/ipcop/backup/exclude.system
+var/ipcop/lang.pl
+var/ipcop/langs/list
+var/ipcop/langs/bz.pl
+var/ipcop/langs/da.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/zh.pl
+# Add Chinese Traditional
+var/ipcop/langs/zt.pl
+#
+## misc-progs
+usr/local/bin/ipcopbackup
+usr/local/bin/ipcoprscfg
+usr/local/bin/makegraphs
+usr/local/bin/setreservedports
+usr/local/bin/setfilters
+##
+## Fix for SF Bug 1275075
+## Missing from Procps-3.2.5 upgrade in v1.4.7
+usr/bin/uptime
+##
+## Fix for logwatch issue
+etc/log.d/scripts/services/http
+##
+## eciadsl-0.11
+etc/eciadsl/modems.db
+usr/sbin/eciadsl-firmware
+usr/sbin/eciadsl-pppoeci
+usr/sbin/eciadsl-synch
+##
+## libpcre CAN-2005-2491
+usr/lib/libpcre.so.0.0.1
+##
+## squid-2.5.STABLE11
+usr/lib/squid/msnt_auth
+usr/lib/squid/ncsa_auth
+usr/lib/squid/ntlm_auth
+usr/lib/squid/smb_auth
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
+##
+## util-linux-2.12a patched CAN-2005-2876
+bin/umount
diff --git a/updates/1.4.9/ROOTFILES.i386-1.4.9 b/updates/1.4.9/ROOTFILES.i386-1.4.9
new file mode 100644 (file)
index 0000000..e1c3f06
--- /dev/null
@@ -0,0 +1,55 @@
+etc/issue
+etc/rc.d/rc.firewall
+etc/rc.d/rc.updatered
+home/httpd/cgi-bin/credits.cgi
+home/httpd/cgi-bin/dhcp.cgi
+home/httpd/cgi-bin/index.cgi
+home/httpd/cgi-bin/optionsfw.cgi
+home/httpd/cgi-bin/updates.cgi
+home/httpd/cgi-bin/vpnmain.cgi
+var/ipcop/backup/exclude.system
+var/ipcop/lang.pl
+var/ipcop/langs/list
+var/ipcop/langs/bz.pl
+var/ipcop/langs/da.pl
+var/ipcop/langs/de.pl
+var/ipcop/langs/el.pl
+var/ipcop/langs/it.pl
+var/ipcop/langs/no.pl
+var/ipcop/langs/zh.pl
+# Add Chinese Traditional
+var/ipcop/langs/zt.pl
+#
+## misc-progs
+usr/local/bin/ipcopbackup
+usr/local/bin/ipcoprscfg
+usr/local/bin/makegraphs
+usr/local/bin/setreservedports
+usr/local/bin/setfilters
+##
+## Fix for SF Bug 1275075
+## Missing from Procps-3.2.5 upgrade in v1.4.7
+usr/bin/uptime
+##
+## Fix for logwatch issue
+etc/log.d/scripts/services/http
+##
+## eciadsl-0.11
+etc/eciadsl/modems.db
+usr/sbin/eciadsl-firmware
+usr/sbin/eciadsl-pppoeci
+usr/sbin/eciadsl-synch
+##
+## libpcre CAN-2005-2491
+usr/lib/libpcre.so.0.0.1
+##
+## squid-2.5.STABLE11
+usr/lib/squid/msnt_auth
+usr/lib/squid/ncsa_auth
+usr/lib/squid/ntlm_auth
+usr/lib/squid/smb_auth
+usr/lib/squid/wb_ntlmauth
+usr/sbin/squid
+##
+## util-linux-2.12a patched CAN-2005-2876
+bin/umount
diff --git a/updates/1.4.9/header.pl.patch b/updates/1.4.9/header.pl.patch
new file mode 100644 (file)
index 0000000..4bb5a9a
--- /dev/null
@@ -0,0 +1,70 @@
+--- header.pl.old      Sat Aug 27 02:22:18 2005
++++ header.pl  Sat Sep 17 15:53:34 2005
+@@ -544,6 +544,11 @@
+     &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);
+     &General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
++    my $profileused='';
++    if ( ! ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) {
++      $profileused="- $pppsettings{'PROFILENAME'}";
++    }
++
+     if ( ( $pppsettings{'METHOD'} eq 'DHCP' && $netsettings{'RED_TYPE'} ne 'PPTP') 
+                                               || $netsettings{'RED_TYPE'} eq 'DHCP' ) {
+               if (open(IFACE, "${General::swroot}/red/iface")) {
+@@ -593,24 +598,24 @@
+       if (-e "${General::swroot}/red/active") {
+               $timestr = &General::age("${General::swroot}/red/active");
+-              $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} - $number channel (<span class='ipcop_StatusBigRed'>$timestr</span>) - $pppsettings{'PROFILENAME'}</span>";
++              $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} - $number channel (<span class='ipcop_StatusBigRed'>$timestr</span>) $profileused</span>";
+       } else {
+               if ($count == 0) {
+                       if (-e "${General::swroot}/red/dial-on-demand") {
+-                              $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'dod waiting'} - $pppsettings{'PROFILENAME'}</span>";
++                              $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'dod waiting'} $profileused</span>";
+                       } else {
+-                              $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'idle'} - $pppsettings{'PROFILENAME'}</span>";
++                              $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'idle'} $profileused</span>";
+                       }
+               } else {
+-                      $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connecting'} - $pppsettings{'PROFILENAME'}</span>";
++                      $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connecting'} $profileused</span>";
+               }
+       }
+     } elsif ($netsettings{'RED_TYPE'} eq "STATIC" || $pppsettings {'METHOD'} eq 'STATIC') {
+       if (-e "${General::swroot}/red/active") {
+               $timestr = &General::age("${General::swroot}/red/active");
+-              $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} (<span class='ipcop_StatusBigRed'>$timestr</span>) - $pppsettings{'PROFILENAME'}</span>";
++              $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} (<span class='ipcop_StatusBigRed'>$timestr</span>) $profileused</span>";
+       } else {
+-              $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'idle'} - $pppsettings{'PROFILENAME'}</span>";
++              $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'idle'} $profileused</span>";
+       }
+     } elsif ( ( (-e "${General::swroot}/dhcpc/dhcpcd-$iface.pid") && $netsettings{'RED_TYPE'} ne 'PPTP' ) || 
+       !system("/bin/ps -ef | /bin/grep -q '[p]ppd'") || !system("/bin/ps -ef | /bin/grep -q '[c]onnectioncheck'")) {
+@@ -633,19 +638,19 @@
+                       } elsif ($pppsettings{'TYPE'} eq 'eagleusbadsl') {
+                               $speed = `/usr/sbin/eaglestat | /bin/grep Rate`;
+                       }
+-                      $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} (<span class='ipcop_StatusBigRed'>$timestr</span>) - $pppsettings{'PROFILENAME'} (\@$speed)</span>";
++                      $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} (<span class='ipcop_StatusBigRed'>$timestr</span>) $profileused (\@$speed)</span>";
+               } else {
+-                      $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} (<span class='ipcop_StatusBigRed'>$timestr</span>) - $pppsettings{'PROFILENAME'}</span>";
++                      $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connected'} (<span class='ipcop_StatusBigRed'>$timestr</span>) $profileused</span>";
+               }
+       } else {
+               if (-e "${General::swroot}/red/dial-on-demand") {
+-                  $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'dod waiting'} - $pppsettings{'PROFILENAME'}</span>";
++                  $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'dod waiting'} $profileused</span>";
+               } else {
+-                  $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connecting'} - $pppsettings{'PROFILENAME'}</span>";
++                  $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'connecting'} $profileused</span>";
+               }
+       }
+     } else {
+-      $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'idle'} - $pppsettings{'PROFILENAME'}</span>";
++      $connstate = "<span class='ipcop_StatusBig'>$Lang::tr{'idle'} $profileused</span>";
+     }
+     return $connstate;
+ }
diff --git a/updates/1.4.9/information b/updates/1.4.9/information
new file mode 100644 (file)
index 0000000..61cac67
--- /dev/null
@@ -0,0 +1 @@
+009|1.4.9 update|Upgrade squid to v2.5.STABLE11 to fix three possible crashes.<br>Fix umount for CAN-2005-2876.<br> Fix the Upload button not working in Norwegian, Swedish and Vietnamese languages. If you are affected by this, temporarily change to a different language to be able to apply this update.<br>Add Traditional Chinese language to web interface. Hide only connect/disconnect buttons when a ppp profile is used but not valid. Hide ppp profile name in all pages when not used. Detect floppy media not present for backup. Make minimal optionfw.cgi work with ping.<br>VPN users, check Dead Peer Detection action setting as it was wrongly changed during 1.4.7 upgrade |2005-10-03
diff --git a/updates/1.4.9/setup b/updates/1.4.9/setup
new file mode 100644 (file)
index 0000000..e283bfd
--- /dev/null
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+UPGRADEVERSION="1.4.9"
+PREVIOUSVERSION="1.4."$((`echo $UPGRADEVERSION | /usr/bin/cut -f3 -d '.'`-1))
+echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing."
+
+CURRENTVERSION=`perl -e "require '/var/ipcop/general-functions.pl';print \\$General::version;"`
+if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then
+       echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install."
+       echo "Aborting installation."
+       exit -1
+fi
+
+# general-functions might not be overwrited by patch...
+/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipcop/general-functions.pl
+
+/bin/tar -zxpf patch.tar.gz -C /
+
+# Typo in 1.4.7 setup prevented removal of these files. Fixes SF Bug 1275075. 
+# unneeded, updated, unified (old eci driver)
+/bin/rm -f /lib/{libbz2.so.1.0.2,libz.so.1.2.2,libproc.so.3.2.1}
+
+# Wrong permissions on /var/ipcop/addon-lang SF Bug 1283323
+/bin/chown root:root /var/ipcop/addon-lang
+/bin/chmod 755 /var/ipcop/addon-lang
+
+# squid-2.5.STABLE11 CAN-2005-{2794,2796,2917}
+if [ -s /var/ipcop/proxy/squid.conf ]; then
+       /usr/local/bin/restartsquid
+fi
+
+# remove ppp profile name display in all page when not used
+# Id: header.pl is not include in patch because different versions may exist
+/usr/bin/patch -Np0 < ./header.pl.patch /var/ipcop/header.pl
+
+# minimal optionsfw.cgi : ping filtering from GUI
+/bin/sed -i -e '/optionsfw.cgi/s/#       ,/    ,/' /var/ipcop/header.pl
+/bin/mkdir -p                  /var/ipcop/optionsfw
+/bin/chmod 755                 /var/ipcop/optionsfw
+/bin/chown nobody:nobody       /var/ipcop/optionsfw
+/bin/echo "DISABLEPING=NO" >   /var/ipcop/optionsfw/settings
+/bin/chown nobody:nobody       /var/ipcop/optionsfw/settings
+/bin/chmod 644                 /var/ipcop/optionsfw/settings
+/etc/rc.d/rc.firewall restart
+/etc/rc.d/rc.updatered
+
+#build cachelang file : use this call after all "lang/*.pl" updates
+perl -e "require '/var/ipcop/lang.pl'; &Lang::BuildCacheLang"
+
+echo "IPCop v$UPGRADEVERSION - The Bad Packets Stop Here">/etc/issue
+killall mingetty  #redisplay correct version
+echo "end of $UPGRADEVERSION update"
diff --git a/updates/CVS/Entries b/updates/CVS/Entries
new file mode 100644 (file)
index 0000000..2a1e3f4
--- /dev/null
@@ -0,0 +1,11 @@
+D/1.4.1////
+D/1.4.10////
+D/1.4.11////
+D/1.4.2////
+D/1.4.3////
+D/1.4.4////
+D/1.4.5////
+D/1.4.6////
+D/1.4.7////
+D/1.4.8////
+D/1.4.9////
diff --git a/updates/CVS/Repository b/updates/CVS/Repository
new file mode 100644 (file)
index 0000000..010542f
--- /dev/null
@@ -0,0 +1 @@
+ipcop/updates
diff --git a/updates/CVS/Root b/updates/CVS/Root
new file mode 100644 (file)
index 0000000..95a1bd0
--- /dev/null
@@ -0,0 +1 @@
+:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipcop
diff --git a/updates/CVS/Tag b/updates/CVS/Tag
new file mode 100644 (file)
index 0000000..6331936
--- /dev/null
@@ -0,0 +1 @@
+TIPCOP_v1_4_0